[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / get-by-id-strict-nested-arguments-2.js
1 let warm = 1000;
2
3 function foo(f) {
4     return f.arguments;
5 }
6 noInline(foo);
7
8 let caught = 0;
9
10 function bar() {
11     for (let i = 0; i < warm; ++i)
12         foo(bar);
13     const x = function baz1() { "use strict"; return 42; };
14     const y = function baz2() { "use strict"; return 0xc0defefe; };
15     return [x, y];
16 }
17
18 bar();
19 bar();
20 const [baz1, baz2] = bar();
21
22
23 if (baz1() !== 42)
24     throw new Error(`bad!`);
25
26 if (baz2() !== 0xc0defefe)
27     throw new Error(`bad!`);
28
29 try {
30     foo(baz1);
31 } catch (e) {
32     ++caught;
33 }
34
35 try {
36     foo(baz2);
37 } catch (e) {
38     ++caught;
39 }
40
41 if (caught !== 2)
42     throw new Error(`bad!`);