mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-11 03:17:49 +00:00
Update vendor/underscore.
This commit is contained in:
27
vendor/underscore/underscore.js
vendored
27
vendor/underscore/underscore.js
vendored
@@ -20,6 +20,7 @@
|
||||
|
||||
// Save bytes in the minified (but not gzipped) version:
|
||||
var ArrayProto = Array.prototype, ObjProto = Object.prototype;
|
||||
var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;
|
||||
|
||||
// Create quick reference variables for speed access to core prototypes.
|
||||
var push = ArrayProto.push,
|
||||
@@ -218,12 +219,8 @@
|
||||
|
||||
// Return the first value which passes a truth test. Aliased as `detect`.
|
||||
_.find = _.detect = function(obj, predicate, context) {
|
||||
var key;
|
||||
if (isArrayLike(obj)) {
|
||||
key = _.findIndex(obj, predicate, context);
|
||||
} else {
|
||||
key = _.findKey(obj, predicate, context);
|
||||
}
|
||||
var keyFinder = isArrayLike(obj) ? _.findIndex : _.findKey;
|
||||
var key = keyFinder(obj, predicate, context);
|
||||
if (key !== void 0 && key !== -1) return obj[key];
|
||||
};
|
||||
|
||||
@@ -442,7 +439,7 @@
|
||||
// Keep surrogate pair characters together
|
||||
return obj.match(reStrSymbol);
|
||||
}
|
||||
if (isArrayLike(obj)) return _.map(obj, _.identity);
|
||||
if (isArrayLike(obj)) return _.map(obj);
|
||||
return _.values(obj);
|
||||
};
|
||||
|
||||
@@ -494,7 +491,7 @@
|
||||
|
||||
// Trim out all falsy values from an array.
|
||||
_.compact = function(array) {
|
||||
return _.filter(array, _.identity);
|
||||
return _.filter(array);
|
||||
};
|
||||
|
||||
// Internal implementation of a recursive `flatten` function.
|
||||
@@ -859,12 +856,12 @@
|
||||
};
|
||||
|
||||
var debounced = restArgs(function(args) {
|
||||
var callNow = immediate && !timeout;
|
||||
if (timeout) clearTimeout(timeout);
|
||||
if (callNow) {
|
||||
if (immediate) {
|
||||
var callNow = !timeout;
|
||||
timeout = setTimeout(later, wait);
|
||||
result = func.apply(this, args);
|
||||
} else if (!immediate) {
|
||||
if (callNow) result = func.apply(this, args);
|
||||
} else {
|
||||
timeout = _.delay(later, wait, this, args);
|
||||
}
|
||||
|
||||
@@ -1195,6 +1192,8 @@
|
||||
// millisecond representations. Note that invalid dates with millisecond representations
|
||||
// of `NaN` are not equivalent.
|
||||
return +a === +b;
|
||||
case '[object Symbol]':
|
||||
return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);
|
||||
}
|
||||
|
||||
var areArrays = className === '[object Array]';
|
||||
@@ -1285,8 +1284,8 @@
|
||||
return type === 'function' || type === 'object' && !!obj;
|
||||
};
|
||||
|
||||
// Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.
|
||||
_.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol'], function(name) {
|
||||
// Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.
|
||||
_.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol', 'Map', 'WeakMap', 'Set', 'WeakSet'], function(name) {
|
||||
_['is' + name] = function(obj) {
|
||||
return toString.call(obj) === '[object ' + name + ']';
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user