aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Gu <timothygu99@gmail.com>2017-04-03 18:29:41 -0700
committerTimothy Gu <timothygu99@gmail.com>2017-04-12 10:03:14 -0700
commit0c539faac39644fbeefd9497e548efab04cf478c (patch)
treeded45302ed3ec86fcb7feed7e92b4e5f7425c075
parentfaa447b256f61d46b4b4963d6bf3e77ccf229e97 (diff)
downloadandroid-node-v8-0c539faac39644fbeefd9497e548efab04cf478c.tar.gz
android-node-v8-0c539faac39644fbeefd9497e548efab04cf478c.tar.bz2
android-node-v8-0c539faac39644fbeefd9497e548efab04cf478c.zip
test: add common.getArrayBufferViews(buf)
PR-URL: https://github.com/nodejs/node/pull/12223 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
-rw-r--r--test/README.md6
-rw-r--r--test/common.js26
2 files changed, 32 insertions, 0 deletions
diff --git a/test/README.md b/test/README.md
index a9ea434a23..9a3edd067a 100644
--- a/test/README.md
+++ b/test/README.md
@@ -220,6 +220,12 @@ The expected error should be [subclassed by the `internal/errors` module](https:
Tests whether `name` and `expected` are part of a raised warning.
+## getArrayBufferViews(buf)
+* `buf` [&lt;Buffer>](https://nodejs.org/api/buffer.html#buffer_class_buffer)
+* return [&lt;ArrayBufferView&#91;&#93;>](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView)
+
+Returns an instance of all possible `ArrayBufferView`s of the provided Buffer.
+
### hasCrypto
* return [&lt;Boolean>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type)
diff --git a/test/common.js b/test/common.js
index e77ee100cb..ba377bebd1 100644
--- a/test/common.js
+++ b/test/common.js
@@ -654,3 +654,29 @@ exports.skipIfInspectorDisabled = function skipIfInspectorDisabled() {
process.exit(0);
}
};
+
+const arrayBufferViews = [
+ Int8Array,
+ Uint8Array,
+ Uint8ClampedArray,
+ Int16Array,
+ Uint16Array,
+ Int32Array,
+ Uint32Array,
+ Float32Array,
+ Float64Array,
+ DataView
+];
+
+exports.getArrayBufferViews = function getArrayBufferViews(buf) {
+ const { buffer, byteOffset, byteLength } = buf;
+
+ const out = [];
+ for (const type of arrayBufferViews) {
+ const { BYTES_PER_ELEMENT = 1 } = type;
+ if (byteLength % BYTES_PER_ELEMENT === 0) {
+ out.push(new type(buffer, byteOffset, byteLength / BYTES_PER_ELEMENT));
+ }
+ }
+ return out;
+};