From 8c31701a6b4353e549b7e8891114a41ee48457c8 Mon Sep 17 00:00:00 2001 From: Michael FIG Date: Tue, 30 Jun 2020 20:26:53 -0600 Subject: [PATCH] fix: get line numbers to be proper again --- packages/bundle-source/demo/circular/b.js | 1 - packages/bundle-source/src/index.js | 13 +++++++------ packages/bundle-source/test/circular.js | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/bundle-source/demo/circular/b.js b/packages/bundle-source/demo/circular/b.js index 97537b0887d..5a1a7f1cb46 100644 --- a/packages/bundle-source/demo/circular/b.js +++ b/packages/bundle-source/demo/circular/b.js @@ -5,5 +5,4 @@ import { foo } from './a'; * ---------> * */ -console.error('here am I'); export { foo as bar }; diff --git a/packages/bundle-source/src/index.js b/packages/bundle-source/src/index.js index 16739443269..40071b560a0 100644 --- a/packages/bundle-source/src/index.js +++ b/packages/bundle-source/src/index.js @@ -88,20 +88,21 @@ export default async function bundleSource( // eslint-disable-next-line no-await-in-loop const consumer = await new SourceMapConsumer(chunk.map); const unmapped = new WeakSet(); - let lastPos = ast.loc.start; + let lastPos = { ...ast.loc.start }; unmapLoc = loc => { if (!loc || unmapped.has(loc)) { return; } - // Ensure we start in the right position... doesn't matter where we end. - loc.end = loc.start; + // Make sure things start at least at the right place. + loc.end = { ...loc.start }; for (const pos of ['start', 'end']) { if (loc[pos]) { const newPos = consumer.originalPositionFor(loc[pos]); if (newPos.source !== null) { - lastPos = loc[pos]; - lastPos.line = newPos.line; - lastPos.column = newPos.column; + lastPos = { + line: newPos.line, + column: newPos.column, + }; } loc[pos] = lastPos; } diff --git a/packages/bundle-source/test/circular.js b/packages/bundle-source/test/circular.js index 434f77dbf66..0eac35f0ec3 100644 --- a/packages/bundle-source/test/circular.js +++ b/packages/bundle-source/test/circular.js @@ -10,7 +10,7 @@ function evaluate(src, endowments) { test('circular export', async t => { try { - const { source: src1 } = await bundleSource( + const { source: src1, sourceMap: map1 } = await bundleSource( `${__dirname}/../demo/circular/a.js`, 'nestedEvaluate', ); @@ -22,7 +22,7 @@ test('circular export', async t => { return evaluate(src, { require, nestedEvaluate }); }; // console.log(src1); - const srcMap1 = `(${src1})`; + const srcMap1 = `(${src1})\n${map1}`; const ex1 = nestedEvaluate(srcMap1)(); // console.log(err.stack);