fix corner case in ie8 (#4251)

fixes #4250
This commit is contained in:
Alex Lam S.L
2020-10-30 03:06:31 +00:00
committed by GitHub
parent 5d12abc41b
commit 2e0ad40fe6
2 changed files with 31 additions and 1 deletions

View File

@@ -5200,7 +5200,10 @@ merge(Compressor.prototype, {
var def = sym.definition();
if (!def) return;
if (def.id in in_use_ids) return;
if (def.scope !== self && self.find_variable(sym) === def) return;
if (def.scope !== self) {
var d = self.find_variable(sym);
if ((d && d.redefined() || d) === def) return;
}
log(sym, "Dropping unused loop variable {name}");
if (for_ins[def.id] === node) delete for_ins[def.id];
var body = [];

View File

@@ -2877,3 +2877,30 @@ issue_4235: {
}
expect_stdout: "undefined"
}
issue_4250: {
options = {
ie8: true,
loops: true,
unused: true,
}
input: {
console.log(function f() {
(function() {
for (f in "f");
})();
return f;
var f;
}());
}
expect: {
console.log(function f() {
(function() {
for (f in "f");
})();
return f;
var f;
}());
}
expect_stdout: "0"
}