24cf5459f5
Object initialisers and dot-notation property access allows keywords in ES5. Also allowed non-identifiers after "get" or "set" in an object initialiser. Review URL: http://codereview.chromium.org/3047038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
261 lines
7.7 KiB
Plaintext
261 lines
7.7 KiB
Plaintext
# Copyright 2009 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 sputnik
|
|
def FAIL_OK = FAIL, OKAY
|
|
|
|
##################### DELIBERATE INCOMPATIBILITIES #####################
|
|
|
|
# 900066: Deleting elements in .arguments should disconnect the
|
|
# element from the actual arguments. Implementing this is nontrivial
|
|
# and we have no indication that anything on the web depends on this
|
|
# feature.
|
|
S13_A13_T1: FAIL_OK
|
|
S13_A13_T2: FAIL_OK
|
|
S13_A13_T3: 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
|
|
|
|
# We allow calls to regexp exec() with no arguments to fail for
|
|
# compatibility reasons.
|
|
S15.10.6.2_A1_T16: FAIL_OK
|
|
S15.10.6.3_A1_T16: FAIL_OK
|
|
|
|
# We allow regexps to be called as functions for compatibility reasons.
|
|
S15.10.7_A1_T1: FAIL_OK
|
|
S15.10.7_A1_T2: 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
|
|
S15.10.4.1_A5_T1: FAIL
|
|
S15.10.4.1_A5_T2: FAIL
|
|
S15.10.4.1_A5_T3: FAIL
|
|
S15.10.4.1_A5_T4: FAIL
|
|
S15.10.4.1_A5_T5: FAIL
|
|
S15.10.4.1_A5_T6: FAIL
|
|
S15.10.4.1_A5_T7: FAIL
|
|
S15.10.4.1_A5_T8: FAIL
|
|
S15.10.4.1_A5_T9: 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_T2: FAIL_OK
|
|
S7.8.4_A4.3_T2: FAIL_OK
|
|
S7.8.4_A6.2_T2: FAIL_OK
|
|
S7.8.4_A6.1_T4: FAIL_OK
|
|
S7.8.4_A4.3_T4: FAIL_OK
|
|
S7.8.4_A7.2_T2: FAIL_OK
|
|
S7.8.4_A7.1_T4: FAIL_OK
|
|
S7.8.4_A6.4_T2: FAIL_OK
|
|
S7.8.4_A7.4_T2: FAIL_OK
|
|
S7.8.4_A7.2_T4: FAIL_OK
|
|
S7.8.4_A4.3_T6: FAIL_OK
|
|
S7.8.4_A7.2_T6: FAIL_OK
|
|
S7.8.4_A4.3_T1: FAIL_OK
|
|
S7.8.4_A6.2_T1: FAIL_OK
|
|
S7.8.4_A4.3_T3: FAIL_OK
|
|
S7.8.4_A7.2_T1: FAIL_OK
|
|
S7.8.4_A6.4_T1: FAIL_OK
|
|
S7.8.4_A7.2_T3: FAIL_OK
|
|
S7.8.4_A7.4_T1: FAIL_OK
|
|
S7.8.4_A4.3_T5: FAIL_OK
|
|
S7.8.4_A7.2_T5: FAIL_OK
|
|
S7.8.4_A4.3_T1: FAIL_OK
|
|
S7.8.4_A6.2_T1: FAIL_OK
|
|
S7.8.4_A4.3_T3: FAIL_OK
|
|
S7.8.4_A7.2_T1: FAIL_OK
|
|
S7.8.4_A6.4_T1: FAIL_OK
|
|
S7.8.4_A7.2_T3: FAIL_OK
|
|
S7.8.4_A7.4_T1: FAIL_OK
|
|
S7.8.4_A4.3_T5: FAIL_OK
|
|
S7.8.4_A7.2_T5: FAIL_OK
|
|
|
|
# We allow some keywords to be used as identifiers
|
|
S7.5.3_A1.17: FAIL_OK
|
|
S7.5.3_A1.26: FAIL_OK
|
|
S7.5.3_A1.18: FAIL_OK
|
|
S7.5.3_A1.27: FAIL_OK
|
|
S7.5.3_A1.28: FAIL_OK
|
|
S7.5.3_A1.19: FAIL_OK
|
|
S7.5.3_A1.29: FAIL_OK
|
|
S7.5.3_A1.1: FAIL_OK
|
|
S7.5.3_A1.2: FAIL_OK
|
|
S7.5.3_A1.3: FAIL_OK
|
|
S7.5.3_A1.4: FAIL_OK
|
|
S7.5.3_A1.5: FAIL_OK
|
|
S7.5.3_A1.8: FAIL_OK
|
|
S7.5.3_A1.9: FAIL_OK
|
|
S7.5.3_A1.10: FAIL_OK
|
|
S7.5.3_A1.11: FAIL_OK
|
|
S7.5.3_A1.21: FAIL_OK
|
|
S7.5.3_A1.12: FAIL_OK
|
|
S7.5.3_A1.30: FAIL_OK
|
|
S7.5.3_A1.31: FAIL_OK
|
|
S7.5.3_A1.13: FAIL_OK
|
|
S7.5.3_A1.22: FAIL_OK
|
|
S7.5.3_A1.23: FAIL_OK
|
|
S7.5.3_A1.14: FAIL_OK
|
|
S7.5.3_A1.15: FAIL_OK
|
|
S7.5.3_A1.24: FAIL_OK
|
|
S7.5.3_A1.25: FAIL_OK
|
|
S7.5.3_A1.16: FAIL_OK
|
|
|
|
# This checks for non-262 behavior
|
|
S12.6.4_A14_T1: PASS || FAIL_OK
|
|
S12.6.4_R1: PASS || FAIL_OK
|
|
S12.6.4_R2: 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
|
|
S8.4_D1.1: PASS || FAIL_OK
|
|
S13.2_D1.2: PASS || FAIL_OK
|
|
S11.4.3_D1.2: PASS || FAIL_OK
|
|
S7.6_D1: PASS || FAIL_OK
|
|
S7.6_D2: PASS || FAIL_OK
|
|
S15.1.2.2_D1.2: PASS || FAIL_OK
|
|
S13_D1_T1: PASS || FAIL_OK
|
|
S14_D4_T3: PASS || FAIL_OK
|
|
S14_D7: PASS || FAIL_OK
|
|
S15.5.4.11_D1.1_T2: PASS || FAIL_OK
|
|
S15.5.4.11_D1.1_T4: 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_T3: PASS || FAIL_OK
|
|
S12.6.4_D1: PASS || FAIL_OK
|
|
|
|
# We allow function declarations within statements
|
|
S12.5_A9_T1: FAIL_OK
|
|
S12.5_A9_T2: FAIL_OK
|
|
# S12.6.2_A13_T3: FAIL_OK
|
|
# S12.5_A9_T3: FAIL_OK
|
|
# S12.6.1_A13_T3: FAIL_OK
|
|
S12.1_A1: FAIL_OK
|
|
S12.6.2_A13_T1: FAIL_OK
|
|
S12.6.2_A13_T2: FAIL_OK
|
|
S12.6.1_A13_T1: FAIL_OK
|
|
S12.6.1_A13_T2: FAIL_OK
|
|
S12.6.4_A13_T1: FAIL_OK
|
|
S12.6.4_A13_T2: FAIL_OK
|
|
#S12.6.4_A13_T3: 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
|
|
|
|
# Don't throw type errors when iterating through the undefined object.
|
|
S9.9_A1: FAIL_OK
|
|
S9.9_A2: FAIL_OK
|
|
|
|
|
|
|
|
##################### 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
|
|
|
|
|
|
# These tests fail because we had to add bugs to be compatible with JSC. See
|
|
# http://code.google.com/p/chromium/issues/detail?id=1717
|
|
S15.4.4_A1.1_T2: FAIL_OK
|
|
S15.5.4.1_A1_T2: FAIL_OK
|
|
S15.5.4_A1: FAIL_OK
|
|
S15.5.4_A3: FAIL_OK
|
|
S15.9.5.10_A1_T2: FAIL_OK
|
|
S15.9.5.11_A1_T2: FAIL_OK
|
|
S15.9.5.12_A1_T2: FAIL_OK
|
|
S15.9.5.13_A1_T2: FAIL_OK
|
|
S15.9.5.14_A1_T2: FAIL_OK
|
|
S15.9.5.15_A1_T2: FAIL_OK
|
|
S15.9.5.16_A1_T2: FAIL_OK
|
|
S15.9.5.17_A1_T2: FAIL_OK
|
|
S15.9.5.18_A1_T2: FAIL_OK
|
|
S15.9.5.19_A1_T2: FAIL_OK
|
|
S15.9.5.20_A1_T2: FAIL_OK
|
|
S15.9.5.21_A1_T2: FAIL_OK
|
|
S15.9.5.22_A1_T2: FAIL_OK
|
|
S15.9.5.23_A1_T2: FAIL_OK
|
|
S15.9.5.24_A1_T2: FAIL_OK
|
|
S15.9.5.25_A1_T2: FAIL_OK
|
|
S15.9.5.26_A1_T2: FAIL_OK
|
|
S15.9.5.27_A1_T2: FAIL_OK
|
|
S15.9.5.28_A1_T2: FAIL_OK
|
|
S15.9.5.29_A1_T2: FAIL_OK
|
|
S15.9.5.2_A1_T2: FAIL_OK
|
|
S15.9.5.30_A1_T2: FAIL_OK
|
|
S15.9.5.31_A1_T2: FAIL_OK
|
|
S15.9.5.32_A1_T2: FAIL_OK
|
|
S15.9.5.33_A1_T2: FAIL_OK
|
|
S15.9.5.34_A1_T2: FAIL_OK
|
|
S15.9.5.35_A1_T2: FAIL_OK
|
|
S15.9.5.36_A1_T2: FAIL_OK
|
|
S15.9.5.37_A1_T2: FAIL_OK
|
|
S15.9.5.38_A1_T2: FAIL_OK
|
|
S15.9.5.39_A1_T2: FAIL_OK
|
|
S15.9.5.3_A1_T2: FAIL_OK
|
|
S15.9.5.40_A1_T2: FAIL_OK
|
|
S15.9.5.41_A1_T2: FAIL_OK
|
|
S15.9.5.42_A1_T2: FAIL_OK
|
|
S15.9.5.4_A1_T2: FAIL_OK
|
|
S15.9.5.5_A1_T2: FAIL_OK
|
|
S15.9.5.6_A1_T2: FAIL_OK
|
|
S15.9.5.7_A1_T2: FAIL_OK
|
|
S15.9.5.8_A1_T2: FAIL_OK
|
|
S15.9.5.9_A1_T2: FAIL_OK
|
|
|
|
# Regexps have type "function", not "object".
|
|
S11.4.3_A3.6: FAIL_OK
|
|
S15.10.7_A3_T2: FAIL_OK
|
|
S15.10.7_A3_T1: FAIL_OK
|
|
|
|
[ $arch == mips ]
|
|
|
|
# Skip all tests on MIPS.
|
|
*: SKIP
|