aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2021-01-10 20:17:39 +0000
committerGitHub <noreply@github.com>2021-01-11 04:17:39 +0800
commit16b97f9558e07ae95ea7c414e926d697c2521d60 (patch)
treee6694faf720f177acef966a78b6a5e235e310603
parentdbfa5d4d14c1984da94c2435f349ecbd3dbb36e9 (diff)
downloadtracifyjs-16b97f9558e07ae95ea7c414e926d697c2521d60.tar.gz
tracifyjs-16b97f9558e07ae95ea7c414e926d697c2521d60.zip
fix corner case in `arguments` (#4535)
fixes #4534
-rw-r--r--lib/compress.js6
-rw-r--r--test/compress/awaits.js18
2 files changed, 21 insertions, 3 deletions
diff --git a/lib/compress.js b/lib/compress.js
index f8cf75f1..5526972f 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -10463,9 +10463,9 @@ merge(Compressor.prototype, {
argname = null;
} else if (argname) {
var arg_def;
- if (!(argname instanceof AST_SymbolFunarg)) {
- argname = null;
- } else if (expr.scope.find_variable(argname.name) !== (arg_def = argname.definition())) {
+ if (!(argname instanceof AST_SymbolFunarg)
+ || argname.name == "await"
+ || expr.scope.find_variable(argname.name) !== (arg_def = argname.definition())) {
argname = null;
} else if (compressor.has_directive("use strict")
|| fn.name
diff --git a/test/compress/awaits.js b/test/compress/awaits.js
index 8caa60c0..89d11bb9 100644
--- a/test/compress/awaits.js
+++ b/test/compress/awaits.js
@@ -977,3 +977,21 @@ issue_4454_2: {
]
node_version: ">=8"
}
+
+issue_4534: {
+ options = {
+ arguments: true,
+ }
+ input: {
+ (function(await) {
+ (async () => console.log(arguments[0]))();
+ })("PASS");
+ }
+ expect: {
+ (function(await) {
+ (async () => console.log(arguments[0]))();
+ })("PASS");
+ }
+ expect_stdout: "PASS"
+ node_version: ">=8"
+}