@@ -9897,7 +9897,10 @@ merge(Compressor.prototype, {
|
|||||||
} else if (argname instanceof AST_Destructured) {
|
} else if (argname instanceof AST_Destructured) {
|
||||||
argname = null;
|
argname = null;
|
||||||
} else if (argname && (compressor.has_directive("use strict")
|
} else if (argname && (compressor.has_directive("use strict")
|
||||||
|| !(fn_parent instanceof AST_Call && index < fn_parent.args.length))) {
|
|| !(fn_parent instanceof AST_Call && index < fn_parent.args.length)
|
||||||
|
|| !all(fn.argnames, function(argname) {
|
||||||
|
return !(argname instanceof AST_Destructured);
|
||||||
|
}))) {
|
||||||
var arg_def = argname.definition();
|
var arg_def = argname.definition();
|
||||||
if (!compressor.option("reduce_vars")
|
if (!compressor.option("reduce_vars")
|
||||||
|| def.reassigned
|
|| def.reassigned
|
||||||
|
|||||||
@@ -1886,3 +1886,23 @@ issue_4386: {
|
|||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
node_version: ">=6"
|
node_version: ">=6"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4395: {
|
||||||
|
options = {
|
||||||
|
arguments: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
console.log(function(a, {}) {
|
||||||
|
a = "FAIL";
|
||||||
|
return arguments[0];
|
||||||
|
}("PASS", 42));
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
console.log(function(a, {}) {
|
||||||
|
a = "FAIL";
|
||||||
|
return arguments[0];
|
||||||
|
}("PASS", 42));
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=6"
|
||||||
|
}
|
||||||
|
|||||||
@@ -175,6 +175,12 @@ module.exports = function reduce_test(testcase, minify_options, reduce_options)
|
|||||||
CHANGED = true;
|
CHANGED = true;
|
||||||
return expr instanceof U.AST_Spread ? expr.expression : expr;
|
return expr instanceof U.AST_Spread ? expr.expression : expr;
|
||||||
}
|
}
|
||||||
|
if (node.expression instanceof U.AST_Arrow && node.expression.value) {
|
||||||
|
var seq = node.args.slice();
|
||||||
|
seq.push(node.expression.value);
|
||||||
|
CHANGED = true;
|
||||||
|
return to_sequence(seq);
|
||||||
|
}
|
||||||
if (node.expression instanceof U.AST_Function) {
|
if (node.expression instanceof U.AST_Function) {
|
||||||
// hoist and return expressions from the IIFE function expression
|
// hoist and return expressions from the IIFE function expression
|
||||||
var body = node.expression.body;
|
var body = node.expression.body;
|
||||||
|
|||||||
Reference in New Issue
Block a user