summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/buffer.js26
-rw-r--r--lib/internal/util/inspect.js2
-rw-r--r--test/parallel/test-buffer-inspect.js14
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>'
+);