Skip to content

Commit 803e8a9

Browse files
reverse empty argument check in constructors (#1887)
The most common way to call a constructor to make an empty collection is to call it without arguments, then value is undefined. With this commit the first check to see if the value passed to the constructor is not set is for undefined, the most common way to call it. This way the condition will only have to evaluate the left side for the common case.
1 parent a5e5af4 commit 803e8a9

File tree

7 files changed

+9
-9
lines changed

7 files changed

+9
-9
lines changed

src/List.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export class List extends IndexedCollection {
3131

3232
constructor(value) {
3333
const empty = emptyList();
34-
if (value === null || value === undefined) {
34+
if (value === undefined || value === null) {
3535
return empty;
3636
}
3737
if (isList(value)) {

src/Map.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export class Map extends KeyedCollection {
3636
// @pragma Construction
3737

3838
constructor(value) {
39-
return value === null || value === undefined
39+
return value === undefined || value === null
4040
? emptyMap()
4141
: isMap(value) && !isOrdered(value)
4242
? value

src/OrderedMap.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export class OrderedMap extends Map {
1010
// @pragma Construction
1111

1212
constructor(value) {
13-
return value === null || value === undefined
13+
return value === undefined || value === null
1414
? emptyOrderedMap()
1515
: isOrderedMap(value)
1616
? value

src/OrderedSet.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export class OrderedSet extends Set {
1010
// @pragma Construction
1111

1212
constructor(value) {
13-
return value === null || value === undefined
13+
return value === undefined || value === null
1414
? emptyOrderedSet()
1515
: isOrderedSet(value)
1616
? value

src/Seq.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import isArrayLike from './utils/isArrayLike';
2323

2424
export class Seq extends Collection {
2525
constructor(value) {
26-
return value === null || value === undefined
26+
return value === undefined || value === null
2727
? emptySequence()
2828
: isImmutable(value)
2929
? value.toSeq()
@@ -85,7 +85,7 @@ export class Seq extends Collection {
8585

8686
export class KeyedSeq extends Seq {
8787
constructor(value) {
88-
return value === null || value === undefined
88+
return value === undefined || value === null
8989
? emptySequence().toKeyedSeq()
9090
: isCollection(value)
9191
? isKeyed(value)
@@ -103,7 +103,7 @@ export class KeyedSeq extends Seq {
103103

104104
export class IndexedSeq extends Seq {
105105
constructor(value) {
106-
return value === null || value === undefined
106+
return value === undefined || value === null
107107
? emptySequence()
108108
: isCollection(value)
109109
? isKeyed(value)

src/Set.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export class Set extends SetCollection {
1515
// @pragma Construction
1616

1717
constructor(value) {
18-
return value === null || value === undefined
18+
return value === undefined || value === null
1919
? emptySet()
2020
: isSet(value) && !isOrdered(value)
2121
? value

src/Stack.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class Stack extends IndexedCollection {
1313
// @pragma Construction
1414

1515
constructor(value) {
16-
return value === null || value === undefined
16+
return value === undefined || value === null
1717
? emptyStack()
1818
: isStack(value)
1919
? value

0 commit comments

Comments
 (0)