LibJS: Function.length respects default and rest parameters

"[Function.length is] the number of formal parameters. This number
excludes the rest parameter and only includes parameters before
the first one with a default value." - MDN
This commit is contained in:
Matthew Olsson 2020-05-05 20:02:14 -07:00 committed by Andreas Kling
commit 838390171c
Notes: sideshowbarker 2024-07-19 06:55:56 +09:00
6 changed files with 43 additions and 15 deletions

View file

@ -11,6 +11,16 @@ try {
assert((bar.length = 5) === 5);
assert(bar.length === 3);
function baz(a, b = 1, c) {}
assert(baz.length === 1);
assert((baz.length = 5) === 5);
assert(baz.length === 1);
function qux(a, b, ...c) {}
assert(qux.length === 2);
assert((qux.length = 5) === 5);
assert(qux.length === 2);
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e);