segment.loop = true;
var save = segment;
node.body.walk(tw);
- if (segment.loop == "c") segment = save;
+ if (segment.inserted === node) segment = save;
node.condition.walk(tw);
pop();
return true;
if (node instanceof AST_LabeledStatement) {
push();
segment.block = node;
+ var save = segment;
node.body.walk(tw);
+ if (segment.inserted === node) segment = save;
pop();
return true;
}
node.body.forEach(function(branch) {
push();
segment.block = node;
+ var save = segment;
walk_body(branch, tw);
+ if (segment.inserted === node) segment = save;
pop();
});
return true;
stack.push(segment);
pop();
}
- segment.loop = "c";
+ segment.inserted = segment.block;
push();
while (stack.length) {
var seg = stack.pop();
}
expect_stdout: "0"
}
+
+issue_4257: {
+ options = {
+ merge_vars: true,
+ toplevel: true,
+ }
+ input: {
+ var a = 0;
+ for (var i = 0; i < 2; i++)
+ switch (--a) {
+ case 0:
+ var b = 0;
+ break;
+ case 0:
+ default:
+ var c = 1 + (0 | (b && A));
+ console.log(c);
+ }
+ }
+ expect: {
+ var a = 0;
+ for (var i = 0; i < 2; i++)
+ switch (--a) {
+ case 0:
+ var b = 0;
+ break;
+ case 0:
+ default:
+ var c = 1 + (0 | (b && A));
+ console.log(c);
+ }
+ }
+ expect_stdout: [
+ "1",
+ "1",
+ ]
+}