--- /dev/null
+function bar(f) {
+ throw f;
+}
+
+noInline(bar);
+
+function foo(a) {
+ var x = a + 1;
+ for (;;) {
+ bar(function() { return x; });
+ }
+}
+
+noInline(foo);
+
+for (var i = 0; i < 10000; ++i) {
+ try {
+ foo(i);
+ } catch (f) {
+ var result = f();
+ if (result != i + 1)
+ throw "Error: bad result for i = " + i + ": " + result;
+ }
+}
+