From: Alex Lam S.L Date: Sat, 9 Jan 2021 20:20:43 +0000 (+0000) Subject: fix corner case in `mangle` (#4528) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=0818d396c5cca408f161422800b79cf825ab5b9f;p=UglifyJS.git fix corner case in `mangle` (#4528) fixes #4527 --- diff --git a/lib/scope.js b/lib/scope.js index ea662815..f4a18ca7 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -611,6 +611,7 @@ AST_Toplevel.DEFMETHOD("mangle_names", function(options) { if (!(sym instanceof AST_SymbolConst)) return false; var scope = def.scope.resolve(); if (def.scope === scope) return false; + if (def.scope.parent_scope.find_variable(sym.name)) return false; redef = scope.def_variable(sym); scope.to_mangle.push(redef); } diff --git a/test/compress/const.js b/test/compress/const.js index 0281fd87..38cd8fbd 100644 --- a/test/compress/const.js +++ b/test/compress/const.js @@ -1399,3 +1399,38 @@ issue_4365_2: { } expect_stdout: true } + +issue_4527: { + mangle = {} + input: { + (function() { + try { + throw 1; + } catch (a) { + try { + const a = FAIL; + } finally { + if (!b) + return console.log("aaaa"); + } + } + var b; + })(); + } + expect: { + (function() { + try { + throw 1; + } catch (a) { + try { + const a = FAIL; + } finally { + if (!t) + return console.log("aaaa"); + } + } + var t; + })(); + } + expect_stdout: "aaaa" +}