haikuwebkit/JSTests/stress/rest-parameter-allocation-e...

26 lines
476 B
JavaScript

function assert(b) {
if (!b)
throw new Error;
}
noInline(assert);
function foo(...args) {
return args[0];
}
noInline(foo);
for (let i = 0; i < 10000; i++) {
// Warm it up on both in bound and out of bound accesses.
if (i % 2)
assert(foo(i) === i);
else
assert(foo() === undefined);
}
let newProto = [50];
newProto.__proto__ = null;
Array.prototype.__proto__ = newProto;
for (let i = 0; i < 10000; i++)
assert(foo() === 50);