@@ -52,8 +52,10 @@ module.exports = function compile (el, options, partial, asParent) {
52
52
return function link ( vm , el ) {
53
53
var originalDirCount = vm . _directives . length
54
54
if ( paramsLinkFn ) paramsLinkFn ( vm , el )
55
+ // cache childNodes before linking parent, fix #657
56
+ var childNodes = _ . toArray ( el . childNodes )
55
57
if ( nodeLinkFn ) nodeLinkFn ( vm , el )
56
- if ( childLinkFn ) childLinkFn ( vm , el . childNodes )
58
+ if ( childLinkFn ) childLinkFn ( vm , childNodes )
57
59
58
60
/**
59
61
* If this is a partial compile, the linker function
@@ -300,18 +302,18 @@ function compileNodeList (nodeList, options) {
300
302
301
303
function makeChildLinkFn ( linkFns ) {
302
304
return function childLinkFn ( vm , nodes ) {
303
- // stablize nodes
304
- nodes = _ . toArray ( nodes )
305
305
var node , nodeLinkFn , childrenLinkFn
306
306
for ( var i = 0 , n = 0 , l = linkFns . length ; i < l ; n ++ ) {
307
307
node = nodes [ n ]
308
308
nodeLinkFn = linkFns [ i ++ ]
309
309
childrenLinkFn = linkFns [ i ++ ]
310
+ // cache childNodes before linking parent, fix #657
311
+ var childNodes = _ . toArray ( node . childNodes )
310
312
if ( nodeLinkFn ) {
311
313
nodeLinkFn ( vm , node )
312
314
}
313
315
if ( childrenLinkFn ) {
314
- childrenLinkFn ( vm , node . childNodes )
316
+ childrenLinkFn ( vm , childNodes )
315
317
}
316
318
}
317
319
}
0 commit comments