1 # Copyright 2013 the V8 project authors. All rights reserved. 2 # Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 3 # 4 # Redistribution and use in source and binary forms, with or without 5 # modification, are permitted provided that the following conditions 6 # are met: 7 # 1. Redistributions of source code must retain the above copyright 8 # notice, this list of conditions and the following disclaimer. 9 # 2. Redistributions in binary form must reproduce the above copyright 10 # notice, this list of conditions and the following disclaimer in the 11 # documentation and/or other materials provided with the distribution. 12 # 13 # THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY 14 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 # DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY 17 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 20 # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 22 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 24 Tests what happens when we OSR exit on an inlined prototype access due to a change in the prototype chain. 25 26 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". 27 28 29 PASS foo({g:new Thingy()}) is 42 30 PASS foo({g:new Thingy()}) is 42 31 PASS foo({g:new Thingy()}) is 42 32 PASS foo({g:new Thingy()}) is 42 33 PASS foo({g:new Thingy()}) is 42 34 PASS foo({g:new Thingy()}) is 42 35 PASS foo({g:new Thingy()}) is 42 36 PASS foo({g:new Thingy()}) is 42 37 PASS foo({g:new Thingy()}) is 42 38 PASS foo({g:new Thingy()}) is 42 39 PASS foo({g:new Thingy()}) is 42 40 PASS foo({g:new Thingy()}) is 42 41 PASS foo({g:new Thingy()}) is 42 42 PASS foo({g:new Thingy()}) is 42 43 PASS foo({g:new Thingy()}) is 42 44 PASS foo({g:new Thingy()}) is 42 45 PASS foo({g:new Thingy()}) is 42 46 PASS foo({g:new Thingy()}) is 42 47 PASS foo({g:new Thingy()}) is 42 48 PASS foo({g:new Thingy()}) is 42 49 PASS foo({g:new Thingy()}) is 42 50 PASS foo({g:new Thingy()}) is 42 51 PASS foo({g:new Thingy()}) is 42 52 PASS foo({g:new Thingy()}) is 42 53 PASS foo({g:new Thingy()}) is 42 54 PASS foo({g:new Thingy()}) is 42 55 PASS foo({g:new Thingy()}) is 42 56 PASS foo({g:new Thingy()}) is 42 57 PASS foo({g:new Thingy()}) is 42 58 PASS foo({g:new Thingy()}) is 42 59 PASS foo({g:new Thingy()}) is 42 60 PASS foo({g:new Thingy()}) is 42 61 PASS foo({g:new Thingy()}) is 42 62 PASS foo({g:new Thingy()}) is 42 63 PASS foo({g:new Thingy()}) is 42 64 PASS foo({g:new Thingy()}) is 42 65 PASS foo({g:new Thingy()}) is 42 66 PASS foo({g:new Thingy()}) is 42 67 PASS foo({g:new Thingy()}) is 42 68 PASS foo({g:new Thingy()}) is 42 69 PASS foo({g:new Thingy()}) is 42 70 PASS foo({g:new Thingy()}) is 42 71 PASS foo({g:new Thingy()}) is 42 72 PASS foo({g:new Thingy()}) is 42 73 PASS foo({g:new Thingy()}) is 42 74 PASS foo({g:new Thingy()}) is 42 75 PASS foo({g:new Thingy()}) is 42 76 PASS foo({g:new Thingy()}) is 42 77 PASS foo({g:new Thingy()}) is 42 78 PASS foo({g:new Thingy()}) is 42 79 PASS foo({g:new Thingy()}) is 42 80 PASS foo({g:new Thingy()}) is 42 81 PASS foo({g:new Thingy()}) is 42 82 PASS foo({g:new Thingy()}) is 42 83 PASS foo({g:new Thingy()}) is 42 84 PASS foo({g:new Thingy()}) is 42 85 PASS foo({g:new Thingy()}) is 42 86 PASS foo({g:new Thingy()}) is 42 87 PASS foo({g:new Thingy()}) is 42 88 PASS foo({g:new Thingy()}) is 42 89 PASS foo({g:new Thingy()}) is 42 90 PASS foo({g:new Thingy()}) is 42 91 PASS foo({g:new Thingy()}) is 42 92 PASS foo({g:new Thingy()}) is 42 93 PASS foo({g:new Thingy()}) is 42 94 PASS foo({g:new Thingy()}) is 42 95 PASS foo({g:new Thingy()}) is 42 96 PASS foo({g:new Thingy()}) is 42 97 PASS foo({g:new Thingy()}) is 42 98 PASS foo({g:new Thingy()}) is 42 99 PASS foo({g:new Thingy()}) is 42 100 PASS foo({g:new Thingy()}) is 42 101 PASS foo({g:new Thingy()}) is 42 102 PASS foo({g:new Thingy()}) is 42 103 PASS foo({g:new Thingy()}) is 42 104 PASS foo({g:new Thingy()}) is 42 105 PASS foo({g:new Thingy()}) is 42 106 PASS foo({g:new Thingy()}) is 42 107 PASS foo({g:new Thingy()}) is 42 108 PASS foo({g:new Thingy()}) is 42 109 PASS foo({g:new Thingy()}) is 42 110 PASS foo({g:new Thingy()}) is 42 111 PASS foo({g:new Thingy()}) is 42 112 PASS foo({g:new Thingy()}) is 42 113 PASS foo({g:new Thingy()}) is 42 114 PASS foo({g:new Thingy()}) is 42 115 PASS foo({g:new Thingy()}) is 42 116 PASS foo({g:new Thingy()}) is 42 117 PASS foo({g:new Thingy()}) is 42 118 PASS foo({g:new Thingy()}) is 42 119 PASS foo({g:new Thingy()}) is 42 120 PASS foo({g:new Thingy()}) is 42 121 PASS foo({g:new Thingy()}) is 42 122 PASS foo({g:new Thingy()}) is 42 123 PASS foo({g:new Thingy()}) is 42 124 PASS foo({g:new Thingy()}) is 42 125 PASS foo({g:new Thingy()}) is 42 126 PASS foo({g:new Thingy()}) is 42 127 PASS foo({g:new Thingy()}) is 42 128 PASS foo({g:new Thingy()}) is 42 129 PASS foo({g:new Thingy()}) is 42 130 PASS foo({g:new Thingy()}) is 42 131 PASS foo({g:new Thingy()}) is 42 132 PASS foo({g:new Thingy()}) is 42 133 PASS foo({g:new Thingy()}) is 42 134 PASS foo({g:new Thingy()}) is 42 135 PASS foo({g:new Thingy()}) is 42 136 PASS foo({g:new Thingy()}) is 42 137 PASS foo({g:new Thingy()}) is 42 138 PASS foo({g:new Thingy()}) is 42 139 PASS foo({g:new Thingy()}) is 42 140 PASS foo({g:new Thingy()}) is 42 141 PASS foo({g:new Thingy()}) is 42 142 PASS foo({g:new Thingy()}) is 42 143 PASS foo({g:new Thingy()}) is 42 144 PASS foo({g:new Thingy()}) is 42 145 PASS foo({g:new Thingy()}) is 42 146 PASS foo({g:new Thingy()}) is 42 147 PASS foo({g:new Thingy()}) is 42 148 PASS foo({g:new Thingy()}) is 42 149 PASS foo({g:new Thingy()}) is 42 150 PASS foo({g:new Thingy()}) is 42 151 PASS foo({g:new Thingy()}) is 42 152 PASS foo({g:new Thingy()}) is 42 153 PASS foo({g:new Thingy()}) is 42 154 PASS foo({g:new Thingy()}) is 42 155 PASS foo({g:new Thingy()}) is 42 156 PASS foo({g:new Thingy()}) is 42 157 PASS foo({g:new Thingy()}) is 42 158 PASS foo({g:new Thingy()}) is 42 159 PASS foo({g:new Thingy()}) is 42 160 PASS foo({g:new Thingy()}) is 42 161 PASS foo({g:new Thingy()}) is 42 162 PASS foo({g:new Thingy()}) is 42 163 PASS foo({g:new Thingy()}) is 42 164 PASS foo({g:new Thingy()}) is 42 165 PASS foo({g:new Thingy()}) is 42 166 PASS foo({g:new Thingy()}) is 42 167 PASS foo({g:new Thingy()}) is 42 168 PASS foo({g:new Thingy()}) is 42 169 PASS foo({g:new Thingy()}) is 42 170 PASS foo({g:new Thingy()}) is 42 171 PASS foo({g:new Thingy()}) is 42 172 PASS foo({g:new Thingy()}) is 42 173 PASS foo({g:new Thingy()}) is 42 174 PASS foo({g:new Thingy()}) is 42 175 PASS foo({g:new Thingy()}) is 42 176 PASS foo({g:new Thingy()}) is 42 177 PASS foo({g:new Thingy()}) is 42 178 PASS foo({g:new Thingy()}) is 42 179 PASS foo({g:new Thingy()}) is 42 180 PASS foo({g:new Thingy()}) is 42 181 PASS foo({g:new Thingy()}) is 42 182 PASS foo({g:new Thingy()}) is 42 183 PASS foo({g:new Thingy()}) is 42 184 PASS foo({g:new Thingy()}) is 42 185 PASS foo({g:new Thingy()}) is 42 186 PASS foo({g:new Thingy()}) is 42 187 PASS foo({g:new Thingy()}) is 42 188 PASS foo({g:new Thingy()}) is 42 189 PASS foo({g:new Thingy()}) is 42 190 PASS foo({g:new Thingy()}) is 42 191 PASS foo({g:new Thingy()}) is 42 192 PASS foo({g:new Thingy()}) is 42 193 PASS foo({g:new Thingy()}) is 42 194 PASS foo({g:new Thingy()}) is 42 195 PASS foo({g:new Thingy()}) is 42 196 PASS foo({g:new Thingy()}) is 42 197 PASS foo({g:new Thingy()}) is 42 198 PASS foo({g:new Thingy()}) is 42 199 PASS foo({g:new Thingy()}) is 42 200 PASS foo({g:new Thingy()}) is 42 201 PASS foo({g:new Thingy()}) is 42 202 PASS foo({g:new Thingy()}) is 42 203 PASS foo({g:new Thingy()}) is 42 204 PASS foo({g:new Thingy()}) is 42 205 PASS foo({g:new Thingy()}) is 42 206 PASS foo({g:new Thingy()}) is 42 207 PASS foo({g:new Thingy()}) is 42 208 PASS foo({g:new Thingy()}) is 42 209 PASS foo({g:new Thingy()}) is 42 210 PASS foo({g:new Thingy()}) is 42 211 PASS foo({g:new Thingy()}) is 42 212 PASS foo({g:new Thingy()}) is 42 213 PASS foo({g:new Thingy()}) is 42 214 PASS foo({g:new Thingy()}) is 42 215 PASS foo({g:new Thingy()}) is 42 216 PASS foo({g:new Thingy()}) is 42 217 PASS foo({g:new Thingy()}) is 42 218 PASS foo({g:new Thingy()}) is 42 219 PASS foo({g:new Thingy()}) is 42 220 PASS foo({g:new Thingy()}) is 42 221 PASS foo({g:new Thingy()}) is 42 222 PASS foo({g:new Thingy()}) is 42 223 PASS foo({g:new Thingy()}) is 42 224 PASS foo({g:new Thingy()}) is 42 225 PASS foo({g:new Thingy()}) is 42 226 PASS foo({g:new Thingy()}) is 42 227 PASS foo({g:new Thingy()}) is 42 228 PASS foo({g:new Thingy()}) is 42 229 PASS successfullyParsed is true 230 231 TEST COMPLETE 232 233