diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2021-01-23 23:05:43 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-24 07:05:43 +0800 |
commit | ef9f7ca3e7c7f71df440645f782b3a7da4646d9b (patch) | |
tree | 996eae678d702ea98aadc03366219dd5ea60a585 /lib/compress.js | |
parent | acc443b2cf0614351aeb953e393260f13f783c96 (diff) | |
download | tracifyjs-ef9f7ca3e7c7f71df440645f782b3a7da4646d9b.tar.gz tracifyjs-ef9f7ca3e7c7f71df440645f782b3a7da4646d9b.zip |
fix corner case in `collapse_vars` (#4587)
fixes #4586
Diffstat (limited to 'lib/compress.js')
-rw-r--r-- | lib/compress.js | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/compress.js b/lib/compress.js index c6ebb34c..f4441775 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -2345,6 +2345,7 @@ merge(Compressor.prototype, { if (expr.operator == "=" && lhs instanceof AST_SymbolRef && (def = lhs.definition()).references[0] === lhs + && !(scope.uses_arguments && is_funarg(def)) && !compressor.exposed(def)) { var referenced = def.references.length - def.replaced; if (referenced > 1) mangleable_var(expr.right); @@ -2357,6 +2358,7 @@ merge(Compressor.prototype, { var def = expr.name.definition(); if (def.const_redefs) return; if (!member(expr.name, def.orig)) return; + if (scope.uses_arguments && is_funarg(def)) return; var declared = def.orig.length - def.eliminated - (declare_only[def.name] || 0); var referenced = def.references.length - def.replaced - (assignments[def.name] || 0); if (declared > 1 && !(expr.name instanceof AST_SymbolFunarg)) { |