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 CFG simplification leads to the elimination of a set local that had a type check, and then we branch on the variable not being null while decrementing the variable in the same basic block. 25 26 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". 27 28 29 PASS foo(o) is true 30 PASS foo(o) is true 31 PASS foo(o) is true 32 PASS foo(o) is true 33 PASS foo(o) is true 34 PASS foo(o) is true 35 PASS foo(o) is true 36 PASS foo(o) is true 37 PASS foo(o) is true 38 PASS foo(o) is true 39 PASS foo(o) is true 40 PASS foo(o) is true 41 PASS foo(o) is true 42 PASS foo(o) is true 43 PASS foo(o) is true 44 PASS foo(o) is true 45 PASS foo(o) is true 46 PASS foo(o) is true 47 PASS foo(o) is true 48 PASS foo(o) is true 49 PASS foo(o) is true 50 PASS foo(o) is true 51 PASS foo(o) is true 52 PASS foo(o) is true 53 PASS foo(o) is true 54 PASS foo(o) is true 55 PASS foo(o) is true 56 PASS foo(o) is true 57 PASS foo(o) is true 58 PASS foo(o) is true 59 PASS foo(o) is true 60 PASS foo(o) is true 61 PASS foo(o) is true 62 PASS foo(o) is true 63 PASS foo(o) is true 64 PASS foo(o) is true 65 PASS foo(o) is true 66 PASS foo(o) is true 67 PASS foo(o) is true 68 PASS foo(o) is true 69 PASS foo(o) is true 70 PASS foo(o) is true 71 PASS foo(o) is true 72 PASS foo(o) is true 73 PASS foo(o) is true 74 PASS foo(o) is true 75 PASS foo(o) is true 76 PASS foo(o) is true 77 PASS foo(o) is true 78 PASS foo(o) is true 79 PASS foo(o) is true 80 PASS foo(o) is true 81 PASS foo(o) is true 82 PASS foo(o) is true 83 PASS foo(o) is true 84 PASS foo(o) is true 85 PASS foo(o) is true 86 PASS foo(o) is true 87 PASS foo(o) is true 88 PASS foo(o) is true 89 PASS foo(o) is true 90 PASS foo(o) is true 91 PASS foo(o) is true 92 PASS foo(o) is true 93 PASS foo(o) is true 94 PASS foo(o) is true 95 PASS foo(o) is true 96 PASS foo(o) is true 97 PASS foo(o) is true 98 PASS foo(o) is true 99 PASS foo(o) is true 100 PASS foo(o) is true 101 PASS foo(o) is true 102 PASS foo(o) is true 103 PASS foo(o) is true 104 PASS foo(o) is true 105 PASS foo(o) is true 106 PASS foo(o) is true 107 PASS foo(o) is true 108 PASS foo(o) is true 109 PASS foo(o) is true 110 PASS foo(o) is true 111 PASS foo(o) is true 112 PASS foo(o) is true 113 PASS foo(o) is true 114 PASS foo(o) is true 115 PASS foo(o) is true 116 PASS foo(o) is true 117 PASS foo(o) is true 118 PASS foo(o) is true 119 PASS foo(o) is true 120 PASS foo(o) is true 121 PASS foo(o) is true 122 PASS foo(o) is true 123 PASS foo(o) is true 124 PASS foo(o) is true 125 PASS foo(o) is true 126 PASS foo(o) is true 127 PASS foo(o) is true 128 PASS foo(o) is true 129 PASS foo(o) is true 130 PASS foo(o) is true 131 PASS foo(o) is true 132 PASS foo(o) is true 133 PASS foo(o) is true 134 PASS foo(o) is true 135 PASS foo(o) is true 136 PASS foo(o) is true 137 PASS foo(o) is true 138 PASS foo(o) is true 139 PASS foo(o) is true 140 PASS foo(o) is true 141 PASS foo(o) is true 142 PASS foo(o) is true 143 PASS foo(o) is true 144 PASS foo(o) is true 145 PASS foo(o) is true 146 PASS foo(o) is true 147 PASS foo(o) is true 148 PASS foo(o) is true 149 PASS foo(o) is true 150 PASS foo(o) is true 151 PASS foo(o) is true 152 PASS foo(o) is true 153 PASS foo(o) is true 154 PASS foo(o) is true 155 PASS foo(o) is true 156 PASS foo(o) is true 157 PASS foo(o) is true 158 PASS foo(o) is true 159 PASS foo(o) is true 160 PASS foo(o) is true 161 PASS foo(o) is true 162 PASS foo(o) is true 163 PASS foo(o) is true 164 PASS foo(o) is true 165 PASS foo(o) is true 166 PASS foo(o) is true 167 PASS foo(o) is true 168 PASS foo(o) is true 169 PASS foo(o) is true 170 PASS foo(o) is true 171 PASS foo(o) is true 172 PASS foo(o) is true 173 PASS foo(o) is true 174 PASS foo(o) is true 175 PASS foo(o) is true 176 PASS foo(o) is true 177 PASS foo(o) is true 178 PASS foo(o) is true 179 PASS foo(o) is true 180 PASS foo(o) is true 181 PASS foo(o) is true 182 PASS foo(o) is true 183 PASS foo(o) is true 184 PASS foo(o) is true 185 PASS foo(o) is true 186 PASS foo(o) is true 187 PASS foo(o) is true 188 PASS foo(o) is true 189 PASS foo(o) is true 190 PASS foo(o) is true 191 PASS foo(o) is true 192 PASS foo(o) is true 193 PASS foo(o) is true 194 PASS foo(o) is true 195 PASS foo(o) is true 196 PASS foo(o) is true 197 PASS foo(o) is true 198 PASS foo(o) is true 199 PASS foo(o) is true 200 PASS foo(o) is true 201 PASS foo(o) is true 202 PASS foo(o) is true 203 PASS foo(o) is true 204 PASS foo(o) is true 205 PASS foo(o) is true 206 PASS foo(o) is true 207 PASS foo(o) is true 208 PASS foo(o) is true 209 PASS foo(o) is true 210 PASS foo(o) is true 211 PASS foo(o) is true 212 PASS foo(o) is true 213 PASS foo(o) is true 214 PASS foo(o) is true 215 PASS foo(o) is true 216 PASS foo(o) is true 217 PASS foo(o) is true 218 PASS foo(o) is true 219 PASS foo(o) is true 220 PASS foo(o) is true 221 PASS foo(o) is true 222 PASS foo(o) is true 223 PASS foo(o) is true 224 PASS foo(o) is true 225 PASS foo(o) is true 226 PASS foo(o) is true 227 PASS foo(o) is true 228 PASS foo(o) is true 229 PASS foo(o) is true 230 PASS foo(o) is true 231 PASS foo(o) is true 232 PASS foo(o) is true 233 PASS foo(o) is true 234 PASS foo(o) is true 235 PASS foo(o) is true 236 PASS foo(o) is true 237 PASS foo(o) is true 238 PASS foo(o) is true 239 PASS foo(o) is true 240 PASS foo(o) is true 241 PASS foo(o) is true 242 PASS foo(o) is true 243 PASS foo(o) is true 244 PASS foo(o) is true 245 PASS foo(o) is true 246 PASS foo(o) is true 247 PASS foo(o) is true 248 PASS foo(o) is true 249 PASS foo(o) is true 250 PASS foo(o) is true 251 PASS foo(o) is true 252 PASS foo(o) is true 253 PASS foo(o) is true 254 PASS foo(o) is true 255 PASS foo(o) is true 256 PASS foo(o) is true 257 PASS foo(o) is true 258 PASS foo(o) is true 259 PASS foo(o) is true 260 PASS foo(o) is true 261 PASS foo(o) is true 262 PASS foo(o) is true 263 PASS foo(o) is true 264 PASS foo(o) is true 265 PASS foo(o) is true 266 PASS foo(o) is true 267 PASS foo(o) is true 268 PASS foo(o) is true 269 PASS foo(o) is true 270 PASS foo(o) is true 271 PASS foo(o) is true 272 PASS foo(o) is true 273 PASS foo(o) is true 274 PASS foo(o) is true 275 PASS foo(o) is true 276 PASS foo(o) is true 277 PASS foo(o) is true 278 PASS foo(o) is true 279 PASS foo(o) is true 280 PASS foo(o) is true 281 PASS foo(o) is true 282 PASS foo(o) is true 283 PASS foo(o) is true 284 PASS foo(o) is true 285 PASS foo(o) is true 286 PASS foo(o) is true 287 PASS foo(o) is true 288 PASS foo(o) is true 289 PASS foo(o) is true 290 PASS foo(o) is true 291 PASS foo(o) is true 292 PASS foo(o) is true 293 PASS foo(o) is true 294 PASS foo(o) is true 295 PASS foo(o) is true 296 PASS foo(o) is true 297 PASS foo(o) is true 298 PASS foo(o) is true 299 PASS foo(o) is true 300 PASS foo(o) is true 301 PASS foo(o) is true 302 PASS foo(o) is true 303 PASS foo(o) is true 304 PASS foo(o) is true 305 PASS foo(o) is true 306 PASS foo(o) is true 307 PASS foo(o) is true 308 PASS foo(o) is true 309 PASS foo(o) is true 310 PASS foo(o) is true 311 PASS foo(o) is true 312 PASS foo(o) is true 313 PASS foo(o) is true 314 PASS foo(o) is true 315 PASS foo(o) is true 316 PASS foo(o) is true 317 PASS foo(o) is true 318 PASS foo(o) is true 319 PASS foo(o) is true 320 PASS foo(o) is true 321 PASS foo(o) is true 322 PASS foo(o) is true 323 PASS foo(o) is true 324 PASS foo(o) is true 325 PASS foo(o) is true 326 PASS foo(o) is true 327 PASS foo(o) is true 328 PASS foo(o) is true 329 PASS foo(o) is true 330 PASS foo(o) is true 331 PASS foo(o) is true 332 PASS foo(o) is true 333 PASS foo(o) is true 334 PASS foo(o) is true 335 PASS foo(o) is true 336 PASS foo(o) is true 337 PASS foo(o) is true 338 PASS foo(o) is true 339 PASS foo(o) is true 340 PASS foo(o) is true 341 PASS foo(o) is true 342 PASS foo(o) is true 343 PASS foo(o) is true 344 PASS foo(o) is true 345 PASS foo(o) is true 346 PASS foo(o) is true 347 PASS foo(o) is true 348 PASS foo(o) is true 349 PASS foo(o) is true 350 PASS foo(o) is true 351 PASS foo(o) is true 352 PASS foo(o) is true 353 PASS foo(o) is true 354 PASS foo(o) is true 355 PASS foo(o) is true 356 PASS foo(o) is true 357 PASS foo(o) is true 358 PASS foo(o) is true 359 PASS foo(o) is true 360 PASS foo(o) is true 361 PASS foo(o) is true 362 PASS foo(o) is true 363 PASS foo(o) is true 364 PASS foo(o) is true 365 PASS foo(o) is true 366 PASS foo(o) is true 367 PASS foo(o) is true 368 PASS foo(o) is true 369 PASS foo(o) is true 370 PASS foo(o) is true 371 PASS foo(o) is true 372 PASS foo(o) is true 373 PASS foo(o) is true 374 PASS foo(o) is true 375 PASS foo(o) is true 376 PASS foo(o) is true 377 PASS foo(o) is true 378 PASS foo(o) is true 379 PASS foo(o) is true 380 PASS foo(o) is true 381 PASS foo(o) is true 382 PASS foo(o) is true 383 PASS foo(o) is true 384 PASS foo(o) is true 385 PASS foo(o) is true 386 PASS foo(o) is true 387 PASS foo(o) is true 388 PASS foo(o) is true 389 PASS foo(o) is true 390 PASS foo(o) is true 391 PASS foo(o) is true 392 PASS foo(o) is true 393 PASS foo(o) is true 394 PASS foo(o) is true 395 PASS foo(o) is true 396 PASS foo(o) is true 397 PASS foo(o) is true 398 PASS foo(o) is true 399 PASS foo(o) is true 400 PASS foo(o) is true 401 PASS foo(o) is true 402 PASS foo(o) is true 403 PASS foo(o) is true 404 PASS foo(o) is true 405 PASS foo(o) is true 406 PASS foo(o) is true 407 PASS foo(o) is true 408 PASS foo(o) is true 409 PASS foo(o) is true 410 PASS foo(o) is true 411 PASS foo(o) is true 412 PASS foo(o) is true 413 PASS foo(o) is true 414 PASS foo(o) is true 415 PASS foo(o) is true 416 PASS foo(o) is true 417 PASS foo(o) is true 418 PASS foo(o) is true 419 PASS foo(o) is true 420 PASS foo(o) is true 421 PASS foo(o) is true 422 PASS foo(o) is true 423 PASS foo(o) is true 424 PASS foo(o) is true 425 PASS foo(o) is true 426 PASS foo(o) is true 427 PASS foo(o) is true 428 PASS foo(o) is true 429 PASS foo(o) is true 430 PASS foo(o) is true 431 PASS foo(o) is true 432 PASS foo(o) is true 433 PASS foo(o) is true 434 PASS foo(o) is true 435 PASS foo(o) is true 436 PASS foo(o) is true 437 PASS foo(o) is true 438 PASS foo(o) is true 439 PASS foo(o) is true 440 PASS foo(o) is true 441 PASS foo(o) is true 442 PASS foo(o) is true 443 PASS foo(o) is true 444 PASS foo(o) is true 445 PASS foo(o) is true 446 PASS foo(o) is true 447 PASS foo(o) is true 448 PASS foo(o) is true 449 PASS foo(o) is true 450 PASS foo(o) is true 451 PASS foo(o) is true 452 PASS foo(o) is true 453 PASS foo(o) is true 454 PASS foo(o) is true 455 PASS foo(o) is true 456 PASS foo(o) is true 457 PASS foo(o) is true 458 PASS foo(o) is true 459 PASS foo(o) is true 460 PASS foo(o) is true 461 PASS foo(o) is true 462 PASS foo(o) is true 463 PASS foo(o) is true 464 PASS foo(o) is true 465 PASS foo(o) is true 466 PASS foo(o) is true 467 PASS foo(o) is true 468 PASS foo(o) is true 469 PASS foo(o) is true 470 PASS foo(o) is true 471 PASS foo(o) is true 472 PASS foo(o) is true 473 PASS foo(o) is true 474 PASS foo(o) is true 475 PASS foo(o) is true 476 PASS foo(o) is true 477 PASS foo(o) is true 478 PASS foo(o) is true 479 PASS foo(o) is false 480 PASS foo(o) is false 481 PASS foo(o) is false 482 PASS foo(o) is false 483 PASS foo(o) is false 484 PASS foo(o) is false 485 PASS foo(o) is false 486 PASS foo(o) is false 487 PASS foo(o) is false 488 PASS foo(o) is false 489 PASS foo(o) is false 490 PASS foo(o) is false 491 PASS foo(o) is false 492 PASS foo(o) is false 493 PASS foo(o) is false 494 PASS foo(o) is false 495 PASS foo(o) is false 496 PASS foo(o) is false 497 PASS foo(o) is false 498 PASS foo(o) is false 499 PASS foo(o) is false 500 PASS foo(o) is false 501 PASS foo(o) is false 502 PASS foo(o) is false 503 PASS foo(o) is false 504 PASS foo(o) is false 505 PASS foo(o) is false 506 PASS foo(o) is false 507 PASS foo(o) is false 508 PASS foo(o) is false 509 PASS foo(o) is false 510 PASS foo(o) is false 511 PASS foo(o) is false 512 PASS foo(o) is false 513 PASS foo(o) is false 514 PASS foo(o) is false 515 PASS foo(o) is false 516 PASS foo(o) is false 517 PASS foo(o) is false 518 PASS foo(o) is false 519 PASS foo(o) is false 520 PASS foo(o) is false 521 PASS foo(o) is false 522 PASS foo(o) is false 523 PASS foo(o) is false 524 PASS foo(o) is false 525 PASS foo(o) is false 526 PASS foo(o) is false 527 PASS foo(o) is false 528 PASS foo(o) is false 529 PASS successfullyParsed is true 530 531 TEST COMPLETE 532 533