From e275148998638bdcf795257ed03941ca34e33018 Mon Sep 17 00:00:00 2001 From: alexlamsl Date: Sat, 18 Feb 2017 19:27:31 +0800 Subject: enhance `global_defs` - support arrays, objects & AST_Node - support `"a.b":1` on both cli & API - emit warning if variable is modified - override top-level variables fixes #1416 closes #1198 closes #1469 --- test/input/global_defs/nested.js | 1 + test/input/global_defs/simple.js | 1 + 2 files changed, 2 insertions(+) create mode 100644 test/input/global_defs/nested.js create mode 100644 test/input/global_defs/simple.js (limited to 'test/input') diff --git a/test/input/global_defs/nested.js b/test/input/global_defs/nested.js new file mode 100644 index 00000000..dbf57909 --- /dev/null +++ b/test/input/global_defs/nested.js @@ -0,0 +1 @@ +console.log(C.V, C.D); diff --git a/test/input/global_defs/simple.js b/test/input/global_defs/simple.js new file mode 100644 index 00000000..44d515e3 --- /dev/null +++ b/test/input/global_defs/simple.js @@ -0,0 +1 @@ +console.log(D); -- cgit v1.2.3 From 09f9ae2de9fb2a328e088ab82ad1e49731c971fb Mon Sep 17 00:00:00 2001 From: alexlamsl Date: Sat, 18 Feb 2017 19:30:33 +0800 Subject: improve `--beautify bracketize` reduce whitespaces from if-else statements fixes #1482 closes #1483 --- lib/output.js | 5 ++- test/input/issue-1482/bracketize.js | 73 +++++++++++++++++++++++++++++++++++++ test/input/issue-1482/default.js | 17 +++++++++ test/input/issue-1482/input.js | 12 ++++++ test/mocha/cli.js | 21 +++++++++++ 5 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 test/input/issue-1482/bracketize.js create mode 100644 test/input/issue-1482/default.js create mode 100644 test/input/issue-1482/input.js (limited to 'test/input') diff --git a/lib/output.js b/lib/output.js index b6f0a873..4f576c96 100644 --- a/lib/output.js +++ b/lib/output.js @@ -938,7 +938,10 @@ function OutputStream(options) { output.space(); output.print("else"); output.space(); - force_statement(self.alternative, output); + if (self.alternative instanceof AST_If) + self.alternative.print(output); + else + force_statement(self.alternative, output); } else { self._do_print_body(output); } diff --git a/test/input/issue-1482/bracketize.js b/test/input/issue-1482/bracketize.js new file mode 100644 index 00000000..2c2b103c --- /dev/null +++ b/test/input/issue-1482/bracketize.js @@ -0,0 +1,73 @@ +if (x) { + foo(); +} + +if (x) { + foo(); +} else { + baz(); +} + +if (x) { + foo(); +} else if (y) { + bar(); +} else { + baz(); +} + +if (x) { + if (y) { + foo(); + } else { + bar(); + } +} else { + baz(); +} + +if (x) { + foo(); +} else if (y) { + bar(); +} else if (z) { + baz(); +} else { + moo(); +} + +function f() { + if (x) { + foo(); + } + if (x) { + foo(); + } else { + baz(); + } + if (x) { + foo(); + } else if (y) { + bar(); + } else { + baz(); + } + if (x) { + if (y) { + foo(); + } else { + bar(); + } + } else { + baz(); + } + if (x) { + foo(); + } else if (y) { + bar(); + } else if (z) { + baz(); + } else { + moo(); + } +} diff --git a/test/input/issue-1482/default.js b/test/input/issue-1482/default.js new file mode 100644 index 00000000..14054e98 --- /dev/null +++ b/test/input/issue-1482/default.js @@ -0,0 +1,17 @@ +if (x) foo(); + +if (x) foo(); else baz(); + +if (x) foo(); else if (y) bar(); else baz(); + +if (x) if (y) foo(); else bar(); else baz(); + +if (x) foo(); else if (y) bar(); else if (z) baz(); else moo(); + +function f() { + if (x) foo(); + if (x) foo(); else baz(); + if (x) foo(); else if (y) bar(); else baz(); + if (x) if (y) foo(); else bar(); else baz(); + if (x) foo(); else if (y) bar(); else if (z) baz(); else moo(); +} diff --git a/test/input/issue-1482/input.js b/test/input/issue-1482/input.js new file mode 100644 index 00000000..0186e82c --- /dev/null +++ b/test/input/issue-1482/input.js @@ -0,0 +1,12 @@ +if (x) foo(); +if (x) foo(); else baz(); +if (x) foo(); else if (y) bar(); else baz(); +if (x) if (y) foo(); else bar(); else baz(); +if (x) foo(); else if (y) bar(); else if (z) baz(); else moo(); +function f() { +if (x) foo(); +if (x) foo(); else baz(); +if (x) foo(); else if (y) bar(); else baz(); +if (x) if (y) foo(); else bar(); else baz(); +if (x) foo(); else if (y) bar(); else if (z) baz(); else moo(); +} diff --git a/test/mocha/cli.js b/test/mocha/cli.js index 64599c51..450df1fd 100644 --- a/test/mocha/cli.js +++ b/test/mocha/cli.js @@ -1,5 +1,6 @@ var assert = require("assert"); var exec = require("child_process").exec; +var readFileSync = require("fs").readFileSync; describe("bin/uglifyjs", function () { var uglifyjscmd = '"' + process.argv[0] + '" bin/uglifyjs'; @@ -130,4 +131,24 @@ describe("bin/uglifyjs", function () { done(); }); }); + it("Should work with `--beautify`", function (done) { + var command = uglifyjscmd + ' test/input/issue-1482/input.js -b'; + + exec(command, function (err, stdout) { + if (err) throw err; + + assert.strictEqual(stdout, readFileSync("test/input/issue-1482/default.js", "utf8")); + done(); + }); + }); + it("Should work with `--beautify bracketize`", function (done) { + var command = uglifyjscmd + ' test/input/issue-1482/input.js -b bracketize'; + + exec(command, function (err, stdout) { + if (err) throw err; + + assert.strictEqual(stdout, readFileSync("test/input/issue-1482/bracketize.js", "utf8")); + done(); + }); + }); }); -- cgit v1.2.3