diff --git a/src/generators/Generator.js b/src/generators/Generator.js index f3aa58dc26..f2757dbe37 100644 --- a/src/generators/Generator.js +++ b/src/generators/Generator.js @@ -46,6 +46,8 @@ export default class Generator { } contextualise ( expression, isEventHandler ) { + this.addSourcemapLocations( expression ); + const usedContexts = []; const dependencies = []; diff --git a/src/generators/dom/visitors/MustacheTag.js b/src/generators/dom/visitors/MustacheTag.js index 74f24a3adc..48bce23747 100644 --- a/src/generators/dom/visitors/MustacheTag.js +++ b/src/generators/dom/visitors/MustacheTag.js @@ -4,7 +4,6 @@ export default { enter ( generator, node ) { const name = generator.current.getUniqueName( 'text' ); - generator.addSourcemapLocations( node.expression ); const { snippet } = generator.contextualise( node.expression ); generator.current.builders.init.addLine( `var last_${name} = ${snippet}` ); diff --git a/src/generators/dom/visitors/RawMustacheTag.js b/src/generators/dom/visitors/RawMustacheTag.js index a68a68c681..5f2d54c0e0 100644 --- a/src/generators/dom/visitors/RawMustacheTag.js +++ b/src/generators/dom/visitors/RawMustacheTag.js @@ -4,7 +4,6 @@ export default { enter ( generator, node ) { const name = generator.current.getUniqueName( 'raw' ); - generator.addSourcemapLocations( node.expression ); const { snippet } = generator.contextualise( node.expression ); // we would have used comments here, but the `insertAdjacentHTML` api only diff --git a/src/generators/dom/visitors/attributes/addComponentAttributes.js b/src/generators/dom/visitors/attributes/addComponentAttributes.js index 5175a644c6..a5da73babc 100644 --- a/src/generators/dom/visitors/attributes/addComponentAttributes.js +++ b/src/generators/dom/visitors/attributes/addComponentAttributes.js @@ -57,8 +57,6 @@ export default function addComponentAttributes ( generator, node, local ) { if ( chunk.type === 'Text' ) { return JSON.stringify( chunk.data ); } else { - generator.addSourcemapLocations( chunk.expression ); - const { dependencies, string } = generator.contextualise( chunk.expression ); dependencies.forEach( dependency => { if ( !~allDependencies.indexOf( dependency ) ) allDependencies.push( dependency ); @@ -84,7 +82,7 @@ export default function addComponentAttributes ( generator, node, local ) { const usedContexts = []; attribute.expression.arguments.forEach( arg => { - const { contexts } = generator.contextualise( arg, true, true ); + const { contexts } = generator.contextualise( arg, true ); contexts.forEach( context => { if ( !~usedContexts.indexOf( context ) ) usedContexts.push( context ); diff --git a/src/generators/dom/visitors/attributes/addElementAttributes.js b/src/generators/dom/visitors/attributes/addElementAttributes.js index 57605a9a1e..a6e577de40 100644 --- a/src/generators/dom/visitors/attributes/addElementAttributes.js +++ b/src/generators/dom/visitors/attributes/addElementAttributes.js @@ -96,7 +96,7 @@ export default function addElementAttributes ( generator, node, local ) { if ( propertyName ) { updater = `${local.name}.${propertyName} = ${last};`; } else { - updater = `${generator.helper( method )}( ${local.name}, '${name}', ${last} );`; // TODO use snippet both times – see note below + updater = `${generator.helper( method )}( ${local.name}, '${name}', ${last} );`; } local.init.addLine( updater ); @@ -117,10 +117,8 @@ export default function addElementAttributes ( generator, node, local ) { if ( chunk.type === 'Text' ) { return JSON.stringify( chunk.data ); } else { - generator.addSourcemapLocations( chunk.expression ); - - const { string } = generator.contextualise( chunk.expression ); // TODO use snippet for sourcemap support – need to add a 'copy' feature to MagicString first - return `( ${string} )`; + const { snippet } = generator.contextualise( chunk.expression ); + return `( ${snippet} )`; } }).join( ' + ' ) );