From: Lady Date: Sat, 22 Jul 2023 06:39:26 +0000 (-0700) Subject: Ensure each function in value.js has correct name X-Git-Url: https://git.ladys.computer/Pisces/commitdiff_plain/a3c51d1ddf723f816d51cc73857f83e3107d9c78 Ensure each function in value.js has correct name This requires making `sameValue` a wrapper of `Object.is` instead of literally the same function. --- diff --git a/value.js b/value.js index 3f0c6fa..bda9180 100644 --- a/value.js +++ b/value.js @@ -141,14 +141,14 @@ export const { }; })(); -/** - * 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). @@ -158,7 +158,9 @@ export const { 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); diff --git a/value.test.js b/value.test.js index 747b18e..cfaded4 100644 --- a/value.test.js +++ b/value.test.js @@ -201,6 +201,15 @@ describe("ordinaryToPrimitive", () => { }; assertThrows(() => ordinaryToPrimitive(obj)); }); + + describe(".name", () => { + it("[[Get]] returns the correct name", () => { + assertStrictEquals( + ordinaryToPrimitive.name, + "ordinaryToPrimitive", + ); + }); + }); }); describe("sameValue", () => { @@ -240,6 +249,12 @@ 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", () => { @@ -282,6 +297,12 @@ describe("sameValueZero", () => { false, ); }); + + describe(".name", () => { + it("[[Get]] returns the correct name", () => { + assertStrictEquals(sameValueZero.name, "sameValueZero"); + }); + }); }); describe("toPrimitive", () => { @@ -379,6 +400,12 @@ describe("toPrimitive", () => { assertThrows(() => toPrimitive(value2, "badhint")); assertThrows(() => toPrimitive(true, "badhint")); }); + + describe(".name", () => { + it("[[Get]] returns the correct name", () => { + assertStrictEquals(toPrimitive.name, "toPrimitive"); + }); + }); }); describe("type", () => { @@ -401,4 +428,10 @@ 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"); + }); + }); });