diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 39cbfd36b7d410..2f922f6659931c 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -1542,11 +1542,6 @@ function reduceToSingleString( return `${braces[0]}${ln}${join(output, `,\n${indentation} `)} ${braces[1]}`; } -function format(...args) { - return formatWithOptions(undefined, ...args); -} - - const firstErrorLine = (error) => error.message.split('\n')[0]; let CIRCULAR_ERROR_MESSAGE; function tryStringify(arg) { @@ -1569,7 +1564,19 @@ function tryStringify(arg) { } } +function format(...args) { + return formatWithOptionsInternal(undefined, ...args); +} + function formatWithOptions(inspectOptions, ...args) { + if (typeof inspectOptions !== 'object' || inspectOptions === null) { + throw new ERR_INVALID_ARG_TYPE( + 'inspectOptions', 'object', inspectOptions); + } + return formatWithOptionsInternal(inspectOptions, ...args); +} + +function formatWithOptionsInternal(inspectOptions, ...args) { const first = args[0]; let a = 0; let str = ''; diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js index 810e9ac1146d97..2ef05284902995 100644 --- a/test/parallel/test-util-format.js +++ b/test/parallel/test-util-format.js @@ -408,3 +408,20 @@ assert.strictEqual( ), '[ 1, [Object] ]' ); + +[ + undefined, + null, + false, + 5n, + 5, + 'test', + Symbol() +].forEach((invalidOptions) => { + assert.throws(() => { + util.formatWithOptions(invalidOptions, { a: true }); + }, { + code: 'ERR_INVALID_ARG_TYPE', + message: /"inspectOptions".+object/ + }); +});