Skip to content

Conversation

BridgeAR
Copy link
Member

It is impossible to look into the content of a promise and it's state. This aligns the comparison with WeakMaps and WeakSets. Only reference equal promises will pass the check in the future.

Fixes #55198

@BridgeAR BridgeAR added the semver-major PRs that contain breaking changes and should be released in the next major version. label Aug 11, 2025
@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. util Issues and PRs related to the built-in util module. labels Aug 11, 2025
Copy link

codecov bot commented Aug 12, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.89%. Comparing base (f993fca) to head (74ff4a7).
⚠️ Report is 51 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #59448   +/-   ##
=======================================
  Coverage   89.88%   89.89%           
=======================================
  Files         656      656           
  Lines      192947   192984   +37     
  Branches    37841    37858   +17     
=======================================
+ Hits       173427   173474   +47     
+ Misses      12054    12052    -2     
+ Partials     7466     7458    -8     
Files with missing lines Coverage Δ
lib/internal/util/comparisons.js 100.00% <100.00%> (ø)

... and 49 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@BridgeAR BridgeAR added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs that have at least one approval, no pending requests for changes, and a CI started. labels Aug 12, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 12, 2025
@nodejs-github-bot
Copy link
Collaborator

@Renegade334
Copy link
Contributor

Can this behaviour get a mention under the method descriptions in assert.md, as WeakMap/WeakSet do currently?

@lpinca
Copy link
Member

lpinca commented Aug 13, 2025

There is a typo in commit message "it's state" -> "its state".

@nodejs-github-bot
Copy link
Collaborator

It is impossible to look into the content of a promise and its
state. This aligns the comparison with WeakMaps and WeakSets.
Only reference equal promises will pass the check in the future.

Fixes nodejs#55198
@BridgeAR BridgeAR force-pushed the 2025-08-11-fail-promise-comparison branch from 23edea2 to 74ff4a7 Compare August 15, 2025 18:46
@BridgeAR
Copy link
Member Author

I just updated the docs and fixed the commit message typo. PTAL

@BridgeAR BridgeAR added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 18, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 18, 2025
@nodejs-github-bot
Copy link
Collaborator

@BridgeAR BridgeAR added the commit-queue Add this label to land a pull request using GitHub Actions. label Aug 19, 2025
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Aug 19, 2025
@nodejs-github-bot nodejs-github-bot merged commit 7c9fbc1 into nodejs:main Aug 19, 2025
60 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in 7c9fbc1

RafaelGSS added a commit that referenced this pull request Sep 15, 2025
assert:
  * (SEMVER-MAJOR) move assert.fail with multiple arguments to eol (James M Snell) #58532
  * (SEMVER-MAJOR) move CallTracker to EOL (James M Snell) #58006
assert,util:
  * (SEMVER-MAJOR) fail promise comparison in deep equal checks (Ruben Bridgewater) #59448
  * (SEMVER-MAJOR) handle invalid dates as equal in deep comparison (Ruben Bridgewater) #57627
async_hooks:
  * (SEMVER-MAJOR) move `asyncResource` property on bound function to EOL (James M Snell) #58618
buffer:
  * (SEMVER-MAJOR) move SlowBuffer to EOL (Filip Skokan) #58220
build:
  * (SEMVER-MAJOR) bump minimum Clang version to 19 (Michaël Zasso) #59048
  * (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #58064
  * (SEMVER-MAJOR) stop distributing Corepack (Antoine du Hamel) #57617
child_process:
  * (SEMVER-MAJOR) move _channel to end-of-life (James M Snell) #58527
crypto:
  * (SEMVER-MAJOR) runtime-deprecate default shake128/256 output lengths (Filip Skokan) #59008
  * (SEMVER-MAJOR) move deprecated hash and mgf1Hash options to EOL (James M Snell) #58706
  * (SEMVER-MAJOR) runtime deprecate ECDH.setPublicKey() (James M Snell) #58620
deps:
  * (SEMVER-MAJOR) V8: backport 1d3362c55396 (Shu-yu Guo) #58064
  * (SEMVER-MAJOR) V8: cherry-pick 4f38995c8295 (Shu-yu Guo) #58064
  * (SEMVER-MAJOR) V8: cherry-pick 044b9b6f589d (Rezvan Mahdavi Hezaveh) #58064
  * (SEMVER-MAJOR) V8: cherry-pick d2ad518a0b57 (Joyee Cheung) #58064
  * (SEMVER-MAJOR) V8: revert 6d6c1e680c7b (Michaël Zasso) #58064
  * (SEMVER-MAJOR) V8: revert e3cddbedb205 (Michaël Zasso) #58064
  * (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58064
  * (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #58064
  * (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58064
  * (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #58064
  * (SEMVER-MAJOR) fix FP16 bitcasts.h (Stefan Stojanovic) #58064
  * (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #58064
  * (SEMVER-MAJOR) update V8 to 13.7.152.9 (Michaël Zasso) #58064
dgram:
  * (SEMVER-MAJOR) move deprecated APIs to EOL (James M Snell) #58474
dns:
  * (SEMVER-MAJOR) move falsy hostname in lookup to end-of-life (James M Snell) #58619
fs:
  * (SEMVER-MAJOR) move FileHandle close on GC to EOL (James M Snell) #58536
  * (SEMVER-MAJOR) move rmdir recursive option to end-of-life (James M Snell) #58616
  * (SEMVER-MAJOR) make `processReadResult()` and `readSyncRecursive()` private (Livia Medeiros) #58672
  * (SEMVER-MAJOR) move fs stream open method to eol (James M Snell) #58529
  * (SEMVER-MAJOR) remove `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) #55862
http:
  * (SEMVER-MAJOR) deprecate writeHeader (Sebastian Beltran) #59060
lib:
  * (SEMVER-MAJOR) expose global ErrorEvent (Richie Bendall) #58920
  * (SEMVER-MAJOR) deprecate `_stream_*` modules (Dario Piotrowicz) #58337
  * (SEMVER-MAJOR) deprecate _tls_common and _tls_wrap (Dario Piotrowicz) #57643
module:
  * (SEMVER-MAJOR) move Module._debug to end-of-life (James M Snell) #58473
node-api:
  * (SEMVER-MAJOR) add warning for NAPI_EXPERIMENTAL (Miguel Marcondes Filho) #58280
perf_hooks:
  * (SEMVER-MAJOR) move deprecated accessors to EOF (James M Snell) #58531
process:
  * (SEMVER-MAJOR) move multipleResolves event to EOL (James M Snell) #58707
repl:
  * (SEMVER-MAJOR) eol deprecate instantiating without new (Aviv Keller) #59495
src:
  * (SEMVER-MAJOR) store `Local` for `CallbackScope` on stack (Anna Henningsen) #59705
  * (SEMVER-MAJOR) remove node.h APIs to make callback without an async context (Chengzhong Wu) #58471
  * (SEMVER-MAJOR) remove deprecated node::EmitBeforeExit and node::EmitExit (Chengzhong Wu) #58469
  * (SEMVER-MAJOR) remove deprecated node::CreatePlatform and node::FreePlatform (Chengzhong Wu) #58470
  * (SEMVER-MAJOR) remove deprecated node::InitializeNodeWithArgs (Chengzhong Wu) #58470
  * (SEMVER-MAJOR) update NODE_MODULE_VERSION to 138 (Michaël Zasso) #58064
src,permission:
  * (SEMVER-MAJOR) add --allow-net permission (Rafael Gonzaga) #58517
tls:
  * (SEMVER-MAJOR) move IP-address servername deprecation to eol (James M Snell) #58533
tools:
  * (SEMVER-MAJOR) update V8 gypfiles for 13.7 (Michaël Zasso) #58064
url:
  * (SEMVER-MAJOR) move bad port deprecation in legacy url to end-of-life (James M Snell) #58617
util,console:
  * (SEMVER-MAJOR) colorize regexp groups, character classes, etc (Ruben Bridgewater) #59710
worker:
  * (SEMVER-MAJOR) move terminate callback to end-of-life (James M Snell) #58528

PR-URL: #59896
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. needs-ci PRs that need a full CI run. semver-major PRs that contain breaking changes and should be released in the next major version. util Issues and PRs related to the built-in util module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

assert.deepEqual() report difference between promises during test
7 participants