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