fix corner case in conditionals (#4492)
This commit is contained in:
@@ -9843,10 +9843,17 @@ merge(Compressor.prototype, {
|
||||
&& !condition.has_side_effects(compressor)
|
||||
&& !consequent.expression.has_side_effects(compressor)) {
|
||||
var node = consequent.clone();
|
||||
node.args[arg_index] = make_node(AST_Conditional, self, {
|
||||
var arg = consequent.args[arg_index];
|
||||
node.args[arg_index] = arg instanceof AST_Spread ? make_node(AST_Spread, self, {
|
||||
expression: make_node(AST_Conditional, self, {
|
||||
condition: condition,
|
||||
consequent: arg.expression,
|
||||
alternative: alternative.args[arg_index].expression,
|
||||
}),
|
||||
}) : make_node(AST_Conditional, self, {
|
||||
condition: condition,
|
||||
consequent: consequent.args[arg_index],
|
||||
alternative: alternative.args[arg_index]
|
||||
consequent: arg,
|
||||
alternative: alternative.args[arg_index],
|
||||
});
|
||||
return node;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user