handle duplicate argument names in collapse_vars (#2215)
This commit is contained in:
@@ -820,7 +820,11 @@ merge(Compressor.prototype, {
|
||||
&& !fn.uses_eval
|
||||
&& (iife = compressor.parent()) instanceof AST_Call
|
||||
&& iife.expression === fn) {
|
||||
fn.argnames.forEach(function(sym, i) {
|
||||
var names = Object.create(null);
|
||||
for (var i = fn.argnames.length; --i >= 0;) {
|
||||
var sym = fn.argnames[i];
|
||||
if (sym.name in names) continue;
|
||||
names[sym.name] = true;
|
||||
var arg = iife.args[i];
|
||||
if (!arg) arg = make_node(AST_Undefined, sym);
|
||||
else {
|
||||
@@ -840,11 +844,11 @@ merge(Compressor.prototype, {
|
||||
});
|
||||
arg.walk(tw);
|
||||
}
|
||||
if (arg) candidates.push(make_node(AST_VarDef, sym, {
|
||||
if (arg) candidates.unshift(make_node(AST_VarDef, sym, {
|
||||
name: sym,
|
||||
value: arg
|
||||
}));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user