@@ -2,7 +2,7 @@ import { SYNC_RENDER, NO_RENDER, FORCE_RENDER, ASYNC_RENDER, ATTR_KEY } from '..
2
2
import options from '../options' ;
3
3
import { extend } from '../util' ;
4
4
import { enqueueRender } from '../render-queue' ;
5
- import { getNodeProps } from './index' ;
5
+ import { areComponentsEqual , getNodeProps } from './index' ;
6
6
import { diff , mounts , diffLevel , flushMounts , recollectNodeTree , removeChildren } from './diff' ;
7
7
import { createComponent , collectComponent } from './component-recycler' ;
8
8
import { removeNode } from '../dom/index' ;
@@ -212,11 +212,11 @@ export function buildComponentFromVNode(dom, vnode, context, mountAll) {
212
212
let c = dom && dom . _component ,
213
213
originalComponent = c ,
214
214
oldDom = dom ,
215
- isDirectOwner = c && dom . _componentConstructor === vnode . nodeName ,
215
+ isDirectOwner = c && areComponentsEqual ( dom . _componentConstructor , vnode . nodeName ) ,
216
216
isOwner = isDirectOwner ,
217
217
props = getNodeProps ( vnode ) ;
218
218
while ( c && ! isOwner && ( c = c . _parentComponent ) ) {
219
- isOwner = c . constructor === vnode . nodeName ;
219
+ isOwner = areComponentsEqual ( c . constructor , vnode . nodeName ) ;
220
220
}
221
221
222
222
if ( c && isOwner && ( ! mountAll || c . _component ) ) {
0 commit comments