@@ -61,31 +61,19 @@ function compile (el, options, partial, transcluded) {
6161    if  ( childLinkFn )  childLinkFn ( source ,  childNodes ,  host ) 
6262
6363    /** 
64-      * If this is a partial compile, the linker function 
65-      * returns an unlink function that tearsdown all 
66-      * directives instances generated during the partial 
67-      * linking. 
64+      * The linker function returns an unlink function that 
65+      * tearsdown all directives instances generated during 
66+      * the process. 
6867     */ 
6968
70-     if  ( partial  &&  ! transcluded )  { 
71-       var  selfDirs  =  vm . _directives . slice ( originalDirCount ) 
72-       var  parentDirs  =  vm . $parent  && 
73-         vm . $parent . _directives . slice ( parentOriginalDirCount ) 
69+     var  selfDirs  =  vm . _directives . slice ( originalDirCount ) 
70+     var  parentDirs  =  vm . $parent  && 
71+       vm . $parent . _directives . slice ( parentOriginalDirCount ) 
7472
75-       var  teardownDirs  =  function  ( vm ,  dirs )  { 
76-         var  i  =  dirs . length 
77-         while  ( i -- )  { 
78-           dirs [ i ] . _teardown ( ) 
79-         } 
80-         i  =  vm . _directives . indexOf ( dirs [ 0 ] ) 
81-         vm . _directives . splice ( i ,  dirs . length ) 
82-       } 
83- 
84-       return  function  unlink  ( )  { 
85-         teardownDirs ( vm ,  selfDirs ) 
86-         if  ( parentDirs )  { 
87-           teardownDirs ( vm . $parent ,  parentDirs ) 
88-         } 
73+     return  function  unlink  ( )  { 
74+       teardownDirs ( vm ,  selfDirs ) 
75+       if  ( parentDirs )  { 
76+         teardownDirs ( vm . $parent ,  parentDirs ) 
8977      } 
9078    } 
9179  } 
@@ -99,6 +87,24 @@ function compile (el, options, partial, transcluded) {
9987  return  compositeLinkFn 
10088} 
10189
90+ /** 
91+  * Teardown a subset of directives on a vm. 
92+  * 
93+  * @param  {Vue } vm 
94+  * @param  {Array } dirs 
95+  */ 
96+ 
97+ function  teardownDirs  ( vm ,  dirs )  { 
98+   var  i  =  dirs . length 
99+   while  ( i -- )  { 
100+     dirs [ i ] . _teardown ( ) 
101+   } 
102+   i  =  vm . _directives . indexOf ( dirs [ 0 ] ) 
103+   if  ( i  >  - 1 )  { 
104+     vm . _directives . splice ( i ,  dirs . length ) 
105+   } 
106+ } 
107+ 
102108/** 
103109 * Compile the root element of a component. There are 
104110 * 4 types of things to process here: 
0 commit comments