diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2020-12-13 16:03:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-14 00:03:44 +0800 |
commit | fcc40d0502a29e09a164ca04603db33b7dedfc3c (patch) | |
tree | a79473815b3d9c98ec0c7647b9dd361a9e18f14a | |
parent | b309527264ff7aea380df98021133bb3ff591a2d (diff) | |
download | tracifyjs-fcc40d0502a29e09a164ca04603db33b7dedfc3c.tar.gz tracifyjs-fcc40d0502a29e09a164ca04603db33b7dedfc3c.zip |
fix corner case in `dead_code` (#4378)
fixes #4377
-rw-r--r-- | lib/compress.js | 4 | ||||
-rw-r--r-- | test/compress/async.js | 25 |
2 files changed, 27 insertions, 2 deletions
diff --git a/lib/compress.js b/lib/compress.js index db91155c..3e70f2eb 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -3016,7 +3016,7 @@ merge(Compressor.prototype, { } function extract_declarations_from_unreachable_code(compressor, stat, target) { - if (!(stat instanceof AST_Definitions || stat instanceof AST_Defun)) { + if (!(stat instanceof AST_Definitions || is_defun(stat))) { AST_Node.warn("Dropping unreachable code [{file}:{line},{col}]", stat.start); } var block; @@ -3032,7 +3032,7 @@ merge(Compressor.prototype, { } return true; } - if (node instanceof AST_Defun) { + if (is_defun(node)) { push(node); return true; } diff --git a/test/compress/async.js b/test/compress/async.js index 71df2449..8b7f596e 100644 --- a/test/compress/async.js +++ b/test/compress/async.js @@ -471,3 +471,28 @@ issue_4359: { expect_stdout: "PASS" node_version: ">=8" } + +issue_4377: { + options = { + dead_code: true, + inline: true, + side_effects: true, + } + input: { + console.log(typeof function() { + return function() { + f; + async function f() {} + return f(); + }(); + }().then); + } + expect: { + console.log(typeof function() { + return f(); + async function f() {} + }().then); + } + expect_stdout: "function" + node_version: ">=8" +} |