support logical assignment operators (#4813)
This commit is contained in:
@@ -475,3 +475,77 @@ issue_4521: {
|
||||
}
|
||||
expect_stdout: "42"
|
||||
}
|
||||
|
||||
logical_assignments: {
|
||||
input: {
|
||||
var a = 42, b = null, c;
|
||||
a &&= "foo";
|
||||
b ||= "bar";
|
||||
c ??= "baz";
|
||||
console.log(a, b, c);
|
||||
}
|
||||
expect_exact: 'var a=42,b=null,c;a&&="foo";b||="bar";c??="baz";console.log(a,b,c);'
|
||||
expect_stdout: "foo bar baz"
|
||||
node_version: ">=15"
|
||||
}
|
||||
|
||||
logical_collapse_vars: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
}
|
||||
input: {
|
||||
var a = "FAIL", b = false;
|
||||
a = "PASS";
|
||||
b ??= a;
|
||||
console.log(a);
|
||||
}
|
||||
expect: {
|
||||
var a = "FAIL", b = false;
|
||||
a = "PASS";
|
||||
b ??= a;
|
||||
console.log(a);
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
node_version: ">=15"
|
||||
}
|
||||
|
||||
logical_reduce_vars: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
reduce_vars: true,
|
||||
toplevel: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
var a = "PASS", b = 42;
|
||||
b ??= a = "FAIL";
|
||||
console.log(a);
|
||||
}
|
||||
expect: {
|
||||
var a = "PASS", b = 42;
|
||||
b ??= a = "FAIL";
|
||||
console.log(a);
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
node_version: ">=15"
|
||||
}
|
||||
|
||||
logical_side_effects: {
|
||||
options = {
|
||||
side_effects: true,
|
||||
toplevel: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
var a = "PASS", b = 42;
|
||||
b ??= a = "FAIL";
|
||||
console.log(a);
|
||||
}
|
||||
expect: {
|
||||
var a = "PASS", b = 42;
|
||||
b ??= a = "FAIL";
|
||||
console.log(a);
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
node_version: ">=15"
|
||||
}
|
||||
|
||||
@@ -2868,7 +2868,7 @@ lvalues_def: {
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
compound_assignment: {
|
||||
compound_assignment_1: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
}
|
||||
@@ -2887,6 +2887,23 @@ compound_assignment: {
|
||||
expect_stdout: "4"
|
||||
}
|
||||
|
||||
compound_assignment_2: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
}
|
||||
input: {
|
||||
var a;
|
||||
a = 1;
|
||||
for (a += a + 2; console.log(a););
|
||||
}
|
||||
expect: {
|
||||
var a;
|
||||
a = 1;
|
||||
for (a += a + 2; console.log(a););
|
||||
}
|
||||
expect_stdout: "4"
|
||||
}
|
||||
|
||||
issue_2187_1: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
|
||||
Reference in New Issue
Block a user