if (!all(args, function(arg) {
return !(arg instanceof AST_Spread);
})) return;
+ var is_iife = fn === exp && !fn.name;
if (fn.rest) {
- if (!compressor.option("rests")) return;
+ if (!(is_iife && compressor.option("rests"))) return;
var insert = fn.argnames.length;
for (var i = args.length; i < insert; i++) {
args[i] = make_node(AST_Undefined, call).optimize(compressor);
fn.rest = null;
}
var pos = 0, last = 0;
- var is_iife = fn === exp && !fn.name;
var drop_defaults = is_iife && compressor.option("default_values");
var drop_fargs = is_iife && compressor.drop_fargs(fn, call) ? function(argname, arg) {
if (!argname) return true;
expect_stdout: "PASS"
node_version: ">=6"
}
+
+issue_4538: {
+ options = {
+ rests: true,
+ unused: true,
+ }
+ input: {
+ console.log(typeof function f(...a) {
+ return a.p, f;
+ }()());
+ }
+ expect: {
+ console.log(typeof function f(...a) {
+ return a.p, f;
+ }()());
+ }
+ expect_stdout: "function"
+ node_version: ">=6"
+}