summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/assert.js5
-rw-r--r--lib/internal/util/comparisons.js2
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/assert.js b/lib/assert.js
index c3faba0905..828a443ec9 100644
--- a/lib/assert.js
+++ b/lib/assert.js
@@ -25,6 +25,7 @@ const {
ObjectIs,
ObjectKeys,
ObjectPrototypeIsPrototypeOf,
+ NumberIsNaN
} = primordials;
const { Buffer } = require('buffer');
@@ -398,7 +399,7 @@ assert.equal = function equal(actual, expected, message) {
throw new ERR_MISSING_ARGS('actual', 'expected');
}
// eslint-disable-next-line eqeqeq
- if (actual != expected) {
+ if (actual != expected && (!NumberIsNaN(actual) || !NumberIsNaN(expected))) {
innerFail({
actual,
expected,
@@ -416,7 +417,7 @@ assert.notEqual = function notEqual(actual, expected, message) {
throw new ERR_MISSING_ARGS('actual', 'expected');
}
// eslint-disable-next-line eqeqeq
- if (actual == expected) {
+ if (actual == expected || (NumberIsNaN(actual) && NumberIsNaN(expected))) {
innerFail({
actual,
expected,
diff --git a/lib/internal/util/comparisons.js b/lib/internal/util/comparisons.js
index 734ecf6224..b26012923c 100644
--- a/lib/internal/util/comparisons.js
+++ b/lib/internal/util/comparisons.js
@@ -180,7 +180,7 @@ function innerDeepEqual(val1, val2, strict, memos) {
if (val1 === null || typeof val1 !== 'object') {
if (val2 === null || typeof val2 !== 'object') {
// eslint-disable-next-line eqeqeq
- return val1 == val2;
+ return val1 == val2 || (NumberIsNaN(val1) && NumberIsNaN(val2));
}
return false;
}