Initial commit
[yaffs-website] / node_modules / grunt-contrib-watch / node_modules / globule / node_modules / lodash / _baseIteratee.js
1 var baseMatches = require('./_baseMatches'),
2     baseMatchesProperty = require('./_baseMatchesProperty'),
3     identity = require('./identity'),
4     isArray = require('./isArray'),
5     property = require('./property');
6
7 /**
8  * The base implementation of `_.iteratee`.
9  *
10  * @private
11  * @param {*} [value=_.identity] The value to convert to an iteratee.
12  * @returns {Function} Returns the iteratee.
13  */
14 function baseIteratee(value) {
15   // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
16   // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
17   if (typeof value == 'function') {
18     return value;
19   }
20   if (value == null) {
21     return identity;
22   }
23   if (typeof value == 'object') {
24     return isArray(value)
25       ? baseMatchesProperty(value[0], value[1])
26       : baseMatches(value);
27   }
28   return property(value);
29 }
30
31 module.exports = baseIteratee;