diff --git a/compiler/generate/visitors/Component.js b/compiler/generate/visitors/Component.js index 876ecadb03..7fcb427b41 100644 --- a/compiler/generate/visitors/Component.js +++ b/compiler/generate/visitors/Component.js @@ -17,6 +17,7 @@ export default { init: [], mount: [], update: [], + detach: [], teardown: [] }; @@ -44,6 +45,7 @@ export default { initStatements: [], mountStatements: [], updateStatements: [], + detachStatements: [], teardownStatements: [], counter: counter() @@ -123,6 +125,7 @@ export default { generator.current.initStatements.push( local.init.join( '\n' ) ); if ( local.update.length ) generator.current.updateStatements.push( local.update.join( '\n' ) ); if ( local.mount.length ) generator.current.mountStatements.push( local.mount.join( '\n' ) ); + if ( local.detach.length ) generator.current.detachStatements.push( local.detach.join( '\n' ) ); generator.current.teardownStatements.push( local.teardown.join( '\n' ) ); generator.push({ diff --git a/compiler/generate/visitors/Element.js b/compiler/generate/visitors/Element.js index b5b8b9e7ad..69614e721f 100644 --- a/compiler/generate/visitors/Element.js +++ b/compiler/generate/visitors/Element.js @@ -69,7 +69,7 @@ export default { local.init.unshift( render ); if ( isToplevel ) { - local.teardown.push( `if ( detach ) ${name}.parentNode.removeChild( ${name} );` ); + local.detach.push( `${name}.parentNode.removeChild( ${name} );` ); } // special case – bound