Skip to content

Commit

Permalink
fix corner case in reduce_vars (#4782)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexlamsl committed Mar 16, 2021
1 parent aa6e33e commit e821787
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lib/compress.js
Expand Up @@ -10324,7 +10324,7 @@ merge(Compressor.prototype, {
single_use = false;
} else if (fixed.name && fixed.name.definition() !== def) {
single_use = false;
} else if (fixed.parent_scope !== self.scope.resolve() || is_funarg(def)) {
} else if (fixed.parent_scope !== self.scope || is_funarg(def)) {
single_use = fixed.is_constant_expression(self.scope);
if (single_use == "f") {
var scope = self.scope;
Expand Down
82 changes: 81 additions & 1 deletion test/compress/let.js
Expand Up @@ -359,7 +359,7 @@ reduce_block_2_toplevel: {
node_version: ">=4"
}

reduce_vars: {
reduce_vars_1: {
options = {
evaluate: true,
reduce_vars: true,
Expand All @@ -381,6 +381,86 @@ reduce_vars: {
node_version: ">=4"
}

reduce_vars_2: {
options = {
reduce_funcs: true,
reduce_vars: true,
unused: true,
}
input: {
"use strict";
(function() {
function f() {
console.log(typeof a);
}
for (let a in [ 42 ])
f();
})();
}
expect: {
"use strict";
(function() {
function f() {
console.log(typeof a);
}
for (let a in [ 42 ])
f();
})();
}
expect_stdout: "undefined"
node_version: ">=4"
}

reduce_vars_3: {
options = {
reduce_funcs: true,
reduce_vars: true,
unused: true,
}
input: {
"use strict";
(function(scope) {
let i = 1;
function f() {
i = 0;
}
for (let i = 0, x = 0; i < scope.length; i++, x++) {
if (x != i) {
console.log("FAIL");
break;
}
f();
console.log(scope[i]);
}
console.log(i);
})([ 4, 2 ]);
}
expect: {
"use strict";
(function(scope) {
let i = 1;
function f() {
i = 0;
}
for (let i = 0, x = 0; i < scope.length; i++, x++) {
if (x != i) {
console.log("FAIL");
break;
}
f();
console.log(scope[i]);
}
console.log(i);
})([ 4, 2 ]);
}
expect_stdout: [
"4",
"2",
"0",
]
node_version: ">=4"
}

hoist_props: {
options = {
hoist_props: true,
Expand Down

0 comments on commit e821787

Please sign in to comment.