diff --git a/lib/scope.js b/lib/scope.js index 025d4ca3..216983fc 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -81,7 +81,7 @@ SymbolDef.prototype = { var def; if (options.screw_ie8 && sym instanceof AST_SymbolCatch - && (def = s.parent_scope.find_variable(sym))) { + && (def = s.parent_scope.variables.get(this.name))) { this.mangled_name = def.mangled_name || def.name; } else this.mangled_name = s.next_mangled(options, this); diff --git a/test/compress/issue-1733.js b/test/compress/issue-1733.js new file mode 100644 index 00000000..e837240d --- /dev/null +++ b/test/compress/issue-1733.js @@ -0,0 +1,41 @@ +function_iife_catch: { + mangle = { + screw_ie8: true, + } + input: { + function f(n) { + !function() { + try { + throw 0; + } catch (n) { + var a = 1; + console.log(n, a); + } + }(); + } + f(); + } + expect_exact: "function f(o){!function(){try{throw 0}catch(c){var o=1;console.log(c,o)}}()}f();" + expect_stdout: "0 1" +} + +function_iife_catch_ie8: { + mangle = { + screw_ie8: false, + } + input: { + function f(n) { + !function() { + try { + throw 0; + } catch (n) { + var a = 1; + console.log(n, a); + } + }(); + } + f(); + } + expect_exact: "function f(o){!function(){try{throw 0}catch(o){var c=1;console.log(o,c)}}()}f();" + expect_stdout: "0 1" +}