fix corner case in conditionals (#5676)
This commit is contained in:
@@ -278,6 +278,36 @@ merge_tail_2: {
|
||||
]
|
||||
}
|
||||
|
||||
merge_tail_3: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
reduce_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
(function(a, b) {
|
||||
if (b = a.shift())
|
||||
console.log(b);
|
||||
else {
|
||||
if (b = a.shift())
|
||||
while (console.log("foo"));
|
||||
console.log(b);
|
||||
}
|
||||
})([ false, "bar" ]);
|
||||
}
|
||||
expect: {
|
||||
(function(a, b) {
|
||||
if (!(b = a.shift()) && (b = a.shift()))
|
||||
while (console.log("foo"));
|
||||
console.log(b);
|
||||
})([ false, "bar" ]);
|
||||
}
|
||||
expect_stdout: [
|
||||
"foo",
|
||||
"bar",
|
||||
]
|
||||
}
|
||||
|
||||
merge_tail_sequence_1: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
@@ -368,6 +398,39 @@ merge_tail_sequence_2: {
|
||||
]
|
||||
}
|
||||
|
||||
merge_tail_sequence_3: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
reduce_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
(function(a, b) {
|
||||
if (b = a.shift())
|
||||
console.log("foo"),
|
||||
console.log(b);
|
||||
else {
|
||||
if (b = a.shift())
|
||||
while (console.log("bar"));
|
||||
console.log(b);
|
||||
}
|
||||
})([ false, "baz" ]);
|
||||
}
|
||||
expect: {
|
||||
(function(a, b) {
|
||||
if (b = a.shift())
|
||||
console.log("foo");
|
||||
else if (b = a.shift())
|
||||
while (console.log("bar"));
|
||||
console.log(b);
|
||||
})([ false, "baz" ]);
|
||||
}
|
||||
expect_stdout: [
|
||||
"bar",
|
||||
"baz",
|
||||
]
|
||||
}
|
||||
|
||||
cond_1: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
|
||||
@@ -13,12 +13,12 @@ collapse_vars_1: {
|
||||
}
|
||||
input: {
|
||||
var a;
|
||||
[ ...a = "PASS", "PASS"].slice();
|
||||
[ ...a = "PASS", "PASS" ].slice();
|
||||
console.log(a);
|
||||
}
|
||||
expect: {
|
||||
var a;
|
||||
[ ...a = "PASS", "PASS"].slice();
|
||||
[ ...a = "PASS", "PASS" ].slice();
|
||||
console.log(a);
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
@@ -33,7 +33,7 @@ collapse_vars_2: {
|
||||
var a = "FAIL";
|
||||
try {
|
||||
a = "PASS";
|
||||
[ ...42, "PASS"].slice();
|
||||
[ ...42, "PASS" ].slice();
|
||||
} catch (e) {
|
||||
console.log(a);
|
||||
}
|
||||
@@ -42,7 +42,7 @@ collapse_vars_2: {
|
||||
var a = "FAIL";
|
||||
try {
|
||||
a = "PASS";
|
||||
[ ...42, "PASS"].slice();
|
||||
[ ...42, "PASS" ].slice();
|
||||
} catch (e) {
|
||||
console.log(a);
|
||||
}
|
||||
@@ -58,7 +58,7 @@ collapse_vars_3: {
|
||||
input: {
|
||||
var a = "FAIL";
|
||||
try {
|
||||
[ ...(a = "PASS", 42), "PASS"].slice();
|
||||
[ ...(a = "PASS", 42), "PASS" ].slice();
|
||||
} catch (e) {
|
||||
console.log(a);
|
||||
}
|
||||
@@ -66,7 +66,7 @@ collapse_vars_3: {
|
||||
expect: {
|
||||
var a = "FAIL";
|
||||
try {
|
||||
[ ...(a = "PASS", 42), "PASS"].slice();
|
||||
[ ...(a = "PASS", 42), "PASS" ].slice();
|
||||
} catch (e) {
|
||||
console.log(a);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user