@@ -4003,16 +4003,30 @@ merge(Compressor.prototype, {
|
||||
})) break;
|
||||
}
|
||||
if (fn.contains_this()) break;
|
||||
var j = fn.argnames.length;
|
||||
if (j > 0 && compressor.option("inline") < 2) break;
|
||||
if (j > self.argnames.length) break;
|
||||
if (j < self.argnames.length && !compressor.drop_fargs(fn, call)) break;
|
||||
while (--j >= 0) {
|
||||
var len = fn.argnames.length;
|
||||
if (len > 0 && compressor.option("inline") < 2) break;
|
||||
if (len > self.argnames.length) break;
|
||||
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;
|
||||
}
|
||||
if (j >= 0) break;
|
||||
if (j < len) break;
|
||||
for (; j < call.args.length; j++) {
|
||||
if (call.args[j].has_side_effects(compressor)) break;
|
||||
}
|
||||
if (j < call.args.length) break;
|
||||
if (len < self.argnames.length && !compressor.drop_fargs(self, compressor.parent())) {
|
||||
if (!compressor.drop_fargs(fn, call)) break;
|
||||
do {
|
||||
var argname = make_node(AST_SymbolFunarg, fn, {
|
||||
name: fn.make_var_name("argument_" + len),
|
||||
scope: fn
|
||||
});
|
||||
fn.argnames.push(argname);
|
||||
fn.enclosed.push(fn.def_variable(argname));
|
||||
} while (++len < self.argnames.length);
|
||||
}
|
||||
return call.expression;
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user