37 lines
689 B
JavaScript
37 lines
689 B
JavaScript
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;
|
|
}
|