for (var j = 0, defs = stat.definitions.length; j < defs; j++) {
var var_def = stat.definitions[j];
var name = var_def.name;
+ var redef = name.definition().redefined();
+ if (redef) {
+ name = name.clone();
+ name.thedef = redef;
+ }
append_var(decls, expressions, name, var_def.value);
if (in_loop && all(fn.argnames, function(argname) {
return argname.name != name.name;
}
expect_stdout: "true true"
}
+
+issue_3076: {
+ options = {
+ dead_code: true,
+ inline: true,
+ sequences: true,
+ unused: true,
+ }
+ input: {
+ var c = "PASS";
+ (function(b) {
+ var n = 2;
+ while (--b + function() {
+ e && (c = "FAIL");
+ e = 5;
+ return 1;
+ try {
+ var a = 5;
+ } catch (e) {
+ var e;
+ }
+ }().toString() && --n > 0);
+ })(2);
+ console.log(c);
+ }
+ expect: {
+ var c = "PASS";
+ (function(b) {
+ var n = 2;
+ while (--b + (e = void 0, e && (c = "FAIL"), e = 5, 1).toString() && --n > 0);
+ var e;
+ })(2),
+ console.log(c);
+ }
+ expect_stdout: "PASS"
+}