fix corner case in default_values (#4497)

fixes #4496
This commit is contained in:
Alex Lam S.L
2021-01-02 14:51:53 +00:00
committed by GitHub
parent 15ef272790
commit 110c1ac097
2 changed files with 32 additions and 4 deletions

View File

@@ -7692,7 +7692,9 @@ merge(Compressor.prototype, {
return !(arg instanceof AST_Spread);
})) return;
var pos = 0, last = 0;
var drop_fargs = fn === exp && !fn.name && compressor.drop_fargs(fn, call) ? function(argname, arg) {
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;
if (argname instanceof AST_DestructuredArray) {
return argname.elements.length == 0 && arg instanceof AST_Array;
@@ -7705,9 +7707,7 @@ merge(Compressor.prototype, {
var side_effects = [];
for (var i = 0; i < args.length; i++) {
var argname = fn.argnames[i];
if (compressor.option("default_values")
&& argname instanceof AST_DefaultValue
&& args[i].is_defined(compressor)) {
if (drop_defaults && argname instanceof AST_DefaultValue && args[i].is_defined(compressor)) {
fn.argnames[i] = argname = argname.name;
}
if (!argname || "__unused" in argname) {