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)]

}