Tue, 16 Aug 2016 21:41:28 -0700
Added tag jdk8u102-b33 for changeset 36e3c21b5fca
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 */
24 /**
25 * JDK-8079269: Optimistic rewrite in object literal causes ArrayIndexOutOfBoundsException
26 *
27 * @test
28 * @run
29 */
31 // m must be in scope so it's accessed with optimistic getters on scope
32 var m = 1;
34 (function() {
35 return {
36 p0: m,
37 p1: m = "foo",
38 p2: m
39 }
40 })();
42 var n = 1;
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 })();
310 // No output; as long as it completes without
311 // ArrayIndexOutOfBoundsException in the OSR continuation handler, it's
312 // a success.