Array index handling
Starting with Windows Internet Explorer 9, array elements with large indices are handled differently than in earlier versions.
Windows Internet Explorer 8 does not conform to the ECMAScript (3rd edition) specification in situations where the initial value of the array's length property is greater than 2E+31-1 (that is, 2147483647). When an Array element is created with an index greater than 2147483647, the index of new element created will be a negative integer.
Internet Explorer 9 correctly handles Array elements that use indices between 2E+31-1 and 2E+32-2. The Internet Explorer 8 behavior is not replicated in any of the Internet Explorer 9 document modes.
This can be observed when an element is pushed to an array of length 2E+31-1.
If your webpage uses large arrays, test your code between Internet Explorer 8 and Internet Explorer 9.
The following example prints "true" in Internet Explorer 8, but prints "false" in Internet Explorer 9.
function test() {
var arr = new Array();
arr[2147483650] = 10000;
arr.push(10);
document.write(arr["-2147483645"] == 10);
}
test();