X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/tests/stress/function-sinking-osrexit.js diff --git a/tests/stress/function-sinking-osrexit.js b/tests/stress/function-sinking-osrexit.js new file mode 100644 index 0000000..7f33c7d --- /dev/null +++ b/tests/stress/function-sinking-osrexit.js @@ -0,0 +1,21 @@ +function sink (p, q) { + var g = function(x) { return x; }; + if (p) { if (q) OSRExit(); return g; } + return function(x) { return x; }; +} +noInline(sink); + +for (var i = 0; i < 10000; ++i) { + var f = sink(true, false); + var result = f(42); + if (result != 42) + throw "Error: expected 42 but got " + result; +} + +// At this point, the function should be compiled down to the FTL + +// Check that the function is properly allocated on OSR exit +var f = sink(true, true); +var result = f(42); +if (result != 42) + throw "Error: expected 42 but got " + result;