Invalid flags in a RegExp literal should be an early SyntaxError
[WebKit-https.git] / JSTests / stress / ftl-try-catch-getter-ic-fail-to-call-operation-throw-error.js
1 function assert(b) {
2     if (!b)
3         throw new Error("bad value")
4 }
5 noInline(assert);
6
7 let oThrow = {
8     x: 20,
9     y: 40,
10     z: 50,
11     get f() { throw new Error("Hello World!"); }
12 };
13
14 let o1 = {
15     x: 20,
16     f: 40
17 };
18
19 let o2 = {
20     x: 20,
21     y: 50,
22     get f() { return 20; }
23 };
24
25 function foo(f) {
26     let o = f();
27     try {
28         o = o.f;
29     } catch(e) {
30         assert(o === oThrow); // Make sure this is not undefined when we have an IC miss and an exception at the same time.
31     }
32 }
33 noInline(foo);
34
35 let i;
36 let flag = false;
37 function f() {
38     if (flag)
39         return oThrow;
40     if (i % 2)
41         return o1;
42     return o2;
43 }
44 noInline(f);
45 for (i = 0; i < 100000; i++) {
46     foo(f);
47 }
48 flag = true;
49 foo(f);