diff --git a/README.md b/README.md
index fea705d18..31a57a567 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# lodash v4.5.0
+# lodash v4.5.1
The [lodash](https://lodash.com/) library exported as [npm packages](https://www.npmjs.com/browse/keyword/lodash-modularized) per method.
diff --git a/lodash._baseclone/README.md b/lodash._baseclone/README.md
index 68cb67aca..043b654f5 100644
--- a/lodash._baseclone/README.md
+++ b/lodash._baseclone/README.md
@@ -1,4 +1,4 @@
-# lodash._baseclone v4.5.0
+# lodash._baseclone v4.5.1
The internal [lodash](https://lodash.com/) function `baseClone` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var baseClone = require('lodash._baseclone');
```
-See the [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash._baseclone) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash._baseclone) for more details.
diff --git a/lodash._baseclone/index.js b/lodash._baseclone/index.js
index ebc5a9d9a..9fa1ee8d2 100644
--- a/lodash._baseclone/index.js
+++ b/lodash._baseclone/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 4.5.0 (Custom Build)
+ * lodash 4.5.1 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -701,8 +701,7 @@ function assocSet(array, key, value) {
*/
function assignValue(object, key, value) {
var objValue = object[key];
- if ((!eq(objValue, value) ||
- (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) ||
+ if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
(value === undefined && !(key in object))) {
object[key] = value;
}
@@ -1159,11 +1158,9 @@ function initCloneArray(array) {
* @returns {Object} Returns the initialized clone.
*/
function initCloneObject(object) {
- if (isPrototype(object)) {
- return {};
- }
- var Ctor = object.constructor;
- return baseCreate(isFunction(Ctor) ? Ctor.prototype : undefined);
+ return (isFunction(object.constructor) && !isPrototype(object))
+ ? baseCreate(getPrototypeOf(object))
+ : {};
}
/**
@@ -1250,7 +1247,7 @@ function isKeyable(value) {
*/
function isPrototype(value) {
var Ctor = value && value.constructor,
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
+ proto = (isFunction(Ctor) && Ctor.prototype) || objectProto;
return value === proto;
}
diff --git a/lodash._baseclone/package.json b/lodash._baseclone/package.json
index 1e9d711a8..c28f04558 100644
--- a/lodash._baseclone/package.json
+++ b/lodash._baseclone/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash._baseclone",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The internal lodash function `baseClone` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash._basedifference/LICENSE b/lodash._basedifference/LICENSE
deleted file mode 100644
index e0c69d560..000000000
--- a/lodash._basedifference/LICENSE
+++ /dev/null
@@ -1,47 +0,0 @@
-Copyright jQuery Foundation and other contributors
-
-Based on Underscore.js, copyright Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-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 following license applies to all parts of this software except as
-documented below:
-
-====
-
-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._basedifference/README.md b/lodash._basedifference/README.md
deleted file mode 100644
index 7426607e9..000000000
--- a/lodash._basedifference/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._basedifference v4.5.0
-
-The internal [lodash](https://lodash.com/) function `baseDifference` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._basedifference
-```
-
-In Node.js:
-```js
-var baseDifference = require('lodash._basedifference');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash._basedifference) for more details.
diff --git a/lodash._basedifference/index.js b/lodash._basedifference/index.js
deleted file mode 100644
index 39b916c9b..000000000
--- a/lodash._basedifference/index.js
+++ /dev/null
@@ -1,811 +0,0 @@
-/**
- * lodash (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright jQuery Foundation and other contributors
- * Released under MIT license
- * Based on Underscore.js 1.8.3
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
-var root = require('lodash._root');
-
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-/**
- * 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). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * A specialized version of `_.includes` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludes(array, value) {
- return !!array.length && baseIndexOf(array, value, 0) > -1;
-}
-
-/**
- * This function is like `arrayIncludes` except that it accepts a comparator.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @param {Function} comparator The comparator invoked per element.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludesWith(array, value, comparator) {
- var index = -1,
- length = array.length;
-
- while (++index < length) {
- if (comparator(value, array[index])) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * A specialized version of `_.map` for arrays without support for iteratee
- * shorthands.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function arrayMap(array, iteratee) {
- var index = -1,
- length = array.length,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iteratee(array[index], index, array);
- }
- return result;
-}
-
-/**
- * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @param {number} fromIndex The index to search from.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function baseIndexOf(array, value, fromIndex) {
- if (value !== value) {
- return indexOfNaN(array, fromIndex);
- }
- var index = fromIndex - 1,
- length = array.length;
-
- while (++index < length) {
- if (array[index] === value) {
- return index;
- }
- }
- return -1;
-}
-
-/**
- * The base implementation of `_.unary` without support for storing wrapper metadata.
- *
- * @private
- * @param {Function} func The function to cap arguments for.
- * @returns {Function} Returns the new capped function.
- */
-function baseUnary(func) {
- return function(value) {
- return func(value);
- };
-}
-
-/**
- * Checks if a cache value for `key` exists.
- *
- * @private
- * @param {Object} cache The cache to query.
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function cacheHas(cache, key) {
- return cache.has(key);
-}
-
-/**
- * Gets the index at which the first occurrence of `NaN` is found in `array`.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {number} fromIndex The index to search from.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {number} Returns the index of the matched `NaN`, else `-1`.
- */
-function indexOfNaN(array, fromIndex, fromRight) {
- var length = array.length,
- index = fromIndex + (fromRight ? 0 : -1);
-
- while ((fromRight ? index-- : ++index < length)) {
- var other = array[index];
- if (other !== other) {
- return index;
- }
- }
- return -1;
-}
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype,
- objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/** Built-in value references. */
-var splice = arrayProto.splice;
-
-/* Built-in method references that are verified to be native. */
-var Map = getNative(root, 'Map'),
- nativeCreate = getNative(Object, 'create');
-
-/**
- * Creates a hash object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function Hash(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the hash.
- *
- * @private
- * @name clear
- * @memberOf Hash
- */
-function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
-}
-
-/**
- * Removes `key` and its value from the hash.
- *
- * @private
- * @name delete
- * @memberOf Hash
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function hashDelete(key) {
- return this.has(key) && delete this.__data__[key];
-}
-
-/**
- * Gets the hash value for `key`.
- *
- * @private
- * @name get
- * @memberOf Hash
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? undefined : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : undefined;
-}
-
-/**
- * Checks if a hash value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Hash
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
-}
-
-/**
- * Sets the hash `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Hash
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the hash instance.
- */
-function hashSet(key, value) {
- var data = this.__data__;
- data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
- return this;
-}
-
-// Add methods to `Hash`.
-Hash.prototype.clear = hashClear;
-Hash.prototype['delete'] = hashDelete;
-Hash.prototype.get = hashGet;
-Hash.prototype.has = hashHas;
-Hash.prototype.set = hashSet;
-
-/**
- * Creates an list cache object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function ListCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the list cache.
- *
- * @private
- * @name clear
- * @memberOf ListCache
- */
-function listCacheClear() {
- this.__data__ = [];
-}
-
-/**
- * Removes `key` and its value from the list cache.
- *
- * @private
- * @name delete
- * @memberOf ListCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function listCacheDelete(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- return true;
-}
-
-/**
- * Gets the list cache value for `key`.
- *
- * @private
- * @name get
- * @memberOf ListCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function listCacheGet(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- return index < 0 ? undefined : data[index][1];
-}
-
-/**
- * Checks if a list cache value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf ListCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
-}
-
-/**
- * Sets the list cache `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf ListCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the list cache instance.
- */
-function listCacheSet(key, value) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
-}
-
-// Add methods to `ListCache`.
-ListCache.prototype.clear = listCacheClear;
-ListCache.prototype['delete'] = listCacheDelete;
-ListCache.prototype.get = listCacheGet;
-ListCache.prototype.has = listCacheHas;
-ListCache.prototype.set = listCacheSet;
-
-/**
- * Creates a map cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function MapCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the map.
- *
- * @private
- * @name clear
- * @memberOf MapCache
- */
-function mapCacheClear() {
- this.__data__ = {
- 'hash': new Hash,
- 'map': new (Map || ListCache),
- 'string': new Hash
- };
-}
-
-/**
- * Removes `key` and its value from the map.
- *
- * @private
- * @name delete
- * @memberOf MapCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function mapCacheDelete(key) {
- return getMapData(this, key)['delete'](key);
-}
-
-/**
- * Gets the map value for `key`.
- *
- * @private
- * @name get
- * @memberOf MapCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function mapCacheGet(key) {
- return getMapData(this, key).get(key);
-}
-
-/**
- * Checks if a map value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf MapCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function mapCacheHas(key) {
- return getMapData(this, key).has(key);
-}
-
-/**
- * Sets the map `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf MapCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the map cache instance.
- */
-function mapCacheSet(key, value) {
- getMapData(this, key).set(key, value);
- return this;
-}
-
-// Add methods to `MapCache`.
-MapCache.prototype.clear = mapCacheClear;
-MapCache.prototype['delete'] = mapCacheDelete;
-MapCache.prototype.get = mapCacheGet;
-MapCache.prototype.has = mapCacheHas;
-MapCache.prototype.set = mapCacheSet;
-
-/**
- *
- * Creates an array cache object to store unique values.
- *
- * @private
- * @constructor
- * @param {Array} [values] The values to cache.
- */
-function SetCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.__data__ = new MapCache;
- while (++index < length) {
- this.add(values[index]);
- }
-}
-
-/**
- * Adds `value` to the array cache.
- *
- * @private
- * @name add
- * @memberOf SetCache
- * @alias push
- * @param {*} value The value to cache.
- * @returns {Object} Returns the cache instance.
- */
-function setCacheAdd(value) {
- this.__data__.set(value, HASH_UNDEFINED);
- return this;
-}
-
-/**
- * Checks if `value` is in the array cache.
- *
- * @private
- * @name has
- * @memberOf SetCache
- * @param {*} value The value to search for.
- * @returns {number} Returns `true` if `value` is found, else `false`.
- */
-function setCacheHas(value) {
- return this.__data__.has(value);
-}
-
-// Add methods to `SetCache`.
-SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
-SetCache.prototype.has = setCacheHas;
-
-/**
- * Gets the index at which the `key` is found in `array` of key-value pairs.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
-}
-
-/**
- * The base implementation of methods like `_.difference` without support
- * for excluding multiple arrays or iteratee shorthands.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {Array} values The values to exclude.
- * @param {Function} [iteratee] The iteratee invoked per element.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new array of filtered values.
- */
-function baseDifference(array, values, iteratee, comparator) {
- var index = -1,
- includes = arrayIncludes,
- isCommon = true,
- length = array.length,
- result = [],
- valuesLength = values.length;
-
- if (!length) {
- return result;
- }
- if (iteratee) {
- values = arrayMap(values, baseUnary(iteratee));
- }
- if (comparator) {
- includes = arrayIncludesWith;
- isCommon = false;
- }
- else if (values.length >= LARGE_ARRAY_SIZE) {
- includes = cacheHas;
- isCommon = false;
- values = new SetCache(values);
- }
- outer:
- while (++index < length) {
- var value = array[index],
- computed = iteratee ? iteratee(value) : value;
-
- value = (comparator || value !== 0) ? value : 0;
- if (isCommon && computed === computed) {
- var valuesIndex = valuesLength;
- while (valuesIndex--) {
- if (values[valuesIndex] === computed) {
- continue outer;
- }
- }
- result.push(value);
- }
- else if (!includes(values, computed, comparator)) {
- result.push(value);
- }
- }
- return result;
-}
-
-/**
- * Gets the data for `map`.
- *
- * @private
- * @param {Object} map The map to query.
- * @param {string} key The reference key.
- * @returns {*} Returns the map data.
- */
-function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key)
- ? data[typeof key == 'string' ? 'string' : 'hash']
- : data.map;
-}
-
-/**
- * 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[key];
- return isNative(value) ? value : undefined;
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
- ? (value !== '__proto__')
- : (value === null);
-}
-
-/**
- * Converts `func` to its source code.
- *
- * @private
- * @param {Function} func The function to process.
- * @returns {string} Returns the source code.
- */
-function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {}
- try {
- return (func + '');
- } catch (e) {}
- }
- return '';
-}
-
-/**
- * Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @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`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // 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;
-}
-
-/**
- * Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @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`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @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`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (!isObject(value)) {
- return false;
- }
- var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
-}
-
-module.exports = baseDifference;
diff --git a/lodash._basedifference/package.json b/lodash._basedifference/package.json
deleted file mode 100644
index 0acc13df3..000000000
--- a/lodash._basedifference/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "lodash._basedifference",
- "version": "4.5.0",
- "description": "The internal lodash function `baseDifference` exported as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (https://github.com/phated)",
- "Mathias Bynens (https://mathiasbynens.be/)"
- ],
- "repository": "lodash/lodash",
- "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" },
- "dependencies": {
- "lodash._root": "~3.0.0"
- }
-}
diff --git a/lodash._baseintersection/LICENSE b/lodash._baseintersection/LICENSE
deleted file mode 100644
index e0c69d560..000000000
--- a/lodash._baseintersection/LICENSE
+++ /dev/null
@@ -1,47 +0,0 @@
-Copyright jQuery Foundation and other contributors
-
-Based on Underscore.js, copyright Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-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 following license applies to all parts of this software except as
-documented below:
-
-====
-
-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._baseintersection/README.md b/lodash._baseintersection/README.md
deleted file mode 100644
index da9fac953..000000000
--- a/lodash._baseintersection/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._baseintersection v4.5.0
-
-The internal [lodash](https://lodash.com/) function `baseIntersection` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._baseintersection
-```
-
-In Node.js:
-```js
-var baseIntersection = require('lodash._baseintersection');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash._baseintersection) for more details.
diff --git a/lodash._baseintersection/index.js b/lodash._baseintersection/index.js
deleted file mode 100644
index 7c6e7c06b..000000000
--- a/lodash._baseintersection/index.js
+++ /dev/null
@@ -1,818 +0,0 @@
-/**
- * lodash (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright jQuery Foundation and other contributors
- * Released under MIT license
- * Based on Underscore.js 1.8.3
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
-var root = require('lodash._root');
-
-/** Used to stand-in for `undefined` hash values. */
-var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]';
-
-/**
- * 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). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * A specialized version of `_.includes` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludes(array, value) {
- return !!array.length && baseIndexOf(array, value, 0) > -1;
-}
-
-/**
- * This function is like `arrayIncludes` except that it accepts a comparator.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} target The value to search for.
- * @param {Function} comparator The comparator invoked per element.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
-function arrayIncludesWith(array, value, comparator) {
- var index = -1,
- length = array.length;
-
- while (++index < length) {
- if (comparator(value, array[index])) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * A specialized version of `_.map` for arrays without support for iteratee
- * shorthands.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function arrayMap(array, iteratee) {
- var index = -1,
- length = array.length,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iteratee(array[index], index, array);
- }
- return result;
-}
-
-/**
- * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @param {number} fromIndex The index to search from.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function baseIndexOf(array, value, fromIndex) {
- if (value !== value) {
- return indexOfNaN(array, fromIndex);
- }
- var index = fromIndex - 1,
- length = array.length;
-
- while (++index < length) {
- if (array[index] === value) {
- return index;
- }
- }
- return -1;
-}
-
-/**
- * The base implementation of `_.unary` without support for storing wrapper metadata.
- *
- * @private
- * @param {Function} func The function to cap arguments for.
- * @returns {Function} Returns the new capped function.
- */
-function baseUnary(func) {
- return function(value) {
- return func(value);
- };
-}
-
-/**
- * Checks if a cache value for `key` exists.
- *
- * @private
- * @param {Object} cache The cache to query.
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function cacheHas(cache, key) {
- return cache.has(key);
-}
-
-/**
- * Gets the index at which the first occurrence of `NaN` is found in `array`.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {number} fromIndex The index to search from.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {number} Returns the index of the matched `NaN`, else `-1`.
- */
-function indexOfNaN(array, fromIndex, fromRight) {
- var length = array.length,
- index = fromIndex + (fromRight ? 0 : -1);
-
- while ((fromRight ? index-- : ++index < length)) {
- var other = array[index];
- if (other !== other) {
- return index;
- }
- }
- return -1;
-}
-
-/**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
-function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
-}
-
-/** Used for built-in method references. */
-var arrayProto = Array.prototype,
- objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var funcToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
-
-/** Built-in value references. */
-var splice = arrayProto.splice;
-
-/* Built-in method references for those with the same name as other `lodash` methods. */
-var nativeMin = Math.min;
-
-/* Built-in method references that are verified to be native. */
-var Map = getNative(root, 'Map'),
- nativeCreate = getNative(Object, 'create');
-
-/**
- * Creates a hash object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function Hash(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the hash.
- *
- * @private
- * @name clear
- * @memberOf Hash
- */
-function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
-}
-
-/**
- * Removes `key` and its value from the hash.
- *
- * @private
- * @name delete
- * @memberOf Hash
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function hashDelete(key) {
- return this.has(key) && delete this.__data__[key];
-}
-
-/**
- * Gets the hash value for `key`.
- *
- * @private
- * @name get
- * @memberOf Hash
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? undefined : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : undefined;
-}
-
-/**
- * Checks if a hash value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Hash
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
-}
-
-/**
- * Sets the hash `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Hash
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the hash instance.
- */
-function hashSet(key, value) {
- var data = this.__data__;
- data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
- return this;
-}
-
-// Add methods to `Hash`.
-Hash.prototype.clear = hashClear;
-Hash.prototype['delete'] = hashDelete;
-Hash.prototype.get = hashGet;
-Hash.prototype.has = hashHas;
-Hash.prototype.set = hashSet;
-
-/**
- * Creates an list cache object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function ListCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the list cache.
- *
- * @private
- * @name clear
- * @memberOf ListCache
- */
-function listCacheClear() {
- this.__data__ = [];
-}
-
-/**
- * Removes `key` and its value from the list cache.
- *
- * @private
- * @name delete
- * @memberOf ListCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function listCacheDelete(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- return true;
-}
-
-/**
- * Gets the list cache value for `key`.
- *
- * @private
- * @name get
- * @memberOf ListCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function listCacheGet(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- return index < 0 ? undefined : data[index][1];
-}
-
-/**
- * Checks if a list cache value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf ListCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
-}
-
-/**
- * Sets the list cache `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf ListCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the list cache instance.
- */
-function listCacheSet(key, value) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
-}
-
-// Add methods to `ListCache`.
-ListCache.prototype.clear = listCacheClear;
-ListCache.prototype['delete'] = listCacheDelete;
-ListCache.prototype.get = listCacheGet;
-ListCache.prototype.has = listCacheHas;
-ListCache.prototype.set = listCacheSet;
-
-/**
- * Creates a map cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
-function MapCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
-}
-
-/**
- * Removes all key-value entries from the map.
- *
- * @private
- * @name clear
- * @memberOf MapCache
- */
-function mapCacheClear() {
- this.__data__ = {
- 'hash': new Hash,
- 'map': new (Map || ListCache),
- 'string': new Hash
- };
-}
-
-/**
- * Removes `key` and its value from the map.
- *
- * @private
- * @name delete
- * @memberOf MapCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
-function mapCacheDelete(key) {
- return getMapData(this, key)['delete'](key);
-}
-
-/**
- * Gets the map value for `key`.
- *
- * @private
- * @name get
- * @memberOf MapCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
-function mapCacheGet(key) {
- return getMapData(this, key).get(key);
-}
-
-/**
- * Checks if a map value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf MapCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
-function mapCacheHas(key) {
- return getMapData(this, key).has(key);
-}
-
-/**
- * Sets the map `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf MapCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the map cache instance.
- */
-function mapCacheSet(key, value) {
- getMapData(this, key).set(key, value);
- return this;
-}
-
-// Add methods to `MapCache`.
-MapCache.prototype.clear = mapCacheClear;
-MapCache.prototype['delete'] = mapCacheDelete;
-MapCache.prototype.get = mapCacheGet;
-MapCache.prototype.has = mapCacheHas;
-MapCache.prototype.set = mapCacheSet;
-
-/**
- *
- * Creates an array cache object to store unique values.
- *
- * @private
- * @constructor
- * @param {Array} [values] The values to cache.
- */
-function SetCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.__data__ = new MapCache;
- while (++index < length) {
- this.add(values[index]);
- }
-}
-
-/**
- * Adds `value` to the array cache.
- *
- * @private
- * @name add
- * @memberOf SetCache
- * @alias push
- * @param {*} value The value to cache.
- * @returns {Object} Returns the cache instance.
- */
-function setCacheAdd(value) {
- this.__data__.set(value, HASH_UNDEFINED);
- return this;
-}
-
-/**
- * Checks if `value` is in the array cache.
- *
- * @private
- * @name has
- * @memberOf SetCache
- * @param {*} value The value to search for.
- * @returns {number} Returns `true` if `value` is found, else `false`.
- */
-function setCacheHas(value) {
- return this.__data__.has(value);
-}
-
-// Add methods to `SetCache`.
-SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
-SetCache.prototype.has = setCacheHas;
-
-/**
- * Gets the index at which the `key` is found in `array` of key-value pairs.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
-function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
-}
-
-/**
- * The base implementation of methods like `_.intersection`, without support
- * for iteratee shorthands, that accepts an array of arrays to inspect.
- *
- * @private
- * @param {Array} arrays The arrays to inspect.
- * @param {Function} [iteratee] The iteratee invoked per element.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new array of shared values.
- */
-function baseIntersection(arrays, iteratee, comparator) {
- var includes = comparator ? arrayIncludesWith : arrayIncludes,
- length = arrays[0].length,
- othLength = arrays.length,
- othIndex = othLength,
- caches = Array(othLength),
- maxLength = Infinity,
- result = [];
-
- while (othIndex--) {
- var array = arrays[othIndex];
- if (othIndex && iteratee) {
- array = arrayMap(array, baseUnary(iteratee));
- }
- maxLength = nativeMin(array.length, maxLength);
- caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
- ? new SetCache(othIndex && array)
- : undefined;
- }
- array = arrays[0];
-
- var index = -1,
- seen = caches[0];
-
- outer:
- while (++index < length && result.length < maxLength) {
- var value = array[index],
- computed = iteratee ? iteratee(value) : value;
-
- value = (comparator || value !== 0) ? value : 0;
- if (!(seen
- ? cacheHas(seen, computed)
- : includes(result, computed, comparator)
- )) {
- othIndex = othLength;
- while (--othIndex) {
- var cache = caches[othIndex];
- if (!(cache
- ? cacheHas(cache, computed)
- : includes(arrays[othIndex], computed, comparator))
- ) {
- continue outer;
- }
- }
- if (seen) {
- seen.push(computed);
- }
- result.push(value);
- }
- }
- return result;
-}
-
-/**
- * Gets the data for `map`.
- *
- * @private
- * @param {Object} map The map to query.
- * @param {string} key The reference key.
- * @returns {*} Returns the map data.
- */
-function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key)
- ? data[typeof key == 'string' ? 'string' : 'hash']
- : data.map;
-}
-
-/**
- * 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[key];
- return isNative(value) ? value : undefined;
-}
-
-/**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
-function isKeyable(value) {
- var type = typeof value;
- return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
- ? (value !== '__proto__')
- : (value === null);
-}
-
-/**
- * Converts `func` to its source code.
- *
- * @private
- * @param {Function} func The function to process.
- * @returns {string} Returns the source code.
- */
-function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {}
- try {
- return (func + '');
- } catch (e) {}
- }
- return '';
-}
-
-/**
- * Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
-function eq(value, other) {
- return value === other || (value !== value && other !== other);
-}
-
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @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`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // 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;
-}
-
-/**
- * Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @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`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
-function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @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`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (!isObject(value)) {
- return false;
- }
- var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
-}
-
-module.exports = baseIntersection;
diff --git a/lodash._baseintersection/package.json b/lodash._baseintersection/package.json
deleted file mode 100644
index 94014c445..000000000
--- a/lodash._baseintersection/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "lodash._baseintersection",
- "version": "4.5.0",
- "description": "The internal lodash function `baseIntersection` exported as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (https://github.com/phated)",
- "Mathias Bynens (https://mathiasbynens.be/)"
- ],
- "repository": "lodash/lodash",
- "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" },
- "dependencies": {
- "lodash._root": "~3.0.0"
- }
-}
diff --git a/lodash._baseiteratee/README.md b/lodash._baseiteratee/README.md
index cd9d32fc6..28add9b99 100644
--- a/lodash._baseiteratee/README.md
+++ b/lodash._baseiteratee/README.md
@@ -1,4 +1,4 @@
-# lodash._baseiteratee v4.5.0
+# lodash._baseiteratee v4.5.1
The internal [lodash](https://lodash.com/) function `baseIteratee` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var baseIteratee = require('lodash._baseiteratee');
```
-See the [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash._baseiteratee) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash._baseiteratee) for more details.
diff --git a/lodash._baseiteratee/index.js b/lodash._baseiteratee/index.js
index ebf2bb479..66a0fba89 100644
--- a/lodash._baseiteratee/index.js
+++ b/lodash._baseiteratee/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 4.5.0 (Custom Build)
+ * lodash 4.5.1 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
@@ -1365,7 +1365,7 @@ function isKeyable(value) {
*/
function isPrototype(value) {
var Ctor = value && value.constructor,
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
+ proto = (isFunction(Ctor) && Ctor.prototype) || objectProto;
return value === proto;
}
diff --git a/lodash._baseiteratee/package.json b/lodash._baseiteratee/package.json
index f758f2194..2fb71034f 100644
--- a/lodash._baseiteratee/package.json
+++ b/lodash._baseiteratee/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash._baseiteratee",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The internal lodash function `baseIteratee` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash._baseuniq/README.md b/lodash._baseuniq/README.md
index 5e73270f9..1d02b801f 100644
--- a/lodash._baseuniq/README.md
+++ b/lodash._baseuniq/README.md
@@ -1,4 +1,4 @@
-# lodash._baseuniq v4.5.0
+# lodash._baseuniq v4.5.1
The internal [lodash](https://lodash.com/) function `baseUniq` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var baseUniq = require('lodash._baseuniq');
```
-See the [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash._baseuniq) for more details.
+See the [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash._baseuniq) for more details.
diff --git a/lodash._baseuniq/index.js b/lodash._baseuniq/index.js
index ffd88f536..ffdc06f7b 100644
--- a/lodash._baseuniq/index.js
+++ b/lodash._baseuniq/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 4.5.0 (Custom Build)
+ * lodash 4.5.1 (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright 2012-2016 The Dojo Foundation
* Based on Underscore.js 1.8.3
diff --git a/lodash._baseuniq/package.json b/lodash._baseuniq/package.json
index 6b099e4aa..b769cfbed 100644
--- a/lodash._baseuniq/package.json
+++ b/lodash._baseuniq/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash._baseuniq",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The internal lodash function `baseUniq` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -8,13 +8,13 @@
"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",
"scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" },
"dependencies": {
- "lodash._createset": "^4.0.0",
- "lodash._setcache": "^4.0.0"
+ "lodash._createset": "~4.0.0",
+ "lodash._setcache": "~4.1.0"
}
}
diff --git a/lodash._basexor/LICENSE b/lodash._basexor/LICENSE
deleted file mode 100644
index e0c69d560..000000000
--- a/lodash._basexor/LICENSE
+++ /dev/null
@@ -1,47 +0,0 @@
-Copyright jQuery Foundation and other contributors
-
-Based on Underscore.js, copyright Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-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 following license applies to all parts of this software except as
-documented below:
-
-====
-
-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._basexor/README.md b/lodash._basexor/README.md
deleted file mode 100644
index 9c521b54d..000000000
--- a/lodash._basexor/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# lodash._basexor v4.5.0
-
-The internal [lodash](https://lodash.com/) function `baseXor` exported as a [Node.js](https://nodejs.org/) module.
-
-## Installation
-
-Using npm:
-```bash
-$ {sudo -H} npm i -g npm
-$ npm i --save lodash._basexor
-```
-
-In Node.js:
-```js
-var baseXor = require('lodash._basexor');
-```
-
-See the [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash._basexor) for more details.
diff --git a/lodash._basexor/index.js b/lodash._basexor/index.js
deleted file mode 100644
index 656392550..000000000
--- a/lodash._basexor/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * lodash (Custom Build)
- * Build: `lodash modularize exports="npm" -o ./`
- * Copyright jQuery Foundation and other contributors
- * Released under MIT license
- * Based on Underscore.js 1.8.3
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
-var baseDifference = require('lodash._basedifference'),
- baseUniq = require('lodash._baseuniq');
-
-/**
- * Appends the elements of `values` to `array`.
- *
- * @private
- * @param {Array} array The array to modify.
- * @param {Array} values The values to append.
- * @returns {Array} Returns `array`.
- */
-function arrayPush(array, values) {
- var index = -1,
- length = values.length,
- offset = array.length;
-
- while (++index < length) {
- array[offset + index] = values[index];
- }
- return array;
-}
-
-/**
- * The base implementation of methods like `_.xor`, without support for
- * iteratee shorthands, that accepts an array of arrays to inspect.
- *
- * @private
- * @param {Array} arrays The arrays to inspect.
- * @param {Function} [iteratee] The iteratee invoked per element.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new array of values.
- */
-function baseXor(arrays, iteratee, comparator) {
- var index = -1,
- length = arrays.length;
-
- while (++index < length) {
- var result = result
- ? arrayPush(
- baseDifference(result, arrays[index], iteratee, comparator),
- baseDifference(arrays[index], result, iteratee, comparator)
- )
- : arrays[index];
- }
- return (result && result.length) ? baseUniq(result, iteratee, comparator) : [];
-}
-
-module.exports = baseXor;
diff --git a/lodash._basexor/package.json b/lodash._basexor/package.json
deleted file mode 100644
index c4b03b8d2..000000000
--- a/lodash._basexor/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "lodash._basexor",
- "version": "4.5.0",
- "description": "The internal lodash function `baseXor` exported as a module.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (https://github.com/phated)",
- "Mathias Bynens (https://mathiasbynens.be/)"
- ],
- "repository": "lodash/lodash",
- "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" },
- "dependencies": {
- "lodash._basedifference": "~4.5.0",
- "lodash._baseuniq": "~4.6.0"
- }
-}
diff --git a/lodash.at/README.md b/lodash.at/README.md
index dea4c1a99..bcf070cdd 100644
--- a/lodash.at/README.md
+++ b/lodash.at/README.md
@@ -1,4 +1,4 @@
-# lodash.at v4.5.0
+# lodash.at v4.5.1
The [lodash](https://lodash.com/) method `_.at` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var at = require('lodash.at');
```
-See the [documentation](https://lodash.com/docs#at) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.at) for more details.
+See the [documentation](https://lodash.com/docs#at) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.at) for more details.
diff --git a/lodash.at/index.js b/lodash.at/index.js
index 550f2c639..e4c0aaf1c 100644
--- a/lodash.at/index.js
+++ b/lodash.at/index.js
@@ -26,7 +26,8 @@ var argsTag = '[object Arguments]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -703,7 +704,7 @@ function getNative(object, key) {
*/
function isFlattenable(value) {
return isArray(value) || isArguments(value) ||
- !!(spreadableSymbol && value && value[spreadableSymbol])
+ !!(spreadableSymbol && value && value[spreadableSymbol]);
}
/**
@@ -760,8 +761,13 @@ function isMasked(func) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.at/package.json b/lodash.at/package.json
index 56ce7e93b..c34fe3523 100644
--- a/lodash.at/package.json
+++ b/lodash.at/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.at",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.at` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.cond/README.md b/lodash.cond/README.md
index 6d0de0dfb..aa1aa00a3 100644
--- a/lodash.cond/README.md
+++ b/lodash.cond/README.md
@@ -1,4 +1,4 @@
-# lodash.cond v4.5.0
+# lodash.cond v4.5.1
The [lodash](https://lodash.com/) method `_.cond` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var cond = require('lodash.cond');
```
-See the [documentation](https://lodash.com/docs#cond) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.cond) for more details.
+See the [documentation](https://lodash.com/docs#cond) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.cond) for more details.
diff --git a/lodash.cond/index.js b/lodash.cond/index.js
index 6bea8bedb..5d4b860de 100644
--- a/lodash.cond/index.js
+++ b/lodash.cond/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1274,6 +1275,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1434,6 +1436,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1703,8 +1706,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.cond/package.json b/lodash.cond/package.json
index 56ead3881..0b4cb4bff 100644
--- a/lodash.cond/package.json
+++ b/lodash.cond/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.cond",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.cond` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.countby/README.md b/lodash.countby/README.md
index c6ec5e9bd..d51fc3f64 100644
--- a/lodash.countby/README.md
+++ b/lodash.countby/README.md
@@ -1,4 +1,4 @@
-# lodash.countby v4.5.0
+# lodash.countby v4.5.1
The [lodash](https://lodash.com/) method `_.countBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var countBy = require('lodash.countby');
```
-See the [documentation](https://lodash.com/docs#countBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.countby) for more details.
+See the [documentation](https://lodash.com/docs#countBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.countby) for more details.
diff --git a/lodash.countby/index.js b/lodash.countby/index.js
index 645e0f7f0..24ac1463b 100644
--- a/lodash.countby/index.js
+++ b/lodash.countby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1348,6 +1349,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1508,6 +1510,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1777,8 +1780,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.countby/package.json b/lodash.countby/package.json
index d8d7e3194..f8813f06d 100644
--- a/lodash.countby/package.json
+++ b/lodash.countby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.countby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.countBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.defaultsdeep/README.md b/lodash.defaultsdeep/README.md
index 6de1a285c..1eb4410f5 100644
--- a/lodash.defaultsdeep/README.md
+++ b/lodash.defaultsdeep/README.md
@@ -1,4 +1,4 @@
-# lodash.defaultsdeep v4.5.0
+# lodash.defaultsdeep v4.5.1
The [lodash](https://lodash.com/) method `_.defaultsDeep` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var defaultsDeep = require('lodash.defaultsdeep');
```
-See the [documentation](https://lodash.com/docs#defaultsDeep) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.defaultsdeep) for more details.
+See the [documentation](https://lodash.com/docs#defaultsDeep) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.defaultsdeep) for more details.
diff --git a/lodash.defaultsdeep/index.js b/lodash.defaultsdeep/index.js
index c0ce430de..f49bb059c 100644
--- a/lodash.defaultsdeep/index.js
+++ b/lodash.defaultsdeep/index.js
@@ -103,10 +103,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -982,9 +982,6 @@ function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
// Recursively populate clone (susceptible to call stack limits).
assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
});
- if (!isFull) {
- stack['delete'](value);
- }
return result;
}
diff --git a/lodash.defaultsdeep/package.json b/lodash.defaultsdeep/package.json
index 0f91a6f60..3e3dbbf04 100644
--- a/lodash.defaultsdeep/package.json
+++ b/lodash.defaultsdeep/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.defaultsdeep",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.defaultsDeep` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.droprightwhile/README.md b/lodash.droprightwhile/README.md
index a4c5578d2..9e7f9f228 100644
--- a/lodash.droprightwhile/README.md
+++ b/lodash.droprightwhile/README.md
@@ -1,4 +1,4 @@
-# lodash.droprightwhile v4.5.0
+# lodash.droprightwhile v4.5.1
The [lodash](https://lodash.com/) method `_.dropRightWhile` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var dropRightWhile = require('lodash.droprightwhile');
```
-See the [documentation](https://lodash.com/docs#dropRightWhile) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.droprightwhile) for more details.
+See the [documentation](https://lodash.com/docs#dropRightWhile) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.droprightwhile) for more details.
diff --git a/lodash.droprightwhile/index.js b/lodash.droprightwhile/index.js
index 504fe5dc0..cc325e193 100644
--- a/lodash.droprightwhile/index.js
+++ b/lodash.droprightwhile/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1257,6 +1258,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1417,6 +1419,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1686,8 +1689,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.droprightwhile/package.json b/lodash.droprightwhile/package.json
index 3c84f2d0c..ce2c31ef9 100644
--- a/lodash.droprightwhile/package.json
+++ b/lodash.droprightwhile/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.droprightwhile",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.dropRightWhile` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.dropwhile/README.md b/lodash.dropwhile/README.md
index 701827047..27b45785f 100644
--- a/lodash.dropwhile/README.md
+++ b/lodash.dropwhile/README.md
@@ -1,4 +1,4 @@
-# lodash.dropwhile v4.5.0
+# lodash.dropwhile v4.5.1
The [lodash](https://lodash.com/) method `_.dropWhile` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var dropWhile = require('lodash.dropwhile');
```
-See the [documentation](https://lodash.com/docs#dropWhile) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.dropwhile) for more details.
+See the [documentation](https://lodash.com/docs#dropWhile) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.dropwhile) for more details.
diff --git a/lodash.dropwhile/index.js b/lodash.dropwhile/index.js
index 9bfe20c06..c1d6dd0bb 100644
--- a/lodash.dropwhile/index.js
+++ b/lodash.dropwhile/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1257,6 +1258,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1417,6 +1419,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1686,8 +1689,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.dropwhile/package.json b/lodash.dropwhile/package.json
index f990d7f5e..81402e2bb 100644
--- a/lodash.dropwhile/package.json
+++ b/lodash.dropwhile/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.dropwhile",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.dropWhile` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.every/README.md b/lodash.every/README.md
index 4be52430e..83aa80260 100644
--- a/lodash.every/README.md
+++ b/lodash.every/README.md
@@ -1,4 +1,4 @@
-# lodash.every v4.5.0
+# lodash.every v4.5.1
The [lodash](https://lodash.com/) method `_.every` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var every = require('lodash.every');
```
-See the [documentation](https://lodash.com/docs#every) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.every) for more details.
+See the [documentation](https://lodash.com/docs#every) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.every) for more details.
diff --git a/lodash.every/index.js b/lodash.every/index.js
index 2bedf4504..1830793d6 100644
--- a/lodash.every/index.js
+++ b/lodash.every/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1332,6 +1333,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1492,6 +1494,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1785,8 +1788,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.every/package.json b/lodash.every/package.json
index 670618c0f..dc7c5bdeb 100644
--- a/lodash.every/package.json
+++ b/lodash.every/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.every",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.every` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.filter/README.md b/lodash.filter/README.md
index 0ba7d836b..94ff5d3cf 100644
--- a/lodash.filter/README.md
+++ b/lodash.filter/README.md
@@ -1,4 +1,4 @@
-# lodash.filter v4.5.0
+# lodash.filter v4.5.1
The [lodash](https://lodash.com/) method `_.filter` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var filter = require('lodash.filter');
```
-See the [documentation](https://lodash.com/docs#filter) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.filter) for more details.
+See the [documentation](https://lodash.com/docs#filter) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.filter) for more details.
diff --git a/lodash.filter/index.js b/lodash.filter/index.js
index 59fa7f8ac..e8beff900 100644
--- a/lodash.filter/index.js
+++ b/lodash.filter/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1334,6 +1335,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1494,6 +1496,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1763,8 +1766,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.filter/package.json b/lodash.filter/package.json
index fc646ae52..1d92d3c5c 100644
--- a/lodash.filter/package.json
+++ b/lodash.filter/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.filter",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.filter` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.find/README.md b/lodash.find/README.md
index d7f927309..b50688d22 100644
--- a/lodash.find/README.md
+++ b/lodash.find/README.md
@@ -1,4 +1,4 @@
-# lodash.find v4.5.0
+# lodash.find v4.5.1
The [lodash](https://lodash.com/) method `_.find` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var find = require('lodash.find');
```
-See the [documentation](https://lodash.com/docs#find) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.find) for more details.
+See the [documentation](https://lodash.com/docs#find) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.find) for more details.
diff --git a/lodash.find/index.js b/lodash.find/index.js
index c75edf4ea..d4874ccc5 100644
--- a/lodash.find/index.js
+++ b/lodash.find/index.js
@@ -59,7 +59,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -117,10 +118,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1265,6 +1266,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1425,6 +1427,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1694,8 +1697,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.find/package.json b/lodash.find/package.json
index 27df3a949..94f6f2049 100644
--- a/lodash.find/package.json
+++ b/lodash.find/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.find",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.find` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.findindex/README.md b/lodash.findindex/README.md
index 0b741df11..401f9b135 100644
--- a/lodash.findindex/README.md
+++ b/lodash.findindex/README.md
@@ -1,4 +1,4 @@
-# lodash.findindex v4.5.0
+# lodash.findindex v4.5.1
The [lodash](https://lodash.com/) method `_.findIndex` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var findIndex = require('lodash.findindex');
```
-See the [documentation](https://lodash.com/docs#findIndex) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.findindex) for more details.
+See the [documentation](https://lodash.com/docs#findIndex) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.findindex) for more details.
diff --git a/lodash.findindex/index.js b/lodash.findindex/index.js
index 1a4130f13..5574bf35d 100644
--- a/lodash.findindex/index.js
+++ b/lodash.findindex/index.js
@@ -59,7 +59,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -117,10 +118,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1245,6 +1246,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1405,6 +1407,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1674,8 +1677,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.findindex/package.json b/lodash.findindex/package.json
index 1f5649da5..52ad00e83 100644
--- a/lodash.findindex/package.json
+++ b/lodash.findindex/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.findindex",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.findIndex` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.findkey/README.md b/lodash.findkey/README.md
index 4b64a7596..be2a73ec4 100644
--- a/lodash.findkey/README.md
+++ b/lodash.findkey/README.md
@@ -1,4 +1,4 @@
-# lodash.findkey v4.5.0
+# lodash.findkey v4.5.1
The [lodash](https://lodash.com/) method `_.findKey` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var findKey = require('lodash.findkey');
```
-See the [documentation](https://lodash.com/docs#findKey) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.findkey) for more details.
+See the [documentation](https://lodash.com/docs#findKey) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.findkey) for more details.
diff --git a/lodash.findkey/index.js b/lodash.findkey/index.js
index 2280279ea..b80860412 100644
--- a/lodash.findkey/index.js
+++ b/lodash.findkey/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1275,6 +1276,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1435,6 +1437,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1704,8 +1707,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.findkey/package.json b/lodash.findkey/package.json
index 7be676aa7..d034ec235 100644
--- a/lodash.findkey/package.json
+++ b/lodash.findkey/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.findkey",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.findKey` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.findlast/README.md b/lodash.findlast/README.md
index 929b02c44..71c83baf7 100644
--- a/lodash.findlast/README.md
+++ b/lodash.findlast/README.md
@@ -1,4 +1,4 @@
-# lodash.findlast v4.5.0
+# lodash.findlast v4.5.1
The [lodash](https://lodash.com/) method `_.findLast` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var findLast = require('lodash.findlast');
```
-See the [documentation](https://lodash.com/docs#findLast) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.findlast) for more details.
+See the [documentation](https://lodash.com/docs#findLast) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.findlast) for more details.
diff --git a/lodash.findlast/index.js b/lodash.findlast/index.js
index 148b2af32..02e21c110 100644
--- a/lodash.findlast/index.js
+++ b/lodash.findlast/index.js
@@ -59,7 +59,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -117,10 +118,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1266,6 +1267,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1426,6 +1428,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1695,8 +1698,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.findlast/package.json b/lodash.findlast/package.json
index 1ec1f4686..caf4f5a92 100644
--- a/lodash.findlast/package.json
+++ b/lodash.findlast/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.findlast",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.findLast` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.findlastindex/README.md b/lodash.findlastindex/README.md
index 35516226c..1e4b9ef72 100644
--- a/lodash.findlastindex/README.md
+++ b/lodash.findlastindex/README.md
@@ -1,4 +1,4 @@
-# lodash.findlastindex v4.5.0
+# lodash.findlastindex v4.5.1
The [lodash](https://lodash.com/) method `_.findLastIndex` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var findLastIndex = require('lodash.findlastindex');
```
-See the [documentation](https://lodash.com/docs#findLastIndex) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.findlastindex) for more details.
+See the [documentation](https://lodash.com/docs#findLastIndex) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.findlastindex) for more details.
diff --git a/lodash.findlastindex/index.js b/lodash.findlastindex/index.js
index 946b8ec44..b05ea4cfa 100644
--- a/lodash.findlastindex/index.js
+++ b/lodash.findlastindex/index.js
@@ -59,7 +59,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -117,10 +118,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1246,6 +1247,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1406,6 +1408,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1675,8 +1678,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.findlastindex/package.json b/lodash.findlastindex/package.json
index de1c45eb1..b1a826795 100644
--- a/lodash.findlastindex/package.json
+++ b/lodash.findlastindex/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.findlastindex",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.findLastIndex` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.flattendepth/README.md b/lodash.flattendepth/README.md
index 53283210c..32287c83c 100644
--- a/lodash.flattendepth/README.md
+++ b/lodash.flattendepth/README.md
@@ -1,4 +1,4 @@
-# lodash.flattendepth v4.5.0
+# lodash.flattendepth v4.5.1
The [lodash](https://lodash.com/) method `_.flattenDepth` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var flattenDepth = require('lodash.flattendepth');
```
-See the [documentation](https://lodash.com/docs#flattenDepth) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.flattendepth) for more details.
+See the [documentation](https://lodash.com/docs#flattenDepth) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.flattendepth) for more details.
diff --git a/lodash.flattendepth/index.js b/lodash.flattendepth/index.js
index 94d3afe77..127b8b6ec 100644
--- a/lodash.flattendepth/index.js
+++ b/lodash.flattendepth/index.js
@@ -1,5 +1,5 @@
/**
- * lodash 4.5.0 (Custom Build)
+ * lodash (Custom Build)
* Build: `lodash modularize exports="npm" -o ./`
* Copyright jQuery Foundation and other contributors
* Released under MIT license
@@ -179,6 +179,41 @@ function isSymbol(value) {
(isObjectLike(value) && objectToString.call(value) == symbolTag);
}
+/**
+ * Converts `value` to a finite number.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.12.0
+ * @category Lang
+ * @param {*} value The value to convert.
+ * @returns {number} Returns the converted number.
+ * @example
+ *
+ * _.toFinite(3.2);
+ * // => 3.2
+ *
+ * _.toFinite(Number.MIN_VALUE);
+ * // => 5e-324
+ *
+ * _.toFinite(Infinity);
+ * // => 1.7976931348623157e+308
+ *
+ * _.toFinite('3.2');
+ * // => 3.2
+ */
+function toFinite(value) {
+ if (!value) {
+ return value === 0 ? value : 0;
+ }
+ value = toNumber(value);
+ if (value === INFINITY || value === -INFINITY) {
+ var sign = (value < 0 ? -1 : 1);
+ return sign * MAX_INTEGER;
+ }
+ return value === value ? value : 0;
+}
+
/**
* Converts `value` to an integer.
*
@@ -193,7 +228,7 @@ function isSymbol(value) {
* @returns {number} Returns the converted integer.
* @example
*
- * _.toInteger(3);
+ * _.toInteger(3.2);
* // => 3
*
* _.toInteger(Number.MIN_VALUE);
@@ -202,20 +237,14 @@ function isSymbol(value) {
* _.toInteger(Infinity);
* // => 1.7976931348623157e+308
*
- * _.toInteger('3');
+ * _.toInteger('3.2');
* // => 3
*/
function toInteger(value) {
- if (!value) {
- return value === 0 ? value : 0;
- }
- value = toNumber(value);
- if (value === INFINITY || value === -INFINITY) {
- var sign = (value < 0 ? -1 : 1);
- return sign * MAX_INTEGER;
- }
- var remainder = value % 1;
- return value === value ? (remainder ? value - remainder : value) : 0;
+ var result = toFinite(value),
+ remainder = result % 1;
+
+ return result === result ? (remainder ? result - remainder : result) : 0;
}
/**
@@ -229,8 +258,8 @@ function toInteger(value) {
* @returns {number} Returns the number.
* @example
*
- * _.toNumber(3);
- * // => 3
+ * _.toNumber(3.2);
+ * // => 3.2
*
* _.toNumber(Number.MIN_VALUE);
* // => 5e-324
@@ -238,8 +267,8 @@ function toInteger(value) {
* _.toNumber(Infinity);
* // => Infinity
*
- * _.toNumber('3');
- * // => 3
+ * _.toNumber('3.2');
+ * // => 3.2
*/
function toNumber(value) {
if (typeof value == 'number') {
diff --git a/lodash.flattendepth/package.json b/lodash.flattendepth/package.json
index a2106d46e..bcfc69052 100644
--- a/lodash.flattendepth/package.json
+++ b/lodash.flattendepth/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.flattendepth",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.flattenDepth` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.groupby/README.md b/lodash.groupby/README.md
index b6c085c8c..ce5fd51fa 100644
--- a/lodash.groupby/README.md
+++ b/lodash.groupby/README.md
@@ -1,4 +1,4 @@
-# lodash.groupby v4.5.0
+# lodash.groupby v4.5.1
The [lodash](https://lodash.com/) method `_.groupBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var groupBy = require('lodash.groupby');
```
-See the [documentation](https://lodash.com/docs#groupBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.groupby) for more details.
+See the [documentation](https://lodash.com/docs#groupBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.groupby) for more details.
diff --git a/lodash.groupby/index.js b/lodash.groupby/index.js
index f495da321..738c58bd8 100644
--- a/lodash.groupby/index.js
+++ b/lodash.groupby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1348,6 +1349,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1508,6 +1510,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1777,8 +1780,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.groupby/package.json b/lodash.groupby/package.json
index 48b48bec7..30c650301 100644
--- a/lodash.groupby/package.json
+++ b/lodash.groupby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.groupby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.groupBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.has/README.md b/lodash.has/README.md
index 8327692c0..3534c168e 100644
--- a/lodash.has/README.md
+++ b/lodash.has/README.md
@@ -1,4 +1,4 @@
-# lodash.has v4.5.0
+# lodash.has v4.5.1
The [lodash](https://lodash.com/) method `_.has` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var has = require('lodash.has');
```
-See the [documentation](https://lodash.com/docs#has) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.has) for more details.
+See the [documentation](https://lodash.com/docs#has) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.has) for more details.
diff --git a/lodash.has/index.js b/lodash.has/index.js
index 0cd47976b..88f981b35 100644
--- a/lodash.has/index.js
+++ b/lodash.has/index.js
@@ -27,7 +27,8 @@ var argsTag = '[object Arguments]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -695,8 +696,13 @@ function isMasked(func) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.has/package.json b/lodash.has/package.json
index 43e41b044..c5933c60b 100644
--- a/lodash.has/package.json
+++ b/lodash.has/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.has",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.has` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.hasin/README.md b/lodash.hasin/README.md
index c1acba59e..903d488bd 100644
--- a/lodash.hasin/README.md
+++ b/lodash.hasin/README.md
@@ -1,4 +1,4 @@
-# lodash.hasin v4.5.0
+# lodash.hasin v4.5.1
The [lodash](https://lodash.com/) method `_.hasIn` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var hasIn = require('lodash.hasin');
```
-See the [documentation](https://lodash.com/docs#hasIn) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.hasin) for more details.
+See the [documentation](https://lodash.com/docs#hasIn) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.hasin) for more details.
diff --git a/lodash.hasin/index.js b/lodash.hasin/index.js
index 5a37a127c..e41f29604 100644
--- a/lodash.hasin/index.js
+++ b/lodash.hasin/index.js
@@ -27,7 +27,8 @@ var argsTag = '[object Arguments]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -664,8 +665,13 @@ function isMasked(func) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.hasin/package.json b/lodash.hasin/package.json
index 1b208b136..631504a00 100644
--- a/lodash.hasin/package.json
+++ b/lodash.hasin/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.hasin",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.hasIn` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.invoke/README.md b/lodash.invoke/README.md
index 2c46dff4a..9f399f5c8 100644
--- a/lodash.invoke/README.md
+++ b/lodash.invoke/README.md
@@ -1,4 +1,4 @@
-# lodash.invoke v4.5.0
+# lodash.invoke v4.5.1
The [lodash](https://lodash.com/) method `_.invoke` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var invoke = require('lodash.invoke');
```
-See the [documentation](https://lodash.com/docs#invoke) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.invoke) for more details.
+See the [documentation](https://lodash.com/docs#invoke) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.invoke) for more details.
diff --git a/lodash.invoke/index.js b/lodash.invoke/index.js
index 5a8a501c8..f0215bafc 100644
--- a/lodash.invoke/index.js
+++ b/lodash.invoke/index.js
@@ -24,7 +24,8 @@ var funcTag = '[object Function]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -707,8 +708,13 @@ function parent(object, path) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.invoke/package.json b/lodash.invoke/package.json
index 03fa5de23..aab37b772 100644
--- a/lodash.invoke/package.json
+++ b/lodash.invoke/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.invoke",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.invoke` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.invokemap/README.md b/lodash.invokemap/README.md
index 7dc2ee1ce..fca32baca 100644
--- a/lodash.invokemap/README.md
+++ b/lodash.invokemap/README.md
@@ -1,4 +1,4 @@
-# lodash.invokemap v4.5.0
+# lodash.invokemap v4.5.1
The [lodash](https://lodash.com/) method `_.invokeMap` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var invokeMap = require('lodash.invokemap');
```
-See the [documentation](https://lodash.com/docs#invokeMap) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.invokemap) for more details.
+See the [documentation](https://lodash.com/docs#invokeMap) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.invokemap) for more details.
diff --git a/lodash.invokemap/index.js b/lodash.invokemap/index.js
index 9fd47b333..e087c9602 100644
--- a/lodash.invokemap/index.js
+++ b/lodash.invokemap/index.js
@@ -27,7 +27,8 @@ var argsTag = '[object Arguments]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -945,8 +946,13 @@ function parent(object, path) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.invokemap/package.json b/lodash.invokemap/package.json
index 275146276..65fa42eaa 100644
--- a/lodash.invokemap/package.json
+++ b/lodash.invokemap/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.invokemap",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.invokeMap` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.keyby/README.md b/lodash.keyby/README.md
index cf5e7ecd3..fe1ffc9d0 100644
--- a/lodash.keyby/README.md
+++ b/lodash.keyby/README.md
@@ -1,4 +1,4 @@
-# lodash.keyby v4.5.0
+# lodash.keyby v4.5.1
The [lodash](https://lodash.com/) method `_.keyBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var keyBy = require('lodash.keyby');
```
-See the [documentation](https://lodash.com/docs#keyBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.keyby) for more details.
+See the [documentation](https://lodash.com/docs#keyBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.keyby) for more details.
diff --git a/lodash.keyby/index.js b/lodash.keyby/index.js
index eb26129a0..7b6d81b6b 100644
--- a/lodash.keyby/index.js
+++ b/lodash.keyby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1348,6 +1349,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1508,6 +1510,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1777,8 +1780,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.keyby/package.json b/lodash.keyby/package.json
index 46f80613c..10a782b2f 100644
--- a/lodash.keyby/package.json
+++ b/lodash.keyby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.keyby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.keyBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.map/README.md b/lodash.map/README.md
index 546865aa9..aeca28a7f 100644
--- a/lodash.map/README.md
+++ b/lodash.map/README.md
@@ -1,4 +1,4 @@
-# lodash.map v4.5.0
+# lodash.map v4.5.1
The [lodash](https://lodash.com/) method `_.map` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var map = require('lodash.map');
```
-See the [documentation](https://lodash.com/docs#map) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.map) for more details.
+See the [documentation](https://lodash.com/docs#map) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.map) for more details.
diff --git a/lodash.map/index.js b/lodash.map/index.js
index 70ad48504..5b5145c06 100644
--- a/lodash.map/index.js
+++ b/lodash.map/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1330,6 +1331,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1490,6 +1492,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1759,8 +1762,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.map/package.json b/lodash.map/package.json
index 182b31c8e..4c6be1dae 100644
--- a/lodash.map/package.json
+++ b/lodash.map/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.map",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.map` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.mapkeys/README.md b/lodash.mapkeys/README.md
index 3666b804c..1e55f2a3d 100644
--- a/lodash.mapkeys/README.md
+++ b/lodash.mapkeys/README.md
@@ -1,4 +1,4 @@
-# lodash.mapkeys v4.5.0
+# lodash.mapkeys v4.5.1
The [lodash](https://lodash.com/) method `_.mapKeys` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var mapKeys = require('lodash.mapkeys');
```
-See the [documentation](https://lodash.com/docs#mapKeys) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.mapkeys) for more details.
+See the [documentation](https://lodash.com/docs#mapKeys) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.mapkeys) for more details.
diff --git a/lodash.mapkeys/index.js b/lodash.mapkeys/index.js
index 8cc71dd8a..2d7cc79da 100644
--- a/lodash.mapkeys/index.js
+++ b/lodash.mapkeys/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1253,6 +1254,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1413,6 +1415,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1682,8 +1685,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.mapkeys/package.json b/lodash.mapkeys/package.json
index e605d8d2f..91e6f0474 100644
--- a/lodash.mapkeys/package.json
+++ b/lodash.mapkeys/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.mapkeys",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.mapKeys` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.mapvalues/README.md b/lodash.mapvalues/README.md
index b72767459..6cad50dfb 100644
--- a/lodash.mapvalues/README.md
+++ b/lodash.mapvalues/README.md
@@ -1,4 +1,4 @@
-# lodash.mapvalues v4.5.0
+# lodash.mapvalues v4.5.1
The [lodash](https://lodash.com/) method `_.mapValues` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var mapValues = require('lodash.mapvalues');
```
-See the [documentation](https://lodash.com/docs#mapValues) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.mapvalues) for more details.
+See the [documentation](https://lodash.com/docs#mapValues) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.mapvalues) for more details.
diff --git a/lodash.mapvalues/index.js b/lodash.mapvalues/index.js
index 8a2b2049e..fea3f454f 100644
--- a/lodash.mapvalues/index.js
+++ b/lodash.mapvalues/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1253,6 +1254,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1413,6 +1415,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1682,8 +1685,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.mapvalues/package.json b/lodash.mapvalues/package.json
index bf8082531..2b5622ae5 100644
--- a/lodash.mapvalues/package.json
+++ b/lodash.mapvalues/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.mapvalues",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.mapValues` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.matches/README.md b/lodash.matches/README.md
index 8dc58daed..fd202c878 100644
--- a/lodash.matches/README.md
+++ b/lodash.matches/README.md
@@ -1,4 +1,4 @@
-# lodash.matches v4.5.0
+# lodash.matches v4.5.1
The [lodash](https://lodash.com/) method `_.matches` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var matches = require('lodash.matches');
```
-See the [documentation](https://lodash.com/docs#matches) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.matches) for more details.
+See the [documentation](https://lodash.com/docs#matches) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.matches) for more details.
diff --git a/lodash.matches/index.js b/lodash.matches/index.js
index d3e67200b..413986f79 100644
--- a/lodash.matches/index.js
+++ b/lodash.matches/index.js
@@ -107,10 +107,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -999,9 +999,6 @@ function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
// Recursively populate clone (susceptible to call stack limits).
assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
});
- if (!isFull) {
- stack['delete'](value);
- }
return result;
}
@@ -1491,6 +1488,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1651,6 +1649,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -2349,10 +2348,10 @@ function keys(object) {
/**
* Creates a function that performs a partial deep comparison between a given
* object and `source`, returning `true` if the given object has equivalent
- * property values, else `false`. The created function is equivalent to
- * `_.isMatch` with a `source` partially applied.
+ * property values, else `false`.
*
- * **Note:** This method supports comparing the same values as `_.isEqual`.
+ * **Note:** The created function supports comparing the same values as
+ * `_.isEqual` is equivalent to `_.isMatch` with `source` partially applied.
*
* @static
* @memberOf _
diff --git a/lodash.matches/package.json b/lodash.matches/package.json
index 297fc50d3..a745fe761 100644
--- a/lodash.matches/package.json
+++ b/lodash.matches/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.matches",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.matches` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.maxby/README.md b/lodash.maxby/README.md
index c5678f303..c6851caa5 100644
--- a/lodash.maxby/README.md
+++ b/lodash.maxby/README.md
@@ -1,4 +1,4 @@
-# lodash.maxby v4.5.0
+# lodash.maxby v4.5.1
The [lodash](https://lodash.com/) method `_.maxBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var maxBy = require('lodash.maxby');
```
-See the [documentation](https://lodash.com/docs#maxBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.maxby) for more details.
+See the [documentation](https://lodash.com/docs#maxBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.maxby) for more details.
diff --git a/lodash.maxby/index.js b/lodash.maxby/index.js
index cf5eebcc0..a6b375fe6 100644
--- a/lodash.maxby/index.js
+++ b/lodash.maxby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1246,6 +1247,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1406,6 +1408,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1675,8 +1678,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.maxby/package.json b/lodash.maxby/package.json
index 7f27ffbca..48e6658d7 100644
--- a/lodash.maxby/package.json
+++ b/lodash.maxby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.maxby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.maxBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.merge/README.md b/lodash.merge/README.md
index ada29a081..80ab917d9 100644
--- a/lodash.merge/README.md
+++ b/lodash.merge/README.md
@@ -1,4 +1,4 @@
-# lodash.merge v4.5.0
+# lodash.merge v4.5.1
The [lodash](https://lodash.com/) method `_.merge` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var merge = require('lodash.merge');
```
-See the [documentation](https://lodash.com/docs#merge) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.merge) for more details.
+See the [documentation](https://lodash.com/docs#merge) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.merge) for more details.
diff --git a/lodash.merge/index.js b/lodash.merge/index.js
index e2e6f4554..ad1422b04 100644
--- a/lodash.merge/index.js
+++ b/lodash.merge/index.js
@@ -103,10 +103,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -982,9 +982,6 @@ function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
// Recursively populate clone (susceptible to call stack limits).
assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
});
- if (!isFull) {
- stack['delete'](value);
- }
return result;
}
diff --git a/lodash.merge/package.json b/lodash.merge/package.json
index 6c0d6eda5..7430983e6 100644
--- a/lodash.merge/package.json
+++ b/lodash.merge/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.merge",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.merge` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.mergewith/README.md b/lodash.mergewith/README.md
index f1fea3d3a..2ede7935a 100644
--- a/lodash.mergewith/README.md
+++ b/lodash.mergewith/README.md
@@ -1,4 +1,4 @@
-# lodash.mergewith v4.5.0
+# lodash.mergewith v4.5.1
The [lodash](https://lodash.com/) method `_.mergeWith` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var mergeWith = require('lodash.mergewith');
```
-See the [documentation](https://lodash.com/docs#mergeWith) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.mergewith) for more details.
+See the [documentation](https://lodash.com/docs#mergeWith) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.mergewith) for more details.
diff --git a/lodash.mergewith/index.js b/lodash.mergewith/index.js
index 8b33e0c01..82d9645c7 100644
--- a/lodash.mergewith/index.js
+++ b/lodash.mergewith/index.js
@@ -103,10 +103,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -982,9 +982,6 @@ function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
// Recursively populate clone (susceptible to call stack limits).
assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
});
- if (!isFull) {
- stack['delete'](value);
- }
return result;
}
diff --git a/lodash.mergewith/package.json b/lodash.mergewith/package.json
index 2014dffca..f975cd267 100644
--- a/lodash.mergewith/package.json
+++ b/lodash.mergewith/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.mergewith",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.mergeWith` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.method/README.md b/lodash.method/README.md
index 6fffabb33..d2f0359fa 100644
--- a/lodash.method/README.md
+++ b/lodash.method/README.md
@@ -1,4 +1,4 @@
-# lodash.method v4.5.0
+# lodash.method v4.5.1
The [lodash](https://lodash.com/) method `_.method` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var method = require('lodash.method');
```
-See the [documentation](https://lodash.com/docs#method) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.method) for more details.
+See the [documentation](https://lodash.com/docs#method) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.method) for more details.
diff --git a/lodash.method/index.js b/lodash.method/index.js
index c88d24b38..5adc8cadf 100644
--- a/lodash.method/index.js
+++ b/lodash.method/index.js
@@ -24,7 +24,8 @@ var funcTag = '[object Function]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -707,8 +708,13 @@ function parent(object, path) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.method/package.json b/lodash.method/package.json
index f40ef4a44..9cb9af3c1 100644
--- a/lodash.method/package.json
+++ b/lodash.method/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.method",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.method` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.methodof/README.md b/lodash.methodof/README.md
index 64ccc4d41..4b47e492b 100644
--- a/lodash.methodof/README.md
+++ b/lodash.methodof/README.md
@@ -1,4 +1,4 @@
-# lodash.methodof v4.5.0
+# lodash.methodof v4.5.1
The [lodash](https://lodash.com/) method `_.methodOf` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var methodOf = require('lodash.methodof');
```
-See the [documentation](https://lodash.com/docs#methodOf) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.methodof) for more details.
+See the [documentation](https://lodash.com/docs#methodOf) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.methodof) for more details.
diff --git a/lodash.methodof/index.js b/lodash.methodof/index.js
index 6b9343b0f..58288d6ce 100644
--- a/lodash.methodof/index.js
+++ b/lodash.methodof/index.js
@@ -24,7 +24,8 @@ var funcTag = '[object Function]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -707,8 +708,13 @@ function parent(object, path) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.methodof/package.json b/lodash.methodof/package.json
index a57e47ca4..891728c8c 100644
--- a/lodash.methodof/package.json
+++ b/lodash.methodof/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.methodof",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.methodOf` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.minby/README.md b/lodash.minby/README.md
index eec7ae529..be556f006 100644
--- a/lodash.minby/README.md
+++ b/lodash.minby/README.md
@@ -1,4 +1,4 @@
-# lodash.minby v4.5.0
+# lodash.minby v4.5.1
The [lodash](https://lodash.com/) method `_.minBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var minBy = require('lodash.minby');
```
-See the [documentation](https://lodash.com/docs#minBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.minby) for more details.
+See the [documentation](https://lodash.com/docs#minBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.minby) for more details.
diff --git a/lodash.minby/index.js b/lodash.minby/index.js
index a061e618e..1b60502b9 100644
--- a/lodash.minby/index.js
+++ b/lodash.minby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1246,6 +1247,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1406,6 +1408,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1675,8 +1678,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.minby/package.json b/lodash.minby/package.json
index b8b8fea9c..a368f8efa 100644
--- a/lodash.minby/package.json
+++ b/lodash.minby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.minby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.minBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.omitby/README.md b/lodash.omitby/README.md
index f089c91e9..7fdf1d210 100644
--- a/lodash.omitby/README.md
+++ b/lodash.omitby/README.md
@@ -1,4 +1,4 @@
-# lodash.omitby v4.5.0
+# lodash.omitby v4.5.1
The [lodash](https://lodash.com/) method `_.omitBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var omitBy = require('lodash.omitby');
```
-See the [documentation](https://lodash.com/docs#omitBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.omitby) for more details.
+See the [documentation](https://lodash.com/docs#omitBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.omitby) for more details.
diff --git a/lodash.omitby/index.js b/lodash.omitby/index.js
index b672dfeb5..037399628 100644
--- a/lodash.omitby/index.js
+++ b/lodash.omitby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1309,6 +1310,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1469,6 +1471,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1571,7 +1574,7 @@ var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArra
* @param {Object} object The object to query.
* @returns {Array} Returns the array of symbols.
*/
-var getSymbolsIn = !nativeGetSymbols ? getSymbols : function(object) {
+var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
var result = [];
while (object) {
arrayPush(result, getSymbols(object));
@@ -1776,8 +1779,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.omitby/package.json b/lodash.omitby/package.json
index f867bf9c8..63d669c54 100644
--- a/lodash.omitby/package.json
+++ b/lodash.omitby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.omitby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.omitBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.orderby/README.md b/lodash.orderby/README.md
index 7ff2ce239..7b524efa9 100644
--- a/lodash.orderby/README.md
+++ b/lodash.orderby/README.md
@@ -1,4 +1,4 @@
-# lodash.orderby v4.5.0
+# lodash.orderby v4.5.1
The [lodash](https://lodash.com/) method `_.orderBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var orderBy = require('lodash.orderby');
```
-See the [documentation](https://lodash.com/docs#orderBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.orderby) for more details.
+See the [documentation](https://lodash.com/docs#orderBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.orderby) for more details.
diff --git a/lodash.orderby/index.js b/lodash.orderby/index.js
index d0bd2504b..9f1f25310 100644
--- a/lodash.orderby/index.js
+++ b/lodash.orderby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1454,6 +1455,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1614,6 +1616,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1883,8 +1886,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.orderby/package.json b/lodash.orderby/package.json
index 87499f50a..35e88049a 100644
--- a/lodash.orderby/package.json
+++ b/lodash.orderby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.orderby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.orderBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.pad/README.md b/lodash.pad/README.md
index 3a00ac23a..d748d1017 100644
--- a/lodash.pad/README.md
+++ b/lodash.pad/README.md
@@ -1,4 +1,4 @@
-# lodash.pad v4.5.0
+# lodash.pad v4.5.1
The [lodash](https://lodash.com/) method `_.pad` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var pad = require('lodash.pad');
```
-See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.pad) for more details.
+See the [documentation](https://lodash.com/docs#pad) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.pad) for more details.
diff --git a/lodash.pad/index.js b/lodash.pad/index.js
index e05a59eec..2ceec9c37 100644
--- a/lodash.pad/index.js
+++ b/lodash.pad/index.js
@@ -14,9 +14,7 @@ var INFINITY = 1 / 0,
NAN = 0 / 0;
/** `Object#toString` result references. */
-var funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- symbolTag = '[object Symbol]';
+var symbolTag = '[object Symbol]';
/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;
@@ -54,10 +52,10 @@ var reOptMod = rsModifier + '?',
rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
-var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
-var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
+var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;
@@ -71,6 +69,50 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();
+/**
+ * Gets the size of an ASCII `string`.
+ *
+ * @private
+ * @param {string} string The string inspect.
+ * @returns {number} Returns the string size.
+ */
+var asciiSize = baseProperty('length');
+
+/**
+ * Converts an ASCII `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function asciiToArray(string) {
+ return string.split('');
+}
+
+/**
+ * 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 accessor function.
+ */
+function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+}
+
+/**
+ * Checks if `string` contains Unicode symbols.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
+ */
+function hasUnicode(string) {
+ return reHasUnicode.test(string);
+}
+
/**
* Gets the number of symbols in `string`.
*
@@ -79,14 +121,9 @@ var root = freeGlobal || freeSelf || Function('return this')();
* @returns {number} Returns the string size.
*/
function stringSize(string) {
- if (!(string && reHasComplexSymbol.test(string))) {
- return string.length;
- }
- var result = reComplexSymbol.lastIndex = 0;
- while (reComplexSymbol.test(string)) {
- result++;
- }
- return result;
+ return hasUnicode(string)
+ ? unicodeSize(string)
+ : asciiSize(string);
}
/**
@@ -97,7 +134,35 @@ function stringSize(string) {
* @returns {Array} Returns the converted array.
*/
function stringToArray(string) {
- return string.match(reComplexSymbol);
+ return hasUnicode(string)
+ ? unicodeToArray(string)
+ : asciiToArray(string);
+}
+
+/**
+ * Gets the size of a Unicode `string`.
+ *
+ * @private
+ * @param {string} string The string inspect.
+ * @returns {number} Returns the string size.
+ */
+function unicodeSize(string) {
+ var result = reUnicode.lastIndex = 0;
+ while (reUnicode.test(string)) {
+ result++;
+ }
+ return result;
+}
+
+/**
+ * Converts a Unicode `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function unicodeToArray(string) {
+ return string.match(reUnicode) || [];
}
/** Used for built-in method references. */
@@ -105,7 +170,7 @@ var objectProto = Object.prototype;
/**
* Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -231,39 +296,14 @@ function createPadding(length, chars) {
return charsLength ? baseRepeat(chars, length) : chars;
}
var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
- return reHasComplexSymbol.test(chars)
+ return hasUnicode(chars)
? castSlice(stringToArray(result), 0, length).join('')
: result.slice(0, length);
}
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a function, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // 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;
-}
-
/**
* Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
@@ -380,7 +420,7 @@ function toFinite(value) {
* Converts `value` to an integer.
*
* **Note:** This method is loosely based on
- * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
*
* @static
* @memberOf _
@@ -440,7 +480,7 @@ function toNumber(value) {
return NAN;
}
if (isObject(value)) {
- var other = isFunction(value.valueOf) ? value.valueOf() : value;
+ var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
value = isObject(other) ? (other + '') : other;
}
if (typeof value != 'string') {
diff --git a/lodash.pad/package.json b/lodash.pad/package.json
index ec1ed57ef..ad2fae7ee 100644
--- a/lodash.pad/package.json
+++ b/lodash.pad/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.pad",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.pad` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.partition/README.md b/lodash.partition/README.md
index 0e3f58046..0e271a7bb 100644
--- a/lodash.partition/README.md
+++ b/lodash.partition/README.md
@@ -1,4 +1,4 @@
-# lodash.partition v4.5.0
+# lodash.partition v4.5.1
The [lodash](https://lodash.com/) method `_.partition` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var partition = require('lodash.partition');
```
-See the [documentation](https://lodash.com/docs#partition) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.partition) for more details.
+See the [documentation](https://lodash.com/docs#partition) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.partition) for more details.
diff --git a/lodash.partition/index.js b/lodash.partition/index.js
index 14a144bd0..b67438e2e 100644
--- a/lodash.partition/index.js
+++ b/lodash.partition/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1348,6 +1349,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1508,6 +1510,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1777,8 +1780,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.partition/package.json b/lodash.partition/package.json
index bf9c9eb86..42bfdf06a 100644
--- a/lodash.partition/package.json
+++ b/lodash.partition/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.partition",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.partition` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.pickby/README.md b/lodash.pickby/README.md
index 4c7314778..a30f9e2bc 100644
--- a/lodash.pickby/README.md
+++ b/lodash.pickby/README.md
@@ -1,4 +1,4 @@
-# lodash.pickby v4.5.0
+# lodash.pickby v4.5.1
The [lodash](https://lodash.com/) method `_.pickBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var pickBy = require('lodash.pickby');
```
-See the [documentation](https://lodash.com/docs#pickBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.pickby) for more details.
+See the [documentation](https://lodash.com/docs#pickBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.pickby) for more details.
diff --git a/lodash.pickby/index.js b/lodash.pickby/index.js
index 62d75341f..fdab36a50 100644
--- a/lodash.pickby/index.js
+++ b/lodash.pickby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1309,6 +1310,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1469,6 +1471,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1571,7 +1574,7 @@ var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArra
* @param {Object} object The object to query.
* @returns {Array} Returns the array of symbols.
*/
-var getSymbolsIn = !nativeGetSymbols ? getSymbols : function(object) {
+var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
var result = [];
while (object) {
arrayPush(result, getSymbols(object));
@@ -1776,8 +1779,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.pickby/package.json b/lodash.pickby/package.json
index 97222f6d6..84189c64d 100644
--- a/lodash.pickby/package.json
+++ b/lodash.pickby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.pickby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.pickBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.pullat/README.md b/lodash.pullat/README.md
index 6a650ac5a..0b43a3192 100644
--- a/lodash.pullat/README.md
+++ b/lodash.pullat/README.md
@@ -1,4 +1,4 @@
-# lodash.pullat v4.5.0
+# lodash.pullat v4.5.1
The [lodash](https://lodash.com/) method `_.pullAt` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var pullAt = require('lodash.pullat');
```
-See the [documentation](https://lodash.com/docs#pullAt) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.pullat) for more details.
+See the [documentation](https://lodash.com/docs#pullAt) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.pullat) for more details.
diff --git a/lodash.pullat/index.js b/lodash.pullat/index.js
index 9cf2de448..345bb4839 100644
--- a/lodash.pullat/index.js
+++ b/lodash.pullat/index.js
@@ -26,7 +26,8 @@ var argsTag = '[object Arguments]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -830,7 +831,7 @@ function getNative(object, key) {
*/
function isFlattenable(value) {
return isArray(value) || isArguments(value) ||
- !!(spreadableSymbol && value && value[spreadableSymbol])
+ !!(spreadableSymbol && value && value[spreadableSymbol]);
}
/**
@@ -914,8 +915,13 @@ function parent(object, path) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.pullat/package.json b/lodash.pullat/package.json
index c43314adf..955a7b526 100644
--- a/lodash.pullat/package.json
+++ b/lodash.pullat/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.pullat",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.pullAt` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.reduce/README.md b/lodash.reduce/README.md
index 8802ee862..06d37615d 100644
--- a/lodash.reduce/README.md
+++ b/lodash.reduce/README.md
@@ -1,4 +1,4 @@
-# lodash.reduce v4.5.0
+# lodash.reduce v4.5.1
The [lodash](https://lodash.com/) method `_.reduce` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var reduce = require('lodash.reduce');
```
-See the [documentation](https://lodash.com/docs#reduce) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.reduce) for more details.
+See the [documentation](https://lodash.com/docs#reduce) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.reduce) for more details.
diff --git a/lodash.reduce/index.js b/lodash.reduce/index.js
index 5d23cfe18..82bb2f283 100644
--- a/lodash.reduce/index.js
+++ b/lodash.reduce/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1339,6 +1340,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1499,6 +1501,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1768,8 +1771,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.reduce/package.json b/lodash.reduce/package.json
index 80b561284..5f77468cd 100644
--- a/lodash.reduce/package.json
+++ b/lodash.reduce/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.reduce",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.reduce` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.reduceright/README.md b/lodash.reduceright/README.md
index 8467d1090..4bf001dc3 100644
--- a/lodash.reduceright/README.md
+++ b/lodash.reduceright/README.md
@@ -1,4 +1,4 @@
-# lodash.reduceright v4.5.0
+# lodash.reduceright v4.5.1
The [lodash](https://lodash.com/) method `_.reduceRight` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var reduceRight = require('lodash.reduceright');
```
-See the [documentation](https://lodash.com/docs#reduceRight) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.reduceright) for more details.
+See the [documentation](https://lodash.com/docs#reduceRight) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.reduceright) for more details.
diff --git a/lodash.reduceright/index.js b/lodash.reduceright/index.js
index 1e9203a28..d4fb5f748 100644
--- a/lodash.reduceright/index.js
+++ b/lodash.reduceright/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1336,6 +1337,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1496,6 +1498,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1765,8 +1768,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.reduceright/package.json b/lodash.reduceright/package.json
index 54a6acad8..8a8c6626e 100644
--- a/lodash.reduceright/package.json
+++ b/lodash.reduceright/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.reduceright",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.reduceRight` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.reject/README.md b/lodash.reject/README.md
index c717d956f..4bc1ba0b4 100644
--- a/lodash.reject/README.md
+++ b/lodash.reject/README.md
@@ -1,4 +1,4 @@
-# lodash.reject v4.5.0
+# lodash.reject v4.5.1
The [lodash](https://lodash.com/) method `_.reject` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var reject = require('lodash.reject');
```
-See the [documentation](https://lodash.com/docs#reject) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.reject) for more details.
+See the [documentation](https://lodash.com/docs#reject) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.reject) for more details.
diff --git a/lodash.reject/index.js b/lodash.reject/index.js
index fc60b6d63..21b2fdfaf 100644
--- a/lodash.reject/index.js
+++ b/lodash.reject/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1334,6 +1335,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1494,6 +1496,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1763,8 +1766,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.reject/package.json b/lodash.reject/package.json
index f7b1898a3..a5952834b 100644
--- a/lodash.reject/package.json
+++ b/lodash.reject/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.reject",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.reject` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.result/README.md b/lodash.result/README.md
index fca9c1144..12ed68496 100644
--- a/lodash.result/README.md
+++ b/lodash.result/README.md
@@ -1,4 +1,4 @@
-# lodash.result v4.5.0
+# lodash.result v4.5.1
The [lodash](https://lodash.com/) method `_.result` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var result = require('lodash.result');
```
-See the [documentation](https://lodash.com/docs#result) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.result) for more details.
+See the [documentation](https://lodash.com/docs#result) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.result) for more details.
diff --git a/lodash.result/index.js b/lodash.result/index.js
index b725fe822..05fe3def5 100644
--- a/lodash.result/index.js
+++ b/lodash.result/index.js
@@ -24,7 +24,8 @@ var funcTag = '[object Function]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -573,8 +574,13 @@ function isMasked(func) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.result/package.json b/lodash.result/package.json
index a54d1c659..489a09b09 100644
--- a/lodash.result/package.json
+++ b/lodash.result/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.result",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.result` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.some/README.md b/lodash.some/README.md
index 7e8071a2e..1e7213b9a 100644
--- a/lodash.some/README.md
+++ b/lodash.some/README.md
@@ -1,4 +1,4 @@
-# lodash.some v4.5.0
+# lodash.some v4.5.1
The [lodash](https://lodash.com/) method `_.some` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var some = require('lodash.some');
```
-See the [documentation](https://lodash.com/docs#some) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.some) for more details.
+See the [documentation](https://lodash.com/docs#some) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.some) for more details.
diff --git a/lodash.some/index.js b/lodash.some/index.js
index 9a1210082..8343455f1 100644
--- a/lodash.some/index.js
+++ b/lodash.some/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1311,6 +1312,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1471,6 +1473,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1764,8 +1767,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.some/package.json b/lodash.some/package.json
index 3c9fa909b..8bba833a1 100644
--- a/lodash.some/package.json
+++ b/lodash.some/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.some",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.some` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.sortedindexby/README.md b/lodash.sortedindexby/README.md
index 7b50fc20d..4e0e0acb5 100644
--- a/lodash.sortedindexby/README.md
+++ b/lodash.sortedindexby/README.md
@@ -1,4 +1,4 @@
-# lodash.sortedindexby v4.5.0
+# lodash.sortedindexby v4.5.1
The [lodash](https://lodash.com/) method `_.sortedIndexBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var sortedIndexBy = require('lodash.sortedindexby');
```
-See the [documentation](https://lodash.com/docs#sortedIndexBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.sortedindexby) for more details.
+See the [documentation](https://lodash.com/docs#sortedIndexBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.sortedindexby) for more details.
diff --git a/lodash.sortedindexby/index.js b/lodash.sortedindexby/index.js
index 774e9805a..bde0ad746 100644
--- a/lodash.sortedindexby/index.js
+++ b/lodash.sortedindexby/index.js
@@ -61,7 +61,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -104,10 +105,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1263,6 +1264,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1423,6 +1425,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1692,8 +1695,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.sortedindexby/package.json b/lodash.sortedindexby/package.json
index a17c179a7..b8fdf94ad 100644
--- a/lodash.sortedindexby/package.json
+++ b/lodash.sortedindexby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.sortedindexby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.sortedIndexBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.sortedlastindexby/README.md b/lodash.sortedlastindexby/README.md
index 06eb92d5e..4f229e505 100644
--- a/lodash.sortedlastindexby/README.md
+++ b/lodash.sortedlastindexby/README.md
@@ -1,4 +1,4 @@
-# lodash.sortedlastindexby v4.5.0
+# lodash.sortedlastindexby v4.5.1
The [lodash](https://lodash.com/) method `_.sortedLastIndexBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var sortedLastIndexBy = require('lodash.sortedlastindexby');
```
-See the [documentation](https://lodash.com/docs#sortedLastIndexBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.sortedlastindexby) for more details.
+See the [documentation](https://lodash.com/docs#sortedLastIndexBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.sortedlastindexby) for more details.
diff --git a/lodash.sortedlastindexby/index.js b/lodash.sortedlastindexby/index.js
index 8e14e22da..b26859108 100644
--- a/lodash.sortedlastindexby/index.js
+++ b/lodash.sortedlastindexby/index.js
@@ -61,7 +61,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -104,10 +105,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1263,6 +1264,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1423,6 +1425,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1692,8 +1695,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.sortedlastindexby/package.json b/lodash.sortedlastindexby/package.json
index 759ad1b15..e925567f2 100644
--- a/lodash.sortedlastindexby/package.json
+++ b/lodash.sortedlastindexby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.sortedlastindexby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.sortedLastIndexBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.sumby/README.md b/lodash.sumby/README.md
index 7a8effb78..42023aaa4 100644
--- a/lodash.sumby/README.md
+++ b/lodash.sumby/README.md
@@ -1,4 +1,4 @@
-# lodash.sumby v4.5.0
+# lodash.sumby v4.5.1
The [lodash](https://lodash.com/) method `_.sumBy` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var sumBy = require('lodash.sumby');
```
-See the [documentation](https://lodash.com/docs#sumBy) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.sumby) for more details.
+See the [documentation](https://lodash.com/docs#sumBy) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.sumby) for more details.
diff --git a/lodash.sumby/index.js b/lodash.sumby/index.js
index 55fddf323..e7c05f319 100644
--- a/lodash.sumby/index.js
+++ b/lodash.sumby/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1227,6 +1228,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1387,6 +1389,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1656,8 +1659,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.sumby/package.json b/lodash.sumby/package.json
index ccf28dfc9..5d4a2f0e9 100644
--- a/lodash.sumby/package.json
+++ b/lodash.sumby/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.sumby",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.sumBy` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.takerightwhile/README.md b/lodash.takerightwhile/README.md
index 8a84a7817..ca65e8b09 100644
--- a/lodash.takerightwhile/README.md
+++ b/lodash.takerightwhile/README.md
@@ -1,4 +1,4 @@
-# lodash.takerightwhile v4.5.0
+# lodash.takerightwhile v4.5.1
The [lodash](https://lodash.com/) method `_.takeRightWhile` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var takeRightWhile = require('lodash.takerightwhile');
```
-See the [documentation](https://lodash.com/docs#takeRightWhile) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.takerightwhile) for more details.
+See the [documentation](https://lodash.com/docs#takeRightWhile) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.takerightwhile) for more details.
diff --git a/lodash.takerightwhile/index.js b/lodash.takerightwhile/index.js
index 2afed620d..a0ce301ee 100644
--- a/lodash.takerightwhile/index.js
+++ b/lodash.takerightwhile/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1257,6 +1258,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1417,6 +1419,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1686,8 +1689,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.takerightwhile/package.json b/lodash.takerightwhile/package.json
index 57202d546..654353021 100644
--- a/lodash.takerightwhile/package.json
+++ b/lodash.takerightwhile/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.takerightwhile",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.takeRightWhile` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.takewhile/README.md b/lodash.takewhile/README.md
index 6b0287576..1f67f6f03 100644
--- a/lodash.takewhile/README.md
+++ b/lodash.takewhile/README.md
@@ -1,4 +1,4 @@
-# lodash.takewhile v4.5.0
+# lodash.takewhile v4.5.1
The [lodash](https://lodash.com/) method `_.takeWhile` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var takeWhile = require('lodash.takewhile');
```
-See the [documentation](https://lodash.com/docs#takeWhile) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.takewhile) for more details.
+See the [documentation](https://lodash.com/docs#takeWhile) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.takewhile) for more details.
diff --git a/lodash.takewhile/index.js b/lodash.takewhile/index.js
index ea765ac2a..98c50b537 100644
--- a/lodash.takewhile/index.js
+++ b/lodash.takewhile/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1257,6 +1258,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1417,6 +1419,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1686,8 +1689,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.takewhile/package.json b/lodash.takewhile/package.json
index cbde61623..f97ca33d6 100644
--- a/lodash.takewhile/package.json
+++ b/lodash.takewhile/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.takewhile",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.takeWhile` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.topath/README.md b/lodash.topath/README.md
index 70cf2f202..052cdcb71 100644
--- a/lodash.topath/README.md
+++ b/lodash.topath/README.md
@@ -1,4 +1,4 @@
-# lodash.topath v4.5.0
+# lodash.topath v4.5.1
The [lodash](https://lodash.com/) method `_.toPath` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var toPath = require('lodash.topath');
```
-See the [documentation](https://lodash.com/docs#toPath) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.topath) for more details.
+See the [documentation](https://lodash.com/docs#toPath) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.topath) for more details.
diff --git a/lodash.topath/index.js b/lodash.topath/index.js
index 1d00155a7..f7a10e44d 100644
--- a/lodash.topath/index.js
+++ b/lodash.topath/index.js
@@ -22,7 +22,8 @@ var funcTag = '[object Function]',
symbolTag = '[object Symbol]';
/** Used to match property names within property paths. */
-var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+var reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -578,8 +579,13 @@ function isMasked(func) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.topath/package.json b/lodash.topath/package.json
index d9d3e0680..b5873aed9 100644
--- a/lodash.topath/package.json
+++ b/lodash.topath/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.topath",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.toPath` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.transform/README.md b/lodash.transform/README.md
index c90f23ede..d2866bc2b 100644
--- a/lodash.transform/README.md
+++ b/lodash.transform/README.md
@@ -1,4 +1,4 @@
-# lodash.transform v4.5.0
+# lodash.transform v4.5.1
The [lodash](https://lodash.com/) method `_.transform` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var transform = require('lodash.transform');
```
-See the [documentation](https://lodash.com/docs#transform) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.transform) for more details.
+See the [documentation](https://lodash.com/docs#transform) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.transform) for more details.
diff --git a/lodash.transform/index.js b/lodash.transform/index.js
index 963f7f601..23f331009 100644
--- a/lodash.transform/index.js
+++ b/lodash.transform/index.js
@@ -57,7 +57,8 @@ var arrayBufferTag = '[object ArrayBuffer]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -100,10 +101,10 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */
-var freeExports = freeGlobal && typeof exports == 'object' && exports;
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */
-var freeModule = freeExports && typeof module == 'object' && module;
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;
@@ -1287,6 +1288,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](array);
+ stack['delete'](other);
return result;
}
@@ -1447,6 +1449,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
}
stack['delete'](object);
+ stack['delete'](other);
return result;
}
@@ -1716,8 +1719,13 @@ function matchesStrictComparable(key, srcValue) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.transform/package.json b/lodash.transform/package.json
index 2c023415e..bc8702a41 100644
--- a/lodash.transform/package.json
+++ b/lodash.transform/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.transform",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.transform` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.trim/README.md b/lodash.trim/README.md
index 065702985..4761cbeb6 100644
--- a/lodash.trim/README.md
+++ b/lodash.trim/README.md
@@ -1,4 +1,4 @@
-# lodash.trim v4.5.0
+# lodash.trim v4.5.1
The [lodash](https://lodash.com/) method `_.trim` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var trim = require('lodash.trim');
```
-See the [documentation](https://lodash.com/docs#trim) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.trim) for more details.
+See the [documentation](https://lodash.com/docs#trim) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.trim) for more details.
diff --git a/lodash.trim/index.js b/lodash.trim/index.js
index bf6abdc20..cb3563120 100644
--- a/lodash.trim/index.js
+++ b/lodash.trim/index.js
@@ -40,7 +40,10 @@ var reOptMod = rsModifier + '?',
rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
-var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+
+/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
+var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
@@ -51,12 +54,23 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();
+/**
+ * Converts an ASCII `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function asciiToArray(string) {
+ return string.split('');
+}
+
/**
* The base implementation of `_.findIndex` and `_.findLastIndex` without
* support for iteratee shorthands.
*
* @private
- * @param {Array} array The array to search.
+ * @param {Array} array The array to inspect.
* @param {Function} predicate The function invoked per iteration.
* @param {number} fromIndex The index to search from.
* @param {boolean} [fromRight] Specify iterating from right to left.
@@ -78,7 +92,7 @@ function baseFindIndex(array, predicate, fromIndex, fromRight) {
* The base implementation of `_.indexOf` without `fromIndex` bounds checks.
*
* @private
- * @param {Array} array The array to search.
+ * @param {Array} array The array to inspect.
* @param {*} value The value to search for.
* @param {number} fromIndex The index to search from.
* @returns {number} Returns the index of the matched value, else `-1`.
@@ -142,6 +156,17 @@ function charsEndIndex(strSymbols, chrSymbols) {
return index;
}
+/**
+ * Checks if `string` contains Unicode symbols.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
+ */
+function hasUnicode(string) {
+ return reHasUnicode.test(string);
+}
+
/**
* Converts `string` to an array.
*
@@ -150,7 +175,20 @@ function charsEndIndex(strSymbols, chrSymbols) {
* @returns {Array} Returns the converted array.
*/
function stringToArray(string) {
- return string.match(reComplexSymbol);
+ return hasUnicode(string)
+ ? unicodeToArray(string)
+ : asciiToArray(string);
+}
+
+/**
+ * Converts a Unicode `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function unicodeToArray(string) {
+ return string.match(reUnicode) || [];
}
/** Used for built-in method references. */
@@ -158,7 +196,7 @@ var objectProto = Object.prototype;
/**
* Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
diff --git a/lodash.trim/package.json b/lodash.trim/package.json
index 86c77a8b2..969c991b8 100644
--- a/lodash.trim/package.json
+++ b/lodash.trim/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.trim",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.trim` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.trimend/README.md b/lodash.trimend/README.md
index 9c6b83677..5cb685df3 100644
--- a/lodash.trimend/README.md
+++ b/lodash.trimend/README.md
@@ -1,4 +1,4 @@
-# lodash.trimend v4.5.0
+# lodash.trimend v4.5.1
The [lodash](https://lodash.com/) method `_.trimEnd` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var trimEnd = require('lodash.trimend');
```
-See the [documentation](https://lodash.com/docs#trimEnd) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.trimend) for more details.
+See the [documentation](https://lodash.com/docs#trimEnd) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.trimend) for more details.
diff --git a/lodash.trimend/index.js b/lodash.trimend/index.js
index f162d1f65..df0475534 100644
--- a/lodash.trimend/index.js
+++ b/lodash.trimend/index.js
@@ -40,7 +40,10 @@ var reOptMod = rsModifier + '?',
rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
-var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+
+/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
+var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
@@ -51,12 +54,23 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();
+/**
+ * Converts an ASCII `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function asciiToArray(string) {
+ return string.split('');
+}
+
/**
* The base implementation of `_.findIndex` and `_.findLastIndex` without
* support for iteratee shorthands.
*
* @private
- * @param {Array} array The array to search.
+ * @param {Array} array The array to inspect.
* @param {Function} predicate The function invoked per iteration.
* @param {number} fromIndex The index to search from.
* @param {boolean} [fromRight] Specify iterating from right to left.
@@ -78,7 +92,7 @@ function baseFindIndex(array, predicate, fromIndex, fromRight) {
* The base implementation of `_.indexOf` without `fromIndex` bounds checks.
*
* @private
- * @param {Array} array The array to search.
+ * @param {Array} array The array to inspect.
* @param {*} value The value to search for.
* @param {number} fromIndex The index to search from.
* @returns {number} Returns the index of the matched value, else `-1`.
@@ -125,6 +139,17 @@ function charsEndIndex(strSymbols, chrSymbols) {
return index;
}
+/**
+ * Checks if `string` contains Unicode symbols.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
+ */
+function hasUnicode(string) {
+ return reHasUnicode.test(string);
+}
+
/**
* Converts `string` to an array.
*
@@ -133,7 +158,20 @@ function charsEndIndex(strSymbols, chrSymbols) {
* @returns {Array} Returns the converted array.
*/
function stringToArray(string) {
- return string.match(reComplexSymbol);
+ return hasUnicode(string)
+ ? unicodeToArray(string)
+ : asciiToArray(string);
+}
+
+/**
+ * Converts a Unicode `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function unicodeToArray(string) {
+ return string.match(reUnicode) || [];
}
/** Used for built-in method references. */
@@ -141,7 +179,7 @@ var objectProto = Object.prototype;
/**
* Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
diff --git a/lodash.trimend/package.json b/lodash.trimend/package.json
index 3b8b6d599..25f317b9a 100644
--- a/lodash.trimend/package.json
+++ b/lodash.trimend/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.trimend",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.trimEnd` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.trimstart/README.md b/lodash.trimstart/README.md
index 6d818725b..58db04999 100644
--- a/lodash.trimstart/README.md
+++ b/lodash.trimstart/README.md
@@ -1,4 +1,4 @@
-# lodash.trimstart v4.5.0
+# lodash.trimstart v4.5.1
The [lodash](https://lodash.com/) method `_.trimStart` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var trimStart = require('lodash.trimstart');
```
-See the [documentation](https://lodash.com/docs#trimStart) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.trimstart) for more details.
+See the [documentation](https://lodash.com/docs#trimStart) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.trimstart) for more details.
diff --git a/lodash.trimstart/index.js b/lodash.trimstart/index.js
index 7c65170be..d764d7944 100644
--- a/lodash.trimstart/index.js
+++ b/lodash.trimstart/index.js
@@ -40,7 +40,10 @@ var reOptMod = rsModifier + '?',
rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
-var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
+
+/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
+var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
@@ -51,12 +54,23 @@ var freeSelf = typeof self == 'object' && self && self.Object === Object && self
/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();
+/**
+ * Converts an ASCII `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function asciiToArray(string) {
+ return string.split('');
+}
+
/**
* The base implementation of `_.findIndex` and `_.findLastIndex` without
* support for iteratee shorthands.
*
* @private
- * @param {Array} array The array to search.
+ * @param {Array} array The array to inspect.
* @param {Function} predicate The function invoked per iteration.
* @param {number} fromIndex The index to search from.
* @param {boolean} [fromRight] Specify iterating from right to left.
@@ -78,7 +92,7 @@ function baseFindIndex(array, predicate, fromIndex, fromRight) {
* The base implementation of `_.indexOf` without `fromIndex` bounds checks.
*
* @private
- * @param {Array} array The array to search.
+ * @param {Array} array The array to inspect.
* @param {*} value The value to search for.
* @param {number} fromIndex The index to search from.
* @returns {number} Returns the index of the matched value, else `-1`.
@@ -126,6 +140,17 @@ function charsStartIndex(strSymbols, chrSymbols) {
return index;
}
+/**
+ * Checks if `string` contains Unicode symbols.
+ *
+ * @private
+ * @param {string} string The string to inspect.
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
+ */
+function hasUnicode(string) {
+ return reHasUnicode.test(string);
+}
+
/**
* Converts `string` to an array.
*
@@ -134,7 +159,20 @@ function charsStartIndex(strSymbols, chrSymbols) {
* @returns {Array} Returns the converted array.
*/
function stringToArray(string) {
- return string.match(reComplexSymbol);
+ return hasUnicode(string)
+ ? unicodeToArray(string)
+ : asciiToArray(string);
+}
+
+/**
+ * Converts a Unicode `string` to an array.
+ *
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
+ */
+function unicodeToArray(string) {
+ return string.match(reUnicode) || [];
}
/** Used for built-in method references. */
@@ -142,7 +180,7 @@ var objectProto = Object.prototype;
/**
* Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
diff --git a/lodash.trimstart/package.json b/lodash.trimstart/package.json
index 57aa0a68d..7539827da 100644
--- a/lodash.trimstart/package.json
+++ b/lodash.trimstart/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.trimstart",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.trimStart` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
diff --git a/lodash.unset/README.md b/lodash.unset/README.md
index 08603929a..535f31c2a 100644
--- a/lodash.unset/README.md
+++ b/lodash.unset/README.md
@@ -1,4 +1,4 @@
-# lodash.unset v4.5.0
+# lodash.unset v4.5.1
The [lodash](https://lodash.com/) method `_.unset` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var unset = require('lodash.unset');
```
-See the [documentation](https://lodash.com/docs#unset) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.unset) for more details.
+See the [documentation](https://lodash.com/docs#unset) or [package source](https://github.com/lodash/lodash/blob/4.5.1-npm-packages/lodash.unset) for more details.
diff --git a/lodash.unset/index.js b/lodash.unset/index.js
index 9df01c824..505d458da 100644
--- a/lodash.unset/index.js
+++ b/lodash.unset/index.js
@@ -24,7 +24,8 @@ var funcTag = '[object Function]',
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
+ reLeadingDot = /^\./,
+ rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/**
* Used to match `RegExp`
@@ -694,8 +695,13 @@ function parent(object, path) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
+ string = toString(string);
+
var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
+ if (reLeadingDot.test(string)) {
+ result.push('');
+ }
+ string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;
diff --git a/lodash.unset/package.json b/lodash.unset/package.json
index 2e8839a46..feab342e7 100644
--- a/lodash.unset/package.json
+++ b/lodash.unset/package.json
@@ -1,6 +1,6 @@
{
"name": "lodash.unset",
- "version": "4.5.0",
+ "version": "4.5.1",
"description": "The lodash method `_.unset` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",