Skip to content

Commit f28cbd6

Browse files
committed
small simplification: null or undefined
1 parent 4dcd84b commit f28cbd6

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

compiler/core/js_dump.ml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -700,6 +700,16 @@ and expression_desc cxt ~(level : int) f x : cxt =
700700
| Float _ -> "- "
701701
| _ -> "-");
702702
expression ~level:13 cxt f e)
703+
| Bin
704+
( Or,
705+
{expression_desc = Bin (EqEqEq, e1, {expression_desc = Null})},
706+
{expression_desc = Bin (EqEqEq, e2, {expression_desc = Undefined _})} )
707+
| Bin
708+
( Or,
709+
{expression_desc = Bin (EqEqEq, e1, {expression_desc = Undefined _})},
710+
{expression_desc = Bin (EqEqEq, e2, {expression_desc = Null})} )
711+
when e1 = e2 ->
712+
expression_desc cxt ~level:(level : int) f (Is_null_or_undefined e1)
703713
| Bin (op, e1, e2) ->
704714
let out, lft, rght = Js_op_util.op_prec op in
705715
let need_paren =

tests/tests/src/UntaggedVariants.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ let Truthy = {
8080
};
8181

8282
function classify$1(x) {
83-
if (x === null || x === undefined) {
83+
if (x == null) {
8484
if (x === null) {
8585
return "null";
8686
} else {

tests/tests/src/core/Core_NullableTests.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function shouldHandleNullableValues() {
77
let tUndefined = undefined;
88
let tValue = "hello";
99
let tmp;
10-
tmp = tNull === null || tNull === undefined ? tNull === null : false;
10+
tmp = (tNull == null) ? tNull === null : false;
1111
Test.run([
1212
[
1313
"Core_NullableTests.res",
@@ -18,7 +18,7 @@ function shouldHandleNullableValues() {
1818
"Should handle null"
1919
], tmp, (prim0, prim1) => prim0 === prim1, true);
2020
let tmp$1;
21-
tmp$1 = (tUndefined === null || tUndefined === undefined) && tUndefined !== null;
21+
tmp$1 = (tUndefined == null) && tUndefined !== null;
2222
Test.run([
2323
[
2424
"Core_NullableTests.res",
@@ -29,7 +29,7 @@ function shouldHandleNullableValues() {
2929
"Should handle undefined"
3030
], tmp$1, (prim0, prim1) => prim0 === prim1, true);
3131
let tmp$2;
32-
tmp$2 = tValue === null || tValue === undefined ? false : tValue === "hello";
32+
tmp$2 = (tValue == null) ? false : tValue === "hello";
3333
Test.run([
3434
[
3535
"Core_NullableTests.res",

tests/tests/src/variantsMatching.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,17 +216,17 @@ function isUndefined$1(x) {
216216
}
217217

218218
function plus$2(x, y) {
219-
if (x === null || x === undefined) {
219+
if (x == null) {
220220
return y;
221-
} else if (y === null || y === undefined) {
221+
} else if (y == null) {
222222
return x;
223223
} else {
224224
return x + y | 0;
225225
}
226226
}
227227

228228
function kind(x) {
229-
if (x === null || x === undefined) {
229+
if (x == null) {
230230
if (x === null) {
231231
return "null";
232232
} else {

0 commit comments

Comments
 (0)