improve truthy compression (#3009)
This commit is contained in:
@@ -703,10 +703,11 @@ ternary_boolean_alternative: {
|
||||
|
||||
trivial_boolean_ternary_expressions : {
|
||||
options = {
|
||||
booleans: true,
|
||||
conditionals: true,
|
||||
evaluate : true,
|
||||
booleans : true
|
||||
};
|
||||
evaluate: true,
|
||||
side_effects: true,
|
||||
}
|
||||
input: {
|
||||
f('foo' in m ? true : false);
|
||||
f('foo' in m ? false : true);
|
||||
|
||||
@@ -745,7 +745,7 @@ in_boolean_context: {
|
||||
!b("foo"),
|
||||
!b([1, 2]),
|
||||
!b(/foo/),
|
||||
![1, foo()],
|
||||
(foo(), !1),
|
||||
(foo(), !1)
|
||||
);
|
||||
}
|
||||
@@ -1566,3 +1566,43 @@ issue_2968: {
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
truthy_conditionals: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
evaluate: true,
|
||||
}
|
||||
input: {
|
||||
if (a = {}) x();
|
||||
(b = /foo/) && y();
|
||||
(c = function() {}) || z();
|
||||
}
|
||||
expect: {
|
||||
a = {}, x();
|
||||
b = /foo/, y();
|
||||
c = function() {};
|
||||
}
|
||||
}
|
||||
|
||||
truthy_loops: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
loops: true,
|
||||
}
|
||||
input: {
|
||||
while ([]) x();
|
||||
do {
|
||||
y();
|
||||
} while(a = {});
|
||||
}
|
||||
expect: {
|
||||
for (;;) {
|
||||
[];
|
||||
x();
|
||||
}
|
||||
for (;;) {
|
||||
y();
|
||||
a = {};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,8 +175,8 @@ should_warn: {
|
||||
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:141,31]",
|
||||
"WARN: Condition always true [test/compress/issue-1261.js:141,8]",
|
||||
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:142,23]",
|
||||
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:143,24]",
|
||||
"WARN: Condition always true [test/compress/issue-1261.js:143,8]",
|
||||
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:143,24]",
|
||||
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:144,31]",
|
||||
"WARN: Condition always false [test/compress/issue-1261.js:144,8]",
|
||||
]
|
||||
|
||||
@@ -67,7 +67,7 @@ negate_iife_3_evaluate: {
|
||||
(function(){ return true })() ? console.log(true) : console.log(false);
|
||||
}
|
||||
expect: {
|
||||
console.log(true);
|
||||
true, console.log(true);
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
@@ -110,7 +110,7 @@ negate_iife_3_off_evaluate: {
|
||||
(function(){ return true })() ? console.log(true) : console.log(false);
|
||||
}
|
||||
expect: {
|
||||
console.log(true);
|
||||
true, console.log(true);
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ reduce_vars: {
|
||||
console.log(a - 5);
|
||||
eval("console.log(a);");
|
||||
})(eval);
|
||||
"yes";
|
||||
true, "yes";
|
||||
console.log(A + 1);
|
||||
}
|
||||
expect_stdout: true
|
||||
@@ -147,7 +147,7 @@ modified: {
|
||||
}
|
||||
function f4() {
|
||||
var b = 2, c = 3;
|
||||
b = c;
|
||||
1, b = c;
|
||||
console.log(1 + b);
|
||||
console.log(b + c);
|
||||
console.log(1 + c);
|
||||
@@ -715,10 +715,12 @@ passes: {
|
||||
passes: 2,
|
||||
reduce_funcs: true,
|
||||
reduce_vars: true,
|
||||
sequences: true,
|
||||
side_effects: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
function f() {
|
||||
(function() {
|
||||
var a = 1, b = 2, c = 3;
|
||||
if (a) {
|
||||
b = c;
|
||||
@@ -729,17 +731,22 @@ passes: {
|
||||
console.log(b + c);
|
||||
console.log(a + c);
|
||||
console.log(a + b + c);
|
||||
}
|
||||
})();
|
||||
}
|
||||
expect: {
|
||||
function f() {
|
||||
3;
|
||||
console.log(4);
|
||||
console.log(6);
|
||||
console.log(4);
|
||||
(function() {
|
||||
console.log(4),
|
||||
console.log(6),
|
||||
console.log(4),
|
||||
console.log(7);
|
||||
}
|
||||
})();
|
||||
}
|
||||
expect_stdout: [
|
||||
"4",
|
||||
"6",
|
||||
"4",
|
||||
"7",
|
||||
]
|
||||
}
|
||||
|
||||
iife: {
|
||||
|
||||
@@ -59,7 +59,7 @@ if_else_empty: {
|
||||
if ({} ? a : b); else {}
|
||||
}
|
||||
expect: {
|
||||
!{} ? b : a;
|
||||
({}), a;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user