new-array-storage-array-with-size.js   [plain text]


function foo(x) {
    return new Array(x);
}

noInline(foo);

// Warm up up to create array storage.
for (var i = 0; i < 10000; ++i) {
    var array = foo(10);
    array.__defineSetter__(0, function(v) { });
}

function test(size) {
    var result = foo(size);
    if (result.length != size)
        throw "Error: bad result: " + result;
    var sawThings = false;
    for (var s in result)
        sawThings = true;
    if (sawThings)
        throw "Error: array is in bad state: " + result;
    result[0] = "42.5";
    if (result[0] != "42.5")
        throw "Error: array is in wierd state: " + result;
}

for (var i = 0; i < 100000; ++i) {
    test(10);
}