forked from distok/asarfuckery
42 lines
1,016 B
JavaScript
42 lines
1,016 B
JavaScript
module.exports = isTypedArray
|
|
isTypedArray.strict = isStrictTypedArray
|
|
isTypedArray.loose = isLooseTypedArray
|
|
|
|
var toString = Object.prototype.toString
|
|
var names = {
|
|
'[object Int8Array]': true
|
|
, '[object Int16Array]': true
|
|
, '[object Int32Array]': true
|
|
, '[object Uint8Array]': true
|
|
, '[object Uint8ClampedArray]': true
|
|
, '[object Uint16Array]': true
|
|
, '[object Uint32Array]': true
|
|
, '[object Float32Array]': true
|
|
, '[object Float64Array]': true
|
|
}
|
|
|
|
function isTypedArray(arr) {
|
|
return (
|
|
isStrictTypedArray(arr)
|
|
|| isLooseTypedArray(arr)
|
|
)
|
|
}
|
|
|
|
function isStrictTypedArray(arr) {
|
|
return (
|
|
arr instanceof Int8Array
|
|
|| arr instanceof Int16Array
|
|
|| arr instanceof Int32Array
|
|
|| arr instanceof Uint8Array
|
|
|| arr instanceof Uint8ClampedArray
|
|
|| arr instanceof Uint16Array
|
|
|| arr instanceof Uint32Array
|
|
|| arr instanceof Float32Array
|
|
|| arr instanceof Float64Array
|
|
)
|
|
}
|
|
|
|
function isLooseTypedArray(arr) {
|
|
return names[toString.call(arr)]
|
|
}
|