1720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// Copyright 2010 the V8 project authors. All rights reserved. 2720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// Redistribution and use in source and binary forms, with or without 3720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// modification, are permitted provided that the following conditions are 4720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// met: 5720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// 6720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// * Redistributions of source code must retain the above copyright 7720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// notice, this list of conditions and the following disclaimer. 8720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// * Redistributions in binary form must reproduce the above 9720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// copyright notice, this list of conditions and the following 10720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// disclaimer in the documentation and/or other materials provided 11720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// with the distribution. 12720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// * Neither the name of Google Inc. nor the names of its 13720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// contributors may be used to endorse or promote products derived 14720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// from this software without specific prior written permission. 15720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// 16720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org 28720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgvar except = "exception"; 29720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org 30720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgvar correct_answer_index = 0; 31720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgvar correct_answers = [ 32720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 33720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, true, false, false, true, 34720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, false, true, true, false, 35720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 36720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 37720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, false, true, 38720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, true, false, 39720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 40720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 41720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, false, except, except, 42720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, false, true, except, except, 43720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 44720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 45720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 46720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 47720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 48720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 49720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, false, false, true, true, 50720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, false, true, true, false, 51720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, false, true, true, false, 52720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 53720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 54720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, true, false, 55720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, true, false, 56720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 57720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, false, except, except, 58720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, false, true, except, except, 59720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 60720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 61720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 62720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 63720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 64720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, true, true, false, 65720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, true, true, false, false, 66720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, false, true, true, false, 67720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 68720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 69720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, false, true, 70720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, true, false, 71720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 72720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, true, except, except, 73720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 74720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, false, true, except, except, 75720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 76720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 77720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 78720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 79720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 80720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, true, true, false, 81720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, false, true, true, false, 82720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, false, true, true, false, 83720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, false, true, true, false, 84720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 85720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 86720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, true, false, 87720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, true, false, 88720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, true, except, except, 89720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 90720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, false, true, except, except, 91720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 92720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 93720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 94720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 95720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 96720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 97720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, false, false, true, true, 98720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, true, true, false, false, 99720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 100720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 101720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 102720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, false, false, 103720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 104720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 105720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, false, false, except, except, 106720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, true, true, except, except, 107720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 108720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 109720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 110720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 111720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 112720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 113720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, false, false, true, true, 114720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, true, true, false, false, 115720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 116720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 117720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 118720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, false, false, 119720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 120720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 121720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, false, false, except, except, 122720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, true, true, except, except, 123720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 124720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 125720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 126720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 127720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 128720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, true, true, false, false, 129720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, true, true, false, false, 130720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, true, true, false, false, 131720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 132720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 133720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 134720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, false, false, 135720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 136720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, true, true, except, except, 137720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 138720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, true, true, except, except, 139720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 140720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 141720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 142720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 143720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 144720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, true, true, false, false, 145720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, true, true, false, false, 146720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, true, true, false, false, 147720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 148720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 149720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 150720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, false, false, 151720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 152720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, true, true, except, except, 153720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 154720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, true, true, except, except, 155720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 156720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 157720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 158720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 159720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 160720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 161720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, true, true, false, false, 162720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, false, false, true, true, 163720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 164720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 165720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, false, false, 166720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, true, true, 167720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 168720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 169720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 170720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, false, false, except, except, 171720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 172720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 173720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 174720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 175720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 176720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 177720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, false, false, true, true, 178720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, false, false, true, true, 179720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, false, false, true, true, 180720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 181720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 182720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, true, true, 183720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, true, true, 184720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 185720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 186720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, false, false, except, except, 187720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 188720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 189720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 190720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 191720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 192720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 193720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, true, true, false, false, 194720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, false, false, true, true, 195720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 196720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 197720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, false, false, 198720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, true, true, 199720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 200720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 201720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 202720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, false, false, except, except, 203720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 204720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 205720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 206720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 207720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 208720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 209720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, false, false, true, true, 210720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, false, false, true, true, 211720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, false, false, true, true, 212720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 213720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 214720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, true, true, 215720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, true, true, 216720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 217720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 218720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, false, false, except, except, 219720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 220720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 221720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 222720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 223720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 224720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 225720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, false, false, true, true, 226720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, true, true, false, false, 227720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 228720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 229720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 230720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, false, false, 231720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 232720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 233720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, false, false, except, except, 234720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, true, true, except, except, 235720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 236720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 237720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 238720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 239720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 240720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, false, false, true, true, 241720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, false, false, true, true, 242720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, true, true, false, false, 243720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 244720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 245720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 246720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, false, false, 247720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 248720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, false, false, except, except, 249720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, false, false, except, except, 250720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, true, true, except, except, 251720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 252720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 253720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 254720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 255720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 256720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, true, true, false, false, 257720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, true, true, false, false, 258720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, true, true, false, false, 259720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 260720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 261720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 262720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, false, false, 263720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 264720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, true, true, except, except, 265720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 266720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, true, true, except, except, 267720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 268720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 269720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 270720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 271720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 272720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, true, true, true, true, false, false, 273720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, false, true, true, true, false, false, 274720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, true, false, true, true, false, false, 275720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, false, false, true, true, false, false, 276720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, true, except, except, true, true, 277720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, true, except, except, true, true, 278720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, true, false, except, except, false, false, 279720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, false, false, except, except, false, false, 280720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, false, except, except, true, true, except, except, 281720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, false, except, except, true, true, except, except, 282720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org false, true, except, except, true, true, except, except, 283720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org true, true, except, except, true, true, except, except, 284720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 285720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 286720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except, 287720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgexcept, except, except, except, except, except, except, except]; 288720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org 289720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgfor (var i = 0; i < 256; i++) { 290720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org Test(i & 1, i & 2, i & 4, i & 8, i & 0x10, i & 0x20, i & 0x40, i & 0x80); 291720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org} 292720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org 293720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org 294720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgfunction InstanceTest(x, func) { 295720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org try { 296720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org var answer = (x instanceof func); 297720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org assertEquals(correct_answers[correct_answer_index], answer); 298720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org } catch (e) { 299720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org assertTrue(/prototype/.test(e)); 300720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org assertEquals(correct_answers[correct_answer_index], except); 301720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org } 302720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org correct_answer_index++; 303720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org} 304720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org 305720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org 306720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.orgfunction Test(a, b, c, d, e, f, g, h) { 307720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org var Foo = function() { } 308720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org var Bar = function() { } 309720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org 310720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org if (c) Foo.prototype = 12; 311720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org if (d) Bar.prototype = 13; 312720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org var x = a ? new Foo() : new Bar(); 313720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org var y = b ? new Foo() : new Bar(); 314720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org InstanceTest(x, Foo); 315720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org InstanceTest(y, Foo); 316720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org InstanceTest(x, Bar); 317720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org InstanceTest(y, Bar); 318720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org if (e) x.__proto__ = Bar.prototype; 319720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org if (f) y.__proto__ = Foo.prototype; 320720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org if (g) { 321720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org x.__proto__ = y; 322720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org } else { 323720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org if (h) y.__proto__ = x 324720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org } 325720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org InstanceTest(x, Foo); 326720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org InstanceTest(y, Foo); 327720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org InstanceTest(x, Bar); 328720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org InstanceTest(y, Bar); 329720dc0bc17114e33b9b2177fcb6726bda9cabd62sgjesse@chromium.org} 330