-describe("isArraylikeObject", () => {
- it("[[Call]] returns false for primitives", () => {
- assertStrictEquals(isArraylikeObject("failure"), false);
- });
-
- it("[[Call]] returns false if length throws", () => {
- assertStrictEquals(
- isArraylikeObject({
- get length() {
- throw void {};
- },
- }),
- false,
- );
- });
-
- it("[[Call]] returns false if length is not a number and cannot be converted to one", () => {
- assertStrictEquals(isArraylikeObject({ length: 1n }), false);
- });
-
- it("[[Call]] returns true if length is convertable to a number", () => {
- assertStrictEquals(isArraylikeObject({ length: -0 }), true);
- assertStrictEquals(isArraylikeObject({ length: 1 }), true);
- assertStrictEquals(isArraylikeObject({ length: -1.25 }), true);
- assertStrictEquals(
- isArraylikeObject({ length: 9007199254740992 }),
- true,
- );
- assertStrictEquals(isArraylikeObject({ length: Infinity }), true);
- assertStrictEquals(isArraylikeObject({ length: "success" }), true);
- });
-});
-