| 
									
										
										
										
											2020-04-23 00:33:13 +01:00
										 |  |  | load("test-common.js"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try { | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -07:00
										 |  |  |   var a = [1, 2, 3]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   assert(a.length === 3); | 
					
						
							|  |  |  |   assert(a[0] === 1); | 
					
						
							|  |  |  |   assert(a[1] === 2); | 
					
						
							|  |  |  |   assert(a[2] === 3); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   a.length = 5; | 
					
						
							|  |  |  |   assert(a.length === 5); | 
					
						
							|  |  |  |   assert(a[0] === 1); | 
					
						
							|  |  |  |   assert(a[1] === 2); | 
					
						
							|  |  |  |   assert(a[2] === 3); | 
					
						
							|  |  |  |   assert(a[3] === undefined); | 
					
						
							|  |  |  |   assert(a[4] === undefined); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   a.length = 1; | 
					
						
							|  |  |  |   assert(a.length === 1); | 
					
						
							|  |  |  |   assert(a[0] === 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   a.length = 0; | 
					
						
							|  |  |  |   assert(a.length === 0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   a.length = "42"; | 
					
						
							|  |  |  |   assert(a.length === 42); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   a.length = []; | 
					
						
							|  |  |  |   assert(a.length === 0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   a.length = true; | 
					
						
							|  |  |  |   assert(a.length === 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   [undefined, "foo", -1, Infinity, -Infinity, NaN].forEach(value => { | 
					
						
							|  |  |  |     assertThrowsError( | 
					
						
							|  |  |  |       () => { | 
					
						
							|  |  |  |         a.length = value; | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         error: RangeError, | 
					
						
							|  |  |  |         message: "Invalid array length", | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2020-04-23 00:33:13 +01:00
										 |  |  |     assert(a.length === 1); | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -07:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2020-04-23 00:33:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -07:00
										 |  |  |   console.log("PASS"); | 
					
						
							| 
									
										
										
										
											2020-04-23 00:33:13 +01:00
										 |  |  | } catch (e) { | 
					
						
							| 
									
										
										
										
											2020-07-05 09:27:00 -07:00
										 |  |  |   console.log("FAIL: " + e); | 
					
						
							| 
									
										
										
										
											2020-04-23 00:33:13 +01:00
										 |  |  | } |