var def = M.definition();
return {
type: "Identifier",
- name: def ? def.mangled_name || def.name : M.name
+ name: def && def.mangled_name || M.name
};
});
});
DEFPRINT(AST_Symbol, function(self, output) {
var def = self.definition();
- output.print_name(def ? def.mangled_name || def.name : self.name);
+ output.print_name(def && def.mangled_name || self.name);
});
DEFPRINT(AST_Hole, noop);
DEFPRINT(AST_This, function(self, output) {
if (def.global && options.cache) return;
if (def.unmangleable(options)) return;
if (options.reserved.has[def.name]) return;
- var d = def.redefined();
- def.name = d ? d.name : next_name();
+ var redef = def.redefined();
+ var name = redef ? redef.rename || redef.name : next_name();
+ def.rename = name;
def.orig.forEach(function(sym) {
- sym.name = def.name;
+ sym.name = name;
});
def.references.forEach(function(sym) {
- sym.name = def.name;
+ sym.name = name;
});
}
});
}
expect_stdout: "0 1"
}
+
+issue_3480: {
+ rename = true,
+ mangle = {
+ ie8: false,
+ toplevel: false,
+ }
+ input: {
+ var d, a, b, c = "FAIL";
+ (function b() {
+ (function() {
+ try {
+ c = "PASS";
+ } catch (b) {
+ }
+ })();
+ })();
+ console.log(c);
+ }
+ expect: {
+ var d, a, b, c = "FAIL";
+ (function n() {
+ (function() {
+ try {
+ c = "PASS";
+ } catch (c) {}
+ })();
+ })();
+ console.log(c);
+ }
+ expect_stdout: "PASS"
+}
+
+issue_3480_ie8: {
+ rename = true,
+ mangle = {
+ ie8: true,
+ toplevel: false,
+ }
+ input: {
+ var d, a, b, c = "FAIL";
+ (function b() {
+ (function() {
+ try {
+ c = "PASS";
+ } catch (b) {
+ }
+ })();
+ })();
+ console.log(c);
+ }
+ expect: {
+ var d, a, b, c = "FAIL";
+ (function b() {
+ (function() {
+ try {
+ c = "PASS";
+ } catch (b) {}
+ })();
+ })();
+ console.log(c);
+ }
+ expect_stdout: "PASS"
+}
+
+issue_3480_toplevel: {
+ rename = true,
+ mangle = {
+ ie8: false,
+ toplevel: true,
+ }
+ input: {
+ var d, a, b, c = "FAIL";
+ (function b() {
+ (function() {
+ try {
+ c = "PASS";
+ } catch (b) {
+ }
+ })();
+ })();
+ console.log(c);
+ }
+ expect: {
+ var c, n, o, t = "FAIL";
+ (function c() {
+ (function() {
+ try {
+ t = "PASS";
+ } catch (c) {}
+ })();
+ })();
+ console.log(t);
+ }
+ expect_stdout: "PASS"
+}
+
+issue_3480_ie8_toplevel: {
+ rename = true,
+ mangle = {
+ ie8: true,
+ toplevel: true,
+ }
+ input: {
+ var d, a, b, c = "FAIL";
+ (function b() {
+ (function() {
+ try {
+ c = "PASS";
+ } catch (b) {
+ }
+ })();
+ })();
+ console.log(c);
+ }
+ expect: {
+ var c, n, o, t = "FAIL";
+ (function o() {
+ (function() {
+ try {
+ t = "PASS";
+ } catch (o) {}
+ })();
+ })();
+ console.log(t);
+ }
+ expect_stdout: "PASS"
+}