| 
						 | 
						- var SetCache = require('./_SetCache'),
 -     arraySome = require('./_arraySome'),
 -     cacheHas = require('./_cacheHas');
 - 
 - /** Used to compose bitmasks for value comparisons. */
 - var COMPARE_PARTIAL_FLAG = 1,
 -     COMPARE_UNORDERED_FLAG = 2;
 - 
 - /**
 -  * A specialized version of `baseIsEqualDeep` for arrays with support for
 -  * partial deep comparisons.
 -  *
 -  * @private
 -  * @param {Array} array The array to compare.
 -  * @param {Array} other The other array to compare.
 -  * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 -  * @param {Function} customizer The function to customize comparisons.
 -  * @param {Function} equalFunc The function to determine equivalents of values.
 -  * @param {Object} stack Tracks traversed `array` and `other` objects.
 -  * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
 -  */
 - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
 -   var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
 -       arrLength = array.length,
 -       othLength = other.length;
 - 
 -   if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
 -     return false;
 -   }
 -   // Check that cyclic values are equal.
 -   var arrStacked = stack.get(array);
 -   var othStacked = stack.get(other);
 -   if (arrStacked && othStacked) {
 -     return arrStacked == other && othStacked == array;
 -   }
 -   var index = -1,
 -       result = true,
 -       seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
 - 
 -   stack.set(array, other);
 -   stack.set(other, array);
 - 
 -   // Ignore non-index properties.
 -   while (++index < arrLength) {
 -     var arrValue = array[index],
 -         othValue = other[index];
 - 
 -     if (customizer) {
 -       var compared = isPartial
 -         ? customizer(othValue, arrValue, index, other, array, stack)
 -         : customizer(arrValue, othValue, index, array, other, stack);
 -     }
 -     if (compared !== undefined) {
 -       if (compared) {
 -         continue;
 -       }
 -       result = false;
 -       break;
 -     }
 -     // Recursively compare arrays (susceptible to call stack limits).
 -     if (seen) {
 -       if (!arraySome(other, function(othValue, othIndex) {
 -             if (!cacheHas(seen, othIndex) &&
 -                 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
 -               return seen.push(othIndex);
 -             }
 -           })) {
 -         result = false;
 -         break;
 -       }
 -     } else if (!(
 -           arrValue === othValue ||
 -             equalFunc(arrValue, othValue, bitmask, customizer, stack)
 -         )) {
 -       result = false;
 -       break;
 -     }
 -   }
 -   stack['delete'](array);
 -   stack['delete'](other);
 -   return result;
 - }
 - 
 - module.exports = equalArrays;
 
 
  |