| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | test("rest parameter with no arguments", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     function foo(...a) { | 
					
						
							|  |  |  |         expect(a).toBeInstanceOf(Array); | 
					
						
							|  |  |  |         expect(a).toHaveLength(0); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     foo(); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2020-05-04 16:05:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | test("rest parameter with arguments", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     function foo(...a) { | 
					
						
							|  |  |  |         expect(a).toEqual(["foo", 123, undefined, { foo: "bar" }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     foo("foo", 123, undefined, { foo: "bar" }); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2020-05-04 16:05:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | test("rest parameter after normal parameters with no arguments", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     function foo(a, b, ...c) { | 
					
						
							|  |  |  |         expect(a).toBe("foo"); | 
					
						
							|  |  |  |         expect(b).toBe(123); | 
					
						
							|  |  |  |         expect(c).toEqual([]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     foo("foo", 123); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2020-05-04 16:05:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | test("rest parameter after normal parameters with arguments", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     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" }); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2020-05-04 16:05:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | test("basic arrow function rest parameters", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     let foo = (...a) => { | 
					
						
							|  |  |  |         expect(a).toBeInstanceOf(Array); | 
					
						
							|  |  |  |         expect(a).toHaveLength(0); | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     foo(); | 
					
						
							| 
									
										
										
										
											2020-05-04 16:05:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     foo = (a, b, ...c) => { | 
					
						
							|  |  |  |         expect(a).toBe("foo"); | 
					
						
							|  |  |  |         expect(b).toBe(123); | 
					
						
							|  |  |  |         expect(c).toEqual([undefined, { foo: "bar" }]); | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     foo("foo", 123, undefined, { foo: "bar" }); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | }); |