From: Alex Lam S.L Date: Fri, 30 Oct 2020 03:06:31 +0000 (+0000) Subject: fix corner case in `ie8` (#4251) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=2e0ad40fe6635f7754a3e4dcdfb3b5bff75f4ae5;p=UglifyJS.git fix corner case in `ie8` (#4251) fixes #4250 --- diff --git a/lib/compress.js b/lib/compress.js index 0b6ad857..e8c88016 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -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 = []; diff --git a/test/compress/ie8.js b/test/compress/ie8.js index 2a7dace3..c5b8b155 100644 --- a/test/compress/ie8.js +++ b/test/compress/ie8.js @@ -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" +}