mirror of
https://github.com/tc39/test262.git
synced 2025-05-03 22:40:28 +02:00
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
70 lines
1.3 KiB
JavaScript
70 lines
1.3 KiB
JavaScript
forceGCSlowPaths(); // Force OOM error in FTL MakeRope to happen in a lazy slow path.
|
|
|
|
function assert(b) {
|
|
if (!b)
|
|
throw new Error("Bad assertion");
|
|
}
|
|
|
|
function a() { return "a"; }
|
|
noInline(a);
|
|
function b() { return "b"; }
|
|
noInline(b);
|
|
function c() { return "c"; }
|
|
noInline(c);
|
|
function d() { return "d"; }
|
|
noInline(d);
|
|
function e() { return "e"; }
|
|
noInline(e);
|
|
function f() { return "f"; }
|
|
noInline(f);
|
|
function g() { return "g"; }
|
|
noInline(g);
|
|
|
|
let expString = "a";
|
|
let exponentialBlowup = false;
|
|
let shouldBreak = false;
|
|
function foo(fun, left, right) {
|
|
let x = fun();
|
|
let r = left + right;
|
|
|
|
var _a = a();
|
|
var _b = b();
|
|
var _c = c();
|
|
var _d = d();
|
|
var _e = e();
|
|
var _f = f();
|
|
var _g = g();
|
|
try {
|
|
expString = expString + expString;
|
|
} catch(e) {
|
|
shouldBreak = true;
|
|
|
|
assert(_b === "b");
|
|
assert(_c === "c");
|
|
assert(_d === "d");
|
|
assert(_e === "e");
|
|
assert(_f === "f");
|
|
assert(_g === "g");
|
|
}
|
|
return x + r;
|
|
}
|
|
noInline(foo);
|
|
|
|
|
|
|
|
function blah() { return "blah"; }
|
|
noInline(blah);
|
|
|
|
for (let i = 0; i < 100000; i++) {
|
|
assert(foo(blah, "b", "a") === "blahba");
|
|
if (!exponentialBlowup)
|
|
expString = "a";
|
|
}
|
|
|
|
exponentialBlowup = true;
|
|
while (true) {
|
|
assert(foo(blah, "a", "b") === "blahab");
|
|
if (shouldBreak)
|
|
break;
|
|
}
|