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;
});
}
});
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";
})();
})();
}
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",
+ ]
+}