}
if (node instanceof AST_LabeledStatement) {
push();
- segment.block = node.body;
+ segment.block = node;
node.body.walk(tw);
pop();
return true;
function insert(target) {
var stack = [];
- while (!HOP(segment, "block") || segment.block !== target) {
+ while (true) {
+ if (HOP(segment, "block")) {
+ var block = segment.block;
+ if (block instanceof AST_LabeledStatement) block = block.body;
+ if (block === target) break;
+ }
stack.push(segment);
pop();
}
}
expect_stdout: "undefined"
}
+
+issue_4255: {
+ options = {
+ dead_code: true,
+ loops: true,
+ merge_vars: true,
+ toplevel: true,
+ }
+ input: {
+ L: for (var a = 2; --a;)
+ for (var b = 0; console.log(b); --b)
+ break L;
+ }
+ expect: {
+ L: for (var a = 2; --a;) {
+ var b = 0;
+ if (console.log(b))
+ break L;
+ }
+ }
+ expect_stdout: "0"
+}