| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  | load("test-common.js"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function testArray(arr) { | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -07:00
										 |  |  |   return arr.length === 4 && arr[0] === 0 && arr[1] === 1 && arr[2] === 2 && arr[3] === 3; | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try { | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -07:00
										 |  |  |   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( | 
					
						
							|  |  |  |     () => { | 
					
						
							|  |  |  |       [...1]; | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       error: TypeError, | 
					
						
							|  |  |  |       message: "1 is not iterable", | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   assertThrowsError( | 
					
						
							|  |  |  |     () => { | 
					
						
							|  |  |  |       [...{}]; | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       error: TypeError, | 
					
						
							|  |  |  |       message: "[object Object] is not iterable", | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   console.log("PASS"); | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  | } catch (e) { | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -07:00
										 |  |  |   console.log("FAIL: " + e); | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  | } |