@@ -9897,7 +9897,10 @@ merge(Compressor.prototype, {
|
||||
} 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))) {
|
||||
|| !(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();
|
||||
if (!compressor.option("reduce_vars")
|
||||
|| def.reassigned
|
||||
|
||||
@@ -1886,3 +1886,23 @@ issue_4386: {
|
||||
expect_stdout: "PASS"
|
||||
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;
|
||||
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) {
|
||||
// hoist and return expressions from the IIFE function expression
|
||||
var body = node.expression.body;
|
||||
|
||||
Reference in New Issue
Block a user