[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / dont-unwind-past-vm-entry-frame.js
1 "use strict";
2
3 // This test passes when JSC doesn't crash.
4
5 let p = new Proxy(function() { }, {
6     apply: function() {
7         return bar();
8     }
9 });
10
11 function bar() {
12     let item = getItem();
13     return item.foo;
14 }
15
16 let i;
17 let shouldReturnBad = false;
18 let good = [function() {return 1}, {b: 20}, {c: 40}, {d:50}]
19 let bad = [{asdfhasf: 20}, {e:50}, {j:70}, {k:100}, null];
20 function getItem() {
21     if (shouldReturnBad)
22         return bad[i % bad.length];
23     return good[i % good.length];
24 }
25 noInline(getItem);
26
27 function start() {
28     for (i = 0; i < 1000; i++) {
29         p();
30     }
31
32     shouldReturnBad = true;
33     for (i = 0; i < 10000; i++) {
34         try {
35             p();
36         } catch(e) { }
37     }
38 }
39 start();