aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2020-12-23 20:08:57 +0000
committerGitHub <noreply@github.com>2020-12-24 04:08:57 +0800
commit7e575e9d7f40876373f073213126b729553c4d89 (patch)
tree7def9fb18c64a9263660839744b0773d3418e555
parentcb4a02949e14a8ffad88c327204f016407218ce9 (diff)
downloadtracifyjs-7e575e9d7f40876373f073213126b729553c4d89.tar.gz
tracifyjs-7e575e9d7f40876373f073213126b729553c4d89.zip
fix corner case in `if_return` (#4439)
fixes #4438
-rw-r--r--lib/compress.js2
-rw-r--r--test/compress/let.js32
2 files changed, 33 insertions, 1 deletions
diff --git a/lib/compress.js b/lib/compress.js
index 38342326..c397a605 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -2669,7 +2669,7 @@ merge(Compressor.prototype, {
block = last.body;
}
block.pop();
- if (ab.value) body.push(make_node(AST_SimpleStatement, ab.value, {
+ if (ab.value) block.push(make_node(AST_SimpleStatement, ab.value, {
body: ab.value.expression
}));
return body;
diff --git a/test/compress/let.js b/test/compress/let.js
index fc323320..59b89023 100644
--- a/test/compress/let.js
+++ b/test/compress/let.js
@@ -1228,3 +1228,35 @@ issue_1753_toplevel: {
expect_stdout: "0"
node_version: ">=4"
}
+
+issue_4438: {
+ options = {
+ if_return: true,
+ }
+ input: {
+ "use strict";
+ function f() {
+ if (console) {
+ {
+ let a = console.log;
+ return void a("PASS");
+ }
+ }
+ }
+ f();
+ }
+ expect: {
+ "use strict";
+ function f() {
+ if (!console)
+ ;
+ else {
+ let a = console.log;
+ a("PASS");
+ }
+ }
+ f();
+ }
+ expect_stdout: "PASS"
+ node_version: ">=4"
+}