diff --git a/src/compat/array/reverse.spec.ts b/src/compat/array/reverse.spec.ts index 6c4d94c90..7151bd250 100644 --- a/src/compat/array/reverse.spec.ts +++ b/src/compat/array/reverse.spec.ts @@ -84,4 +84,19 @@ describe('reverse', () => { expect(result).toEqual(['four', 3, 'two', 1]); expect(result).toBe(array); }); + + it('should work with array-like objects and `arguments`', () => { + const arrayLike = { 0: 'a', 1: 'b', 2: 'c', length: 3 }; + const result = reverse(arrayLike); + + expect(result).toBe(arrayLike); + expect(result).toEqual({ 0: 'c', 1: 'b', 2: 'a', length: 3 }); + }); + + it('should return primitives unchanged', () => { + // @ts-expect-error - type mismatch + expect(Number(reverse(42))).toBe(42); + // @ts-expect-error - type mismatch + expect(Boolean(reverse(true))).toBe(true); + }); }); diff --git a/src/compat/array/reverse.ts b/src/compat/array/reverse.ts index 79cb04b16..188aa97ea 100644 --- a/src/compat/array/reverse.ts +++ b/src/compat/array/reverse.ts @@ -41,5 +41,5 @@ export function reverse(array: T[] | null | undefined): T[] | null | undefine return array; } - return array.reverse(); + return Array.prototype.reverse.call(array); }