4f374bbc94
The ECMA 402 implementation previously pushed directly to real Arrays, which risks having observably incorrect behavior in the presence of monkey patching. This patch uses InternalArrays instead to avoid that hazard. R=jshin@chromium.org,yangguo@chromium.org BUG=chromium:604299 LOG=N Review-Url: https://codereview.chromium.org/1923803002 Cr-Commit-Position: refs/heads/master@{#35949}
330 lines
17 KiB
Plaintext
330 lines
17 KiB
Plaintext
# 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.
|
|
|
|
[
|
|
[ALWAYS, {
|
|
###################### NEEDS INVESTIGATION #######################
|
|
|
|
# This is an incompatibility between ES5 and V8 on enumerating
|
|
# shadowed elements in a for..in loop.
|
|
# https://code.google.com/p/v8/issues/detail?id=705
|
|
'language/statements/for-in/12.6.4-2': [PASS, FAIL_OK],
|
|
|
|
###################### MISSING ES6 FEATURES #######################
|
|
|
|
# The order of adding the name property is wrong
|
|
# https://code.google.com/p/v8/issues/detail?id=4199
|
|
'language/computed-property-names/class/static/method-number': [FAIL, FAIL_SLOPPY],
|
|
'language/computed-property-names/class/static/method-symbol': [FAIL, FAIL_SLOPPY],
|
|
'language/computed-property-names/class/static/method-string': [FAIL, FAIL_SLOPPY],
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4248
|
|
'language/expressions/compound-assignment/S11.13.2_A5.*': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A6.*': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.10_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.11_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.1_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.2_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.3_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.4_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.5_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.6_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.7_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.8_T4': [FAIL],
|
|
'language/expressions/compound-assignment/S11.13.2_A7.9_T4': [FAIL],
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4249
|
|
'language/expressions/assignment/S11.13.1_A7_T1': [FAIL],
|
|
'language/expressions/assignment/S11.13.1_A7_T2': [FAIL],
|
|
'language/expressions/assignment/S11.13.1_A7_T3': [FAIL],
|
|
'language/expressions/postfix-increment/S11.3.1_A6_T3': [FAIL],
|
|
'language/expressions/postfix-decrement/S11.3.2_A6_T3': [FAIL],
|
|
'language/expressions/prefix-decrement/S11.4.5_A6_T3': [FAIL],
|
|
'language/expressions/prefix-increment/S11.4.4_A6_T3': [FAIL],
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4250
|
|
'language/expressions/assignment/S11.13.1_A5*': [FAIL],
|
|
'language/expressions/assignment/S11.13.1_A6*': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4709
|
|
'built-ins/Proxy/revocable/revocation-function-name': [FAIL],
|
|
'language/expressions/assignment/fn-name-lhs-cover': [FAIL],
|
|
'language/expressions/assignment/fn-name-lhs-member': [FAIL],
|
|
'language/expressions/class/name': [FAIL],
|
|
'language/expressions/function/name': [FAIL],
|
|
'language/expressions/generators/name': [FAIL],
|
|
'intl402/NumberFormat/prototype/format/format-function-name': [FAIL],
|
|
'intl402/DateTimeFormat/prototype/format/format-function-name': [FAIL],
|
|
'intl402/Collator/prototype/compare/compare-function-name': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4778
|
|
'intl402/Collator/prototype/compare/name': [FAIL],
|
|
'intl402/DateTimeFormat/prototype/format/name': [FAIL],
|
|
'intl402/NumberFormat/prototype/format/name': [FAIL],
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4251
|
|
'language/expressions/postfix-increment/S11.3.1_A5_T1': [FAIL],
|
|
'language/expressions/postfix-increment/S11.3.1_A5_T2': [FAIL],
|
|
'language/expressions/postfix-increment/S11.3.1_A5_T3': [FAIL],
|
|
'language/expressions/postfix-increment/S11.3.1_A5_T4': [FAIL],
|
|
'language/expressions/postfix-increment/S11.3.1_A5_T5': [FAIL],
|
|
'language/expressions/postfix-decrement/S11.3.2_A5_*': [FAIL],
|
|
'language/expressions/prefix-decrement/S11.4.5_A5_*': [FAIL],
|
|
'language/expressions/prefix-increment/S11.4.4_A5_*': [FAIL],
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4253
|
|
'language/asi/S7.9_A5.7_T1': [PASS, FAIL_OK],
|
|
|
|
###### BEGIN REGEXP SUBCLASSING SECTION ######
|
|
# Spec change in progress https://github.com/tc39/ecma262/pull/494
|
|
# RegExpBuiltinMatch reads flags from [[OriginalFlags]]
|
|
'built-ins/RegExp/prototype/Symbol.match/builtin-coerce-sticky': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.match/builtin-get-global-err': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.match/builtin-get-sticky-err': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.match/builtin-success-g-set-lastindex': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.match/builtin-success-g-set-lastindex-err': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.match/coerce-sticky': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.match/get-sticky-err': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.replace/coerce-global': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.replace/coerce-unicode': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.replace/get-sticky-coerce': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.replace/get-sticky-err': [SKIP],
|
|
'built-ins/RegExp/prototype/Symbol.search/get-sticky-coerce': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.search/get-sticky-err': [FAIL],
|
|
'built-ins/RegExp/prototype/exec/get-sticky-coerce': [FAIL],
|
|
'built-ins/RegExp/prototype/exec/get-sticky-err': [FAIL],
|
|
'built-ins/RegExp/prototype/test/get-sticky-err': [FAIL],
|
|
|
|
# Times out
|
|
'built-ins/RegExp/prototype/Symbol.match/coerce-global': [SKIP],
|
|
'built-ins/RegExp/prototype/Symbol.match/builtin-coerce-global': [SKIP],
|
|
|
|
# Sticky support busted
|
|
'built-ins/RegExp/prototype/Symbol.replace/y-init-lastindex': [FAIL],
|
|
'built-ins/RegExp/prototype/Symbol.replace/y-set-lastindex': [FAIL],
|
|
|
|
# SKIP rather than FAIL, as the test checks for an exception which
|
|
# happens to be thrown for some other reason.
|
|
'built-ins/RegExp/prototype/Symbol.split/str-result-get-length-err': [SKIP],
|
|
|
|
###### END REGEXP SUBCLASSING SECTION ######
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4360
|
|
'intl402/Collator/10.1.1_1': [FAIL],
|
|
'intl402/DateTimeFormat/12.1.1_1': [FAIL],
|
|
'intl402/NumberFormat/11.1.1_1': [FAIL],
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4476
|
|
'built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional': [FAIL],
|
|
'built-ins/String/prototype/toLocaleLowerCase/supplementary_plane': [FAIL],
|
|
'built-ins/String/prototype/toLowerCase/special_casing_conditional': [FAIL],
|
|
'built-ins/String/prototype/toLowerCase/supplementary_plane': [FAIL],
|
|
'built-ins/String/prototype/toLocaleUpperCase/supplementary_plane': [FAIL],
|
|
'built-ins/String/prototype/toUpperCase/supplementary_plane': [FAIL],
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4477
|
|
'intl402/String/prototype/toLocaleLowerCase/special_casing_Azeri': [FAIL],
|
|
'intl402/String/prototype/toLocaleLowerCase/special_casing_Lithuanian': [FAIL],
|
|
'intl402/String/prototype/toLocaleLowerCase/special_casing_Turkish': [FAIL],
|
|
'intl402/String/prototype/toLocaleUpperCase/special_casing_Azeri': [FAIL],
|
|
'intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian': [FAIL],
|
|
'intl402/String/prototype/toLocaleUpperCase/special_casing_Turkish': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4628
|
|
'language/eval-code/non-definable-function-with-variable': [FAIL],
|
|
'language/eval-code/non-definable-function-with-function': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4592
|
|
'built-ins/ArrayBuffer/length-is-absent': [FAIL],
|
|
'built-ins/ArrayBuffer/length-is-not-number': [FAIL],
|
|
'built-ins/ArrayBuffer/positive-integer-length': [FAIL],
|
|
'language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4633
|
|
'built-ins/Promise/reject-function-name': [FAIL],
|
|
'built-ins/Promise/resolve-function-name': [FAIL],
|
|
'built-ins/Promise/all/resolve-element-function-name': [FAIL],
|
|
'built-ins/Promise/executor-function-name': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4634
|
|
'built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion': [FAIL],
|
|
'built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion': [FAIL],
|
|
'built-ins/DataView/prototype/setInt16/index-check-before-value-conversion': [FAIL],
|
|
'built-ins/DataView/prototype/setInt32/index-check-before-value-conversion': [FAIL],
|
|
'built-ins/DataView/prototype/setUint16/index-check-before-value-conversion': [FAIL],
|
|
'built-ins/DataView/prototype/setUint32/index-check-before-value-conversion': [FAIL],
|
|
'built-ins/DataView/prototype/setUint8/index-check-before-value-conversion': [FAIL],
|
|
'built-ins/DataView/prototype/setInt8/index-check-before-value-conversion': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4706
|
|
'language/statements/class/subclass/builtin-objects/NativeError/EvalError-message': [FAIL],
|
|
'language/statements/class/subclass/builtin-objects/NativeError/RangeError-message': [FAIL],
|
|
'language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-message': [FAIL],
|
|
'language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-message': [FAIL],
|
|
'language/statements/class/subclass/builtin-objects/NativeError/TypeError-message': [FAIL],
|
|
'language/statements/class/subclass/builtin-objects/NativeError/URIError-message': [FAIL],
|
|
'language/statements/class/subclass/builtin-objects/Error/message-property-assignment': [FAIL],
|
|
|
|
# https://code.google.com/p/chromium/issues/detail?id=581577
|
|
'built-ins/RegExp/prototype/source/15.10.7.1-1': [FAIL],
|
|
'built-ins/RegExp/prototype/global/15.10.7.2-1': [FAIL],
|
|
'built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1': [FAIL],
|
|
'built-ins/RegExp/prototype/multiline/15.10.7.4-1': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4727
|
|
'built-ins/TypedArrays/length-arg-is-undefined-throws': [FAIL],
|
|
'built-ins/TypedArrays/length-arg-is-symbol-throws': [FAIL],
|
|
'built-ins/TypedArrays/length-arg-is-float-throws-rangeerror': [FAIL],
|
|
'built-ins/TypedArrays/length-arg-is-nan-throws-rangeerror': [FAIL],
|
|
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4784
|
|
'built-ins/TypedArrays/buffer-arg-defined-negative-length': [FAIL],
|
|
|
|
######################## NEEDS INVESTIGATION ###########################
|
|
|
|
# These test failures are specific to the intl402 suite and need investigation
|
|
# to be either marked as bugs with issues filed for them or as deliberate
|
|
# incompatibilities if the test cases turn out to be broken or ambiguous.
|
|
# Some of these are related to v8:4361 in being visible side effects from Intl.
|
|
'intl402/6.2.3': [FAIL],
|
|
'intl402/Collator/10.1.2.1_4': [FAIL],
|
|
'intl402/Collator/10.1.2_a': [PASS, FAIL],
|
|
'intl402/Collator/10.2.3_b': [PASS, FAIL],
|
|
'intl402/Collator/prototype/10.3_a': [FAIL],
|
|
'intl402/DateTimeFormat/12.1.1': [FAIL],
|
|
'intl402/DateTimeFormat/12.1.2': [PASS, FAIL],
|
|
'intl402/DateTimeFormat/12.1.2.1_4': [FAIL],
|
|
'intl402/DateTimeFormat/12.2.3_b': [FAIL],
|
|
'intl402/DateTimeFormat/prototype/12.3_a': [FAIL],
|
|
'intl402/Number/prototype/toLocaleString/13.2.1_5': [PASS, FAIL],
|
|
'intl402/NumberFormat/11.1.1_20_c': [FAIL],
|
|
'intl402/NumberFormat/11.1.2': [PASS, FAIL],
|
|
'intl402/NumberFormat/11.1.2.1_4': [FAIL],
|
|
'intl402/NumberFormat/11.2.3_b': [FAIL],
|
|
'intl402/NumberFormat/prototype/11.3_a': [FAIL],
|
|
'intl402/String/prototype/localeCompare/13.1.1_7': [PASS, FAIL],
|
|
|
|
##################### DELIBERATE INCOMPATIBILITIES #####################
|
|
|
|
# https://code.google.com/p/v8/issues/detail?id=4693
|
|
'language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration': [PASS, FAIL_SLOPPY],
|
|
|
|
############################ INVALID TESTS #############################
|
|
|
|
# The reference value calculated by Test262 is incorrect if you run these
|
|
# tests in PST/PDT between first Sunday in March and first Sunday in April.
|
|
# The DST switch was moved in 2007 whereas Test262 bases the reference value
|
|
# on 2000. Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=293
|
|
'built-ins/Date/S15.9.3.1_A5_T1': [PASS, FAIL_OK],
|
|
'built-ins/Date/S15.9.3.1_A5_T2': [PASS, FAIL_OK],
|
|
'built-ins/Date/S15.9.3.1_A5_T3': [PASS, FAIL_OK],
|
|
'built-ins/Date/S15.9.3.1_A5_T4': [PASS, FAIL_OK],
|
|
'built-ins/Date/S15.9.3.1_A5_T5': [PASS, FAIL_OK],
|
|
'built-ins/Date/S15.9.3.1_A5_T6': [PASS, FAIL_OK],
|
|
|
|
# Test makes unjustified assumptions about the number of calls to SortCompare.
|
|
# Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=596
|
|
'built-ins/Array/prototype/sort/bug_596_1': [PASS, FAIL_OK],
|
|
|
|
# Test bug https://github.com/tc39/test262/issues/518
|
|
'built-ins/TypedArrays/object-arg-throws-setting-typedarray-property': [FAIL],
|
|
'built-ins/Object/getOwnPropertyDescriptors/duplicate-keys': [FAIL],
|
|
'built-ins/Object/getOwnPropertyDescriptors/symbols-included': [FAIL],
|
|
|
|
# Test bug https://github.com/tc39/test262/issues/521
|
|
'built-ins/TypedArray/from/mapfn-is-not-callable': [FAIL],
|
|
|
|
# Test bug https://github.com/tc39/test262/issues/529
|
|
'built-ins/Math/cos/S15.8.2.7_A7': [PASS, FAIL_OK],
|
|
'built-ins/Math/sin/S15.8.2.16_A7': [PASS, FAIL_OK],
|
|
'built-ins/Math/tan/S15.8.2.18_A7': [PASS, FAIL_OK],
|
|
'built-ins/Math/exp/S15.8.2.8_A6': [PASS, FAIL_OK], # Math.exp (less precise with --fast-math)
|
|
|
|
############################ SKIPPED TESTS #############################
|
|
|
|
# These tests take a looong time to run.
|
|
'built-ins/decodeURI/S15.1.3.1_A1.10_T1': [SKIP],
|
|
'built-ins/decodeURI/S15.1.3.1_A1.11_T1': [SKIP],
|
|
'built-ins/decodeURI/S15.1.3.1_A1.11_T2': [SKIP],
|
|
'built-ins/decodeURI/S15.1.3.1_A1.12_T1': [SKIP],
|
|
'built-ins/decodeURI/S15.1.3.1_A1.12_T2': [SKIP],
|
|
'built-ins/decodeURI/S15.1.3.1_A2.5_T1': [SKIP],
|
|
'built-ins/decodeURIComponent/S15.1.3.2_A1.11_T1': [SKIP],
|
|
'built-ins/decodeURIComponent/S15.1.3.2_A1.12_T1': [SKIP],
|
|
'built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1': [SKIP],
|
|
'built-ins/RegExp/S15.10.2.12_A3_T1': [SKIP],
|
|
'intl402/9.2.6_4_b': [SKIP],
|
|
'language/literals/regexp/S7.8.5_A1.1_T2': [SKIP],
|
|
'language/literals/regexp/S7.8.5_A1.4_T2': [SKIP],
|
|
'language/literals/regexp/S7.8.5_A2.1_T2': [SKIP],
|
|
'language/literals/regexp/S7.8.5_A2.4_T2': [SKIP],
|
|
'built-ins/Array/prototype/slice/S15.4.4.10_A3_T1': [SKIP],
|
|
'built-ins/Array/prototype/slice/S15.4.4.10_A3_T2': [SKIP],
|
|
}], # ALWAYS
|
|
|
|
['no_i18n == True', {
|
|
# Unicode canonicalization is not available with i18n turned off.
|
|
'built-ins/String/prototype/localeCompare/15.5.4.9_CE': [SKIP],
|
|
|
|
# Unicode regexp case mapping is not available with i18n turned off.
|
|
'language/literals/regexp/u-case-mapping': [SKIP],
|
|
|
|
# BUG(v8:4437).
|
|
'built-ins/String/prototype/normalize/return-normalized-string': [SKIP],
|
|
'built-ins/String/prototype/normalize/return-normalized-string-from-coerced-form': [SKIP],
|
|
'built-ins/String/prototype/normalize/return-normalized-string-using-default-parameter': [SKIP],
|
|
}], # no_i18n == True
|
|
|
|
['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == mips64 or arch == mips64el', {
|
|
|
|
# TODO(mstarzinger): Causes stack overflow on simulators due to eager
|
|
# compilation of parenthesized function literals. Needs investigation.
|
|
'language/statements/function/S13.2.1_A1_T1': [SKIP],
|
|
|
|
# BUG(3251225): Tests that timeout with --nocrankshaft.
|
|
'built-ins/decodeURI/S15.1.3.1_A2.4_T1': [SKIP],
|
|
'built-ins/decodeURI/S15.1.3.1_A2.5_T1': [SKIP],
|
|
'built-ins/decodeURIComponent/S15.1.3.2_A2.4_T1': [SKIP],
|
|
'built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1': [SKIP],
|
|
'built-ins/encodeURI/S15.1.3.3_A2.3_T1': [SKIP],
|
|
'built-ins/encodeURIComponent/S15.1.3.4_A2.3_T1': [SKIP],
|
|
}], # 'arch == arm or arch == mipsel or arch == mips or arch == arm64'
|
|
|
|
['asan == True', {
|
|
# BUG(v8:4653): Test262 tests which rely on quit() are not compatible with
|
|
# asan's --omit-quit flag.
|
|
'built-ins/Promise/prototype/then/deferred-is-resolved-value': [SKIP],
|
|
}], # asan == True
|
|
|
|
['asan == True or msan == True or tsan == True', {
|
|
# https://bugs.chromium.org/p/v8/issues/detail?id=4639
|
|
# The failed allocation causes an asan/msan/tsan error
|
|
'built-ins/ArrayBuffer/allocation-limit': [SKIP],
|
|
}], # asan == True or msan == True or tsan == True
|
|
|
|
]
|