indexzero
11/28/2012 - 9:41 AM

fun with JS arrays

fun with JS arrays

var a = [];

a[Math.pow(2, 32) - 2] = "max index";                 // highest non-expando indexed property
console.log(a.length === Math.pow(2, 32) - 1);        // true

try {
    a.push("whoa", "EVEN MOAR WHOA");
} catch (e) {
    console.log(e instanceof RangeError);             // true
}
console.log(a.length === Math.pow(2, 32) - 1);        // true
console.log(a[Math.pow(2, 32) - 1] === "whoa");       // true
console.log(a[Math.pow(2, 32)] === "EVEN MOAR WHOA"); // true