In my setup mangle at somepoint generated similar code:
var a = function () {...};
try {
...
} catch (a) {
...
}
return a();
It works on most browsers, but it fails in IE8, where a is not local to catch scope, and overrides outer a.
It'll be great to have either hardcoded workaround for that, or at least an option that will allow us to produce IE8 valid code.