From d7dc941ae863985a07af678005bee5f425fafa95 Mon Sep 17 00:00:00 2001 From: Rich-Harris Date: Sun, 20 Nov 2016 10:14:45 -0500 Subject: [PATCH] better sourcemaps --- compiler/generate/index.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/compiler/generate/index.js b/compiler/generate/index.js index df97dca040..bfff70b9ae 100644 --- a/compiler/generate/index.js +++ b/compiler/generate/index.js @@ -177,6 +177,8 @@ export default function generate ( parsed, template ) { if ( chunk.type === 'Text' ) { return JSON.stringify( chunk.data ); } else { + addSourcemapLocations( chunk.expression ); + contextualise( code, chunk.expression, current.contexts, current.indexes, helpers ); return `( [✂${chunk.expression.start}-${chunk.expression.end}✂] )`; } @@ -318,6 +320,8 @@ export default function generate ( parsed, template ) { ${current.target}.appendChild( ${name} ); ` ); + addSourcemapLocations( node.expression ); + const usedContexts = contextualise( code, node.expression, current.contexts, current.indexes, helpers ); const snippet = `[✂${node.expression.start}-${node.expression.end}✂]`; @@ -357,6 +361,8 @@ export default function generate ( parsed, template ) { var ${name} = null; ` ); + addSourcemapLocations( node.expression ); + const usedContexts = contextualise( code, node.expression, current.contexts, current.indexes, helpers ); const snippet = `[✂${node.expression.start}-${node.expression.end}✂]`; @@ -399,14 +405,11 @@ export default function generate ( parsed, template ) { ${name}_anchor.parentNode.removeChild( ${name}_anchor ); ` ); - current = { + current = Object.assign( {}, current, { useAnchor: true, name: renderer, target: 'target', - contexts: current.contexts, - contextChain: current.contextChain, - initStatements: [], updateStatements: [], teardownStatements: [], @@ -414,7 +417,7 @@ export default function generate ( parsed, template ) { counter: counter(), parent: current - }; + }); }, leave () { @@ -438,6 +441,8 @@ export default function generate ( parsed, template ) { const ${name}_fragment = document.createDocumentFragment(); ` ); + addSourcemapLocations( node.expression ); + contextualise( code, node.expression, current.contexts, current.indexes, helpers ); const snippet = `[✂${node.expression.start}-${node.expression.end}✂]`;