Initial commit
[yaffs-website] / node_modules / grunt-contrib-watch / node_modules / globule / node_modules / lodash / _baseIsTypedArray.js
1 var baseGetTag = require('./_baseGetTag'),
2     isLength = require('./isLength'),
3     isObjectLike = require('./isObjectLike');
4
5 /** `Object#toString` result references. */
6 var argsTag = '[object Arguments]',
7     arrayTag = '[object Array]',
8     boolTag = '[object Boolean]',
9     dateTag = '[object Date]',
10     errorTag = '[object Error]',
11     funcTag = '[object Function]',
12     mapTag = '[object Map]',
13     numberTag = '[object Number]',
14     objectTag = '[object Object]',
15     regexpTag = '[object RegExp]',
16     setTag = '[object Set]',
17     stringTag = '[object String]',
18     weakMapTag = '[object WeakMap]';
19
20 var arrayBufferTag = '[object ArrayBuffer]',
21     dataViewTag = '[object DataView]',
22     float32Tag = '[object Float32Array]',
23     float64Tag = '[object Float64Array]',
24     int8Tag = '[object Int8Array]',
25     int16Tag = '[object Int16Array]',
26     int32Tag = '[object Int32Array]',
27     uint8Tag = '[object Uint8Array]',
28     uint8ClampedTag = '[object Uint8ClampedArray]',
29     uint16Tag = '[object Uint16Array]',
30     uint32Tag = '[object Uint32Array]';
31
32 /** Used to identify `toStringTag` values of typed arrays. */
33 var typedArrayTags = {};
34 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
35 typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
36 typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
37 typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
38 typedArrayTags[uint32Tag] = true;
39 typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
40 typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
41 typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
42 typedArrayTags[errorTag] = typedArrayTags[funcTag] =
43 typedArrayTags[mapTag] = typedArrayTags[numberTag] =
44 typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
45 typedArrayTags[setTag] = typedArrayTags[stringTag] =
46 typedArrayTags[weakMapTag] = false;
47
48 /**
49  * The base implementation of `_.isTypedArray` without Node.js optimizations.
50  *
51  * @private
52  * @param {*} value The value to check.
53  * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
54  */
55 function baseIsTypedArray(value) {
56   return isObjectLike(value) &&
57     isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
58 }
59
60 module.exports = baseIsTypedArray;