| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  | load("test-common.js"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function testArray(arr) { | 
					
						
							|  |  |  |     return arr.length === 4 && | 
					
						
							|  |  |  |         arr[0] === 0 && | 
					
						
							|  |  |  |         arr[1] === 1 && | 
					
						
							|  |  |  |         arr[2] === 2 && | 
					
						
							|  |  |  |         arr[3] === 3; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try { | 
					
						
							|  |  |  |     let arr = [0, ...[1, 2], 3]; | 
					
						
							|  |  |  |     assert(testArray(arr)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let a = [1, 2]; | 
					
						
							|  |  |  |     arr = [0, ...a, 3]; | 
					
						
							|  |  |  |     assert(testArray(arr)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let obj = { a: [1, 2] }; | 
					
						
							|  |  |  |     arr = [0, ...obj.a, 3]; | 
					
						
							|  |  |  |     assert(testArray(arr)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     arr = [...[], ...[...[0, 1, 2]], 3]; | 
					
						
							|  |  |  |     assert(testArray(arr)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     assertThrowsError(() => { | 
					
						
							| 
									
										
										
										
											2020-04-27 14:01:04 +01:00
										 |  |  |         [...1]; | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  |     }, { | 
					
						
							| 
									
										
										
										
											2020-04-27 14:01:04 +01:00
										 |  |  |         error: TypeError, | 
					
						
							|  |  |  |         message: "1 is not iterable", | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-15 13:39:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  |     assertThrowsError(() => { | 
					
						
							| 
									
										
										
										
											2020-04-27 14:01:04 +01:00
										 |  |  |         [...{}]; | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  |     }, { | 
					
						
							| 
									
										
										
										
											2020-04-27 14:01:04 +01:00
										 |  |  |         error: TypeError, | 
					
						
							|  |  |  |         message: "[object Object] is not iterable", | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     console.log("PASS"); | 
					
						
							|  |  |  | } catch (e) { | 
					
						
							|  |  |  |     console.log("FAIL: " + e); | 
					
						
							|  |  |  | } |