JDK-8078049.js revision 1259:811bbe3c6959
1/*
2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24/**
25 * JDK-8078049: Nashorn crashes when attempting to start the new tsc.js compiler for TypeScript
26 *
27 * @test
28 * @run
29 * @fork
30 * @option -Dnashorn.debug=true
31 */
32
33var m = 1;
34
35var fields = {
36    p0: { code: 0, category: m },
37    p1: { code: 1, category: m },
38    p2: { code: 2, category: m }
39};
40
41var spill = {
42    p0: { code: 0, category: m },
43    p1: { code: 1, category: m },
44    p2: { code: 2, category: m },
45    p3: { code: 3, category: m },
46    p4: { code: 4, category: m },
47    p5: { code: 5, category: m },
48    p6: { code: 6, category: m },
49    p7: { code: 7, category: m },
50    p8: { code: 8, category: m },
51    p9: { code: 9, category: m },
52    p10: { code: 10, category: m },
53    p11: { code: 11, category: m },
54    p12: { code: 12, category: m },
55    p13: { code: 13, category: m },
56    p14: { code: 14, category: m },
57    p15: { code: 15, category: m },
58    p16: { code: 16, category: m },
59    p17: { code: 17, category: m },
60    p18: { code: 18, category: m },
61    p19: { code: 19, category: m },
62    p20: { code: 20, category: m },
63    p21: { code: 21, category: m },
64    p22: { code: 22, category: m },
65    p23: { code: 23, category: m },
66    p24: { code: 24, category: m },
67    p25: { code: 25, category: m },
68    p26: { code: 26, category: m },
69    p27: { code: 27, category: m },
70    p28: { code: 28, category: m },
71    p29: { code: 29, category: m },
72    p30: { code: 30, category: m },
73    p31: { code: 31, category: m },
74    p32: { code: 32, category: m },
75    p33: { code: 33, category: m },
76    p34: { code: 34, category: m },
77    p35: { code: 35, category: m },
78    p36: { code: 36, category: m },
79    p37: { code: 37, category: m },
80    p38: { code: 38, category: m },
81    p39: { code: 39, category: m },
82    p40: { code: 40, category: m },
83    p41: { code: 41, category: m },
84    p42: { code: 42, category: m },
85    p43: { code: 43, category: m },
86    p44: { code: 44, category: m },
87    p45: { code: 45, category: m },
88    p46: { code: 46, category: m },
89    p47: { code: 47, category: m },
90    p48: { code: 48, category: m },
91    p49: { code: 49, category: m },
92    p50: { code: 50, category: m },
93    p51: { code: 51, category: m },
94    p52: { code: 52, category: m },
95    p53: { code: 53, category: m },
96    p54: { code: 54, category: m },
97    p55: { code: 55, category: m },
98    p56: { code: 56, category: m },
99    p57: { code: 57, category: m },
100    p58: { code: 58, category: m },
101    p59: { code: 59, category: m },
102    p60: { code: 60, category: m },
103    p61: { code: 61, category: m },
104    p62: { code: 62, category: m },
105    p63: { code: 63, category: m },
106    p64: { code: 64, category: m },
107    p65: { code: 65, category: m },
108    p66: { code: 66, category: m },
109    p67: { code: 67, category: m },
110    p68: { code: 68, category: m },
111    p69: { code: 69, category: m },
112    p70: { code: 70, category: m },
113    p71: { code: 71, category: m },
114    p72: { code: 72, category: m },
115    p73: { code: 73, category: m },
116    p74: { code: 74, category: m },
117    p75: { code: 75, category: m },
118    p76: { code: 76, category: m },
119    p77: { code: 77, category: m },
120    p78: { code: 78, category: m },
121    p79: { code: 79, category: m },
122    p80: { code: 80, category: m },
123    p81: { code: 81, category: m },
124    p82: { code: 82, category: m },
125    p83: { code: 83, category: m },
126    p84: { code: 84, category: m },
127    p85: { code: 85, category: m },
128    p86: { code: 86, category: m },
129    p87: { code: 87, category: m },
130    p88: { code: 88, category: m },
131    p89: { code: 89, category: m },
132    p90: { code: 90, category: m },
133    p91: { code: 91, category: m },
134    p92: { code: 92, category: m },
135    p93: { code: 93, category: m },
136    p94: { code: 94, category: m },
137    p95: { code: 95, category: m },
138    p96: { code: 96, category: m },
139    p97: { code: 97, category: m },
140    p98: { code: 98, category: m },
141    p99: { code: 99, category: m },
142    p100: { code: 100, category: m },
143    p101: { code: 101, category: m },
144    p102: { code: 102, category: m },
145    p103: { code: 103, category: m },
146    p104: { code: 104, category: m },
147    p105: { code: 105, category: m },
148    p106: { code: 106, category: m },
149    p107: { code: 107, category: m },
150    p108: { code: 108, category: m },
151    p109: { code: 109, category: m },
152    p110: { code: 110, category: m },
153    p111: { code: 111, category: m },
154    p112: { code: 112, category: m },
155    p113: { code: 113, category: m },
156    p114: { code: 114, category: m },
157    p115: { code: 115, category: m },
158    p116: { code: 116, category: m },
159    p117: { code: 117, category: m },
160    p118: { code: 118, category: m },
161    p119: { code: 119, category: m },
162    p120: { code: 120, category: m },
163    p121: { code: 121, category: m },
164    p122: { code: 122, category: m },
165    p123: { code: 123, category: m },
166    p124: { code: 124, category: m },
167    p125: { code: 125, category: m },
168    p126: { code: 126, category: m },
169    p127: { code: 127, category: m },
170    p128: { code: 128, category: m },
171    p129: { code: 129, category: m },
172    p130: { code: 130, category: m },
173    p131: { code: 131, category: m },
174    p132: { code: 132, category: m },
175    p133: { code: 133, category: m },
176    p134: { code: 134, category: m },
177    p135: { code: 135, category: m },
178    p136: { code: 136, category: m },
179    p137: { code: 137, category: m },
180    p138: { code: 138, category: m },
181    p139: { code: 139, category: m },
182    p140: { code: 140, category: m },
183    p141: { code: 141, category: m },
184    p142: { code: 142, category: m },
185    p143: { code: 143, category: m },
186    p144: { code: 144, category: m },
187    p145: { code: 145, category: m },
188    p146: { code: 146, category: m },
189    p147: { code: 147, category: m },
190    p148: { code: 148, category: m },
191    p149: { code: 149, category: m },
192    p150: { code: 150, category: m },
193    p151: { code: 151, category: m },
194    p152: { code: 152, category: m },
195    p153: { code: 153, category: m },
196    p154: { code: 154, category: m },
197    p155: { code: 155, category: m },
198    p156: { code: 156, category: m },
199    p157: { code: 157, category: m },
200    p158: { code: 158, category: m },
201    p159: { code: 159, category: m },
202    p160: { code: 160, category: m },
203    p161: { code: 161, category: m },
204    p162: { code: 162, category: m },
205    p163: { code: 163, category: m },
206    p164: { code: 164, category: m },
207    p165: { code: 165, category: m },
208    p166: { code: 166, category: m },
209    p167: { code: 167, category: m },
210    p168: { code: 168, category: m },
211    p169: { code: 169, category: m },
212    p170: { code: 170, category: m },
213    p171: { code: 171, category: m },
214    p172: { code: 172, category: m },
215    p173: { code: 173, category: m },
216    p174: { code: 174, category: m },
217    p175: { code: 175, category: m },
218    p176: { code: 176, category: m },
219    p177: { code: 177, category: m },
220    p178: { code: 178, category: m },
221    p179: { code: 179, category: m },
222    p180: { code: 180, category: m },
223    p181: { code: 181, category: m },
224    p182: { code: 182, category: m },
225    p183: { code: 183, category: m },
226    p184: { code: 184, category: m },
227    p185: { code: 185, category: m },
228    p186: { code: 186, category: m },
229    p187: { code: 187, category: m },
230    p188: { code: 188, category: m },
231    p189: { code: 189, category: m },
232    p190: { code: 190, category: m },
233    p191: { code: 191, category: m },
234    p192: { code: 192, category: m },
235    p193: { code: 193, category: m },
236    p194: { code: 194, category: m },
237    p195: { code: 195, category: m },
238    p196: { code: 196, category: m },
239    p197: { code: 197, category: m },
240    p198: { code: 198, category: m },
241    p199: { code: 199, category: m },
242    p200: { code: 200, category: m },
243    p201: { code: 201, category: m },
244    p202: { code: 202, category: m },
245    p203: { code: 203, category: m },
246    p204: { code: 204, category: m },
247    p205: { code: 205, category: m },
248    p206: { code: 206, category: m },
249    p207: { code: 207, category: m },
250    p208: { code: 208, category: m },
251    p209: { code: 209, category: m },
252    p210: { code: 210, category: m },
253    p211: { code: 211, category: m },
254    p212: { code: 212, category: m },
255    p213: { code: 213, category: m },
256    p214: { code: 214, category: m },
257    p215: { code: 215, category: m },
258    p216: { code: 216, category: m },
259    p217: { code: 217, category: m },
260    p218: { code: 218, category: m },
261    p219: { code: 219, category: m },
262    p220: { code: 220, category: m },
263    p221: { code: 221, category: m },
264    p222: { code: 222, category: m },
265    p223: { code: 223, category: m },
266    p224: { code: 224, category: m },
267    p225: { code: 225, category: m },
268    p226: { code: 226, category: m },
269    p227: { code: 227, category: m },
270    p228: { code: 228, category: m },
271    p229: { code: 229, category: m },
272    p230: { code: 230, category: m },
273    p231: { code: 231, category: m },
274    p232: { code: 232, category: m },
275    p233: { code: 233, category: m },
276    p234: { code: 234, category: m },
277    p235: { code: 235, category: m },
278    p236: { code: 236, category: m },
279    p237: { code: 237, category: m },
280    p238: { code: 238, category: m },
281    p239: { code: 239, category: m },
282    p240: { code: 240, category: m },
283    p241: { code: 241, category: m },
284    p242: { code: 242, category: m },
285    p243: { code: 243, category: m },
286    p244: { code: 244, category: m },
287    p245: { code: 245, category: m },
288    p246: { code: 246, category: m },
289    p247: { code: 247, category: m },
290    p248: { code: 248, category: m },
291    p249: { code: 249, category: m },
292    p250: { code: 250, category: m },
293    p251: { code: 251, category: m },
294    p252: { code: 252, category: m },
295    p253: { code: 253, category: m },
296    p254: { code: 254, category: m },
297    p255: { code: 255, category: m },
298    p256: { code: 256, category: m },
299    p257: { code: 257, category: m },
300    p258: { code: 258, category: m },
301    p259: { code: 259, category: m },
302    p260: { code: 260, category: m },
303    p261: { code: 261, category: m },
304    p262: { code: 262, category: m },
305    p263: { code: 263, category: m },
306    p264: { code: 264, category: m },
307    p265: { code: 265, category: m },
308    p266: { code: 266, category: m },
309    p267: { code: 267, category: m },
310    p268: { code: 268, category: m },
311    p269: { code: 269, category: m },
312    p270: { code: 270, category: m },
313    p271: { code: 271, category: m },
314    p272: { code: 272, category: m },
315    p273: { code: 273, category: m },
316    p274: { code: 274, category: m },
317    p275: { code: 275, category: m },
318    p276: { code: 276, category: m },
319    p277: { code: 277, category: m },
320    p278: { code: 278, category: m },
321    p279: { code: 279, category: m },
322    p280: { code: 280, category: m },
323    p281: { code: 281, category: m },
324    p282: { code: 282, category: m },
325    p283: { code: 283, category: m },
326    p284: { code: 284, category: m },
327    p285: { code: 285, category: m },
328    p286: { code: 286, category: m },
329    p287: { code: 287, category: m },
330    p288: { code: 288, category: m },
331    p289: { code: 289, category: m },
332    p290: { code: 290, category: m },
333    p291: { code: 291, category: m },
334    p292: { code: 292, category: m },
335    p293: { code: 293, category: m },
336    p294: { code: 294, category: m },
337    p295: { code: 295, category: m },
338    p296: { code: 296, category: m },
339    p297: { code: 297, category: m },
340    p298: { code: 298, category: m },
341    p299: { code: 299, category: m },
342    p300: { code: 300, category: m },
343    p301: { code: 301, category: m },
344    p302: { code: 302, category: m },
345    p303: { code: 303, category: m },
346    p304: { code: 304, category: m },
347    p305: { code: 305, category: m },
348    p306: { code: 306, category: m },
349    p307: { code: 307, category: m },
350    p308: { code: 308, category: m },
351    p309: { code: 309, category: m },
352    p310: { code: 310, category: m },
353    p311: { code: 311, category: m },
354    p312: { code: 312, category: m },
355    p313: { code: 313, category: m },
356    p314: { code: 314, category: m },
357    p315: { code: 315, category: m },
358    p316: { code: 316, category: m },
359    p317: { code: 317, category: m },
360    p318: { code: 318, category: m },
361    p319: { code: 319, category: m },
362    p320: { code: 320, category: m },
363    p321: { code: 321, category: m },
364    p322: { code: 322, category: m },
365    p323: { code: 323, category: m },
366    p324: { code: 324, category: m },
367    p325: { code: 325, category: m },
368    p326: { code: 326, category: m },
369    p327: { code: 327, category: m },
370    p328: { code: 328, category: m },
371    p329: { code: 329, category: m },
372    p330: { code: 330, category: m },
373    p331: { code: 331, category: m },
374    p332: { code: 332, category: m },
375    p333: { code: 333, category: m },
376    p334: { code: 334, category: m },
377    p335: { code: 335, category: m },
378    p336: { code: 336, category: m },
379    p337: { code: 337, category: m },
380    p338: { code: 338, category: m },
381    p339: { code: 339, category: m },
382    p340: { code: 340, category: m },
383    p341: { code: 341, category: m },
384    p342: { code: 342, category: m },
385    p343: { code: 343, category: m },
386    p344: { code: 344, category: m },
387    p345: { code: 345, category: m },
388    p346: { code: 346, category: m },
389    p347: { code: 347, category: m },
390    p348: { code: 348, category: m },
391    p349: { code: 349, category: m },
392    p350: { code: 350, category: m },
393    p351: { code: 351, category: m },
394    p352: { code: 352, category: m },
395    p353: { code: 353, category: m },
396    p354: { code: 354, category: m },
397    p355: { code: 355, category: m },
398    p356: { code: 356, category: m },
399    p357: { code: 357, category: m },
400    p358: { code: 358, category: m },
401    p359: { code: 359, category: m },
402    p360: { code: 360, category: m },
403    p361: { code: 361, category: m },
404    p362: { code: 362, category: m },
405    p363: { code: 363, category: m },
406    p364: { code: 364, category: m },
407    p365: { code: 365, category: m },
408    p366: { code: 366, category: m },
409    p367: { code: 367, category: m },
410    p368: { code: 368, category: m },
411    p369: { code: 369, category: m },
412    p370: { code: 370, category: m },
413    p371: { code: 371, category: m },
414    p372: { code: 372, category: m },
415    p373: { code: 373, category: m },
416    p374: { code: 374, category: m },
417    p375: { code: 375, category: m },
418    p376: { code: 376, category: m },
419    p377: { code: 377, category: m },
420    p378: { code: 378, category: m },
421    p379: { code: 379, category: m },
422    p380: { code: 380, category: m },
423    p381: { code: 381, category: m },
424    p382: { code: 382, category: m },
425    p383: { code: 383, category: m },
426    p384: { code: 384, category: m },
427    p385: { code: 385, category: m },
428    p386: { code: 386, category: m },
429    p387: { code: 387, category: m },
430    p388: { code: 388, category: m },
431    p389: { code: 389, category: m },
432    p390: { code: 390, category: m },
433    p391: { code: 391, category: m },
434    p392: { code: 392, category: m },
435    p393: { code: 393, category: m },
436    p394: { code: 394, category: m },
437    p395: { code: 395, category: m },
438    p396: { code: 396, category: m },
439    p397: { code: 397, category: m },
440    p398: { code: 398, category: m },
441    p399: { code: 399, category: m },
442    p400: { code: 400, category: m },
443    p401: { code: 401, category: m },
444    p402: { code: 402, category: m },
445    p403: { code: 403, category: m },
446    p404: { code: 404, category: m },
447    p405: { code: 405, category: m },
448    p406: { code: 406, category: m },
449    p407: { code: 407, category: m },
450    p408: { code: 408, category: m },
451    p409: { code: 409, category: m },
452    p410: { code: 410, category: m },
453    p411: { code: 411, category: m },
454    p412: { code: 412, category: m },
455    p413: { code: 413, category: m },
456    p414: { code: 414, category: m },
457    p415: { code: 415, category: m },
458    p416: { code: 416, category: m },
459    p417: { code: 417, category: m },
460    p418: { code: 418, category: m },
461    p419: { code: 419, category: m },
462    p420: { code: 420, category: m },
463    p421: { code: 421, category: m },
464    p422: { code: 422, category: m },
465    p423: { code: 423, category: m },
466    p424: { code: 424, category: m },
467    p425: { code: 425, category: m },
468    p426: { code: 426, category: m },
469    p427: { code: 427, category: m },
470    p428: { code: 428, category: m },
471    p429: { code: 429, category: m },
472    p430: { code: 430, category: m },
473    p431: { code: 431, category: m },
474    p432: { code: 432, category: m },
475    p433: { code: 433, category: m },
476    p434: { code: 434, category: m },
477    p435: { code: 435, category: m },
478    p436: { code: 436, category: m },
479    p437: { code: 437, category: m },
480    p438: { code: 438, category: m },
481    p439: { code: 439, category: m },
482    p440: { code: 440, category: m },
483    p441: { code: 441, category: m },
484    p442: { code: 442, category: m },
485    p443: { code: 443, category: m },
486    p444: { code: 444, category: m },
487    p445: { code: 445, category: m },
488    p446: { code: 446, category: m },
489    p447: { code: 447, category: m },
490    p448: { code: 448, category: m },
491    p449: { code: 449, category: m },
492    p450: { code: 450, category: m },
493    p451: { code: 451, category: m },
494    p452: { code: 452, category: m },
495    p453: { code: 453, category: m },
496    p454: { code: 454, category: m },
497    p455: { code: 455, category: m },
498    p456: { code: 456, category: m },
499    p457: { code: 457, category: m },
500    p458: { code: 458, category: m },
501    p459: { code: 459, category: m },
502    p460: { code: 460, category: m },
503    p461: { code: 461, category: m },
504    p462: { code: 462, category: m },
505    p463: { code: 463, category: m },
506    p464: { code: 464, category: m },
507    p465: { code: 465, category: m },
508    p466: { code: 466, category: m },
509    p467: { code: 467, category: m },
510    p468: { code: 468, category: m },
511    p469: { code: 469, category: m },
512    p470: { code: 470, category: m },
513    p471: { code: 471, category: m },
514    p472: { code: 472, category: m },
515    p473: { code: 473, category: m },
516    p474: { code: 474, category: m },
517    p475: { code: 475, category: m },
518    p476: { code: 476, category: m },
519    p477: { code: 477, category: m },
520    p478: { code: 478, category: m },
521    p479: { code: 479, category: m },
522    p480: { code: 480, category: m },
523    p481: { code: 481, category: m },
524    p482: { code: 482, category: m },
525    p483: { code: 483, category: m },
526    p484: { code: 484, category: m },
527    p485: { code: 485, category: m },
528    p486: { code: 486, category: m },
529    p487: { code: 487, category: m },
530    p488: { code: 488, category: m },
531    p489: { code: 489, category: m },
532    p490: { code: 490, category: m },
533    p491: { code: 491, category: m },
534    p492: { code: 492, category: m },
535    p493: { code: 493, category: m },
536    p494: { code: 494, category: m },
537    p495: { code: 495, category: m },
538    p496: { code: 496, category: m },
539    p497: { code: 497, category: m },
540    p498: { code: 498, category: m },
541    p499: { code: 499, category: m }
542};
543
544var AccessorProperty = Java.type("jdk.nashorn.internal.runtime.AccessorProperty");
545var SpillProperty    = Java.type("jdk.nashorn.internal.runtime.SpillProperty");
546
547Assert.assertTrue(Object.keys(fields).length === 3);
548Assert.assertTrue(Debug.map(fields).findProperty("p0").getClass() === AccessorProperty.class);
549Assert.assertTrue(Debug.map(fields).findProperty("p2").getClass() === AccessorProperty.class);
550
551Assert.assertTrue(Object.keys(spill).length === 500);
552Assert.assertTrue(Debug.map(spill).findProperty("p0").getClass() === SpillProperty.class);
553Assert.assertTrue(Debug.map(spill).findProperty("p499").getClass() === SpillProperty.class);
554