Version 3.22.1
Sped up creating typed arrays from array-like objects. (Chromium issue 270507)
Performance and stability improvements on all platforms.
git-svn-id: http://v8.googlecode.com/svn/trunk@16931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/test/mozilla/mozilla.status b/test/mozilla/mozilla.status
index bf1578f..b27e991 100644
--- a/test/mozilla/mozilla.status
+++ b/test/mozilla/mozilla.status
@@ -42,813 +42,816 @@
# debugging.
# --------------------------------------------------------------------
-prefix mozilla
-def FAIL_OK = FAIL, OKAY
+[
+[ALWAYS, {
+ ##################### NEEDS INVESTIGATION ##############
-##################### NEEDS INVESTIGATION ##############
+ # BUG(2893): These tests started to fail after i18n support was turned on.
+ # Need to investigate why.
+ 'ecma_3/Number/15.7.4.3-02': [PASS, FAIL],
+ 'ecma_3/Date/15.9.5.5-02': [PASS, FAIL],
-# BUG(2893): These tests started to fail after i18n support was turned on. Need
-# to investigate why.
-ecma_3/Number/15.7.4.3-02: PASS || FAIL
-ecma_3/Date/15.9.5.5-02: PASS || FAIL
+ ##################### SKIPPED TESTS #####################
-##################### SKIPPED TESTS #####################
+ # This test checks that we behave properly in an out-of-memory
+ # situation. The test fails in V8 with an exception and takes a long
+ # time to do so.
+ 'js1_5/Regress/regress-271716-n': [SKIP],
-# This test checks that we behave properly in an out-of-memory
-# situation. The test fails in V8 with an exception and takes a long
-# time to do so.
-js1_5/Regress/regress-271716-n: SKIP
+ # BUG(960): This test has an insane amount of output when it times out,
+ # messing up ability to see other failures on the waterfall.
+ 'js1_5/extensions/regress-342960': [SKIP],
-# BUG(960): This test has an insane amount of output when it times out,
-# messing up ability to see other failures on the waterfall.
-js1_5/extensions/regress-342960: SKIP
+ # This test uses a unitialized variable. A Bug has been filed:
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=575575
+ 'js1_5/Array/regress-465980-02': [SKIP],
-# This test uses a unitialized variable. A Bug has been filed:
-# https://bugzilla.mozilla.org/show_bug.cgi?id=575575
-js1_5/Array/regress-465980-02: SKIP
+ # These tests are simply wrong (i.e., they do not test what they intend
+ # to test).
+ # In particular, these two compare numbers to NaN with != in the current
+ # version of the Mozilla tests. This is *fixed* in a later version.
+ # The tests should be re-enabled when switching to a new version.
+ 'ecma_3/Date/15.9.3.2-1': [SKIP],
+ 'js1_2/function/Number': [SKIP],
-# These tests are simply wrong (i.e., they do not test what they intend
-# to test).
-# In particular, these two compare numbers to NaN with != in the current
-# version of the Mozilla tests. This is *fixed* in a later version.
-# The tests should be re-enabled when switching to a new version.
-ecma_3/Date/15.9.3.2-1: SKIP
-js1_2/function/Number: SKIP
+ # TODO(2018): Temporarily allow timeout in debug mode.
+ 'js1_5/GC/regress-203278-2': [PASS, ['mode == debug', TIMEOUT, FAIL]],
-# TODO(2018): Temporarily allow timeout in debug mode.
-js1_5/GC/regress-203278-2: PASS || (TIMEOUT || FAIL) if $mode == debug
+ ##################### SLOW TESTS #####################
-##################### SLOW TESTS #####################
+ # This takes a long time to run (~100 seconds). It should only be run
+ # by the really patient.
+ 'js1_5/GC/regress-324278': [SLOW],
-# This takes a long time to run (~100 seconds). It should only be run
-# by the really patient.
-js1_5/GC/regress-324278: SLOW
+ # This takes a long time to run because our indexOf operation is
+ # pretty slow - it causes a lot of GCs; see issue
+ # #926379. We could consider marking this SKIP because it takes a
+ # while to run to completion.
+ 'js1_5/GC/regress-338653': [SLOW],
-# This takes a long time to run because our indexOf operation is
-# pretty slow - it causes a lot of GCs; see issue
-# #926379. We could consider marking this SKIP because it takes a
-# while to run to completion.
-js1_5/GC/regress-338653: SLOW
+ # This test is designed to run until it runs out of memory. This takes
+ # a very long time because it builds strings character by character
+ # and compiles a lot of regular expressions. We could consider marking
+ # this SKIP because it takes a while to run to completion.
+ 'js1_5/GC/regress-346794': [SLOW],
-# This test is designed to run until it runs out of memory. This takes
-# a very long time because it builds strings character by character
-# and compiles a lot of regular expressions. We could consider marking
-# this SKIP because it takes a while to run to completion.
-js1_5/GC/regress-346794: SLOW
+ # Runs out of memory while trying to build huge string of 'x'
+ # characters. This takes a long time to run (~32 seconds).
+ 'js1_5/GC/regress-348532': [SLOW],
-# Runs out of memory while trying to build huge string of 'x'
-# characters. This takes a long time to run (~32 seconds).
-js1_5/GC/regress-348532: SLOW
+ ##################### FLAKY TESTS #####################
-##################### FLAKY TESTS #####################
+ # These tests time out in debug mode but pass in product mode
+ 'js1_5/Regress/regress-360969-03': [PASS, ['mode == debug', TIMEOUT]],
+ 'js1_5/Regress/regress-360969-04': [PASS, ['mode == debug', TIMEOUT]],
+ 'js1_5/Regress/regress-360969-05': [PASS, ['mode == debug', TIMEOUT]],
+ 'js1_5/Regress/regress-360969-06': [PASS, ['mode == debug', TIMEOUT]],
+ 'js1_5/extensions/regress-365527': [PASS, ['mode == debug', TIMEOUT]],
-# These tests time out in debug mode but pass in product mode
-js1_5/Regress/regress-360969-03: PASS || TIMEOUT if $mode == debug
-js1_5/Regress/regress-360969-04: PASS || TIMEOUT if $mode == debug
-js1_5/Regress/regress-360969-05: PASS || TIMEOUT if $mode == debug
-js1_5/Regress/regress-360969-06: PASS || TIMEOUT if $mode == debug
-js1_5/extensions/regress-365527: PASS || TIMEOUT if $mode == debug
+ 'js1_5/Regress/regress-280769-3': [PASS, ['mode == debug', FAIL]],
+ 'js1_5/Regress/regress-203278-1': [PASS, ['mode == debug', FAIL]],
+ 'js1_5/Regress/regress-244470': [PASS, ['mode == debug', FAIL]],
+ 'ecma_3/RegExp/regress-209067': [PASS, ['mode == debug', FAIL]],
+ 'js1_5/GC/regress-278725': [PASS, ['mode == debug', FAIL]],
+ # http://b/issue?id=1206983
+ 'js1_5/Regress/regress-367561-03': [PASS, ['mode == debug', FAIL]],
+ 'ecma/Date/15.9.5.10-2': [PASS, FAIL, ['mode == debug', TIMEOUT]],
-js1_5/Regress/regress-280769-3: PASS || FAIL if $mode == debug
-js1_5/Regress/regress-203278-1: PASS || FAIL if $mode == debug
-js1_5/Regress/regress-244470: PASS || FAIL if $mode == debug
-ecma_3/RegExp/regress-209067: PASS || FAIL if $mode == debug
-js1_5/GC/regress-278725: PASS || FAIL if $mode == debug
-# http://b/issue?id=1206983
-js1_5/Regress/regress-367561-03: PASS || FAIL if $mode == debug
-ecma/Date/15.9.5.10-2: PASS || (FAIL || TIMEOUT if $mode == debug)
+ # These tests create two Date objects just after each other and
+ # expects them to match. Sometimes this happens on the border
+ # between one second and the next.
+ 'ecma/Date/15.9.2.1': [PASS, FAIL],
+ 'ecma/Date/15.9.2.2-1': [PASS, FAIL],
+ 'ecma/Date/15.9.2.2-2': [PASS, FAIL],
+ 'ecma/Date/15.9.2.2-3': [PASS, FAIL],
+ 'ecma/Date/15.9.2.2-4': [PASS, FAIL],
+ 'ecma/Date/15.9.2.2-5': [PASS, FAIL],
+ 'ecma/Date/15.9.2.2-6': [PASS, FAIL],
-# These tests create two Date objects just after each other and
-# expects them to match. Sometimes this happens on the border
-# between one second and the next.
-ecma/Date/15.9.2.1: PASS || FAIL
-ecma/Date/15.9.2.2-1: PASS || FAIL
-ecma/Date/15.9.2.2-2: PASS || FAIL
-ecma/Date/15.9.2.2-3: PASS || FAIL
-ecma/Date/15.9.2.2-4: PASS || FAIL
-ecma/Date/15.9.2.2-5: PASS || FAIL
-ecma/Date/15.9.2.2-6: PASS || FAIL
+ # 1026139: These date tests fail on arm and mips
+ 'ecma/Date/15.9.5.29-1': [PASS, ['arch == arm or arch == mipsel', FAIL]],
+ 'ecma/Date/15.9.5.28-1': [PASS, ['arch == arm or arch == mipsel', FAIL]],
-# 1026139: These date tests fail on arm and mips
-ecma/Date/15.9.5.29-1: PASS || FAIL if ($arch == arm || $arch == mipsel)
-ecma/Date/15.9.5.28-1: PASS || FAIL if ($arch == arm || $arch == mipsel)
+ # 1050186: Arm/MIPS vm is broken; probably unrelated to dates
+ 'ecma/Array/15.4.4.5-3': [PASS, ['arch == arm or arch == mipsel', FAIL]],
+ 'ecma/Date/15.9.5.22-2': [PASS, ['arch == arm or arch == mipsel', FAIL]],
-# 1050186: Arm/MIPS vm is broken; probably unrelated to dates
-ecma/Array/15.4.4.5-3: PASS || FAIL if ($arch == arm || $arch == mipsel)
-ecma/Date/15.9.5.22-2: PASS || FAIL if ($arch == arm || $arch == mipsel)
+ # Flaky test that fails due to what appears to be a bug in the test.
+ # Occurs depending on current time
+ 'ecma/Date/15.9.5.8': [PASS, FAIL],
-# Flaky test that fails due to what appears to be a bug in the test.
-# Occurs depending on current time
-ecma/Date/15.9.5.8: PASS || FAIL
+ # Severely brain-damaged test. Access to local variables must not
+ # be more than 2.5 times faster than access to global variables? WTF?
+ 'js1_5/Regress/regress-169559': [PASS, FAIL],
-# Severely brain-damaged test. Access to local variables must not
-# be more than 2.5 times faster than access to global variables? WTF?
-js1_5/Regress/regress-169559: PASS || FAIL
+ # Test that rely on specific timezone (not working in Denmark).
+ 'js1_5/Regress/regress-58116': [PASS, FAIL],
-# Test that rely on specific timezone (not working in Denmark).
-js1_5/Regress/regress-58116: PASS || FAIL
+ # Flaky random() test. Tests the distribution of calls to Math.random().
+ 'js1_5/Regress/regress-211590': [PASS, FAIL],
-# Flaky random() test. Tests the distribution of calls to Math.random().
-js1_5/Regress/regress-211590: PASS || FAIL
+ # Flaky tests; expect BigO-order computations to yield 1, but the code
+ # cannot handle outliers. See bug #925864.
+ 'ecma_3/RegExp/regress-311414': [PASS, FAIL],
+ 'ecma_3/RegExp/regress-289669': [PASS, FAIL],
+ 'js1_5/String/regress-314890': [PASS, FAIL],
+ 'js1_5/String/regress-56940-01': [PASS, FAIL],
+ 'js1_5/String/regress-56940-02': [PASS, FAIL],
+ 'js1_5/String/regress-157334-01': [PASS, FAIL],
+ 'js1_5/String/regress-322772': [PASS, FAIL],
+ 'js1_5/Array/regress-99120-01': [PASS, FAIL],
+ 'js1_5/Array/regress-99120-02': [PASS, FAIL],
+ 'js1_5/Regress/regress-347306-01': [PASS, FAIL],
+ 'js1_5/Regress/regress-416628': [PASS, FAIL, ['mode == debug', TIMEOUT]],
-# Flaky tests; expect BigO-order computations to yield 1, but the code
-# cannot handle outliers. See bug #925864.
-ecma_3/RegExp/regress-311414: PASS || FAIL
-ecma_3/RegExp/regress-289669: PASS || FAIL
-js1_5/String/regress-314890: PASS || FAIL
-js1_5/String/regress-56940-01: PASS || FAIL
-js1_5/String/regress-56940-02: PASS || FAIL
-js1_5/String/regress-157334-01: PASS || FAIL
-js1_5/String/regress-322772: PASS || FAIL
-js1_5/Array/regress-99120-01: PASS || FAIL
-js1_5/Array/regress-99120-02: PASS || FAIL
-js1_5/Regress/regress-347306-01: PASS || FAIL
-js1_5/Regress/regress-416628: PASS || FAIL || TIMEOUT if $mode == debug
+ # The following two tests assume that daylight savings time starts first
+ # Sunday in April. This is not true when executing the tests outside
+ # California! In Denmark the adjustment starts one week earlier.
+ # Tests based on shell that use dates in this gap are flaky.
+ 'ecma/Date/15.9.5.10-1': [PASS, FAIL],
+ 'ecma/Date/15.9.5.12-1': [PASS, FAIL],
+ 'ecma/Date/15.9.5.14': [PASS, FAIL],
+ 'ecma/Date/15.9.5.34-1': [PASS, FAIL],
-# The following two tests assume that daylight savings time starts first Sunday
-# in April. This is not true when executing the tests outside California!
-# In Denmark the adjustment starts one week earlier!.
-# Tests based on shell that use dates in this gap are flaky.
-ecma/Date/15.9.5.10-1: PASS || FAIL
-ecma/Date/15.9.5.12-1: PASS || FAIL
-ecma/Date/15.9.5.14: PASS || FAIL
-ecma/Date/15.9.5.34-1: PASS || FAIL
+ # These tests sometimes pass (in particular on Windows). They build up
+ # a lot of stuff on the stack, which normally causes a stack overflow,
+ # but sometimes it makes it through?
+ 'js1_5/Regress/regress-98901': [PASS, FAIL],
-# These tests sometimes pass (in particular on Windows). They build up
-# a lot of stuff on the stack, which normally causes a stack overflow,
-# but sometimes it makes it through?
-js1_5/Regress/regress-98901: PASS || FAIL
+ # Tests that sorting arrays of ints is less than 3 times as fast
+ # as sorting arrays of strings.
+ 'js1_5/extensions/regress-371636': [PASS, FAIL, ['mode == debug', TIMEOUT]],
-# Tests that sorting arrays of ints is less than 3 times as fast
-# as sorting arrays of strings.
-js1_5/extensions/regress-371636: PASS || FAIL || TIMEOUT if $mode == debug
+ # Tests depend on GC timings. Inherently flaky.
+ 'js1_5/GC/regress-383269-01': [PASS, FAIL],
+ 'js1_5/GC/regress-383269-02': [PASS, FAIL],
+ 'js1_5/Regress/regress-404755': [PASS, FAIL],
-# Tests depend on GC timings. Inherently flaky.
-js1_5/GC/regress-383269-01: PASS || FAIL
-js1_5/GC/regress-383269-02: PASS || FAIL
-js1_5/Regress/regress-404755: PASS || FAIL
+ # Test that depends on timer resolution. Fails every now and then
+ # if we're unlucky enough to get a context switch at a bad time.
+ 'js1_5/extensions/regress-363258': [PASS, FAIL],
-# Test that depends on timer resolution. Fails every now and then
-# if we're unlucky enough to get a context switch at a bad time.
-js1_5/extensions/regress-363258: PASS || FAIL
+ # Test that assumes specific runtime for a regexp, flaky in debug mode.
+ 'ecma_3/RegExp/regress-85721': [PASS, ['mode == debug', FAIL]],
-# Test that assumes specific runtime for a regexp, flaky in debug mode.
-ecma_3/RegExp/regress-85721: PASS || FAIL if $mode == debug
+ # Test that assumes specific execution time, flaky in debug mode.
+ 'js1_5/Array/regress-101964': [PASS, ['mode == debug', FAIL]],
-# Test that assumes specific execution time, flaky in debug mode.
-js1_5/Array/regress-101964: PASS || FAIL if $mode == debug
+ ##################### INCOMPATIBLE TESTS #####################
-##################### INCOMPATIBLE TESTS #####################
+ # This section is for tests that fail in both V8 and JSC. Thus they
+ # have been determined to be incompatible between Mozilla and V8/JSC.
-# This section is for tests that fail in both V8 and JSC. Thus they
-# have been determined to be incompatible between Mozilla and V8/JSC.
+ # toPrecision argument restricted to range 1..21 in JSC/V8 and ECMA-262
+ 'js1_5/Regress/regress-452346': [FAIL_OK],
-# toPrecision argument restricted to range 1..21 in JSC/V8 and ECMA-262
-js1_5/Regress/regress-452346: FAIL_OK
+ # Fail because it calls builtins as functions and do not expect the
+ # builtin to have undefined as the receiver.
+ 'ecma/String/15.5.4.6-2': [FAIL_OK],
-# Fail because it calls builtins as functions and do not expect the
-# builtin to have undefined as the receiver.
-ecma/String/15.5.4.6-2: FAIL_OK
+ # Fail because it expects String.prototype.split to distinguish whether
+ # separator was undefined or not passed at all.
+ 'ecma/String/15.5.4.8-2': [FAIL_OK],
-# Fail because it expects String.prototype.split to distinguish whether
-# separator was undefined or not passed at all.
-ecma/String/15.5.4.8-2: FAIL_OK
+ # Fail because of toLowerCase and toUpperCase conversion.
+ 'ecma/String/15.5.4.11-2': [FAIL_OK],
+ 'ecma/String/15.5.4.11-5': [FAIL_OK],
+ 'ecma/String/15.5.4.12-1': [FAIL_OK],
+ 'ecma/String/15.5.4.12-4': [FAIL_OK],
-# Fail because of toLowerCase and toUpperCase conversion.
-ecma/String/15.5.4.11-2: FAIL_OK
-ecma/String/15.5.4.11-5: FAIL_OK
-ecma/String/15.5.4.12-1: FAIL_OK
-ecma/String/15.5.4.12-4: FAIL_OK
+ # This test uses an older version of the unicode standard that fails
+ # us because we correctly convert the armenian small ligature ech-yiwn
+ # to the two upper-case characters ECH and YIWN, whereas the older
+ # unicode version converts it to itself.
+ 'ecma/String/15.5.4.12-5': [FAIL_OK],
-# This test uses an older version of the unicode standard that fails
-# us because we correctly convert the armenian small ligature ech-yiwn
-# to the two upper-case characters ECH and YIWN, whereas the older
-# unicode version converts it to itself.
-ecma/String/15.5.4.12-5: FAIL_OK
+ # Creates a linked list of arrays until we run out of memory or timeout.
+ 'js1_5/Regress/regress-312588': [SKIP],
-# Creates a linked list of arrays until we run out of memory or timeout.
-js1_5/Regress/regress-312588: SKIP
+ # Runs out of memory because it compiles huge functions.
+ 'js1_5/Function/regress-338001': [FAIL_OK],
+ 'js1_5/Function/regress-338121-01': [FAIL_OK],
+ 'js1_5/Function/regress-338121-02': [FAIL_OK],
+ 'js1_5/Function/regress-338121-03': [FAIL_OK],
-# Runs out of memory because it compiles huge functions.
-js1_5/Function/regress-338001: FAIL_OK
-js1_5/Function/regress-338121-01: FAIL_OK
-js1_5/Function/regress-338121-02: FAIL_OK
-js1_5/Function/regress-338121-03: FAIL_OK
+ # Expectes 'prototype' property of functions to be enumerable.
+ 'js1_5/Function/10.1.6-01': [FAIL_OK],
-# Expectes 'prototype' property of functions to be enumerable.
-js1_5/Function/10.1.6-01: FAIL_OK
+ #:=== RegExp:===
+ # We don't match the syntax error message of Mozilla for invalid
+ # RegExp flags.
+ 'ecma_3/RegExp/15.10.4.1-6': [FAIL_OK],
-#:=== RegExp:===
-# We don't match the syntax error message of Mozilla for invalid
-# RegExp flags.
-ecma_3/RegExp/15.10.4.1-6: FAIL_OK
-
-# PCRE doesn't allow subpattern nesting deeper than 200, this tests
-# depth 500. JSC detects the case, and return null from the match,
-# and passes this test (the test doesn't check for a correct return
-# value).
-ecma_3/RegExp/regress-119909: PASS || FAIL_OK
+ # PCRE doesn't allow subpattern nesting deeper than 200, this tests
+ # depth 500. JSC detects the case, and return null from the match,
+ # and passes this test (the test doesn't check for a correct return
+ # value).
+ 'ecma_3/RegExp/regress-119909': [PASS, FAIL_OK],
-# Difference in the way capturing subpatterns work. In JS, when the
-# 'minimum repeat count' is reached, the empty string must not match.
-# In this case, we are similar but not identical to JSC. Hard to
-# support the JS behavior with PCRE, so maybe emulate JSC?
-ecma_3/RegExp/regress-209919: PASS || FAIL_OK
-js1_5/extensions/regress-459606: PASS || FAIL_OK
+ # Difference in the way capturing subpatterns work. In JS, when the
+ # 'minimum repeat count' is reached, the empty string must not match.
+ # In this case, we are similar but not identical to JSC. Hard to
+ # support the JS behavior with PCRE, so maybe emulate JSC?
+ 'ecma_3/RegExp/regress-209919': [PASS, FAIL_OK],
+ 'js1_5/extensions/regress-459606': [PASS, FAIL_OK],
-# PCRE's match limit is reached. SpiderMonkey hangs on the first one,
-# JSC returns true somehow. Maybe they up the match limit? There is
-# an open V8 bug 676063 about this.
-ecma_3/RegExp/regress-330684: TIMEOUT
+ # PCRE's match limit is reached. SpiderMonkey hangs on the first one,
+ # JSC returns true somehow. Maybe they up the match limit? There is
+ # an open V8 bug 676063 about this.
+ 'ecma_3/RegExp/regress-330684': [TIMEOUT],
-# This test contains a regexp that runs exponentially long. Spidermonkey
-# standalone will hang, though apparently inside Firefox it will trigger a
-# long-running-script timeout. JSCRE passes by hitting the matchLimit and
-# just pretending that an exhaustive search found no match.
-ecma_3/RegExp/regress-307456: PASS || TIMEOUT
+ # This test contains a regexp that runs exponentially long. Spidermonkey
+ # standalone will hang, though apparently inside Firefox it will trigger a
+ # long-running-script timeout. JSCRE passes by hitting the matchLimit and
+ # just pretending that an exhaustive search found no match.
+ 'ecma_3/RegExp/regress-307456': [PASS, TIMEOUT],
-# We do not detect overflow in bounds for back references and {}
-# quantifiers. Might fix by parsing numbers differently?
-js1_5/Regress/regress-230216-2: FAIL_OK
+ # We do not detect overflow in bounds for back references and {}
+ # quantifiers. Might fix by parsing numbers differently?
+ 'js1_5/Regress/regress-230216-2': [FAIL_OK],
-# Regexp too long for PCRE.
-js1_5/Regress/regress-280769: PASS || FAIL
-js1_5/Regress/regress-280769-1: PASS || FAIL
-js1_5/Regress/regress-280769-2: PASS || FAIL
-js1_5/Regress/regress-280769-4: PASS || FAIL
-js1_5/Regress/regress-280769-5: PASS || FAIL
+ # Regexp too long for PCRE.
+ 'js1_5/Regress/regress-280769': [PASS, FAIL],
+ 'js1_5/Regress/regress-280769-1': [PASS, FAIL],
+ 'js1_5/Regress/regress-280769-2': [PASS, FAIL],
+ 'js1_5/Regress/regress-280769-4': [PASS, FAIL],
+ 'js1_5/Regress/regress-280769-5': [PASS, FAIL],
-# We do not support static RegExp.multiline - should we?.
-js1_2/regexp/RegExp_multiline: FAIL_OK
-js1_2/regexp/RegExp_multiline_as_array: FAIL_OK
-js1_2/regexp/beginLine: FAIL_OK
-js1_2/regexp/endLine: FAIL_OK
+ # We do not support static RegExp.multiline - should we?.
+ 'js1_2/regexp/RegExp_multiline': [FAIL_OK],
+ 'js1_2/regexp/RegExp_multiline_as_array': [FAIL_OK],
+ 'js1_2/regexp/beginLine': [FAIL_OK],
+ 'js1_2/regexp/endLine': [FAIL_OK],
-# We no longer let calls to test and exec with no argument implicitly
-# use the previous input.
-js1_2/regexp/RegExp_input: FAIL_OK
-js1_2/regexp/RegExp_input_as_array: FAIL_OK
+ # We no longer let calls to test and exec with no argument implicitly
+ # use the previous input.
+ 'js1_2/regexp/RegExp_input': [FAIL_OK],
+ 'js1_2/regexp/RegExp_input_as_array': [FAIL_OK],
-# To be compatible with safari typeof a regexp yields 'function';
-# in firefox it yields 'object'.
-js1_2/function/regexparg-1: FAIL_OK
+ # To be compatible with safari typeof a regexp yields 'function';
+ # in firefox it yields 'object'.
+ 'js1_2/function/regexparg-1': [FAIL_OK],
-# Date trouble?
-js1_5/Date/regress-301738-02: FAIL_OK
+ # Date trouble?
+ 'js1_5/Date/regress-301738-02': [FAIL_OK],
-# This test fails for all browsers on in the CET timezone.
-ecma/Date/15.9.5.35-1: PASS || FAIL_OK
+ # This test fails for all browsers on in the CET timezone.
+ 'ecma/Date/15.9.5.35-1': [PASS, FAIL_OK],
-# Spidermonkey allows stuff in parenthesis directly after the minutes
-# in a date. JSC does not, so we don't either.
-js1_5/Date/regress-309925-02: FAIL_OK
+ # Spidermonkey allows stuff in parenthesis directly after the minutes
+ # in a date. JSC does not, so we don't either.
+ 'js1_5/Date/regress-309925-02': [FAIL_OK],
-# Print string after deleting array element?
-js1_5/Expressions/regress-96526-delelem: FAIL_OK
+ # Print string after deleting array element?
+ 'js1_5/Expressions/regress-96526-delelem': [FAIL_OK],
-# Stack overflows should be InternalError: too much recursion?
-js1_5/Regress/regress-234389: FAIL_OK
+ # Stack overflows should be InternalError: too much recursion?
+ 'js1_5/Regress/regress-234389': [FAIL_OK],
-# This may very well be a bogus test. I'm not sure yet.
-js1_5/Regress/regress-320119: FAIL_OK
+ # This may very well be a bogus test. I'm not sure yet.
+ 'js1_5/Regress/regress-320119': [FAIL_OK],
-# No support for toSource().
-js1_5/Regress/regress-248444: FAIL_OK
-js1_5/Regress/regress-313967-01: FAIL_OK
-js1_5/Regress/regress-313967-02: FAIL_OK
+ # No support for toSource().
+ 'js1_5/Regress/regress-248444': [FAIL_OK],
+ 'js1_5/Regress/regress-313967-01': [FAIL_OK],
+ 'js1_5/Regress/regress-313967-02': [FAIL_OK],
-# This fails because we don't have stack space for Function.prototype.apply
-# with very large numbers of arguments. The test uses 2^24 arguments.
-js1_5/Array/regress-350256-03: FAIL_OK
+ # This fails because we don't have stack space for Function.prototype.apply
+ # with very large numbers of arguments. The test uses 2^24 arguments.
+ 'js1_5/Array/regress-350256-03': [FAIL_OK],
-# Extra arguments not handled properly in String.prototype.match
-js1_5/Regress/regress-179524: FAIL_OK
+ # Extra arguments not handled properly in String.prototype.match
+ 'js1_5/Regress/regress-179524': [FAIL_OK],
-# Uncategorized failures. Please help categorize (or fix) these failures.
-js1_5/Regress/regress-172699: FAIL_OK
+ # Uncategorized failures. Please help categorize (or fix) these failures.
+ 'js1_5/Regress/regress-172699': [FAIL_OK],
-# Assumes that the prototype of a function is enumerable. Non-ECMA,
-# see section 15.3.3.1, page 86.
-ecma/GlobalObject/15.1.2.2-1: FAIL_OK
-ecma/GlobalObject/15.1.2.3-1: FAIL_OK
-ecma/GlobalObject/15.1.2.4: FAIL_OK
-ecma/GlobalObject/15.1.2.5-1: FAIL_OK
-ecma/GlobalObject/15.1.2.6: FAIL_OK
-ecma/GlobalObject/15.1.2.7: FAIL_OK
+ # Assumes that the prototype of a function is enumerable. Non-ECMA,
+ # see section 15.3.3.1, page 86.
+ 'ecma/GlobalObject/15.1.2.2-1': [FAIL_OK],
+ 'ecma/GlobalObject/15.1.2.3-1': [FAIL_OK],
+ 'ecma/GlobalObject/15.1.2.4': [FAIL_OK],
+ 'ecma/GlobalObject/15.1.2.5-1': [FAIL_OK],
+ 'ecma/GlobalObject/15.1.2.6': [FAIL_OK],
+ 'ecma/GlobalObject/15.1.2.7': [FAIL_OK],
-# Leading zero no longer signal octal numbers (ECMA-262 Annex E 15.1.2.2).
-ecma/GlobalObject/15.1.2.2-2: FAIL_OK
+ # Leading zero no longer signal octal numbers (ECMA-262 Annex E 15.1.2.2).
+ 'ecma/GlobalObject/15.1.2.2-2': [FAIL_OK],
-# Tests that rely on specific details of function decompilation or
-# print strings for errors. Non-ECMA behavior.
-js1_2/function/tostring-2: FAIL_OK
-js1_2/Objects/toString-001: FAIL_OK
-js1_5/LexicalConventions/regress-469940: FAIL_OK
-js1_5/Exceptions/regress-332472: FAIL_OK
-js1_5/Regress/regress-173067: FAIL_OK
-js1_5/Regress/regress-355556: FAIL_OK
-js1_5/Regress/regress-328664: FAIL_OK
-js1_5/Regress/regress-252892: FAIL_OK
-js1_5/Regress/regress-352208: FAIL_OK
-ecma_3/Array/15.4.5.1-01: FAIL_OK
-ecma_3/Array/regress-387501: FAIL_OK
-ecma_3/LexicalConventions/7.9.1: FAIL_OK
-ecma_3/RegExp/regress-375711: FAIL_OK
-ecma_3/Unicode/regress-352044-01: FAIL_OK
-ecma_3/extensions/regress-274152: FAIL_OK
-js1_5/Regress/regress-372364: FAIL_OK
-js1_5/Regress/regress-420919: FAIL_OK
-js1_5/Regress/regress-422348: FAIL_OK
-js1_5/Regress/regress-410852: FAIL_OK
-ecma_3/RegExp/regress-375715-04: FAIL_OK
-js1_5/decompilation/regress-456964-01: FAIL_OK
-js1_5/decompilation/regress-437288-02: FAIL_OK
-js1_5/decompilation/regress-457824: FAIL_OK
-js1_5/decompilation/regress-460116-01: FAIL_OK
-js1_5/decompilation/regress-460116-02: FAIL_OK
-js1_5/decompilation/regress-460501: FAIL_OK
-js1_5/decompilation/regress-460116-03: FAIL_OK
-js1_5/decompilation/regress-461110: FAIL_OK
+ # Tests that rely on specific details of function decompilation or
+ # print strings for errors. Non-ECMA behavior.
+ 'js1_2/function/tostring-2': [FAIL_OK],
+ 'js1_2/Objects/toString-001': [FAIL_OK],
+ 'js1_5/LexicalConventions/regress-469940': [FAIL_OK],
+ 'js1_5/Exceptions/regress-332472': [FAIL_OK],
+ 'js1_5/Regress/regress-173067': [FAIL_OK],
+ 'js1_5/Regress/regress-355556': [FAIL_OK],
+ 'js1_5/Regress/regress-328664': [FAIL_OK],
+ 'js1_5/Regress/regress-252892': [FAIL_OK],
+ 'js1_5/Regress/regress-352208': [FAIL_OK],
+ 'ecma_3/Array/15.4.5.1-01': [FAIL_OK],
+ 'ecma_3/Array/regress-387501': [FAIL_OK],
+ 'ecma_3/LexicalConventions/7.9.1': [FAIL_OK],
+ 'ecma_3/RegExp/regress-375711': [FAIL_OK],
+ 'ecma_3/Unicode/regress-352044-01': [FAIL_OK],
+ 'ecma_3/extensions/regress-274152': [FAIL_OK],
+ 'js1_5/Regress/regress-372364': [FAIL_OK],
+ 'js1_5/Regress/regress-420919': [FAIL_OK],
+ 'js1_5/Regress/regress-422348': [FAIL_OK],
+ 'js1_5/Regress/regress-410852': [FAIL_OK],
+ 'ecma_3/RegExp/regress-375715-04': [FAIL_OK],
+ 'js1_5/decompilation/regress-456964-01': [FAIL_OK],
+ 'js1_5/decompilation/regress-437288-02': [FAIL_OK],
+ 'js1_5/decompilation/regress-457824': [FAIL_OK],
+ 'js1_5/decompilation/regress-460116-01': [FAIL_OK],
+ 'js1_5/decompilation/regress-460116-02': [FAIL_OK],
+ 'js1_5/decompilation/regress-460501': [FAIL_OK],
+ 'js1_5/decompilation/regress-460116-03': [FAIL_OK],
+ 'js1_5/decompilation/regress-461110': [FAIL_OK],
-# Tests that use uneval. Non-ECMA.
-js1_5/GC/regress-418128: FAIL_OK
-js1_5/extensions/regress-465276: FAIL_OK
-js1_5/Error/regress-465377: FAIL_OK
+ # Tests that use uneval. Non-ECMA.
+ 'js1_5/GC/regress-418128': [FAIL_OK],
+ 'js1_5/extensions/regress-465276': [FAIL_OK],
+ 'js1_5/Error/regress-465377': [FAIL_OK],
-# Tests that use the watch method. Non-ECMA.
-js1_5/extensions/regress-435345-01: FAIL_OK
-js1_5/extensions/regress-455413: FAIL_OK
+ # Tests that use the watch method. Non-ECMA.
+ 'js1_5/extensions/regress-435345-01': [FAIL_OK],
+ 'js1_5/extensions/regress-455413': [FAIL_OK],
-# Uses Mozilla-specific QName, XML, XMLList and Iterator.
-js1_5/Regress/regress-407323: FAIL_OK
-js1_5/Regress/regress-407957: FAIL_OK
+ # Uses Mozilla-specific QName, XML, XMLList and Iterator.
+ 'js1_5/Regress/regress-407323': [FAIL_OK],
+ 'js1_5/Regress/regress-407957': [FAIL_OK],
-# Relies on JavaScript 1.2 / 1.3 deprecated features.
-js1_2/function/String: FAIL_OK
-js1_2/operator/equality: FAIL_OK
-js1_2/version120/boolean-001: FAIL_OK
-js1_2/String/concat: FAIL_OK
-js1_2/function/Function_object: FAIL_OK
-js1_2/function/tostring-1: FAIL_OK
-js1_2/version120/regress-99663: FAIL_OK
-js1_2/regexp/RegExp_lastIndex: FAIL_OK
-js1_2/regexp/string_split: FAIL_OK
+ # Relies on JavaScript 1.2 / 1.3 deprecated features.
+ 'js1_2/function/String': [FAIL_OK],
+ 'js1_2/operator/equality': [FAIL_OK],
+ 'js1_2/version120/boolean-001': [FAIL_OK],
+ 'js1_2/String/concat': [FAIL_OK],
+ 'js1_2/function/Function_object': [FAIL_OK],
+ 'js1_2/function/tostring-1': [FAIL_OK],
+ 'js1_2/version120/regress-99663': [FAIL_OK],
+ 'js1_2/regexp/RegExp_lastIndex': [FAIL_OK],
+ 'js1_2/regexp/string_split': [FAIL_OK],
-# RegExps are not callable.
-js1_2/regexp/simple_form: FAIL_OK
-js1_2/regexp/regress-6359: FAIL_OK
-js1_2/regexp/regress-9141: FAIL_OK
-js1_5/Regress/regress-224956: FAIL_OK
-js1_5/Regress/regress-325925: FAIL_OK
-ecma_2/RegExp/regress-001: FAIL_OK
+ # RegExps are not callable.
+ 'js1_2/regexp/simple_form': [FAIL_OK],
+ 'js1_2/regexp/regress-6359': [FAIL_OK],
+ 'js1_2/regexp/regress-9141': [FAIL_OK],
+ 'js1_5/Regress/regress-224956': [FAIL_OK],
+ 'js1_5/Regress/regress-325925': [FAIL_OK],
+ 'ecma_2/RegExp/regress-001': [FAIL_OK],
-# We do not check for bad surrogate pairs when quoting strings.
-js1_5/Regress/regress-315974: FAIL_OK
+ # We do not check for bad surrogate pairs when quoting strings.
+ 'js1_5/Regress/regress-315974': [FAIL_OK],
-# Use unsupported "watch".
-js1_5/Regress/regress-213482: FAIL_OK
-js1_5/Regress/regress-240577: FAIL_OK
-js1_5/Regress/regress-355344: FAIL_OK
-js1_5/Object/regress-362872-01: FAIL_OK
-js1_5/Object/regress-362872-02: FAIL_OK
-js1_5/Regress/regress-361467: FAIL_OK
-js1_5/Regress/regress-385393-06: FAIL_OK
-js1_5/Regress/regress-506567: FAIL_OK
+ # Use unsupported "watch".
+ 'js1_5/Regress/regress-213482': [FAIL_OK],
+ 'js1_5/Regress/regress-240577': [FAIL_OK],
+ 'js1_5/Regress/regress-355344': [FAIL_OK],
+ 'js1_5/Object/regress-362872-01': [FAIL_OK],
+ 'js1_5/Object/regress-362872-02': [FAIL_OK],
+ 'js1_5/Regress/regress-361467': [FAIL_OK],
+ 'js1_5/Regress/regress-385393-06': [FAIL_OK],
+ 'js1_5/Regress/regress-506567': [FAIL_OK],
-# Use special Mozilla getter/setter syntax
-js1_5/Regress/regress-354924: FAIL_OK
-js1_5/Regress/regress-355341: FAIL_OK
-js1_5/GC/regress-316885-01: FAIL_OK
-js1_5/GetSet/getset-002: FAIL_OK
-js1_5/GetSet/regress-353264: FAIL_OK
-js1_5/Regress/regress-361617: FAIL_OK
-js1_5/Regress/regress-362583: FAIL_OK
-js1_5/extensions/regress-356378: FAIL_OK
-js1_5/extensions/regress-452178: FAIL_OK
+ # Use special Mozilla getter/setter syntax
+ 'js1_5/Regress/regress-354924': [FAIL_OK],
+ 'js1_5/Regress/regress-355341': [FAIL_OK],
+ 'js1_5/GC/regress-316885-01': [FAIL_OK],
+ 'js1_5/GetSet/getset-002': [FAIL_OK],
+ 'js1_5/GetSet/regress-353264': [FAIL_OK],
+ 'js1_5/Regress/regress-361617': [FAIL_OK],
+ 'js1_5/Regress/regress-362583': [FAIL_OK],
+ 'js1_5/extensions/regress-356378': [FAIL_OK],
+ 'js1_5/extensions/regress-452178': [FAIL_OK],
-# Requires Mozilla-specific strict mode or options() function.
-ecma_3/Object/8.6.1-01: FAIL_OK
-js1_5/Exceptions/regress-315147: FAIL_OK
-js1_5/Regress/regress-106244: FAIL_OK
-js1_5/Regress/regress-317533: FAIL_OK
-js1_5/Regress/regress-323314-1: FAIL_OK
-js1_5/Regress/regress-352197: FAIL_OK
+ # Requires Mozilla-specific strict mode or options() function.
+ 'ecma_3/Object/8.6.1-01': [FAIL_OK],
+ 'js1_5/Exceptions/regress-315147': [FAIL_OK],
+ 'js1_5/Regress/regress-106244': [FAIL_OK],
+ 'js1_5/Regress/regress-317533': [FAIL_OK],
+ 'js1_5/Regress/regress-323314-1': [FAIL_OK],
+ 'js1_5/Regress/regress-352197': [FAIL_OK],
-# Equivalent to assert(false).
-ecma_2/RegExp/exec-001: FAIL_OK
-ecma_2/String/replace-001: FAIL_OK
+ # Equivalent to assert(false).
+ 'ecma_2/RegExp/exec-001': [FAIL_OK],
+ 'ecma_2/String/replace-001': [FAIL_OK],
-# We do not strip unicode format control characters. This is really
-# required for working with non-latin character sets. We match JSC
-# and IE here. Firefox matches the spec (section 7.1).
-ecma_3/Unicode/uc-001: FAIL_OK
+ # We do not strip unicode format control characters. This is really
+ # required for working with non-latin character sets. We match JSC
+ # and IE here. Firefox matches the spec (section 7.1).
+ 'ecma_3/Unicode/uc-001': [FAIL_OK],
-# A non-breaking space doesn't match \s in a regular expression. This behaviour
-# matches JSC. All the VMs have different behaviours in which characters match
-# \s so we do the same as JSC until they change.
-ecma_3/Unicode/uc-002: PASS || FAIL_OK
+ # A non-breaking space doesn't match \s in a regular expression. This
+ # behaviour matches JSC. All the VMs have different behaviours in which
+ # characters match \s so we do the same as JSC until they change.
+ 'ecma_3/Unicode/uc-002': [PASS, FAIL_OK],
-# String.prototype.split on empty strings always returns an array
-# with one element (as specified in ECMA-262).
-js1_2/Array/array_split_1: FAIL_OK
+ # String.prototype.split on empty strings always returns an array
+ # with one element (as specified in ECMA-262).
+ 'js1_2/Array/array_split_1': [FAIL_OK],
-# The concat() method is defined in Array.prototype; not Array.
-js1_5/Array/regress-313153: FAIL_OK
+ # The concat() method is defined in Array.prototype; not Array.
+ 'js1_5/Array/regress-313153': [FAIL_OK],
-# The join() method is defined on Array.prototype; not Array.
-js1_5/Array/regress-474529: FAIL_OK
+ # The join() method is defined on Array.prototype; not Array.
+ 'js1_5/Array/regress-474529': [FAIL_OK],
-# The lastIndexOf() method is defined on Array.prototype, not Array.
-ecma_3/Array/15.5.4.8-01: FAIL_OK
+ # The lastIndexOf() method is defined on Array.prototype, not Array.
+ 'ecma_3/Array/15.5.4.8-01': [FAIL_OK],
-# Properties fileName, and lineNumber of Error instances are
-# not supported. Mozilla specific extension.
-js1_5/Exceptions/errstack-001: FAIL_OK
-js1_5/Exceptions/regress-257751: FAIL_OK
-js1_5/Regress/regress-119719: FAIL_OK
-js1_5/Regress/regress-167328: FAIL_OK
-js1_5/Regress/regress-243869: FAIL_OK
+ # Properties fileName, and lineNumber of Error instances are
+ # not supported. Mozilla specific extension.
+ 'js1_5/Exceptions/errstack-001': [FAIL_OK],
+ 'js1_5/Exceptions/regress-257751': [FAIL_OK],
+ 'js1_5/Regress/regress-119719': [FAIL_OK],
+ 'js1_5/Regress/regress-167328': [FAIL_OK],
+ 'js1_5/Regress/regress-243869': [FAIL_OK],
-# Unsupported import/export and <xml> literals. Mozilla extensions.
-js1_5/Regress/regress-249211: FAIL_OK
-js1_5/Regress/regress-309242: FAIL_OK
-js1_5/Regress/regress-350692: FAIL_OK
-js1_5/extensions/regress-421621: FAIL_OK
-js1_5/extensions/regress-432075: FAIL_OK
+ # Unsupported import/export and <xml> literals. Mozilla extensions.
+ 'js1_5/Regress/regress-249211': [FAIL_OK],
+ 'js1_5/Regress/regress-309242': [FAIL_OK],
+ 'js1_5/Regress/regress-350692': [FAIL_OK],
+ 'js1_5/extensions/regress-421621': [FAIL_OK],
+ 'js1_5/extensions/regress-432075': [FAIL_OK],
-# The length of Error functions is 1 not 3.
-js1_5/Exceptions/regress-123002: FAIL_OK
+ # The length of Error functions is 1 not 3.
+ 'js1_5/Exceptions/regress-123002': [FAIL_OK],
-# Reserved keywords as function names, etc is not supported.
-js1_5/LexicalConventions/regress-343675: FAIL_OK
+ # Reserved keywords as function names, etc is not supported.
+ 'js1_5/LexicalConventions/regress-343675': [FAIL_OK],
-# Tests if future reserved keywords of ECMA-262, edition 3 emit warnings. We
-# implement the edition 5 behaviour and fail on use of edition 5 future reserved
-# keywords as identifiers.
-js1_5/Regress/regress-240317: FAIL_OK
+ # Tests if future reserved keywords of ECMA-262, edition 3 emit warnings. We
+ # implement the edition 5 behaviour and fail on use of edition 5 future
+ # reserved keywords as identifiers.
+ 'js1_5/Regress/regress-240317': [FAIL_OK],
-# Unsupported list comprehensions: [ ... for ... ] and for each.
-js1_5/Regress/regress-352009: FAIL_OK
-js1_5/Regress/regress-349648: FAIL_OK
+ # Unsupported list comprehensions: [ ... for ... ] and for each.
+ 'js1_5/Regress/regress-352009': [FAIL_OK],
+ 'js1_5/Regress/regress-349648': [FAIL_OK],
-# Expects top level arguments (passed on command line?) to be
-# the empty string?
-js1_5/Regress/regress-336100: FAIL_OK
+ # Expects top level arguments (passed on command line?) to be
+ # the empty string?
+ 'js1_5/Regress/regress-336100': [FAIL_OK],
-# Regular expression test failures due to PCRE. We match JSC (ie, perl)
-# behavior and not the ECMA spec.
-ecma_3/RegExp/perlstress-001: PASS || FAIL_OK
-ecma_3/RegExp/regress-334158: PASS || FAIL
+ # Regular expression test failures due to PCRE. We match JSC (ie, perl)
+ # behavior and not the ECMA spec.
+ 'ecma_3/RegExp/perlstress-001': [PASS, FAIL_OK],
+ 'ecma_3/RegExp/regress-334158': [PASS, FAIL],
-# This test fails due to http://code.google.com/p/v8/issues/detail?id=187
-# Failure to clear captures when a lookahead is unwound.
-ecma_3/RegExp/15.10.2-1: PASS || FAIL_OK
+ # This test fails due to http://code.google.com/p/v8/issues/detail?id=187
+ # Failure to clear captures when a lookahead is unwound.
+ 'ecma_3/RegExp/15.10.2-1': [PASS, FAIL_OK],
-# This test requires a failure if we try to compile a function with more
-# than 65536 arguments. This seems to be a Mozilla restriction.
-js1_5/Regress/regress-290575: PASS || FAIL_OK
+ # This test requires a failure if we try to compile a function with more
+ # than 65536 arguments. This seems to be a Mozilla restriction.
+ 'js1_5/Regress/regress-290575': [PASS, FAIL_OK],
-# Fails because of the way function declarations are
-# handled in V8/JSC. V8 follows IE behavior and introduce
-# all nested function declarations when entering the
-# surrounding function, whereas Spidermonkey declares
-# them dynamically when the statement is executed.
-ecma_3/Function/scope-001: FAIL_OK
-ecma_3/FunExpr/fe-001: FAIL_OK
-js1_5/Scope/regress-184107: FAIL_OK
+ # Fails because of the way function declarations are
+ # handled in V8/JSC. V8 follows IE behavior and introduce
+ # all nested function declarations when entering the
+ # surrounding function, whereas Spidermonkey declares
+ # them dynamically when the statement is executed.
+ 'ecma_3/Function/scope-001': [FAIL_OK],
+ 'ecma_3/FunExpr/fe-001': [FAIL_OK],
+ 'js1_5/Scope/regress-184107': [FAIL_OK],
-# Function is deletable in V8 and JSC.
-js1_5/Regress/regress-352604: FAIL_OK
+ # Function is deletable in V8 and JSC.
+ 'js1_5/Regress/regress-352604': [FAIL_OK],
-# Cannot call strings as functions. Expects not to crash.
-js1_5/Regress/regress-417893: FAIL_OK
+ # Cannot call strings as functions. Expects not to crash.
+ 'js1_5/Regress/regress-417893': [FAIL_OK],
-# Unsupported use of "[]" as function parameter. We match JSC.
-js1_5/Regress/regress-416737-01: FAIL_OK
-js1_5/Regress/regress-416737-02: FAIL_OK
+ # Unsupported use of "[]" as function parameter. We match JSC.
+ 'js1_5/Regress/regress-416737-01': [FAIL_OK],
+ 'js1_5/Regress/regress-416737-02': [FAIL_OK],
-# Illegal escape-sequences in string literals. Has already been fixed
-# by most engines (i.e. V8, JSC, Opera and FF).
-ecma/Array/15.4.5.1-1: FAIL_OK
-ecma/LexicalConventions/7.7.4: FAIL_OK
-ecma_2/RegExp/hex-001: FAIL_OK
-js1_2/regexp/hexadecimal: FAIL_OK
+ # Illegal escape-sequences in string literals. Has already been fixed
+ # by most engines (i.e. V8, JSC, Opera and FF).
+ 'ecma/Array/15.4.5.1-1': [FAIL_OK],
+ 'ecma/LexicalConventions/7.7.4': [FAIL_OK],
+ 'ecma_2/RegExp/hex-001': [FAIL_OK],
+ 'js1_2/regexp/hexadecimal': [FAIL_OK],
-# The source field of RegExp objects is properly escaped. We match JSC.
-ecma_2/RegExp/constructor-001: FAIL_OK
-ecma_2/RegExp/function-001: FAIL_OK
-ecma_2/RegExp/properties-001: FAIL_OK
+ # The source field of RegExp objects is properly escaped. We match JSC.
+ 'ecma_2/RegExp/constructor-001': [FAIL_OK],
+ 'ecma_2/RegExp/function-001': [FAIL_OK],
+ 'ecma_2/RegExp/properties-001': [FAIL_OK],
-# Negative hexadecimal literals are parsed as NaN. This test is outdated.
-ecma/TypeConversion/9.3.1-3: FAIL_OK
+ # Negative hexadecimal literals are parsed as NaN. This test is outdated.
+ 'ecma/TypeConversion/9.3.1-3': [FAIL_OK],
-##################### FAILING TESTS #####################
+ ##################### FAILING TESTS #####################
-# This section is for tests that fail in V8 and pass in JSC.
-# Tests that fail in both V8 and JSC belong in the FAIL_OK
-# category.
+ # This section is for tests that fail in V8 and pass in JSC.
+ # Tests that fail in both V8 and JSC belong in the FAIL_OK
+ # category.
-# This fails because we don't handle Function.prototype.apply with very large
-# numbers of arguments (depending on max stack size). 350256-02 needs more than
-# 4Mbytes of stack space.
-js1_5/Array/regress-350256-02: FAIL
+ # This fails because we don't handle Function.prototype.apply with very large
+ # numbers of arguments (depending on max stack size). 350256-02 needs more
+ # than 4Mbytes of stack space.
+ 'js1_5/Array/regress-350256-02': [FAIL],
-# This test seems designed to fail (it produces a 700Mbyte string).
-# We fail on out of memory. The important thing is not to crash.
-js1_5/Regress/regress-303213: FAIL || TIMEOUT if $mode == debug
+ # This test seems designed to fail (it produces a 700Mbyte string).
+ # We fail on out of memory. The important thing is not to crash.
+ 'js1_5/Regress/regress-303213': [FAIL, ['mode == debug', TIMEOUT]],
-# This test fails since we now throw in String.prototype.match when apply
-# is given null or undefined as this argument (and so does firefox nightly).
-js1_5/Regress/regress-295052: FAIL
+ # This test fails since we now throw in String.prototype.match when apply
+ # is given null or undefined as this argument (and so does firefox nightly).
+ 'js1_5/Regress/regress-295052': [FAIL],
-# Bug 1202592: New ecma_3/String/15.5.4.11 is failing.
-ecma_3/String/15.5.4.11: FAIL
+ # Bug 1202592: New ecma_3/String/15.5.4.11 is failing.
+ 'ecma_3/String/15.5.4.11': [FAIL],
-# Bug 1202597: New js1_5/Expressions/regress-394673 is failing.
-# Marked as: Will not fix. V8 throws an acceptable RangeError.
-js1_5/Expressions/regress-394673: FAIL
+ # Bug 1202597: New js1_5/Expressions/regress-394673 is failing.
+ # Marked as: Will not fix. V8 throws an acceptable RangeError.
+ 'js1_5/Expressions/regress-394673': [FAIL],
-# Bug 762: http://code.google.com/p/v8/issues/detail?id=762
-# We do not correctly handle assignments within "with"
-ecma_3/Statements/12.10-01: FAIL
+ # Bug 762: http://code.google.com/p/v8/issues/detail?id=762
+ # We do not correctly handle assignments within "with"
+ 'ecma_3/Statements/12.10-01': [FAIL],
-# We do not throw an exception when a const is redeclared.
-# (We only fail section 1 of the test.)
-js1_5/Regress/regress-103602: FAIL
+ # We do not throw an exception when a const is redeclared.
+ # (We only fail section 1 of the test.)
+ 'js1_5/Regress/regress-103602': [FAIL],
-##################### MOZILLA EXTENSION TESTS #####################
+ ##################### MOZILLA EXTENSION TESTS #####################
-ecma/extensions/15.1.2.1-1: FAIL_OK
-ecma_3/extensions/regress-385393-03: FAIL_OK
-ecma_3/extensions/7.9.1: FAIL_OK
-js1_5/extensions/catchguard-001: FAIL_OK
-js1_5/extensions/catchguard-002: FAIL_OK
-js1_5/extensions/catchguard-003: FAIL_OK
-js1_5/extensions/getset-001: FAIL_OK
-js1_5/extensions/getset-003: FAIL_OK
-js1_5/extensions/no-such-method: FAIL_OK
-js1_5/extensions/regress-104077: FAIL_OK
-js1_5/extensions/regress-226078: FAIL_OK
-js1_5/extensions/regress-303277: FAIL_OK
-js1_5/extensions/regress-304897: FAIL_OK
-js1_5/extensions/regress-306738: FAIL_OK
-js1_5/extensions/regress-311161: FAIL_OK
-js1_5/extensions/regress-311583: FAIL_OK
-js1_5/extensions/regress-311792-01: FAIL_OK
-js1_5/extensions/regress-312278: FAIL_OK
-js1_5/extensions/regress-313630: FAIL_OK
-js1_5/extensions/regress-313763: FAIL_OK
-js1_5/extensions/regress-313803: FAIL_OK
-js1_5/extensions/regress-314874: FAIL_OK
-js1_5/extensions/regress-322957: FAIL_OK
-js1_5/extensions/regress-328556: FAIL_OK
-js1_5/extensions/regress-333541: FAIL_OK
-js1_5/extensions/regress-335700: FAIL_OK
-js1_5/extensions/regress-336409-1: FAIL_OK
-js1_5/extensions/regress-336409-2: FAIL_OK
-js1_5/extensions/regress-336410-2: FAIL_OK
-js1_5/extensions/regress-341956-01: FAIL_OK
-js1_5/extensions/regress-345967: FAIL_OK
-js1_5/extensions/regress-346494-01: FAIL_OK
-js1_5/extensions/regress-346494: FAIL_OK
-js1_5/extensions/regress-347306-02: FAIL_OK
-js1_5/extensions/regress-348986: FAIL_OK
-js1_5/extensions/regress-349616: FAIL_OK
-js1_5/extensions/regress-350312-02: FAIL_OK
-js1_5/extensions/regress-350312-03: FAIL_OK
-js1_5/extensions/regress-350531: FAIL_OK
-js1_5/extensions/regress-351102-01: FAIL_OK
-js1_5/extensions/regress-351102-02: FAIL_OK
-js1_5/extensions/regress-351102-06: FAIL_OK
-js1_5/extensions/regress-351973: FAIL_OK
-js1_5/extensions/regress-352060: FAIL_OK
-js1_5/extensions/regress-352094: FAIL_OK
-js1_5/extensions/regress-352261: FAIL_OK
-js1_5/extensions/regress-352281: FAIL_OK
-js1_5/extensions/regress-352455: FAIL_OK
-js1_5/extensions/regress-352604: FAIL_OK
-js1_5/extensions/regress-353214: FAIL_OK
-js1_5/extensions/regress-355339: FAIL_OK
-js1_5/extensions/regress-355497: FAIL_OK
-js1_5/extensions/regress-355622: FAIL_OK
-js1_5/extensions/regress-355736: FAIL_OK
-js1_5/extensions/regress-356085: FAIL_OK
-js1_5/extensions/regress-356106: FAIL_OK
-js1_5/extensions/regress-358594-01: FAIL_OK
-js1_5/extensions/regress-358594-02: FAIL_OK
-js1_5/extensions/regress-358594-03: FAIL_OK
-js1_5/extensions/regress-358594-04: FAIL_OK
-js1_5/extensions/regress-358594-05: FAIL_OK
-js1_5/extensions/regress-358594-06: FAIL_OK
-js1_5/extensions/regress-361346: FAIL_OK
-js1_5/extensions/regress-361360: FAIL_OK
-js1_5/extensions/regress-361558: FAIL_OK
-js1_5/extensions/regress-361571: FAIL_OK
-js1_5/extensions/regress-361856: FAIL_OK
-js1_5/extensions/regress-361964: FAIL_OK
-js1_5/extensions/regress-363988: FAIL_OK
-js1_5/extensions/regress-365869: FAIL_OK
-js1_5/extensions/regress-367630: FAIL_OK
-js1_5/extensions/regress-367923: FAIL_OK
-js1_5/extensions/regress-368859: FAIL_OK
-js1_5/extensions/regress-369696-01: FAIL_OK
-js1_5/extensions/regress-369696-02: FAIL_OK
-js1_5/extensions/regress-369696-03: FAIL_OK
-js1_5/extensions/regress-374589: FAIL_OK
-js1_5/extensions/regress-375801: FAIL_OK
-js1_5/extensions/regress-376052: FAIL_OK
-js1_5/extensions/regress-379523: FAIL_OK
-js1_5/extensions/regress-380581: FAIL_OK
-js1_5/extensions/regress-380831: FAIL_OK
-js1_5/extensions/regress-381205: FAIL_OK
-js1_5/extensions/regress-381211: FAIL_OK
-js1_5/extensions/regress-381304: FAIL_OK
-js1_5/extensions/regress-382509: FAIL_OK
-js1_5/extensions/regress-383965: FAIL_OK
-js1_5/extensions/regress-384680: FAIL_OK
-js1_5/extensions/regress-385393-09: FAIL_OK
-js1_5/extensions/regress-407501: FAIL_OK
-js1_5/extensions/regress-418730: FAIL_OK
-js1_5/extensions/regress-420612: FAIL_OK
-js1_5/extensions/regress-420869-01: FAIL_OK
-js1_5/extensions/regress-424257: FAIL_OK
-js1_5/extensions/regress-424683-01: FAIL_OK
-js1_5/extensions/regress-429739: FAIL_OK
-js1_5/extensions/regress-454142: FAIL_OK
-js1_5/extensions/regress-465145: FAIL_OK
-js1_5/extensions/regress-469625: FAIL_OK
-js1_5/extensions/regress-472787: FAIL_OK
-js1_5/extensions/regress-44009: FAIL_OK
-js1_5/extensions/regress-50447-1: FAIL_OK
-js1_5/extensions/regress-50447: FAIL_OK
-js1_5/extensions/regress-90596-001: FAIL_OK
-js1_5/extensions/regress-90596-002: FAIL_OK
-js1_5/extensions/regress-96284-001: FAIL_OK
-js1_5/extensions/regress-96284-002: FAIL_OK
-js1_5/extensions/toLocaleFormat-01: FAIL_OK
-js1_5/extensions/toLocaleFormat-02: FAIL_OK
+ 'ecma/extensions/15.1.2.1-1': [FAIL_OK],
+ 'ecma_3/extensions/regress-385393-03': [FAIL_OK],
+ 'ecma_3/extensions/7.9.1': [FAIL_OK],
+ 'js1_5/extensions/catchguard-001': [FAIL_OK],
+ 'js1_5/extensions/catchguard-002': [FAIL_OK],
+ 'js1_5/extensions/catchguard-003': [FAIL_OK],
+ 'js1_5/extensions/getset-001': [FAIL_OK],
+ 'js1_5/extensions/getset-003': [FAIL_OK],
+ 'js1_5/extensions/no-such-method': [FAIL_OK],
+ 'js1_5/extensions/regress-104077': [FAIL_OK],
+ 'js1_5/extensions/regress-226078': [FAIL_OK],
+ 'js1_5/extensions/regress-303277': [FAIL_OK],
+ 'js1_5/extensions/regress-304897': [FAIL_OK],
+ 'js1_5/extensions/regress-306738': [FAIL_OK],
+ 'js1_5/extensions/regress-311161': [FAIL_OK],
+ 'js1_5/extensions/regress-311583': [FAIL_OK],
+ 'js1_5/extensions/regress-311792-01': [FAIL_OK],
+ 'js1_5/extensions/regress-312278': [FAIL_OK],
+ 'js1_5/extensions/regress-313630': [FAIL_OK],
+ 'js1_5/extensions/regress-313763': [FAIL_OK],
+ 'js1_5/extensions/regress-313803': [FAIL_OK],
+ 'js1_5/extensions/regress-314874': [FAIL_OK],
+ 'js1_5/extensions/regress-322957': [FAIL_OK],
+ 'js1_5/extensions/regress-328556': [FAIL_OK],
+ 'js1_5/extensions/regress-333541': [FAIL_OK],
+ 'js1_5/extensions/regress-335700': [FAIL_OK],
+ 'js1_5/extensions/regress-336409-1': [FAIL_OK],
+ 'js1_5/extensions/regress-336409-2': [FAIL_OK],
+ 'js1_5/extensions/regress-336410-2': [FAIL_OK],
+ 'js1_5/extensions/regress-341956-01': [FAIL_OK],
+ 'js1_5/extensions/regress-345967': [FAIL_OK],
+ 'js1_5/extensions/regress-346494-01': [FAIL_OK],
+ 'js1_5/extensions/regress-346494': [FAIL_OK],
+ 'js1_5/extensions/regress-347306-02': [FAIL_OK],
+ 'js1_5/extensions/regress-348986': [FAIL_OK],
+ 'js1_5/extensions/regress-349616': [FAIL_OK],
+ 'js1_5/extensions/regress-350312-02': [FAIL_OK],
+ 'js1_5/extensions/regress-350312-03': [FAIL_OK],
+ 'js1_5/extensions/regress-350531': [FAIL_OK],
+ 'js1_5/extensions/regress-351102-01': [FAIL_OK],
+ 'js1_5/extensions/regress-351102-02': [FAIL_OK],
+ 'js1_5/extensions/regress-351102-06': [FAIL_OK],
+ 'js1_5/extensions/regress-351973': [FAIL_OK],
+ 'js1_5/extensions/regress-352060': [FAIL_OK],
+ 'js1_5/extensions/regress-352094': [FAIL_OK],
+ 'js1_5/extensions/regress-352261': [FAIL_OK],
+ 'js1_5/extensions/regress-352281': [FAIL_OK],
+ 'js1_5/extensions/regress-352455': [FAIL_OK],
+ 'js1_5/extensions/regress-352604': [FAIL_OK],
+ 'js1_5/extensions/regress-353214': [FAIL_OK],
+ 'js1_5/extensions/regress-355339': [FAIL_OK],
+ 'js1_5/extensions/regress-355497': [FAIL_OK],
+ 'js1_5/extensions/regress-355622': [FAIL_OK],
+ 'js1_5/extensions/regress-355736': [FAIL_OK],
+ 'js1_5/extensions/regress-356085': [FAIL_OK],
+ 'js1_5/extensions/regress-356106': [FAIL_OK],
+ 'js1_5/extensions/regress-358594-01': [FAIL_OK],
+ 'js1_5/extensions/regress-358594-02': [FAIL_OK],
+ 'js1_5/extensions/regress-358594-03': [FAIL_OK],
+ 'js1_5/extensions/regress-358594-04': [FAIL_OK],
+ 'js1_5/extensions/regress-358594-05': [FAIL_OK],
+ 'js1_5/extensions/regress-358594-06': [FAIL_OK],
+ 'js1_5/extensions/regress-361346': [FAIL_OK],
+ 'js1_5/extensions/regress-361360': [FAIL_OK],
+ 'js1_5/extensions/regress-361558': [FAIL_OK],
+ 'js1_5/extensions/regress-361571': [FAIL_OK],
+ 'js1_5/extensions/regress-361856': [FAIL_OK],
+ 'js1_5/extensions/regress-361964': [FAIL_OK],
+ 'js1_5/extensions/regress-363988': [FAIL_OK],
+ 'js1_5/extensions/regress-365869': [FAIL_OK],
+ 'js1_5/extensions/regress-367630': [FAIL_OK],
+ 'js1_5/extensions/regress-367923': [FAIL_OK],
+ 'js1_5/extensions/regress-368859': [FAIL_OK],
+ 'js1_5/extensions/regress-369696-01': [FAIL_OK],
+ 'js1_5/extensions/regress-369696-02': [FAIL_OK],
+ 'js1_5/extensions/regress-369696-03': [FAIL_OK],
+ 'js1_5/extensions/regress-374589': [FAIL_OK],
+ 'js1_5/extensions/regress-375801': [FAIL_OK],
+ 'js1_5/extensions/regress-376052': [FAIL_OK],
+ 'js1_5/extensions/regress-379523': [FAIL_OK],
+ 'js1_5/extensions/regress-380581': [FAIL_OK],
+ 'js1_5/extensions/regress-380831': [FAIL_OK],
+ 'js1_5/extensions/regress-381205': [FAIL_OK],
+ 'js1_5/extensions/regress-381211': [FAIL_OK],
+ 'js1_5/extensions/regress-381304': [FAIL_OK],
+ 'js1_5/extensions/regress-382509': [FAIL_OK],
+ 'js1_5/extensions/regress-383965': [FAIL_OK],
+ 'js1_5/extensions/regress-384680': [FAIL_OK],
+ 'js1_5/extensions/regress-385393-09': [FAIL_OK],
+ 'js1_5/extensions/regress-407501': [FAIL_OK],
+ 'js1_5/extensions/regress-418730': [FAIL_OK],
+ 'js1_5/extensions/regress-420612': [FAIL_OK],
+ 'js1_5/extensions/regress-420869-01': [FAIL_OK],
+ 'js1_5/extensions/regress-424257': [FAIL_OK],
+ 'js1_5/extensions/regress-424683-01': [FAIL_OK],
+ 'js1_5/extensions/regress-429739': [FAIL_OK],
+ 'js1_5/extensions/regress-454142': [FAIL_OK],
+ 'js1_5/extensions/regress-465145': [FAIL_OK],
+ 'js1_5/extensions/regress-469625': [FAIL_OK],
+ 'js1_5/extensions/regress-472787': [FAIL_OK],
+ 'js1_5/extensions/regress-44009': [FAIL_OK],
+ 'js1_5/extensions/regress-50447-1': [FAIL_OK],
+ 'js1_5/extensions/regress-50447': [FAIL_OK],
+ 'js1_5/extensions/regress-90596-001': [FAIL_OK],
+ 'js1_5/extensions/regress-90596-002': [FAIL_OK],
+ 'js1_5/extensions/regress-96284-001': [FAIL_OK],
+ 'js1_5/extensions/regress-96284-002': [FAIL_OK],
+ 'js1_5/extensions/toLocaleFormat-01': [FAIL_OK],
+ 'js1_5/extensions/toLocaleFormat-02': [FAIL_OK],
-js1_5/extensions/regress-330569: TIMEOUT
-js1_5/extensions/regress-351448: TIMEOUT
-# In the 64-bit version, this test takes longer to run out of memory
-# than it does in the 32-bit version when attempting to generate a huge
-# error message in debug mode.
-js1_5/extensions/regress-336410-1: FAIL_OK || TIMEOUT if ($mode == debug && $arch == x64)
+ 'js1_5/extensions/regress-330569': [TIMEOUT],
+ 'js1_5/extensions/regress-351448': [TIMEOUT],
+ # In the 64-bit version, this test takes longer to run out of memory
+ # than it does in the 32-bit version when attempting to generate a huge
+ # error message in debug mode.
+ 'js1_5/extensions/regress-336410-1': [FAIL_OK, ['mode == debug and arch == x64', TIMEOUT]],
-##################### DECOMPILATION TESTS #####################
+ ##################### DECOMPILATION TESTS #####################
-# We don't really about the outcome of running the
-# decompilation tests as long as they don't crash or
-# timeout.
+ # We don't really about the outcome of running the
+ # decompilation tests as long as they don't crash or
+ # timeout.
-js1_5/decompilation/regress-344120: PASS || FAIL
-js1_5/decompilation/regress-346892: PASS || FAIL
-js1_5/decompilation/regress-346902: PASS || FAIL
-js1_5/decompilation/regress-346904: PASS || FAIL
-js1_5/decompilation/regress-346915: PASS || FAIL
-js1_5/decompilation/regress-349484: PASS || FAIL
-js1_5/decompilation/regress-349489: PASS || FAIL
-js1_5/decompilation/regress-349491: PASS || FAIL
-js1_5/decompilation/regress-349596: PASS || FAIL
-js1_5/decompilation/regress-349650: PASS || FAIL
-js1_5/decompilation/regress-349663: PASS || FAIL
-js1_5/decompilation/regress-350242: PASS || FAIL
-js1_5/decompilation/regress-350263: PASS || FAIL
-js1_5/decompilation/regress-350271: PASS || FAIL
-js1_5/decompilation/regress-350666: PASS || FAIL
-js1_5/decompilation/regress-350670: PASS || FAIL
-js1_5/decompilation/regress-351104: PASS || FAIL
-js1_5/decompilation/regress-351219: PASS || FAIL
-js1_5/decompilation/regress-351336: PASS || FAIL
-js1_5/decompilation/regress-351597: PASS || FAIL
-js1_5/decompilation/regress-351625: PASS || FAIL
-js1_5/decompilation/regress-351626: PASS || FAIL
-js1_5/decompilation/regress-351693: PASS || FAIL
-js1_5/decompilation/regress-351705: PASS || FAIL
-js1_5/decompilation/regress-351793: PASS || FAIL
-js1_5/decompilation/regress-352013: PASS || FAIL
-js1_5/decompilation/regress-352022: PASS || FAIL
-js1_5/decompilation/regress-352073: PASS || FAIL
-js1_5/decompilation/regress-352202: PASS || FAIL
-js1_5/decompilation/regress-352312: PASS || FAIL
-js1_5/decompilation/regress-352360: PASS || FAIL
-js1_5/decompilation/regress-352375: PASS || FAIL
-js1_5/decompilation/regress-352453: PASS || FAIL
-js1_5/decompilation/regress-352649: PASS || FAIL
-js1_5/decompilation/regress-352873-01: PASS || FAIL
-js1_5/decompilation/regress-352873-02: PASS || FAIL
-js1_5/decompilation/regress-353000: PASS || FAIL
-js1_5/decompilation/regress-353120: PASS || FAIL
-js1_5/decompilation/regress-353146: PASS || FAIL
-js1_5/decompilation/regress-354878: PASS || FAIL
-js1_5/decompilation/regress-354910: PASS || FAIL
-js1_5/decompilation/regress-355992: PASS || FAIL
-js1_5/decompilation/regress-356083: PASS || FAIL
-js1_5/decompilation/regress-356248: PASS || FAIL
-js1_5/decompilation/regress-371692: PASS || FAIL
-js1_5/decompilation/regress-373678: PASS || FAIL
-js1_5/decompilation/regress-375639: PASS || FAIL
-js1_5/decompilation/regress-375882: PASS || FAIL
-js1_5/decompilation/regress-376564: PASS || FAIL
-js1_5/decompilation/regress-383721: PASS || FAIL
-js1_5/decompilation/regress-406555: PASS || FAIL
-js1_5/decompilation/regress-460870: PASS || FAIL
+ 'js1_5/decompilation/regress-344120': [PASS, FAIL],
+ 'js1_5/decompilation/regress-346892': [PASS, FAIL],
+ 'js1_5/decompilation/regress-346902': [PASS, FAIL],
+ 'js1_5/decompilation/regress-346904': [PASS, FAIL],
+ 'js1_5/decompilation/regress-346915': [PASS, FAIL],
+ 'js1_5/decompilation/regress-349484': [PASS, FAIL],
+ 'js1_5/decompilation/regress-349489': [PASS, FAIL],
+ 'js1_5/decompilation/regress-349491': [PASS, FAIL],
+ 'js1_5/decompilation/regress-349596': [PASS, FAIL],
+ 'js1_5/decompilation/regress-349650': [PASS, FAIL],
+ 'js1_5/decompilation/regress-349663': [PASS, FAIL],
+ 'js1_5/decompilation/regress-350242': [PASS, FAIL],
+ 'js1_5/decompilation/regress-350263': [PASS, FAIL],
+ 'js1_5/decompilation/regress-350271': [PASS, FAIL],
+ 'js1_5/decompilation/regress-350666': [PASS, FAIL],
+ 'js1_5/decompilation/regress-350670': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351104': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351219': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351336': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351597': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351625': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351626': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351693': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351705': [PASS, FAIL],
+ 'js1_5/decompilation/regress-351793': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352013': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352022': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352073': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352202': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352312': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352360': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352375': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352453': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352649': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352873-01': [PASS, FAIL],
+ 'js1_5/decompilation/regress-352873-02': [PASS, FAIL],
+ 'js1_5/decompilation/regress-353000': [PASS, FAIL],
+ 'js1_5/decompilation/regress-353120': [PASS, FAIL],
+ 'js1_5/decompilation/regress-353146': [PASS, FAIL],
+ 'js1_5/decompilation/regress-354878': [PASS, FAIL],
+ 'js1_5/decompilation/regress-354910': [PASS, FAIL],
+ 'js1_5/decompilation/regress-355992': [PASS, FAIL],
+ 'js1_5/decompilation/regress-356083': [PASS, FAIL],
+ 'js1_5/decompilation/regress-356248': [PASS, FAIL],
+ 'js1_5/decompilation/regress-371692': [PASS, FAIL],
+ 'js1_5/decompilation/regress-373678': [PASS, FAIL],
+ 'js1_5/decompilation/regress-375639': [PASS, FAIL],
+ 'js1_5/decompilation/regress-375882': [PASS, FAIL],
+ 'js1_5/decompilation/regress-376564': [PASS, FAIL],
+ 'js1_5/decompilation/regress-383721': [PASS, FAIL],
+ 'js1_5/decompilation/regress-406555': [PASS, FAIL],
+ 'js1_5/decompilation/regress-460870': [PASS, FAIL],
+}], # ALWAYS
-[ $arch == arm ]
+['arch == arm', {
-# BUG(3251229): Times out when running new crankshaft test script.
-ecma_3/RegExp/regress-311414: SKIP
-ecma/Date/15.9.5.8: SKIP
-ecma/Date/15.9.5.10-2: SKIP
-ecma/Date/15.9.5.11-2: SKIP
-ecma/Date/15.9.5.12-2: SKIP
-js1_5/Array/regress-99120-02: SKIP
-js1_5/extensions/regress-371636: SKIP
-js1_5/Regress/regress-203278-1: SKIP
-js1_5/Regress/regress-404755: SKIP
-js1_5/Regress/regress-451322: SKIP
+ # BUG(3251229): Times out when running new crankshaft test script.
+ 'ecma_3/RegExp/regress-311414': [SKIP],
+ 'ecma/Date/15.9.5.8': [SKIP],
+ 'ecma/Date/15.9.5.10-2': [SKIP],
+ 'ecma/Date/15.9.5.11-2': [SKIP],
+ 'ecma/Date/15.9.5.12-2': [SKIP],
+ 'js1_5/Array/regress-99120-02': [SKIP],
+ 'js1_5/extensions/regress-371636': [SKIP],
+ 'js1_5/Regress/regress-203278-1': [SKIP],
+ 'js1_5/Regress/regress-404755': [SKIP],
+ 'js1_5/Regress/regress-451322': [SKIP],
-# BUG(1040): Allow this test to timeout.
-js1_5/GC/regress-203278-2: PASS || TIMEOUT
+ # BUG(1040): Allow this test to timeout.
+ 'js1_5/GC/regress-203278-2': [PASS, TIMEOUT],
+}], # 'arch == arm'
-[ $arch == mipsel ]
+['arch == mipsel', {
-# BUG(3251229): Times out when running new crankshaft test script.
-ecma_3/RegExp/regress-311414: SKIP
-ecma/Date/15.9.5.8: SKIP
-ecma/Date/15.9.5.10-2: SKIP
-ecma/Date/15.9.5.11-2: SKIP
-ecma/Date/15.9.5.12-2: SKIP
-js1_5/Array/regress-99120-02: SKIP
-js1_5/extensions/regress-371636: SKIP
-js1_5/Regress/regress-203278-1: SKIP
-js1_5/Regress/regress-404755: SKIP
-js1_5/Regress/regress-451322: SKIP
+ # BUG(3251229): Times out when running new crankshaft test script.
+ 'ecma_3/RegExp/regress-311414': [SKIP],
+ 'ecma/Date/15.9.5.8': [SKIP],
+ 'ecma/Date/15.9.5.10-2': [SKIP],
+ 'ecma/Date/15.9.5.11-2': [SKIP],
+ 'ecma/Date/15.9.5.12-2': [SKIP],
+ 'js1_5/Array/regress-99120-02': [SKIP],
+ 'js1_5/extensions/regress-371636': [SKIP],
+ 'js1_5/Regress/regress-203278-1': [SKIP],
+ 'js1_5/Regress/regress-404755': [SKIP],
+ 'js1_5/Regress/regress-451322': [SKIP],
-# BUG(1040): Allow this test to timeout.
-js1_5/GC/regress-203278-2: PASS || TIMEOUT
+ # BUG(1040): Allow this test to timeout.
+ 'js1_5/GC/regress-203278-2': [PASS, TIMEOUT],
+}], # 'arch == mipsel'
+]