fix corner case in conditionals (#5676)

This commit is contained in:
Alex Lam S.L
2022-09-23 04:09:55 +01:00
committed by GitHub
parent 37d3e4feaa
commit 9ac3879b06
3 changed files with 74 additions and 10 deletions

View File

@@ -9722,15 +9722,16 @@ Compressor.prototype.compress = function(node) {
if (stat.equals(alt_stat)) {
body_stats.splice(body_index--, 1);
alt_stats.splice(alt_index--, 1);
stats.unshift(stat);
stats.unshift(merge_expression(stat, alt_stat));
} else {
if (!(stat instanceof AST_SimpleStatement)) break;
if (!(alt_stat instanceof AST_SimpleStatement)) break;
var expr = stat.body.tail_node();
if (!expr.equals(alt_stat.body.tail_node())) break;
var expr1 = stat.body.tail_node();
var expr2 = alt_stat.body.tail_node();
if (!expr1.equals(expr2)) break;
body_index = pop_expr(body_stats, stat.body, body_index);
alt_index = pop_expr(alt_stats, alt_stat.body, alt_index);
stats.unshift(make_node(AST_SimpleStatement, expr, { body: expr }));
stats.unshift(make_node(AST_SimpleStatement, expr1, { body: merge_expression(expr1, expr2) }));
}
}
if (stats.length > 0) {