| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  | load("test-common.js"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function testArray(arr) { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -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-06 07:37:45 -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-06 07:37:45 -07:00
										 |  |  |     console.log("FAIL: " + e); | 
					
						
							| 
									
										
										
										
											2020-04-26 23:05:37 -07:00
										 |  |  | } |