Unreviewed, rolling out r215476.
[WebKit-https.git] / JSTests / stress / variable-under-tdz-eval-tricky.js
1 function assert(b) {
2     if (!b)
3         throw new Error("Bad!")
4 }
5
6
7 {
8     let threw = false;
9     try {
10         let underTDZ = {
11             prop: eval("function pleaseTDZMe(){ return underTDZ; }; pleaseTDZMe();")
12         };
13     } catch(e) {
14         threw = e instanceof ReferenceError;
15     }
16     assert(threw);
17 }
18
19 {
20     let threw = false;
21     try {
22         const underTDZ = {
23             prop: eval("function pleaseTDZMe(){ return underTDZ; }; pleaseTDZMe();")
24         };
25     } catch(e) {
26         threw = e instanceof ReferenceError;
27     }
28     assert(threw);
29 }
30
31 {
32     let threw = false;
33     try {
34         class underTDZ extends eval("function pleaseTDZMe() { return underTDZ; }; pleaseTDZMe()") { };
35     } catch(e) {
36         threw = e instanceof ReferenceError;
37     }
38     assert(threw);
39 }
40
41
42     let threw = false;
43     try {
44         let b = {a: eval("function b(){ return b; }"), b: (1, eval)("(b())")};
45     } catch(e) {
46         threw = e instanceof ReferenceError;
47     }
48     assert(threw);
49 }
50
51
52     let threw = false;
53     try {
54         let {b} = {a: eval("function b(){ return b; }"), b: (1, eval)("print(b())")};
55     } catch(e) {
56         threw = e instanceof ReferenceError;
57     }
58     assert(threw);
59 }
60