mirror of
https://github.com/RGBCube/serenity
synced 2026-01-19 17:21:00 +00:00
- A regular function can have duplicate parameters except in strict mode
or if its parameter list is not "simple" (has a default or rest
parameter)
- An arrow function can never have duplicate parameters
Compared to other engines I opted for more useful syntax error messages
than a generic "duplicate parameter name not allowed in this context":
"use strict"; function test(foo, foo) {}
^
Uncaught exception: [SyntaxError]: Duplicate parameter 'foo' not allowed in strict mode (line: 1, column: 34)
function test(foo, foo = 1) {}
^
Uncaught exception: [SyntaxError]: Duplicate parameter 'foo' not allowed in function with default parameter (line: 1, column: 20)
function test(foo, ...foo) {}
^
Uncaught exception: [SyntaxError]: Duplicate parameter 'foo' not allowed in function with rest parameter (line: 1, column: 23)
(foo, foo) => {}
^
Uncaught exception: [SyntaxError]: Duplicate parameter 'foo' not allowed in arrow function (line: 1, column: 7)
|
||
|---|---|---|
| .. | ||
| Array | ||
| BigInt | ||
| Boolean | ||
| Date | ||
| Error | ||
| Function | ||
| functions | ||
| Infinity | ||
| JSON | ||
| Math | ||
| NaN | ||
| Number | ||
| Object | ||
| Proxy | ||
| Reflect | ||
| String | ||
| Symbol | ||