Skip to content

Commit

Permalink
fix corner case in rename (#4000)
Browse files Browse the repository at this point in the history
fixes #3999
  • Loading branch information
alexlamsl committed Jun 14, 2020
1 parent ae9f56b commit 8b2cfd4
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 7 deletions.
7 changes: 2 additions & 5 deletions lib/scope.js
Expand Up @@ -543,11 +543,8 @@ AST_Toplevel.DEFMETHOD("expand_names", function(options) {
var redef = def.redefined();
var name = redef ? redef.rename || redef.name : next_name();
def.rename = name;
def.orig.forEach(function(sym) {
sym.name = name;
});
def.references.forEach(function(sym) {
sym.name = name;
def.orig.concat(def.references).forEach(function(sym) {
if (sym.definition() === def) sym.name = name;
});
}
});
Expand Down
41 changes: 39 additions & 2 deletions test/compress/ie8.js
Expand Up @@ -2223,13 +2223,13 @@ issue_3523_rename_ie8: {
expect: {
var a = 0, b, c = "FAIL";
(function() {
var c, n, t, o, a, r, f, i, u, e, h, l, v, y;
var c, n, t, o, a, r, e, f, i, u, h, l, v, y;
})();
try {
throw 0;
} catch (e) {
(function() {
(function n() {
(function e() {
c = "PASS";
})();
})();
Expand Down Expand Up @@ -2522,3 +2522,40 @@ issue_3918: {
}
expect_stdout: "PASS"
}

issue_3999: {
rename = true
mangle = {
ie8: true,
}
input: {
(function() {
(function f() {
for (var i = 0; i < 2; i++)
try {
f[0];
} catch (f) {
var f = 0;
console.log(i);
}
})();
})(typeof f);
}
expect: {
(function() {
(function f() {
for (var c = 0; c < 2; c++)
try {
f[0];
} catch (f) {
var f = 0;
console.log(c);
}
})();
})(typeof f);
}
expect_stdout: [
"0",
"1",
]
}

0 comments on commit 8b2cfd4

Please sign in to comment.