From 516117e2f1c66d156b3d40d482bddba5d994ad5d Mon Sep 17 00:00:00 2001 From: Conduitry Date: Tue, 28 Mar 2017 17:18:20 -0400 Subject: [PATCH] use snake case in generated identifiers (#419) --- src/generators/Generator.js | 6 +++--- src/generators/dom/index.js | 16 ++++++++-------- src/generators/dom/visitors/Component.js | 8 ++++---- src/generators/dom/visitors/EachBlock.js | 6 +++--- src/generators/dom/visitors/IfBlock.js | 10 +++++----- src/generators/dom/visitors/MustacheTag.js | 4 ++-- src/generators/dom/visitors/RawMustacheTag.js | 4 ++-- .../visitors/attributes/addElementAttributes.js | 6 +++--- .../dom/visitors/attributes/addElementBinding.js | 2 +- test/generator/index.js | 2 +- 10 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/generators/Generator.js b/src/generators/Generator.js index bdf8de7278..d6056930e2 100644 --- a/src/generators/Generator.js +++ b/src/generators/Generator.js @@ -242,7 +242,7 @@ export default class Generator { getUniqueName ( name ) { let alias = name; - for ( let i = 1; reservedNames.has( alias ) || this.importedNames.has( alias ) || this._usedNames.has( alias ); alias = `${name}$${i++}` ); + for ( let i = 1; reservedNames.has( alias ) || this.importedNames.has( alias ) || this._usedNames.has( alias ); alias = `${name}_${i++}` ); this._usedNames.add( alias ); return alias; } @@ -251,7 +251,7 @@ export default class Generator { const localUsedNames = new Set( params ); return name => { let alias = name; - for ( let i = 1; reservedNames.has( alias ) || this.importedNames.has( alias ) || this._usedNames.has( alias ) || localUsedNames.has( alias ); alias = `${name}$${i++}` ); + for ( let i = 1; reservedNames.has( alias ) || this.importedNames.has( alias ) || this._usedNames.has( alias ) || localUsedNames.has( alias ); alias = `${name}_${i++}` ); localUsedNames.add( alias ); return alias; }; @@ -296,7 +296,7 @@ export default class Generator { } else { const { declarations } = annotateWithScopes( js ); let template = 'template'; - for ( let i = 1; declarations.has( template ); template = `template$${i++}` ); + for ( let i = 1; declarations.has( template ); template = `template_${i++}` ); this.code.overwrite( defaultExport.start, defaultExport.declaration.start, `var ${template} = ` ); diff --git a/src/generators/dom/index.js b/src/generators/dom/index.js index 233616e40f..63c4aec63b 100644 --- a/src/generators/dom/index.js +++ b/src/generators/dom/index.js @@ -78,7 +78,7 @@ class DomGenerator extends Generator { } else { properties.addBlock( deindent` update: function ( changed, ${fragment.params.join( ', ' )} ) { - var __tmp; + var ${this.alias( 'tmp' )}; ${fragment.builders.update} }, @@ -203,7 +203,7 @@ export default function dom ( parsed, source, options ) { const component = getUniqueName( 'component' ); generator.push({ - name: generator.alias( 'renderMainFragment' ), + name: generator.alias( 'render_main_fragment' ), namespace, target: 'target', localElementDepth: 0, @@ -277,13 +277,13 @@ export default function dom ( parsed, source, options ) { if ( generator.css && options.css !== false ) { builders.main.addBlock( deindent` - var ${generator.alias( 'addedCss' )} = false; - function ${generator.alias( 'addCss' )} () { + var ${generator.alias( 'added_css' )} = false; + function ${generator.alias( 'add_css' )} () { var style = ${generator.helper( 'createElement' )}( 'style' ); style.textContent = ${JSON.stringify( generator.css )}; ${generator.helper( 'appendNode' )}( style, document.head ); - ${generator.alias( 'addedCss' )} = true; + ${generator.alias( 'added_css' )} = true; } ` ); } @@ -294,7 +294,7 @@ export default function dom ( parsed, source, options ) { builders.init.addLine( `this._torndown = false;` ); if ( parsed.css && options.css !== false ) { - builders.init.addLine( `if ( !${generator.alias( 'addedCss' )} ) ${generator.alias( 'addCss' )}();` ); + builders.init.addLine( `if ( !${generator.alias( 'added_css' )} ) ${generator.alias( 'add_css' )}();` ); } if ( generator.hasComponents ) { @@ -304,7 +304,7 @@ export default function dom ( parsed, source, options ) { if ( generator.hasComplexBindings ) { builders.init.addBlock( deindent` this._bindings = []; - this._fragment = ${generator.alias( 'renderMainFragment' )}( this._state, this ); + this._fragment = ${generator.alias( 'render_main_fragment' )}( this._state, this ); if ( options.target ) this._fragment.mount( options.target, null ); while ( this._bindings.length ) this._bindings.pop()(); ` ); @@ -312,7 +312,7 @@ export default function dom ( parsed, source, options ) { builders._set.addLine( `while ( this._bindings.length ) this._bindings.pop()();` ); } else { builders.init.addBlock( deindent` - this._fragment = ${generator.alias( 'renderMainFragment' )}( this._state, this ); + this._fragment = ${generator.alias( 'render_main_fragment' )}( this._state, this ); if ( options.target ) this._fragment.mount( options.target, null ); ` ); } diff --git a/src/generators/dom/visitors/Component.js b/src/generators/dom/visitors/Component.js index b584dbc145..e79eac3044 100644 --- a/src/generators/dom/visitors/Component.js +++ b/src/generators/dom/visitors/Component.js @@ -64,12 +64,12 @@ export default { // Component has children, put them in a separate {{yield}} block if ( hasChildren ) { - const yieldName = generator.getUniqueName( `render${name}YieldFragment` ); + const yieldName = generator.getUniqueName( `render_${name}_yield_fragment` ); const params = current.params.join( ', ' ); generator.generateBlock( node, yieldName ); - const yieldFragment = current.getUniqueName( `${name}_yieldFragment` ); + const yieldFragment = current.getUniqueName( `${name}_yield_fragment` ); current.builders.init.addLine( `var ${yieldFragment} = ${yieldName}( ${params}, ${current.component} );` @@ -88,11 +88,11 @@ export default { const initialProps = local.staticAttributes .concat( local.dynamicAttributes ) .map( attribute => `${attribute.name}: ${attribute.value}` ); - const initialData = current.getUniqueName( `${name}_initialData` ); + const initialData = current.getUniqueName( `${name}_initial_data` ); if ( initialProps.length ) { statements.push( deindent` - var ${name}_initialData = { + var ${initialData} = { ${initialProps.join( ',\n' )} }; ` ); diff --git a/src/generators/dom/visitors/EachBlock.js b/src/generators/dom/visitors/EachBlock.js index 2dc6f222c8..26873d4ad5 100644 --- a/src/generators/dom/visitors/EachBlock.js +++ b/src/generators/dom/visitors/EachBlock.js @@ -4,8 +4,8 @@ import getBuilders from '../utils/getBuilders.js'; export default { enter ( generator, node ) { - const name = generator.getUniqueName( `eachBlock` ); - const renderer = generator.getUniqueName( `renderEachBlock` ); + const name = generator.getUniqueName( `each_block` ); + const renderer = generator.getUniqueName( `render_each_block` ); const elseName = generator.getUniqueName( `${name}_else` ); const renderElse = generator.getUniqueName( `${renderer}_else` ); const i = generator.current.getUniqueName( `i` ); @@ -172,7 +172,7 @@ export default { } const indexNames = new Map( generator.current.indexNames ); - const indexName = node.index || generator.current.getUniqueName( `${node.context}__index` ); + const indexName = node.index || generator.current.getUniqueName( `${node.context}_index` ); indexNames.set( node.context, indexName ); const listNames = new Map( generator.current.listNames ); diff --git a/src/generators/dom/visitors/IfBlock.js b/src/generators/dom/visitors/IfBlock.js index 81552588e5..bb0bc82c4d 100644 --- a/src/generators/dom/visitors/IfBlock.js +++ b/src/generators/dom/visitors/IfBlock.js @@ -33,13 +33,13 @@ function getConditionsAndBlocks ( generator, node, _name, i = 0 ) { export default { enter ( generator, node ) { const params = generator.current.params.join( ', ' ); - const name = generator.getUniqueName( `ifBlock` ); - const getBlock = generator.current.getUniqueName( `getBlock` ); - const currentBlock = generator.current.getUniqueName( `currentBlock` ); - const _currentBlock = generator.current.getUniqueName( `_currentBlock` ); + const name = generator.getUniqueName( `if_block` ); + const getBlock = generator.current.getUniqueName( `get_block` ); + const currentBlock = generator.current.getUniqueName( `current_block` ); + const _currentBlock = generator.current.getUniqueName( `_current_block` ); const isToplevel = generator.current.localElementDepth === 0; - const conditionsAndBlocks = getConditionsAndBlocks( generator, node, generator.getUniqueName( `renderIfBlock` ) ); + const conditionsAndBlocks = getConditionsAndBlocks( generator, node, generator.getUniqueName( `render_if_block` ) ); const anchor = `${name}_anchor`; generator.createAnchor( anchor ); diff --git a/src/generators/dom/visitors/MustacheTag.js b/src/generators/dom/visitors/MustacheTag.js index 35ec8ddee3..ff119c76f5 100644 --- a/src/generators/dom/visitors/MustacheTag.js +++ b/src/generators/dom/visitors/MustacheTag.js @@ -10,8 +10,8 @@ export default { generator.addElement( name, `${generator.helper( 'createText' )}( last_${name} )`, true ); generator.current.builders.update.addBlock( deindent` - if ( ( __tmp = ${snippet} ) !== last_${name} ) { - ${name}.data = last_${name} = __tmp; + if ( ( ${generator.alias( 'tmp' )} = ${snippet} ) !== last_${name} ) { + ${name}.data = last_${name} = ${generator.alias( 'tmp' )}; } ` ); } diff --git a/src/generators/dom/visitors/RawMustacheTag.js b/src/generators/dom/visitors/RawMustacheTag.js index 5f2d54c0e0..01365e6cad 100644 --- a/src/generators/dom/visitors/RawMustacheTag.js +++ b/src/generators/dom/visitors/RawMustacheTag.js @@ -27,8 +27,8 @@ export default { } generator.current.builders.update.addBlock( deindent` - if ( ( __tmp = ${snippet} ) !== last_${name} ) { - last_${name} = __tmp; + if ( ( ${generator.alias( 'tmp' )} = ${snippet} ) !== last_${name} ) { + last_${name} = ${generator.alias( 'tmp' )}; ${detachStatement} ${mountStatement} } diff --git a/src/generators/dom/visitors/attributes/addElementAttributes.js b/src/generators/dom/visitors/attributes/addElementAttributes.js index de0699e4e4..9ef6a55fbf 100644 --- a/src/generators/dom/visitors/attributes/addElementAttributes.js +++ b/src/generators/dom/visitors/attributes/addElementAttributes.js @@ -106,8 +106,8 @@ export default function addElementAttributes ( generator, node, local ) { local.init.addLine( updater ); local.update.addBlock( deindent` - if ( ( __tmp = ${snippet} ) !== ${last} ) { - ${last} = __tmp; + if ( ( ${generator.alias( 'tmp' )} = ${snippet} ) !== ${last} ) { + ${last} = ${generator.alias( 'tmp' )}; ${updater} } ` ); @@ -177,7 +177,7 @@ export default function addElementAttributes ( generator, node, local ) { return `var ${listName} = this.__svelte.${listName}, ${indexName} = this.__svelte.${indexName}, ${name} = ${listName}[${indexName}]`; }); - const handlerName = generator.current.getUniqueName( `${name}Handler` ); + const handlerName = generator.current.getUniqueName( `${name}_handler` ); const handlerBody = ( declarations.length ? declarations.join( '\n' ) + '\n\n' : '' ) + `[✂${attribute.expression.start}-${attribute.expression.end}✂];`; if ( generator.events.has( name ) ) { diff --git a/src/generators/dom/visitors/attributes/addElementBinding.js b/src/generators/dom/visitors/attributes/addElementBinding.js index ee222dc304..83186c227f 100644 --- a/src/generators/dom/visitors/attributes/addElementBinding.js +++ b/src/generators/dom/visitors/attributes/addElementBinding.js @@ -13,7 +13,7 @@ export default function createBinding ( generator, node, attribute, current, loc if ( !~local.allUsedContexts.indexOf( context ) ) local.allUsedContexts.push( context ); }); - const handler = current.getUniqueName( `${local.name}ChangeHandler` ); + const handler = current.getUniqueName( `${local.name}_change_handler` ); const isMultipleSelect = node.name === 'select' && node.attributes.find( attr => attr.name.toLowerCase() === 'multiple' ); // TODO use getStaticAttributeValue const type = getStaticAttributeValue( node, 'type' ); diff --git a/test/generator/index.js b/test/generator/index.js index 04599c6f2b..d50124b705 100644 --- a/test/generator/index.js +++ b/test/generator/index.js @@ -67,7 +67,7 @@ describe( 'generate', () => { // check that no ES2015+ syntax slipped in if ( !config.allowES2015 ) { try { - const startIndex = code.indexOf( 'function renderMainFragment' ); // may change! + const startIndex = code.indexOf( 'function render_main_fragment' ); // may change! const es5 = spaces( startIndex ) + code.slice( startIndex ).replace( /export default .+/, '' ); acorn.parse( es5, { ecmaVersion: 5 }); } catch ( err ) {