diff --git a/README.md b/README.md
index 938c2855a..696b7765b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# lodash v3.10.0
+# lodash v3.10.1
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash](https://lodash.com/) exported as [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) modules.
@@ -13,8 +13,8 @@ $ lodash modern exports=amd -d -o ./main.js
Using bower or volo:
```bash
-$ bower i lodash#3.10.0-amd
-$ volo add lodash/3.10.0-amd
+$ bower i lodash#3.10.1-amd
+$ volo add lodash/3.10.1-amd
```
Defining a build as `'lodash'`.
diff --git a/array/flatten.js b/array/flatten.js
index 8461c11be..73ad51280 100644
--- a/array/flatten.js
+++ b/array/flatten.js
@@ -2,7 +2,7 @@ define(['../internal/baseFlatten', '../internal/isIterateeCall'], function(baseF
/**
* Flattens a nested array. If `isDeep` is `true` the array is recursively
- * flattened, otherwise it is only flattened a single level.
+ * flattened, otherwise it's only flattened a single level.
*
* @static
* @memberOf _
diff --git a/array/indexOf.js b/array/indexOf.js
index 1a5aad3d4..64563c414 100644
--- a/array/indexOf.js
+++ b/array/indexOf.js
@@ -6,7 +6,7 @@ define(['../internal/baseIndexOf', '../internal/binaryIndex'], function(baseInde
/**
* Gets the index at which the first occurrence of `value` is found in `array`
* using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons. If `fromIndex` is negative, it is used as the offset
+ * for equality comparisons. If `fromIndex` is negative, it's used as the offset
* from the end of `array`. If `array` is sorted providing `true` for `fromIndex`
* performs a faster binary search.
*
diff --git a/array/sortedIndex.js b/array/sortedIndex.js
index 9b65515ea..d69e28e84 100644
--- a/array/sortedIndex.js
+++ b/array/sortedIndex.js
@@ -3,7 +3,7 @@ define(['../internal/createSortedIndex'], function(createSortedIndex) {
/**
* Uses a binary search to determine the lowest index at which `value` should
* be inserted into `array` in order to maintain its sort order. If an iteratee
- * function is provided it is invoked for `value` and each element of `array`
+ * function is provided it's invoked for `value` and each element of `array`
* to compute their sort ranking. The iteratee is bound to `thisArg` and
* invoked with one argument; (value).
*
diff --git a/array/uniq.js b/array/uniq.js
index 84d31e179..37b19fcb5 100644
--- a/array/uniq.js
+++ b/array/uniq.js
@@ -8,7 +8,7 @@ define(['../internal/baseCallback', '../internal/baseUniq', '../internal/isItera
* [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
* for equality comparisons, in which only the first occurence of each element
* is kept. Providing `true` for `isSorted` performs a faster search algorithm
- * for sorted arrays. If an iteratee function is provided it is invoked for
+ * for sorted arrays. If an iteratee function is provided it's invoked for
* each element in the array to generate the criterion by which uniqueness
* is computed. The `iteratee` is bound to `thisArg` and invoked with three
* arguments: (value, index, array).
diff --git a/chain/wrapperReverse.js b/chain/wrapperReverse.js
index 2a4a51ec9..3ea279ea8 100644
--- a/chain/wrapperReverse.js
+++ b/chain/wrapperReverse.js
@@ -27,7 +27,7 @@ define(['../internal/LazyWrapper', '../internal/LodashWrapper', './thru'], funct
var value = this.__wrapped__;
var interceptor = function(value) {
- return (wrapped && wrapped.__dir__ < 0) ? value : value.reverse();
+ return value.reverse();
};
if (value instanceof LazyWrapper) {
var wrapped = value;
diff --git a/collection/includes.js b/collection/includes.js
index 12c57a974..45adb83c7 100644
--- a/collection/includes.js
+++ b/collection/includes.js
@@ -4,9 +4,9 @@ define(['../internal/baseIndexOf', '../internal/getLength', '../lang/isArray', '
var nativeMax = Math.max;
/**
- * Checks if `value` is in `collection` using
+ * Checks if `target` is in `collection` using
* [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons. If `fromIndex` is negative, it is used as the offset
+ * for equality comparisons. If `fromIndex` is negative, it's used as the offset
* from the end of `collection`.
*
* @static
diff --git a/collection/invoke.js b/collection/invoke.js
index f5273cc84..91fd61222 100644
--- a/collection/invoke.js
+++ b/collection/invoke.js
@@ -6,7 +6,7 @@ define(['../internal/baseEach', '../internal/invokePath', '../internal/isArrayLi
/**
* Invokes the method at `path` of each element in `collection`, returning
* an array of the results of each invoked method. Any additional arguments
- * are provided to each invoked method. If `methodName` is a function it is
+ * are provided to each invoked method. If `methodName` is a function it's
* invoked for, and `this` bound to, each element in `collection`.
*
* @static
diff --git a/function/after.js b/function/after.js
index d8eaea677..c2e235af0 100644
--- a/function/after.js
+++ b/function/after.js
@@ -8,7 +8,7 @@ define(['../internal/root'], function(root) {
/**
* The opposite of `_.before`; this method creates a function that invokes
- * `func` once it is called `n` or more times.
+ * `func` once it's called `n` or more times.
*
* @static
* @memberOf _
diff --git a/function/before.js b/function/before.js
index b77bdcdbb..750a7d1ca 100644
--- a/function/before.js
+++ b/function/before.js
@@ -8,7 +8,7 @@ define([], function() {
/**
* Creates a function that invokes `func`, with the `this` binding and arguments
- * of the created function, while it is called less than `n` times. Subsequent
+ * of the created function, while it's called less than `n` times. Subsequent
* calls to the created function return the result of the last `func` invocation.
*
* @static
diff --git a/function/debounce.js b/function/debounce.js
index cfc443c14..293e6672a 100644
--- a/function/debounce.js
+++ b/function/debounce.js
@@ -34,7 +34,7 @@ define(['../lang/isObject', '../date/now'], function(isObject, now) {
* @param {boolean} [options.leading=false] Specify invoking on the leading
* edge of the timeout.
* @param {number} [options.maxWait] The maximum time `func` is allowed to be
- * delayed before it is invoked.
+ * delayed before it's invoked.
* @param {boolean} [options.trailing=true] Specify invoking on the trailing
* edge of the timeout.
* @returns {Function} Returns the new debounced function.
diff --git a/function/defer.js b/function/defer.js
index e67b8ee89..1f2467519 100644
--- a/function/defer.js
+++ b/function/defer.js
@@ -2,7 +2,7 @@ define(['../internal/baseDelay', './restParam'], function(baseDelay, restParam)
/**
* Defers invoking the `func` until the current call stack has cleared. Any
- * additional arguments are provided to `func` when it is invoked.
+ * additional arguments are provided to `func` when it's invoked.
*
* @static
* @memberOf _
diff --git a/function/delay.js b/function/delay.js
index 2969e4ac0..6d0f4fc90 100644
--- a/function/delay.js
+++ b/function/delay.js
@@ -2,7 +2,7 @@ define(['../internal/baseDelay', './restParam'], function(baseDelay, restParam)
/**
* Invokes `func` after `wait` milliseconds. Any additional arguments are
- * provided to `func` when it is invoked.
+ * provided to `func` when it's invoked.
*
* @static
* @memberOf _
diff --git a/function/restParam.js b/function/restParam.js
index 76b67f2a5..53bb815fb 100644
--- a/function/restParam.js
+++ b/function/restParam.js
@@ -13,7 +13,7 @@ define([], function() {
* Creates a function that invokes `func` with the `this` binding of the
* created function and arguments from `start` and beyond provided as an array.
*
- * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).
+ * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).
*
* @static
* @memberOf _
diff --git a/function/spread.js b/function/spread.js
index 8f370c5e0..395e96ae9 100644
--- a/function/spread.js
+++ b/function/spread.js
@@ -7,7 +7,7 @@ define([], function() {
* Creates a function that invokes `func` with the `this` binding of the created
* function and an array of arguments much like [`Function#apply`](https://es5.github.io/#x15.3.4.3).
*
- * **Note:** This method is based on the [spread operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator).
+ * **Note:** This method is based on the [spread operator](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Spread_operator).
*
* @static
* @memberOf _
diff --git a/internal/baseUniq.js b/internal/baseUniq.js
index 3cbf3a9f8..a325d4928 100644
--- a/internal/baseUniq.js
+++ b/internal/baseUniq.js
@@ -10,7 +10,7 @@ define(['./baseIndexOf', './cacheIndexOf', './createCache'], function(baseIndexO
* @private
* @param {Array} array The array to inspect.
* @param {Function} [iteratee] The function invoked per iteration.
- * @returns {Array} Returns the new duplicate-value-free array.
+ * @returns {Array} Returns the new duplicate free array.
*/
function baseUniq(array, iteratee) {
var index = -1,
diff --git a/internal/getFuncName.js b/internal/getFuncName.js
index 5dbf450d3..9f85eddea 100644
--- a/internal/getFuncName.js
+++ b/internal/getFuncName.js
@@ -8,7 +8,7 @@ define(['./realNames'], function(realNames) {
* @returns {string} Returns the function name.
*/
function getFuncName(func) {
- var result = func.name,
+ var result = (func.name + ''),
array = realNames[result],
length = array ? array.length : 0;
diff --git a/internal/isLaziable.js b/internal/isLaziable.js
index 05a4084dc..b0c6b10cf 100644
--- a/internal/isLaziable.js
+++ b/internal/isLaziable.js
@@ -8,11 +8,12 @@ define(['./LazyWrapper', './getData', './getFuncName', '../chain/lodash'], funct
* @returns {boolean} Returns `true` if `func` has a lazy counterpart, else `false`.
*/
function isLaziable(func) {
- var funcName = getFuncName(func);
- if (!(funcName in LazyWrapper.prototype)) {
+ var funcName = getFuncName(func),
+ other = lodash[funcName];
+
+ if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {
return false;
}
- var other = lodash[funcName];
if (func === other) {
return true;
}
diff --git a/internal/lazyValue.js b/internal/lazyValue.js
index c7a58d32d..3b37b4011 100644
--- a/internal/lazyValue.js
+++ b/internal/lazyValue.js
@@ -35,7 +35,7 @@ define(['./baseWrapperValue', './getView', '../lang/isArray'], function(baseWrap
takeCount = nativeMin(length, this.__takeCount__);
if (!isArr || arrLength < LARGE_ARRAY_SIZE || (arrLength == length && takeCount == length)) {
- return baseWrapperValue((isRight && isArr) ? array.reverse() : array, this.__actions__);
+ return baseWrapperValue(array, this.__actions__);
}
var result = [];
diff --git a/internal/sortedUniq.js b/internal/sortedUniq.js
index 8347ec066..9c4608080 100644
--- a/internal/sortedUniq.js
+++ b/internal/sortedUniq.js
@@ -7,7 +7,7 @@ define([], function() {
* @private
* @param {Array} array The array to inspect.
* @param {Function} [iteratee] The function invoked per iteration.
- * @returns {Array} Returns the new duplicate-value-free array.
+ * @returns {Array} Returns the new duplicate free array.
*/
function sortedUniq(array, iteratee) {
var seen,
diff --git a/lang/clone.js b/lang/clone.js
index beadc783d..55498f8e3 100644
--- a/lang/clone.js
+++ b/lang/clone.js
@@ -2,10 +2,10 @@ define(['../internal/baseClone', '../internal/bindCallback', '../internal/isIter
/**
* Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned,
- * otherwise they are assigned by reference. If `customizer` is provided it is
+ * otherwise they are assigned by reference. If `customizer` is provided it's
* invoked to produce the cloned values. If `customizer` returns `undefined`
* cloning is handled by the method instead. The `customizer` is bound to
- * `thisArg` and invoked with two argument; (value [, index|key, object]).
+ * `thisArg` and invoked with up to three argument; (value [, index|key, object]).
*
* **Note:** This method is loosely based on the
* [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).
@@ -61,7 +61,7 @@ define(['../internal/baseClone', '../internal/bindCallback', '../internal/isIter
isDeep = false;
}
return typeof customizer == 'function'
- ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 1))
+ ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 3))
: baseClone(value, isDeep);
}
diff --git a/lang/cloneDeep.js b/lang/cloneDeep.js
index ea7cb59f5..7d3c44230 100644
--- a/lang/cloneDeep.js
+++ b/lang/cloneDeep.js
@@ -1,10 +1,10 @@
define(['../internal/baseClone', '../internal/bindCallback'], function(baseClone, bindCallback) {
/**
- * Creates a deep clone of `value`. If `customizer` is provided it is invoked
+ * Creates a deep clone of `value`. If `customizer` is provided it's invoked
* to produce the cloned values. If `customizer` returns `undefined` cloning
* is handled by the method instead. The `customizer` is bound to `thisArg`
- * and invoked with two argument; (value [, index|key, object]).
+ * and invoked with up to three argument; (value [, index|key, object]).
*
* **Note:** This method is loosely based on the
* [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).
@@ -47,7 +47,7 @@ define(['../internal/baseClone', '../internal/bindCallback'], function(baseClone
*/
function cloneDeep(value, customizer, thisArg) {
return typeof customizer == 'function'
- ? baseClone(value, true, bindCallback(customizer, thisArg, 1))
+ ? baseClone(value, true, bindCallback(customizer, thisArg, 3))
: baseClone(value, true);
}
diff --git a/lang/isEmpty.js b/lang/isEmpty.js
index abed2b7c0..b7f6b20b1 100644
--- a/lang/isEmpty.js
+++ b/lang/isEmpty.js
@@ -1,7 +1,7 @@
define(['./isArguments', './isArray', '../internal/isArrayLike', './isFunction', '../internal/isObjectLike', './isString', '../object/keys'], function(isArguments, isArray, isArrayLike, isFunction, isObjectLike, isString, keys) {
/**
- * Checks if `value` is empty. A value is considered empty unless it is an
+ * Checks if `value` is empty. A value is considered empty unless it's an
* `arguments` object, array, string, or jQuery-like collection with a length
* greater than `0` or an object with own enumerable properties.
*
diff --git a/lang/isEqual.js b/lang/isEqual.js
index 239d22966..e0f26a622 100644
--- a/lang/isEqual.js
+++ b/lang/isEqual.js
@@ -5,10 +5,10 @@ define(['../internal/baseIsEqual', '../internal/bindCallback'], function(baseIsE
/**
* Performs a deep comparison between two values to determine if they are
- * equivalent. If `customizer` is provided it is invoked to compare values.
+ * equivalent. If `customizer` is provided it's invoked to compare values.
* If `customizer` returns `undefined` comparisons are handled by the method
- * instead. The `customizer` is bound to `thisArg` and invoked with three
- * arguments: (value, other [, index|key]).
+ * instead. The `customizer` is bound to `thisArg` and invoked with up to
+ * three arguments: (value, other [, index|key]).
*
* **Note:** This method supports comparing arrays, booleans, `Date` objects,
* numbers, `Object` objects, regexes, and strings. Objects are compared by
diff --git a/lang/isFunction.js b/lang/isFunction.js
index 8672a89b1..5d42d79c9 100644
--- a/lang/isFunction.js
+++ b/lang/isFunction.js
@@ -31,7 +31,7 @@ define(['./isObject'], function(isObject) {
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
// in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
+ // and Safari 8 which returns 'object' for typed array constructors.
return isObject(value) && objToString.call(value) == funcTag;
}
diff --git a/lang/isMatch.js b/lang/isMatch.js
index 930542c8c..70b1cc843 100644
--- a/lang/isMatch.js
+++ b/lang/isMatch.js
@@ -6,7 +6,7 @@ define(['../internal/baseIsMatch', '../internal/bindCallback', '../internal/getM
/**
* Performs a deep comparison between `object` and `source` to determine if
* `object` contains equivalent property values. If `customizer` is provided
- * it is invoked to compare values. If `customizer` returns `undefined`
+ * it's invoked to compare values. If `customizer` returns `undefined`
* comparisons are handled by the method instead. The `customizer` is bound
* to `thisArg` and invoked with three arguments: (value, other, index|key).
*
diff --git a/main.js b/main.js
index f73622c55..3b8b89575 100644
--- a/main.js
+++ b/main.js
@@ -1,6 +1,6 @@
/**
* @license
- * lodash 3.10.0 (Custom Build)
+ * lodash 3.10.1 (Custom Build)
* Build: `lodash modern exports="amd" -d -o ./main.js`
* Copyright 2012-2015 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -13,7 +13,7 @@
var undefined;
/** Used as the semantic version number. */
- var VERSION = '3.10.0';
+ var VERSION = '3.10.1';
/** Used to compose bitmasks for wrapper metadata. */
var BIND_FLAG = 1,
@@ -592,7 +592,7 @@
* @private
* @param {Array} array The array to inspect.
* @param {Function} [iteratee] The function invoked per iteration.
- * @returns {Array} Returns the new duplicate-value-free array.
+ * @returns {Array} Returns the new duplicate free array.
*/
function sortedUniq(array, iteratee) {
var seen,
@@ -1071,7 +1071,7 @@
takeCount = nativeMin(length, this.__takeCount__);
if (!isArr || arrLength < LARGE_ARRAY_SIZE || (arrLength == length && takeCount == length)) {
- return baseWrapperValue((isRight && isArr) ? array.reverse() : array, this.__actions__);
+ return baseWrapperValue(array, this.__actions__);
}
var result = [];
@@ -1788,7 +1788,7 @@
}
var index = -1,
indexOf = getIndexOf(),
- isCommon = indexOf == baseIndexOf,
+ isCommon = indexOf === baseIndexOf,
cache = (isCommon && values.length >= LARGE_ARRAY_SIZE) ? createCache(values) : null,
valuesLength = values.length;
@@ -2655,13 +2655,13 @@
* @private
* @param {Array} array The array to inspect.
* @param {Function} [iteratee] The function invoked per iteration.
- * @returns {Array} Returns the new duplicate-value-free array.
+ * @returns {Array} Returns the new duplicate free array.
*/
function baseUniq(array, iteratee) {
var index = -1,
indexOf = getIndexOf(),
length = array.length,
- isCommon = indexOf == baseIndexOf,
+ isCommon = indexOf === baseIndexOf,
isLarge = isCommon && length >= LARGE_ARRAY_SIZE,
seen = isLarge ? createCache() : null,
result = [];
@@ -3870,7 +3870,7 @@
* @returns {string} Returns the function name.
*/
function getFuncName(func) {
- var result = func.name,
+ var result = (func.name + ''),
array = realNames[result],
length = array ? array.length : 0;
@@ -4137,11 +4137,12 @@
* @returns {boolean} Returns `true` if `func` has a lazy counterpart, else `false`.
*/
function isLaziable(func) {
- var funcName = getFuncName(func);
- if (!(funcName in LazyWrapper.prototype)) {
+ var funcName = getFuncName(func),
+ other = lodash[funcName];
+
+ if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {
return false;
}
- var other = lodash[funcName];
if (func === other) {
return true;
}
@@ -4876,7 +4877,7 @@
/**
* Flattens a nested array. If `isDeep` is `true` the array is recursively
- * flattened, otherwise it is only flattened a single level.
+ * flattened, otherwise it's only flattened a single level.
*
* @static
* @memberOf _
@@ -4923,7 +4924,7 @@
/**
* Gets the index at which the first occurrence of `value` is found in `array`
* using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons. If `fromIndex` is negative, it is used as the offset
+ * for equality comparisons. If `fromIndex` is negative, it's used as the offset
* from the end of `array`. If `array` is sorted providing `true` for `fromIndex`
* performs a faster binary search.
*
@@ -5002,7 +5003,7 @@
othIndex = othLength,
caches = Array(length),
indexOf = getIndexOf(),
- isCommon = indexOf == baseIndexOf,
+ isCommon = indexOf === baseIndexOf,
result = [];
while (othIndex--) {
@@ -5287,7 +5288,7 @@
/**
* Uses a binary search to determine the lowest index at which `value` should
* be inserted into `array` in order to maintain its sort order. If an iteratee
- * function is provided it is invoked for `value` and each element of `array`
+ * function is provided it's invoked for `value` and each element of `array`
* to compute their sort ranking. The iteratee is bound to `thisArg` and
* invoked with one argument; (value).
*
@@ -5561,7 +5562,7 @@
* [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
* for equality comparisons, in which only the first occurence of each element
* is kept. Providing `true` for `isSorted` performs a faster search algorithm
- * for sorted arrays. If an iteratee function is provided it is invoked for
+ * for sorted arrays. If an iteratee function is provided it's invoked for
* each element in the array to generate the criterion by which uniqueness
* is computed. The `iteratee` is bound to `thisArg` and invoked with three
* arguments: (value, index, array).
@@ -5619,7 +5620,7 @@
if (!(iteratee == null && callback === baseCallback)) {
iteratee = callback(iteratee, thisArg, 3);
}
- return (isSorted && getIndexOf() == baseIndexOf)
+ return (isSorted && getIndexOf() === baseIndexOf)
? sortedUniq(array, iteratee)
: baseUniq(array, iteratee);
}
@@ -6074,7 +6075,7 @@
var value = this.__wrapped__;
var interceptor = function(value) {
- return (wrapped && wrapped.__dir__ < 0) ? value : value.reverse();
+ return value.reverse();
};
if (value instanceof LazyWrapper) {
var wrapped = value;
@@ -6516,9 +6517,9 @@
});
/**
- * Checks if `value` is in `collection` using
+ * Checks if `target` is in `collection` using
* [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons. If `fromIndex` is negative, it is used as the offset
+ * for equality comparisons. If `fromIndex` is negative, it's used as the offset
* from the end of `collection`.
*
* @static
@@ -6613,7 +6614,7 @@
/**
* Invokes the method at `path` of each element in `collection`, returning
* an array of the results of each invoked method. Any additional arguments
- * are provided to each invoked method. If `methodName` is a function it is
+ * are provided to each invoked method. If `methodName` is a function it's
* invoked for, and `this` bound to, each element in `collection`.
*
* @static
@@ -7265,7 +7266,7 @@
/**
* The opposite of `_.before`; this method creates a function that invokes
- * `func` once it is called `n` or more times.
+ * `func` once it's called `n` or more times.
*
* @static
* @memberOf _
@@ -7330,7 +7331,7 @@
/**
* Creates a function that invokes `func`, with the `this` binding and arguments
- * of the created function, while it is called less than `n` times. Subsequent
+ * of the created function, while it's called less than `n` times. Subsequent
* calls to the created function return the result of the last `func` invocation.
*
* @static
@@ -7610,7 +7611,7 @@
* @param {boolean} [options.leading=false] Specify invoking on the leading
* edge of the timeout.
* @param {number} [options.maxWait] The maximum time `func` is allowed to be
- * delayed before it is invoked.
+ * delayed before it's invoked.
* @param {boolean} [options.trailing=true] Specify invoking on the trailing
* edge of the timeout.
* @returns {Function} Returns the new debounced function.
@@ -7758,7 +7759,7 @@
/**
* Defers invoking the `func` until the current call stack has cleared. Any
- * additional arguments are provided to `func` when it is invoked.
+ * additional arguments are provided to `func` when it's invoked.
*
* @static
* @memberOf _
@@ -7779,7 +7780,7 @@
/**
* Invokes `func` after `wait` milliseconds. Any additional arguments are
- * provided to `func` when it is invoked.
+ * provided to `func` when it's invoked.
*
* @static
* @memberOf _
@@ -8112,7 +8113,7 @@
* Creates a function that invokes `func` with the `this` binding of the
* created function and arguments from `start` and beyond provided as an array.
*
- * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).
+ * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).
*
* @static
* @memberOf _
@@ -8163,7 +8164,7 @@
* Creates a function that invokes `func` with the `this` binding of the created
* function and an array of arguments much like [`Function#apply`](https://es5.github.io/#x15.3.4.3).
*
- * **Note:** This method is based on the [spread operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator).
+ * **Note:** This method is based on the [spread operator](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Spread_operator).
*
* @static
* @memberOf _
@@ -8284,10 +8285,10 @@
/**
* Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned,
- * otherwise they are assigned by reference. If `customizer` is provided it is
+ * otherwise they are assigned by reference. If `customizer` is provided it's
* invoked to produce the cloned values. If `customizer` returns `undefined`
* cloning is handled by the method instead. The `customizer` is bound to
- * `thisArg` and invoked with two argument; (value [, index|key, object]).
+ * `thisArg` and invoked with up to three argument; (value [, index|key, object]).
*
* **Note:** This method is loosely based on the
* [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).
@@ -8343,15 +8344,15 @@
isDeep = false;
}
return typeof customizer == 'function'
- ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 1))
+ ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 3))
: baseClone(value, isDeep);
}
/**
- * Creates a deep clone of `value`. If `customizer` is provided it is invoked
+ * Creates a deep clone of `value`. If `customizer` is provided it's invoked
* to produce the cloned values. If `customizer` returns `undefined` cloning
* is handled by the method instead. The `customizer` is bound to `thisArg`
- * and invoked with two argument; (value [, index|key, object]).
+ * and invoked with up to three argument; (value [, index|key, object]).
*
* **Note:** This method is loosely based on the
* [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm).
@@ -8394,7 +8395,7 @@
*/
function cloneDeep(value, customizer, thisArg) {
return typeof customizer == 'function'
- ? baseClone(value, true, bindCallback(customizer, thisArg, 1))
+ ? baseClone(value, true, bindCallback(customizer, thisArg, 3))
: baseClone(value, true);
}
@@ -8548,7 +8549,7 @@
}
/**
- * Checks if `value` is empty. A value is considered empty unless it is an
+ * Checks if `value` is empty. A value is considered empty unless it's an
* `arguments` object, array, string, or jQuery-like collection with a length
* greater than `0` or an object with own enumerable properties.
*
@@ -8587,10 +8588,10 @@
/**
* Performs a deep comparison between two values to determine if they are
- * equivalent. If `customizer` is provided it is invoked to compare values.
+ * equivalent. If `customizer` is provided it's invoked to compare values.
* If `customizer` returns `undefined` comparisons are handled by the method
- * instead. The `customizer` is bound to `thisArg` and invoked with three
- * arguments: (value, other [, index|key]).
+ * instead. The `customizer` is bound to `thisArg` and invoked with up to
+ * three arguments: (value, other [, index|key]).
*
* **Note:** This method supports comparing arrays, booleans, `Date` objects,
* numbers, `Object` objects, regexes, and strings. Objects are compared by
@@ -8706,7 +8707,7 @@
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
// in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
+ // and Safari 8 which returns 'object' for typed array constructors.
return isObject(value) && objToString.call(value) == funcTag;
}
@@ -8740,7 +8741,7 @@
/**
* Performs a deep comparison between `object` and `source` to determine if
* `object` contains equivalent property values. If `customizer` is provided
- * it is invoked to compare values. If `customizer` returns `undefined`
+ * it's invoked to compare values. If `customizer` returns `undefined`
* comparisons are handled by the method instead. The `customizer` is bound
* to `thisArg` and invoked with three arguments: (value, other, index|key).
*
@@ -9122,7 +9123,7 @@
* Recursively merges own enumerable properties of the source object(s), that
* don't resolve to `undefined` into the destination object. Subsequent sources
* overwrite property assignments of previous sources. If `customizer` is
- * provided it is invoked to produce the merged values of the destination and
+ * provided it's invoked to produce the merged values of the destination and
* source properties. If `customizer` returns `undefined` merging is handled
* by the method instead. The `customizer` is bound to `thisArg` and invoked
* with five arguments: (objectValue, sourceValue, key, object, source).
@@ -9171,7 +9172,7 @@
/**
* Assigns own enumerable properties of source object(s) to the destination
* object. Subsequent sources overwrite property assignments of previous sources.
- * If `customizer` is provided it is invoked to produce the assigned values.
+ * If `customizer` is provided it's invoked to produce the assigned values.
* The `customizer` is bound to `thisArg` and invoked with five arguments:
* (objectValue, sourceValue, key, object, source).
*
@@ -9544,7 +9545,7 @@
* // => 'default'
*/
function get(object, path, defaultValue) {
- var result = object == null ? undefined : baseGet(object, toPath(path), path + '');
+ var result = object == null ? undefined : baseGet(object, toPath(path), (path + ''));
return result === undefined ? defaultValue : result;
}
@@ -9859,7 +9860,7 @@
/**
* Creates an object composed of the picked `object` properties. Property
* names may be specified as individual arguments or as arrays of property
- * names. If `predicate` is provided it is invoked for each property of `object`
+ * names. If `predicate` is provided it's invoked for each property of `object`
* picking the properties `predicate` returns truthy for. The predicate is
* bound to `thisArg` and invoked with three arguments: (value, key, object).
*
@@ -9893,7 +9894,7 @@
/**
* This method is like `_.get` except that if the resolved value is a function
- * it is invoked with the `this` binding of its parent object and its result
+ * it's invoked with the `this` binding of its parent object and its result
* is returned.
*
* @static
@@ -9934,7 +9935,7 @@
/**
* Sets the property value of `path` on `object`. If a portion of `path`
- * does not exist it is created.
+ * does not exist it's created.
*
* @static
* @memberOf _
@@ -10092,7 +10093,7 @@
/**
* Checks if `n` is between `start` and up to but not including, `end`. If
- * `end` is not specified it is set to `start` with `start` then set to `0`.
+ * `end` is not specified it's set to `start` with `start` then set to `0`.
*
* @static
* @memberOf _
@@ -11056,7 +11057,7 @@
/**
* Attempts to invoke `func`, returning either the result or the caught error
- * object. Any additional arguments are provided to `func` when it is invoked.
+ * object. Any additional arguments are provided to `func` when it's invoked.
*
* @static
* @memberOf _
@@ -11454,13 +11455,13 @@
*/
function propertyOf(object) {
return function(path) {
- return baseGet(object, toPath(path), path + '');
+ return baseGet(object, toPath(path), (path + ''));
};
}
/**
* Creates an array of numbers (positive and/or negative) progressing from
- * `start` up to, but not including, `end`. If `end` is not specified it is
+ * `start` up to, but not including, `end`. If `end` is not specified it's
* set to `start` with `start` then set to `0`. If `end` is less than `start`
* a zero-length range is created unless a negative `step` is specified.
*
@@ -11653,7 +11654,7 @@
/**
* Gets the maximum value of `collection`. If `collection` is empty or falsey
- * `-Infinity` is returned. If an iteratee function is provided it is invoked
+ * `-Infinity` is returned. If an iteratee function is provided it's invoked
* for each value in `collection` to generate the criterion by which the value
* is ranked. The `iteratee` is bound to `thisArg` and invoked with three
* arguments: (value, index, collection).
@@ -11702,7 +11703,7 @@
/**
* Gets the minimum value of `collection`. If `collection` is empty or falsey
- * `Infinity` is returned. If an iteratee function is provided it is invoked
+ * `Infinity` is returned. If an iteratee function is provided it's invoked
* for each value in `collection` to generate the criterion by which the value
* is ranked. The `iteratee` is bound to `thisArg` and invoked with three
* arguments: (value, index, collection).
@@ -12279,7 +12280,7 @@
baseForOwn(LazyWrapper.prototype, function(func, methodName) {
var lodashFunc = lodash[methodName];
if (lodashFunc) {
- var key = lodashFunc.name,
+ var key = (lodashFunc.name + ''),
names = realNames[key] || (realNames[key] = []);
names.push({ 'name': methodName, 'func': lodashFunc });
diff --git a/math/max.js b/math/max.js
index 88a335d2b..c48911e11 100644
--- a/math/max.js
+++ b/math/max.js
@@ -5,7 +5,7 @@ define(['../internal/createExtremum', '../lang/gt'], function(createExtremum, gt
/**
* Gets the maximum value of `collection`. If `collection` is empty or falsey
- * `-Infinity` is returned. If an iteratee function is provided it is invoked
+ * `-Infinity` is returned. If an iteratee function is provided it's invoked
* for each value in `collection` to generate the criterion by which the value
* is ranked. The `iteratee` is bound to `thisArg` and invoked with three
* arguments: (value, index, collection).
diff --git a/math/min.js b/math/min.js
index 0fcb52079..9702fa1f6 100644
--- a/math/min.js
+++ b/math/min.js
@@ -5,7 +5,7 @@ define(['../internal/createExtremum', '../lang/lt'], function(createExtremum, lt
/**
* Gets the minimum value of `collection`. If `collection` is empty or falsey
- * `Infinity` is returned. If an iteratee function is provided it is invoked
+ * `Infinity` is returned. If an iteratee function is provided it's invoked
* for each value in `collection` to generate the criterion by which the value
* is ranked. The `iteratee` is bound to `thisArg` and invoked with three
* arguments: (value, index, collection).
diff --git a/number/inRange.js b/number/inRange.js
index 1143849d3..d642463e7 100644
--- a/number/inRange.js
+++ b/number/inRange.js
@@ -9,7 +9,7 @@ define([], function() {
/**
* Checks if `n` is between `start` and up to but not including, `end`. If
- * `end` is not specified it is set to `start` with `start` then set to `0`.
+ * `end` is not specified it's set to `start` with `start` then set to `0`.
*
* @static
* @memberOf _
diff --git a/object/assign.js b/object/assign.js
index 2a413afb1..47a9eeae3 100644
--- a/object/assign.js
+++ b/object/assign.js
@@ -3,7 +3,7 @@ define(['../internal/assignWith', '../internal/baseAssign', '../internal/createA
/**
* Assigns own enumerable properties of source object(s) to the destination
* object. Subsequent sources overwrite property assignments of previous sources.
- * If `customizer` is provided it is invoked to produce the assigned values.
+ * If `customizer` is provided it's invoked to produce the assigned values.
* The `customizer` is bound to `thisArg` and invoked with five arguments:
* (objectValue, sourceValue, key, object, source).
*
diff --git a/object/get.js b/object/get.js
index 61170c966..78a4b2b9a 100644
--- a/object/get.js
+++ b/object/get.js
@@ -28,7 +28,7 @@ define(['../internal/baseGet', '../internal/toPath'], function(baseGet, toPath)
* // => 'default'
*/
function get(object, path, defaultValue) {
- var result = object == null ? undefined : baseGet(object, toPath(path), path + '');
+ var result = object == null ? undefined : baseGet(object, toPath(path), (path + ''));
return result === undefined ? defaultValue : result;
}
diff --git a/object/merge.js b/object/merge.js
index 687337451..76994799b 100644
--- a/object/merge.js
+++ b/object/merge.js
@@ -4,7 +4,7 @@ define(['../internal/baseMerge', '../internal/createAssigner'], function(baseMer
* Recursively merges own enumerable properties of the source object(s), that
* don't resolve to `undefined` into the destination object. Subsequent sources
* overwrite property assignments of previous sources. If `customizer` is
- * provided it is invoked to produce the merged values of the destination and
+ * provided it's invoked to produce the merged values of the destination and
* source properties. If `customizer` returns `undefined` merging is handled
* by the method instead. The `customizer` is bound to `thisArg` and invoked
* with five arguments: (objectValue, sourceValue, key, object, source).
diff --git a/object/pick.js b/object/pick.js
index 826be74a4..651699cdf 100644
--- a/object/pick.js
+++ b/object/pick.js
@@ -3,7 +3,7 @@ define(['../internal/baseFlatten', '../internal/bindCallback', '../internal/pick
/**
* Creates an object composed of the picked `object` properties. Property
* names may be specified as individual arguments or as arrays of property
- * names. If `predicate` is provided it is invoked for each property of `object`
+ * names. If `predicate` is provided it's invoked for each property of `object`
* picking the properties `predicate` returns truthy for. The predicate is
* bound to `thisArg` and invoked with three arguments: (value, key, object).
*
diff --git a/object/result.js b/object/result.js
index f35f2dcc9..6553acbd5 100644
--- a/object/result.js
+++ b/object/result.js
@@ -5,7 +5,7 @@ define(['../internal/baseGet', '../internal/baseSlice', '../lang/isFunction', '.
/**
* This method is like `_.get` except that if the resolved value is a function
- * it is invoked with the `this` binding of its parent object and its result
+ * it's invoked with the `this` binding of its parent object and its result
* is returned.
*
* @static
diff --git a/object/set.js b/object/set.js
index 00c550e7b..52e97c518 100644
--- a/object/set.js
+++ b/object/set.js
@@ -2,7 +2,7 @@ define(['../internal/isIndex', '../internal/isKey', '../lang/isObject', '../inte
/**
* Sets the property value of `path` on `object`. If a portion of `path`
- * does not exist it is created.
+ * does not exist it's created.
*
* @static
* @memberOf _
diff --git a/package.json b/package.json
index 12694b3ec..a20f18e1c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash",
- "version": "3.10.0",
+ "version": "3.10.1",
"main": "main.js",
"private": true,
"volo": {
diff --git a/utility/attempt.js b/utility/attempt.js
index 62b0f7d25..6beac809f 100644
--- a/utility/attempt.js
+++ b/utility/attempt.js
@@ -5,7 +5,7 @@ define(['../lang/isError', '../function/restParam'], function(isError, restParam
/**
* Attempts to invoke `func`, returning either the result or the caught error
- * object. Any additional arguments are provided to `func` when it is invoked.
+ * object. Any additional arguments are provided to `func` when it's invoked.
*
* @static
* @memberOf _
diff --git a/utility/propertyOf.js b/utility/propertyOf.js
index e33721e49..65bf49bc5 100644
--- a/utility/propertyOf.js
+++ b/utility/propertyOf.js
@@ -22,7 +22,7 @@ define(['../internal/baseGet', '../internal/toPath'], function(baseGet, toPath)
*/
function propertyOf(object) {
return function(path) {
- return baseGet(object, toPath(path), path + '');
+ return baseGet(object, toPath(path), (path + ''));
};
}
diff --git a/utility/range.js b/utility/range.js
index 56e1f0ef6..644f2b780 100644
--- a/utility/range.js
+++ b/utility/range.js
@@ -9,7 +9,7 @@ define(['../internal/isIterateeCall'], function(isIterateeCall) {
/**
* Creates an array of numbers (positive and/or negative) progressing from
- * `start` up to, but not including, `end`. If `end` is not specified it is
+ * `start` up to, but not including, `end`. If `end` is not specified it's
* set to `start` with `start` then set to `0`. If `end` is less than `start`
* a zero-length range is created unless a negative `step` is specified.
*