export const {
/**
* Returns the primitive value of the provided object per its
- * `toString` and `valueOf` methods.
+ * `.toString` and `.valueOf` methods.
*
- * If the provided hint is "string", then `toString` takes
- * precedence; otherwise, `valueOf` does.
+ * If the provided hint is "string", then `.toString` takes
+ * precedence; otherwise, `.valueOf` does.
*
* Throws an error if both of these methods are not callable or do
* not return a primitive.
*
* The provided preferred type, if specified, should be "string",
* "number", or "default". If the provided input has a
- * `[Symbol.toPrimitive]` method, this function will throw rather
+ * `.[Symbol.toPrimitive]` method, this function will throw rather
* than calling that method with a preferred type other than one of
* the above.
*/
if (typeof exoticToPrim !== "function") {
// The method is not callable.
throw new TypeError(
- "Piscēs: `[Symbol.toPrimitive]` was neither nullish nor callable.",
+ "Piscēs: `.[Symbol.toPrimitive]` was neither nullish nor callable.",
);
} else {
// The method is callable.
};
})();
-/**
- * Returns whether the provided values are the same value.
- *
- * ※ This differs from `===` in the cases of nan and zero.
- */
-export const sameValue = Object.is;
-
export const {
+ /**
+ * Returns whether the provided values are the same value.
+ *
+ * ※ This differs from `===` in the cases of nan and zero.
+ */
+ sameValue,
+
/**
* Returns whether the provided values are either the same value or
* both zero (either positive or negative).
sameValueZero,
} = (() => {
const { isNaN: isNan } = Number;
+ const { is } = Object;
return {
+ sameValue: (a, b) => is(a, b),
sameValueZero: ($1, $2) => {
const type1 = type($1);
const type2 = type($2);