diff options
author | Yosuke Furukawa <yosuke.furukawa@gmail.com> | 2016-09-17 11:01:39 +0200 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2016-09-26 08:07:04 -0700 |
commit | ce7d3077dc990ca5a627bd83894712f586ca16f1 (patch) | |
tree | 12ccf5d1247a28cec4c7dff69da75644192e8adc | |
parent | e65a2d7ddcf30077b14cc07d54c7953fb0028155 (diff) | |
download | android-node-v8-ce7d3077dc990ca5a627bd83894712f586ca16f1.tar.gz android-node-v8-ce7d3077dc990ca5a627bd83894712f586ca16f1.tar.bz2 android-node-v8-ce7d3077dc990ca5a627bd83894712f586ca16f1.zip |
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>
-rw-r--r-- | lib/util.js | 10 | ||||
-rw-r--r-- | src/node_util.cc | 2 | ||||
-rw-r--r-- | test/parallel/test-util-format-shared-arraybuffer.js | 10 |
3 files changed, 17 insertions, 5 deletions
diff --git a/lib/util.js b/lib/util.js index caab2651f3..f742e38433 100644 --- a/lib/util.js +++ b/lib/util.js @@ -435,9 +435,10 @@ function formatValue(ctx, value, recurseTimes) { formatted = formatPrimitiveNoColor(ctx, raw); return ctx.stylize('[Boolean: ' + formatted + ']', 'boolean'); } - // Fast path for ArrayBuffer. Can't do the same for DataView because it - // has a non-primitive .buffer property that we need to recurse for. - if (binding.isArrayBuffer(value)) { + // Fast path for ArrayBuffer and SharedArrayBuffer. + // Can't do the same for DataView because it has a non-primitive + // .buffer property that we need to recurse for. + if (binding.isArrayBuffer(value) || binding.isSharedArrayBuffer(value)) { return `${getConstructorOf(value).name}` + ` { byteLength: ${formatNumber(ctx, value.byteLength)} }`; } @@ -475,7 +476,8 @@ function formatValue(ctx, value, recurseTimes) { keys.unshift('size'); empty = value.size === 0; formatter = formatMap; - } else if (binding.isArrayBuffer(value)) { + } else if (binding.isArrayBuffer(value) || + binding.isSharedArrayBuffer(value)) { braces = ['{', '}']; keys.unshift('byteLength'); visibleKeys.byteLength = true; diff --git a/src/node_util.cc b/src/node_util.cc index b228af0050..c231983e57 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -20,7 +20,6 @@ using v8::Value; #define VALUE_METHOD_MAP(V) \ V(isArrayBuffer, IsArrayBuffer) \ - V(isSharedArrayBuffer, IsSharedArrayBuffer) \ V(isDataView, IsDataView) \ V(isDate, IsDate) \ V(isMap, IsMap) \ @@ -29,6 +28,7 @@ using v8::Value; V(isRegExp, IsRegExp) \ V(isSet, IsSet) \ V(isSetIterator, IsSetIterator) \ + V(isSharedArrayBuffer, IsSharedArrayBuffer) \ V(isTypedArray, IsTypedArray) diff --git a/test/parallel/test-util-format-shared-arraybuffer.js b/test/parallel/test-util-format-shared-arraybuffer.js new file mode 100644 index 0000000000..d0c7dfe8c4 --- /dev/null +++ b/test/parallel/test-util-format-shared-arraybuffer.js @@ -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 }'); |