• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const {
4  ArrayBufferIsView,
5  ObjectGetOwnPropertyDescriptor,
6  ObjectGetPrototypeOf,
7  SymbolToStringTag,
8  Uint8ArrayPrototype,
9  uncurryThis,
10} = primordials;
11
12const TypedArrayPrototype = ObjectGetPrototypeOf(Uint8ArrayPrototype);
13
14const TypedArrayProto_toStringTag =
15    uncurryThis(
16      ObjectGetOwnPropertyDescriptor(TypedArrayPrototype,
17                                     SymbolToStringTag).get);
18
19function isTypedArray(value) {
20  return TypedArrayProto_toStringTag(value) !== undefined;
21}
22
23function isUint8Array(value) {
24  return TypedArrayProto_toStringTag(value) === 'Uint8Array';
25}
26
27function isUint8ClampedArray(value) {
28  return TypedArrayProto_toStringTag(value) === 'Uint8ClampedArray';
29}
30
31function isUint16Array(value) {
32  return TypedArrayProto_toStringTag(value) === 'Uint16Array';
33}
34
35function isUint32Array(value) {
36  return TypedArrayProto_toStringTag(value) === 'Uint32Array';
37}
38
39function isInt8Array(value) {
40  return TypedArrayProto_toStringTag(value) === 'Int8Array';
41}
42
43function isInt16Array(value) {
44  return TypedArrayProto_toStringTag(value) === 'Int16Array';
45}
46
47function isInt32Array(value) {
48  return TypedArrayProto_toStringTag(value) === 'Int32Array';
49}
50
51function isFloat32Array(value) {
52  return TypedArrayProto_toStringTag(value) === 'Float32Array';
53}
54
55function isFloat64Array(value) {
56  return TypedArrayProto_toStringTag(value) === 'Float64Array';
57}
58
59function isBigInt64Array(value) {
60  return TypedArrayProto_toStringTag(value) === 'BigInt64Array';
61}
62
63function isBigUint64Array(value) {
64  return TypedArrayProto_toStringTag(value) === 'BigUint64Array';
65}
66
67module.exports = {
68  ...internalBinding('types'),
69  isArrayBufferView: ArrayBufferIsView,
70  isTypedArray,
71  isUint8Array,
72  isUint8ClampedArray,
73  isUint16Array,
74  isUint32Array,
75  isInt8Array,
76  isInt16Array,
77  isInt32Array,
78  isFloat32Array,
79  isFloat64Array,
80  isBigInt64Array,
81  isBigUint64Array
82};
83