@@ -4542,7 +4542,7 @@ merge(Compressor.prototype, {
|
||||
}
|
||||
if (node instanceof AST_LabeledStatement) {
|
||||
push();
|
||||
segment.block = node.body;
|
||||
segment.block = node;
|
||||
node.body.walk(tw);
|
||||
pop();
|
||||
return true;
|
||||
@@ -4737,7 +4737,12 @@ merge(Compressor.prototype, {
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -3124,3 +3124,25 @@ issue_4253: {
|
||||
}
|
||||
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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user