@studnicky/v8/arguments-object
Disallows every use of arguments and requires rest parameters. Reading arguments.length or an indexed element locally measures the same as rest parameters in Node v24; the costly case is allowing arguments to escape its frame, such as by assigning, passing, spreading, returning, or storing it. At 5,000,000 calls, an escaped arguments object measures 7.5× slower than rest parameters. The rule keeps one uniform remedy because rest parameters are never worse and reliably distinguishing every escaping use requires control-flow analysis.
Fixable: No · Options: No · Suggested severity: error
✗ Incorrect
ts
function first(): unknown {
return arguments[0];
}ts
let saved: IArguments | undefined;
function save(): void {
saved = arguments;
}✓ Correct
ts
function first(...values: unknown[]): unknown {
return values[0];
}ts
let saved: readonly unknown[] | undefined;
function save(...values: unknown[]): void {
saved = values;
}