util: Add format for SharedArrayBuffer
PR-URL: https://github.com/nodejs/node/pull/8587 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
e65a2d7ddc
commit
ce7d3077dc
10
lib/util.js
10
lib/util.js
@ -435,9 +435,10 @@ function formatValue(ctx, value, recurseTimes) {
|
|||||||
formatted = formatPrimitiveNoColor(ctx, raw);
|
formatted = formatPrimitiveNoColor(ctx, raw);
|
||||||
return ctx.stylize('[Boolean: ' + formatted + ']', 'boolean');
|
return ctx.stylize('[Boolean: ' + formatted + ']', 'boolean');
|
||||||
}
|
}
|
||||||
// Fast path for ArrayBuffer. Can't do the same for DataView because it
|
// Fast path for ArrayBuffer and SharedArrayBuffer.
|
||||||
// has a non-primitive .buffer property that we need to recurse for.
|
// Can't do the same for DataView because it has a non-primitive
|
||||||
if (binding.isArrayBuffer(value)) {
|
// .buffer property that we need to recurse for.
|
||||||
|
if (binding.isArrayBuffer(value) || binding.isSharedArrayBuffer(value)) {
|
||||||
return `${getConstructorOf(value).name}` +
|
return `${getConstructorOf(value).name}` +
|
||||||
` { byteLength: ${formatNumber(ctx, value.byteLength)} }`;
|
` { byteLength: ${formatNumber(ctx, value.byteLength)} }`;
|
||||||
}
|
}
|
||||||
@ -475,7 +476,8 @@ function formatValue(ctx, value, recurseTimes) {
|
|||||||
keys.unshift('size');
|
keys.unshift('size');
|
||||||
empty = value.size === 0;
|
empty = value.size === 0;
|
||||||
formatter = formatMap;
|
formatter = formatMap;
|
||||||
} else if (binding.isArrayBuffer(value)) {
|
} else if (binding.isArrayBuffer(value) ||
|
||||||
|
binding.isSharedArrayBuffer(value)) {
|
||||||
braces = ['{', '}'];
|
braces = ['{', '}'];
|
||||||
keys.unshift('byteLength');
|
keys.unshift('byteLength');
|
||||||
visibleKeys.byteLength = true;
|
visibleKeys.byteLength = true;
|
||||||
|
@ -20,7 +20,6 @@ using v8::Value;
|
|||||||
|
|
||||||
#define VALUE_METHOD_MAP(V) \
|
#define VALUE_METHOD_MAP(V) \
|
||||||
V(isArrayBuffer, IsArrayBuffer) \
|
V(isArrayBuffer, IsArrayBuffer) \
|
||||||
V(isSharedArrayBuffer, IsSharedArrayBuffer) \
|
|
||||||
V(isDataView, IsDataView) \
|
V(isDataView, IsDataView) \
|
||||||
V(isDate, IsDate) \
|
V(isDate, IsDate) \
|
||||||
V(isMap, IsMap) \
|
V(isMap, IsMap) \
|
||||||
@ -29,6 +28,7 @@ using v8::Value;
|
|||||||
V(isRegExp, IsRegExp) \
|
V(isRegExp, IsRegExp) \
|
||||||
V(isSet, IsSet) \
|
V(isSet, IsSet) \
|
||||||
V(isSetIterator, IsSetIterator) \
|
V(isSetIterator, IsSetIterator) \
|
||||||
|
V(isSharedArrayBuffer, IsSharedArrayBuffer) \
|
||||||
V(isTypedArray, IsTypedArray)
|
V(isTypedArray, IsTypedArray)
|
||||||
|
|
||||||
|
|
||||||
|
10
test/parallel/test-util-format-shared-arraybuffer.js
Normal file
10
test/parallel/test-util-format-shared-arraybuffer.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Flags: --harmony_sharedarraybuffer
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
require('../common');
|
||||||
|
const assert = require('assert');
|
||||||
|
const util = require('util');
|
||||||
|
|
||||||
|
/* global SharedArrayBuffer */
|
||||||
|
const sab = new SharedArrayBuffer(4);
|
||||||
|
assert.strictEqual(util.format(sab), 'SharedArrayBuffer { byteLength: 4 }');
|
Loading…
x
Reference in New Issue
Block a user