};
})();
-/**
- * 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);
};
assertThrows(() => ordinaryToPrimitive(obj));
});
+
+ describe(".name", () => {
+ it("[[Get]] returns the correct name", () => {
+ assertStrictEquals(
+ ordinaryToPrimitive.name,
+ "ordinaryToPrimitive",
+ );
+ });
+ });
});
describe("sameValue", () => {
it("[[Call]] returns false for a primitive and its wrapped object", () => {
assertStrictEquals(sameValue(false, new Boolean(false)), false);
});
+
+ describe(".name", () => {
+ it("[[Get]] returns the correct name", () => {
+ assertStrictEquals(sameValue.name, "sameValue");
+ });
+ });
});
describe("sameValueZero", () => {
false,
);
});
+
+ describe(".name", () => {
+ it("[[Get]] returns the correct name", () => {
+ assertStrictEquals(sameValueZero.name, "sameValueZero");
+ });
+ });
});
describe("toPrimitive", () => {
assertThrows(() => toPrimitive(value2, "badhint"));
assertThrows(() => toPrimitive(true, "badhint"));
});
+
+ describe(".name", () => {
+ it("[[Get]] returns the correct name", () => {
+ assertStrictEquals(toPrimitive.name, "toPrimitive");
+ });
+ });
});
describe("type", () => {
it('[[Call]] returns "object" for constructable objects', () => {
assertStrictEquals(type(class {}), "object");
});
+
+ describe(".name", () => {
+ it("[[Get]] returns the correct name", () => {
+ assertStrictEquals(type.name, "type");
+ });
+ });
});