From: Alex Lam S.L Date: Thu, 25 Feb 2021 04:48:40 +0000 (+0000) Subject: fix corner cases in `sequences` (#4690) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=6d7ab63a6600c65958f4788dee6da5b2ea43476c;p=UglifyJS.git fix corner cases in `sequences` (#4690) fixes #4689 --- diff --git a/lib/compress.js b/lib/compress.js index 2b28c754..08b0987a 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -3118,7 +3118,7 @@ merge(Compressor.prototype, { } } } else if (stat instanceof AST_ForIn) { - stat.object = cons_seq(stat.object); + if (!is_lexical_definition(stat.init)) stat.object = cons_seq(stat.object); } else if (stat instanceof AST_If) { stat.condition = cons_seq(stat.condition); } else if (stat instanceof AST_Switch) { diff --git a/test/compress/const.js b/test/compress/const.js index 38cd8fbd..be49e845 100644 --- a/test/compress/const.js +++ b/test/compress/const.js @@ -1434,3 +1434,23 @@ issue_4527: { } expect_stdout: "aaaa" } + +issue_4689: { + options = { + sequences: true, + } + input: { + "use strict"; + var a = "PASS"; + console.log(a); + for (const a in 42); + } + expect: { + "use strict"; + var a = "PASS"; + console.log(a); + for (const a in 42); + } + expect_stdout: "PASS" + node_version: ">=4" +} diff --git a/test/compress/let.js b/test/compress/let.js index 7a9db169..b5005ebf 100644 --- a/test/compress/let.js +++ b/test/compress/let.js @@ -1319,7 +1319,6 @@ issue_4531_2: { toplevel: true, } input: { - "use strict"; var a = console; console.log(typeof a, function a() { let { [console]: a } = 0 && a; @@ -1328,7 +1327,6 @@ issue_4531_2: { }()); } expect: { - "use strict"; var o = console; console.log(typeof o, function o() { let { [console]: o } = 0; @@ -1339,3 +1337,23 @@ issue_4531_2: { expect_stdout: "object undefined" node_version: ">=6" } + +issue_4689: { + options = { + sequences: true, + } + input: { + "use strict"; + var a = "PASS"; + console.log(a); + for (let a in 42); + } + expect: { + "use strict"; + var a = "PASS"; + console.log(a); + for (let a in 42); + } + expect_stdout: "PASS" + node_version: ">=4" +}