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 Check that short-circuiting Branch(LogicalNot(@a)) and then failing speculation does not result in the branch being taken the wrong way. 25 26 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". 27 28 29 PASS foo({f:True}) is 1 30 PASS foo({f:False}) is 0 31 PASS bar({f:True}) is 0 32 PASS bar({f:False}) is 1 33 PASS foo({f:True}) is 1 34 PASS foo({f:False}) is 0 35 PASS bar({f:True}) is 0 36 PASS bar({f:False}) is 1 37 PASS foo({f:True}) is 1 38 PASS foo({f:False}) is 0 39 PASS bar({f:True}) is 0 40 PASS bar({f:False}) is 1 41 PASS foo({f:True}) is 1 42 PASS foo({f:False}) is 0 43 PASS bar({f:True}) is 0 44 PASS bar({f:False}) is 1 45 PASS foo({f:True}) is 1 46 PASS foo({f:False}) is 0 47 PASS bar({f:True}) is 0 48 PASS bar({f:False}) is 1 49 PASS foo({f:True}) is 1 50 PASS foo({f:False}) is 0 51 PASS bar({f:True}) is 0 52 PASS bar({f:False}) is 1 53 PASS foo({f:True}) is 1 54 PASS foo({f:False}) is 0 55 PASS bar({f:True}) is 0 56 PASS bar({f:False}) is 1 57 PASS foo({f:True}) is 1 58 PASS foo({f:False}) is 0 59 PASS bar({f:True}) is 0 60 PASS bar({f:False}) is 1 61 PASS foo({f:True}) is 1 62 PASS foo({f:False}) is 0 63 PASS bar({f:True}) is 0 64 PASS bar({f:False}) is 1 65 PASS foo({f:True}) is 1 66 PASS foo({f:False}) is 0 67 PASS bar({f:True}) is 0 68 PASS bar({f:False}) is 1 69 PASS foo({f:True}) is 1 70 PASS foo({f:False}) is 0 71 PASS bar({f:True}) is 0 72 PASS bar({f:False}) is 1 73 PASS foo({f:True}) is 1 74 PASS foo({f:False}) is 0 75 PASS bar({f:True}) is 0 76 PASS bar({f:False}) is 1 77 PASS foo({f:True}) is 1 78 PASS foo({f:False}) is 0 79 PASS bar({f:True}) is 0 80 PASS bar({f:False}) is 1 81 PASS foo({f:True}) is 1 82 PASS foo({f:False}) is 0 83 PASS bar({f:True}) is 0 84 PASS bar({f:False}) is 1 85 PASS foo({f:True}) is 1 86 PASS foo({f:False}) is 0 87 PASS bar({f:True}) is 0 88 PASS bar({f:False}) is 1 89 PASS foo({f:True}) is 1 90 PASS foo({f:False}) is 0 91 PASS bar({f:True}) is 0 92 PASS bar({f:False}) is 1 93 PASS foo({f:True}) is 1 94 PASS foo({f:False}) is 0 95 PASS bar({f:True}) is 0 96 PASS bar({f:False}) is 1 97 PASS foo({f:True}) is 1 98 PASS foo({f:False}) is 0 99 PASS bar({f:True}) is 0 100 PASS bar({f:False}) is 1 101 PASS foo({f:True}) is 1 102 PASS foo({f:False}) is 0 103 PASS bar({f:True}) is 0 104 PASS bar({f:False}) is 1 105 PASS foo({f:True}) is 1 106 PASS foo({f:False}) is 0 107 PASS bar({f:True}) is 0 108 PASS bar({f:False}) is 1 109 PASS foo({f:True}) is 1 110 PASS foo({f:False}) is 0 111 PASS bar({f:True}) is 0 112 PASS bar({f:False}) is 1 113 PASS foo({f:True}) is 1 114 PASS foo({f:False}) is 0 115 PASS bar({f:True}) is 0 116 PASS bar({f:False}) is 1 117 PASS foo({f:True}) is 1 118 PASS foo({f:False}) is 0 119 PASS bar({f:True}) is 0 120 PASS bar({f:False}) is 1 121 PASS foo({f:True}) is 1 122 PASS foo({f:False}) is 0 123 PASS bar({f:True}) is 0 124 PASS bar({f:False}) is 1 125 PASS foo({f:True}) is 1 126 PASS foo({f:False}) is 0 127 PASS bar({f:True}) is 0 128 PASS bar({f:False}) is 1 129 PASS foo({f:True}) is 1 130 PASS foo({f:False}) is 0 131 PASS bar({f:True}) is 0 132 PASS bar({f:False}) is 1 133 PASS foo({f:True}) is 1 134 PASS foo({f:False}) is 0 135 PASS bar({f:True}) is 0 136 PASS bar({f:False}) is 1 137 PASS foo({f:True}) is 1 138 PASS foo({f:False}) is 0 139 PASS bar({f:True}) is 0 140 PASS bar({f:False}) is 1 141 PASS foo({f:True}) is 1 142 PASS foo({f:False}) is 0 143 PASS bar({f:True}) is 0 144 PASS bar({f:False}) is 1 145 PASS foo({f:True}) is 1 146 PASS foo({f:False}) is 0 147 PASS bar({f:True}) is 0 148 PASS bar({f:False}) is 1 149 PASS foo({f:True}) is 1 150 PASS foo({f:False}) is 0 151 PASS bar({f:True}) is 0 152 PASS bar({f:False}) is 1 153 PASS foo({f:True}) is 1 154 PASS foo({f:False}) is 0 155 PASS bar({f:True}) is 0 156 PASS bar({f:False}) is 1 157 PASS foo({f:True}) is 1 158 PASS foo({f:False}) is 0 159 PASS bar({f:True}) is 0 160 PASS bar({f:False}) is 1 161 PASS foo({f:True}) is 1 162 PASS foo({f:False}) is 0 163 PASS bar({f:True}) is 0 164 PASS bar({f:False}) is 1 165 PASS foo({f:True}) is 1 166 PASS foo({f:False}) is 0 167 PASS bar({f:True}) is 0 168 PASS bar({f:False}) is 1 169 PASS foo({f:True}) is 1 170 PASS foo({f:False}) is 0 171 PASS bar({f:True}) is 0 172 PASS bar({f:False}) is 1 173 PASS foo({f:True}) is 1 174 PASS foo({f:False}) is 0 175 PASS bar({f:True}) is 0 176 PASS bar({f:False}) is 1 177 PASS foo({f:True}) is 1 178 PASS foo({f:False}) is 0 179 PASS bar({f:True}) is 0 180 PASS bar({f:False}) is 1 181 PASS foo({f:True}) is 1 182 PASS foo({f:False}) is 0 183 PASS bar({f:True}) is 0 184 PASS bar({f:False}) is 1 185 PASS foo({f:True}) is 1 186 PASS foo({f:False}) is 0 187 PASS bar({f:True}) is 0 188 PASS bar({f:False}) is 1 189 PASS foo({f:True}) is 1 190 PASS foo({f:False}) is 0 191 PASS bar({f:True}) is 0 192 PASS bar({f:False}) is 1 193 PASS foo({f:True}) is 1 194 PASS foo({f:False}) is 0 195 PASS bar({f:True}) is 0 196 PASS bar({f:False}) is 1 197 PASS foo({f:True}) is 1 198 PASS foo({f:False}) is 0 199 PASS bar({f:True}) is 0 200 PASS bar({f:False}) is 1 201 PASS foo({f:True}) is 1 202 PASS foo({f:False}) is 0 203 PASS bar({f:True}) is 0 204 PASS bar({f:False}) is 1 205 PASS foo({f:True}) is 1 206 PASS foo({f:False}) is 0 207 PASS bar({f:True}) is 0 208 PASS bar({f:False}) is 1 209 PASS foo({f:True}) is 1 210 PASS foo({f:False}) is 0 211 PASS bar({f:True}) is 0 212 PASS bar({f:False}) is 1 213 PASS foo({f:True}) is 1 214 PASS foo({f:False}) is 0 215 PASS bar({f:True}) is 0 216 PASS bar({f:False}) is 1 217 PASS foo({f:True}) is 1 218 PASS foo({f:False}) is 0 219 PASS bar({f:True}) is 0 220 PASS bar({f:False}) is 1 221 PASS foo({f:True}) is 1 222 PASS foo({f:False}) is 0 223 PASS bar({f:True}) is 0 224 PASS bar({f:False}) is 1 225 PASS foo({f:True}) is 1 226 PASS foo({f:False}) is 0 227 PASS bar({f:True}) is 0 228 PASS bar({f:False}) is 1 229 PASS foo({f:True}) is 1 230 PASS foo({f:False}) is 0 231 PASS bar({f:True}) is 0 232 PASS bar({f:False}) is 1 233 PASS foo({f:True}) is 1 234 PASS foo({f:False}) is 0 235 PASS bar({f:True}) is 0 236 PASS bar({f:False}) is 1 237 PASS foo({f:True}) is 1 238 PASS foo({f:False}) is 0 239 PASS bar({f:True}) is 0 240 PASS bar({f:False}) is 1 241 PASS foo({f:True}) is 1 242 PASS foo({f:False}) is 0 243 PASS bar({f:True}) is 0 244 PASS bar({f:False}) is 1 245 PASS foo({f:True}) is 1 246 PASS foo({f:False}) is 0 247 PASS bar({f:True}) is 0 248 PASS bar({f:False}) is 1 249 PASS foo({f:True}) is 1 250 PASS foo({f:False}) is 0 251 PASS bar({f:True}) is 0 252 PASS bar({f:False}) is 1 253 PASS foo({f:True}) is 1 254 PASS foo({f:False}) is 0 255 PASS bar({f:True}) is 0 256 PASS bar({f:False}) is 1 257 PASS foo({f:True}) is 1 258 PASS foo({f:False}) is 0 259 PASS bar({f:True}) is 0 260 PASS bar({f:False}) is 1 261 PASS foo({f:True}) is 1 262 PASS foo({f:False}) is 0 263 PASS bar({f:True}) is 0 264 PASS bar({f:False}) is 1 265 PASS foo({f:True}) is 1 266 PASS foo({f:False}) is 0 267 PASS bar({f:True}) is 0 268 PASS bar({f:False}) is 1 269 PASS foo({f:True}) is 1 270 PASS foo({f:False}) is 0 271 PASS bar({f:True}) is 0 272 PASS bar({f:False}) is 1 273 PASS foo({f:True}) is 1 274 PASS foo({f:False}) is 0 275 PASS bar({f:True}) is 0 276 PASS bar({f:False}) is 1 277 PASS foo({f:True}) is 1 278 PASS foo({f:False}) is 0 279 PASS bar({f:True}) is 0 280 PASS bar({f:False}) is 1 281 PASS foo({f:True}) is 1 282 PASS foo({f:False}) is 0 283 PASS bar({f:True}) is 0 284 PASS bar({f:False}) is 1 285 PASS foo({f:True}) is 1 286 PASS foo({f:False}) is 0 287 PASS bar({f:True}) is 0 288 PASS bar({f:False}) is 1 289 PASS foo({f:True}) is 1 290 PASS foo({f:False}) is 0 291 PASS bar({f:True}) is 0 292 PASS bar({f:False}) is 1 293 PASS foo({f:True}) is 1 294 PASS foo({f:False}) is 0 295 PASS bar({f:True}) is 0 296 PASS bar({f:False}) is 1 297 PASS foo({f:True}) is 1 298 PASS foo({f:False}) is 0 299 PASS bar({f:True}) is 0 300 PASS bar({f:False}) is 1 301 PASS foo({f:True}) is 1 302 PASS foo({f:False}) is 0 303 PASS bar({f:True}) is 0 304 PASS bar({f:False}) is 1 305 PASS foo({f:True}) is 1 306 PASS foo({f:False}) is 0 307 PASS bar({f:True}) is 0 308 PASS bar({f:False}) is 1 309 PASS foo({f:True}) is 1 310 PASS foo({f:False}) is 0 311 PASS bar({f:True}) is 0 312 PASS bar({f:False}) is 1 313 PASS foo({f:True}) is 1 314 PASS foo({f:False}) is 0 315 PASS bar({f:True}) is 0 316 PASS bar({f:False}) is 1 317 PASS foo({f:True}) is 1 318 PASS foo({f:False}) is 0 319 PASS bar({f:True}) is 0 320 PASS bar({f:False}) is 1 321 PASS foo({f:True}) is 1 322 PASS foo({f:False}) is 0 323 PASS bar({f:True}) is 0 324 PASS bar({f:False}) is 1 325 PASS foo({f:True}) is 1 326 PASS foo({f:False}) is 0 327 PASS bar({f:True}) is 0 328 PASS bar({f:False}) is 1 329 PASS foo({f:True}) is 1 330 PASS foo({f:False}) is 0 331 PASS bar({f:True}) is 0 332 PASS bar({f:False}) is 1 333 PASS foo({f:True}) is 1 334 PASS foo({f:False}) is 0 335 PASS bar({f:True}) is 0 336 PASS bar({f:False}) is 1 337 PASS foo({f:True}) is 1 338 PASS foo({f:False}) is 0 339 PASS bar({f:True}) is 0 340 PASS bar({f:False}) is 1 341 PASS foo({f:True}) is 1 342 PASS foo({f:False}) is 0 343 PASS bar({f:True}) is 0 344 PASS bar({f:False}) is 1 345 PASS foo({f:True}) is 1 346 PASS foo({f:False}) is 0 347 PASS bar({f:True}) is 0 348 PASS bar({f:False}) is 1 349 PASS foo({f:True}) is 1 350 PASS foo({f:False}) is 0 351 PASS bar({f:True}) is 0 352 PASS bar({f:False}) is 1 353 PASS foo({f:True}) is 1 354 PASS foo({f:False}) is 0 355 PASS bar({f:True}) is 0 356 PASS bar({f:False}) is 1 357 PASS foo({f:True}) is 1 358 PASS foo({f:False}) is 0 359 PASS bar({f:True}) is 0 360 PASS bar({f:False}) is 1 361 PASS foo({f:True}) is 1 362 PASS foo({f:False}) is 0 363 PASS bar({f:True}) is 0 364 PASS bar({f:False}) is 1 365 PASS foo({f:True}) is 1 366 PASS foo({f:False}) is 0 367 PASS bar({f:True}) is 0 368 PASS bar({f:False}) is 1 369 PASS foo({f:True}) is 1 370 PASS foo({f:False}) is 0 371 PASS bar({f:True}) is 0 372 PASS bar({f:False}) is 1 373 PASS foo({f:True}) is 1 374 PASS foo({f:False}) is 0 375 PASS bar({f:True}) is 0 376 PASS bar({f:False}) is 1 377 PASS foo({f:True}) is 1 378 PASS foo({f:False}) is 0 379 PASS bar({f:True}) is 0 380 PASS bar({f:False}) is 1 381 PASS foo({f:True}) is 1 382 PASS foo({f:False}) is 0 383 PASS bar({f:True}) is 0 384 PASS bar({f:False}) is 1 385 PASS foo({f:True}) is 1 386 PASS foo({f:False}) is 0 387 PASS bar({f:True}) is 0 388 PASS bar({f:False}) is 1 389 PASS foo({f:True}) is 1 390 PASS foo({f:False}) is 0 391 PASS bar({f:True}) is 0 392 PASS bar({f:False}) is 1 393 PASS foo({f:True}) is 1 394 PASS foo({f:False}) is 0 395 PASS bar({f:True}) is 0 396 PASS bar({f:False}) is 1 397 PASS foo({f:True}) is 1 398 PASS foo({f:False}) is 0 399 PASS bar({f:True}) is 0 400 PASS bar({f:False}) is 1 401 PASS foo({f:True}) is 1 402 PASS foo({f:False}) is 0 403 PASS bar({f:True}) is 0 404 PASS bar({f:False}) is 1 405 PASS foo({f:True}) is 1 406 PASS foo({f:False}) is 0 407 PASS bar({f:True}) is 0 408 PASS bar({f:False}) is 1 409 PASS foo({f:True}) is 1 410 PASS foo({f:False}) is 0 411 PASS bar({f:True}) is 0 412 PASS bar({f:False}) is 1 413 PASS foo({f:True}) is 1 414 PASS foo({f:False}) is 0 415 PASS bar({f:True}) is 0 416 PASS bar({f:False}) is 1 417 PASS foo({f:True}) is 1 418 PASS foo({f:False}) is 0 419 PASS bar({f:True}) is 0 420 PASS bar({f:False}) is 1 421 PASS foo({f:True}) is 1 422 PASS foo({f:False}) is 0 423 PASS bar({f:True}) is 0 424 PASS bar({f:False}) is 1 425 PASS foo({f:True}) is 1 426 PASS foo({f:False}) is 0 427 PASS bar({f:True}) is 0 428 PASS bar({f:False}) is 1 429 PASS foo({f:True}) is 1 430 PASS foo({f:False}) is 0 431 PASS bar({f:True}) is 0 432 PASS bar({f:False}) is 1 433 PASS foo({f:True}) is 1 434 PASS foo({f:False}) is 0 435 PASS bar({f:True}) is 0 436 PASS bar({f:False}) is 1 437 PASS foo({f:True}) is 1 438 PASS foo({f:False}) is 0 439 PASS bar({f:True}) is 0 440 PASS bar({f:False}) is 1 441 PASS foo({f:True}) is 1 442 PASS foo({f:False}) is 0 443 PASS bar({f:True}) is 0 444 PASS bar({f:False}) is 1 445 PASS foo({f:True}) is 1 446 PASS foo({f:False}) is 0 447 PASS bar({f:True}) is 0 448 PASS bar({f:False}) is 1 449 PASS foo({f:True}) is 1 450 PASS foo({f:False}) is 0 451 PASS bar({f:True}) is 0 452 PASS bar({f:False}) is 1 453 PASS foo({f:True}) is 1 454 PASS foo({f:False}) is 0 455 PASS bar({f:True}) is 0 456 PASS bar({f:False}) is 1 457 PASS foo({f:True}) is 1 458 PASS foo({f:False}) is 0 459 PASS bar({f:True}) is 0 460 PASS bar({f:False}) is 1 461 PASS foo({f:True}) is 1 462 PASS foo({f:False}) is 0 463 PASS bar({f:True}) is 0 464 PASS bar({f:False}) is 1 465 PASS foo({f:True}) is 1 466 PASS foo({f:False}) is 0 467 PASS bar({f:True}) is 0 468 PASS bar({f:False}) is 1 469 PASS foo({f:True}) is 1 470 PASS foo({f:False}) is 0 471 PASS bar({f:True}) is 0 472 PASS bar({f:False}) is 1 473 PASS foo({f:True}) is 1 474 PASS foo({f:False}) is 0 475 PASS bar({f:True}) is 0 476 PASS bar({f:False}) is 1 477 PASS foo({f:True}) is 1 478 PASS foo({f:False}) is 0 479 PASS bar({f:True}) is 0 480 PASS bar({f:False}) is 1 481 PASS foo({f:True}) is 1 482 PASS foo({f:False}) is 0 483 PASS bar({f:True}) is 0 484 PASS bar({f:False}) is 1 485 PASS foo({f:True}) is 1 486 PASS foo({f:False}) is 0 487 PASS bar({f:True}) is 0 488 PASS bar({f:False}) is 1 489 PASS foo({f:True}) is 1 490 PASS foo({f:False}) is 0 491 PASS bar({f:True}) is 0 492 PASS bar({f:False}) is 1 493 PASS foo({f:True}) is 1 494 PASS foo({f:False}) is 0 495 PASS bar({f:True}) is 0 496 PASS bar({f:False}) is 1 497 PASS foo({f:True}) is 1 498 PASS foo({f:False}) is 0 499 PASS bar({f:True}) is 0 500 PASS bar({f:False}) is 1 501 PASS foo({f:True}) is 1 502 PASS foo({f:False}) is 0 503 PASS bar({f:True}) is 0 504 PASS bar({f:False}) is 1 505 PASS foo({f:True}) is 1 506 PASS foo({f:False}) is 0 507 PASS bar({f:True}) is 0 508 PASS bar({f:False}) is 1 509 PASS foo({f:True}) is 1 510 PASS foo({f:False}) is 0 511 PASS bar({f:True}) is 0 512 PASS bar({f:False}) is 1 513 PASS foo({f:True}) is 1 514 PASS foo({f:False}) is 0 515 PASS bar({f:True}) is 0 516 PASS bar({f:False}) is 1 517 PASS foo({f:True}) is 1 518 PASS foo({f:False}) is 0 519 PASS bar({f:True}) is 0 520 PASS bar({f:False}) is 1 521 PASS foo({f:True}) is 1 522 PASS foo({f:False}) is 0 523 PASS bar({f:True}) is 0 524 PASS bar({f:False}) is 1 525 PASS foo({f:True}) is 1 526 PASS foo({f:False}) is 0 527 PASS bar({f:True}) is 0 528 PASS bar({f:False}) is 1 529 PASS foo({f:True}) is 1 530 PASS foo({f:False}) is 0 531 PASS bar({f:True}) is 0 532 PASS bar({f:False}) is 1 533 PASS foo({f:True}) is 1 534 PASS foo({f:False}) is 0 535 PASS bar({f:True}) is 0 536 PASS bar({f:False}) is 1 537 PASS foo({f:True}) is 1 538 PASS foo({f:False}) is 0 539 PASS bar({f:True}) is 0 540 PASS bar({f:False}) is 1 541 PASS foo({f:True}) is 1 542 PASS foo({f:False}) is 0 543 PASS bar({f:True}) is 0 544 PASS bar({f:False}) is 1 545 PASS foo({f:True}) is 1 546 PASS foo({f:False}) is 0 547 PASS bar({f:True}) is 0 548 PASS bar({f:False}) is 1 549 PASS foo({f:True}) is 1 550 PASS foo({f:False}) is 0 551 PASS bar({f:True}) is 0 552 PASS bar({f:False}) is 1 553 PASS foo({f:True}) is 1 554 PASS foo({f:False}) is 0 555 PASS bar({f:True}) is 0 556 PASS bar({f:False}) is 1 557 PASS foo({f:True}) is 1 558 PASS foo({f:False}) is 0 559 PASS bar({f:True}) is 0 560 PASS bar({f:False}) is 1 561 PASS foo({f:True}) is 1 562 PASS foo({f:False}) is 0 563 PASS bar({f:True}) is 0 564 PASS bar({f:False}) is 1 565 PASS foo({f:True}) is 1 566 PASS foo({f:False}) is 0 567 PASS bar({f:True}) is 0 568 PASS bar({f:False}) is 1 569 PASS foo({f:True}) is 1 570 PASS foo({f:False}) is 0 571 PASS bar({f:True}) is 0 572 PASS bar({f:False}) is 1 573 PASS foo({f:True}) is 1 574 PASS foo({f:False}) is 0 575 PASS bar({f:True}) is 0 576 PASS bar({f:False}) is 1 577 PASS foo({f:True}) is 1 578 PASS foo({f:False}) is 0 579 PASS bar({f:True}) is 0 580 PASS bar({f:False}) is 1 581 PASS foo({f:True}) is 1 582 PASS foo({f:False}) is 0 583 PASS bar({f:True}) is 0 584 PASS bar({f:False}) is 1 585 PASS foo({f:True}) is 1 586 PASS foo({f:False}) is 0 587 PASS bar({f:True}) is 0 588 PASS bar({f:False}) is 1 589 PASS foo({f:True}) is 1 590 PASS foo({f:False}) is 0 591 PASS bar({f:True}) is 0 592 PASS bar({f:False}) is 1 593 PASS foo({f:True}) is 1 594 PASS foo({f:False}) is 0 595 PASS bar({f:True}) is 0 596 PASS bar({f:False}) is 1 597 PASS foo({f:True}) is 1 598 PASS foo({f:False}) is 0 599 PASS bar({f:True}) is 0 600 PASS bar({f:False}) is 1 601 PASS foo({f:True}) is 1 602 PASS foo({f:False}) is 0 603 PASS bar({f:True}) is 0 604 PASS bar({f:False}) is 1 605 PASS foo({f:True}) is 1 606 PASS foo({f:False}) is 0 607 PASS bar({f:True}) is 0 608 PASS bar({f:False}) is 1 609 PASS foo({f:True}) is 1 610 PASS foo({f:False}) is 0 611 PASS bar({f:True}) is 0 612 PASS bar({f:False}) is 1 613 PASS foo({f:True}) is 1 614 PASS foo({f:False}) is 0 615 PASS bar({f:True}) is 0 616 PASS bar({f:False}) is 1 617 PASS foo({f:True}) is 1 618 PASS foo({f:False}) is 0 619 PASS bar({f:True}) is 0 620 PASS bar({f:False}) is 1 621 PASS foo({f:True}) is 1 622 PASS foo({f:False}) is 0 623 PASS bar({f:True}) is 0 624 PASS bar({f:False}) is 1 625 PASS foo({f:True}) is 1 626 PASS foo({f:False}) is 0 627 PASS bar({f:True}) is 0 628 PASS bar({f:False}) is 1 629 PASS foo({f:True}) is 1 630 PASS foo({f:False}) is 0 631 PASS bar({f:True}) is 0 632 PASS bar({f:False}) is 1 633 PASS foo({f:True}) is 1 634 PASS foo({f:False}) is 0 635 PASS bar({f:True}) is 0 636 PASS bar({f:False}) is 1 637 PASS foo({f:True}) is 1 638 PASS foo({f:False}) is 0 639 PASS bar({f:True}) is 0 640 PASS bar({f:False}) is 1 641 PASS foo({f:True}) is 1 642 PASS foo({f:False}) is 0 643 PASS bar({f:True}) is 0 644 PASS bar({f:False}) is 1 645 PASS foo({f:True}) is 1 646 PASS foo({f:False}) is 0 647 PASS bar({f:True}) is 0 648 PASS bar({f:False}) is 1 649 PASS foo({f:True}) is 1 650 PASS foo({f:False}) is 0 651 PASS bar({f:True}) is 0 652 PASS bar({f:False}) is 1 653 PASS foo({f:True}) is 1 654 PASS foo({f:False}) is 0 655 PASS bar({f:True}) is 0 656 PASS bar({f:False}) is 1 657 PASS foo({f:True}) is 1 658 PASS foo({f:False}) is 0 659 PASS bar({f:True}) is 0 660 PASS bar({f:False}) is 1 661 PASS foo({f:True}) is 1 662 PASS foo({f:False}) is 0 663 PASS bar({f:True}) is 0 664 PASS bar({f:False}) is 1 665 PASS foo({f:True}) is 1 666 PASS foo({f:False}) is 0 667 PASS bar({f:True}) is 0 668 PASS bar({f:False}) is 1 669 PASS foo({f:True}) is 1 670 PASS foo({f:False}) is 0 671 PASS bar({f:True}) is 0 672 PASS bar({f:False}) is 1 673 PASS foo({f:True}) is 1 674 PASS foo({f:False}) is 0 675 PASS bar({f:True}) is 0 676 PASS bar({f:False}) is 1 677 PASS foo({f:True}) is 1 678 PASS foo({f:False}) is 0 679 PASS bar({f:True}) is 0 680 PASS bar({f:False}) is 1 681 PASS foo({f:True}) is 1 682 PASS foo({f:False}) is 0 683 PASS bar({f:True}) is 0 684 PASS bar({f:False}) is 1 685 PASS foo({f:True}) is 1 686 PASS foo({f:False}) is 0 687 PASS bar({f:True}) is 0 688 PASS bar({f:False}) is 1 689 PASS foo({f:True}) is 1 690 PASS foo({f:False}) is 0 691 PASS bar({f:True}) is 0 692 PASS bar({f:False}) is 1 693 PASS foo({f:True}) is 1 694 PASS foo({f:False}) is 0 695 PASS bar({f:True}) is 0 696 PASS bar({f:False}) is 1 697 PASS foo({f:True}) is 1 698 PASS foo({f:False}) is 0 699 PASS bar({f:True}) is 0 700 PASS bar({f:False}) is 1 701 PASS foo({f:True}) is 1 702 PASS foo({f:False}) is 0 703 PASS bar({f:True}) is 0 704 PASS bar({f:False}) is 1 705 PASS foo({f:True}) is 1 706 PASS foo({f:False}) is 0 707 PASS bar({f:True}) is 0 708 PASS bar({f:False}) is 1 709 PASS foo({f:True}) is 1 710 PASS foo({f:False}) is 0 711 PASS bar({f:True}) is 0 712 PASS bar({f:False}) is 1 713 PASS foo({f:True}) is 1 714 PASS foo({f:False}) is 0 715 PASS bar({f:True}) is 0 716 PASS bar({f:False}) is 1 717 PASS foo({f:True}) is 1 718 PASS foo({f:False}) is 0 719 PASS bar({f:True}) is 0 720 PASS bar({f:False}) is 1 721 PASS foo({f:True}) is 1 722 PASS foo({f:False}) is 0 723 PASS bar({f:True}) is 0 724 PASS bar({f:False}) is 1 725 PASS foo({f:True}) is 1 726 PASS foo({f:False}) is 0 727 PASS bar({f:True}) is 0 728 PASS bar({f:False}) is 1 729 PASS foo({f:True}) is 1 730 PASS foo({f:False}) is 0 731 PASS bar({f:True}) is 0 732 PASS bar({f:False}) is 1 733 PASS foo({f:True}) is 1 734 PASS foo({f:False}) is 0 735 PASS bar({f:True}) is 0 736 PASS bar({f:False}) is 1 737 PASS foo({f:True}) is 1 738 PASS foo({f:False}) is 0 739 PASS bar({f:True}) is 0 740 PASS bar({f:False}) is 1 741 PASS foo({f:True}) is 1 742 PASS foo({f:False}) is 0 743 PASS bar({f:True}) is 0 744 PASS bar({f:False}) is 1 745 PASS foo({f:True}) is 1 746 PASS foo({f:False}) is 0 747 PASS bar({f:True}) is 0 748 PASS bar({f:False}) is 1 749 PASS foo({f:True}) is 1 750 PASS foo({f:False}) is 0 751 PASS bar({f:True}) is 0 752 PASS bar({f:False}) is 1 753 PASS foo({f:True}) is 1 754 PASS foo({f:False}) is 0 755 PASS bar({f:True}) is 0 756 PASS bar({f:False}) is 1 757 PASS foo({f:True}) is 1 758 PASS foo({f:False}) is 0 759 PASS bar({f:True}) is 0 760 PASS bar({f:False}) is 1 761 PASS foo({f:True}) is 1 762 PASS foo({f:False}) is 0 763 PASS bar({f:True}) is 0 764 PASS bar({f:False}) is 1 765 PASS foo({f:True}) is 1 766 PASS foo({f:False}) is 0 767 PASS bar({f:True}) is 0 768 PASS bar({f:False}) is 1 769 PASS foo({f:True}) is 1 770 PASS foo({f:False}) is 0 771 PASS bar({f:True}) is 0 772 PASS bar({f:False}) is 1 773 PASS foo({f:True}) is 1 774 PASS foo({f:False}) is 0 775 PASS bar({f:True}) is 0 776 PASS bar({f:False}) is 1 777 PASS foo({f:True}) is 1 778 PASS foo({f:False}) is 0 779 PASS bar({f:True}) is 0 780 PASS bar({f:False}) is 1 781 PASS foo({f:True}) is 1 782 PASS foo({f:False}) is 0 783 PASS bar({f:True}) is 0 784 PASS bar({f:False}) is 1 785 PASS foo({f:True}) is 1 786 PASS foo({f:False}) is 0 787 PASS bar({f:True}) is 0 788 PASS bar({f:False}) is 1 789 PASS foo({f:True}) is 1 790 PASS foo({f:False}) is 0 791 PASS bar({f:True}) is 0 792 PASS bar({f:False}) is 1 793 PASS foo({f:True}) is 1 794 PASS foo({f:False}) is 0 795 PASS bar({f:True}) is 0 796 PASS bar({f:False}) is 1 797 PASS foo({f:True}) is 1 798 PASS foo({f:False}) is 0 799 PASS bar({f:True}) is 0 800 PASS bar({f:False}) is 1 801 PASS foo({f:True}) is 1 802 PASS foo({f:False}) is 0 803 PASS bar({f:True}) is 0 804 PASS bar({f:False}) is 1 805 PASS foo({f:True}) is 1 806 PASS foo({f:False}) is 0 807 PASS bar({f:True}) is 0 808 PASS bar({f:False}) is 1 809 PASS foo({f:True}) is 1 810 PASS foo({f:False}) is 0 811 PASS bar({f:True}) is 0 812 PASS bar({f:False}) is 1 813 PASS foo({f:True}) is 1 814 PASS foo({f:False}) is 0 815 PASS bar({f:True}) is 0 816 PASS bar({f:False}) is 1 817 PASS foo({f:True}) is 1 818 PASS foo({f:False}) is 0 819 PASS bar({f:True}) is 0 820 PASS bar({f:False}) is 1 821 PASS foo({f:True}) is 1 822 PASS foo({f:False}) is 0 823 PASS bar({f:True}) is 0 824 PASS bar({f:False}) is 1 825 PASS foo({f:True}) is 1 826 PASS foo({f:False}) is 0 827 PASS bar({f:True}) is 0 828 PASS bar({f:False}) is 1 829 PASS successfullyParsed is true 830 831 TEST COMPLETE 832 833