| function f() { | |
| return 20; | |
| } | |
| noInline(f); | |
| function bar(b) { | |
| if (b) | |
| throw new Error("blah!"); | |
| } | |
| function Foo(b) { | |
| try { | |
| this.value = bar(b); | |
| } catch(e) { | |
| this.value = e.toString(); | |
| } | |
| f(this.value, b); | |
| } | |
| noInline(Foo); | |
| for (var i = 1; i < 1000; i++) { | |
| let value = new Foo(i % 3 === 0); | |
| if (i % 3 === 0 && value.value !== "Error: blah!") | |
| throw new Error("bad value: " + value.value); | |
| } |