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 # Our Function object has an "arguments" property which is used as a
     45 # non-property in the test.
     46 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-183: FAIL_OK
     47 
     48 # Our Function object has a "caller" property which is used as a
     49 # non-property in in the test.
     50 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-184: FAIL_OK
     51 
     52 # Our function object has a name property which is used as a
     53 # non-property in the test.
     54 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-188: FAIL_OK
     55 
     56 # NOT IMPLEMENTED: RegExp.prototype.source
     57 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-212: UNIMPLEMENTED
     58 
     59 # NOT IMPLEMENTED: RegExp.prototype.global
     60 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-213: UNIMPLEMENTED
     61 
     62 # NOT IMPLEMENTED: RegExp.prototype.ignoreCase
     63 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-214: UNIMPLEMENTED
     64 
     65 # NOT IMPLEMENTED: RegExp.prototype.multiline
     66 chapter15/15.2/15.2.3/15.2.3.3/15.2.3.3-4-215: UNIMPLEMENTED
     67 
     68 # All of the tests below marked SUBSETFAIL (in 15.2.3.4) fail because
     69 # the tests assumes that objects can not have more properties
     70 # than those described in the spec - but according to spec they can
     71 # have additional properties.
     72 # All compareArray calls in these tests could be exchanged with a
     73 # isSubsetOfArray call (I will upload a patch to the es5conform site).
     74 
     75 # SUBSETFAIL
     76 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-1: FAIL_OK
     77 
     78 # SUBSETFAIL + we do not implement all methods on Object.
     79 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-2: FAIL_OK
     80 
     81 # SUBSETFAIL
     82 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-3: FAIL_OK
     83 
     84 # SUBSETFAIL
     85 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-4: FAIL_OK
     86 
     87 # SUBSETFAIL
     88 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-5: FAIL_OK
     89 
     90 # SUBSETFAIL
     91 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-6: FAIL_OK
     92 
     93 # SUBSETFAIL
     94 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-7: FAIL_OK
     95 
     96 # SUBSETFAIL
     97 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-11: FAIL_OK
     98 
     99 # SUBSETFAIL
    100 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-14: FAIL_OK
    101 
    102 # EvalError.prototype does not have message property.
    103 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-15: FAIL
    104 
    105 # Rangeerror.prototype does not have message property.
    106 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-16: FAIL
    107 
    108 # ReferenceError.prototype does not have message property.
    109 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-17: FAIL
    110 
    111 # SyntaxError.prototype does not have message property.
    112 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-18: FAIL
    113 
    114 # TypeError.prototype does not have message property.
    115 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-19: FAIL
    116 
    117 # URIError.prototype does not have message property.
    118 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-20: FAIL
    119 
    120 # SUBSETFAIL
    121 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-22: FAIL_OK
    122 
    123 # SUBSETFAIL
    124 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-23: FAIL_OK
    125 
    126 # SUBSETFAIL
    127 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-24: FAIL_OK
    128 
    129 # SUBSETFAIL
    130 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-25: FAIL_OK
    131 
    132 # SUBSETFAIL
    133 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-26: FAIL_OK
    134 
    135 # SUBSETFAIL
    136 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-27: FAIL_OK
    137 
    138 # SUBSETFAIL
    139 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-28: FAIL_OK
    140 
    141 # SUBSETFAIL
    142 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-29: FAIL_OK
    143 
    144 # SUBSETFAIL
    145 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-30: FAIL_OK
    146 
    147 # SUBSETFAIL
    148 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-31: FAIL_OK
    149 
    150 # SUBSETFAIL
    151 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-32: FAIL_OK
    152 
    153 # SUBSETFAIL
    154 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-33: FAIL_OK
    155 
    156 # SUBSETFAIL
    157 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-34: FAIL_OK
    158 
    159 # SUBSETFAIL
    160 chapter15/15.2/15.2.3/15.2.3.4/15.2.3.4-4-35: FAIL_OK
    161 
    162 # Bad test - the test at the end should be "i === true".
    163 chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10: FAIL_OK
    164 
    165 # Bad test - according to spec some returns a Boolean, not a number.
    166 chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9: FAIL_OK
    167 
    168 # Bad test - uses unitialized variable a in precondition check.
    169 chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3: FAIL_OK
    170 
    171 # We do not implement Array mapping functions correctly if array
    172 # entries are added for nonexistent entries smaller than length by
    173 # the callback function. We are compatible with JSC.
    174 # See http://code.google.com/p/v8/issues/detail?id=755
    175 chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1: FAIL_OK
    176 
    177 # Bad tests, path in test file is wrong. This will crash the test
    178 # script so we mark it SKIP.
    179 chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4: SKIP
    180 chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s: SKIP
    181 
    182 # Bad test - deleting the property on o in callbackfn will
    183 # have no effect on the actual array on which reduceRight is called.
    184 chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7: FAIL_OK
    185 
    186 ##############################################################################
    187 # Unimplemented parts of strict mode
    188 # Setting expectations to fail only so that the tests trigger as soon as
    189 # the strict mode feature gets implemented
    190 
    191 # A directive preceeding an 'use strict' directive may not contain
    192 # an OctalEscapeSequence
    193 # Incorrect test - need double escape in eval.
    194 chapter07/7.8/7.8.4/7.8.4-1-s: FAIL
    195 
    196 # arguments.caller is non-configurable in strict mode
    197 # Invalid test case. Checks for "writable == true" and presence of "put"..
    198 chapter10/10.6/10.6-13-b-3-s: FAIL
    199 # arguments.callee is non-configurable in strict mode
    200 # Invalid test case. Checks for "put" property accessor.
    201 chapter10/10.6/10.6-13-c-3-s: FAIL
    202 
    203 # simple assignment throws TypeError if LeftHandSide is a property reference
    204 # with a primitive base value (this is undefined)
    205 chapter11/11.13/11.13.1/11.13.1-1-7-s: FAIL
    206 
    207 # simple assignment throws TypeError if LeftHandSide is a readonly property
    208 # in strict mode (Global.NaN)
    209 chapter11/11.13/11.13.1/11.13.1-4-2-s: FAIL
    210 # simple assignment throws TypeError if LeftHandSide is a readonly property
    211 # in strict mode (Global.Infinity)
    212 chapter11/11.13/11.13.1/11.13.1-4-3-s: FAIL
    213 # simple assignment throws TypeError if LeftHandSide is a readonly property
    214 # in strict mode (Global.length)
    215 chapter11/11.13/11.13.1/11.13.1-4-4-s: FAIL
    216 # simple assignment throws TypeError if LeftHandSide is a readonly property
    217 # in strict mode (Global.undefined)
    218 chapter11/11.13/11.13.1/11.13.1-4-27-s: FAIL
    219 
    220 # delete operator throws TypeError when when deleting a non-configurable
    221 # data property in strict mode (Global.NaN)
    222 # Invalid test case - "this" is not a global object within the test case.
    223 # (http://es5conform.codeplex.com/workitem/29151)
    224 chapter11/11.4/11.4.1/11.4.1-4.a-4-s: FAIL_OK
    225 
    226 # delete operator throws ReferenceError when deleting a direct reference
    227 # to a var in strict mode
    228 # Invalid test case. Test expects ReferenceError instead of SyntaxError.
    229 # http://es5conform.codeplex.com/workitem/29084
    230 chapter11/11.4/11.4.1/11.4.1-5-1-s: FAIL
    231 # delete operator throws ReferenceError when deleting a direct reference
    232 # to a function argument in strict mode
    233 # Invalid test case. Test expects ReferenceError instead of SyntaxError.
    234 # http://es5conform.codeplex.com/workitem/29084
    235 chapter11/11.4/11.4.1/11.4.1-5-2-s: FAIL
    236 # delete operator throws ReferenceError when deleting a direct reference
    237 # to a function name in strict mode
    238 # Invalid test case. Test expects ReferenceError instead of SyntaxError.
    239 # http://es5conform.codeplex.com/workitem/29084
    240 chapter11/11.4/11.4.1/11.4.1-5-3-s: FAIL
    241 
    242 # eval - a function declaring a var named 'eval' throws EvalError in strict mode
    243 # Invalid test case. SyntaxError should be expected instead of EvalError.
    244 chapter12/12.2/12.2.1/12.2.1-1-s: FAIL
    245 # eval - a function assigning into 'eval' throws EvalError in strict mode
    246 # Invalid test case. SyntaxError should be expected instead of EvalError.
    247 chapter12/12.2/12.2.1/12.2.1-2-s: FAIL
    248 # eval - a function expr declaring a var named 'eval' throws EvalError
    249 # in strict mode
    250 # Invalid test case. SyntaxError should be expected instead of EvalError.
    251 chapter12/12.2/12.2.1/12.2.1-3-s: FAIL
    252 # eval - a function expr assigning into 'eval' throws a EvalError in strict mode
    253 # Invalid test case. SyntaxError should be expected instead of EvalError.
    254 chapter12/12.2/12.2.1/12.2.1-4-s: FAIL
    255 # eval - a Function declaring var named 'eval' throws EvalError in strict mode
    256 # Invalid test case. SyntaxError should be expected instead of EvalError.
    257 chapter12/12.2/12.2.1/12.2.1-5-s: FAIL
    258 # eval - a Function assigning into 'eval' throws EvalError in strict mode
    259 # Invalid test case. SyntaxError should be expected instead of EvalError.
    260 chapter12/12.2/12.2.1/12.2.1-6-s: FAIL
    261 # eval - a direct eval declaring a var named 'eval' throws EvalError
    262 # in strict mode
    263 # Invalid test case. SyntaxError should be expected instead of EvalError.
    264 chapter12/12.2/12.2.1/12.2.1-7-s: FAIL
    265 # eval - a direct eval assigning into 'eval' throws EvalError in strict mode
    266 # Invalid test case. SyntaxError should be expected instead of EvalError.
    267 chapter12/12.2/12.2.1/12.2.1-8-s: FAIL
    268 # eval - an indirect eval declaring a var named 'eval' throws EvalError
    269 # in strict mode
    270 # Invalid test case. SyntaxError should be expected instead of EvalError.
    271 chapter12/12.2/12.2.1/12.2.1-9-s: FAIL
    272 # eval - an indirect eval assigning into 'eval' throws EvalError in strict mode
    273 # Invalid test case. SyntaxError should be expected instead of EvalError.
    274 chapter12/12.2/12.2.1/12.2.1-10-s: FAIL
    275 
    276 # SyntaxError if eval used as function identifier in function declaration
    277 # with strict body
    278 # Test fails to return true on success (invalid test case).
    279 chapter13/13.1/13.1-3-3-s: FAIL
    280 # SyntaxError if eval used as function identifier in function expression
    281 # with strict body
    282 # Test fails to return true on success (invalid test case).
    283 chapter13/13.1/13.1-3-4-s: FAIL
    284 # SyntaxError if eval used as function identifier in function declaration
    285 # in strict code
    286 # Test fails to return true on success (invalid test case).
    287 chapter13/13.1/13.1-3-5-s: FAIL
    288 # SyntaxError if eval used as function identifier in function expression
    289 # in strict code
    290 # Test fails to return true on success (invalid test case).
    291 chapter13/13.1/13.1-3-6-s: FAIL
    292 # SyntaxError if arguments used as function identifier in function declaration
    293 # with strict body
    294 # Test fails to return true on success (invalid test case).
    295 chapter13/13.1/13.1-3-9-s: FAIL
    296 # SyntaxError if arguments used as function identifier in function expression
    297 # with strict body
    298 # Test fails to return true on success (invalid test case).
    299 chapter13/13.1/13.1-3-10-s: FAIL
    300 # SyntaxError if arguments used as function identifier in function declaration
    301 # in strict code
    302 # Test fails to return true on success (invalid test case).
    303 chapter13/13.1/13.1-3-11-s: FAIL
    304 # SyntaxError if arguments used as function identifier in function expression
    305 # in strict code
    306 # Test fails to return true on success (invalid test case).
    307 chapter13/13.1/13.1-3-12-s: FAIL
    308 
    309 # Duplicate combined parameter name allowed in Function constructor called
    310 # in strict mode if body not strict
    311 # Test fails to return true on success (invalid test case).
    312 chapter15/15.3/15.3.2/15.3.2.1/15.3.2.1-11-6-s: FAIL
    313 
    314 # Array.prototype.reduce - null passed as thisValue to strict callbackfn
    315 # Invalid test case: http://es5conform.codeplex.com/workitem/29085
    316 chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4-s: FAIL
    317