X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/tests/stress/poly-call-exit.js diff --git a/tests/stress/poly-call-exit.js b/tests/stress/poly-call-exit.js new file mode 100644 index 0000000..eadd16a --- /dev/null +++ b/tests/stress/poly-call-exit.js @@ -0,0 +1,29 @@ +(function() { + function foo(x) { return 1; } + function bar(x) { return x; } + function baz(x) { return x + 1; } + + var n = 1000000; + + var result = (function(o) { + var f = foo; + var g = bar; + var h = baz; + + var result = 0; + for (var i = 0; i < n; ++i) { + if (i == n - 1) + f = h; + result += f(o.f); + + var tmp = f; + f = g; + g = tmp; + } + + return result; + })({f:42}); + + if (result != ((n / 2 - 1) * 42) + (n / 2 * 1) + (42 + 1)) + throw "Error: bad result: " + result; +})();