function baseIsEqual(value, other, customizer, isWhere, stackA, stackB) {
	      // Exit early for identical values.
	      if (value === other) {
	        // Treat `+0` vs. `-0` as not equal.
	        return value !== 0 || (1 / value == 1 / other);
	      }
	      var valType = typeof value,
	          othType = typeof other;

	      // Exit early for unlike primitive values.
	      if ((valType != 'function' && valType != 'object' && othType != 'function' && othType != 'object') ||
	          value == null || other == null) {
	        // Return `false` unless both values are `NaN`.
	        return value !== value && other !== other;
	      }
	      return baseIsEqualDeep(value, other, baseIsEqual, customizer, isWhere, stackA, stackB);
	    }
The base implementation of `_.isEqual` without support for `this` binding
`customizer` functions.

@private
@param {*} value The value to compare.
@param {*} other The other value to compare.
@param {Function} [customizer] The function to customize comparing values.
@param {boolean} [isWhere] Specify performing partial comparisons.
@param {Array} [stackA] Tracks traversed `value` objects.
@param {Array} [stackB] Tracks traversed `other` objects.
@returns {boolean} Returns `true` if the values are equivalent, else `false`.