fix corner case in reduce_vars (#3378)

fixes #3377
This commit is contained in:
Alex Lam S.L
2019-04-24 14:01:01 +08:00
committed by GitHub
parent a84beafd1b
commit dafed54764
2 changed files with 21 additions and 3 deletions

View File

@@ -744,7 +744,7 @@ merge(Compressor.prototype, {
d.fixed = false; d.fixed = false;
} else if (d.fixed) { } else if (d.fixed) {
value = this.fixed_value(); value = this.fixed_value();
if (value instanceof AST_Lambda && recursive_ref(tw, d)) { if (recursive_ref(tw, d)) {
d.recursive_refs++; d.recursive_refs++;
} else if (value && ref_once(tw, compressor, d)) { } else if (value && ref_once(tw, compressor, d)) {
d.single_use = value instanceof AST_Lambda && !value.pinned() d.single_use = value instanceof AST_Lambda && !value.pinned()
@@ -2603,9 +2603,9 @@ merge(Compressor.prototype, {
} }
function convert_to_predicate(obj) { function convert_to_predicate(obj) {
for (var key in obj) { Object.keys(obj).forEach(function(key) {
obj[key] = makePredicate(obj[key]); obj[key] = makePredicate(obj[key]);
} });
} }
var object_fns = [ var object_fns = [

View File

@@ -6737,3 +6737,21 @@ drop_side_effect_free: {
} }
expect_stdout: "123" expect_stdout: "123"
} }
issue_3377: {
options = {
reduce_vars: true,
unused: true,
}
input: {
console.log(function f() {
return f[0], (f = 42);
}());
}
expect: {
console.log(function f() {
return f[0], (f = 42);
}());
}
expect_stdout: "42"
}