property-cast-number.js (1207B)
1 // Copyright 2009 the Sputnik authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 info: | 6 A property name P (in the form of a string value) is an array index 7 if and only if ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal to 2^32 - 1 8 es5id: 15.4_A1.1_T3 9 description: Checking for number primitive 10 ---*/ 11 12 var x = []; 13 x[4294967296] = 1; 14 assert.sameValue(x[0], undefined, 'The value of x[0] is expected to equal undefined'); 15 assert.sameValue(x["4294967296"], 1, 'The value of x["4294967296"] is expected to be 1'); 16 17 var y = []; 18 y[4294967297] = 1; 19 if (y[1] !== undefined) { 20 throw new Test262Error('#3: y = []; y[4294967297] = 1; y[1] === undefined. Actual: ' + (y[1])); 21 } 22 23 //CHECK#4 24 if (y["4294967297"] !== 1) { 25 throw new Test262Error('#4: y = []; y[4294967297] = 1; y["4294967297"] === 1. Actual: ' + (y["4294967297"])); 26 } 27 28 //CHECK#5 29 var z = []; 30 z[1.1] = 1; 31 if (z[1] !== undefined) { 32 throw new Test262Error('#5: z = []; z[1.1] = 1; z[1] === undefined. Actual: ' + (z[1])); 33 } 34 35 //CHECK#6 36 if (z["1.1"] !== 1) { 37 throw new Test262Error('#6: z = []; z[1.1] = 1; z["1.1"] === 1. Actual: ' + (z["1.1"])); 38 } 39 40 reportCompare(0, 0);