fix corner case in reduce_vars (#4796)

This commit is contained in:
Alex Lam S.L
2021-03-17 21:14:14 +00:00
committed by GitHub
parent d4303b62cc
commit d837a46ebd
2 changed files with 26 additions and 0 deletions

View File

@@ -624,6 +624,7 @@ merge(Compressor.prototype, {
if (parent instanceof AST_Binary) return lazy_op[parent.operator]; if (parent instanceof AST_Binary) return lazy_op[parent.operator];
if (parent instanceof AST_Conditional) return parent.condition !== node; if (parent instanceof AST_Conditional) return parent.condition !== node;
if (parent instanceof AST_Sequence) return parent.tail_node() === node; if (parent instanceof AST_Sequence) return parent.tail_node() === node;
if (parent instanceof AST_Spread) return true;
} }
function mark_escaped(tw, d, scope, node, value, level, depth) { function mark_escaped(tw, d, scope, node, value, level, depth) {

View File

@@ -294,6 +294,31 @@ reduce_vars_2: {
node_version: ">=6" node_version: ">=6"
} }
reduce_vars_3: {
options = {
reduce_funcs: true,
reduce_vars: true,
toplevel: true,
unused: true,
}
input: {
function f() {}
function g() {
return (a => a)(...[ f ]);
}
console.log(g() === g() ? "PASS" : "FAIL");
}
expect: {
function f() {}
function g() {
return (a => a)(...[ f ]);
}
console.log(g() === g() ? "PASS" : "FAIL");
}
expect_stdout: "PASS"
node_version: ">=6"
}
convert_setter: { convert_setter: {
options = { options = {
objects: true, objects: true,