# Copyright 2011 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
#       copyright notice, this list of conditions and the following
#       disclaimer in the documentation and/or other materials provided
#       with the distribution.
#     * Neither the name of Google Inc. nor the names of its
#       contributors may be used to endorse or promote products derived
#       from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# This file is up to date with respect to Mozilla's CVS repository as of
# 2010-06-29. 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 2010-06-29 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.
# --------------------------------------------------------------------

[
[ALWAYS, {
  ##################### 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],

  ################## TURBO-FAN FAILURES ###################

  # TODO(turbofan): These are all covered by mjsunit as well. Enable them once
  # we pass 'mjsunit' and 'webkit' with TurboFan.
  'js1_5/Regress/regress-80981': [PASS, NO_VARIANTS],

  # TODO(turbofan): Causes timeouts since top-level code is optimized.
  'ecma_3/Statements/regress-324650': [PASS, NO_VARIANTS],
  'ecma_3/Statements/regress-74474-002': [PASS, NO_VARIANTS],
  'ecma_3/Statements/regress-74474-003': [PASS, NO_VARIANTS],
  'js1_5/Regress/regress-111557': [PASS, NO_VARIANTS],
  'js1_5/Regress/regress-155081': [PASS, NO_VARIANTS],
  'js1_5/Regress/regress-155081-2': [PASS, NO_VARIANTS],
  'js1_5/Regress/regress-451322': [PASS, NO_VARIANTS],

  # TODO(turbofan): Large switch statements crash.
  'js1_5/Regress/regress-398085-01': [PASS, NO_VARIANTS],

  ############################ INVALID TESTS #############################

  # Function length properties are configurable in ES6
  'ecma/Array/15.4.4.3-1': [FAIL],
  'ecma/Array/15.4.4.4-1': [FAIL],
  'ecma/Array/15.4.4.4-2': [FAIL],
  'ecma/String/15.5.4.10-1': [FAIL],
  'ecma/String/15.5.4.11-1': [FAIL],
  'ecma/String/15.5.4.7-2': [FAIL],
  'ecma/String/15.5.4.8-1': [FAIL],
  'ecma/String/15.5.4.9-1': [FAIL],

  # Date.prototype is an Object, not a Date
  'ecma/Date/15.9.5': [FAIL],

  # In ES6, the completion value of a 0-iterations loop is 'undefined'.
  'ecma/Statements/12.6.3-2': [PASS, FAIL],

  # ES2015 ToLength semantics
  'ecma_3/RegExp/15.10.6.2-2': [FAIL],

  # Escaped keywords are early errors in ES6
  'ecma_3/Unicode/uc-003': [FAIL],

  # RegExp.multiline is not part of any ECMAScript specification, and is
  # slated for deprecation in Mozilla
  # (https://bugzilla.mozilla.org/show_bug.cgi?id=1220457)
  'js1_5/Regress/regress-418504': [FAIL],

  # ES2015 const redefinition throws, initializers are required, and no
  # global object properties are made, unlike Mozilla legacy const
  'js1_5/Regress/regress-103602': [FAIL],
  'js1_5/Regress/regress-321874': [FAIL],
  'js1_5/Regress/regress-383674': [FAIL],
  'js1_5/extensions/regress-452565': [FAIL],
  'js1_5/extensions/scope-001': [FAIL],
  # To add insult to injury, these tests time out in debug mode
  'js1_5/Regress/regress-360969-03': [FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
  'js1_5/Regress/regress-360969-04': [FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],

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

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

  # 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, NO_VARIANTS, FAIL]],

  # These tests use invalid LHS expressions in assignments.
  'js1_5/Regress/regress-319391': [SKIP],
  'js1_5/Regress/regress-350253': [SKIP],
  'js1_5/Regress/regress-462292': [SKIP],
  'js1_5/decompilation/regress-443071-01': [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': [SKIP],

  # 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': [SKIP],

  # 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': [SKIP],

  # 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': [SKIP],


  # Runs for too long: huge array with getters and setters. As it says
  # in the test: "This test will probably run out of memory".
  'js1_5/extensions/regress-345967': [SKIP],


  ##################### FLAKY TESTS #####################

  # These tests time out in debug mode but pass in product mode
  'js1_5/Regress/regress-360969-05': [PASS, ['mode == debug', TIMEOUT, NO_VARIANTS]],
  'js1_5/Regress/regress-360969-06': [PASS, ['mode == debug', TIMEOUT, NO_VARIANTS]],
  'js1_5/extensions/regress-365527': [PASS, SLOW, ['mode == debug', TIMEOUT, NO_VARIANTS]],

  '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, NO_VARIANTS]],

  # 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.
  # These date tests also fail in a time zone without daylight saving time.
  'ecma/Date/15.9.5.29-1': [PASS, FAIL],
  'ecma/Date/15.9.5.28-1': [PASS, FAIL],

  # 1050186: Arm/MIPS vm is broken; probably unrelated to dates
  'ecma/Array/15.4.4.5-3': [PASS, ['arch == arm or arch == mipsel or arch == mips', FAIL]],
  'ecma/Date/15.9.5.22-2': [PASS, ['arch == arm or arch == mipsel or arch == mips', 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, NO_VARIANTS],
  '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, NO_VARIANTS]],


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


  # 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, NO_VARIANTS]],


  # 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.
  # TODO(mstarzinger): Switch off TF on windows due to timeouts.
  'js1_5/extensions/regress-363258': [PASS, FAIL, ['system == windows', NO_VARIANTS]],


  # 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 execution time, flaky in debug mode.
  'js1_5/Array/regress-101964': [PASS, ['mode == debug', 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.

  # Any local 'arguments' variable should not be allowed to shadow the value
  # returned via the indirect 'arguments' property accessor.
  'js1_4/Functions/function-001': [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 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],

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


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

  #:=== 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'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.
  # TODO(yangguo): Hangs on complex regexp. Please investigate if this gives
  # any useful coverage.
  'ecma_3/RegExp/regress-330684': [SKIP],


  # 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.
  # TODO(yangguo): Hangs on complex regexp. Please investigate if this gives
  # any useful coverage.
  'ecma_3/RegExp/regress-307456': [SKIP],


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


  # BUG(v8:3767)
  'js1_5/Regress/regress-280769-2': [PASS, ['arch == arm64', SKIP]],

  # Regexps too big.
  'js1_5/Regress/regress-280769-1': [SKIP],
  'js1_5/Regress/regress-280769-5': [SKIP],


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


  # 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-313967-01': [FAIL_OK],
  'js1_5/Regress/regress-313967-02': [FAIL_OK],
  'js1_5/extensions/regress-459606': [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],


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


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

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


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

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

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


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


  # Expects top level arguments (passed on command line?) to be
  # the empty string?
  'js1_5/Regress/regress-336100': [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],


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


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


  # Negative hexadecimal literals are parsed as NaN. This test is outdated.
  'ecma/TypeConversion/9.3.1-3': [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 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, NO_VARIANTS]],

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

  # https://bugs.chromium.org/p/v8/issues/detail?id=4647
  'ecma_3/FunExpr/fe-001': [FAIL_OK],

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

  # Uses non ES5 compatible syntax for setter
  'js1_5/extensions/regress-367501-01': [FAIL_OK],
  'js1_5/extensions/regress-367501-02': [FAIL_OK],
  'js1_5/extensions/regress-367501-03': [FAIL_OK],
  'js1_5/extensions/regress-367501-04': [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],

  # TODO(yangguo): Both tests have complex regular expressions (nested (.*)*
  # and the like). Please investigate if these tests provide any coverage.
  # Furthermore, an exception is expected which is not thrown by v8.
  'js1_5/extensions/regress-330569': [SKIP],
  'js1_5/extensions/regress-351448': [SKIP],
  # 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, NO_VARIANTS]],

  ##################### 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],
  'js1_5/decompilation/regress-460870': [PASS, FAIL],
}],  # ALWAYS


['no_i18n == True and mode == debug', {
  # Tests too slow for no18n debug.
  'ecma_3/Statements/regress-302439': [PASS, FAST_VARIANTS],
  'js1_5/Regress/regress-98901': [SKIP],
  'ecma_3/RegExp/perlstress-001': [PASS, FAST_VARIANTS],
  'js1_5/extensions/regress-311161': [FAIL_OK, FAST_VARIANTS],
}],  # 'no_i18n == True and mode == debug'


['arch == arm or arch == arm64', {

  # 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, NO_VARIANTS],
}],  # 'arch == arm or arch == arm64'


['arch ==  arm64', {
  # BUG(v8:3503): Times out in debug mode.
  'js1_5/Regress/regress-280769-2': [PASS, FAIL, ['mode == debug', SKIP]],
  # BUG(v8:3716): Flaky failure.
  'ecma/Date/15.9.5.26-1': [PASS, FAIL],
}],  # 'arch ==  arm64'


['arch == mipsel or arch == mips64el or arch == mips64', {

  # 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, NO_VARIANTS],
}],  # 'arch == mipsel or arch == mips64el or arch == mips64'

['arch == mipsel and simulator_run == True', {
  # Crashes due to C stack overflow.
  'js1_5/extensions/regress-355497': [SKIP],
}], # 'arch == mipsel and simulator_run == True'

['arch == mips64el and simulator_run == True', {
  'js1_5/extensions/regress-355497': [FAIL_OK, 'Flags: --sim-stack-size=512'],
}], # 'arch == mips64el and simulator_run == True'

['arch == mips', {

  # 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, NO_VARIANTS],
}],  # 'arch == mips'

['arch == arm and simulator_run == True', {

  #BUG(3837): Crashes due to C stack overflow.
  'js1_5/extensions/regress-355497': [SKIP],
}],  # 'arch == arm and simulator_run == True'

['arch == arm64 and simulator_run == True', {

  'js1_5/GC/regress-203278-2': [SKIP],

  # These tests time out in debug mode but pass in product mode
  'js1_5/Regress/regress-360969-03': [SKIP],
  'js1_5/Regress/regress-360969-04': [SKIP],
  'js1_5/Regress/regress-360969-05': [SKIP],
  'js1_5/Regress/regress-360969-06': [SKIP],
  'js1_5/extensions/regress-365527': [SKIP],
  'ecma/Date/15.9.5.10-2': [SKIP],
  'js1_5/Regress/regress-416628': [SKIP],
  'js1_5/extensions/regress-371636': [SKIP],
  'ecma_3/RegExp/regress-330684': [SKIP],
  'ecma_3/RegExp/regress-307456': [SKIP],
  'js1_5/Regress/regress-303213': [SKIP],
  'js1_5/extensions/regress-330569': [SKIP],
  'js1_5/extensions/regress-351448': [SKIP],
  'js1_5/extensions/regress-336410-1': [SKIP],

  #BUG(3152): Avoid C stack overflow.
  'js1_5/extensions/regress-355497': [FAIL_OK, 'Flags: --sim-stack-size=512'],
}],  # 'arch == arm64 and simulator_run == True'
]
