# 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.

# This file is up to date with respect to Mozilla's CVS repository as of
# 2008-09-02.  If new tests are added to Mozilla's CVS it may need to be
# updated.

# To get the mozilla tests:
# cd /path/to/checkout/test/mozilla
# rm -rf data
# cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -D 2008-09-02 mozilla/js/tests
# mv mozilla/js/tests data
# rm -rf mozilla

# --------------------------------------------------------------------
# If you add a test case to this file, please try to provide
# an explanation of why the test fails; this may ease future
# debugging.
# --------------------------------------------------------------------

prefix mozilla
def FAIL_OK = FAIL, OKAY

##################### 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


# 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


##################### 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 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

# 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 #####################

# 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 || FAIL if $mode == debug
js1_5/Regress/regress-203278-1: PASS || FAIL if $mode == debug
js1_5/GC/regress-203278-2: 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 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

# 1026139: These date tests fail on arm
ecma/Date/15.9.5.29-1: PASS || ($ARM && FAIL)
ecma/Date/15.9.5.34-1: PASS || ($ARM && FAIL)
ecma/Date/15.9.5.28-1: PASS || ($ARM && FAIL)

# 1050186: Arm vm is broken; probably unrelated to dates
ecma/Array/15.4.4.5-3: PASS || ($ARM && FAIL)
ecma/Date/15.9.5.22-2: PASS || ($ARM && 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


# 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 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


# 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-290575: PASS || FAIL
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 || 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


# 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



##################### 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.

# 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

# Creates a linked list of arrays until we run out of memory or timeout.
js1_5/Regress/regress-312588: FAIL || TIMEOUT


# 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

# Length of objects whose prototype chain includes a function
ecma_3/Function/regress-313570: FAIL_OK

# toPrecision argument restricted to range 1..21 in JSC/V8
js1_5/Regress/regress-452346: FAIL_OK

# Array.prototype.slice with zero arguments return undefined in JSC/V8, 
# empty array in Spider/TraceMonkey.
js1_5/Array/regress-451483: FAIL_OK


#:=== RegExp:=== 
# To be compatible with JSC we silently ignore flags that do not make
# sense.  This test expects us to throw exceptions.  
ecma_3/RegExp/regress-57631: 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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

# 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


# 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


# 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/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
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-460116-03: FAIL_OK
js1_5/decompilation/regress-460501: 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


# Tests that use __count__.  Non-ECMA.
js1_5/extensions/regress-434837-01: 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


# The spec specifies reverse evaluation order for < and >=.
# See section 11.8.2 and 11.8.5.
# We implement the spec here but the test tests the more straigtforward order.
ecma_3/Operators/order-01: 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


# 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


# 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


# 'native' *is* a keyword in V8.
js1_5/Regress/regress-240317: 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


# 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


# 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


# 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


# 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


# 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


# 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 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: 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


# Cannot call strings as functions. Expects not to crash.
js1_5/Regress/regress-417893: FAIL_OK



##################### 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 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 'delete arguments[i]' does not disconnect the
# argument from the arguments array.  See issue #900066.
ecma_3/Function/regress-137181: FAIL


# 'export' and 'import' are not keywords in V8.
ecma_2/Exceptions/lexical-010: FAIL
ecma_2/Exceptions/lexical-022: FAIL


# Requires Mozilla-specific strict mode.
ecma_2/Exceptions/lexical-011: FAIL
ecma_2/Exceptions/lexical-014: FAIL
ecma_2/Exceptions/lexical-016: FAIL
ecma_2/Exceptions/lexical-021: FAIL
ecma_2/LexicalConventions/keywords-001: FAIL
js1_5/Regress/regress-306633: 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


# 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

##################### 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-341956-02: FAIL_OK
js1_5/extensions/regress-341956-03: 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-352372: 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-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-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/scope-001: 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
js1_5/extensions/regress-342960: FAIL_OK || TIMEOUT if $mode == debug
# 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)



##################### DECOMPILATION TESTS #####################

# 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


# These tests take an unreasonable amount of time so we skip them
# in fast mode.

js1_5/Regress/regress-312588: TIMEOUT || SKIP if $FAST == yes
js1_5/Regress/regress-271716-n: PASS || SKIP if $FAST == yes


[ $FAST == yes && $ARCH == arm ]

# In fast mode on arm we try to skip all tests that would time out,
# since running the tests takes so long in the first place.

js1_5/Regress/regress-280769-2: SKIP
js1_5/Regress/regress-280769-3: SKIP
js1_5/Regress/regress-244470: SKIP
js1_5/Regress/regress-203278-1: SKIP
js1_5/Regress/regress-290575: SKIP
js1_5/Regress/regress-159334: SKIP
js1_5/Regress/regress-321971: SKIP
js1_5/Regress/regress-347306-01: SKIP
js1_5/Regress/regress-280769-1: SKIP
js1_5/Regress/regress-280769-5: SKIP
js1_5/GC/regress-306788: SKIP
js1_5/GC/regress-203278-2: SKIP
js1_5/GC/regress-278725: SKIP
js1_5/GC/regress-203278-3: SKIP
js1_5/GC/regress-311497: SKIP
js1_5/Array/regress-99120-02: SKIP
ecma/Date/15.9.5.22-1: SKIP
ecma/Date/15.9.5.20: SKIP
ecma/Date/15.9.5.12-2: SKIP
ecma/Date/15.9.5.8: SKIP
ecma/Date/15.9.5.9: SKIP
ecma/Date/15.9.5.10-2: SKIP
ecma/Date/15.9.5.11-2: SKIP
ecma/Expressions/11.7.2: SKIP
ecma/Expressions/11.10-2: SKIP
ecma/Expressions/11.7.3: SKIP
ecma/Expressions/11.10-3: SKIP
ecma/Expressions/11.7.1: SKIP
ecma_3/RegExp/regress-209067: SKIP
