arguments-custom-properties-gc.js   [plain text]


function makeBaseArguments() {
    return arguments;
}

noInline(makeBaseArguments);

function makeArray(length) {
    var array = new Array(length);
    for (var i = 0; i < length; ++i)
        array[i] = 99999;
    return array;
}

noInline(makeArray);

function cons(f) {
    var result = makeBaseArguments();
    result.f = f;
    return result;
}

var array = [];
for (var i = 0; i < 100000; ++i)
    array.push(cons(i));

for (var i = 0; i < 1000000; ++i) {
    var j = (i * 3) % array.length;
    array[j] = cons(j);
    
    makeArray(i % 7);
}

for (var i = 0; i < array.length; ++i) {
    if (array[i].f != i)
        throw "Error: bad value of f at " + i + ": " + array[i].f;
}