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": "ExpressionStatement",
6 "expression": {
7 "type": "BinaryExpression",
8 "operator": "*",
9 "left": {
10 "type": "Identifier",
11 "name": "a"
12 },
13 "right": {
14 "type": "Identifier",
15 "name": "b"
16 }
17 }
18 }
19 ]
20 }
21 {
22 "type": "Program",
23 "body": [
24 {
25 "type": "ExpressionStatement",
26 "expression": {
27 "type": "BinaryExpression",
28 "operator": "/",
29 "left": {
30 "type": "Identifier",
31 "name": "a"
32 },
33 "right": {
34 "type": "Identifier",
35 "name": "b"
36 }
37 }
38 }
39 ]
40 }
41 {
42 "type": "Program",
43 "body": [
44 {
45 "type": "ExpressionStatement",
46 "expression": {
47 "type": "BinaryExpression",
48 "operator": "%",
49 "left": {
50 "type": "Identifier",
51 "name": "a"
52 },
53 "right": {
54 "type": "Identifier",
55 "name": "b"
56 }
57 }
58 }
59 ]
60 }
61 {
62 "type": "Program",
63 "body": [
64 {
65 "type": "ExpressionStatement",
66 "expression": {
67 "type": "BinaryExpression",
68 "operator": "+",
69 "left": {
70 "type": "Identifier",
71 "name": "a"
72 },
73 "right": {
74 "type": "Identifier",
75 "name": "b"
76 }
77 }
78 }
79 ]
80 }
81 {
82 "type": "Program",
83 "body": [
84 {
85 "type": "ExpressionStatement",
86 "expression": {
87 "type": "BinaryExpression",
88 "operator": "-",
89 "left": {
90 "type": "Identifier",
91 "name": "a"
92 },
93 "right": {
94 "type": "Identifier",
95 "name": "b"
96 }
97 }
98 }
99 ]
100 }
101 {
102 "type": "Program",
103 "body": [
104 {
105 "type": "ExpressionStatement",
106 "expression": {
107 "type": "BinaryExpression",
108 "operator": "<<",
109 "left": {
110 "type": "Identifier",
111 "name": "a"
112 },
113 "right": {
114 "type": "Identifier",
115 "name": "b"
116 }
117 }
118 }
119 ]
120 }
121 {
122 "type": "Program",
123 "body": [
124 {
125 "type": "ExpressionStatement",
126 "expression": {
127 "type": "BinaryExpression",
128 "operator": ">>",
129 "left": {
130 "type": "Identifier",
131 "name": "a"
132 },
133 "right": {
134 "type": "Identifier",
135 "name": "b"
136 }
137 }
138 }
139 ]
140 }
141 {
142 "type": "Program",
143 "body": [
144 {
145 "type": "ExpressionStatement",
146 "expression": {
147 "type": "BinaryExpression",
148 "operator": ">>>",
149 "left": {
150 "type": "Identifier",
151 "name": "a"
152 },
153 "right": {
154 "type": "Identifier",
155 "name": "b"
156 }
157 }
158 }
159 ]
160 }
161 {
162 "type": "Program",
163 "body": [
164 {
165 "type": "ExpressionStatement",
166 "expression": {
167 "type": "BinaryExpression",
168 "operator": "<",
169 "left": {
170 "type": "Identifier",
171 "name": "a"
172 },
173 "right": {
174 "type": "Identifier",
175 "name": "b"
176 }
177 }
178 }
179 ]
180 }
181 {
182 "type": "Program",
183 "body": [
184 {
185 "type": "ExpressionStatement",
186 "expression": {
187 "type": "BinaryExpression",
188 "operator": ">",
189 "left": {
190 "type": "Identifier",
191 "name": "a"
192 },
193 "right": {
194 "type": "Identifier",
195 "name": "b"
196 }
197 }
198 }
199 ]
200 }
201 {
202 "type": "Program",
203 "body": [
204 {
205 "type": "ExpressionStatement",
206 "expression": {
207 "type": "BinaryExpression",
208 "operator": "<=",
209 "left": {
210 "type": "Identifier",
211 "name": "a"
212 },
213 "right": {
214 "type": "Identifier",
215 "name": "b"
216 }
217 }
218 }
219 ]
220 }
221 {
222 "type": "Program",
223 "body": [
224 {
225 "type": "ExpressionStatement",
226 "expression": {
227 "type": "BinaryExpression",
228 "operator": ">=",
229 "left": {
230 "type": "Identifier",
231 "name": "a"
232 },
233 "right": {
234 "type": "Identifier",
235 "name": "b"
236 }
237 }
238 }
239 ]
240 }
241 {
242 "type": "Program",
243 "body": [
244 {
245 "type": "ExpressionStatement",
246 "expression": {
247 "type": "BinaryExpression",
248 "operator": "instanceof",
249 "left": {
250 "type": "Identifier",
251 "name": "a"
252 },
253 "right": {
254 "type": "Identifier",
255 "name": "b"
256 }
257 }
258 }
259 ]
260 }
261 {
262 "type": "Program",
263 "body": [
264 {
265 "type": "ExpressionStatement",
266 "expression": {
267 "type": "BinaryExpression",
268 "operator": "==",
269 "left": {
270 "type": "Identifier",
271 "name": "a"
272 },
273 "right": {
274 "type": "Identifier",
275 "name": "b"
276 }
277 }
278 }
279 ]
280 }
281 {
282 "type": "Program",
283 "body": [
284 {
285 "type": "ExpressionStatement",
286 "expression": {
287 "type": "BinaryExpression",
288 "operator": "!=",
289 "left": {
290 "type": "Identifier",
291 "name": "a"
292 },
293 "right": {
294 "type": "Identifier",
295 "name": "b"
296 }
297 }
298 }
299 ]
300 }
301 {
302 "type": "Program",
303 "body": [
304 {
305 "type": "ExpressionStatement",
306 "expression": {
307 "type": "BinaryExpression",
308 "operator": "===",
309 "left": {
310 "type": "Identifier",
311 "name": "a"
312 },
313 "right": {
314 "type": "Identifier",
315 "name": "b"
316 }
317 }
318 }
319 ]
320 }
321 {
322 "type": "Program",
323 "body": [
324 {
325 "type": "ExpressionStatement",
326 "expression": {
327 "type": "BinaryExpression",
328 "operator": "!==",
329 "left": {
330 "type": "Identifier",
331 "name": "a"
332 },
333 "right": {
334 "type": "Identifier",
335 "name": "b"
336 }
337 }
338 }
339 ]
340 }
341 {
342 "type": "Program",
343 "body": [
344 {
345 "type": "ExpressionStatement",
346 "expression": {
347 "type": "BinaryExpression",
348 "operator": "&",
349 "left": {
350 "type": "Identifier",
351 "name": "a"
352 },
353 "right": {
354 "type": "Identifier",
355 "name": "b"
356 }
357 }
358 }
359 ]
360 }
361 {
362 "type": "Program",
363 "body": [
364 {
365 "type": "ExpressionStatement",
366 "expression": {
367 "type": "BinaryExpression",
368 "operator": "^",
369 "left": {
370 "type": "Identifier",
371 "name": "a"
372 },
373 "right": {
374 "type": "Identifier",
375 "name": "b"
376 }
377 }
378 }
379 ]
380 }
381 {
382 "type": "Program",
383 "body": [
384 {
385 "type": "ExpressionStatement",
386 "expression": {
387 "type": "BinaryExpression",
388 "operator": "|",
389 "left": {
390 "type": "Identifier",
391 "name": "a"
392 },
393 "right": {
394 "type": "Identifier",
395 "name": "b"
396 }
397 }
398 }
399 ]
400 }
401 {
402 "type": "Program",
403 "body": [
404 {
405 "type": "ExpressionStatement",
406 "expression": {
407 "type": "LogicalExpression",
408 "operator": "&&",
409 "left": {
410 "type": "Identifier",
411 "name": "a"
412 },
413 "right": {
414 "type": "Identifier",
415 "name": "b"
416 }
417 }
418 }
419 ]
420 }
421 {
422 "type": "Program",
423 "body": [
424 {
425 "type": "ExpressionStatement",
426 "expression": {
427 "type": "LogicalExpression",
428 "operator": "||",
429 "left": {
430 "type": "Identifier",
431 "name": "a"
432 },
433 "right": {
434 "type": "Identifier",
435 "name": "b"
436 }
437 }
438 }
439 ]
440 }