From: Alex Lam S.L Date: Sat, 31 Mar 2018 09:48:20 +0000 (+0900) Subject: give sensible error against invalid input source map (#3044) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=02f47e1713cb413ac0d2602039c18292f43db863;p=UglifyJS.git give sensible error against invalid input source map (#3044) --- diff --git a/lib/minify.js b/lib/minify.js index 8e4aded9..8dc275cf 100644 --- a/lib/minify.js +++ b/lib/minify.js @@ -165,7 +165,11 @@ function minify(files, options) { if (!HOP(options.output, "code") || options.output.code) { if (options.sourceMap) { if (typeof options.sourceMap.content == "string") { - options.sourceMap.content = JSON.parse(options.sourceMap.content); + try { + options.sourceMap.content = JSON.parse(options.sourceMap.content); + } catch (ex) { + throw new Error("invalid input source map: " + options.sourceMap.content); + } } options.output.source_map = SourceMap({ file: options.sourceMap.filename, diff --git a/test/mocha/cli.js b/test/mocha/cli.js index 10f0465a..7f0bd79f 100644 --- a/test/mocha/cli.js +++ b/test/mocha/cli.js @@ -56,6 +56,18 @@ describe("bin/uglifyjs", function () { done(); }); }); + it("Should give sensible error against invalid input source map", function(done) { + var command = uglifyjscmd + " test/mocha.js --source-map content=blah,url=inline"; + + exec(command, function (err, stdout, stderr) { + assert.ok(err); + assert.deepEqual(stderr.split(/\n/).slice(0, 2), [ + "INFO: Using input source map: blah", + "ERROR: invalid input source map: blah", + ]); + done(); + }); + }); it("Should append source map to output when using --source-map url=inline", function (done) { var command = uglifyjscmd + " test/input/issue-1323/sample.js --source-map url=inline";