1 # Copyright 2009 the V8 project authors. All rights reserved. 2 # Redistribution and use in source and binary forms, with or without 3 # modification, are permitted provided that the following conditions are 4 # met: 5 # 6 # * Redistributions of source code must retain the above copyright 7 # notice, this list of conditions and the following disclaimer. 8 # * Redistributions in binary form must reproduce the above 9 # copyright notice, this list of conditions and the following 10 # disclaimer in the documentation and/or other materials provided 11 # with the distribution. 12 # * Neither the name of Google Inc. nor the names of its 13 # contributors may be used to endorse or promote products derived 14 # from this software without specific prior written permission. 15 # 16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 28 prefix es5conform 29 def UNIMPLEMENTED = PASS || FAIL 30 def FAIL_OK = FAIL, OKAY 31 32 33 ############################################################################## 34 # Non UTF8 characters in test files. 35 chapter10/10.4/10.4.2/10.4.2-3-c-2-s: FAIL_OK 36 chapter10/10.4/10.4.2/10.4.2-3-c-1-s: FAIL_OK 37 chapter10/10.4/10.4.2/10.4.2-2-c-1: FAIL_OK 38 39 # We do not implement the error chekcs specified in the production rules 40 # of 11.1.5 (Object initializer). 41 # We are compatible with Safari and Firefox. 42 chapter11/11.1/11.1.5: UNIMPLEMENTED 43 44 # We do not have a global object called 'global' as required by tests. 45 chapter15/15.1: FAIL_OK 46 47 # NaN is writable. We are compatible with JSC. 48 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-178: FAIL_OK 49 # Infinity is writable. We are compatible with JSC. 50 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-179: FAIL_OK 51 # undefined is writable. We are compatible with JSC. 52 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-180: FAIL_OK 53 54 # Our Function object has an "arguments" property which is used as a 55 # non-property in the test. 56 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-183: FAIL_OK 57 58 # Our Function object has a "caller" property which is used as a 59 # non-property in in the test. 60 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-184: FAIL_OK 61 62 # Our function object has a name property which is used as a 63 # non-property in the test. 64 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188: FAIL_OK 65 66 # NOT IMPLEMENTED: RegExp.prototype.source 67 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212: UNIMPLEMENTED 68 69 # NOT IMPLEMENTED: RegExp.prototype.global 70 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213: UNIMPLEMENTED 71 72 # NOT IMPLEMENTED: RegExp.prototype.ignoreCase 73 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214: UNIMPLEMENTED 74 75 # NOT IMPLEMENTED: RegExp.prototype.multiline 76 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215: UNIMPLEMENTED 77 78 # All of the tests below marked SUBSETFAIL (in 15.2.3.4) fail because 79 # the tests assumes that objects can not have more properties 80 # than those described in the spec - but according to spec they can 81 # have additional properties. 82 # All compareArray calls in these tests could be exchanged with a 83 # isSubsetOfArray call (I will upload a patch to the es5conform site). 84 85 # SUBSETFAIL 86 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-1: FAIL_OK 87 88 # SUBSETFAIL + we do not implement all methods on Object. 89 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-2: FAIL_OK 90 91 # SUBSETFAIL 92 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-3: FAIL_OK 93 94 # SUBSETFAIL 95 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-4: FAIL_OK 96 97 # SUBSETFAIL 98 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-5: FAIL_OK 99 100 # SUBSETFAIL 101 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-6: FAIL_OK 102 103 # SUBSETFAIL 104 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-7: FAIL_OK 105 106 # SUBSETFAIL 107 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-11: FAIL_OK 108 109 # We do not implement all methods on RegExp. 110 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-13: FAIL 111 112 # SUBSETFAIL 113 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-14: FAIL_OK 114 115 # EvalError.prototype does not have message property. 116 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-15: FAIL 117 118 # Rangeerror.prototype does not have message property. 119 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-16: FAIL 120 121 # ReferenceError.prototype does not have message property. 122 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-17: FAIL 123 124 # SyntaxError.prototype does not have message property. 125 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-18: FAIL 126 127 # TypeError.prototype does not have message property. 128 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-19: FAIL 129 130 # URIError.prototype does not have message property. 131 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-20: FAIL 132 133 # SUBSETFAIL 134 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-22: FAIL_OK 135 136 # SUBSETFAIL 137 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-23: FAIL_OK 138 139 # SUBSETFAIL 140 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-24: FAIL_OK 141 142 # SUBSETFAIL 143 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-25: FAIL_OK 144 145 # SUBSETFAIL 146 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-26: FAIL_OK 147 148 # SUBSETFAIL 149 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-27: FAIL_OK 150 151 # SUBSETFAIL 152 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-28: FAIL_OK 153 154 # SUBSETFAIL 155 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-29: FAIL_OK 156 157 # SUBSETFAIL 158 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-30: FAIL_OK 159 160 # SUBSETFAIL 161 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-31: FAIL_OK 162 163 # SUBSETFAIL 164 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-32: FAIL_OK 165 166 # SUBSETFAIL 167 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-33: FAIL_OK 168 169 # SUBSETFAIL 170 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-34: FAIL_OK 171 172 # SUBSETFAIL 173 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-35: FAIL_OK 174 175 # Bad test - the spec does not say anything about throwing errors 176 # on calling Array.prototype.indexOf with undefined as argument. 177 chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1: FAIL_OK 178 179 # Bad test - the spec does not say anything about throwing errors 180 # on calling Array.prototype.indexOf with null as argument. 181 chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2: FAIL_OK 182 183 # Bad test - the test at the end should be "i === true". 184 chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10: FAIL_OK 185 186 # Bad test - according to spec some returns a Boolean, not a number. 187 chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9: FAIL_OK 188 189 # Bad test - uses unitialized variable a in precondition check. 190 chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3: FAIL_OK 191 192 # We do not implement Array mapping functions correctly if array 193 # entries are added for nonexistent entries smaller than length by 194 # the callback function. We are compatible with JSC. 195 # See http://code.google.com/p/v8/issues/detail?id=755 196 chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1: FAIL_OK 197 198 # Bad tests, path in test file is wrong. This will crash the test 199 # script so we mark it SKIP. 200 chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4: SKIP 201 chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s: SKIP 202 203 # Bad test - deleting the property on o in callbackfn will 204 # have no effect on the actual array on which reduceRight is called. 205 chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7: FAIL_OK 206 207 # We do not implement trim correctly on null and undefined. 208 chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-1: FAIL 209 chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-1-2: FAIL 210 211 # We do not correctly recognize \uFEFF as whitespace 212 chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-10: FAIL 213 chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-18: FAIL 214 chapter15/15.5/15.5.4/15.5.4.20/15.5.4.20-4-34: FAIL 215 216 # RegExp.prototype is not of type RegExp - we are bug compatible with JSC. 217 chapter15/15.10/15.10.6/15.10.6: FAIL_OK 218 219 # We do not have the properties of a RegExp instance on RegExp.prototype. 220 # The spec says we should - but we are currently bug compatible with JSC. 221 chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-1: FAIL_OK 222 chapter15/15.10/15.10.7/15.10.7.1/15.10.7.1-2: FAIL_OK 223 chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-1: FAIL_OK 224 chapter15/15.10/15.10.7/15.10.7.2/15.10.7.2-2: FAIL_OK 225 chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-1: FAIL_OK 226 chapter15/15.10/15.10.7/15.10.7.3/15.10.7.3-2: FAIL_OK 227 chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-1: FAIL_OK 228 chapter15/15.10/15.10.7/15.10.7.4/15.10.7.4-2: FAIL_OK 229 chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-1: FAIL_OK 230 chapter15/15.10/15.10.7/15.10.7.5/15.10.7.5-2: FAIL_OK 231 232 ############################################################################## 233 # Unimplemented parts of strict mode 234 # Setting expectations to fail only so that the tests trigger as soon as 235 # the strict mode feature gets implemented 236 237 # A directive preceeding an 'use strict' directive may not contain 238 # an OctalEscapeSequence 239 # Incorrect test - need double escape in eval. 240 chapter07/7.8/7.8.4/7.8.4-1-s: FAIL 241 242 # arguments.caller is non-configurable in strict mode 243 # Invalid test case. Checks for "writable == true" and presence of "put".. 244 chapter10/10.6/10.6-13-b-3-s: FAIL 245 # arguments.callee is non-configurable in strict mode 246 # Invalid test case. Checks for "put" property accessor. 247 chapter10/10.6/10.6-13-c-3-s: FAIL 248 249 # simple assignment throws TypeError if LeftHandSide is a property reference 250 # with a primitive base value (this is undefined) 251 chapter11/11.13/11.13.1/11.13.1-1-7-s: FAIL 252 253 # simple assignment throws TypeError if LeftHandSide is a readonly property 254 # in strict mode (Global.NaN) 255 chapter11/11.13/11.13.1/11.13.1-4-2-s: FAIL 256 # simple assignment throws TypeError if LeftHandSide is a readonly property 257 # in strict mode (Global.Infinity) 258 chapter11/11.13/11.13.1/11.13.1-4-3-s: FAIL 259 # simple assignment throws TypeError if LeftHandSide is a readonly property 260 # in strict mode (Global.length) 261 chapter11/11.13/11.13.1/11.13.1-4-4-s: FAIL 262 # simple assignment throws TypeError if LeftHandSide is a readonly property 263 # in strict mode (Global.undefined) 264 chapter11/11.13/11.13.1/11.13.1-4-27-s: FAIL 265 266 # delete operator throws TypeError when when deleting a non-configurable 267 # data property in strict mode (Global.NaN) 268 # Invalid test case - "this" is not a global object within the test case. 269 # (http://es5conform.codeplex.com/workitem/29151) 270 chapter11/11.4/11.4.1/11.4.1-4.a-4-s: FAIL_OK 271 272 # delete operator throws ReferenceError when deleting a direct reference 273 # to a var in strict mode 274 # Invalid test case. Test expects ReferenceError instead of SyntaxError. 275 # http://es5conform.codeplex.com/workitem/29084 276 chapter11/11.4/11.4.1/11.4.1-5-1-s: FAIL 277 # delete operator throws ReferenceError when deleting a direct reference 278 # to a function argument in strict mode 279 # Invalid test case. Test expects ReferenceError instead of SyntaxError. 280 # http://es5conform.codeplex.com/workitem/29084 281 chapter11/11.4/11.4.1/11.4.1-5-2-s: FAIL 282 # delete operator throws ReferenceError when deleting a direct reference 283 # to a function name in strict mode 284 # Invalid test case. Test expects ReferenceError instead of SyntaxError. 285 # http://es5conform.codeplex.com/workitem/29084 286 chapter11/11.4/11.4.1/11.4.1-5-3-s: FAIL 287 288 # eval - a function declaring a var named 'eval' throws EvalError in strict mode 289 # Invalid test case. SyntaxError should be expected instead of EvalError. 290 chapter12/12.2/12.2.1/12.2.1-1-s: FAIL 291 # eval - a function assigning into 'eval' throws EvalError in strict mode 292 # Invalid test case. SyntaxError should be expected instead of EvalError. 293 chapter12/12.2/12.2.1/12.2.1-2-s: FAIL 294 # eval - a function expr declaring a var named 'eval' throws EvalError 295 # in strict mode 296 # Invalid test case. SyntaxError should be expected instead of EvalError. 297 chapter12/12.2/12.2.1/12.2.1-3-s: FAIL 298 # eval - a function expr assigning into 'eval' throws a EvalError in strict mode 299 # Invalid test case. SyntaxError should be expected instead of EvalError. 300 chapter12/12.2/12.2.1/12.2.1-4-s: FAIL 301 # eval - a Function declaring var named 'eval' throws EvalError in strict mode 302 # Invalid test case. SyntaxError should be expected instead of EvalError. 303 chapter12/12.2/12.2.1/12.2.1-5-s: FAIL 304 # eval - a Function assigning into 'eval' throws EvalError in strict mode 305 # Invalid test case. SyntaxError should be expected instead of EvalError. 306 chapter12/12.2/12.2.1/12.2.1-6-s: FAIL 307 # eval - a direct eval declaring a var named 'eval' throws EvalError 308 # in strict mode 309 # Invalid test case. SyntaxError should be expected instead of EvalError. 310 chapter12/12.2/12.2.1/12.2.1-7-s: FAIL 311 # eval - a direct eval assigning into 'eval' throws EvalError in strict mode 312 # Invalid test case. SyntaxError should be expected instead of EvalError. 313 chapter12/12.2/12.2.1/12.2.1-8-s: FAIL 314 # eval - an indirect eval declaring a var named 'eval' throws EvalError 315 # in strict mode 316 # Invalid test case. SyntaxError should be expected instead of EvalError. 317 chapter12/12.2/12.2.1/12.2.1-9-s: FAIL 318 # eval - an indirect eval assigning into 'eval' throws EvalError in strict mode 319 # Invalid test case. SyntaxError should be expected instead of EvalError. 320 chapter12/12.2/12.2.1/12.2.1-10-s: FAIL 321 322 # SyntaxError if eval used as function identifier in function declaration 323 # with strict body 324 # Test fails to return true on success (invalid test case). 325 chapter13/13.1/13.1-3-3-s: FAIL 326 # SyntaxError if eval used as function identifier in function expression 327 # with strict body 328 # Test fails to return true on success (invalid test case). 329 chapter13/13.1/13.1-3-4-s: FAIL 330 # SyntaxError if eval used as function identifier in function declaration 331 # in strict code 332 # Test fails to return true on success (invalid test case). 333 chapter13/13.1/13.1-3-5-s: FAIL 334 # SyntaxError if eval used as function identifier in function expression 335 # in strict code 336 # Test fails to return true on success (invalid test case). 337 chapter13/13.1/13.1-3-6-s: FAIL 338 # SyntaxError if arguments used as function identifier in function declaration 339 # with strict body 340 # Test fails to return true on success (invalid test case). 341 chapter13/13.1/13.1-3-9-s: FAIL 342 # SyntaxError if arguments used as function identifier in function expression 343 # with strict body 344 # Test fails to return true on success (invalid test case). 345 chapter13/13.1/13.1-3-10-s: FAIL 346 # SyntaxError if arguments used as function identifier in function declaration 347 # in strict code 348 # Test fails to return true on success (invalid test case). 349 chapter13/13.1/13.1-3-11-s: FAIL 350 # SyntaxError if arguments used as function identifier in function expression 351 # in strict code 352 # Test fails to return true on success (invalid test case). 353 chapter13/13.1/13.1-3-12-s: FAIL 354 355 # Duplicate combined parameter name allowed in Function constructor called 356 # in strict mode if body not strict 357 # Test fails to return true on success (invalid test case). 358 chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-6-s: FAIL 359 360 # Array.prototype.reduce - null passed as thisValue to strict callbackfn 361 # Invalid test case: http://es5conform.codeplex.com/workitem/29085 362 chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4-s: FAIL 363 364 [ $arch == mips ] 365 366 # Skip all tests on MIPS. 367 *: SKIP 368