From f509cf1d08032c3f8fa110a643aa7e8096489e96 Mon Sep 17 00:00:00 2001 From: Hamid Reza Ghavami Date: Mon, 24 Aug 2026 17:31:34 +0300 Subject: [PATCH] util: allow single-line format when break length is infinite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Hamid Reza Ghavami PR-URL: https://github.com/nodejs/node/pull/64238 Reviewed-By: Jordan Harband Reviewed-By: Juan José Arboleda --- lib/internal/util/inspect.js | 8 ++++++++ test/parallel/test-util-inspect.js | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index a343e09a0a3..1a029c7cf76 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -2622,6 +2622,14 @@ function isBelowBreakLength(ctx, output, start, base) { // TODO(BridgeAR): Add unicode support. Use the readline getStringWidth // function. Check the performance overhead and make it an opt-in in case it's // significant. + // allow the single-line format if the length limit is infinite and no items have newlines + if (ctx.breakLength === Infinity) { + if (base !== '' && StringPrototypeIncludes(base, '\n')) return false; + for (let i = 0; i < output.length; i++) { + if (typeof output[i] === 'string' && StringPrototypeIncludes(output[i], '\n')) return false; + } + return true; + } let totalLength = output.length + start; if (totalLength + output.length > ctx.breakLength) return false; diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index 5d55240f03f..989f6907da6 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -4064,3 +4064,9 @@ ${error.stack.split('\n').slice(1).join('\n')}`, assert.match(inspect(DOMException.prototype), /^\[object DOMException\] \{/); delete Error[Symbol.hasInstance]; } + +{ + const obj = { a: 'short string', b: [1, 2], c: { d: true } }; + const expected = "{ a: 'short string', b: [ 1, 2 ], c: { d: true } }"; + assert.strictEqual(util.inspect(obj, { breakLength: Infinity }), expected); +}