X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/4be4e30906bcb8ee30b4d189205cb70bad6707ce..81345200c95645a1b0d2635520f96ad55dfde63f:/tests/stress/runtime-throw-through-optimized-code.js diff --git a/tests/stress/runtime-throw-through-optimized-code.js b/tests/stress/runtime-throw-through-optimized-code.js new file mode 100644 index 0000000..1d9df1d --- /dev/null +++ b/tests/stress/runtime-throw-through-optimized-code.js @@ -0,0 +1,33 @@ +function foo(a, s) { + return a[s] + 1; +} + +var shouldThrow = false; +function bar() { + if (shouldThrow) + throw "hello"; + return 42; +} + +var a = {}; +a.__defineGetter__("bar", bar); + +noInline(foo); +noInline(bar); + +for (var i = 0; i < 100000; ++i) { + var result = foo(a, "bar"); + if (result != 43) + throw "Error: bad result: " + result; +} + +var didThrow; +try { + shouldThrow = true; + foo(a, "bar"); +} catch (e) { + didThrow = e; +} + +if (didThrow != "hello") + throw "Error: didn't throw or threw wrong exception: " + didThrow;