blob: 6e8fb59da346d8a3ed612a948d6fc58aba74e015 [file] [log] [blame]
sbarati@apple.com9aacac42015-10-08 19:37:28 +00001function assert(b) {
2 if (!b) throw new Error("b");
3}
4noInline(assert);
5
6
7let i;
8var o1 = {
9 get f() {
10 if (i === -1000)
11 throw new Error("hello");
12 return 20;
13 }
14};
15
16var o2 = {
17 f: 40
18}
19
20var o3 = {
21 x: 100,
22 f: 50
23}
24
25function bar(i) {
26 if (i === -1000)
27 return o1;
28
29 if (i % 2)
30 return o3;
31 else
32 return o2;
33}
34noInline(bar);
35
36function foo(i) {
37 var o = bar(i);
38 var v;
39 try {
40 v = o.f
41 } catch(e) {
42 assert(o === o1);
43 }
44}
45noInline(foo);
46
47foo(i);
48for (i = 0; i < 1000; i++)
49 foo(i);
50
51i = -1000;
52for (let j = 0; j < 1000; j++)
53 foo(i);