diff options
-rw-r--r-- | lib/buffer.js | 26 | ||||
-rw-r--r-- | lib/internal/util/inspect.js | 2 | ||||
-rw-r--r-- | test/parallel/test-buffer-inspect.js | 14 |
3 files changed, 31 insertions, 11 deletions
diff --git a/lib/buffer.js b/lib/buffer.js index ae4ef87072..1a9d81ab3a 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -59,8 +59,7 @@ const { isUint8Array } = require('internal/util/types'); const { - formatProperty, - kObjectType + inspect: utilInspect } = require('internal/util/inspect'); const { @@ -665,13 +664,24 @@ Buffer.prototype[customInspectSymbol] = function inspect(recurseTimes, ctx) { str += ` ... ${remaining} more byte${remaining > 1 ? 's' : ''}`; // Inspect special properties as well, if possible. if (ctx) { + let extras = false; const filter = ctx.showHidden ? ALL_PROPERTIES : ONLY_ENUMERABLE; - str += getOwnNonIndexProperties(this, filter).reduce((str, key) => { - // Using `formatProperty()` expects an indentationLvl to be set. - ctx.indentationLvl = 0; - str += `, ${formatProperty(ctx, this, recurseTimes, key, kObjectType)}`; - return str; - }, ''); + const obj = getOwnNonIndexProperties(this, filter).reduce((obj, key) => { + extras = true; + obj[key] = this[key]; + return obj; + }, Object.create(null)); + if (extras) { + if (this.length !== 0) + str += ', '; + // '[Object: null prototype] {'.length === 26 + // This is guarded with a test. + str += utilInspect(obj, { + ...ctx, + breakLength: Infinity, + compact: true + }).slice(27, -2); + } } return `<${this.constructor.name} ${str}>`; }; diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index f25c2eaca7..8131166417 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -1546,8 +1546,6 @@ function formatWithOptions(inspectOptions, ...args) { module.exports = { inspect, - formatProperty, - kObjectType, format, formatWithOptions }; diff --git a/test/parallel/test-buffer-inspect.js b/test/parallel/test-buffer-inspect.js index 9230d7b089..d6ecf6b7fc 100644 --- a/test/parallel/test-buffer-inspect.js +++ b/test/parallel/test-buffer-inspect.js @@ -55,4 +55,16 @@ assert.strictEqual(util.inspect(b), expected); assert.strictEqual(util.inspect(s), expected); b.inspect = undefined; -assert.strictEqual(util.inspect(b), '<Buffer 31 32, inspect: undefined>'); +b.prop = new Uint8Array(0); +assert.strictEqual( + util.inspect(b), + '<Buffer 31 32, inspect: undefined, prop: Uint8Array []>' +); + +b = Buffer.alloc(0); +b.prop = 123; + +assert.strictEqual( + util.inspect(b), + '<Buffer prop: 123>' +); |