diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2021-02-25 04:48:40 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-25 12:48:40 +0800 |
commit | 6d7ab63a6600c65958f4788dee6da5b2ea43476c (patch) | |
tree | 67d2fc2054c8f7287852bca7c691d6a45e576ea6 | |
parent | 822b1da5d2be26245baa555e75bd70a71d3be506 (diff) | |
download | tracifyjs-6d7ab63a6600c65958f4788dee6da5b2ea43476c.tar.gz tracifyjs-6d7ab63a6600c65958f4788dee6da5b2ea43476c.zip |
fix corner cases in `sequences` (#4690)
fixes #4689
-rw-r--r-- | lib/compress.js | 2 | ||||
-rw-r--r-- | test/compress/const.js | 20 | ||||
-rw-r--r-- | test/compress/let.js | 22 |
3 files changed, 41 insertions, 3 deletions
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" +} |