diff --git a/lib/scope.js b/lib/scope.js index cfcb2d95..ad31f306 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -226,7 +226,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) { defun.def_variable(node); } else if (node instanceof AST_SymbolLambda) { var def = defun.def_function(node, node.name == "arguments" ? undefined : defun); - if (options.ie) def.defun = defun.parent_scope.resolve(); + if (options.ie && node.name != "arguments") def.defun = defun.parent_scope.resolve(); } else if (node instanceof AST_SymbolLet) { var def = scope.def_variable(node); if (exported) def.exported = true; diff --git a/test/compress/destructured.js b/test/compress/destructured.js index 86a112cf..7850d516 100644 --- a/test/compress/destructured.js +++ b/test/compress/destructured.js @@ -3473,3 +3473,27 @@ issue_5314_2: { expect_stdout: "PASS" node_version: ">=6" } + +issue_5370: { + options = { + dead_code: true, + ie: true, + unused: true, + } + input: { + console.log(function arguments({}) { + return arguments; + try {} catch (e) { + var arguments; + } + }(42)); + } + expect: { + console.log(function arguments({}) { + return arguments; + var arguments; + }(42)); + } + expect_stdout: true + node_version: ">=6" +} diff --git a/test/compress/rests.js b/test/compress/rests.js index d32cf2aa..98a640e8 100644 --- a/test/compress/rests.js +++ b/test/compress/rests.js @@ -1299,3 +1299,27 @@ issue_5360: { expect_stdout: "PASS" node_version: ">=8.3.0" } + +issue_5370: { + options = { + dead_code: true, + ie: true, + unused: true, + } + input: { + console.log(function arguments(...a) { + return arguments; + try {} catch (e) { + var arguments; + } + }()); + } + expect: { + console.log(function arguments(...a) { + return arguments; + var arguments; + }()); + } + expect_stdout: true + node_version: ">=6" +}