var sym = def.name.definition();
if (!drop_vars || sym.id in in_use_ids) {
if (def.value && indexOf_assign(sym, def) < 0) {
- def.value = def.value.drop_side_effect_free(compressor);
- if (def.value) def.value.tail_node().write_only = false;
+ var value = def.value.drop_side_effect_free(compressor);
+ 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);
if (!def.value) {
0..toString();
} while (0);
if (c) console.log("PASS");
- })((a--, 1));
+ }((a--, 1)), 0);
void 0;
}
expect_stdout: "PASS"
0..toString();
} while (0);
if (c) console.log("PASS");
- })((a--, 1));
+ }((a--, 1)), 0);
}
expect_stdout: "PASS"
}
}
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"
+}