mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-08 10:17:48 +00:00
Bump to v4.7.0.
This commit is contained in:
@@ -19,7 +19,8 @@ var boolTag = '[object Boolean]',
|
||||
stringTag = '[object String]',
|
||||
symbolTag = '[object Symbol]';
|
||||
|
||||
var arrayBufferTag = '[object ArrayBuffer]';
|
||||
var arrayBufferTag = '[object ArrayBuffer]',
|
||||
dataViewTag = '[object DataView]';
|
||||
|
||||
/** Used to convert symbols to primitives and strings. */
|
||||
var symbolProto = Symbol ? Symbol.prototype : undefined,
|
||||
@@ -38,12 +39,21 @@ var symbolProto = Symbol ? Symbol.prototype : undefined,
|
||||
* @param {string} tag The `toStringTag` of the objects to compare.
|
||||
* @param {Function} equalFunc The function to determine equivalents of values.
|
||||
* @param {Function} customizer The function to customize comparisons.
|
||||
* @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
|
||||
* @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
|
||||
* for more details.
|
||||
* @param {Object} stack Tracks traversed `object` and `other` objects.
|
||||
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
|
||||
*/
|
||||
function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
|
||||
switch (tag) {
|
||||
case dataViewTag:
|
||||
if ((object.byteLength != other.byteLength) ||
|
||||
(object.byteOffset != other.byteOffset)) {
|
||||
return false;
|
||||
}
|
||||
object = object.buffer;
|
||||
other = other.buffer;
|
||||
|
||||
case arrayBufferTag:
|
||||
if ((object.byteLength != other.byteLength) ||
|
||||
!equalFunc(new Uint8Array(object), new Uint8Array(other))) {
|
||||
@@ -53,8 +63,9 @@ function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
|
||||
|
||||
case boolTag:
|
||||
case dateTag:
|
||||
// Coerce dates and booleans to numbers, dates to milliseconds and booleans
|
||||
// to `1` or `0` treating invalid dates coerced to `NaN` as not equal.
|
||||
// Coerce dates and booleans to numbers, dates to milliseconds and
|
||||
// booleans to `1` or `0` treating invalid dates coerced to `NaN` as
|
||||
// not equal.
|
||||
return +object == +other;
|
||||
|
||||
case errorTag:
|
||||
@@ -66,8 +77,8 @@ function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
|
||||
|
||||
case regexpTag:
|
||||
case stringTag:
|
||||
// Coerce regexes to strings and treat strings primitives and string
|
||||
// objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.
|
||||
// Coerce regexes to strings and treat strings, primitives and objects,
|
||||
// as equal. See https://es5.github.io/#x15.10.6.4 for more details.
|
||||
return object == (other + '');
|
||||
|
||||
case mapTag:
|
||||
@@ -85,8 +96,11 @@ function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
|
||||
if (stacked) {
|
||||
return stacked == other;
|
||||
}
|
||||
bitmask |= UNORDERED_COMPARE_FLAG;
|
||||
stack.set(object, other);
|
||||
|
||||
// Recursively compare objects (susceptible to call stack limits).
|
||||
return equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask | UNORDERED_COMPARE_FLAG, stack.set(object, other));
|
||||
return equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);
|
||||
|
||||
case symbolTag:
|
||||
if (symbolValueOf) {
|
||||
|
||||
Reference in New Issue
Block a user