| /* |
| * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| * or visit www.oracle.com if you need additional information or have any |
| * questions. |
| */ |
| |
| /** |
| * JDK-8079269: Optimistic rewrite in object literal causes ArrayIndexOutOfBoundsException |
| * |
| * @test |
| * @run |
| */ |
| |
| // m must be in scope so it's accessed with optimistic getters on scope |
| var m = 1; |
| |
| (function() { |
| return { |
| p0: m, |
| p1: m = "foo", |
| p2: m |
| } |
| })(); |
| |
| var n = 1; |
| |
| // Test the spill object creator too |
| (function() { |
| return { |
| p0: n, |
| p1: n = "foo", |
| p2: n, |
| p3: n, |
| p4: n, |
| p5: n, |
| p6: n, |
| p7: n, |
| p8: n, |
| p9: n, |
| p10: n, |
| p11: n, |
| p12: n, |
| p13: n, |
| p14: n, |
| p15: n, |
| p16: n, |
| p17: n, |
| p18: n, |
| p19: n, |
| p20: n, |
| p21: n, |
| p22: n, |
| p23: n, |
| p24: n, |
| p25: n, |
| p26: n, |
| p27: n, |
| p28: n, |
| p29: n, |
| p30: n, |
| p31: n, |
| p32: n, |
| p33: n, |
| p34: n, |
| p35: n, |
| p36: n, |
| p37: n, |
| p38: n, |
| p39: n, |
| p40: n, |
| p41: n, |
| p42: n, |
| p43: n, |
| p44: n, |
| p45: n, |
| p46: n, |
| p47: n, |
| p48: n, |
| p49: n, |
| p50: n, |
| p51: n, |
| p52: n, |
| p53: n, |
| p54: n, |
| p55: n, |
| p56: n, |
| p57: n, |
| p58: n, |
| p59: n, |
| p60: n, |
| p61: n, |
| p62: n, |
| p63: n, |
| p64: n, |
| p65: n, |
| p66: n, |
| p67: n, |
| p68: n, |
| p69: n, |
| p70: n, |
| p71: n, |
| p72: n, |
| p73: n, |
| p74: n, |
| p75: n, |
| p76: n, |
| p77: n, |
| p78: n, |
| p79: n, |
| p80: n, |
| p81: n, |
| p82: n, |
| p83: n, |
| p84: n, |
| p85: n, |
| p86: n, |
| p87: n, |
| p88: n, |
| p89: n, |
| p90: n, |
| p91: n, |
| p92: n, |
| p93: n, |
| p94: n, |
| p95: n, |
| p96: n, |
| p97: n, |
| p98: n, |
| p99: n, |
| p100: n, |
| p101: n, |
| p102: n, |
| p103: n, |
| p104: n, |
| p105: n, |
| p106: n, |
| p107: n, |
| p108: n, |
| p109: n, |
| p110: n, |
| p111: n, |
| p112: n, |
| p113: n, |
| p114: n, |
| p115: n, |
| p116: n, |
| p117: n, |
| p118: n, |
| p119: n, |
| p120: n, |
| p121: n, |
| p122: n, |
| p123: n, |
| p124: n, |
| p125: n, |
| p126: n, |
| p127: n, |
| p128: n, |
| p129: n, |
| p130: n, |
| p131: n, |
| p132: n, |
| p133: n, |
| p134: n, |
| p135: n, |
| p136: n, |
| p137: n, |
| p138: n, |
| p139: n, |
| p140: n, |
| p141: n, |
| p142: n, |
| p143: n, |
| p144: n, |
| p145: n, |
| p146: n, |
| p147: n, |
| p148: n, |
| p149: n, |
| p150: n, |
| p151: n, |
| p152: n, |
| p153: n, |
| p154: n, |
| p155: n, |
| p156: n, |
| p157: n, |
| p158: n, |
| p159: n, |
| p160: n, |
| p161: n, |
| p162: n, |
| p163: n, |
| p164: n, |
| p165: n, |
| p166: n, |
| p167: n, |
| p168: n, |
| p169: n, |
| p170: n, |
| p171: n, |
| p172: n, |
| p173: n, |
| p174: n, |
| p175: n, |
| p176: n, |
| p177: n, |
| p178: n, |
| p179: n, |
| p180: n, |
| p181: n, |
| p182: n, |
| p183: n, |
| p184: n, |
| p185: n, |
| p186: n, |
| p187: n, |
| p188: n, |
| p189: n, |
| p190: n, |
| p191: n, |
| p192: n, |
| p193: n, |
| p194: n, |
| p195: n, |
| p196: n, |
| p197: n, |
| p198: n, |
| p199: n, |
| p200: n, |
| p201: n, |
| p202: n, |
| p203: n, |
| p204: n, |
| p205: n, |
| p206: n, |
| p207: n, |
| p208: n, |
| p209: n, |
| p210: n, |
| p211: n, |
| p212: n, |
| p213: n, |
| p214: n, |
| p215: n, |
| p216: n, |
| p217: n, |
| p218: n, |
| p219: n, |
| p220: n, |
| p221: n, |
| p222: n, |
| p223: n, |
| p224: n, |
| p225: n, |
| p226: n, |
| p227: n, |
| p228: n, |
| p229: n, |
| p230: n, |
| p231: n, |
| p232: n, |
| p233: n, |
| p234: n, |
| p235: n, |
| p236: n, |
| p237: n, |
| p238: n, |
| p239: n, |
| p240: n, |
| p241: n, |
| p242: n, |
| p243: n, |
| p244: n, |
| p245: n, |
| p246: n, |
| p247: n, |
| p248: n, |
| p249: n, |
| p250: n, |
| p251: n, |
| p252: n, |
| p253: n, |
| p254: n, |
| p255: n, |
| p256: n, |
| p257: n, |
| p258: n, |
| p259: n |
| } |
| })(); |
| |
| // No output; as long as it completes without |
| // ArrayIndexOutOfBoundsException in the OSR continuation handler, it's |
| // a success. |