blob: 2ad574640beea1142d0d655ccc90ba7c752d9a68 [file] [log] [blame]
# Copyright 2011 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
prefix test262
def FAIL_OK = FAIL, OKAY
############################### BUGS ###################################
# '__proto__' should be treated as a normal property in JSON.
S15.12.2_A1: FAIL
# V8 Bug: http://code.google.com/p/v8/issues/detail?id=1196
S8.7_A5_T2: FAIL
# V8 Bug: http://code.google.com/p/v8/issues/detail?id=1624
S10.4.2.1_A1: FAIL
# V8 Bug: http://code.google.com/p/v8/issues/detail?id=1530
S15.3.3.1_A4: FAIL
# V8 Bug: http://code.google.com/p/v8/issues/detail?id=1756
15.2.3.6-4-116: FAIL
15.2.3.6-4-117: FAIL
15.2.3.6-4-125: FAIL
15.2.3.6-4-126: FAIL
15.2.3.6-4-127: FAIL
15.2.3.6-4-128: FAIL
15.2.3.6-4-129: FAIL
15.2.3.6-4-130: FAIL
15.2.3.6-4-131: FAIL
15.2.3.6-4-132: FAIL
15.2.3.6-4-133: FAIL
15.2.3.6-4-134: FAIL
15.2.3.6-4-135: FAIL
15.2.3.6-4-136: FAIL
15.2.3.6-4-137: FAIL
15.2.3.6-4-138: FAIL
15.2.3.6-4-139: FAIL
15.2.3.6-4-140: FAIL
15.2.3.6-4-141: FAIL
15.2.3.6-4-142: FAIL
15.2.3.6-4-143: FAIL
15.2.3.6-4-144: FAIL
15.2.3.6-4-145: FAIL
15.2.3.6-4-146: FAIL
15.2.3.6-4-147: FAIL
15.2.3.6-4-148: FAIL
15.2.3.6-4-149: FAIL
15.2.3.6-4-150: FAIL
15.2.3.6-4-151: FAIL
15.2.3.6-4-152: FAIL
15.2.3.6-4-153: FAIL
15.2.3.6-4-154: FAIL
15.2.3.6-4-155: FAIL
15.2.3.6-4-156: FAIL
15.2.3.6-4-157: FAIL
15.2.3.6-4-159: FAIL
15.2.3.6-4-161: FAIL
15.2.3.6-4-165: FAIL
15.2.3.6-4-166: FAIL
15.2.3.6-4-167: FAIL
15.2.3.6-4-168: FAIL
15.2.3.6-4-169: FAIL
15.2.3.6-4-170: FAIL
15.2.3.6-4-171: FAIL
15.2.3.6-4-172: FAIL
15.2.3.6-4-173: FAIL
15.2.3.6-4-174: FAIL
15.2.3.6-4-175: FAIL
15.2.3.6-4-176: FAIL
15.2.3.6-4-177: FAIL
15.2.3.6-4-178: FAIL
15.2.3.6-4-179-1: FAIL
15.2.3.6-4-181: FAIL
15.2.3.6-4-183: FAIL
15.2.3.6-4-188: FAIL
15.2.3.6-4-189: FAIL
15.2.3.6-4-275: FAIL
15.2.3.6-4-276: FAIL
15.2.3.6-4-292-1: FAIL
15.2.3.6-4-293-2: FAIL
15.2.3.6-4-293-3: FAIL
15.2.3.6-4-294-1: FAIL
15.2.3.6-4-295-1: FAIL
15.2.3.6-4-296-1: FAIL
15.2.3.6-4-333-11: FAIL
15.2.3.6-4-360-1: FAIL
15.2.3.6-4-360-6: FAIL
15.2.3.6-4-360-7: FAIL
15.2.3.6-4-405: FAIL
15.2.3.6-4-410: FAIL
15.2.3.6-4-415: FAIL
15.2.3.6-4-420: FAIL
15.2.3.7-6-a-112: FAIL
15.2.3.7-6-a-113: FAIL
15.2.3.7-6-a-122: FAIL
15.2.3.7-6-a-123: FAIL
15.2.3.7-6-a-124: FAIL
15.2.3.7-6-a-125: FAIL
15.2.3.7-6-a-126: FAIL
15.2.3.7-6-a-127: FAIL
15.2.3.7-6-a-128: FAIL
15.2.3.7-6-a-133: FAIL
15.2.3.7-6-a-138: FAIL
15.2.3.7-6-a-139: FAIL
15.2.3.7-6-a-140: FAIL
15.2.3.7-6-a-142: FAIL
15.2.3.7-6-a-143: FAIL
15.2.3.7-6-a-144: FAIL
15.2.3.7-6-a-145: FAIL
15.2.3.7-6-a-147: FAIL
15.2.3.7-6-a-150: FAIL
15.2.3.7-6-a-151: FAIL
15.2.3.7-6-a-155: FAIL
15.2.3.7-6-a-157: FAIL
15.2.3.7-6-a-161: FAIL
15.2.3.7-6-a-162: FAIL
15.2.3.7-6-a-163: FAIL
15.2.3.7-6-a-164: FAIL
15.2.3.7-6-a-165: FAIL
15.2.3.7-6-a-166: FAIL
15.2.3.7-6-a-167: FAIL
15.2.3.7-6-a-168: FAIL
15.2.3.7-6-a-169: FAIL
15.2.3.7-6-a-170: FAIL
15.2.3.7-6-a-171: FAIL
15.2.3.7-6-a-172: FAIL
15.2.3.7-6-a-173: FAIL
15.2.3.7-6-a-174: FAIL
15.2.3.7-6-a-175: FAIL
15.2.3.7-6-a-176: FAIL
15.2.3.7-6-a-177: FAIL
15.2.3.7-6-a-121: FAIL
15.2.3.7-6-a-130: FAIL
15.2.3.7-6-a-129: FAIL
15.2.3.7-6-a-131: FAIL
15.2.3.7-6-a-132: FAIL
15.2.3.7-6-a-136: FAIL
15.2.3.7-6-a-135: FAIL
15.2.3.7-6-a-134: FAIL
15.2.3.7-6-a-137: FAIL
15.2.3.7-6-a-141: FAIL
15.2.3.7-6-a-146: FAIL
15.2.3.7-6-a-148: FAIL
15.2.3.7-6-a-149: FAIL
15.2.3.7-6-a-152: FAIL
15.2.3.7-6-a-153: FAIL
15.2.3.7-6-a-179: FAIL
15.2.3.7-6-a-184: FAIL
15.2.3.7-6-a-185: FAIL
15.2.3.7-6-a-264: FAIL
15.2.3.7-6-a-265: FAIL
15.4.4.14-9-b-i-11: FAIL
15.4.4.14-9-b-i-13: FAIL
15.4.4.14-9-b-i-17: FAIL
15.4.4.14-9-b-i-19: FAIL
15.4.4.14-9-b-i-28: FAIL
15.4.4.14-9-b-i-30: FAIL
15.4.4.15-8-a-14: FAIL
15.4.4.15-8-b-i-11: FAIL
15.4.4.15-8-b-i-13: FAIL
15.4.4.15-8-b-i-17: FAIL
15.4.4.15-8-b-i-28: FAIL
15.4.4.15-8-b-i-30: FAIL
15.4.4.16-7-c-i-10: FAIL
15.4.4.16-7-c-i-12: FAIL
15.4.4.16-7-c-i-14: FAIL
15.4.4.16-7-c-i-18: FAIL
15.4.4.16-7-c-i-20: FAIL
15.4.4.16-7-c-i-28: FAIL
15.4.4.17-7-c-i-10: FAIL
15.4.4.17-7-c-i-12: FAIL
15.4.4.17-7-c-i-14: FAIL
15.4.4.17-7-c-i-18: FAIL
15.4.4.17-7-c-i-20: FAIL
15.4.4.17-7-c-i-28: FAIL
15.4.4.18-7-c-i-10: FAIL
15.4.4.18-7-c-i-12: FAIL
15.4.4.18-7-c-i-14: FAIL
15.4.4.18-7-c-i-18: FAIL
15.4.4.18-7-c-i-20: FAIL
15.4.4.18-7-c-i-28: FAIL
15.4.4.19-8-c-i-10: FAIL
15.4.4.19-8-c-i-14: FAIL
15.4.4.19-8-c-i-12: FAIL
15.4.4.19-8-c-i-18: FAIL
15.4.4.19-8-c-i-19: FAIL
15.4.4.19-8-c-i-28: FAIL
15.4.4.20-9-c-i-10: FAIL
15.4.4.20-9-c-i-12: FAIL
15.4.4.20-9-c-i-14: FAIL
15.4.4.20-9-c-i-18: FAIL
15.4.4.20-9-c-i-20: FAIL
15.4.4.20-9-c-i-28: FAIL
15.4.4.22-8-b-2: FAIL
15.4.4.22-8-b-iii-1-12: FAIL
15.4.4.22-8-b-iii-1-18: FAIL
15.4.4.22-8-b-iii-1-20: FAIL
15.4.4.22-8-b-iii-1-33: FAIL
15.4.4.22-8-b-iii-1-30: FAIL
15.4.4.22-9-b-13: FAIL
15.4.4.22-9-b-24: FAIL
15.4.4.22-9-b-26: FAIL
15.4.4.22-9-b-9: FAIL
15.4.4.22-9-c-i-30: FAIL
# V8 Bug: http://code.google.com/p/v8/issues/detail?id=1772
15.2.3.6-4-292-1: FAIL
15.2.3.6-4-293-2: FAIL
15.2.3.6-4-293-3: FAIL
15.2.3.6-4-294-1: FAIL
15.2.3.6-4-295-1: FAIL
15.2.3.6-4-296-1: FAIL
15.2.3.6-4-333-11: FAIL
15.2.3.7-6-a-281: FAIL
15.2.3.7-6-a-282: FAIL
15.2.3.7-6-a-283: FAIL
15.2.3.7-6-a-284: FAIL
15.2.3.7-6-a-285: FAIL
# V8 Bug: http://code.google.com/p/v8/issues/detail?id=1790
15.4.4.22-9-9: FAIL
# Invalid test cases (recent change adding var changes semantics)
S8.3_A1_T1: FAIL
S15.3_A3_T1: FAIL
S15.3_A3_T3: FAIL
##################### DELIBERATE INCOMPATIBILITIES #####################
# We deliberately treat arguments to parseInt() with a leading zero as
# octal numbers in order to not break the web.
S15.1.2.2_A5.1_T1: FAIL_OK
# This tests precision of trignometric functions. We're slightly off
# from the implementation in libc (~ 1e-17) but it's not clear if we
# or they are closer to the right answer, or if it even matters.
S15.8.2.16_A7: PASS || FAIL_OK
S15.8.2.18_A7: PASS || FAIL_OK
S15.8.2.13_A23: PASS || FAIL_OK
# Sputnik tests (r97) assume RegExp.prototype is an Object, not a RegExp.
S15.10.6_A2: FAIL_OK
# We are silent in some regexp cases where the spec wants us to give
# errors, for compatibility.
S15.10.2.11_A1_T2: FAIL
S15.10.2.11_A1_T3: FAIL
# We are more lenient in which string character escapes we allow than
# the spec (7.8.4 p. 19) wants us to be. This is for compatibility.
S7.8.4_A4.3_T3: FAIL_OK
S7.8.4_A4.3_T4: FAIL_OK
S7.8.4_A4.3_T5: FAIL_OK
S7.8.4_A4.3_T6: FAIL_OK
S7.8.4_A6.1_T4: FAIL_OK
S7.8.4_A6.2_T1: FAIL_OK
S7.8.4_A6.2_T2: FAIL_OK
S7.8.4_A6.4_T1: FAIL_OK
S7.8.4_A6.4_T2: FAIL_OK
S7.8.4_A7.1_T4: FAIL_OK
S7.8.4_A7.2_T1: FAIL_OK
S7.8.4_A7.2_T2: FAIL_OK
S7.8.4_A7.2_T3: FAIL_OK
S7.8.4_A7.2_T4: FAIL_OK
S7.8.4_A7.2_T5: FAIL_OK
S7.8.4_A7.2_T6: FAIL_OK
S7.8.4_A7.4_T1: FAIL_OK
S7.8.4_A7.4_T2: FAIL_OK
# Sputnik expects unicode escape sequences in RegExp flags to be interpreted.
# The specification requires them to be passed uninterpreted to the RegExp
# constructor. We now implement that.
S7.8.5_A3.1_T7: FAIL_OK
S7.8.5_A3.1_T8: FAIL_OK
S7.8.5_A3.1_T9: FAIL_OK
# We allow some keywords to be used as identifiers.
S7.5.3_A1.15: FAIL_OK
S7.5.3_A1.18: FAIL_OK
S7.5.3_A1.21: FAIL_OK
S7.5.3_A1.22: FAIL_OK
S7.5.3_A1.23: FAIL_OK
S7.5.3_A1.24: FAIL_OK
S7.5.3_A1.26: FAIL_OK
# This checks for non-262 behavior
S7.6_D1: PASS || FAIL_OK
S7.6_D2: PASS || FAIL_OK
S8.4_D1.1: PASS || FAIL_OK
S8.4_D2.1: PASS || FAIL_OK
S8.4_D2.2: PASS || FAIL_OK
S8.4_D2.3: PASS || FAIL_OK
S8.4_D2.4: PASS || FAIL_OK
S8.4_D2.5: PASS || FAIL_OK
S8.4_D2.6: PASS || FAIL_OK
S8.4_D2.7: PASS || FAIL_OK
S11.4.3_D1.2: PASS || FAIL_OK
S12.6.4_A14_T1: PASS || FAIL_OK
S12.6.4_D1: PASS || FAIL_OK
S12.6.4_R1: PASS || FAIL_OK
S12.6.4_R2: PASS || FAIL_OK
S13.2_D1.2: PASS || FAIL_OK
S13_D1_T1: PASS || FAIL_OK
S14_D4_T3: PASS || FAIL_OK
S14_D7: PASS || FAIL_OK
S15.1.2.2_D1.2: PASS || FAIL_OK
S15.5.2_D2: PASS || FAIL_OK
S15.5.4.11_D1.1_T1: PASS || FAIL_OK
S15.5.4.11_D1.1_T2: PASS || FAIL_OK
S15.5.4.11_D1.1_T3: PASS || FAIL_OK
S15.5.4.11_D1.1_T4: PASS || FAIL_OK
# We allow function declarations within statements
S12.6.2_A13_T1: FAIL_OK
S12.6.2_A13_T2: FAIL_OK
S12.6.4_A13_T1: FAIL_OK
S12.6.4_A13_T2: FAIL_OK
S15.3.4.2_A1_T1: FAIL_OK
# Linux and Mac defaults to extended 80 bit floating point format in the FPU.
# We follow the other major JS engines by keeping this default.
S8.5_A2.2: PASS, FAIL if $system == linux, FAIL if $system == macos
S8.5_A2.1: PASS, FAIL if $system == linux, FAIL if $system == macos
############################# ES3 TESTS ################################
# These tests check for ES3 semantics, and differ from ES5.
# When we follow ES5 semantics, it's ok to fail the test.
# Allow keywords as names of properties in object initialisers and
# in dot-notation property access.
S11.1.5_A4.1: FAIL_OK
S11.1.5_A4.2: FAIL_OK
# Calls builtins without an explicit receiver which means that
# undefined is passed to the builtin. The tests expect the global
# object to be passed which was true in ES3 but not in ES5.
S11.1.1_A2: FAIL_OK
S15.5.4.4_A1_T3: FAIL_OK
S15.5.4.5_A1_T3: FAIL_OK
S15.5.4.6_A1_T3: FAIL_OK
S15.5.4.7_A1_T3: FAIL_OK
S15.5.4.8_A1_T3: FAIL_OK
S15.5.4.9_A1_T3: FAIL_OK
S15.5.4.10_A1_T3: FAIL_OK
S15.5.4.11_A1_T3: FAIL_OK
S15.5.4.12_A1_T3: FAIL_OK
S15.5.4.13_A1_T3: FAIL_OK
S15.5.4.14_A1_T3: FAIL_OK
S15.5.4.15_A1_T3: FAIL_OK
# NaN, Infinity and undefined are read-only according to ES5.
S15.1.1.1_A2_T1: FAIL_OK # NaN
S15.1.1.1_A2_T2: FAIL_OK # NaN
S15.1.1.2_A2_T1: FAIL_OK # Infinity
# S15.1.1.2_A2_T2 would fail if it weren't bogus in r97. sputnik bug #45.
S15.1.1.3_A2_T1: FAIL_OK # undefined
S15.1.1.3_A2_T2: FAIL_OK # undefined
# Array.prototype.to[Locale]String is generic in ES5.
S15.4.4.2_A2_T1: FAIL_OK
S15.4.4.3_A2_T1: FAIL_OK
######################### UNANALYZED FAILURES ##########################
# Bug? ES5 Attributes - Updating indexed data property 'P' whose attributes are
# [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true to an
# accessor property, 'A' is an Array object (8.12.9 - step 9.b.i)
15.2.3.6-4-360-1: FAIL
# Bug? ES5 Attributes - Updating indexed data property 'P' whose attributes are
# [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true to an
# accessor property, 'O' is an Arguments object (8.12.9 - step 9.b.i)
15.2.3.6-4-360-6: FAIL
# Bug? ES5 Attributes - Updating indexed data property 'P' whose attributes are
# [[Writable]]: false, [[Enumerable]]: true, [[Configurable]]: true to an
# accessor property, 'O' is the global object (8.12.9 - step 9.b.i)
15.2.3.6-4-360-7: FAIL
# Bug? ES5 Attributes - Failed to add a property to an object when the object's
# object has a property with same name and [[Writable]] attribute is set to
# false (Number instance)
15.2.3.6-4-405: FAIL
# Bug? ES5 Attributes - Failed to add a property to an object when the object's
# prototype has a property with the same name and [[Writable]] set to false
# (JSON)
15.2.3.6-4-410: FAIL
# Bug? ES5 Attributes - Failed to add properties to an object when the object's
# prototype has properties with the same name and [[Writable]] set to false
# (Object.create)
15.2.3.6-4-415: FAIL
# Bug? ES5 Attributes - Failed to add a property to an object when the object's
# prototype has a property with the same name and [[Writable]] set to
# false(Function.prototype.bind)
15.2.3.6-4-420: FAIL
############################ SKIPPED TESTS #############################
# These tests take a looong time to run in debug mode.
S15.1.3.2_A2.5_T1: PASS, SKIP if $mode == debug
S15.1.3.1_A2.5_T1: PASS, SKIP if $mode == debug
[ $arch == arm ]
# BUG(3251225): Tests that timeout with --nocrankshaft.
S15.1.3.1_A2.5_T1: SKIP
S15.1.3.2_A2.5_T1: SKIP
S15.1.3.1_A2.4_T1: SKIP
S15.1.3.1_A2.5_T1: SKIP
S15.1.3.2_A2.4_T1: SKIP
S15.1.3.2_A2.5_T1: SKIP
S15.1.3.3_A2.3_T1: SKIP
S15.1.3.4_A2.3_T1: SKIP
S15.1.3.1_A2.5_T1: SKIP
S15.1.3.2_A2.5_T1: SKIP
[ $arch == mips ]
# Skip all tests on MIPS.
*: SKIP