From: Alex Lam S.L Date: Thu, 17 Dec 2020 05:51:34 +0000 (+0000) Subject: fix corner case in `arguments` (#4387) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=75e9fd84174eaa8bf97975ad254fe06958564547;p=UglifyJS.git fix corner case in `arguments` (#4387) fixes #4386 --- diff --git a/lib/compress.js b/lib/compress.js index b767264c..a46cd42b 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -9843,6 +9843,8 @@ merge(Compressor.prototype, { var argname = fn.argnames[index]; if (def.deleted && def.deleted[index]) { argname = null; + } else if (argname instanceof AST_Destructured) { + argname = null; } else if (argname && (compressor.has_directive("use strict") || !(fn_parent instanceof AST_Call && index < fn_parent.args.length))) { var arg_def = argname.definition(); diff --git a/test/compress/destructured.js b/test/compress/destructured.js index 9fd425d1..81beb7f7 100644 --- a/test/compress/destructured.js +++ b/test/compress/destructured.js @@ -1866,3 +1866,23 @@ issue_4383: { expect_stdout: "1" node_version: ">=6" } + +issue_4386: { + options = { + arguments: true, + } + input: { + function f({}) { + return arguments[0]; + } + console.log(f("PASS")); + } + expect: { + function f({}) { + return arguments[0]; + } + console.log(f("PASS")); + } + expect_stdout: "PASS" + node_version: ">=6" +}