Home | History | Annotate | Download | only in es5conform
      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