mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-25 17:39:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| test("rest parameter with no arguments", () => {
 | |
|     function foo(...a) {
 | |
|         expect(a).toBeInstanceOf(Array);
 | |
|         expect(a).toHaveLength(0);
 | |
|     }
 | |
|     foo();
 | |
| });
 | |
| 
 | |
| test("rest parameter with arguments", () => {
 | |
|     function foo(...a) {
 | |
|         expect(a).toEqual(["foo", 123, undefined, { foo: "bar" }]);
 | |
|     }
 | |
|     foo("foo", 123, undefined, { foo: "bar" });
 | |
| });
 | |
| 
 | |
| test("rest parameter after normal parameters with no arguments", () => {
 | |
|     function foo(a, b, ...c) {
 | |
|         expect(a).toBe("foo");
 | |
|         expect(b).toBe(123);
 | |
|         expect(c).toEqual([]);
 | |
|     }
 | |
|     foo("foo", 123);
 | |
| });
 | |
| 
 | |
| test("rest parameter after normal parameters with arguments", () => {
 | |
|     function foo(a, b, ...c) {
 | |
|         expect(a).toBe("foo");
 | |
|         expect(b).toBe(123);
 | |
|         expect(c).toEqual([undefined, { foo: "bar" }]);
 | |
|     }
 | |
|     foo("foo", 123, undefined, { foo: "bar" });
 | |
| });
 | |
| 
 | |
| test("basic arrow function rest parameters", () => {
 | |
|     let foo = (...a) => {
 | |
|         expect(a).toBeInstanceOf(Array);
 | |
|         expect(a).toHaveLength(0);
 | |
|     };
 | |
|     foo();
 | |
| 
 | |
|     foo = (a, b, ...c) => {
 | |
|         expect(a).toBe("foo");
 | |
|         expect(b).toBe(123);
 | |
|         expect(c).toEqual([undefined, { foo: "bar" }]);
 | |
|     };
 | |
|     foo("foo", 123, undefined, { foo: "bar" });
 | |
| });
 |