From 432b071d471fce4abec8cd312c7b80414cb4bc50 Mon Sep 17 00:00:00 2001 From: alexlamsl Date: Fri, 24 Mar 2017 12:48:03 +0800 Subject: [PATCH] add tests for #1627 --- test/input/invalid/assign_1.js | 1 + test/input/invalid/assign_2.js | 1 + test/input/invalid/assign_3.js | 1 + test/mocha/cli.js | 49 ++++++++++++++++++++++++++++++++-- 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 test/input/invalid/assign_1.js create mode 100644 test/input/invalid/assign_2.js create mode 100644 test/input/invalid/assign_3.js diff --git a/test/input/invalid/assign_1.js b/test/input/invalid/assign_1.js new file mode 100644 index 00000000..6d09d132 --- /dev/null +++ b/test/input/invalid/assign_1.js @@ -0,0 +1 @@ +console.log(1 || 5--); diff --git a/test/input/invalid/assign_2.js b/test/input/invalid/assign_2.js new file mode 100644 index 00000000..197bdc90 --- /dev/null +++ b/test/input/invalid/assign_2.js @@ -0,0 +1 @@ +console.log(2 || (Math.random() /= 2)); diff --git a/test/input/invalid/assign_3.js b/test/input/invalid/assign_3.js new file mode 100644 index 00000000..7c560e4b --- /dev/null +++ b/test/input/invalid/assign_3.js @@ -0,0 +1 @@ +console.log(3 || ++this); diff --git a/test/mocha/cli.js b/test/mocha/cli.js index a68b334c..33749045 100644 --- a/test/mocha/cli.js +++ b/test/mocha/cli.js @@ -251,7 +251,7 @@ describe("bin/uglifyjs", function () { done(); }); }); - it("Should support hyphens as shorthands", function(done) { + it("Should support hyphen as shorthand", function(done) { var command = uglifyjscmd + ' test/input/issue-1431/sample.js -m keep-fnames=true'; exec(command, function (err, stdout) { @@ -260,5 +260,50 @@ describe("bin/uglifyjs", function () { assert.strictEqual(stdout, "function f(r){return function(){function n(n){return n*n}return r(n)}}function g(n){return n(1)+n(2)}console.log(f(g)()==5);\n"); done(); }); - }) + }); + it("Should throw syntax error (5--)", function(done) { + var command = uglifyjscmd + ' test/input/invalid/assign_1.js'; + + exec(command, function (err, stdout, stderr) { + assert.ok(err); + assert.strictEqual(stdout, ""); + assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [ + "Parse error at test/input/invalid/assign_1.js:1,18", + "console.log(1 || 5--);", + " ^", + "SyntaxError: Invalid use of -- operator" + ].join("\n")); + done(); + }); + }); + it("Should throw syntax error (Math.random() /= 2)", function(done) { + var command = uglifyjscmd + ' test/input/invalid/assign_2.js'; + + exec(command, function (err, stdout, stderr) { + assert.ok(err); + assert.strictEqual(stdout, ""); + assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [ + "Parse error at test/input/invalid/assign_2.js:1,32", + "console.log(2 || (Math.random() /= 2));", + " ^", + "SyntaxError: Invalid assignment" + ].join("\n")); + done(); + }); + }); + it("Should throw syntax error (++this)", function(done) { + var command = uglifyjscmd + ' test/input/invalid/assign_3.js'; + + exec(command, function (err, stdout, stderr) { + assert.ok(err); + assert.strictEqual(stdout, ""); + assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [ + "Parse error at test/input/invalid/assign_3.js:1,23", + "console.log(3 || ++this);", + " ^", + "SyntaxError: Invalid use of ++ operator" + ].join("\n")); + done(); + }); + }); });