Fri, 21 Feb 2014 17:58:33 +0530
8033745: Reflect upon Nashorn reflection
Reviewed-by: ahgross, attila, jlaskey
1 {
2 "type": "Program",
3 "body": [
4 {
5 "type": "BlockStatement",
6 "block": {
7 "type": "BlockStatement",
8 "body": [
9 {
10 "type": "TryStatement",
11 "block": {
12 "type": "BlockStatement",
13 "body": []
14 },
15 "guardedHandlers": [],
16 "handler": {
17 "type": "CatchClause",
18 "param": {
19 "type": "Identifier",
20 "name": "e"
21 },
22 "body": {
23 "type": "BlockStatement",
24 "body": []
25 }
26 },
27 "finalizer": null
28 }
29 ]
30 }
31 }
32 ]
33 }
34 {
35 "type": "Program",
36 "body": [
37 {
38 "type": "BlockStatement",
39 "block": {
40 "type": "BlockStatement",
41 "body": [
42 {
43 "type": "TryStatement",
44 "block": {
45 "type": "BlockStatement",
46 "body": []
47 },
48 "guardedHandlers": [],
49 "handler": {
50 "type": "CatchClause",
51 "param": {
52 "type": "Identifier",
53 "name": "e"
54 },
55 "body": {
56 "type": "BlockStatement",
57 "body": []
58 }
59 },
60 "finalizer": {
61 "type": "BlockStatement",
62 "body": []
63 }
64 }
65 ]
66 }
67 }
68 ]
69 }
70 {
71 "type": "Program",
72 "body": [
73 {
74 "type": "BlockStatement",
75 "block": {
76 "type": "BlockStatement",
77 "body": [
78 {
79 "type": "TryStatement",
80 "block": {
81 "type": "BlockStatement",
82 "body": []
83 },
84 "guardedHandlers": [],
85 "handler": null,
86 "finalizer": {
87 "type": "BlockStatement",
88 "body": []
89 }
90 }
91 ]
92 }
93 }
94 ]
95 }
96 {
97 "type": "Program",
98 "body": [
99 {
100 "type": "BlockStatement",
101 "block": {
102 "type": "BlockStatement",
103 "body": [
104 {
105 "type": "TryStatement",
106 "block": {
107 "type": "BlockStatement",
108 "body": []
109 },
110 "guardedHandlers": [],
111 "handler": {
112 "type": "CatchClause",
113 "param": {
114 "type": "Identifier",
115 "name": "e"
116 },
117 "body": {
118 "type": "BlockStatement",
119 "body": [
120 {
121 "type": "ExpressionStatement",
122 "expression": {
123 "type": "CallExpression",
124 "callee": {
125 "type": "Identifier",
126 "name": "handle"
127 },
128 "arguments": []
129 }
130 }
131 ]
132 }
133 },
134 "finalizer": null
135 }
136 ]
137 }
138 }
139 ]
140 }
141 {
142 "type": "Program",
143 "body": [
144 {
145 "type": "BlockStatement",
146 "block": {
147 "type": "BlockStatement",
148 "body": [
149 {
150 "type": "TryStatement",
151 "block": {
152 "type": "BlockStatement",
153 "body": [
154 {
155 "type": "ExpressionStatement",
156 "expression": {
157 "type": "CallExpression",
158 "callee": {
159 "type": "Identifier",
160 "name": "that"
161 },
162 "arguments": []
163 }
164 }
165 ]
166 },
167 "guardedHandlers": [],
168 "handler": {
169 "type": "CatchClause",
170 "param": {
171 "type": "Identifier",
172 "name": "e"
173 },
174 "body": {
175 "type": "BlockStatement",
176 "body": [
177 {
178 "type": "ExpressionStatement",
179 "expression": {
180 "type": "CallExpression",
181 "callee": {
182 "type": "Identifier",
183 "name": "handle"
184 },
185 "arguments": []
186 }
187 }
188 ]
189 }
190 },
191 "finalizer": {
192 "type": "BlockStatement",
193 "body": [
194 {
195 "type": "ExpressionStatement",
196 "expression": {
197 "type": "CallExpression",
198 "callee": {
199 "type": "Identifier",
200 "name": "clean"
201 },
202 "arguments": []
203 }
204 }
205 ]
206 }
207 }
208 ]
209 }
210 }
211 ]
212 }
213 {
214 "type": "Program",
215 "body": [
216 {
217 "type": "BlockStatement",
218 "block": {
219 "type": "BlockStatement",
220 "body": [
221 {
222 "type": "TryStatement",
223 "block": {
224 "type": "BlockStatement",
225 "body": [
226 {
227 "type": "ExpressionStatement",
228 "expression": {
229 "type": "CallExpression",
230 "callee": {
231 "type": "Identifier",
232 "name": "that"
233 },
234 "arguments": []
235 }
236 }
237 ]
238 },
239 "guardedHandlers": [
240 {
241 "type": "CatchClause",
242 "param": {
243 "type": "Identifier",
244 "name": "e"
245 },
246 "guard": {
247 "type": "BinaryExpression",
248 "operator": "instanceof",
249 "left": {
250 "type": "Identifier",
251 "name": "e"
252 },
253 "right": {
254 "type": "Identifier",
255 "name": "TypeError"
256 }
257 },
258 "body": {
259 "type": "BlockStatement",
260 "body": [
261 {
262 "type": "ExpressionStatement",
263 "expression": {
264 "type": "CallExpression",
265 "callee": {
266 "type": "Identifier",
267 "name": "handle"
268 },
269 "arguments": []
270 }
271 }
272 ]
273 }
274 }
275 ],
276 "handler": {
277 "type": "CatchClause",
278 "param": {
279 "type": "Identifier",
280 "name": "e"
281 },
282 "body": {
283 "type": "BlockStatement",
284 "body": [
285 {
286 "type": "ExpressionStatement",
287 "expression": {
288 "type": "CallExpression",
289 "callee": {
290 "type": "Identifier",
291 "name": "rest"
292 },
293 "arguments": []
294 }
295 }
296 ]
297 }
298 },
299 "finalizer": null
300 }
301 ]
302 }
303 }
304 ]
305 }