Compare commits

..

5 Commits

Author SHA1 Message Date
John-David Dalton
3514f50902 Bump to v4.3.0. 2016-02-08 00:49:56 -08:00
John-David Dalton
e2a6db008f Bump to v4.2.1. 2016-02-03 00:57:54 -08:00
John-David Dalton
5ca813254d Bump to v4.2.0. 2016-02-02 00:02:37 -08:00
John-David Dalton
7293d39642 Bump to v4.1.0. 2016-01-29 01:14:13 -08:00
John-David Dalton
629caa8340 Bump to v4.0.1. 2016-01-24 19:21:52 -08:00
463 changed files with 2029 additions and 1207 deletions

33
LICENSE
View File

@@ -1,22 +1,23 @@
The MIT License (MIT)
Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/> Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/> DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining a copy
a copy of this software and associated documentation files (the of this software and associated documentation files (the "Software"), to deal
"Software"), to deal in the Software without restriction, including in the Software without restriction, including without limitation the rights
without limitation the rights to use, copy, modify, merge, publish, to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
distribute, sublicense, and/or sell copies of the Software, and to copies of the Software, and to permit persons to whom the Software is
permit persons to whom the Software is furnished to do so, subject to furnished to do so, subject to the following conditions:
the following conditions:
The above copyright notice and this permission notice shall be The above copyright notice and this permission notice shall be included in all
included in all copies or substantial portions of the Software. copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. SOFTWARE.

View File

@@ -1,4 +1,4 @@
# lodash-amd v4.0.0 # lodash-amd v4.3.0
The [lodash](https://lodash.com/) library exported as [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) modules. The [lodash](https://lodash.com/) library exported as [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) modules.
@@ -27,4 +27,4 @@ require({
}); });
``` ```
See the [package source](https://github.com/lodash/lodash/tree/4.0.0-amd) for more details. See the [package source](https://github.com/lodash/lodash/tree/4.3.0-amd) for more details.

View File

@@ -1,4 +1,4 @@
define(['./nativeCreate'], function(nativeCreate) { define(['./_nativeCreate'], function(nativeCreate) {
/** Used for built-in method references. */ /** Used for built-in method references. */
var objectProto = Object.prototype; var objectProto = Object.prototype;

View File

@@ -1,4 +1,4 @@
define(['./baseCreate', './baseLodash'], function(baseCreate, baseLodash) { define(['./_baseCreate', './_baseLodash'], function(baseCreate, baseLodash) {
/** Used as references for the maximum length and index of an array. */ /** Used as references for the maximum length and index of an array. */
var MAX_ARRAY_LENGTH = 4294967295; var MAX_ARRAY_LENGTH = 4294967295;

View File

@@ -1,4 +1,4 @@
define(['./baseCreate', './baseLodash'], function(baseCreate, baseLodash) { define(['./_baseCreate', './_baseLodash'], function(baseCreate, baseLodash) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./getNative', './root'], function(getNative, root) { define(['./_getNative', './_root'], function(getNative, root) {
/* Built-in method references that are verified to be native. */ /* Built-in method references that are verified to be native. */
var Map = getNative(root, 'Map'); var Map = getNative(root, 'Map');

View File

@@ -1,4 +1,4 @@
define(['./mapClear', './mapDelete', './mapGet', './mapHas', './mapSet'], function(mapClear, mapDelete, mapGet, mapHas, mapSet) { define(['./_mapClear', './_mapDelete', './_mapGet', './_mapHas', './_mapSet'], function(mapClear, mapDelete, mapGet, mapHas, mapSet) {
/** /**
* Creates a map cache object to store key-value pairs. * Creates a map cache object to store key-value pairs.

View File

@@ -1,4 +1,4 @@
define(['./root'], function(root) { define(['./_root'], function(root) {
/** Built-in value references. */ /** Built-in value references. */
var Reflect = root.Reflect; var Reflect = root.Reflect;

View File

@@ -1,4 +1,4 @@
define(['./getNative', './root'], function(getNative, root) { define(['./_getNative', './_root'], function(getNative, root) {
/* Built-in method references that are verified to be native. */ /* Built-in method references that are verified to be native. */
var Set = getNative(root, 'Set'); var Set = getNative(root, 'Set');

View File

@@ -1,4 +1,4 @@
define(['./MapCache', './cachePush'], function(MapCache, cachePush) { define(['./_MapCache', './_cachePush'], function(MapCache, cachePush) {
/** /**
* *

View File

@@ -1,4 +1,4 @@
define(['./stackClear', './stackDelete', './stackGet', './stackHas', './stackSet'], function(stackClear, stackDelete, stackGet, stackHas, stackSet) { define(['./_stackClear', './_stackDelete', './_stackGet', './_stackHas', './_stackSet'], function(stackClear, stackDelete, stackGet, stackHas, stackSet) {
/** /**
* Creates a stack cache object to store key-value pairs. * Creates a stack cache object to store key-value pairs.

7
_Symbol.js Normal file
View File

@@ -0,0 +1,7 @@
define(['./_root'], function(root) {
/** Built-in value references. */
var Symbol = root.Symbol;
return Symbol;
});

View File

@@ -1,4 +1,4 @@
define(['./root'], function(root) { define(['./_root'], function(root) {
/** Built-in value references. */ /** Built-in value references. */
var Uint8Array = root.Uint8Array; var Uint8Array = root.Uint8Array;

View File

@@ -1,4 +1,4 @@
define(['./getNative', './root'], function(getNative, root) { define(['./_getNative', './_root'], function(getNative, root) {
/* Built-in method references that are verified to be native. */ /* Built-in method references that are verified to be native. */
var WeakMap = getNative(root, 'WeakMap'); var WeakMap = getNative(root, 'WeakMap');

View File

@@ -7,11 +7,11 @@ define([], function() {
* @private * @private
* @param {Function} func The function to invoke. * @param {Function} func The function to invoke.
* @param {*} thisArg The `this` binding of `func`. * @param {*} thisArg The `this` binding of `func`.
* @param {...*} [args] The arguments to invoke `func` with. * @param {...*} args The arguments to invoke `func` with.
* @returns {*} Returns the result of `func`. * @returns {*} Returns the result of `func`.
*/ */
function apply(func, thisArg, args) { function apply(func, thisArg, args) {
var length = args ? args.length : 0; var length = args.length;
switch (length) { switch (length) {
case 0: return func.call(thisArg); case 0: return func.call(thisArg);
case 1: return func.call(thisArg, args[0]); case 1: return func.call(thisArg, args[0]);

25
_arrayAggregator.js Normal file
View File

@@ -0,0 +1,25 @@
define([], function() {
/**
* A specialized version of `baseAggregator` for arrays.
*
* @private
* @param {Array} array The array to iterate over.
* @param {Function} setter The function to set `accumulator` values.
* @param {Function} iteratee The iteratee to transform keys.
* @param {Object} accumulator The initial aggregated object.
* @returns {Function} Returns `accumulator`.
*/
function arrayAggregator(array, setter, iteratee, accumulator) {
var index = -1,
length = array.length;
while (++index < length) {
var value = array[index];
setter(accumulator, value, iteratee(value), array);
}
return accumulator;
}
return arrayAggregator;
});

View File

@@ -1,4 +1,4 @@
define(['./baseIndexOf'], function(baseIndexOf) { define(['./_baseIndexOf'], function(baseIndexOf) {
/** /**
* A specialized version of `_.includes` for arrays without support for * A specialized version of `_.includes` for arrays without support for

View File

@@ -8,14 +8,14 @@ define([], function() {
* @param {Array} array The array to iterate over. * @param {Array} array The array to iterate over.
* @param {Function} iteratee The function invoked per iteration. * @param {Function} iteratee The function invoked per iteration.
* @param {*} [accumulator] The initial value. * @param {*} [accumulator] The initial value.
* @param {boolean} [initFromArray] Specify using the first element of `array` as the initial value. * @param {boolean} [initAccum] Specify using the first element of `array` as the initial value.
* @returns {*} Returns the accumulated value. * @returns {*} Returns the accumulated value.
*/ */
function arrayReduce(array, iteratee, accumulator, initFromArray) { function arrayReduce(array, iteratee, accumulator, initAccum) {
var index = -1, var index = -1,
length = array.length; length = array.length;
if (initFromArray && length) { if (initAccum && length) {
accumulator = array[++index]; accumulator = array[++index];
} }
while (++index < length) { while (++index < length) {

View File

@@ -8,12 +8,12 @@ define([], function() {
* @param {Array} array The array to iterate over. * @param {Array} array The array to iterate over.
* @param {Function} iteratee The function invoked per iteration. * @param {Function} iteratee The function invoked per iteration.
* @param {*} [accumulator] The initial value. * @param {*} [accumulator] The initial value.
* @param {boolean} [initFromArray] Specify using the last element of `array` as the initial value. * @param {boolean} [initAccum] Specify using the last element of `array` as the initial value.
* @returns {*} Returns the accumulated value. * @returns {*} Returns the accumulated value.
*/ */
function arrayReduceRight(array, iteratee, accumulator, initFromArray) { function arrayReduceRight(array, iteratee, accumulator, initAccum) {
var length = array.length; var length = array.length;
if (initFromArray && length) { if (initAccum && length) {
accumulator = array[--length]; accumulator = array[--length];
} }
while (length--) { while (length--) {

View File

@@ -1,4 +1,4 @@
define(['../eq'], function(eq) { define(['./eq'], function(eq) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['../eq'], function(eq) { define(['./eq'], function(eq) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['../eq'], function(eq) { define(['./eq'], function(eq) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./assocIndexOf'], function(assocIndexOf) { define(['./_assocIndexOf'], function(assocIndexOf) {
/** Used for built-in method references. */ /** Used for built-in method references. */
var arrayProto = Array.prototype; var arrayProto = Array.prototype;

View File

@@ -1,4 +1,4 @@
define(['./assocIndexOf'], function(assocIndexOf) { define(['./_assocIndexOf'], function(assocIndexOf) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./assocIndexOf'], function(assocIndexOf) { define(['./_assocIndexOf'], function(assocIndexOf) {
/** /**
* Checks if an associative array value for `key` exists. * Checks if an associative array value for `key` exists.

View File

@@ -1,4 +1,4 @@
define(['../eq'], function(eq) { define(['./eq'], function(eq) {
/** /**
* Gets the index at which the first occurrence of `key` is found in `array` * Gets the index at which the first occurrence of `key` is found in `array`

View File

@@ -1,4 +1,4 @@
define(['./assocIndexOf'], function(assocIndexOf) { define(['./_assocIndexOf'], function(assocIndexOf) {
/** /**
* Sets the associative array `key` to `value`. * Sets the associative array `key` to `value`.

22
_baseAggregator.js Normal file
View File

@@ -0,0 +1,22 @@
define(['./_baseEach'], function(baseEach) {
/**
* Aggregates elements of `collection` on `accumulator` with keys transformed
* by `iteratee` and values set by `setter`.
*
* @private
* @param {Array|Object} collection The collection to iterate over.
* @param {Function} setter The function to set `accumulator` values.
* @param {Function} iteratee The iteratee to transform keys.
* @param {Object} accumulator The initial aggregated object.
* @returns {Function} Returns `accumulator`.
*/
function baseAggregator(collection, setter, iteratee, accumulator) {
baseEach(collection, function(value, key, collection) {
setter(accumulator, value, iteratee(value), collection);
});
return accumulator;
}
return baseAggregator;
});

View File

@@ -1,4 +1,4 @@
define(['./copyObject', '../keys'], function(copyObject, keys) { define(['./_copyObject', './keys'], function(copyObject, keys) {
/** /**
* The base implementation of `_.assign` without support for multiple sources * The base implementation of `_.assign` without support for multiple sources

View File

@@ -1,4 +1,4 @@
define(['../get'], function(get) { define(['./get'], function(get) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./Stack', './arrayEach', './assignValue', './baseAssign', './baseForOwn', './copyArray', './copySymbols', './getTag', './initCloneArray', './initCloneByTag', './initCloneObject', '../isArray', './isHostObject', '../isObject'], function(Stack, arrayEach, assignValue, baseAssign, baseForOwn, copyArray, copySymbols, getTag, initCloneArray, initCloneByTag, initCloneObject, isArray, isHostObject, isObject) { define(['./_Stack', './_arrayEach', './_assignValue', './_baseAssign', './_baseForOwn', './_cloneBuffer', './_copyArray', './_copySymbols', './_getTag', './_initCloneArray', './_initCloneByTag', './_initCloneObject', './isArray', './isBuffer', './_isHostObject', './isObject'], function(Stack, arrayEach, assignValue, baseAssign, baseForOwn, cloneBuffer, copyArray, copySymbols, getTag, initCloneArray, initCloneByTag, initCloneObject, isArray, isBuffer, isHostObject, isObject) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;
@@ -81,6 +81,9 @@ define(['./Stack', './arrayEach', './assignValue', './baseAssign', './baseForOwn
var tag = getTag(value), var tag = getTag(value),
isFunc = tag == funcTag || tag == genTag; isFunc = tag == funcTag || tag == genTag;
if (isBuffer(value)) {
return cloneBuffer(value, isDeep);
}
if (tag == objectTag || tag == argsTag || (isFunc && !object)) { if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
if (isHostObject(value)) { if (isHostObject(value)) {
return object ? value : {}; return object ? value : {};

View File

@@ -1,4 +1,4 @@
define(['../keys'], function(keys) { define(['./keys'], function(keys) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['../isObject'], function(isObject) { define(['./isObject'], function(isObject) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -13,7 +13,7 @@ define([], function() {
* @private * @private
* @param {Function} func The function to delay. * @param {Function} func The function to delay.
* @param {number} wait The number of milliseconds to delay invocation. * @param {number} wait The number of milliseconds to delay invocation.
* @param {Object} args The arguments provide to `func`. * @param {Object} args The arguments to provide to `func`.
* @returns {number} Returns the timer id. * @returns {number} Returns the timer id.
*/ */
function baseDelay(func, wait, args) { function baseDelay(func, wait, args) {

View File

@@ -1,4 +1,4 @@
define(['./SetCache', './arrayIncludes', './arrayIncludesWith', './arrayMap', './baseUnary', './cacheHas'], function(SetCache, arrayIncludes, arrayIncludesWith, arrayMap, baseUnary, cacheHas) { define(['./_SetCache', './_arrayIncludes', './_arrayIncludesWith', './_arrayMap', './_baseUnary', './_cacheHas'], function(SetCache, arrayIncludes, arrayIncludesWith, arrayMap, baseUnary, cacheHas) {
/** Used as the size to enable large array optimizations. */ /** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200; var LARGE_ARRAY_SIZE = 200;

View File

@@ -1,4 +1,4 @@
define(['./baseForOwn', './createBaseEach'], function(baseForOwn, createBaseEach) { define(['./_baseForOwn', './_createBaseEach'], function(baseForOwn, createBaseEach) {
/** /**
* The base implementation of `_.forEach` without support for iteratee shorthands. * The base implementation of `_.forEach` without support for iteratee shorthands.

View File

@@ -1,4 +1,4 @@
define(['./baseForOwnRight', './createBaseEach'], function(baseForOwnRight, createBaseEach) { define(['./_baseForOwnRight', './_createBaseEach'], function(baseForOwnRight, createBaseEach) {
/** /**
* The base implementation of `_.forEachRight` without support for iteratee shorthands. * The base implementation of `_.forEachRight` without support for iteratee shorthands.

View File

@@ -1,4 +1,4 @@
define(['./baseEach'], function(baseEach) { define(['./_baseEach'], function(baseEach) {
/** /**
* The base implementation of `_.every` without support for iteratee shorthands. * The base implementation of `_.every` without support for iteratee shorthands.

View File

@@ -1,4 +1,4 @@
define(['../toInteger', '../toLength'], function(toInteger, toLength) { define(['./toInteger', './toLength'], function(toInteger, toLength) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./baseEach'], function(baseEach) { define(['./_baseEach'], function(baseEach) {
/** /**
* The base implementation of `_.filter` without support for iteratee shorthands. * The base implementation of `_.filter` without support for iteratee shorthands.

View File

@@ -3,7 +3,7 @@ define([], function() {
/** /**
* The base implementation of methods like `_.find` and `_.findKey`, without * The base implementation of methods like `_.find` and `_.findKey`, without
* support for iteratee shorthands, which iterates over `collection` using * support for iteratee shorthands, which iterates over `collection` using
* the provided `eachFunc`. * `eachFunc`.
* *
* @private * @private
* @param {Array|Object} collection The collection to search. * @param {Array|Object} collection The collection to search.

View File

@@ -1,4 +1,4 @@
define(['./arrayPush', '../isArguments', '../isArray', '../isArrayLikeObject'], function(arrayPush, isArguments, isArray, isArrayLikeObject) { define(['./_arrayPush', './isArguments', './isArray', './isArrayLikeObject'], function(arrayPush, isArguments, isArray, isArrayLikeObject) {
/** /**
* The base implementation of `_.flatten` with support for restricting flattening. * The base implementation of `_.flatten` with support for restricting flattening.

View File

@@ -1,4 +1,4 @@
define(['./createBaseFor'], function(createBaseFor) { define(['./_createBaseFor'], function(createBaseFor) {
/** /**
* The base implementation of `baseForIn` and `baseForOwn` which iterates * The base implementation of `baseForIn` and `baseForOwn` which iterates

View File

@@ -1,4 +1,4 @@
define(['./baseFor', '../keysIn'], function(baseFor, keysIn) { define(['./_baseFor', './keysIn'], function(baseFor, keysIn) {
/** /**
* The base implementation of `_.forIn` without support for iteratee shorthands. * The base implementation of `_.forIn` without support for iteratee shorthands.

View File

@@ -1,4 +1,4 @@
define(['./baseFor', '../keys'], function(baseFor, keys) { define(['./_baseFor', './keys'], function(baseFor, keys) {
/** /**
* The base implementation of `_.forOwn` without support for iteratee shorthands. * The base implementation of `_.forOwn` without support for iteratee shorthands.

View File

@@ -1,4 +1,4 @@
define(['./baseForRight', '../keys'], function(baseForRight, keys) { define(['./_baseForRight', './keys'], function(baseForRight, keys) {
/** /**
* The base implementation of `_.forOwnRight` without support for iteratee shorthands. * The base implementation of `_.forOwnRight` without support for iteratee shorthands.

View File

@@ -1,4 +1,4 @@
define(['./createBaseFor'], function(createBaseFor) { define(['./_createBaseFor'], function(createBaseFor) {
/** /**
* This function is like `baseFor` except that it iterates over properties * This function is like `baseFor` except that it iterates over properties

View File

@@ -1,8 +1,8 @@
define(['./arrayFilter', '../isFunction'], function(arrayFilter, isFunction) { define(['./_arrayFilter', './isFunction'], function(arrayFilter, isFunction) {
/** /**
* The base implementation of `_.functions` which creates an array of * The base implementation of `_.functions` which creates an array of
* `object` function property names filtered from those provided. * `object` function property names filtered from `props`.
* *
* @private * @private
* @param {Object} object The object to inspect. * @param {Object} object The object to inspect.

View File

@@ -1,4 +1,4 @@
define(['./baseToPath', './isKey'], function(baseToPath, isKey) { define(['./_baseToPath', './_isKey'], function(baseToPath, isKey) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./indexOfNaN'], function(indexOfNaN) { define(['./_indexOfNaN'], function(indexOfNaN) {
/** /**
* The base implementation of `_.indexOf` without `fromIndex` bounds checks. * The base implementation of `_.indexOf` without `fromIndex` bounds checks.

View File

@@ -1,4 +1,4 @@
define(['./SetCache', './arrayIncludes', './arrayIncludesWith', './arrayMap', './baseUnary', './cacheHas'], function(SetCache, arrayIncludes, arrayIncludesWith, arrayMap, baseUnary, cacheHas) { define(['./_SetCache', './_arrayIncludes', './_arrayIncludesWith', './_arrayMap', './_baseUnary', './_cacheHas'], function(SetCache, arrayIncludes, arrayIncludesWith, arrayMap, baseUnary, cacheHas) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

22
_baseInverter.js Normal file
View File

@@ -0,0 +1,22 @@
define(['./_baseForOwn'], function(baseForOwn) {
/**
* The base implementation of `_.invert` and `_.invertBy` which inverts
* `object` with values transformed by `iteratee` and set by `setter`.
*
* @private
* @param {Object} object The object to iterate over.
* @param {Function} setter The function to set `accumulator` values.
* @param {Function} iteratee The iteratee to transform values.
* @param {Object} accumulator The initial inverted object.
* @returns {Function} Returns `accumulator`.
*/
function baseInverter(object, setter, iteratee, accumulator) {
baseForOwn(object, function(value, key, object) {
setter(accumulator, iteratee(value), key, object);
});
return accumulator;
}
return baseInverter;
});

View File

@@ -1,4 +1,4 @@
define(['./apply', './baseToPath', './isKey', '../last', './parent'], function(apply, baseToPath, isKey, last, parent) { define(['./_apply', './_baseToPath', './_isKey', './last', './_parent'], function(apply, baseToPath, isKey, last, parent) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;
@@ -7,7 +7,6 @@ define(['./apply', './baseToPath', './isKey', '../last', './parent'], function(a
* The base implementation of `_.invoke` without support for individual * The base implementation of `_.invoke` without support for individual
* method arguments. * method arguments.
* *
*
* @private * @private
* @param {Object} object The object to query. * @param {Object} object The object to query.
* @param {Array|string} path The path of the method to invoke. * @param {Array|string} path The path of the method to invoke.

View File

@@ -1,4 +1,4 @@
define(['./baseIsEqualDeep', '../isObject', '../isObjectLike'], function(baseIsEqualDeep, isObject, isObjectLike) { define(['./_baseIsEqualDeep', './isObject', './isObjectLike'], function(baseIsEqualDeep, isObject, isObjectLike) {
/** /**
* The base implementation of `_.isEqual` which supports partial comparisons * The base implementation of `_.isEqual` which supports partial comparisons

View File

@@ -1,4 +1,4 @@
define(['./Stack', './equalArrays', './equalByTag', './equalObjects', './getTag', '../isArray', './isHostObject', '../isTypedArray'], function(Stack, equalArrays, equalByTag, equalObjects, getTag, isArray, isHostObject, isTypedArray) { define(['./_Stack', './_equalArrays', './_equalByTag', './_equalObjects', './_getTag', './isArray', './_isHostObject', './isTypedArray'], function(Stack, equalArrays, equalByTag, equalObjects, getTag, isArray, isHostObject, isTypedArray) {
/** Used to compose bitmasks for comparison styles. */ /** Used to compose bitmasks for comparison styles. */
var PARTIAL_COMPARE_FLAG = 2; var PARTIAL_COMPARE_FLAG = 2;

View File

@@ -1,4 +1,4 @@
define(['./Stack', './baseIsEqual'], function(Stack, baseIsEqual) { define(['./_Stack', './_baseIsEqual'], function(Stack, baseIsEqual) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;
@@ -49,7 +49,10 @@ define(['./Stack', './baseIsEqual'], function(Stack, baseIsEqual) {
var stack = new Stack, var stack = new Stack,
result = customizer ? customizer(objValue, srcValue, key, object, source, stack) : undefined; result = customizer ? customizer(objValue, srcValue, key, object, source, stack) : undefined;
if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack) : result)) { if (!(result === undefined
? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)
: result
)) {
return false; return false;
} }
} }

View File

@@ -1,4 +1,4 @@
define(['./baseMatches', './baseMatchesProperty', '../identity', '../isArray', '../property'], function(baseMatches, baseMatchesProperty, identity, isArray, property) { define(['./_baseMatches', './_baseMatchesProperty', './identity', './isArray', './property'], function(baseMatches, baseMatchesProperty, identity, isArray, property) {
/** /**
* The base implementation of `_.iteratee`. * The base implementation of `_.iteratee`.

View File

@@ -1,4 +1,4 @@
define(['./Reflect', './iteratorToArray'], function(Reflect, iteratorToArray) { define(['./_Reflect', './_iteratorToArray'], function(Reflect, iteratorToArray) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./baseEach', '../isArrayLike'], function(baseEach, isArrayLike) { define(['./_baseEach', './isArrayLike'], function(baseEach, isArrayLike) {
/** /**
* The base implementation of `_.map` without support for iteratee shorthands. * The base implementation of `_.map` without support for iteratee shorthands.

View File

@@ -1,4 +1,4 @@
define(['./baseIsMatch', './getMatchData'], function(baseIsMatch, getMatchData) { define(['./_baseIsMatch', './_getMatchData'], function(baseIsMatch, getMatchData) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./baseIsEqual', '../get', '../hasIn'], function(baseIsEqual, get, hasIn) { define(['./_baseIsEqual', './get', './hasIn'], function(baseIsEqual, get, hasIn) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['./Stack', './arrayEach', './assignMergeValue', './baseMergeDeep', '../isArray', '../isObject', '../isTypedArray', '../keysIn'], function(Stack, arrayEach, assignMergeValue, baseMergeDeep, isArray, isObject, isTypedArray, keysIn) { define(['./_Stack', './_arrayEach', './_assignMergeValue', './_baseMergeDeep', './isArray', './isObject', './isTypedArray', './keysIn'], function(Stack, arrayEach, assignMergeValue, baseMergeDeep, isArray, isObject, isTypedArray, keysIn) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;
@@ -9,10 +9,11 @@ define(['./Stack', './arrayEach', './assignMergeValue', './baseMergeDeep', '../i
* @private * @private
* @param {Object} object The destination object. * @param {Object} object The destination object.
* @param {Object} source The source object. * @param {Object} source The source object.
* @param {number} srcIndex The index of `source`.
* @param {Function} [customizer] The function to customize merged values. * @param {Function} [customizer] The function to customize merged values.
* @param {Object} [stack] Tracks traversed source values and their merged counterparts. * @param {Object} [stack] Tracks traversed source values and their merged counterparts.
*/ */
function baseMerge(object, source, customizer, stack) { function baseMerge(object, source, srcIndex, customizer, stack) {
if (object === source) { if (object === source) {
return; return;
} }
@@ -24,7 +25,7 @@ define(['./Stack', './arrayEach', './assignMergeValue', './baseMergeDeep', '../i
} }
if (isObject(srcValue)) { if (isObject(srcValue)) {
stack || (stack = new Stack); stack || (stack = new Stack);
baseMergeDeep(object, source, key, baseMerge, customizer, stack); baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
} }
else { else {
var newValue = customizer ? customizer(object[key], srcValue, (key + ''), object, source, stack) : undefined; var newValue = customizer ? customizer(object[key], srcValue, (key + ''), object, source, stack) : undefined;

View File

@@ -1,4 +1,4 @@
define(['./assignMergeValue', './baseClone', './copyArray', '../isArguments', '../isArray', '../isArrayLikeObject', '../isFunction', '../isObject', '../isPlainObject', '../isTypedArray', '../toPlainObject'], function(assignMergeValue, baseClone, copyArray, isArguments, isArray, isArrayLikeObject, isFunction, isObject, isPlainObject, isTypedArray, toPlainObject) { define(['./_assignMergeValue', './_baseClone', './_copyArray', './isArguments', './isArray', './isArrayLikeObject', './isFunction', './isObject', './isPlainObject', './isTypedArray', './toPlainObject'], function(assignMergeValue, baseClone, copyArray, isArguments, isArray, isArrayLikeObject, isFunction, isObject, isPlainObject, isTypedArray, toPlainObject) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;
@@ -12,14 +12,15 @@ define(['./assignMergeValue', './baseClone', './copyArray', '../isArguments', '.
* @param {Object} object The destination object. * @param {Object} object The destination object.
* @param {Object} source The source object. * @param {Object} source The source object.
* @param {string} key The key of the value to merge. * @param {string} key The key of the value to merge.
* @param {number} srcIndex The index of `source`.
* @param {Function} mergeFunc The function to merge values. * @param {Function} mergeFunc The function to merge values.
* @param {Function} [customizer] The function to customize assigned values. * @param {Function} [customizer] The function to customize assigned values.
* @param {Object} [stack] Tracks traversed source values and their merged counterparts. * @param {Object} [stack] Tracks traversed source values and their merged counterparts.
*/ */
function baseMergeDeep(object, source, key, mergeFunc, customizer, stack) { function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
var objValue = object[key], var objValue = object[key],
srcValue = source[key], srcValue = source[key],
stacked = stack.get(srcValue) || stack.get(objValue); stacked = stack.get(srcValue);
if (stacked) { if (stacked) {
assignMergeValue(object, key, stacked); assignMergeValue(object, key, stacked);
@@ -31,24 +32,38 @@ define(['./assignMergeValue', './baseClone', './copyArray', '../isArguments', '.
if (isCommon) { if (isCommon) {
newValue = srcValue; newValue = srcValue;
if (isArray(srcValue) || isTypedArray(srcValue)) { if (isArray(srcValue) || isTypedArray(srcValue)) {
newValue = isArray(objValue) if (isArray(objValue)) {
? objValue newValue = srcIndex ? copyArray(objValue) : objValue;
: ((isArrayLikeObject(objValue)) ? copyArray(objValue) : baseClone(srcValue)); }
else if (isArrayLikeObject(objValue)) {
newValue = copyArray(objValue);
}
else {
isCommon = false;
newValue = baseClone(srcValue);
}
} }
else if (isPlainObject(srcValue) || isArguments(srcValue)) { else if (isPlainObject(srcValue) || isArguments(srcValue)) {
newValue = isArguments(objValue) if (isArguments(objValue)) {
? toPlainObject(objValue) newValue = toPlainObject(objValue);
: (isObject(objValue) ? objValue : baseClone(srcValue)); }
else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {
isCommon = false;
newValue = baseClone(srcValue);
}
else {
newValue = srcIndex ? baseClone(objValue) : objValue;
}
} }
else { else {
isCommon = isFunction(srcValue); isCommon = false;
} }
} }
stack.set(srcValue, newValue); stack.set(srcValue, newValue);
if (isCommon) { if (isCommon) {
// Recursively merge objects and arrays (susceptible to call stack limits). // Recursively merge objects and arrays (susceptible to call stack limits).
mergeFunc(newValue, srcValue, customizer, stack); mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
} }
assignMergeValue(object, key, newValue); assignMergeValue(object, key, newValue);
} }

View File

@@ -1,4 +1,4 @@
define(['./arrayMap', './baseIteratee', './baseMap', './baseSortBy', './compareMultiple'], function(arrayMap, baseIteratee, baseMap, baseSortBy, compareMultiple) { define(['./_arrayMap', './_baseIteratee', './_baseMap', './_baseSortBy', './_compareMultiple'], function(arrayMap, baseIteratee, baseMap, baseSortBy, compareMultiple) {
/** /**
* The base implementation of `_.orderBy` without param guards. * The base implementation of `_.orderBy` without param guards.

View File

@@ -1,4 +1,4 @@
define(['./arrayReduce'], function(arrayReduce) { define(['./_arrayReduce'], function(arrayReduce) {
/** /**
* The base implementation of `_.pick` without support for individual * The base implementation of `_.pick` without support for individual

View File

@@ -1,4 +1,4 @@
define(['./baseForIn'], function(baseForIn) { define(['./_baseForIn'], function(baseForIn) {
/** /**
* The base implementation of `_.pickBy` without support for iteratee shorthands. * The base implementation of `_.pickBy` without support for iteratee shorthands.
@@ -11,7 +11,7 @@ define(['./baseForIn'], function(baseForIn) {
function basePickBy(object, predicate) { function basePickBy(object, predicate) {
var result = {}; var result = {};
baseForIn(object, function(value, key) { baseForIn(object, function(value, key) {
if (predicate(value)) { if (predicate(value, key)) {
result[key] = value; result[key] = value;
} }
}); });

View File

@@ -1,4 +1,4 @@
define(['./baseGet'], function(baseGet) { define(['./_baseGet'], function(baseGet) {
/** /**
* A specialized version of `baseProperty` which supports deep paths. * A specialized version of `baseProperty` which supports deep paths.

View File

@@ -1,4 +1,4 @@
define(['./basePullAllBy'], function(basePullAllBy) { define(['./_basePullAllBy'], function(basePullAllBy) {
/** /**
* The base implementation of `_.pullAll`. * The base implementation of `_.pullAll`.

View File

@@ -1,4 +1,4 @@
define(['./arrayMap', './baseIndexOf'], function(arrayMap, baseIndexOf) { define(['./_arrayMap', './_baseIndexOf'], function(arrayMap, baseIndexOf) {
/** Used for built-in method references. */ /** Used for built-in method references. */
var arrayProto = Array.prototype; var arrayProto = Array.prototype;

View File

@@ -1,4 +1,4 @@
define(['./baseToPath', './isIndex', './isKey', '../last', './parent'], function(baseToPath, isIndex, isKey, last, parent) { define(['./_baseToPath', './_isIndex', './_isKey', './last', './_parent'], function(baseToPath, isIndex, isKey, last, parent) {
/** Used for built-in method references. */ /** Used for built-in method references. */
var arrayProto = Array.prototype; var arrayProto = Array.prototype;

View File

@@ -2,21 +2,20 @@ define([], function() {
/** /**
* The base implementation of `_.reduce` and `_.reduceRight`, without support * The base implementation of `_.reduce` and `_.reduceRight`, without support
* for iteratee shorthands, which iterates over `collection` using the provided * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
* `eachFunc`.
* *
* @private * @private
* @param {Array|Object} collection The collection to iterate over. * @param {Array|Object} collection The collection to iterate over.
* @param {Function} iteratee The function invoked per iteration. * @param {Function} iteratee The function invoked per iteration.
* @param {*} accumulator The initial value. * @param {*} accumulator The initial value.
* @param {boolean} initFromCollection Specify using the first or last element of `collection` as the initial value. * @param {boolean} initAccum Specify using the first or last element of `collection` as the initial value.
* @param {Function} eachFunc The function to iterate over `collection`. * @param {Function} eachFunc The function to iterate over `collection`.
* @returns {*} Returns the accumulated value. * @returns {*} Returns the accumulated value.
*/ */
function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) { function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
eachFunc(collection, function(value, index, collection) { eachFunc(collection, function(value, index, collection) {
accumulator = initFromCollection accumulator = initAccum
? (initFromCollection = false, value) ? (initAccum = false, value)
: iteratee(accumulator, value, index, collection); : iteratee(accumulator, value, index, collection);
}); });
return accumulator; return accumulator;

View File

@@ -1,4 +1,4 @@
define(['./assignValue', './baseToPath', './isIndex', './isKey', '../isObject'], function(assignValue, baseToPath, isIndex, isKey, isObject) { define(['./_assignValue', './_baseToPath', './_isIndex', './_isKey', './isObject'], function(assignValue, baseToPath, isIndex, isKey, isObject) {
/** Used as a safe reference for `undefined` in pre-ES5 environments. */ /** Used as a safe reference for `undefined` in pre-ES5 environments. */
var undefined; var undefined;

View File

@@ -1,4 +1,4 @@
define(['../identity', './metaMap'], function(identity, metaMap) { define(['./identity', './_metaMap'], function(identity, metaMap) {
/** /**
* The base implementation of `setData` without support for hot loop detection. * The base implementation of `setData` without support for hot loop detection.

View File

@@ -1,4 +1,4 @@
define(['./baseEach'], function(baseEach) { define(['./_baseEach'], function(baseEach) {
/** /**
* The base implementation of `_.some` without support for iteratee shorthands. * The base implementation of `_.some` without support for iteratee shorthands.

View File

@@ -1,4 +1,4 @@
define(['./baseSortedIndexBy', '../identity'], function(baseSortedIndexBy, identity) { define(['./_baseSortedIndexBy', './identity'], function(baseSortedIndexBy, identity) {
/** Used as references for the maximum length and index of an array. */ /** Used as references for the maximum length and index of an array. */
var MAX_ARRAY_LENGTH = 4294967295, var MAX_ARRAY_LENGTH = 4294967295,

Some files were not shown because too many files have changed in this diff Show More