diff --git a/README.md b/README.md
index 3a851484c..f709fcdf9 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# lodash v3.0.5
+# lodash v3.0.6
The [lodash](https://lodash.com/) library exported as [npm packages](https://www.npmjs.com/browse/keyword/lodash-modularized) per method.
diff --git a/lodash._baseisequal/README.md b/lodash._baseisequal/README.md
index 3ba94b03b..2fc93f071 100644
--- a/lodash._baseisequal/README.md
+++ b/lodash._baseisequal/README.md
@@ -1,4 +1,4 @@
-# lodash._baseisequal v3.0.5
+# lodash._baseisequal v3.0.6
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `baseIsEqual` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var baseIsEqual = require('lodash._baseisequal');
```
-See the [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash._baseisequal) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash._baseisequal) for more details.
diff --git a/lodash._baseisequal/index.js b/lodash._baseisequal/index.js
index 74051b1f0..0082de89e 100644
--- a/lodash._baseisequal/index.js
+++ b/lodash._baseisequal/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -33,6 +33,28 @@ var hasOwnProperty = objectProto.hasOwnProperty;
*/
var objToString = objectProto.toString;
+/**
+ * A specialized version of `_.some` for arrays without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
+ * else `false`.
+ */
+function arraySome(array, predicate) {
+ var index = -1,
+ length = array.length;
+
+ while (++index < length) {
+ if (predicate(array[index], index, array)) {
+ return true;
+ }
+ }
+ return false;
+}
+
/**
* The base implementation of `_.isEqual` without support for `this` binding
* `customizer` functions.
@@ -47,17 +69,10 @@ var objToString = objectProto.toString;
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
*/
function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {
- // Exit early for identical values.
if (value === other) {
return true;
}
- var valType = typeof value,
- othType = typeof other;
-
- // Exit early for unlike primitive values.
- if ((valType != 'function' && valType != 'object' && othType != 'function' && othType != 'object') ||
- value == null || other == null) {
- // Return `false` unless both values are `NaN`.
+ if (value == null || other == null || (!isObject(value) && !isObject(other))) {
return value !== value && other !== other;
}
return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);
@@ -108,11 +123,11 @@ function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA,
return equalByTag(object, other, objTag);
}
if (!isLoose) {
- var valWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
- othWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
+ var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
+ othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
- if (valWrapped || othWrapped) {
- return equalFunc(valWrapped ? object.value() : object, othWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);
+ if (objIsWrapped || othIsWrapped) {
+ return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);
}
}
if (!isSameTag) {
@@ -158,40 +173,35 @@ function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA,
function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {
var index = -1,
arrLength = array.length,
- othLength = other.length,
- result = true;
+ othLength = other.length;
if (arrLength != othLength && !(isLoose && othLength > arrLength)) {
return false;
}
- // Deep compare the contents, ignoring non-numeric properties.
- while (result && ++index < arrLength) {
+ // Ignore non-index properties.
+ while (++index < arrLength) {
var arrValue = array[index],
- othValue = other[index];
+ othValue = other[index],
+ result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;
- result = undefined;
- if (customizer) {
- result = isLoose
- ? customizer(othValue, arrValue, index)
- : customizer(arrValue, othValue, index);
- }
- if (result === undefined) {
- // Recursively compare arrays (susceptible to call stack limits).
- if (isLoose) {
- var othIndex = othLength;
- while (othIndex--) {
- othValue = other[othIndex];
- result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
- if (result) {
- break;
- }
- }
- } else {
- result = (arrValue && arrValue === othValue) || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
+ if (result !== undefined) {
+ if (result) {
+ continue;
}
+ return false;
+ }
+ // Recursively compare arrays (susceptible to call stack limits).
+ if (isLoose) {
+ if (!arraySome(other, function(othValue) {
+ return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
+ })) {
+ return false;
+ }
+ } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {
+ return false;
}
}
- return !!result;
+ return true;
}
/**
@@ -256,29 +266,22 @@ function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, sta
if (objLength != othLength && !isLoose) {
return false;
}
- var skipCtor = isLoose,
- index = -1;
-
- while (++index < objLength) {
- var key = objProps[index],
- result = isLoose ? key in other : hasOwnProperty.call(other, key);
-
- if (result) {
- var objValue = object[key],
- othValue = other[key];
-
- result = undefined;
- if (customizer) {
- result = isLoose
- ? customizer(othValue, objValue, key)
- : customizer(objValue, othValue, key);
- }
- if (result === undefined) {
- // Recursively compare objects (susceptible to call stack limits).
- result = (objValue && objValue === othValue) || equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB);
- }
+ var index = objLength;
+ while (index--) {
+ var key = objProps[index];
+ if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {
+ return false;
}
- if (!result) {
+ }
+ var skipCtor = isLoose;
+ while (++index < objLength) {
+ key = objProps[index];
+ var objValue = object[key],
+ othValue = other[key],
+ result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;
+
+ // Recursively compare objects (susceptible to call stack limits).
+ if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {
return false;
}
skipCtor || (skipCtor = key == 'constructor');
@@ -298,4 +301,31 @@ function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, sta
return true;
}
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
module.exports = baseIsEqual;
diff --git a/lodash._baseisequal/package.json b/lodash._baseisequal/package.json
index 232644681..2e74184bc 100644
--- a/lodash._baseisequal/package.json
+++ b/lodash._baseisequal/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash._baseisequal",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The modern build of lodash’s internal `baseIsEqual` as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash._createwrapper/README.md b/lodash._createwrapper/README.md
index 7b9c6698f..2f9fc571e 100644
--- a/lodash._createwrapper/README.md
+++ b/lodash._createwrapper/README.md
@@ -1,4 +1,4 @@
-# lodash._createwrapper v3.0.5
+# lodash._createwrapper v3.0.6
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `createWrapper` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var createWrapper = require('lodash._createwrapper');
```
-See the [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash._createwrapper) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash._createwrapper) for more details.
diff --git a/lodash._createwrapper/index.js b/lodash._createwrapper/index.js
index 5fe012dee..57a9bbe7e 100644
--- a/lodash._createwrapper/index.js
+++ b/lodash._createwrapper/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -23,6 +23,9 @@ var BIND_FLAG = 1,
/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';
+/** Used to detect unsigned integer values. */
+var reIsUint = /^\d+$/;
+
/* Native method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max,
nativeMin = Math.min;
@@ -333,7 +336,7 @@ function createWrapper(func, bitmask, thisArg, partials, holders, argPos, ary, a
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
*/
function isIndex(value, length) {
- value = typeof value == 'number' ? value : parseFloat(value);
+ value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
length = length == null ? MAX_SAFE_INTEGER : length;
return value > -1 && value % 1 == 0 && value < length;
}
diff --git a/lodash._createwrapper/package.json b/lodash._createwrapper/package.json
index 48a090fc4..2cac08588 100644
--- a/lodash._createwrapper/package.json
+++ b/lodash._createwrapper/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash._createwrapper",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The modern build of lodash’s internal `createWrapper` as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash._isiterateecall/README.md b/lodash._isiterateecall/README.md
index 17fd3555c..f92764104 100644
--- a/lodash._isiterateecall/README.md
+++ b/lodash._isiterateecall/README.md
@@ -1,4 +1,4 @@
-# lodash._isiterateecall v3.0.5
+# lodash._isiterateecall v3.0.6
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) internal `isIterateeCall` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var isIterateeCall = require('lodash._isiterateecall');
```
-See the [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash._isiterateecall) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash._isiterateecall) for more details.
diff --git a/lodash._isiterateecall/index.js b/lodash._isiterateecall/index.js
index 36f21dbc8..c5919c36e 100644
--- a/lodash._isiterateecall/index.js
+++ b/lodash._isiterateecall/index.js
@@ -1,8 +1,8 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.2
+ * Based on Underscore.js 1.8.3
* Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
@@ -13,6 +13,31 @@
*/
var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
+/**
+ * The base implementation of `_.property` without support for deep paths.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+}
+
+/**
+ * Gets the "length" property value of `object`.
+ *
+ * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
+ * in Safari on iOS 8.1 ARM64.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {*} Returns the "length" value.
+ */
+var getLength = baseProperty('length');
+
/**
* Checks if `value` is a valid array-like index.
*
@@ -42,7 +67,7 @@ function isIterateeCall(value, index, object) {
}
var type = typeof index;
if (type == 'number') {
- var length = object.length,
+ var length = getLength(object),
prereq = isLength(length) && isIndex(index, length);
} else {
prereq = type == 'string' && index in object;
diff --git a/lodash._isiterateecall/package.json b/lodash._isiterateecall/package.json
index 070e4ee12..c8e31d439 100644
--- a/lodash._isiterateecall/package.json
+++ b/lodash._isiterateecall/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash._isiterateecall",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The modern build of lodash’s internal `isIterateeCall` as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.isarguments/README.md b/lodash.isarguments/README.md
index 7efe2f50c..e53688dd8 100644
--- a/lodash.isarguments/README.md
+++ b/lodash.isarguments/README.md
@@ -1,4 +1,4 @@
-# lodash.isarguments v3.0.5
+# lodash.isarguments v3.0.6
The [lodash](https://lodash.com/) method `_.isArguments` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var isArguments = require('lodash.isarguments');
```
-See the [documentation](https://lodash.com/docs#isArguments) or [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash.isarguments) for more details.
+See the [documentation](https://lodash.com/docs#isArguments) or [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash.isarguments) for more details.
diff --git a/lodash.isarguments/index.js b/lodash.isarguments/index.js
index c8fcfc5a9..56ec8acde 100644
--- a/lodash.isarguments/index.js
+++ b/lodash.isarguments/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -16,7 +16,7 @@ var argsTag = '[object Arguments]',
genTag = '[object GeneratorFunction]';
/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
+var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
diff --git a/lodash.isarguments/package.json b/lodash.isarguments/package.json
index d1b97be75..8dcc21a6d 100644
--- a/lodash.isarguments/package.json
+++ b/lodash.isarguments/package.json
@@ -1,11 +1,11 @@
{
"name": "lodash.isarguments",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The lodash method `_.isArguments` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
- "keywords": "lodash, lodash-modularized, stdlib, util, isarguments",
+ "keywords": "lodash-modularized, isarguments",
"author": "John-David Dalton (http://allyoucanleet.com/)",
"contributors": [
"John-David Dalton (http://allyoucanleet.com/)",
diff --git a/lodash.iselement/README.md b/lodash.iselement/README.md
index d181d4392..6ea8080f1 100644
--- a/lodash.iselement/README.md
+++ b/lodash.iselement/README.md
@@ -1,4 +1,4 @@
-# lodash.iselement v3.0.5
+# lodash.iselement v3.0.6
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.isElement` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var isElement = require('lodash.iselement');
```
-See the [documentation](https://lodash.com/docs#isElement) or [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash.iselement) for more details.
+See the [documentation](https://lodash.com/docs#isElement) or [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash.iselement) for more details.
diff --git a/lodash.iselement/index.js b/lodash.iselement/index.js
index 0d2e7f4f0..0ef496024 100644
--- a/lodash.iselement/index.js
+++ b/lodash.iselement/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -42,6 +42,7 @@ var support = {};
(function(x) {
var Ctor = function() { this.x = x; },
+ args = arguments,
object = { '0': x, 'length': x },
props = [];
diff --git a/lodash.iselement/package.json b/lodash.iselement/package.json
index d825478ee..bfe54d7e6 100644
--- a/lodash.iselement/package.json
+++ b/lodash.iselement/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.iselement",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The modern build of lodash’s `_.isElement` as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.isfunction/LICENSE.txt b/lodash.isfunction/LICENSE
similarity index 100%
rename from lodash.isfunction/LICENSE.txt
rename to lodash.isfunction/LICENSE
diff --git a/lodash.isfunction/README.md b/lodash.isfunction/README.md
index 25bcdb8e1..66676c5b7 100644
--- a/lodash.isfunction/README.md
+++ b/lodash.isfunction/README.md
@@ -1,4 +1,4 @@
-# lodash.isfunction v3.0.5
+# lodash.isfunction v3.0.6
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.isFunction` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var isFunction = require('lodash.isfunction');
```
-See the [documentation](https://lodash.com/docs#isFunction) or [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash.isfunction) for more details.
+See the [documentation](https://lodash.com/docs#isFunction) or [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash.isfunction) for more details.
diff --git a/lodash.isfunction/index.js b/lodash.isfunction/index.js
index 52b71e449..615e31188 100644
--- a/lodash.isfunction/index.js
+++ b/lodash.isfunction/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -10,94 +10,15 @@
/** `Object#toString` result references. */
var funcTag = '[object Function]';
-/**
- * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).
- * In addition to special characters the forward slash is escaped to allow for
- * easier `eval` use and `Function` compilation.
- */
-var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g,
- reHasRegExpChars = RegExp(reRegExpChars.source);
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * The base implementation of `_.isFunction` without support for environments
- * with incorrect `typeof` results.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- */
-function baseIsFunction(value) {
- // Avoid a Chakra JIT bug in compatibility modes of IE 11.
- // See https://github.com/jashkenas/underscore/issues/1621 for more details.
- return typeof value == 'function' || false;
-}
-
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- if (typeof value == 'string') {
- return value;
- }
- return value == null ? '' : (value + '');
-}
-
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
/** Used for native method references. */
var objectProto = Object.prototype;
-/** Used to resolve the decompiled source of functions. */
-var fnToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- escapeRegExp(fnToString.call(hasOwnProperty))
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/** Native method references. */
-var Uint8Array = getNative(global, 'Uint8Array');
-
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
-
/**
* Checks if `value` is classified as a `Function` object.
*
@@ -114,58 +35,38 @@ function getNative(object, key) {
* _.isFunction(/abc/);
* // => false
*/
-var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {
+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.
- return objToString.call(value) == funcTag;
-};
+ // and Safari 8 which returns 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+}
/**
- * Checks if `value` is a native function.
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
* @memberOf _
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
* @example
*
- * _.isNative(Array.prototype.push);
+ * _.isObject({});
* // => true
*
- * _.isNative(_);
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
* // => false
*/
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (objToString.call(value) == funcTag) {
- return reIsNative.test(fnToString.call(value));
- }
- return isObjectLike(value) && reIsHostCtor.test(value);
-}
-
-/**
- * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?",
- * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to escape.
- * @returns {string} Returns the escaped string.
- * @example
- *
- * _.escapeRegExp('[lodash](https://lodash.com/)');
- * // => '\[lodash\]\(https:\/\/lodash\.com\/\)'
- */
-function escapeRegExp(string) {
- string = baseToString(string);
- return (string && reHasRegExpChars.test(string))
- ? string.replace(reRegExpChars, '\\$&')
- : string;
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
}
module.exports = isFunction;
diff --git a/lodash.isfunction/package.json b/lodash.isfunction/package.json
index 275260376..b98287736 100644
--- a/lodash.isfunction/package.json
+++ b/lodash.isfunction/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.isfunction",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The modern build of lodash’s `_.isFunction` as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.isnative/README.md b/lodash.isnative/README.md
index 8744975a6..aa48a2367 100644
--- a/lodash.isnative/README.md
+++ b/lodash.isnative/README.md
@@ -1,4 +1,4 @@
-# lodash.isnative v3.0.5
+# lodash.isnative v3.0.6
The [lodash](https://lodash.com/) method `_.isNative` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var isNative = require('lodash.isnative');
```
-See the [documentation](https://lodash.com/docs#isNative) or [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash.isnative) for more details.
+See the [documentation](https://lodash.com/docs#isNative) or [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash.isnative) for more details.
diff --git a/lodash.isnative/index.js b/lodash.isnative/index.js
index ab841a89d..deceb1e2d 100644
--- a/lodash.isnative/index.js
+++ b/lodash.isnative/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -14,7 +14,7 @@ var funcTag = '[object Function]',
/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-/** Used to detect host constructors (Safari > 5). */
+/** Used to detect host constructors (Safari). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;
/**
@@ -37,10 +37,10 @@ function isHostObject(value) {
}
/** Used for built-in method references. */
-var objectProto = global.Object.prototype;
+var objectProto = Object.prototype;
/** Used to resolve the decompiled source of functions. */
-var funcToString = global.Function.prototype.toString;
+var funcToString = Function.prototype.toString;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
@@ -62,9 +62,11 @@ var reIsNative = RegExp('^' +
*
* @static
* @memberOf _
+ * @since 0.1.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
* @example
*
* _.isFunction(_);
@@ -75,8 +77,8 @@ var reIsNative = RegExp('^' +
*/
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array constructors, and
- // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+ // in Safari 8 which returns 'object' for typed array and weak map constructors,
+ // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
var tag = isObject(value) ? objectToString.call(value) : '';
return tag == funcTag || tag == genTag;
}
@@ -87,6 +89,7 @@ function isFunction(value) {
*
* @static
* @memberOf _
+ * @since 0.1.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is an object, else `false`.
@@ -115,6 +118,7 @@ function isObject(value) {
*
* @static
* @memberOf _
+ * @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
@@ -141,9 +145,11 @@ function isObjectLike(value) {
*
* @static
* @memberOf _
+ * @since 3.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @returns {boolean} Returns `true` if `value` is a native function,
+ * else `false`.
* @example
*
* _.isNative(Array.prototype.push);
diff --git a/lodash.isnative/package.json b/lodash.isnative/package.json
index 3e4d8fa8e..91fda0016 100644
--- a/lodash.isnative/package.json
+++ b/lodash.isnative/package.json
@@ -1,11 +1,11 @@
{
"name": "lodash.isnative",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The lodash method `_.isNative` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
- "keywords": "lodash, lodash-modularized, stdlib, util, isnative",
+ "keywords": "lodash-modularized, isnative",
"author": "John-David Dalton (http://allyoucanleet.com/)",
"contributors": [
"John-David Dalton (http://allyoucanleet.com/)",
diff --git a/lodash.istypedarray/LICENSE b/lodash.istypedarray/LICENSE
index bcbe13d67..e0c69d560 100644
--- a/lodash.istypedarray/LICENSE
+++ b/lodash.istypedarray/LICENSE
@@ -1,23 +1,47 @@
-The MIT License (MIT)
+Copyright jQuery Foundation and other contributors
-Copyright 2012-2016 The Dojo Foundation
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
+Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
+The following license applies to all parts of this software except as
+documented below:
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/lodash.istypedarray/README.md b/lodash.istypedarray/README.md
index b31a8f692..590b8e093 100644
--- a/lodash.istypedarray/README.md
+++ b/lodash.istypedarray/README.md
@@ -1,4 +1,4 @@
-# lodash.istypedarray v3.0.5
+# lodash.istypedarray v3.0.6
The [lodash](https://lodash.com/) method `_.isTypedArray` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var isTypedArray = require('lodash.istypedarray');
```
-See the [documentation](https://lodash.com/docs#isTypedArray) or [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash.istypedarray) for more details.
+See the [documentation](https://lodash.com/docs#isTypedArray) or [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash.istypedarray) for more details.
diff --git a/lodash.istypedarray/index.js b/lodash.istypedarray/index.js
index 155705b98..e65b23231 100644
--- a/lodash.istypedarray/index.js
+++ b/lodash.istypedarray/index.js
@@ -1,10 +1,10 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
- * Copyright 2012-2016 The Dojo Foundation
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
* Based on Underscore.js 1.8.3
- * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
/** Used as references for various `Number` constants. */
@@ -26,6 +26,7 @@ var argsTag = '[object Arguments]',
weakMapTag = '[object WeakMap]';
var arrayBufferTag = '[object ArrayBuffer]',
+ dataViewTag = '[object DataView]',
float32Tag = '[object Float32Array]',
float64Tag = '[object Float64Array]',
int8Tag = '[object Int8Array]',
@@ -45,17 +46,19 @@ typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
-typedArrayTags[dateTag] = typedArrayTags[errorTag] =
-typedArrayTags[funcTag] = typedArrayTags[mapTag] =
-typedArrayTags[numberTag] = typedArrayTags[objectTag] =
-typedArrayTags[regexpTag] = typedArrayTags[setTag] =
-typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
+typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
+typedArrayTags[errorTag] = typedArrayTags[funcTag] =
+typedArrayTags[mapTag] = typedArrayTags[numberTag] =
+typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
+typedArrayTags[setTag] = typedArrayTags[stringTag] =
+typedArrayTags[weakMapTag] = false;
/** Used for built-in method references. */
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -63,13 +66,16 @@ var objectToString = objectProto.toString;
/**
* Checks if `value` is a valid array-like length.
*
- * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ * **Note:** This function is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
*
* @static
* @memberOf _
+ * @since 4.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ * @returns {boolean} Returns `true` if `value` is a valid length,
+ * else `false`.
* @example
*
* _.isLength(3);
@@ -95,6 +101,7 @@ function isLength(value) {
*
* @static
* @memberOf _
+ * @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
@@ -121,9 +128,11 @@ function isObjectLike(value) {
*
* @static
* @memberOf _
+ * @since 3.0.0
* @category Lang
* @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @returns {boolean} Returns `true` if `value` is correctly classified,
+ * else `false`.
* @example
*
* _.isTypedArray(new Uint8Array);
diff --git a/lodash.istypedarray/package.json b/lodash.istypedarray/package.json
index 67f6780b8..cf2b26746 100644
--- a/lodash.istypedarray/package.json
+++ b/lodash.istypedarray/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.istypedarray",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The lodash method `_.isTypedArray` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -9,7 +9,7 @@
"author": "John-David Dalton (http://allyoucanleet.com/)",
"contributors": [
"John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (https://github.com/phated)",
+ "Blaine Bublitz (https://github.com/phated)",
"Mathias Bynens (https://mathiasbynens.be/)"
],
"repository": "lodash/lodash",
diff --git a/lodash.keys/README.md b/lodash.keys/README.md
index 2bfad9261..fbbb102a4 100644
--- a/lodash.keys/README.md
+++ b/lodash.keys/README.md
@@ -1,4 +1,4 @@
-# lodash.keys v3.0.5
+# lodash.keys v3.0.6
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.keys` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var keys = require('lodash.keys');
```
-See the [documentation](https://lodash.com/docs#keys) or [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash.keys) for more details.
+See the [documentation](https://lodash.com/docs#keys) or [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash.keys) for more details.
diff --git a/lodash.keys/index.js b/lodash.keys/index.js
index bc07f0e15..d76fca2a5 100644
--- a/lodash.keys/index.js
+++ b/lodash.keys/index.js
@@ -1,8 +1,8 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation
- * Based on Underscore.js 1.8.2
+ * Based on Underscore.js 1.8.3
* Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license
*/
@@ -38,6 +38,12 @@ var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
var support = {};
(function(x) {
+ var Ctor = function() { this.x = x; },
+ object = { '0': x, 'length': x },
+ props = [];
+
+ Ctor.prototype = { 'valueOf': x, 'y': x };
+ for (var key in new Ctor) { props.push(key); }
/**
* Detect if `arguments` object indexes are non-enumerable.
@@ -45,8 +51,8 @@ var support = {};
* In Firefox < 4, IE < 9, PhantomJS, and Safari < 5.1 `arguments` object
* indexes are non-enumerable. Chrome < 25 and Node.js < 0.11.0 treat
* `arguments` object indexes as non-enumerable and fail `hasOwnProperty`
- * checks for indexes that exceed their function's formal parameters with
- * associated values of `0`.
+ * checks for indexes that exceed the number of function parameters and
+ * whose associated argument values are `0`.
*
* @memberOf _.support
* @type boolean
@@ -56,7 +62,7 @@ var support = {};
} catch(e) {
support.nonEnumArgs = true;
}
-}(0, 0));
+}(1, 0));
/**
* Checks if `value` is a valid array-like index.
@@ -90,7 +96,7 @@ function isLength(value) {
* own enumerable property names of `object`.
*
* @private
- * @param {Object} object The object to inspect.
+ * @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
*/
function shimKeys(object) {
@@ -150,7 +156,7 @@ function isObject(value) {
* @static
* @memberOf _
* @category Object
- * @param {Object} object The object to inspect.
+ * @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
* @example
*
@@ -173,7 +179,7 @@ var keys = !nativeKeys ? shimKeys : function(object) {
length = object.length;
}
if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
- (typeof object != 'function' && (length && isLength(length)))) {
+ (typeof object != 'function' && isLength(length))) {
return shimKeys(object);
}
return isObject(object) ? nativeKeys(object) : [];
@@ -187,7 +193,7 @@ var keys = !nativeKeys ? shimKeys : function(object) {
* @static
* @memberOf _
* @category Object
- * @param {Object} object The object to inspect.
+ * @param {Object} object The object to query.
* @returns {Array} Returns the array of property names.
* @example
*
diff --git a/lodash.keys/package.json b/lodash.keys/package.json
index e2c510afb..3856f26fe 100644
--- a/lodash.keys/package.json
+++ b/lodash.keys/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.keys",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The modern build of lodash’s `_.keys` as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.keysin/README.md b/lodash.keysin/README.md
index ccc966785..ec5e99692 100644
--- a/lodash.keysin/README.md
+++ b/lodash.keysin/README.md
@@ -1,4 +1,4 @@
-# lodash.keysin v3.0.5
+# lodash.keysin v3.0.6
The [modern build](https://github.com/lodash/lodash/wiki/Build-Differences) of [lodash’s](https://lodash.com/) `_.keysIn` exported as a [Node.js](http://nodejs.org/)/[io.js](https://iojs.org/) module.
@@ -17,4 +17,4 @@ In Node.js/io.js:
var keysIn = require('lodash.keysin');
```
-See the [documentation](https://lodash.com/docs#keysIn) or [package source](https://github.com/lodash/lodash/blob/3.0.5-npm-packages/lodash.keysin) for more details.
+See the [documentation](https://lodash.com/docs#keysIn) or [package source](https://github.com/lodash/lodash/blob/3.0.6-npm-packages/lodash.keysin) for more details.
diff --git a/lodash.keysin/index.js b/lodash.keysin/index.js
index 0cfb3453d..d7271654e 100644
--- a/lodash.keysin/index.js
+++ b/lodash.keysin/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 3.0.5 (Custom Build)
+ * lodash 3.0.6 (Custom Build)
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -35,6 +35,7 @@ var support = {};
(function(x) {
var Ctor = function() { this.x = x; },
+ args = arguments,
object = { '0': x, 'length': x },
props = [];
@@ -54,7 +55,7 @@ var support = {};
* @type boolean
*/
try {
- support.nonEnumArgs = !propertyIsEnumerable.call(arguments, 1);
+ support.nonEnumArgs = !propertyIsEnumerable.call(args, 1);
} catch(e) {
support.nonEnumArgs = true;
}
diff --git a/lodash.keysin/package.json b/lodash.keysin/package.json
index 22b1feb15..492213ff4 100644
--- a/lodash.keysin/package.json
+++ b/lodash.keysin/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.keysin",
- "version": "3.0.5",
+ "version": "3.0.6",
"description": "The modern build of lodash’s `_.keysIn` as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",