Skip to content

Incorrect result from isDeepStrictEqual on two different Sets #61386

@DoubleClickPreferred

Description

@DoubleClickPreferred

Version

22.21.1

Platform

Microsoft Windows NT 10.0.19045.0 x64

Subsystem

util

What steps will reproduce the bug?

The problem can be seen in a quick REPL session:

Welcome to Node.js v22.21.1.
Type ".help" for more information.
> a = new Set([0, new Set([1, 2, 3]), new Set([4, 5, 6])])
Set(3) { 0, Set(3) { 1, 2, 3 }, Set(3) { 4, 5, 6 } }
> b = new Set([0, new Set([1, new Set([2, 3]), new Set([20, 30])]), new Set([4, new Set([5, 6]), new Set([50, 60])])])
Set(3) {
0,
Set(3) { 1, Set(2) { 2, 3 }, Set(2) { 20, 30 } },
Set(3) { 4, Set(2) { 5, 6 }, Set(2) { 50, 60 } }
}
> require('util').isDeepStrictEqual(a, b)
true

How often does it reproduce? Is there a required condition?

Interestingly, require('util').isDeepStrictEqual(b, a) returns false, as expected. Which indicates that isDeepStrictEqual is not symmetrical.

What is the expected behavior? Why is that the expected behavior?

The result should be false.

What do you see instead?

I'm seeing true.

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues with confirmed bugs.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions