mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-31 07:17:50 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc16e113c2 |
11
README.md
11
README.md
@@ -1,4 +1,4 @@
|
||||
# lodash v3.3.0
|
||||
# lodash v3.3.1
|
||||
|
||||
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash](https://lodash.com/) exported as [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) modules.
|
||||
|
||||
@@ -28,7 +28,7 @@ var array = require('lodash/array');
|
||||
var chunk = require('lodash/array/chunk');
|
||||
```
|
||||
|
||||
See the [package source](https://github.com/lodash/lodash/tree/3.3.0-npm) for more details.
|
||||
See the [package source](https://github.com/lodash/lodash/tree/3.3.1-npm) for more details.
|
||||
|
||||
**Note:**<br>
|
||||
Don’t assign values to the [special variable](http://nodejs.org/api/repl.html#repl_repl_features) `_` when in the REPL.<br>
|
||||
@@ -39,8 +39,8 @@ Install [n_](https://www.npmjs.com/package/n_) for a REPL that includes lodash b
|
||||
lodash is also available in a variety of other builds & module formats.
|
||||
|
||||
* npm packages for [modern](https://www.npmjs.com/package/lodash), [compatibility](https://www.npmjs.com/package/lodash-compat), & [per method](https://www.npmjs.com/browse/keyword/lodash-modularized) builds
|
||||
* AMD modules for [modern](https://github.com/lodash/lodash/tree/3.3.0-amd) & [compatibility](https://github.com/lodash/lodash-compat/tree/3.3.0-amd) builds
|
||||
* ES modules for the [modern](https://github.com/lodash/lodash/tree/3.3.0-es) build
|
||||
* AMD modules for [modern](https://github.com/lodash/lodash/tree/3.3.1-amd) & [compatibility](https://github.com/lodash/lodash-compat/tree/3.3.1-amd) builds
|
||||
* ES modules for the [modern](https://github.com/lodash/lodash/tree/3.3.1-es) build
|
||||
|
||||
## Further Reading
|
||||
|
||||
@@ -74,7 +74,6 @@ lodash is also available in a variety of other builds & module formats.
|
||||
* [_.forEach](https://lodash.com/docs#forEach) supports exiting early
|
||||
* [_.forIn](https://lodash.com/docs#forIn) for iterating all enumerable properties
|
||||
* [_.forOwn](https://lodash.com/docs#forOwn) for iterating own properties
|
||||
* [_.includes](https://lodash.com/docs#includes) accepts a `fromIndex`
|
||||
* [_.inRange](https://lodash.com/docs#inRange) for checking whether a number is within a given range
|
||||
* [_.isNative](https://lodash.com/docs#isNative) to check for native functions
|
||||
* [_.isPlainObject](https://lodash.com/docs#isPlainObject) & [_.toPlainObject](https://lodash.com/docs#toPlainObject) to check for & convert to `Object` objects
|
||||
@@ -111,6 +110,6 @@ lodash is also available in a variety of other builds & module formats.
|
||||
|
||||
## Support
|
||||
|
||||
Tested in Chrome 39-40, Firefox 34-35, IE 6-11, Opera 26-27, Safari 5-8, io.js 1.2.0, Node.js 0.8.28, 0.10.36, & 0.12.0, PhantomJS 1.9.8, RingoJS 0.11, & Rhino 1.7RC5.
|
||||
Tested in Chrome 39-40, Firefox 34-35, IE 6-11, Opera 26-27, Safari 5-8, io.js 1.3.0, Node.js 0.8.28, 0.10.36, & 0.12.0, PhantomJS 1.9.8, RingoJS 0.11, & Rhino 1.7RC5.
|
||||
|
||||
Automated [browser](https://saucelabs.com/u/lodash) & [CI](https://travis-ci.org/lodash/lodash/) test runs are available. Special thanks to [Sauce Labs](https://saucelabs.com/) for providing automated browser testing.
|
||||
|
||||
@@ -37,7 +37,7 @@ var baseCallback = require('../internal/baseCallback');
|
||||
* // => 2
|
||||
*
|
||||
* // using the `_.matches` callback shorthand
|
||||
* _.findLastIndex(users, { user': 'barney', 'active': true });
|
||||
* _.findLastIndex(users, { 'user': 'barney', 'active': true });
|
||||
* // => 0
|
||||
*
|
||||
* // using the `_.matchesProperty` callback shorthand
|
||||
|
||||
@@ -26,7 +26,7 @@ var nativeMax = Math.max;
|
||||
* @example
|
||||
*
|
||||
* _.indexOf([1, 2, 1, 2], 2);
|
||||
* // => 2
|
||||
* // => 1
|
||||
*
|
||||
* // using `fromIndex`
|
||||
* _.indexOf([1, 2, 1, 2], 2, 2);
|
||||
|
||||
@@ -34,7 +34,7 @@ function intersection() {
|
||||
var value = arguments[argsIndex];
|
||||
if (isArray(value) || isArguments(value)) {
|
||||
args.push(value);
|
||||
caches.push(isCommon && value.length >= 120 && createCache(argsIndex && value));
|
||||
caches.push((isCommon && value.length >= 120) ? createCache(argsIndex && value) : null);
|
||||
}
|
||||
}
|
||||
argsLength = args.length;
|
||||
|
||||
@@ -41,7 +41,7 @@ var arraySome = require('../internal/arraySome'),
|
||||
* ];
|
||||
*
|
||||
* // using the `_.matches` callback shorthand
|
||||
* _.some(users, { user': 'barney', 'active': false });
|
||||
* _.some(users, { 'user': 'barney', 'active': false });
|
||||
* // => false
|
||||
*
|
||||
* // using the `_.matchesProperty` callback shorthand
|
||||
|
||||
@@ -26,7 +26,7 @@ var nativeMax = Math.max;
|
||||
* @memberOf _
|
||||
* @category Function
|
||||
* @param {Function} func The function to debounce.
|
||||
* @param {number} wait The number of milliseconds to delay.
|
||||
* @param {number} [wait=0] The number of milliseconds to delay.
|
||||
* @param {Object} [options] The options object.
|
||||
* @param {boolean} [options.leading=false] Specify invoking on the leading
|
||||
* edge of the timeout.
|
||||
@@ -84,7 +84,7 @@ function debounce(func, wait, options) {
|
||||
if (typeof func != 'function') {
|
||||
throw new TypeError(FUNC_ERROR_TEXT);
|
||||
}
|
||||
wait = wait < 0 ? 0 : wait;
|
||||
wait = wait < 0 ? 0 : (+wait || 0);
|
||||
if (options === true) {
|
||||
var leading = true;
|
||||
trailing = false;
|
||||
|
||||
@@ -30,7 +30,7 @@ var debounceOptions = {
|
||||
* @memberOf _
|
||||
* @category Function
|
||||
* @param {Function} func The function to throttle.
|
||||
* @param {number} wait The number of milliseconds to throttle invocations to.
|
||||
* @param {number} [wait=0] The number of milliseconds to throttle invocations to.
|
||||
* @param {Object} [options] The options object.
|
||||
* @param {boolean} [options.leading=true] Specify invoking on the leading
|
||||
* edge of the timeout.
|
||||
|
||||
52
index.js
52
index.js
@@ -1,9 +1,9 @@
|
||||
/**
|
||||
* @license
|
||||
* lodash 3.3.0 (Custom Build) <https://lodash.com/>
|
||||
* lodash 3.3.1 (Custom Build) <https://lodash.com/>
|
||||
* Build: `lodash modern -d -o ./index.js`
|
||||
* Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
|
||||
* Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
|
||||
* Based on Underscore.js 1.8.2 <http://underscorejs.org/LICENSE>
|
||||
* Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
||||
* Available under MIT license <https://lodash.com/license>
|
||||
*/
|
||||
@@ -13,7 +13,7 @@
|
||||
var undefined;
|
||||
|
||||
/** Used as the semantic version number. */
|
||||
var VERSION = '3.3.0';
|
||||
var VERSION = '3.3.1';
|
||||
|
||||
/** Used to compose bitmasks for wrapper metadata. */
|
||||
var BIND_FLAG = 1,
|
||||
@@ -1804,7 +1804,7 @@
|
||||
var index = -1,
|
||||
indexOf = getIndexOf(),
|
||||
isCommon = indexOf == baseIndexOf,
|
||||
cache = isCommon && values.length >= 200 && createCache(values),
|
||||
cache = (isCommon && values.length >= 200) ? createCache(values) : null,
|
||||
valuesLength = values.length;
|
||||
|
||||
if (cache) {
|
||||
@@ -2624,7 +2624,7 @@
|
||||
length = array.length,
|
||||
isCommon = indexOf == baseIndexOf,
|
||||
isLarge = isCommon && length >= 200,
|
||||
seen = isLarge && createCache(),
|
||||
seen = isLarge ? createCache() : null,
|
||||
result = [];
|
||||
|
||||
if (seen) {
|
||||
@@ -3676,8 +3676,11 @@
|
||||
} else {
|
||||
prereq = type == 'string' && index in object;
|
||||
}
|
||||
var other = object[index];
|
||||
return prereq && (value === value ? value === other : other !== other);
|
||||
if (prereq) {
|
||||
var other = object[index];
|
||||
return value === value ? value === other : other !== other;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -4403,7 +4406,7 @@
|
||||
* // => 2
|
||||
*
|
||||
* // using the `_.matches` callback shorthand
|
||||
* _.findLastIndex(users, { user': 'barney', 'active': true });
|
||||
* _.findLastIndex(users, { 'user': 'barney', 'active': true });
|
||||
* // => 0
|
||||
*
|
||||
* // using the `_.matchesProperty` callback shorthand
|
||||
@@ -4514,7 +4517,7 @@
|
||||
* @example
|
||||
*
|
||||
* _.indexOf([1, 2, 1, 2], 2);
|
||||
* // => 2
|
||||
* // => 1
|
||||
*
|
||||
* // using `fromIndex`
|
||||
* _.indexOf([1, 2, 1, 2], 2, 2);
|
||||
@@ -4587,7 +4590,7 @@
|
||||
var value = arguments[argsIndex];
|
||||
if (isArray(value) || isArguments(value)) {
|
||||
args.push(value);
|
||||
caches.push(isCommon && value.length >= 120 && createCache(argsIndex && value));
|
||||
caches.push((isCommon && value.length >= 120) ? createCache(argsIndex && value) : null);
|
||||
}
|
||||
}
|
||||
argsLength = args.length;
|
||||
@@ -6655,7 +6658,7 @@
|
||||
* ];
|
||||
*
|
||||
* // using the `_.matches` callback shorthand
|
||||
* _.some(users, { user': 'barney', 'active': false });
|
||||
* _.some(users, { 'user': 'barney', 'active': false });
|
||||
* // => false
|
||||
*
|
||||
* // using the `_.matchesProperty` callback shorthand
|
||||
@@ -7191,7 +7194,7 @@
|
||||
* @memberOf _
|
||||
* @category Function
|
||||
* @param {Function} func The function to debounce.
|
||||
* @param {number} wait The number of milliseconds to delay.
|
||||
* @param {number} [wait=0] The number of milliseconds to delay.
|
||||
* @param {Object} [options] The options object.
|
||||
* @param {boolean} [options.leading=false] Specify invoking on the leading
|
||||
* edge of the timeout.
|
||||
@@ -7249,7 +7252,7 @@
|
||||
if (typeof func != 'function') {
|
||||
throw new TypeError(FUNC_ERROR_TEXT);
|
||||
}
|
||||
wait = wait < 0 ? 0 : wait;
|
||||
wait = wait < 0 ? 0 : (+wait || 0);
|
||||
if (options === true) {
|
||||
var leading = true;
|
||||
trailing = false;
|
||||
@@ -7770,7 +7773,7 @@
|
||||
* @memberOf _
|
||||
* @category Function
|
||||
* @param {Function} func The function to throttle.
|
||||
* @param {number} wait The number of milliseconds to throttle invocations to.
|
||||
* @param {number} [wait=0] The number of milliseconds to throttle invocations to.
|
||||
* @param {Object} [options] The options object.
|
||||
* @param {boolean} [options.leading=true] Specify invoking on the leading
|
||||
* edge of the timeout.
|
||||
@@ -10087,10 +10090,10 @@
|
||||
* var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
|
||||
* compiled.source;
|
||||
* // => function(data) {
|
||||
* var __t, __p = '';
|
||||
* __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
|
||||
* return __p;
|
||||
* }
|
||||
* // var __t, __p = '';
|
||||
* // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
|
||||
* // return __p;
|
||||
* // }
|
||||
*
|
||||
* // using the `source` property to inline compiled templates for meaningful
|
||||
* // line numbers in error messages and a stack trace
|
||||
@@ -11204,15 +11207,13 @@
|
||||
|
||||
// Add `LazyWrapper` methods that accept an `iteratee` value.
|
||||
arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {
|
||||
var isFilter = index == LAZY_FILTER_FLAG,
|
||||
isWhile = index == LAZY_WHILE_FLAG;
|
||||
var isFilter = index == LAZY_FILTER_FLAG || index == LAZY_WHILE_FLAG;
|
||||
|
||||
LazyWrapper.prototype[methodName] = function(iteratee, thisArg) {
|
||||
var result = this.clone(),
|
||||
filtered = result.__filtered__,
|
||||
iteratees = result.__iteratees__ || (result.__iteratees__ = []);
|
||||
|
||||
result.__filtered__ = filtered || isFilter || (isWhile && result.__dir__ < 0);
|
||||
result.__filtered__ = result.__filtered__ || isFilter;
|
||||
iteratees.push({ 'iteratee': getCallback(iteratee, thisArg, 3), 'type': index });
|
||||
return result;
|
||||
};
|
||||
@@ -11279,9 +11280,14 @@
|
||||
};
|
||||
|
||||
LazyWrapper.prototype.dropWhile = function(predicate, thisArg) {
|
||||
var done;
|
||||
var done,
|
||||
lastIndex,
|
||||
isRight = this.__dir__ < 0;
|
||||
|
||||
predicate = getCallback(predicate, thisArg, 3);
|
||||
return this.filter(function(value, index, array) {
|
||||
done = done && (isRight ? index < lastIndex : index > lastIndex);
|
||||
lastIndex = index;
|
||||
return done || (done = !predicate(value, index, array));
|
||||
});
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@ function baseDifference(array, values) {
|
||||
var index = -1,
|
||||
indexOf = baseIndexOf,
|
||||
isCommon = true,
|
||||
cache = isCommon && values.length >= 200 && createCache(values),
|
||||
cache = (isCommon && values.length >= 200) ? createCache(values) : null,
|
||||
valuesLength = values.length;
|
||||
|
||||
if (cache) {
|
||||
|
||||
@@ -17,7 +17,7 @@ function baseUniq(array, iteratee) {
|
||||
length = array.length,
|
||||
isCommon = true,
|
||||
isLarge = isCommon && length >= 200,
|
||||
seen = isLarge && createCache(),
|
||||
seen = isLarge ? createCache() : null,
|
||||
result = [];
|
||||
|
||||
if (seen) {
|
||||
|
||||
@@ -22,8 +22,11 @@ function isIterateeCall(value, index, object) {
|
||||
} else {
|
||||
prereq = type == 'string' && index in object;
|
||||
}
|
||||
var other = object[index];
|
||||
return prereq && (value === value ? value === other : other !== other);
|
||||
if (prereq) {
|
||||
var other = object[index];
|
||||
return value === value ? value === other : other !== other;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
module.exports = isIterateeCall;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lodash",
|
||||
"version": "3.3.0",
|
||||
"version": "3.3.1",
|
||||
"description": "The modern build of lodash modular utilities.",
|
||||
"homepage": "https://lodash.com/",
|
||||
"icon": "https://lodash.com/icon.svg",
|
||||
|
||||
@@ -111,10 +111,10 @@ var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
|
||||
* var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
|
||||
* compiled.source;
|
||||
* // => function(data) {
|
||||
* var __t, __p = '';
|
||||
* __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
|
||||
* return __p;
|
||||
* }
|
||||
* // var __t, __p = '';
|
||||
* // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
|
||||
* // return __p;
|
||||
* // }
|
||||
*
|
||||
* // using the `source` property to inline compiled templates for meaningful
|
||||
* // line numbers in error messages and a stack trace
|
||||
|
||||
Reference in New Issue
Block a user