enhance collapse_vars around lazy operations (#2369)
This commit is contained in:
@@ -2951,3 +2951,68 @@ issue_2364_9: {
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
pure_getters_chain: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
pure_getters: true,
|
||||
}
|
||||
input: {
|
||||
function o(t, r) {
|
||||
var a = t[1], s = t[2], o = t[3], i = t[5];
|
||||
return a <= 23 && s <= 59 && o <= 59 && (!r || i);
|
||||
}
|
||||
console.log(o([ , 23, 59, 59, , 42], 1));
|
||||
}
|
||||
expect: {
|
||||
function o(t, r) {
|
||||
return t[1] <= 23 && t[2] <= 59 && t[3] <= 59 && (!r || t[5]);
|
||||
}
|
||||
console.log(o([ , 23, 59, 59, , 42], 1));
|
||||
}
|
||||
expect_stdout: "42"
|
||||
}
|
||||
|
||||
conditional_1: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
}
|
||||
input: {
|
||||
function f(a, b) {
|
||||
var c = "";
|
||||
var d = b ? ">" : "<";
|
||||
if (a) c += "=";
|
||||
return c += d;
|
||||
}
|
||||
console.log(f(0, 0), f(0, 1), f(1, 0), f(1, 1));
|
||||
}
|
||||
expect: {
|
||||
function f(a, b) {
|
||||
var c = "";
|
||||
if (a) c += "=";
|
||||
return c += b ? ">" : "<";
|
||||
}
|
||||
console.log(f(0, 0), f(0, 1), f(1, 0), f(1, 1));
|
||||
}
|
||||
expect_stdout: "< > =< =>"
|
||||
}
|
||||
|
||||
conditional_2: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
}
|
||||
input: {
|
||||
function f(a, b) {
|
||||
var c = a + 1, d = a + 2;
|
||||
return b ? c : d;
|
||||
}
|
||||
console.log(f(3, 0), f(4, 1));
|
||||
}
|
||||
expect: {
|
||||
function f(a, b) {
|
||||
return b ? a + 1 : a + 2;
|
||||
}
|
||||
console.log(f(3, 0), f(4, 1));
|
||||
}
|
||||
expect_stdout: "5 5"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user