mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-31 13:20:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.1 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" });
 | |
| });
 | 
