diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2020-11-13 18:08:05 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-14 02:08:05 +0800 |
commit | 6fd5b5b371dd805e679042916c7c0fae79798d75 (patch) | |
tree | c12e4c47ed2a26bcb8589b93657307fb25db20e3 /test/compress | |
parent | fba27bfb71cd973f76e8d1007edec935f25ace77 (diff) | |
download | tracifyjs-6fd5b5b371dd805e679042916c7c0fae79798d75.tar.gz tracifyjs-6fd5b5b371dd805e679042916c7c0fae79798d75.zip |
fix corner case in `loops` (#4275)
fixes #4274
Diffstat (limited to 'test/compress')
-rw-r--r-- | test/compress/const.js | 50 | ||||
-rw-r--r-- | test/compress/let.js | 56 |
2 files changed, 106 insertions, 0 deletions
diff --git a/test/compress/const.js b/test/compress/const.js index 9ffb0d34..333171b4 100644 --- a/test/compress/const.js +++ b/test/compress/const.js @@ -1175,3 +1175,53 @@ issue_4261: { } expect_stdout: "42" } + +issue_4274_1: { + options = { + loops: true, + } + input: { + for (;;) { + if (console.log("PASS")) { + const a = 0; + } else { + break; + var a; + } + } + } + expect: { + for (; console.log("PASS");) { + { + const a = 0; + } + var a; + } + } + expect_stdout: true +} + +issue_4274_2: { + options = { + loops: true, + } + input: { + for (;;) { + if (!console.log("PASS")) { + break; + var a; + } else { + const a = 0; + } + } + } + expect: { + for (; console.log("PASS");) { + { + const a = 0; + } + var a; + } + } + expect_stdout: true +} diff --git a/test/compress/let.js b/test/compress/let.js index 9a6fc944..728e40b4 100644 --- a/test/compress/let.js +++ b/test/compress/let.js @@ -950,3 +950,59 @@ issue_4248: { expect_stdout: "PASS" node_version: ">=4" } + +issue_4274_1: { + options = { + loops: true, + } + input: { + "use strict"; + for (;;) { + if (console.log("PASS")) { + let a; + } else { + break; + var a; + } + } + } + expect: { + "use strict"; + for (; console.log("PASS");) { + { + let a; + } + var a; + } + } + expect_stdout: "PASS" + node_version: ">=4" +} + +issue_4274_2: { + options = { + loops: true, + } + input: { + "use strict"; + for (;;) { + if (!console.log("PASS")) { + break; + var a; + } else { + let a; + } + } + } + expect: { + "use strict"; + for (; console.log("PASS");) { + { + let a; + } + var a; + } + } + expect_stdout: "PASS" + node_version: ">=4" +} |