diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2021-03-25 00:49:01 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-25 08:49:01 +0800 |
commit | 39df3a16802a9cabd5642f85f3aeff76f8b4201d (patch) | |
tree | 7f2b66efe18d18063ae77df211924b7e2b4be8d7 | |
parent | 03c5ecb2e3d17e5919c1ca997f76900f1fa5b4dc (diff) | |
download | tracifyjs-39df3a16802a9cabd5642f85f3aeff76f8b4201d.tar.gz tracifyjs-39df3a16802a9cabd5642f85f3aeff76f8b4201d.zip |
fix corner case in `functions` (#4824)
fixes #4823
-rw-r--r-- | lib/compress.js | 1 | ||||
-rw-r--r-- | test/compress/functions.js | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/compress.js b/lib/compress.js index 423e1345..f3e40f7e 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -6226,6 +6226,7 @@ merge(Compressor.prototype, { && var_defs[sym.id] == 1 && sym.assignments == 0 && value instanceof AST_LambdaExpression + && !is_arguments(sym) && !is_arrow(value) && assigned_once(value, sym.references) && can_declare_defun(value) diff --git a/test/compress/functions.js b/test/compress/functions.js index f0e0d50f..4d4cb66d 100644 --- a/test/compress/functions.js +++ b/test/compress/functions.js @@ -5991,3 +5991,33 @@ issue_4788: { } expect_stdout: "PASS" } + +issue_4823: { + options = { + functions: true, + reduce_vars: true, + unused: true, + } + input: { + console.log(typeof function() { + { + function f() {} + var arguments = f(); + function g() {} + var arguments = g; + } + return f && arguments; + }()); + } + expect: { + console.log(typeof function() { + { + function f() {} + arguments = f(); + var arguments = function() {}; + } + return f && arguments; + }()); + } + expect_stdout: "function" +} |