@@ -4456,8 +4456,13 @@ merge(Compressor.prototype, {
|
|||||||
var sym = def.name.definition();
|
var sym = def.name.definition();
|
||||||
if (!drop_vars || sym.id in in_use_ids) {
|
if (!drop_vars || sym.id in in_use_ids) {
|
||||||
if (def.value && indexOf_assign(sym, def) < 0) {
|
if (def.value && indexOf_assign(sym, def) < 0) {
|
||||||
def.value = def.value.drop_side_effect_free(compressor);
|
var value = def.value.drop_side_effect_free(compressor);
|
||||||
if (def.value) def.value.tail_node().write_only = false;
|
if (def.value !== value) def.value = value && make_sequence(def.value, [
|
||||||
|
value,
|
||||||
|
make_node(AST_Number, def.value, {
|
||||||
|
value: 0
|
||||||
|
}),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
var old_def, var_defs = var_defs_by_id.get(sym.id);
|
var old_def, var_defs = var_defs_by_id.get(sym.id);
|
||||||
if (!def.value) {
|
if (!def.value) {
|
||||||
|
|||||||
@@ -2718,7 +2718,7 @@ issue_3962_1: {
|
|||||||
0..toString();
|
0..toString();
|
||||||
} while (0);
|
} while (0);
|
||||||
if (c) console.log("PASS");
|
if (c) console.log("PASS");
|
||||||
})((a--, 1));
|
}((a--, 1)), 0);
|
||||||
void 0;
|
void 0;
|
||||||
}
|
}
|
||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
@@ -2751,7 +2751,7 @@ issue_3962_2: {
|
|||||||
0..toString();
|
0..toString();
|
||||||
} while (0);
|
} while (0);
|
||||||
if (c) console.log("PASS");
|
if (c) console.log("PASS");
|
||||||
})((a--, 1));
|
}((a--, 1)), 0);
|
||||||
}
|
}
|
||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
}
|
}
|
||||||
@@ -2789,3 +2789,27 @@ issue_3986: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "0"
|
expect_stdout: "0"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4017: {
|
||||||
|
options = {
|
||||||
|
pure_getters: "strict",
|
||||||
|
reduce_vars: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
var a = 0;
|
||||||
|
console.log(function f() {
|
||||||
|
var b = c &= 0;
|
||||||
|
var c = a++ + (A = a);
|
||||||
|
var d = c && c[f];
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var a = 0;
|
||||||
|
console.log(function() {
|
||||||
|
c &= 0;
|
||||||
|
var c = (a++, A = a, 0);
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect_stdout: "undefined"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user