From 942a1d46c5feed267ac2d554026bd9bde3fe65ae Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Wed, 15 Jun 2022 15:53:47 -0400 Subject: [PATCH] Add source mapping for closing `}` --- lib/output.js | 2 ++ test/input/issue-505/output.js | 2 +- test/input/issue-520/output.js | 2 +- test/input/source-maps/expect.js | 2 +- test/mocha/cli-2.js | 4 ++-- test/mocha/cli.js | 2 +- test/mocha/minify.js | 2 +- test/mocha/sourcemaps.js | 6 +++--- 8 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/output.js b/lib/output.js index 5c6af2add..94c8f0c5f 100644 --- a/lib/output.js +++ b/lib/output.js @@ -1247,12 +1247,14 @@ function OutputStream(options) { output.with_indent(output.next_indent(), function() { output.append_comments(self, true); }); + output.add_mapping(self.end); output.print("}"); } function print_braced(self, output, allow_directives) { if (self.body.length > 0) { output.with_block(function() { display_body(self.body, false, output, allow_directives); + output.add_mapping(self.end); }); } else print_braced_empty(self, output); } diff --git a/test/input/issue-505/output.js b/test/input/issue-505/output.js index 14f8febaa..82f67462e 100644 --- a/test/input/issue-505/output.js +++ b/test/input/issue-505/output.js @@ -2,4 +2,4 @@ function test(a){ "aaaaaaaaaaaaaaaa" ;a(err,data),a(err,data) } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZXN0IiwiY2FsbGJhY2siLCJlcnIiLCJkYXRhIl0sInNvdXJjZXMiOlsiMCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsS0FBS0M7QUFDVjtDQUNBQSxFQUFTQyxJQUFLQyxNQUNkRixFQUFTQyxJQUFLQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0ZXN0IiwiY2FsbGJhY2siLCJlcnIiLCJkYXRhIl0sInNvdXJjZXMiOlsiMCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsS0FBS0M7QUFDVjtDQUNBQSxFQUFTQyxJQUFLQyxNQUNkRixFQUFTQyxJQUFLQztBQUNsQiJ9 \ No newline at end of file diff --git a/test/input/issue-520/output.js b/test/input/issue-520/output.js index 0aa3c9632..75152c856 100644 --- a/test/input/issue-520/output.js +++ b/test/input/issue-520/output.js @@ -1,2 +1,2 @@ new function(){console.log(3)}; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25zb2xlIiwibG9nIl0sInNvdXJjZXMiOlsic3RkaW4iXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRm9vIHsgY29uc3RydWN0b3IoKXtjb25zb2xlLmxvZygxKzIpO30gfSBuZXcgRm9vKCk7XG4iXSwibWFwcGluZ3MiOiJBQUErQyxJQUFyQyxXQUFnQkEsUUFBUUMsSUFBSSJ9 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25zb2xlIiwibG9nIl0sInNvdXJjZXMiOlsic3RkaW4iXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRm9vIHsgY29uc3RydWN0b3IoKXtjb25zb2xlLmxvZygxKzIpO30gfSBuZXcgRm9vKCk7XG4iXSwibWFwcGluZ3MiOiJBQUErQyxJQUFyQyxXQUFnQkEsUUFBUUMsSUFBSSxFQUFLIn0= diff --git a/test/input/source-maps/expect.js b/test/input/source-maps/expect.js index ad0e23e53..f5f6f9c4c 100644 --- a/test/input/source-maps/expect.js +++ b/test/input/source-maps/expect.js @@ -1,2 +1,2 @@ "use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P((function(resolve){resolve(value)}))}return new(P||(P=Promise))((function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))};function somePromiseFn(){return __awaiter(this,void 0,void 0,(function*(){let value="promise-value";return value}))}somePromiseFn().then((d=>console.info(d))); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb21lUHJvbWlzZUZuIiwidmFsdWUiLCJ0aGVuIiwiZCIsImNvbnNvbGUiLCJpbmZvIl0sInNvdXJjZXMiOlsiaW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImFzeW5jIGZ1bmN0aW9uIHNvbWVQcm9taXNlRm4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgbGV0IHZhbHVlID0gJ3Byb21pc2UtdmFsdWUnO1xuICByZXR1cm4gdmFsdWU7IFxufVxuXG5zb21lUHJvbWlzZUZuKCkudGhlbihkID0+IGNvbnNvbGUuaW5mbyhkKSk7Il0sIm1hcHBpbmdzIjoieWpCQUFBLFNBQWVBLGdCLGlEQUNiLElBQUlDLE1BQVEsZ0JBQ1osT0FBT0EsU0FHVEQsZ0JBQWdCRSxNQUFLQyxHQUFLQyxRQUFRQyxLQUFLRiJ9 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb21lUHJvbWlzZUZuIiwidmFsdWUiLCJ0aGVuIiwiZCIsImNvbnNvbGUiLCJpbmZvIl0sInNvdXJjZXMiOlsiaW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImFzeW5jIGZ1bmN0aW9uIHNvbWVQcm9taXNlRm4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgbGV0IHZhbHVlID0gJ3Byb21pc2UtdmFsdWUnO1xuICByZXR1cm4gdmFsdWU7IFxufVxuXG5zb21lUHJvbWlzZUZuKCkudGhlbihkID0+IGNvbnNvbGUuaW5mbyhkKSk7Il0sIm1hcHBpbmdzIjoieWpCQUFBLFNBQWVBLGdCLGlEQUNiLElBQUlDLE1BQVEsZ0JBQ1osT0FBT0EsS0FDVCxHLENBRUFELGdCQUFnQkUsTUFBS0MsR0FBS0MsUUFBUUMsS0FBS0YifQ== diff --git a/test/mocha/cli-2.js b/test/mocha/cli-2.js index 2676963fb..56cf923d8 100644 --- a/test/mocha/cli-2.js +++ b/test/mocha/cli-2.js @@ -21,7 +21,7 @@ describe("bin/terser (2)", function() { assert.strictEqual(stdout, [ '"use strict";var foo=function foo(x){return"foo "+x};console.log(foo("bar"));', - "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb28iLCJ4IiwiY29uc29sZSIsImxvZyJdLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm1hcHBpbmdzIjoiYUFBQSxJQUFJQSxJQUFNLFNBQU5BLElBQU1DLEdBQUEsTUFBSyxPQUFTQSxHQUN4QkMsUUFBUUMsSUFBSUgsSUFBSSJ9", + "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb28iLCJ4IiwiY29uc29sZSIsImxvZyJdLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm1hcHBpbmdzIjoiYUFBQSxJQUFJQSxJQUFNLFNBQU5BLElBQU1DLEdBQUEsTUFBSyxPQUFTQSxDQUFkLEVBQ1ZDLFFBQVFDLElBQUlILElBQUkifQ==", "" ].join("\n")); done(); @@ -46,7 +46,7 @@ describe("bin/terser (2)", function() { assert.strictEqual(stdout, [ 'function foo(){return function(){console.log("PASS")}}foo()();', - "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb28iLCJjb25zb2xlIiwibG9nIiwiZiJdLCJzb3VyY2VzIjpbInRlc3QvaW5wdXQvaXNzdWUtMjMxMC9pbnB1dC5qcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFDTCxPQUFPLFdBQ0hDLFFBQVFDLElBQUksU0FLUkYsS0FDUkcifQ==", + "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb28iLCJjb25zb2xlIiwibG9nIiwiZiJdLCJzb3VyY2VzIjpbInRlc3QvaW5wdXQvaXNzdWUtMjMxMC9pbnB1dC5qcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFDTCxPQUFPLFdBQ0hDLFFBQVFDLElBQUksT0FDaEIsQ0FDSixDQUdZRixLQUNSRyJ9", "" ].join("\n")); done(); diff --git a/test/mocha/cli.js b/test/mocha/cli.js index b5f3a0a69..15243fbe6 100644 --- a/test/mocha/cli.js +++ b/test/mocha/cli.js @@ -48,7 +48,7 @@ describe("bin/terser", function() { if (err) throw err; assertCodeWithInlineMapEquals(stdout, "var bar=function(){function foo(bar){return bar}return foo}();\n" + - "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvaW5wdXQvaXNzdWUtMTMyMy9zYW1wbGUuanMiXSwibmFtZXMiOlsiYmFyIiwiZm9vIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFJQSxJQUFNLFdBQ04sU0FBU0MsSUFBS0QsS0FDVixPQUFPQSxJQUdYLE9BQU9DLElBTEQifQ==\n"); + "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvaW5wdXQvaXNzdWUtMTMyMy9zYW1wbGUuanMiXSwibmFtZXMiOlsiYmFyIiwiZm9vIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFJQSxJQUFNLFdBQ04sU0FBU0MsSUFBS0QsS0FDVixPQUFPQSxHQUNYLENBRUEsT0FBT0MsR0FDVixDQU5TIn0=\n"); done(); }); }); diff --git a/test/mocha/minify.js b/test/mocha/minify.js index 4fc4c36b9..6a547f37f 100644 --- a/test/mocha/minify.js +++ b/test/mocha/minify.js @@ -321,7 +321,7 @@ describe("minify", function() { }); var code = result.code; assert.strictEqual(code, "var a=function(n){return n};\n" + - "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhIiwiZm9vIl0sInNvdXJjZXMiOlsiMCJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsRUFBSSxTQUFTQyxHQUFPLE9BQU9BIn0="); + "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhIiwiZm9vIl0sInNvdXJjZXMiOlsiMCJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsRUFBSSxTQUFTQyxHQUFPLE9BQU9BLENBQUsifQ=="); }); it("should not append source map to output js when sourceMapInline is not enabled", async function() { var result = await minify("var a = function(foo) { return foo; };"); diff --git a/test/mocha/sourcemaps.js b/test/mocha/sourcemaps.js index 6b38c2507..bcb223465 100644 --- a/test/mocha/sourcemaps.js +++ b/test/mocha/sourcemaps.js @@ -100,7 +100,7 @@ describe("sourcemaps", function() { version: 3, sources: ["0"], names: ["wat"], - mappings: "CAAU,IACNA,IAAI", + mappings: "CAAU,CAAC,GACPA,IAAI", }); }); it("Should mark class literals", async function() { @@ -239,7 +239,7 @@ describe("sourcemaps", function() { if (result.error) throw result.error; var code = result.code; assertCodeWithInlineMapEquals(code, "var a=function(n){return n};\n" + - "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjAiXSwibmFtZXMiOlsiYSIsImZvbyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsRUFBSSxTQUFTQyxHQUFPLE9BQU9BIn0="); + "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjAiXSwibmFtZXMiOlsiYSIsImZvbyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsRUFBSSxTQUFTQyxHQUFPLE9BQU9BLENBQUsifQ=="); }); it("Should not append source map to output js when sourceMapInline is not enabled", async function() { var result = await minify("var a = function(foo) { return foo; };"); @@ -306,7 +306,7 @@ describe("sourcemaps", function() { if (result.error) throw result.error; var code = result.code; assertCodeWithInlineMapEquals(code, "var a=function(n){return n};\n" + - "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjAiXSwibmFtZXMiOlsiYSIsImZvbyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsRUFBSSxTQUFTQyxHQUFPLE9BQU9BIn0="); + "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjAiXSwibmFtZXMiOlsiYSIsImZvbyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsRUFBSSxTQUFTQyxHQUFPLE9BQU9BLENBQUsifQ=="); }); });