minor
This commit is contained in:
@@ -833,17 +833,17 @@ function Compressor(options, false_by_default) {
|
|||||||
&& index < block.length - 1) {
|
&& index < block.length - 1) {
|
||||||
if (compressor.parent() instanceof AST_Lambda) {
|
if (compressor.parent() instanceof AST_Lambda) {
|
||||||
var rest = tighten_body(block.slice(index + 1), compressor);
|
var rest = tighten_body(block.slice(index + 1), compressor);
|
||||||
var cond = negated_is_best ? negated : self.condition.negate(compressor);
|
var cond = self.condition;
|
||||||
while (rest[0] instanceof AST_If && rest[0].body instanceof AST_Return && !rest[0].alternative) {
|
while (rest[0] instanceof AST_If && rest[0].body instanceof AST_Return && !rest[0].alternative) {
|
||||||
cond = make_node(AST_Binary, rest[0], {
|
cond = make_node(AST_Binary, rest[0], {
|
||||||
operator: "&&",
|
operator: "||",
|
||||||
left: cond,
|
left: cond,
|
||||||
right: rest[0].condition.negate(compressor)
|
right: rest[0].condition
|
||||||
});
|
});
|
||||||
rest.shift();
|
rest.shift();
|
||||||
}
|
}
|
||||||
return MAP.last(make_node(AST_If, self, {
|
return MAP.last(make_node(AST_If, self, {
|
||||||
condition: cond,
|
condition: cond.negate(compressor),
|
||||||
body: make_node(AST_BlockStatement, block[index + 1], {
|
body: make_node(AST_BlockStatement, block[index + 1], {
|
||||||
body: rest
|
body: rest
|
||||||
}).optimize(compressor)
|
}).optimize(compressor)
|
||||||
|
|||||||
@@ -87,3 +87,38 @@ ifs_4: {
|
|||||||
x(foo)[10].bar.baz = (foo && bar) ? something() : something_else();
|
x(foo)[10].bar.baz = (foo && bar) ? something() : something_else();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ifs_5: {
|
||||||
|
options = {
|
||||||
|
conditionals: true
|
||||||
|
};
|
||||||
|
input: {
|
||||||
|
function f() {
|
||||||
|
if (foo) return;
|
||||||
|
bar();
|
||||||
|
baz();
|
||||||
|
}
|
||||||
|
function g() {
|
||||||
|
if (foo) return;
|
||||||
|
if (bar) return;
|
||||||
|
if (baz) return;
|
||||||
|
if (baa) return;
|
||||||
|
a();
|
||||||
|
b()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
function f() {
|
||||||
|
if (!foo) {
|
||||||
|
bar();
|
||||||
|
baz();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function g() {
|
||||||
|
if (!(foo || bar || baz || baa)) {
|
||||||
|
a();
|
||||||
|
b()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user