@@ -4502,7 +4502,7 @@ merge(Compressor.prototype, {
|
|||||||
segment.loop = true;
|
segment.loop = true;
|
||||||
var save = segment;
|
var save = segment;
|
||||||
node.body.walk(tw);
|
node.body.walk(tw);
|
||||||
if (segment.loop == "c") segment = save;
|
if (segment.inserted === node) segment = save;
|
||||||
node.condition.walk(tw);
|
node.condition.walk(tw);
|
||||||
pop();
|
pop();
|
||||||
return true;
|
return true;
|
||||||
@@ -4543,7 +4543,9 @@ merge(Compressor.prototype, {
|
|||||||
if (node instanceof AST_LabeledStatement) {
|
if (node instanceof AST_LabeledStatement) {
|
||||||
push();
|
push();
|
||||||
segment.block = node;
|
segment.block = node;
|
||||||
|
var save = segment;
|
||||||
node.body.walk(tw);
|
node.body.walk(tw);
|
||||||
|
if (segment.inserted === node) segment = save;
|
||||||
pop();
|
pop();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -4580,7 +4582,9 @@ merge(Compressor.prototype, {
|
|||||||
node.body.forEach(function(branch) {
|
node.body.forEach(function(branch) {
|
||||||
push();
|
push();
|
||||||
segment.block = node;
|
segment.block = node;
|
||||||
|
var save = segment;
|
||||||
walk_body(branch, tw);
|
walk_body(branch, tw);
|
||||||
|
if (segment.inserted === node) segment = save;
|
||||||
pop();
|
pop();
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
@@ -4746,7 +4750,7 @@ merge(Compressor.prototype, {
|
|||||||
stack.push(segment);
|
stack.push(segment);
|
||||||
pop();
|
pop();
|
||||||
}
|
}
|
||||||
segment.loop = "c";
|
segment.inserted = segment.block;
|
||||||
push();
|
push();
|
||||||
while (stack.length) {
|
while (stack.length) {
|
||||||
var seg = stack.pop();
|
var seg = stack.pop();
|
||||||
|
|||||||
@@ -3146,3 +3146,40 @@ issue_4255: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "0"
|
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",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user