diff --git a/src/generators/dom/index.js b/src/generators/dom/index.js index 406e676e95..2872a948c1 100644 --- a/src/generators/dom/index.js +++ b/src/generators/dom/index.js @@ -138,6 +138,10 @@ class DomGenerator extends Generator { this.uses[ name ] = true; + return this.alias( name ); + } + + alias ( name ) { if ( !( name in this.aliases ) ) { let alias = name; let i = 1; @@ -188,7 +192,7 @@ export default function dom ( parsed, source, options, names ) { } generator.push({ - name: 'renderMainFragment', + name: generator.alias( 'renderMainFragment' ), namespace, target: 'target', localElementDepth: 0, @@ -238,12 +242,12 @@ export default function dom ( parsed, source, options, names ) { }); builders.main.addBlock( deindent` - function applyComputations ( state, newState, oldState, isInitial ) { + function ${generator.alias( 'applyComputations' )} ( state, newState, oldState, isInitial ) { ${builder} } ` ); - builders._set.addLine( `applyComputations( this._state, newState, oldState, false )` ); + builders._set.addLine( `${generator.alias( 'applyComputations' )}( this._state, newState, oldState, false )` ); } // TODO is the `if` necessary? @@ -259,13 +263,13 @@ export default function dom ( parsed, source, options, names ) { if ( parsed.css && options.css !== false ) { builders.main.addBlock( deindent` - var addedCss = false; - function addCss () { + var ${generator.alias( 'addedCss' )} = false; + function ${generator.alias( 'addCss' )} () { var style = ${generator.helper( 'createElement' )}( 'style' ); style.textContent = ${JSON.stringify( processCss( parsed, generator.code ) )}; ${generator.helper( 'appendNode' )}( style, document.head ); - addedCss = true; + ${generator.alias( 'addedCss' )} = true; } ` ); } @@ -276,7 +280,7 @@ export default function dom ( parsed, source, options, names ) { builders.init.addLine( `this._torndown = false;` ); if ( parsed.css && options.css !== false ) { - builders.init.addLine( `if ( !addedCss ) addCss();` ); + builders.init.addLine( `if ( !${generator.alias( 'addedCss' )} ) ${generator.alias( 'addCss' )}();` ); } if ( generator.hasComponents ) { @@ -286,7 +290,7 @@ export default function dom ( parsed, source, options, names ) { if ( generator.hasComplexBindings ) { builders.init.addBlock( deindent` this._bindings = []; - this._fragment = renderMainFragment( this._state, this ); + this._fragment = ${generator.alias( 'renderMainFragment' )}( this._state, this ); if ( options.target ) this._fragment.mount( options.target, null ); while ( this._bindings.length ) this._bindings.pop()(); ` ); @@ -294,7 +298,7 @@ export default function dom ( parsed, source, options, names ) { builders._set.addLine( `while ( this._bindings.length ) this._bindings.pop()();` ); } else { builders.init.addBlock( deindent` - this._fragment = renderMainFragment( this._state, this ); + this._fragment = ${generator.alias( 'renderMainFragment' )}( this._state, this ); if ( options.target ) this._fragment.mount( options.target, null ); ` ); } @@ -327,7 +331,7 @@ export default function dom ( parsed, source, options, names ) { if ( templateProperties.computed ) { constructorBlock.addLine( - `applyComputations( this._state, this._state, {}, true );` + `${generator.alias( 'applyComputations' )}( this._state, this._state, {}, true );` ); } @@ -419,4 +423,4 @@ export default function dom ( parsed, source, options, names ) { } return generator.generate( builders.main.toString(), options, { name, format } ); -} \ No newline at end of file +} diff --git a/test/generator/samples/deconflict-non-helpers/_config.js b/test/generator/samples/deconflict-non-helpers/_config.js new file mode 100644 index 0000000000..978e4c27e3 --- /dev/null +++ b/test/generator/samples/deconflict-non-helpers/_config.js @@ -0,0 +1,8 @@ +export default { + html: `ABCD`, + + test ( assert, component ) { + assert.equal( component.get( 'compute' ), 'ABCD' ); + component.destroy(); + } +}; diff --git a/test/generator/samples/deconflict-non-helpers/main.html b/test/generator/samples/deconflict-non-helpers/main.html new file mode 100644 index 0000000000..8541b090f9 --- /dev/null +++ b/test/generator/samples/deconflict-non-helpers/main.html @@ -0,0 +1,17 @@ +{{compute}} + + diff --git a/test/generator/samples/deconflict-non-helpers/module.js b/test/generator/samples/deconflict-non-helpers/module.js new file mode 100644 index 0000000000..ff4e71e251 --- /dev/null +++ b/test/generator/samples/deconflict-non-helpers/module.js @@ -0,0 +1,4 @@ +export const addCss = 'a'; +export const addedCss = 'b'; +export const applyComputations = 'c'; +export const renderMainFragment = 'd';