Refactor to simplify null
or undefined
checks
#471
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, the methods
nonNullish
,nonNullishAsync
,nullish
, andnullishAsync
determine ifinput
isnull
orundefined
using the following approach:According to the ECMAScript specification mentioned in:
13.11.1 Runtime Semantics: Evaluation
EqualityExpression : EqualityExpression == RelationalExpression
The specification for IsLooselyEqual is as follows:
7.2.14 IsLooselyEqual ( x, y )
The abstract operation IsLooselyEqual takes arguments x (an ECMAScript language value) and y (an ECMAScript language value) and returns either a normal completion containing a Boolean or a throw completion. It provides the semantics for the == operator. It performs the following steps when called:
a. Return IsStrictlyEqual(x, y).
...ellipsis
In points two and three, we find that using
null == undefined
yieldstrue
. Therefore, we can simplify our check as follows:It perhaps makes the code more concise. If there are any concerns, we are eager to hear your thoughts.