JDK-8079269.js revision 1261:231d6fd660b8
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-8079269: Optimistic rewrite in object literal causes ArrayIndexOutOfBoundsException
26 *
27 * @test
28 * @run
29 */
30
31// m must be in scope so it's accessed with optimistic getters on scope
32var m = 1;
33
34(function() {
35    return {
36        p0: m,
37        p1: m = "foo",
38        p2: m
39    }
40})();
41
42var n = 1;
43
44// Test the spill object creator too
45(function() {
46    return {
47        p0: n,
48        p1: n = "foo",
49        p2: n,
50        p3: n,
51        p4: n,
52        p5: n,
53        p6: n,
54        p7: n,
55        p8: n,
56        p9: n,
57        p10: n,
58        p11: n,
59        p12: n,
60        p13: n,
61        p14: n,
62        p15: n,
63        p16: n,
64        p17: n,
65        p18: n,
66        p19: n,
67        p20: n,
68        p21: n,
69        p22: n,
70        p23: n,
71        p24: n,
72        p25: n,
73        p26: n,
74        p27: n,
75        p28: n,
76        p29: n,
77        p30: n,
78        p31: n,
79        p32: n,
80        p33: n,
81        p34: n,
82        p35: n,
83        p36: n,
84        p37: n,
85        p38: n,
86        p39: n,
87        p40: n,
88        p41: n,
89        p42: n,
90        p43: n,
91        p44: n,
92        p45: n,
93        p46: n,
94        p47: n,
95        p48: n,
96        p49: n,
97        p50: n,
98        p51: n,
99        p52: n,
100        p53: n,
101        p54: n,
102        p55: n,
103        p56: n,
104        p57: n,
105        p58: n,
106        p59: n,
107        p60: n,
108        p61: n,
109        p62: n,
110        p63: n,
111        p64: n,
112        p65: n,
113        p66: n,
114        p67: n,
115        p68: n,
116        p69: n,
117        p70: n,
118        p71: n,
119        p72: n,
120        p73: n,
121        p74: n,
122        p75: n,
123        p76: n,
124        p77: n,
125        p78: n,
126        p79: n,
127        p80: n,
128        p81: n,
129        p82: n,
130        p83: n,
131        p84: n,
132        p85: n,
133        p86: n,
134        p87: n,
135        p88: n,
136        p89: n,
137        p90: n,
138        p91: n,
139        p92: n,
140        p93: n,
141        p94: n,
142        p95: n,
143        p96: n,
144        p97: n,
145        p98: n,
146        p99: n,
147        p100: n,
148        p101: n,
149        p102: n,
150        p103: n,
151        p104: n,
152        p105: n,
153        p106: n,
154        p107: n,
155        p108: n,
156        p109: n,
157        p110: n,
158        p111: n,
159        p112: n,
160        p113: n,
161        p114: n,
162        p115: n,
163        p116: n,
164        p117: n,
165        p118: n,
166        p119: n,
167        p120: n,
168        p121: n,
169        p122: n,
170        p123: n,
171        p124: n,
172        p125: n,
173        p126: n,
174        p127: n,
175        p128: n,
176        p129: n,
177        p130: n,
178        p131: n,
179        p132: n,
180        p133: n,
181        p134: n,
182        p135: n,
183        p136: n,
184        p137: n,
185        p138: n,
186        p139: n,
187        p140: n,
188        p141: n,
189        p142: n,
190        p143: n,
191        p144: n,
192        p145: n,
193        p146: n,
194        p147: n,
195        p148: n,
196        p149: n,
197        p150: n,
198        p151: n,
199        p152: n,
200        p153: n,
201        p154: n,
202        p155: n,
203        p156: n,
204        p157: n,
205        p158: n,
206        p159: n,
207        p160: n,
208        p161: n,
209        p162: n,
210        p163: n,
211        p164: n,
212        p165: n,
213        p166: n,
214        p167: n,
215        p168: n,
216        p169: n,
217        p170: n,
218        p171: n,
219        p172: n,
220        p173: n,
221        p174: n,
222        p175: n,
223        p176: n,
224        p177: n,
225        p178: n,
226        p179: n,
227        p180: n,
228        p181: n,
229        p182: n,
230        p183: n,
231        p184: n,
232        p185: n,
233        p186: n,
234        p187: n,
235        p188: n,
236        p189: n,
237        p190: n,
238        p191: n,
239        p192: n,
240        p193: n,
241        p194: n,
242        p195: n,
243        p196: n,
244        p197: n,
245        p198: n,
246        p199: n,
247        p200: n,
248        p201: n,
249        p202: n,
250        p203: n,
251        p204: n,
252        p205: n,
253        p206: n,
254        p207: n,
255        p208: n,
256        p209: n,
257        p210: n,
258        p211: n,
259        p212: n,
260        p213: n,
261        p214: n,
262        p215: n,
263        p216: n,
264        p217: n,
265        p218: n,
266        p219: n,
267        p220: n,
268        p221: n,
269        p222: n,
270        p223: n,
271        p224: n,
272        p225: n,
273        p226: n,
274        p227: n,
275        p228: n,
276        p229: n,
277        p230: n,
278        p231: n,
279        p232: n,
280        p233: n,
281        p234: n,
282        p235: n,
283        p236: n,
284        p237: n,
285        p238: n,
286        p239: n,
287        p240: n,
288        p241: n,
289        p242: n,
290        p243: n,
291        p244: n,
292        p245: n,
293        p246: n,
294        p247: n,
295        p248: n,
296        p249: n,
297        p250: n,
298        p251: n,
299        p252: n,
300        p253: n,
301        p254: n,
302        p255: n,
303        p256: n,
304        p257: n,
305        p258: n,
306        p259: n
307    }
308})();
309
310// No output; as long as it completes without
311// ArrayIndexOutOfBoundsException in the OSR continuation handler, it's
312// a success.
313