46 lines
1018 B
JavaScript
46 lines
1018 B
JavaScript
//@ skip
|
|
// FIXME: This test is timing out and we should look into it. See: https://bugs.webkit.org/show_bug.cgi?id=202422
|
|
|
|
function test() {
|
|
function makeFoo(n) {
|
|
let src = "return function(a, b) { for (let i = 0; i < 20000; i++); return [";
|
|
for (let i = 0; i < n; i++) {
|
|
src += "...a";
|
|
if (i < n-1)
|
|
src += ",";
|
|
}
|
|
src += ",...b];}";
|
|
return (new Function(src))();
|
|
}
|
|
|
|
var NUM_SPREAD_ARGS = 8;
|
|
var foo = makeFoo(NUM_SPREAD_ARGS);
|
|
|
|
var b = [1.1, 1.1];
|
|
for (let i = 0; i < 10; i++)
|
|
foo(b, b);
|
|
|
|
function makeArray(len, v = 1.234) {
|
|
let a = [];
|
|
while (a.length < len)
|
|
a[a.length] = v;
|
|
return a;
|
|
}
|
|
|
|
var a = makeArray(0x20000040 / NUM_SPREAD_ARGS);
|
|
var c = []; c.length = 1;
|
|
|
|
var arr = foo(a, c);
|
|
print(arr.length);
|
|
}
|
|
|
|
var exception;
|
|
try {
|
|
test();
|
|
} catch (e) {
|
|
exception = e;
|
|
}
|
|
|
|
if (exception != "RangeError: Out of memory")
|
|
throw "FAILED";
|