131 lines
2.5 KiB
JavaScript
131 lines
2.5 KiB
JavaScript
parentheses: {
|
|
input: {
|
|
(console.log("foo") || console.log("bar") ?? console.log("baz")) && console.log("moo");
|
|
}
|
|
expect_exact:'((console.log("foo")||console.log("bar"))??console.log("baz"))&&console.log("moo");'
|
|
expect_stdout: [
|
|
"foo",
|
|
"bar",
|
|
"baz",
|
|
]
|
|
node_version: ">=14"
|
|
}
|
|
|
|
evaluate: {
|
|
options = {
|
|
evaluate: true,
|
|
side_effects: true,
|
|
}
|
|
input: {
|
|
void console.log("foo" ?? "bar") ?? console.log("baz");
|
|
}
|
|
expect: {
|
|
console.log("foo"),
|
|
console.log("baz");
|
|
}
|
|
expect_stdout: [
|
|
"foo",
|
|
"baz",
|
|
]
|
|
node_version: ">=14"
|
|
}
|
|
|
|
conditional_assignment_1: {
|
|
options = {
|
|
collapse_vars: true,
|
|
}
|
|
input: {
|
|
console.log(function(a, b) {
|
|
b ?? (a = "FAIL");
|
|
return a;
|
|
}("PASS", !console));
|
|
}
|
|
expect: {
|
|
console.log(function(a, b) {
|
|
b ?? (a = "FAIL");
|
|
return a;
|
|
}("PASS", !console));
|
|
}
|
|
expect_stdout: "PASS"
|
|
node_version: ">=14"
|
|
}
|
|
|
|
conditional_assignment_2: {
|
|
options = {
|
|
conditionals: true,
|
|
}
|
|
input: {
|
|
var a, b = false;
|
|
a = "PASS",
|
|
b ?? (a = "FAIL"),
|
|
console.log(a);
|
|
}
|
|
expect: {
|
|
var a, b = false;
|
|
a = "PASS",
|
|
b ?? (a = "FAIL"),
|
|
console.log(a);
|
|
}
|
|
expect_stdout: "PASS"
|
|
node_version: ">=14"
|
|
}
|
|
|
|
conditional_assignment_3: {
|
|
options = {
|
|
conditionals: true,
|
|
join_vars: true,
|
|
}
|
|
input: {
|
|
var a, b = false;
|
|
a = "PASS",
|
|
b ?? (a = "FAIL"),
|
|
console.log(a);
|
|
}
|
|
expect: {
|
|
var a, b = false, a = "PASS";
|
|
b ?? (a = "FAIL"),
|
|
console.log(a);
|
|
}
|
|
expect_stdout: "PASS"
|
|
node_version: ">=14"
|
|
}
|
|
|
|
conditional_assignment_4: {
|
|
options = {
|
|
side_effects: true,
|
|
}
|
|
input: {
|
|
console.log(function(a) {
|
|
!console ?? (a = "FAIL");
|
|
return a;
|
|
}("PASS"));
|
|
}
|
|
expect: {
|
|
console.log(function(a) {
|
|
!console ?? (a = "FAIL");
|
|
return a;
|
|
}("PASS"));
|
|
}
|
|
expect_stdout: "PASS"
|
|
node_version: ">=14"
|
|
}
|
|
|
|
issue_4679: {
|
|
options = {
|
|
comparisons: true,
|
|
ie8: true,
|
|
}
|
|
input: {
|
|
var a;
|
|
if (void 0 === (undefined ?? a))
|
|
console.log("PASS");
|
|
}
|
|
expect: {
|
|
var a;
|
|
if (void 0 === (undefined ?? a))
|
|
console.log("PASS");
|
|
}
|
|
expect_stdout: "PASS"
|
|
node_version: ">=14"
|
|
}
|