mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 19:12:43 +00:00 
			
		
		
		
	LibJS: Implement Array length setter
This commit is contained in:
		
							parent
							
								
									d5d3e0b4ed
								
							
						
					
					
						commit
						418092a71a
					
				
					 4 changed files with 74 additions and 19 deletions
				
			
		
							
								
								
									
										48
									
								
								Libraries/LibJS/Tests/array-length-setter.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								Libraries/LibJS/Tests/array-length-setter.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,48 @@ | |||
| load("test-common.js"); | ||||
| 
 | ||||
| try { | ||||
|     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" | ||||
|         }); | ||||
|         assert(a.length === 1); | ||||
|     }); | ||||
| 
 | ||||
|     console.log("PASS"); | ||||
| } catch (e) { | ||||
|     console.log("FAIL: " + e); | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Linus Groh
						Linus Groh