trim unused invocation parameters (#1526)

This commit is contained in:
Alex Lam S.L
2017-03-02 11:33:59 +08:00
committed by GitHub
parent fdc9b9413b
commit 9699ffb1af
2 changed files with 37 additions and 0 deletions

View File

@@ -2481,6 +2481,20 @@ merge(Compressor.prototype, {
});
OPT(AST_Call, function(self, compressor){
if (compressor.option("unused")
&& self.expression instanceof AST_Function
&& !self.expression.uses_arguments
&& !self.expression.uses_eval
&& self.args.length > self.expression.argnames.length) {
var end = self.expression.argnames.length;
for (var i = end, len = self.args.length; i < len; i++) {
var node = self.args[i].drop_side_effect_free(compressor);
if (node) {
self.args[end++] = node;
}
}
self.args.length = end;
}
if (compressor.option("unsafe")) {
var exp = self.expression;
if (exp instanceof AST_SymbolRef && exp.undeclared()) {