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