From 2bea089ce1f5fe33e7e6f50ab923acc0077a28b1 Mon Sep 17 00:00:00 2001 From: hai-x Date: Thu, 2 Jan 2025 15:03:34 +0800 Subject: [PATCH 1/2] fix: this.outro need to be mapped --- src/MagicString.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/MagicString.js b/src/MagicString.js index 9a5168b..0611a49 100644 --- a/src/MagicString.js +++ b/src/MagicString.js @@ -168,6 +168,10 @@ export default class MagicString { if (chunk.outro.length) mappings.advance(chunk.outro); }); + if (this.outro) { + mappings.advance(this.outro); + } + return { file: options.file ? options.file.split(/[/\\]/).pop() : undefined, sources: [ From 396ded6e1c21cc56a92d0fbf7373ce03d043f81f Mon Sep 17 00:00:00 2001 From: hai-x Date: Thu, 2 Jan 2025 17:36:32 +0800 Subject: [PATCH 2/2] add test --- test/MagicString.test.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/MagicString.test.js b/test/MagicString.test.js index 9cf7b12..49d7790 100644 --- a/test/MagicString.test.js +++ b/test/MagicString.test.js @@ -259,6 +259,19 @@ describe('MagicString', () => { assert.equal(originLoc.column, 0); }); + it('should generate a correct sourcemap including correct lines', () => { + const s = new MagicString( + 'var answer = 42;\nconsole.log("the answer is %s", answer);' + ); + s.append('\n\n\n\n}).call(global);'); + assert.equal( + // output lines + s.toString().split('\n').length, + // sourcemap lines + s.generateDecodedMap().mappings.length + ); + }); + it('should generate a sourcemap using specified locations', () => { const s = new MagicString('abcdefghijkl');