Commit b0aa8874128 for nodejs
commit b0aa8874128b6dd42d6a1fa2281e376fee9209e3
Author: Livia Medeiros <livia@cirno.name>
Date: Sun Nov 15 19:52:26 2026 +0800
util: use `Map.prototype.getOrInsert()` in circular reference formatting
Signed-off-by: LiviaMedeiros <livia@cirno.name>
PR-URL: https://github.com/nodejs/node/pull/67451
Reviewed-By: Jordan Harband <ljharb@gmail.com>
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js
index 26cf23bf0fa..30bfa41b0ce 100644
--- a/lib/internal/util/inspect.js
+++ b/lib/internal/util/inspect.js
@@ -1173,17 +1173,8 @@ function formatValue(ctx, value, recurseTimes, typedArray) {
// Using an array here is actually better for the average case than using
// a Set. `seen` will only check for the depth and will never grow too large.
if (ctx.seen.includes(value)) {
- let index = 1;
- if (ctx.circular === undefined) {
- ctx.circular = new SafeMap();
- ctx.circular.set(value, index);
- } else {
- index = ctx.circular.get(value);
- if (index === undefined) {
- index = ctx.circular.size + 1;
- ctx.circular.set(value, index);
- }
- }
+ ctx.circular ??= new SafeMap();
+ const index = ctx.circular.getOrInsert(value, ctx.circular.size + 1);
return ctx.stylize(`[Circular *${index}]`, 'special');
}