function buildComponentFromVNode (dom, vnode) {
  let c = dom && dom._component

  if (isFunctionalComponent(vnode)) {
    let p = build(dom, buildFunctionalComponent(vnode))
    p._componentConstructor = vnode.nodeName
    return p
  }

  let isOwner = c && dom._componentConstructor === vnode.nodeName
  while (c && !isOwner && (c = c._parentComponent)) {
    isOwner = c.constructor === vnode.nodeName
  }

  if (isOwner) {
    setComponentProps(c, getNodeProps(vnode), SYNC_RENDER)
  } else {
    if (c) {
      unmountComponent(dom, c)
    }
    dom = createComponentFromVNode(vnode)
  }

  return dom
}
/** Apply the Component referenced by a VNode to the DOM.
 *    @param {Element} dom    The DOM node to mutate
 *    @param {VNode} vnode    A Component-referencing VNode
 *    @returns {Element} dom    The created/mutated element
 *    @private
 */
Apply the Component referenced by a VNode to the DOM.
@param {Element} dom    The DOM node to mutate
@param {VNode} vnode    A Component-referencing VNode
@returns {Element} dom    The created/mutated element
@private
Apply the Component referenced by a VNode to the DOM . @param { Element } dom The DOM node to mutate @param { VNode } vnode A Component - referencing VNode @returns { Element } dom The created / mutated element @private
function buildComponentFromVNode (dom, vnode) {
  let c = dom && dom._component
  if (isFunctionalComponent(vnode)) {
    let p = build(dom, buildFunctionalComponent(vnode))
    p._componentConstructor = vnode.nodeName
    return p
  }
  let isOwner = c && dom._componentConstructor === vnode.nodeName
  while (c && !isOwner && (c = c._parentComponent)) {
    isOwner = c.constructor === vnode.nodeName
  }
  if (isOwner) {
    setComponentProps(c, getNodeProps(vnode), SYNC_RENDER)
  } else {
    if (c) {
      unmountComponent(dom, c)
    }
    dom = createComponentFromVNode(vnode)
  }
  return dom
}
function buildComponentFromVNode ( dom , vnode ) { let c = dom && dom . _component if ( isFunctionalComponent ( vnode ) ) { let p = build ( dom , buildFunctionalComponent ( vnode ) ) p . _componentConstructor = vnode . nodeName return p } let isOwner = c && dom . _componentConstructor === vnode . nodeName while ( c && ! isOwner && ( c = c . _parentComponent ) ) { isOwner = c . constructor === vnode . nodeName } if ( isOwner ) { setComponentProps ( c , getNodeProps ( vnode ) , SYNC_RENDER ) } else { if ( c ) { unmountComponent ( dom , c ) } dom = createComponentFromVNode ( vnode ) } return dom }
Apply the Component referenced by a VNode to the DOM.
Apply the Component referenced by a VNode to the DOM .