aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/compress.js4
-rw-r--r--test/compress/destructured.js26
2 files changed, 29 insertions, 1 deletions
diff --git a/lib/compress.js b/lib/compress.js
index 0e585e17..1d729096 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -4612,7 +4612,9 @@ merge(Compressor.prototype, {
for (var j = 0; j < len; j++) {
var arg = call.args[j];
if (!(arg instanceof AST_SymbolRef)) break;
- if (arg.definition() !== self.argnames[j].definition()) break;
+ var argname = self.argnames[j];
+ if (!(argname instanceof AST_SymbolFunarg)) break;
+ if (arg.definition() !== argname.definition()) break;
}
if (j < len) break;
for (; j < call.args.length; j++) {
diff --git a/test/compress/destructured.js b/test/compress/destructured.js
index 6eea10d2..afc9152b 100644
--- a/test/compress/destructured.js
+++ b/test/compress/destructured.js
@@ -1684,3 +1684,29 @@ issue_4315: {
expect_stdout: "PASS"
node_version: ">=6"
}
+
+issue_4319: {
+ options = {
+ inline: true,
+ reduce_vars: true,
+ toplevel: true,
+ }
+ input: {
+ function f(a) {
+ while (!a);
+ }
+ console.log(function({}) {
+ return f(console);
+ }(0));
+ }
+ expect: {
+ function f(a) {
+ while (!a);
+ }
+ console.log(function({}) {
+ return f(console);
+ }(0));
+ }
+ expect_stdout: "undefined"
+ node_version: ">=6"
+}