@@ -5918,7 +5918,7 @@ merge(Compressor.prototype, {
|
||||
self.body = body;
|
||||
if (compressor.option("conditionals")) switch (body.length) {
|
||||
case 1:
|
||||
if (!no_break(self)) break;
|
||||
if (!no_break(body[0])) break;
|
||||
var exp = body[0].expression;
|
||||
var statements = body[0].body.slice();
|
||||
if (body[0] !== default_branch && body[0] !== exact_match) return make_node(AST_If, self, {
|
||||
@@ -5942,7 +5942,7 @@ merge(Compressor.prototype, {
|
||||
body: statements,
|
||||
}).optimize(compressor);
|
||||
case 2:
|
||||
if (!member(default_branch, body)) break;
|
||||
if (!member(default_branch, body) || !no_break(body[1])) break;
|
||||
var statements = body[0].body.slice();
|
||||
var exclusive = statements.length && is_break(statements[statements.length - 1], compressor);
|
||||
if (exclusive) statements.pop();
|
||||
@@ -5982,6 +5982,7 @@ merge(Compressor.prototype, {
|
||||
|| node instanceof AST_SimpleStatement) return true;
|
||||
if (is_break(node, tw)) found = true;
|
||||
});
|
||||
tw.push(self);
|
||||
node.walk(tw);
|
||||
return !found;
|
||||
}
|
||||
|
||||
@@ -1150,3 +1150,34 @@ drop_switch_8: {
|
||||
(C !== D ? y : z)();
|
||||
}
|
||||
}
|
||||
|
||||
issue_4059: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
dead_code: true,
|
||||
evaluate: true,
|
||||
switches: true,
|
||||
}
|
||||
input: {
|
||||
switch (0) {
|
||||
default:
|
||||
case 1:
|
||||
break;
|
||||
case a:
|
||||
break;
|
||||
var a;
|
||||
}
|
||||
console.log("PASS");
|
||||
}
|
||||
expect: {
|
||||
switch (0) {
|
||||
default:
|
||||
break;
|
||||
case a:
|
||||
break;
|
||||
var a;
|
||||
}
|
||||
console.log("PASS");
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user