mirror of
https://github.com/RGBCube/serenity
synced 2025-07-02 15:32:13 +00:00
LibJS: Implement a very hackish "arguments" object
We now lazily create an "arguments" array inside functions when code tries to access it. This doesn't follow the spec at all but still covers a lot of the basic uses of arguments, i.e "arguments.length" and "arguments[n]"
This commit is contained in:
parent
e6dadd9e5b
commit
cc14b5a6d7
4 changed files with 39 additions and 0 deletions
16
Libraries/LibJS/Tests/arguments-object.js
Normal file
16
Libraries/LibJS/Tests/arguments-object.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
test("basic arguments object", () => {
|
||||
function foo() {
|
||||
return arguments.length;
|
||||
}
|
||||
expect(foo()).toBe(0);
|
||||
expect(foo(1)).toBe(1);
|
||||
expect(foo(1, 2)).toBe(2);
|
||||
expect(foo(1, 2, 3)).toBe(3);
|
||||
|
||||
function bar() {
|
||||
return arguments[1];
|
||||
}
|
||||
expect(bar("hello", "friends", ":^)")).toBe("friends");
|
||||
expect(bar("hello")).toBe(undefined);
|
||||
});
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue