diff --git a/README.md b/README.md
index 199090b24..240120651 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# lodash-es v3.10.0
+# lodash-es v3.10.1
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash](https://lodash.com/) exported as [ES](https://people.mozilla.org/~jorendorff/es6-draft.html) modules.
@@ -7,4 +7,4 @@ Generated using [lodash-cli](https://www.npmjs.com/package/lodash-cli):
$ lodash modularize modern exports=es -o ./
```
-See the [package source](https://github.com/lodash/lodash/tree/3.10.0-es) for more details.
+See the [package source](https://github.com/lodash/lodash/tree/3.10.1-es) for more details.
diff --git a/array/flatten.js b/array/flatten.js
index 459471486..813e1afd2 100644
--- a/array/flatten.js
+++ b/array/flatten.js
@@ -3,7 +3,7 @@ import isIterateeCall from '../internal/isIterateeCall';
/**
* 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 95a2cafdf..dad65c144 100644
--- a/array/indexOf.js
+++ b/array/indexOf.js
@@ -7,7 +7,7 @@ var nativeMax = Math.max;
/**
* 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 520976e1f..720ed633e 100644
--- a/array/sortedIndex.js
+++ b/array/sortedIndex.js
@@ -3,7 +3,7 @@ import createSortedIndex from '../internal/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 9beba9fb6..2975e023b 100644
--- a/array/uniq.js
+++ b/array/uniq.js
@@ -8,7 +8,7 @@ import sortedUniq from '../internal/sortedUniq';
* [`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 3ca7b8c49..124965afb 100644
--- a/chain/wrapperReverse.js
+++ b/chain/wrapperReverse.js
@@ -26,7 +26,7 @@ function wrapperReverse() {
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 7c87bb290..e72e35e8d 100644
--- a/collection/includes.js
+++ b/collection/includes.js
@@ -10,9 +10,9 @@ import values from '../object/values';
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 231f01678..56a5ef126 100644
--- a/collection/invoke.js
+++ b/collection/invoke.js
@@ -7,7 +7,7 @@ import restParam from '../function/restParam';
/**
* 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 487f26837..ab87ab206 100644
--- a/function/after.js
+++ b/function/after.js
@@ -8,7 +8,7 @@ var nativeIsFinite = root.isFinite;
/**
* 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 0f21a3657..cc830d056 100644
--- a/function/before.js
+++ b/function/before.js
@@ -3,7 +3,7 @@ var FUNC_ERROR_TEXT = 'Expected a 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 d6be57b8f..88083f271 100644
--- a/function/debounce.js
+++ b/function/debounce.js
@@ -32,7 +32,7 @@ var nativeMax = Math.max;
* @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 175dafca7..757de6de0 100644
--- a/function/defer.js
+++ b/function/defer.js
@@ -3,7 +3,7 @@ import restParam from './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 a8533881a..5b34c6912 100644
--- a/function/delay.js
+++ b/function/delay.js
@@ -3,7 +3,7 @@ import restParam from './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 8efcbf27c..d0f5e4da3 100644
--- a/function/restParam.js
+++ b/function/restParam.js
@@ -8,7 +8,7 @@ var nativeMax = Math.max;
* 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 3aafd9c68..3f8a05b60 100644
--- a/function/spread.js
+++ b/function/spread.js
@@ -5,7 +5,7 @@ var FUNC_ERROR_TEXT = 'Expected a 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 802a28a18..bc22b48ff 100644
--- a/internal/baseUniq.js
+++ b/internal/baseUniq.js
@@ -12,7 +12,7 @@ var LARGE_ARRAY_SIZE = 200;
* @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 8b69fc83c..d5f56fc81 100644
--- a/internal/getFuncName.js
+++ b/internal/getFuncName.js
@@ -8,7 +8,7 @@ import realNames from './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 952b71ee6..5b588712a 100644
--- a/internal/isLaziable.js
+++ b/internal/isLaziable.js
@@ -11,11 +11,12 @@ import lodash from '../chain/lodash';
* @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 b76744cf0..9b6014d6b 100644
--- a/internal/lazyValue.js
+++ b/internal/lazyValue.js
@@ -37,7 +37,7 @@ function lazyValue() {
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 6c14113d9..d5b9464f4 100644
--- a/internal/sortedUniq.js
+++ b/internal/sortedUniq.js
@@ -5,7 +5,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,
diff --git a/lang/clone.js b/lang/clone.js
index 3e4c5787b..a277bca43 100644
--- a/lang/clone.js
+++ b/lang/clone.js
@@ -4,10 +4,10 @@ import isIterateeCall from '../internal/isIterateeCall';
/**
* 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).
@@ -63,7 +63,7 @@ function clone(value, isDeep, customizer, thisArg) {
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 ff7e5d412..2961a5209 100644
--- a/lang/cloneDeep.js
+++ b/lang/cloneDeep.js
@@ -2,10 +2,10 @@ import baseClone from '../internal/baseClone';
import bindCallback from '../internal/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).
@@ -48,7 +48,7 @@ import bindCallback from '../internal/bindCallback';
*/
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 6e676b7bf..16737095e 100644
--- a/lang/isEmpty.js
+++ b/lang/isEmpty.js
@@ -7,7 +7,7 @@ import isString from './isString';
import keys from '../object/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 e917b1f9c..50fc64a46 100644
--- a/lang/isEqual.js
+++ b/lang/isEqual.js
@@ -3,10 +3,10 @@ import bindCallback from '../internal/bindCallback';
/**
* 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 8caf13062..32c5fda19 100644
--- a/lang/isFunction.js
+++ b/lang/isFunction.js
@@ -31,7 +31,7 @@ var objToString = objectProto.toString;
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 3d04d559a..e58ef5606 100644
--- a/lang/isMatch.js
+++ b/lang/isMatch.js
@@ -5,7 +5,7 @@ import getMatchData from '../internal/getMatchData';
/**
* 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/lodash.js b/lodash.js
index 8112e7ed9..dd45ef96b 100644
--- a/lodash.js
+++ b/lodash.js
@@ -1,6 +1,6 @@
/**
* @license
- * lodash 3.10.0 (Custom Build)
+ * lodash 3.10.1 (Custom Build)
* Build: `lodash modularize modern exports="es" -o ./`
* Copyright 2012-2015 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -43,7 +43,7 @@ import support from './support';
import thru from './chain/thru';
/** 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_KEY_FLAG = 2;
@@ -519,7 +519,7 @@ arrayEach(['join', 'pop', 'push', 'replace', 'shift', 'sort', 'splice', 'split',
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 b1ba1356f..16d05210f 100644
--- a/math/max.js
+++ b/math/max.js
@@ -6,7 +6,7 @@ var NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY;
/**
* 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 f70d91c62..362ba6668 100644
--- a/math/min.js
+++ b/math/min.js
@@ -6,7 +6,7 @@ var POSITIVE_INFINITY = Number.POSITIVE_INFINITY;
/**
* 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 030db7402..1db32d688 100644
--- a/number/inRange.js
+++ b/number/inRange.js
@@ -4,7 +4,7 @@ var nativeMax = Math.max,
/**
* 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 4c1c68c81..eaaca53da 100644
--- a/object/assign.js
+++ b/object/assign.js
@@ -5,7 +5,7 @@ import createAssigner from '../internal/createAssigner';
/**
* 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 01319ed4a..de9489008 100644
--- a/object/get.js
+++ b/object/get.js
@@ -26,7 +26,7 @@ import toPath from '../internal/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 e3dc0877f..8f54fbeaf 100644
--- a/object/merge.js
+++ b/object/merge.js
@@ -5,7 +5,7 @@ import createAssigner from '../internal/createAssigner';
* 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 51f9eb3f7..ed4057896 100644
--- a/object/pick.js
+++ b/object/pick.js
@@ -7,7 +7,7 @@ import restParam from '../function/restParam';
/**
* 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 1bf6315cc..71cc4b556 100644
--- a/object/result.js
+++ b/object/result.js
@@ -7,7 +7,7 @@ import toPath from '../internal/toPath';
/**
* 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 464174a75..fecfe9f46 100644
--- a/object/set.js
+++ b/object/set.js
@@ -5,7 +5,7 @@ import toPath from '../internal/toPath';
/**
* 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 a47ab4a23..2f3662244 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash-es",
- "version": "3.10.0",
+ "version": "3.10.1",
"description": "The modern build of lodash exported as ES modules.",
"homepage": "https://lodash.com/custom-builds",
"license": "MIT",
diff --git a/utility/attempt.js b/utility/attempt.js
index 341c68f42..022dc5675 100644
--- a/utility/attempt.js
+++ b/utility/attempt.js
@@ -3,7 +3,7 @@ import restParam from '../function/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 782c94e5a..cdd8b2a5d 100644
--- a/utility/propertyOf.js
+++ b/utility/propertyOf.js
@@ -23,7 +23,7 @@ import toPath from '../internal/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 1955ce6bd..b8c31a7a2 100644
--- a/utility/range.js
+++ b/utility/range.js
@@ -6,7 +6,7 @@ var nativeCeil = Math.ceil,
/**
* 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.
*