PATH:
usr
/
local
/
lib
/
node_modules
/
bower
/
lib
/
node_modules
/
inquirer
/
node_modules
/
lodash
/
internal
var equalArrays = require('./equalArrays'), equalByTag = require('./equalByTag'), equalObjects = require('./equalObjects'), isArray = require('../lang/isArray'), isTypedArray = require('../lang/isTypedArray'); /** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', objectTag = '[object Object]'; /** Used for native method references. */ var objectProto = Object.prototype; /** 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 objToString = objectProto.toString; /** * A specialized version of `baseIsEqual` for arrays and objects which performs * deep comparisons and tracks traversed objects enabling objects with circular * references to be compared. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Function} [customizer] The function to customize comparing objects. * @param {boolean} [isLoose] Specify performing partial comparisons. * @param {Array} [stackA=[]] Tracks traversed `value` objects. * @param {Array} [stackB=[]] Tracks traversed `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { var objIsArr = isArray(object), othIsArr = isArray(other), objTag = arrayTag, othTag = arrayTag; if (!objIsArr) { objTag = objToString.call(object); if (objTag == argsTag) { objTag = objectTag; } else if (objTag != objectTag) { objIsArr = isTypedArray(object); } } if (!othIsArr) { othTag = objToString.call(other); if (othTag == argsTag) { othTag = objectTag; } else if (othTag != objectTag) { othIsArr = isTypedArray(other); } } var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; if (isSameTag && !(objIsArr || objIsObj)) { return equalByTag(object, other, objTag); } if (!isLoose) { var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); if (objIsWrapped || othIsWrapped) { return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); } } if (!isSameTag) { return false; } // Assume cyclic values are equal. // For more information on detecting circular references see https://es5.github.io/#JO. stackA || (stackA = []); stackB || (stackB = []); var length = stackA.length; while (length--) { if (stackA[length] == object) { return stackB[length] == other; } } // Add `object` and `other` to the stack of traversed objects. stackA.push(object); stackB.push(other); var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); stackA.pop(); stackB.pop(); return result; } module.exports = baseIsEqualDeep;
[-] cacheIndexOf.js
[edit]
[-] charsLeftIndex.js
[edit]
[-] baseWrapperValue.js
[edit]
[-] shimKeys.js
[edit]
[-] createForOwn.js
[edit]
[-] deburrLetter.js
[edit]
[-] arrayEvery.js
[edit]
[-] baseFilter.js
[edit]
[-] getMatchData.js
[edit]
[-] isIterateeCall.js
[edit]
[-] arrayEach.js
[edit]
[-] createDefaults.js
[edit]
[-] mergeDefaults.js
[edit]
[-] baseForRight.js
[edit]
[-] baseValues.js
[edit]
[-] baseEachRight.js
[edit]
[-] baseFor.js
[edit]
[-] arraySum.js
[edit]
[-] createCompounder.js
[edit]
[-] baseForOwnRight.js
[edit]
[-] baseCompareAscending.js
[edit]
[-] baseWhile.js
[edit]
[-] baseDelay.js
[edit]
[-] metaMap.js
[edit]
[-] MapCache.js
[edit]
[-] arraySome.js
[edit]
[-] baseFindIndex.js
[edit]
[-] baseMatchesProperty.js
[edit]
[-] baseSortBy.js
[edit]
[-] baseRandom.js
[edit]
[-] baseDifference.js
[edit]
[-] compareAscending.js
[edit]
[-] LodashWrapper.js
[edit]
[-] invokePath.js
[edit]
[+]
..
[-] baseMap.js
[edit]
[-] isLaziable.js
[edit]
[-] unescapeHtmlChar.js
[edit]
[-] initCloneByTag.js
[edit]
[-] baseReduce.js
[edit]
[-] lazyReverse.js
[edit]
[-] baseUniq.js
[edit]
[-] baseGet.js
[edit]
[-] createReduce.js
[edit]
[-] cachePush.js
[edit]
[-] baseSum.js
[edit]
[-] escapeHtmlChar.js
[edit]
[-] mapHas.js
[edit]
[-] baseMatches.js
[edit]
[-] mapDelete.js
[edit]
[-] createCache.js
[edit]
[-] isArrayLike.js
[edit]
[-] toObject.js
[edit]
[-] basePropertyDeep.js
[edit]
[-] arrayFilter.js
[edit]
[-] assignWith.js
[edit]
[-] composeArgsRight.js
[edit]
[-] binaryIndex.js
[edit]
[-] mapSet.js
[edit]
[-] bindCallback.js
[edit]
[-] createExtremum.js
[edit]
[-] baseFunctions.js
[edit]
[-] baseToString.js
[edit]
[-] baseIsEqualDeep.js
[edit]
[-] createCtorWrapper.js
[edit]
[-] sortedUniq.js
[edit]
[-] arrayExtremum.js
[edit]
[-] baseExtremum.js
[edit]
[-] basePullAt.js
[edit]
[-] LazyWrapper.js
[edit]
[-] isStrictComparable.js
[edit]
[-] createBindWrapper.js
[edit]
[-] isObjectLike.js
[edit]
[-] createRound.js
[edit]
[-] getView.js
[edit]
[-] createAggregator.js
[edit]
[-] createFindKey.js
[edit]
[-] createBaseFor.js
[edit]
[-] getFuncName.js
[edit]
[-] trimmedRightIndex.js
[edit]
[-] isIndex.js
[edit]
[-] reEvaluate.js
[edit]
[-] reEscape.js
[edit]
[-] baseLodash.js
[edit]
[-] arrayConcat.js
[edit]
[-] escapeRegExpChar.js
[edit]
[-] baseIsFunction.js
[edit]
[-] baseForIn.js
[edit]
[-] toPath.js
[edit]
[-] arrayReduceRight.js
[edit]
[-] baseSortByOrder.js
[edit]
[-] baseSetData.js
[edit]
[-] arrayEachRight.js
[edit]
[-] baseFill.js
[edit]
[-] arrayMap.js
[edit]
[-] compareMultiple.js
[edit]
[-] mergeData.js
[edit]
[-] mapGet.js
[edit]
[-] createHybridWrapper.js
[edit]
[-] baseIndexOf.js
[edit]
[-] arrayPush.js
[edit]
[-] createCurry.js
[edit]
[-] realNames.js
[edit]
[-] arrayCopy.js
[edit]
[-] getNative.js
[edit]
[-] createPadding.js
[edit]
[-] charsRightIndex.js
[edit]
[-] baseCopy.js
[edit]
[-] baseCallback.js
[edit]
[-] pickByCallback.js
[edit]
[-] baseMerge.js
[edit]
[-] assignOwnDefaults.js
[edit]
[-] toIterable.js
[edit]
[-] baseCreate.js
[edit]
[-] initCloneArray.js
[edit]
[-] escapeStringChar.js
[edit]
[-] baseMergeDeep.js
[edit]
[-] createAssigner.js
[edit]
[-] createForEach.js
[edit]
[-] baseSome.js
[edit]
[-] trimmedLeftIndex.js
[edit]
[-] createFindIndex.js
[edit]
[-] arrayReduce.js
[edit]
[-] baseClone.js
[edit]
[-] isLength.js
[edit]
[-] indexOfNaN.js
[edit]
[-] createFlow.js
[edit]
[-] equalByTag.js
[edit]
[-] createWrapper.js
[edit]
[-] baseEach.js
[edit]
[-] composeArgs.js
[edit]
[-] equalObjects.js
[edit]
[-] baseFlatten.js
[edit]
[-] binaryIndexBy.js
[edit]
[-] assignDefaults.js
[edit]
[-] wrapperClone.js
[edit]
[-] createPadDir.js
[edit]
[-] isSpace.js
[edit]
[-] baseAssign.js
[edit]
[-] baseEvery.js
[edit]
[-] baseIsMatch.js
[edit]
[-] SetCache.js
[edit]
[-] replaceHolders.js
[edit]
[-] createObjectMapper.js
[edit]
[-] lazyClone.js
[edit]
[-] reInterpolate.js
[edit]
[-] bufferClone.js
[edit]
[-] createPartialWrapper.js
[edit]
[-] reorder.js
[edit]
[-] createBaseEach.js
[edit]
[-] baseAt.js
[edit]
[-] getLength.js
[edit]
[-] createPartial.js
[edit]
[-] createForIn.js
[edit]
[-] createFind.js
[edit]
[-] setData.js
[edit]
[-] getData.js
[edit]
[-] createSortedIndex.js
[edit]
[-] lazyValue.js
[edit]
[-] baseSlice.js
[edit]
[-] baseIsEqual.js
[edit]
[-] baseFind.js
[edit]
[-] equalArrays.js
[edit]
[-] baseForOwn.js
[edit]
[-] pickByArray.js
[edit]
[-] isKey.js
[edit]
[-] baseProperty.js
[edit]
[-] initCloneObject.js
[edit]