37 lines
956 B
JavaScript
37 lines
956 B
JavaScript
import _curry2 from './internal/_curry2';
|
|
|
|
/**
|
|
* Returns true if its arguments are identical, false otherwise. Values are
|
|
* identical if they reference the same memory. `NaN` is identical to `NaN`;
|
|
* `0` and `-0` are not identical.
|
|
*
|
|
* @func
|
|
* @memberOf R
|
|
* @since v0.15.0
|
|
* @category Relation
|
|
* @sig a -> a -> Boolean
|
|
* @param {*} a
|
|
* @param {*} b
|
|
* @return {Boolean}
|
|
* @example
|
|
*
|
|
* var o = {};
|
|
* R.identical(o, o); //=> true
|
|
* R.identical(1, 1); //=> true
|
|
* R.identical(1, '1'); //=> false
|
|
* R.identical([], []); //=> false
|
|
* R.identical(0, -0); //=> false
|
|
* R.identical(NaN, NaN); //=> true
|
|
*/
|
|
var identical = /*#__PURE__*/_curry2(function identical(a, b) {
|
|
// SameValue algorithm
|
|
if (a === b) {
|
|
// Steps 1-5, 7-10
|
|
// Steps 6.b-6.e: +0 != -0
|
|
return a !== 0 || 1 / a === 1 / b;
|
|
} else {
|
|
// Step 6.a: NaN == NaN
|
|
return a !== a && b !== b;
|
|
}
|
|
});
|
|
export default identical; |