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. *