d2fdc74755
Reviewed-by: jlaskey, hannesw, mhaupt
313 lines
5.8 KiB
JavaScript
313 lines
5.8 KiB
JavaScript
/*
|
|
* 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.
|