* Performs a deep comparison between two values to determine if they are * equivalent. If `customizer` is provided it is invoked to compare values. * If `customizer` returns `undefined` comparisons are handled by the method * instead. The `customizer` is bound to `thisArg` and invoked
(value, other, customizer, thisArg)
| 10047 | * // => true |
| 10048 | */ |
| 10049 | function isEqual(value, other, customizer, thisArg) { |
| 10050 | customizer = typeof customizer == 'function' && bindCallback(customizer, thisArg, 3); |
| 10051 | if (!customizer && isStrictComparable(value) && isStrictComparable(other)) { |
| 10052 | return value === other; |
| 10053 | } |
| 10054 | var result = customizer ? customizer(value, other) : undefined; |
| 10055 | return result === undefined ? baseIsEqual(value, other, customizer) : !!result; |
| 10056 | } |
| 10057 | |
| 10058 | /** |
| 10059 | * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, |
nothing calls this directly
no test coverage detected