From: Alex Lam S.L Date: Mon, 19 Oct 2020 22:13:23 +0000 (+0100) Subject: fix corner case in `ie8` (#4230) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=256950c2c0b4dc0c133fcc8aaf85f15579eb190f;p=UglifyJS.git fix corner case in `ie8` (#4230) fixes #4229 --- diff --git a/lib/scope.js b/lib/scope.js index 4abf4066..208633d0 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -294,6 +294,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) { node.redef = true; node.thedef = new_def; node.reference(options); + if (node instanceof AST_SymbolConst || node instanceof AST_SymbolLet) new_def.orig.push(node); }); if (old_def.lambda) new_def.lambda = true; if (new_def.undeclared) self.variables.set(name, new_def); diff --git a/test/compress/const.js b/test/compress/const.js index 8bb9a94e..b20c4c59 100644 --- a/test/compress/const.js +++ b/test/compress/const.js @@ -1045,3 +1045,23 @@ issue_4225: { } expect_stdout: true } + +issue_4229: { + options = { + ie8: true, + side_effects: true, + } + input: { + (function f() { + f; + const f = 42; + })(); + } + expect: { + (function f() { + f; + const f = 42; + })(); + } + expect_stdout: true +} diff --git a/test/compress/let.js b/test/compress/let.js index 74e8fd81..c40ae9e3 100644 --- a/test/compress/let.js +++ b/test/compress/let.js @@ -840,3 +840,34 @@ issue_4225: { expect_stdout: true node_version: ">=4" } + +issue_4229: { + options = { + ie8: true, + side_effects: true, + } + input: { + "use strict"; + try { + (function f() { + f; + let f; + })(); + } catch (e) { + console.log("PASS"); + } + } + expect: { + "use strict"; + try { + (function f() { + f; + let f; + })(); + } catch (e) { + console.log("PASS"); + } + } + expect_stdout: "PASS" + node_version: ">=4" +}