HAS_INSTANCE,
IS_CONCAT_SPREADABLE,
ITERATOR,
- lengthOfArraylike,
MATCH,
MATCH_ALL,
NULL,
});
});
-describe("lengthOfArraylike", () => {
- it("[[Call]] returns the length", () => {
- assertStrictEquals(
- lengthOfArraylike({ length: 9007199254740991 }),
- 9007199254740991,
- );
- });
-
- it("[[Call]] returns a non·nan result", () => {
- assertStrictEquals(lengthOfArraylike({ length: NaN }), 0);
- assertStrictEquals(lengthOfArraylike({ length: "failure" }), 0);
- });
-
- it("[[Call]] returns an integral result", () => {
- assertStrictEquals(lengthOfArraylike({ length: 0.25 }), 0);
- assertStrictEquals(lengthOfArraylike({ length: 1.1 }), 1);
- });
-
- it("[[Call]] returns a result greater than or equal to zero", () => {
- assertStrictEquals(lengthOfArraylike({ length: -0 }), 0);
- assertStrictEquals(lengthOfArraylike({ length: -1 }), 0);
- assertStrictEquals(lengthOfArraylike({ length: -Infinity }), 0);
- });
-
- it("[[Call]] returns a result less than 2 ** 53", () => {
- assertStrictEquals(
- lengthOfArraylike({ length: 9007199254740992 }),
- 9007199254740991,
- );
- assertStrictEquals(
- lengthOfArraylike({ length: Infinity }),
- 9007199254740991,
- );
- });
-
- it("[[Call]] does not require an object argument", () => {
- assertStrictEquals(lengthOfArraylike("string"), 6);
- assertStrictEquals(lengthOfArraylike(Symbol()), 0);
- });
-
- it("[[Construct]] throws an error", () => {
- assertThrows(() => new lengthOfArraylike(""));
- });
-
- describe(".length", () => {
- it("[[Get]] returns the correct length", () => {
- assertStrictEquals(lengthOfArraylike.length, 1);
- });
- });
-
- describe(".name", () => {
- it("[[Get]] returns the correct name", () => {
- assertStrictEquals(lengthOfArraylike.name, "lengthOfArraylike");
- });
- });
-});
-
describe("ordinaryToPrimitive", () => {
it("[[Call]] prefers `valueOf` by default", () => {
const obj = {