Skip to content

Commit ee5c6b6

Browse files
lemirechharvey
andauthored
assert,util: correct comparison when both contain same reference
Co-authored-by: Chris Harvey <1362083+chharvey@users.noreply.github.com> PR-URL: #53431 Refs: #53423 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent 2333573 commit ee5c6b6

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

lib/internal/util/comparisons.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -502,8 +502,9 @@ function setEquiv(a, b, strict, memo) {
502502
for (const val of b) {
503503
// Primitive values have already been handled above.
504504
if (typeof val === 'object' && val !== null) {
505-
if (!setHasEqualElement(set, val, strict, memo))
505+
if (!a.has(val) && !setHasEqualElement(set, val, strict, memo)) {
506506
return false;
507+
}
507508
} else if (!strict &&
508509
!a.has(val) &&
509510
!setHasEqualElement(set, val, strict, memo)) {

test/parallel/test-assert-deep.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,11 @@ assertOnlyDeepEqual(
375375
new Map([[undefined, null], ['+000', 2n]]),
376376
new Map([[null, undefined], [false, '2']]),
377377
);
378-
378+
const xarray = ['x'];
379+
assertDeepAndStrictEqual(
380+
new Set([xarray, ['y']]),
381+
new Set([xarray, ['y']])
382+
);
379383
assertOnlyDeepEqual(
380384
new Set([null, '', 1n, 5, 2n, false]),
381385
new Set([undefined, 0, 5n, true, '2', '-000'])

0 commit comments

Comments
 (0)