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 that we do ToString conversions correctly when String.prototype.valueOf is not what we wanted. 25 26 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". 27 28 29 hello 30 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 31 hello 32 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 33 hello 34 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 35 hello 36 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 37 hello 38 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 39 hello 40 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 41 hello 42 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 43 hello 44 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 45 hello 46 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 47 hello 48 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 49 hello 50 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 51 hello 52 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 53 hello 54 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 55 hello 56 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 57 hello 58 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 59 hello 60 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 61 hello 62 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 63 hello 64 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 65 hello 66 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 67 hello 68 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 69 hello 70 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 71 hello 72 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 73 hello 74 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 75 hello 76 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 77 hello 78 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 79 hello 80 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 81 hello 82 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 83 hello 84 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 85 hello 86 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 87 hello 88 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 89 hello 90 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 91 hello 92 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 93 hello 94 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 95 hello 96 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 97 hello 98 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 99 hello 100 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 101 hello 102 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 103 hello 104 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 105 hello 106 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 107 hello 108 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 109 hello 110 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 111 hello 112 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 113 hello 114 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 115 hello 116 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 117 hello 118 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 119 hello 120 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 121 hello 122 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 123 hello 124 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 125 hello 126 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 127 hello 128 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 129 hello 130 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 131 hello 132 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 133 hello 134 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 135 hello 136 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 137 hello 138 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 139 hello 140 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 141 hello 142 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 143 hello 144 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 145 hello 146 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 147 hello 148 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 149 hello 150 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 151 hello 152 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 153 hello 154 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 155 hello 156 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 157 hello 158 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 159 hello 160 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 161 hello 162 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 163 hello 164 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 165 hello 166 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 167 hello 168 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 169 hello 170 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 171 hello 172 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 173 hello 174 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 175 hello 176 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 177 hello 178 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 179 hello 180 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 181 hello 182 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 183 hello 184 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 185 hello 186 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 187 hello 188 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 189 hello 190 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 191 hello 192 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 193 hello 194 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 195 hello 196 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 197 hello 198 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 199 hello 200 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 201 hello 202 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 203 hello 204 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 205 hello 206 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 207 hello 208 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 209 hello 210 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 211 hello 212 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 213 hello 214 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 215 hello 216 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 217 hello 218 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 219 hello 220 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 221 hello 222 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 223 hello 224 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 225 hello 226 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 227 hello 228 PASS "" + foo({toString:function() { debug("hello"); return 42; }}) is "42" 229 PASS successfullyParsed is true 230 231 TEST COMPLETE 232 233