Home | History | Annotate | Download | only in mozilla
      1 # Copyright 2011 the V8 project authors. All rights reserved.
      2 # Redistribution and use in source and binary forms, with or without
      3 # modification, are permitted provided that the following conditions are
      4 # met:
      5 #
      6 #     * Redistributions of source code must retain the above copyright
      7 #       notice, this list of conditions and the following disclaimer.
      8 #     * Redistributions in binary form must reproduce the above
      9 #       copyright notice, this list of conditions and the following
     10 #       disclaimer in the documentation and/or other materials provided
     11 #       with the distribution.
     12 #     * Neither the name of Google Inc. nor the names of its
     13 #       contributors may be used to endorse or promote products derived
     14 #       from this software without specific prior written permission.
     15 #
     16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     17 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     18 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     19 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     20 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     21 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     22 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 
     28 # This file is up to date with respect to Mozilla's CVS repository as of
     29 # 2010-06-29. If new tests are added to Mozilla's CVS it may need to be
     30 # updated.
     31 
     32 # To get the mozilla tests:
     33 # cd /path/to/checkout/test/mozilla
     34 # rm -rf data
     35 # cvs -d :pserver:anonymous (a] cvs-mirror.mozilla.org:/cvsroot co -D 2010-06-29 mozilla/js/tests
     36 # mv mozilla/js/tests data
     37 # rm -rf mozilla
     38 
     39 # --------------------------------------------------------------------
     40 # If you add a test case to this file, please try to provide
     41 # an explanation of why the test fails; this may ease future
     42 # debugging.
     43 # --------------------------------------------------------------------
     44 
     45 [
     46 [ALWAYS, {
     47   ##################### NEEDS INVESTIGATION ##############
     48 
     49   # BUG(2893): These tests started to fail after i18n support was turned on.
     50   # Need to investigate why.
     51   'ecma_3/Number/15.7.4.3-02': [PASS, FAIL],
     52   'ecma_3/Date/15.9.5.5-02': [PASS, FAIL],
     53 
     54   ################## TURBO-FAN FAILURES ###################
     55 
     56   # TODO(turbofan): These are all covered by mjsunit as well. Enable them once
     57   # we pass 'mjsunit' and 'webkit' with TurboFan.
     58   'js1_5/Regress/regress-80981': [PASS, NO_VARIANTS],
     59 
     60   # TODO(turbofan): Causes timeouts since top-level code is optimized.
     61   'ecma_3/Statements/regress-324650': [PASS, NO_VARIANTS],
     62   'ecma_3/Statements/regress-74474-002': [PASS, NO_VARIANTS],
     63   'ecma_3/Statements/regress-74474-003': [PASS, NO_VARIANTS],
     64   'js1_5/Regress/regress-111557': [PASS, NO_VARIANTS],
     65   'js1_5/Regress/regress-155081': [PASS, NO_VARIANTS],
     66   'js1_5/Regress/regress-155081-2': [PASS, NO_VARIANTS],
     67   'js1_5/Regress/regress-451322': [PASS, NO_VARIANTS],
     68 
     69   # TODO(turbofan): Large switch statements crash.
     70   'js1_5/Regress/regress-398085-01': [PASS, NO_VARIANTS],
     71 
     72   ############################ INVALID TESTS #############################
     73 
     74   # Function length properties are configurable in ES6
     75   'ecma/Array/15.4.4.3-1': [FAIL],
     76   'ecma/Array/15.4.4.4-1': [FAIL],
     77   'ecma/Array/15.4.4.4-2': [FAIL],
     78   'ecma/String/15.5.4.10-1': [FAIL],
     79   'ecma/String/15.5.4.11-1': [FAIL],
     80   'ecma/String/15.5.4.7-2': [FAIL],
     81   'ecma/String/15.5.4.8-1': [FAIL],
     82   'ecma/String/15.5.4.9-1': [FAIL],
     83 
     84   # Date.prototype is an Object, not a Date
     85   'ecma/Date/15.9.5': [FAIL],
     86 
     87   # In ES6, the completion value of a 0-iterations loop is 'undefined'.
     88   'ecma/Statements/12.6.3-2': [PASS, FAIL],
     89 
     90   # ES2015 ToLength semantics
     91   'ecma_3/RegExp/15.10.6.2-2': [FAIL],
     92 
     93   # Escaped keywords are early errors in ES6
     94   'ecma_3/Unicode/uc-003': [FAIL],
     95 
     96   # RegExp.multiline is not part of any ECMAScript specification, and is
     97   # slated for deprecation in Mozilla
     98   # (https://bugzilla.mozilla.org/show_bug.cgi?id=1220457)
     99   'js1_5/Regress/regress-418504': [FAIL],
    100 
    101   # ES2015 const redefinition throws, initializers are required, and no
    102   # global object properties are made, unlike Mozilla legacy const
    103   'js1_5/Regress/regress-103602': [FAIL],
    104   'js1_5/Regress/regress-321874': [FAIL],
    105   'js1_5/Regress/regress-383674': [FAIL],
    106   'js1_5/extensions/regress-452565': [FAIL],
    107   'js1_5/extensions/scope-001': [FAIL],
    108   # To add insult to injury, these tests time out in debug mode
    109   'js1_5/Regress/regress-360969-03': [FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    110   'js1_5/Regress/regress-360969-04': [FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    111 
    112   ##################### SKIPPED TESTS #####################
    113 
    114   # This test checks that we behave properly in an out-of-memory
    115   # situation.  The test fails in V8 with an exception and takes a long
    116   # time to do so.
    117   'js1_5/Regress/regress-271716-n': [SKIP],
    118 
    119   # BUG(960): This test has an insane amount of output when it times out,
    120   # messing up ability to see other failures on the waterfall.
    121   'js1_5/extensions/regress-342960': [SKIP],
    122 
    123   # This test uses a unitialized variable. A Bug has been filed:
    124   # https://bugzilla.mozilla.org/show_bug.cgi?id=575575
    125   'js1_5/Array/regress-465980-02': [SKIP],
    126 
    127   # These tests are simply wrong (i.e., they do not test what they intend
    128   # to test).
    129   # In particular, these two compare numbers to NaN with != in the current
    130   # version of the Mozilla tests. This is *fixed* in a later version.
    131   # The tests should be re-enabled when switching to a new version.
    132   'ecma_3/Date/15.9.3.2-1': [SKIP],
    133   'js1_2/function/Number': [SKIP],
    134 
    135   # TODO(2018): Temporarily allow timeout in debug mode.
    136   'js1_5/GC/regress-203278-2': [PASS, ['mode == debug', TIMEOUT, NO_VARIANTS, FAIL]],
    137 
    138   # These tests use invalid LHS expressions in assignments.
    139   'js1_5/Regress/regress-319391': [SKIP],
    140   'js1_5/Regress/regress-350253': [SKIP],
    141   'js1_5/Regress/regress-462292': [SKIP],
    142   'js1_5/decompilation/regress-443071-01': [SKIP],
    143 
    144   ##################### SLOW TESTS #####################
    145 
    146   # This takes a long time to run (~100 seconds). It should only be run
    147   # by the really patient.
    148   'js1_5/GC/regress-324278': [SKIP],
    149 
    150   # This takes a long time to run because our indexOf operation is
    151   # pretty slow - it causes a lot of GCs; see issue
    152   # #926379. We could consider marking this SKIP because it takes a
    153   # while to run to completion.
    154   'js1_5/GC/regress-338653': [SKIP],
    155 
    156   # This test is designed to run until it runs out of memory. This takes
    157   # a very long time because it builds strings character by character
    158   # and compiles a lot of regular expressions. We could consider marking
    159   # this SKIP because it takes a while to run to completion.
    160   'js1_5/GC/regress-346794': [SKIP],
    161 
    162   # Runs out of memory while trying to build huge string of 'x'
    163   # characters. This takes a long time to run (~32 seconds).
    164   'js1_5/GC/regress-348532': [SKIP],
    165 
    166 
    167   # Runs for too long: huge array with getters and setters. As it says
    168   # in the test: "This test will probably run out of memory".
    169   'js1_5/extensions/regress-345967': [SKIP],
    170 
    171 
    172   ##################### FLAKY TESTS #####################
    173 
    174   # These tests time out in debug mode but pass in product mode
    175   'js1_5/Regress/regress-360969-05': [PASS, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    176   'js1_5/Regress/regress-360969-06': [PASS, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    177   'js1_5/extensions/regress-365527': [PASS, SLOW, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    178 
    179   'js1_5/Regress/regress-280769-3': [PASS, ['mode == debug', FAIL]],
    180   'js1_5/Regress/regress-203278-1': [PASS, ['mode == debug', FAIL]],
    181   'js1_5/Regress/regress-244470': [PASS, ['mode == debug', FAIL]],
    182   'ecma_3/RegExp/regress-209067': [PASS, ['mode == debug', FAIL]],
    183   'js1_5/GC/regress-278725': [PASS, ['mode == debug', FAIL]],
    184   # http://b/issue?id=1206983
    185   'js1_5/Regress/regress-367561-03': [PASS, ['mode == debug', FAIL]],
    186   'ecma/Date/15.9.5.10-2': [PASS, FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    187 
    188   # These tests create two Date objects just after each other and
    189   # expects them to match.  Sometimes this happens on the border
    190   # between one second and the next.
    191   'ecma/Date/15.9.2.1': [PASS, FAIL],
    192   'ecma/Date/15.9.2.2-1': [PASS, FAIL],
    193   'ecma/Date/15.9.2.2-2': [PASS, FAIL],
    194   'ecma/Date/15.9.2.2-3': [PASS, FAIL],
    195   'ecma/Date/15.9.2.2-4': [PASS, FAIL],
    196   'ecma/Date/15.9.2.2-5': [PASS, FAIL],
    197   'ecma/Date/15.9.2.2-6': [PASS, FAIL],
    198 
    199   # 1026139: These date tests fail on arm and mips.
    200   # These date tests also fail in a time zone without daylight saving time.
    201   'ecma/Date/15.9.5.29-1': [PASS, FAIL],
    202   'ecma/Date/15.9.5.28-1': [PASS, FAIL],
    203 
    204   # 1050186: Arm/MIPS vm is broken; probably unrelated to dates
    205   'ecma/Array/15.4.4.5-3': [PASS, ['arch == arm or arch == mipsel or arch == mips', FAIL]],
    206   'ecma/Date/15.9.5.22-2': [PASS, ['arch == arm or arch == mipsel or arch == mips', FAIL]],
    207 
    208   # Flaky test that fails due to what appears to be a bug in the test.
    209   # Occurs depending on current time
    210   'ecma/Date/15.9.5.8': [PASS, FAIL],
    211 
    212   # Severely brain-damaged test. Access to local variables must not
    213   # be more than 2.5 times faster than access to global variables? WTF?
    214   'js1_5/Regress/regress-169559': [PASS, FAIL],
    215 
    216 
    217   # Test that rely on specific timezone (not working in Denmark).
    218   'js1_5/Regress/regress-58116': [PASS, FAIL],
    219 
    220 
    221   # Flaky random() test. Tests the distribution of calls to Math.random().
    222   'js1_5/Regress/regress-211590': [PASS, FAIL],
    223 
    224 
    225   # Flaky tests; expect BigO-order computations to yield 1, but the code
    226   # cannot handle outliers. See bug #925864.
    227   'ecma_3/RegExp/regress-311414': [PASS, FAIL],
    228   'ecma_3/RegExp/regress-289669': [PASS, FAIL],
    229   'js1_5/String/regress-314890': [PASS, FAIL],
    230   'js1_5/String/regress-56940-01': [PASS, FAIL],
    231   'js1_5/String/regress-56940-02': [PASS, FAIL],
    232   'js1_5/String/regress-157334-01': [PASS, FAIL],
    233   'js1_5/String/regress-322772': [PASS, FAIL],
    234   'js1_5/Array/regress-99120-01': [PASS, FAIL, NO_VARIANTS],
    235   'js1_5/Array/regress-99120-02': [PASS, FAIL],
    236   'js1_5/Regress/regress-347306-01': [PASS, FAIL],
    237   'js1_5/Regress/regress-416628': [PASS, FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    238 
    239 
    240   # The following two tests assume that daylight savings time starts first
    241   # Sunday in April. This is not true when executing the tests outside
    242   # California! In Denmark the adjustment starts one week earlier.
    243   # Tests based on shell that use dates in this gap are flaky.
    244   'ecma/Date/15.9.5.10-1': [PASS, FAIL],
    245   'ecma/Date/15.9.5.12-1': [PASS, FAIL],
    246   'ecma/Date/15.9.5.14': [PASS, FAIL],
    247   'ecma/Date/15.9.5.34-1': [PASS, FAIL],
    248 
    249 
    250   # These tests sometimes pass (in particular on Windows). They build up
    251   # a lot of stuff on the stack, which normally causes a stack overflow,
    252   # but sometimes it makes it through?
    253   'js1_5/Regress/regress-98901': [PASS, FAIL],
    254 
    255 
    256   # Tests that sorting arrays of ints is less than 3 times as fast
    257   # as sorting arrays of strings.
    258   'js1_5/extensions/regress-371636': [PASS, FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    259 
    260 
    261   # Tests depend on GC timings. Inherently flaky.
    262   'js1_5/GC/regress-383269-01': [PASS, FAIL],
    263   'js1_5/GC/regress-383269-02': [PASS, FAIL],
    264   'js1_5/Regress/regress-404755': [PASS, FAIL],
    265 
    266 
    267   # Test that depends on timer resolution. Fails every now and then
    268   # if we're unlucky enough to get a context switch at a bad time.
    269   # TODO(mstarzinger): Switch off TF on windows due to timeouts.
    270   'js1_5/extensions/regress-363258': [PASS, FAIL, ['system == windows', NO_VARIANTS]],
    271 
    272 
    273   # Test that assumes specific runtime for a regexp, flaky in debug mode.
    274   'ecma_3/RegExp/regress-85721': [PASS, ['mode == debug', FAIL]],
    275 
    276 
    277   # Test that assumes specific execution time, flaky in debug mode.
    278   'js1_5/Array/regress-101964': [PASS, ['mode == debug', FAIL]],
    279 
    280 
    281   ##################### INCOMPATIBLE TESTS #####################
    282 
    283   # This section is for tests that fail in both V8 and JSC.  Thus they
    284   # have been determined to be incompatible between Mozilla and V8/JSC.
    285 
    286   # Any local 'arguments' variable should not be allowed to shadow the value
    287   # returned via the indirect 'arguments' property accessor.
    288   'js1_4/Functions/function-001': [FAIL_OK],
    289 
    290   # toPrecision argument restricted to range 1..21 in JSC/V8 and ECMA-262
    291   'js1_5/Regress/regress-452346': [FAIL_OK],
    292 
    293   # Fail because it calls builtins as functions and do not expect the
    294   # builtin to have undefined as the receiver.
    295   'ecma/String/15.5.4.6-2': [FAIL_OK],
    296 
    297   # Fail because it expects String.prototype.split to distinguish whether
    298   # separator was undefined or not passed at all.
    299   'ecma/String/15.5.4.8-2': [FAIL_OK],
    300 
    301   # Fail because of toLowerCase and toUpperCase conversion.
    302   'ecma/String/15.5.4.11-2': [FAIL_OK],
    303   'ecma/String/15.5.4.11-5': [FAIL_OK],
    304   'ecma/String/15.5.4.12-1': [FAIL_OK],
    305   'ecma/String/15.5.4.12-4': [FAIL_OK],
    306 
    307   # This test uses an older version of the unicode standard that fails
    308   # us because we correctly convert the armenian small ligature ech-yiwn
    309   # to the two upper-case characters ECH and YIWN, whereas the older
    310   # unicode version converts it to itself.
    311   'ecma/String/15.5.4.12-5': [FAIL_OK],
    312 
    313   # Creates a linked list of arrays until we run out of memory or timeout.
    314   'js1_5/Regress/regress-312588': [SKIP],
    315 
    316 
    317   # Runs out of memory because it compiles huge functions.
    318   'js1_5/Function/regress-338001': [FAIL_OK],
    319   'js1_5/Function/regress-338121-01': [FAIL_OK],
    320   'js1_5/Function/regress-338121-02': [FAIL_OK],
    321   'js1_5/Function/regress-338121-03': [FAIL_OK],
    322 
    323   # Expectes 'prototype' property of functions to be enumerable.
    324   'js1_5/Function/10.1.6-01': [FAIL_OK],
    325 
    326   #:=== RegExp:===
    327   # We don't match the syntax error message of Mozilla for invalid
    328   # RegExp flags.
    329   'ecma_3/RegExp/15.10.4.1-6': [FAIL_OK],
    330 
    331   # PCRE's match limit is reached.  SpiderMonkey hangs on the first one,
    332   # JSC returns true somehow.  Maybe they up the match limit?  There is
    333   # an open V8 bug 676063 about this.
    334   # TODO(yangguo): Hangs on complex regexp. Please investigate if this gives
    335   # any useful coverage.
    336   'ecma_3/RegExp/regress-330684': [SKIP],
    337 
    338 
    339   # This test contains a regexp that runs exponentially long.  Spidermonkey
    340   # standalone will hang, though apparently inside Firefox it will trigger a
    341   # long-running-script timeout.  JSCRE passes by hitting the matchLimit and
    342   # just pretending that an exhaustive search found no match.
    343   # TODO(yangguo): Hangs on complex regexp. Please investigate if this gives
    344   # any useful coverage.
    345   'ecma_3/RegExp/regress-307456': [SKIP],
    346 
    347 
    348   # We do not detect overflow in bounds for back references and {}
    349   # quantifiers.  Might fix by parsing numbers differently?
    350   'js1_5/Regress/regress-230216-2': [FAIL_OK],
    351 
    352 
    353   # BUG(v8:3767)
    354   'js1_5/Regress/regress-280769-2': [PASS, ['arch == arm64', SKIP]],
    355 
    356   # Regexps too big.
    357   'js1_5/Regress/regress-280769-1': [SKIP],
    358   'js1_5/Regress/regress-280769-5': [SKIP],
    359 
    360 
    361   # We do not support static RegExp.multiline - should we?.
    362   'js1_2/regexp/RegExp_multiline': [FAIL_OK],
    363   'js1_2/regexp/RegExp_multiline_as_array': [FAIL_OK],
    364   'js1_2/regexp/beginLine': [FAIL_OK],
    365   'js1_2/regexp/endLine': [FAIL_OK],
    366 
    367   # We no longer let calls to test and exec with no argument implicitly
    368   # use the previous input.
    369   'js1_2/regexp/RegExp_input': [FAIL_OK],
    370   'js1_2/regexp/RegExp_input_as_array': [FAIL_OK],
    371 
    372 
    373   # To be compatible with safari typeof a regexp yields 'function';
    374   # in firefox it yields 'object'.
    375   'js1_2/function/regexparg-1': [FAIL_OK],
    376 
    377 
    378   # Date trouble?
    379   'js1_5/Date/regress-301738-02': [FAIL_OK],
    380 
    381 
    382   # This test fails for all browsers on in the CET timezone.
    383   'ecma/Date/15.9.5.35-1': [PASS, FAIL_OK],
    384 
    385 
    386   # Spidermonkey allows stuff in parenthesis directly after the minutes
    387   # in a date.  JSC does not, so we don't either.
    388   'js1_5/Date/regress-309925-02': [FAIL_OK],
    389 
    390 
    391   # Print string after deleting array element?
    392   'js1_5/Expressions/regress-96526-delelem': [FAIL_OK],
    393 
    394 
    395   # Stack overflows should be InternalError: too much recursion?
    396   'js1_5/Regress/regress-234389': [FAIL_OK],
    397 
    398 
    399   # This may very well be a bogus test. I'm not sure yet.
    400   'js1_5/Regress/regress-320119': [FAIL_OK],
    401 
    402 
    403   # No support for toSource().
    404   'js1_5/Regress/regress-313967-01': [FAIL_OK],
    405   'js1_5/Regress/regress-313967-02': [FAIL_OK],
    406   'js1_5/extensions/regress-459606': [FAIL_OK],
    407 
    408   # This fails because we don't have stack space for Function.prototype.apply
    409   # with very large numbers of arguments.  The test uses 2^24 arguments.
    410   'js1_5/Array/regress-350256-03': [FAIL_OK],
    411 
    412 
    413   # Extra arguments not handled properly in String.prototype.match
    414   'js1_5/Regress/regress-179524': [FAIL_OK],
    415 
    416 
    417   # Uncategorized failures. Please help categorize (or fix) these failures.
    418   'js1_5/Regress/regress-172699': [FAIL_OK],
    419 
    420 
    421   # Assumes that the prototype of a function is enumerable. Non-ECMA,
    422   # see section 15.3.3.1, page 86.
    423   'ecma/GlobalObject/15.1.2.2-1': [FAIL_OK],
    424   'ecma/GlobalObject/15.1.2.3-1': [FAIL_OK],
    425   'ecma/GlobalObject/15.1.2.4': [FAIL_OK],
    426   'ecma/GlobalObject/15.1.2.5-1': [FAIL_OK],
    427   'ecma/GlobalObject/15.1.2.6': [FAIL_OK],
    428   'ecma/GlobalObject/15.1.2.7': [FAIL_OK],
    429 
    430 
    431   # Leading zero no longer signal octal numbers (ECMA-262 Annex E 15.1.2.2).
    432   'ecma/GlobalObject/15.1.2.2-2': [FAIL_OK],
    433 
    434 
    435   # Tests that rely on specific details of function decompilation or
    436   # print strings for errors. Non-ECMA behavior.
    437   'js1_2/function/tostring-2': [FAIL_OK],
    438   'js1_2/Objects/toString-001': [FAIL_OK],
    439   'js1_5/LexicalConventions/regress-469940': [FAIL_OK],
    440   'js1_5/Exceptions/regress-332472': [FAIL_OK],
    441   'js1_5/Regress/regress-173067': [FAIL_OK],
    442   'js1_5/Regress/regress-328664': [FAIL_OK],
    443   'js1_5/Regress/regress-252892': [FAIL_OK],
    444   'js1_5/Regress/regress-352208': [FAIL_OK],
    445   'ecma_3/Array/15.4.5.1-01': [FAIL_OK],
    446   'ecma_3/Array/regress-387501': [FAIL_OK],
    447   'ecma_3/LexicalConventions/7.9.1': [FAIL_OK],
    448   'ecma_3/RegExp/regress-375711': [FAIL_OK],
    449   'ecma_3/Unicode/regress-352044-01': [FAIL_OK],
    450   'ecma_3/extensions/regress-274152': [FAIL_OK],
    451   'js1_5/Regress/regress-372364': [FAIL_OK],
    452   'js1_5/Regress/regress-420919': [FAIL_OK],
    453   'js1_5/Regress/regress-422348': [FAIL_OK],
    454   'js1_5/Regress/regress-410852': [FAIL_OK],
    455   'ecma_3/RegExp/regress-375715-04': [FAIL_OK],
    456   'js1_5/decompilation/regress-456964-01': [FAIL_OK],
    457   'js1_5/decompilation/regress-437288-02': [FAIL_OK],
    458   'js1_5/decompilation/regress-457824': [FAIL_OK],
    459   'js1_5/decompilation/regress-460116-01': [FAIL_OK],
    460   'js1_5/decompilation/regress-460116-02': [FAIL_OK],
    461   'js1_5/decompilation/regress-460501': [FAIL_OK],
    462   'js1_5/decompilation/regress-460116-03': [FAIL_OK],
    463   'js1_5/decompilation/regress-461110': [FAIL_OK],
    464 
    465 
    466   # Tests that use uneval.  Non-ECMA.
    467   'js1_5/GC/regress-418128': [FAIL_OK],
    468   'js1_5/extensions/regress-465276': [FAIL_OK],
    469   'js1_5/Error/regress-465377': [FAIL_OK],
    470 
    471   # Tests that use the watch method.  Non-ECMA.
    472   'js1_5/extensions/regress-435345-01': [FAIL_OK],
    473   'js1_5/extensions/regress-455413': [FAIL_OK],
    474 
    475 
    476   # Uses Mozilla-specific QName, XML, XMLList and Iterator.
    477   'js1_5/Regress/regress-407323': [FAIL_OK],
    478   'js1_5/Regress/regress-407957': [FAIL_OK],
    479 
    480 
    481   # Relies on JavaScript 1.2 / 1.3 deprecated features.
    482   'js1_2/function/String': [FAIL_OK],
    483   'js1_2/operator/equality': [FAIL_OK],
    484   'js1_2/version120/boolean-001': [FAIL_OK],
    485   'js1_2/String/concat': [FAIL_OK],
    486   'js1_2/function/Function_object': [FAIL_OK],
    487   'js1_2/function/tostring-1': [FAIL_OK],
    488   'js1_2/version120/regress-99663': [FAIL_OK],
    489   'js1_2/regexp/RegExp_lastIndex': [FAIL_OK],
    490   'js1_2/regexp/string_split': [FAIL_OK],
    491 
    492 
    493   # RegExps are not callable.
    494   'js1_2/regexp/simple_form': [FAIL_OK],
    495   'js1_2/regexp/regress-6359': [FAIL_OK],
    496   'js1_2/regexp/regress-9141': [FAIL_OK],
    497   'js1_5/Regress/regress-224956': [FAIL_OK],
    498   'js1_5/Regress/regress-325925': [FAIL_OK],
    499   'ecma_2/RegExp/regress-001': [FAIL_OK],
    500 
    501   # We do not check for bad surrogate pairs when quoting strings.
    502   'js1_5/Regress/regress-315974': [FAIL_OK],
    503 
    504 
    505   # Use unsupported "watch".
    506   'js1_5/Regress/regress-213482': [FAIL_OK],
    507   'js1_5/Regress/regress-240577': [FAIL_OK],
    508   'js1_5/Regress/regress-355344': [FAIL_OK],
    509   'js1_5/Object/regress-362872-01': [FAIL_OK],
    510   'js1_5/Object/regress-362872-02': [FAIL_OK],
    511   'js1_5/Regress/regress-361467': [FAIL_OK],
    512   'js1_5/Regress/regress-385393-06': [FAIL_OK],
    513   'js1_5/Regress/regress-506567': [FAIL_OK],
    514 
    515 
    516   # Use special Mozilla getter/setter syntax
    517   'js1_5/Regress/regress-354924': [FAIL_OK],
    518   'js1_5/Regress/regress-355341': [FAIL_OK],
    519   'js1_5/GC/regress-316885-01': [FAIL_OK],
    520   'js1_5/GetSet/getset-002': [FAIL_OK],
    521   'js1_5/GetSet/regress-353264': [FAIL_OK],
    522   'js1_5/Regress/regress-361617': [FAIL_OK],
    523   'js1_5/Regress/regress-362583': [FAIL_OK],
    524   'js1_5/extensions/regress-356378': [FAIL_OK],
    525   'js1_5/extensions/regress-452178': [FAIL_OK],
    526 
    527 
    528   # Requires Mozilla-specific strict mode or options() function.
    529   'ecma_3/Object/8.6.1-01': [FAIL_OK],
    530   'js1_5/Exceptions/regress-315147': [FAIL_OK],
    531   'js1_5/Regress/regress-106244': [FAIL_OK],
    532   'js1_5/Regress/regress-317533': [FAIL_OK],
    533   'js1_5/Regress/regress-323314-1': [FAIL_OK],
    534   'js1_5/Regress/regress-352197': [FAIL_OK],
    535 
    536 
    537   # Equivalent to assert(false).
    538   'ecma_2/RegExp/exec-001': [FAIL_OK],
    539   'ecma_2/String/replace-001': [FAIL_OK],
    540 
    541 
    542   # We do not strip unicode format control characters. This is really
    543   # required for working with non-latin character sets.  We match JSC
    544   # and IE here.  Firefox matches the spec (section 7.1).
    545   'ecma_3/Unicode/uc-001': [FAIL_OK],
    546 
    547 
    548   # A non-breaking space doesn't match \s in a regular expression.  This
    549   # behaviour matches JSC.  All the VMs have different behaviours in which
    550   # characters match \s so we do the same as JSC until they change.
    551   'ecma_3/Unicode/uc-002': [PASS, FAIL_OK],
    552 
    553 
    554   # String.prototype.split on empty strings always returns an array
    555   # with one element (as specified in ECMA-262).
    556   'js1_2/Array/array_split_1': [FAIL_OK],
    557 
    558 
    559   # The concat() method is defined in Array.prototype; not Array.
    560   'js1_5/Array/regress-313153': [FAIL_OK],
    561 
    562   # The join() method is defined on Array.prototype; not Array.
    563   'js1_5/Array/regress-474529': [FAIL_OK],
    564 
    565   # The lastIndexOf() method is defined on Array.prototype, not Array.
    566   'ecma_3/Array/15.5.4.8-01': [FAIL_OK],
    567 
    568   # Properties fileName, and lineNumber of Error instances are
    569   # not supported. Mozilla specific extension.
    570   'js1_5/Exceptions/errstack-001': [FAIL_OK],
    571   'js1_5/Exceptions/regress-257751': [FAIL_OK],
    572   'js1_5/Regress/regress-119719': [FAIL_OK],
    573   'js1_5/Regress/regress-167328': [FAIL_OK],
    574   'js1_5/Regress/regress-243869': [FAIL_OK],
    575 
    576 
    577   # Unsupported import/export and <xml> literals. Mozilla extensions.
    578   'js1_5/Regress/regress-249211': [FAIL_OK],
    579   'js1_5/Regress/regress-309242': [FAIL_OK],
    580   'js1_5/Regress/regress-350692': [FAIL_OK],
    581   'js1_5/extensions/regress-421621': [FAIL_OK],
    582   'js1_5/extensions/regress-432075': [FAIL_OK],
    583 
    584 
    585   # The length of Error functions is 1 not 3.
    586   'js1_5/Exceptions/regress-123002': [FAIL_OK],
    587 
    588 
    589   # Reserved keywords as function names, etc is not supported.
    590   'js1_5/LexicalConventions/regress-343675': [FAIL_OK],
    591 
    592 
    593   # Tests if future reserved keywords of ECMA-262, edition 3 emit warnings. We
    594   # implement the edition 5 behaviour and fail on use of edition 5 future
    595   # reserved keywords as identifiers.
    596   'js1_5/Regress/regress-240317': [FAIL_OK],
    597 
    598 
    599   # Unsupported list comprehensions: [ ... for ... ] and for each.
    600   'js1_5/Regress/regress-352009': [FAIL_OK],
    601   'js1_5/Regress/regress-349648': [FAIL_OK],
    602 
    603 
    604   # Expects top level arguments (passed on command line?) to be
    605   # the empty string?
    606   'js1_5/Regress/regress-336100': [FAIL_OK],
    607 
    608 
    609   # This test fails due to http://code.google.com/p/v8/issues/detail?id=187
    610   # Failure to clear captures when a lookahead is unwound.
    611   'ecma_3/RegExp/15.10.2-1': [PASS, FAIL_OK],
    612 
    613   # This test requires a failure if we try to compile a function with more
    614   # than 65536 arguments.  This seems to be a Mozilla restriction.
    615   'js1_5/Regress/regress-290575': [PASS, FAIL_OK],
    616 
    617 
    618   # Function is deletable in V8 and JSC.
    619   'js1_5/Regress/regress-352604': [FAIL_OK],
    620 
    621 
    622   # Cannot call strings as functions. Expects not to crash.
    623   'js1_5/Regress/regress-417893': [FAIL_OK],
    624 
    625 
    626   # Illegal escape-sequences in string literals. Has already been fixed
    627   # by most engines (i.e. V8, JSC, Opera and FF).
    628   'ecma/Array/15.4.5.1-1': [FAIL_OK],
    629   'ecma/LexicalConventions/7.7.4': [FAIL_OK],
    630   'ecma_2/RegExp/hex-001': [FAIL_OK],
    631   'js1_2/regexp/hexadecimal': [FAIL_OK],
    632 
    633 
    634   # The source field of RegExp objects is properly escaped. We match JSC.
    635   'ecma_2/RegExp/constructor-001': [FAIL_OK],
    636   'ecma_2/RegExp/function-001': [FAIL_OK],
    637   'ecma_2/RegExp/properties-001': [FAIL_OK],
    638 
    639 
    640   # Negative hexadecimal literals are parsed as NaN. This test is outdated.
    641   'ecma/TypeConversion/9.3.1-3': [FAIL_OK],
    642 
    643   ##################### FAILING TESTS #####################
    644 
    645   # This section is for tests that fail in V8 and pass in JSC.
    646   # Tests that fail in both V8 and JSC belong in the FAIL_OK
    647   # category.
    648 
    649   # This fails because we don't handle Function.prototype.apply with very large
    650   # numbers of arguments (depending on max stack size).  350256-02 needs more
    651   # than 4Mbytes of stack space.
    652   'js1_5/Array/regress-350256-02': [FAIL],
    653 
    654 
    655   # This test seems designed to fail (it produces a 700Mbyte string).
    656   # We fail on out of memory.  The important thing is not to crash.
    657   'js1_5/Regress/regress-303213': [FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
    658 
    659   # This test fails since we now throw in String.prototype.match when apply
    660   # is given null or undefined as this argument (and so does firefox nightly).
    661   'js1_5/Regress/regress-295052': [FAIL],
    662 
    663   # Bug 1202592: New ecma_3/String/15.5.4.11 is failing.
    664   'ecma_3/String/15.5.4.11': [FAIL],
    665 
    666   # Bug 1202597: New js1_5/Expressions/regress-394673 is failing.
    667   # Marked as: Will not fix. V8 throws an acceptable RangeError.
    668   'js1_5/Expressions/regress-394673': [FAIL],
    669 
    670 
    671   # Bug 762: http://code.google.com/p/v8/issues/detail?id=762
    672   # We do not correctly handle assignments within "with"
    673   'ecma_3/Statements/12.10-01': [FAIL],
    674 
    675   # https://bugs.chromium.org/p/v8/issues/detail?id=4647
    676   'ecma_3/FunExpr/fe-001': [FAIL_OK],
    677 
    678   ##################### MOZILLA EXTENSION TESTS #####################
    679 
    680   'ecma/extensions/15.1.2.1-1': [FAIL_OK],
    681   'ecma_3/extensions/regress-385393-03': [FAIL_OK],
    682   'ecma_3/extensions/7.9.1': [FAIL_OK],
    683   'js1_5/extensions/catchguard-001': [FAIL_OK],
    684   'js1_5/extensions/catchguard-002': [FAIL_OK],
    685   'js1_5/extensions/catchguard-003': [FAIL_OK],
    686   'js1_5/extensions/getset-001': [FAIL_OK],
    687   'js1_5/extensions/getset-003': [FAIL_OK],
    688   'js1_5/extensions/no-such-method': [FAIL_OK],
    689   'js1_5/extensions/regress-104077': [FAIL_OK],
    690   'js1_5/extensions/regress-226078': [FAIL_OK],
    691   'js1_5/extensions/regress-303277': [FAIL_OK],
    692   'js1_5/extensions/regress-304897': [FAIL_OK],
    693   'js1_5/extensions/regress-306738': [FAIL_OK],
    694   'js1_5/extensions/regress-311161': [FAIL_OK],
    695   'js1_5/extensions/regress-311583': [FAIL_OK],
    696   'js1_5/extensions/regress-311792-01': [FAIL_OK],
    697   'js1_5/extensions/regress-312278': [FAIL_OK],
    698   'js1_5/extensions/regress-313630': [FAIL_OK],
    699   'js1_5/extensions/regress-313803': [FAIL_OK],
    700   'js1_5/extensions/regress-314874': [FAIL_OK],
    701   'js1_5/extensions/regress-322957': [FAIL_OK],
    702   'js1_5/extensions/regress-328556': [FAIL_OK],
    703   'js1_5/extensions/regress-333541': [FAIL_OK],
    704   'js1_5/extensions/regress-335700': [FAIL_OK],
    705   'js1_5/extensions/regress-336409-1': [FAIL_OK],
    706   'js1_5/extensions/regress-336409-2': [FAIL_OK],
    707   'js1_5/extensions/regress-336410-2': [FAIL_OK],
    708   'js1_5/extensions/regress-346494-01': [FAIL_OK],
    709   'js1_5/extensions/regress-346494': [FAIL_OK],
    710   'js1_5/extensions/regress-347306-02': [FAIL_OK],
    711   'js1_5/extensions/regress-348986': [FAIL_OK],
    712   'js1_5/extensions/regress-349616': [FAIL_OK],
    713   'js1_5/extensions/regress-350312-02': [FAIL_OK],
    714   'js1_5/extensions/regress-350312-03': [FAIL_OK],
    715   'js1_5/extensions/regress-350531': [FAIL_OK],
    716   'js1_5/extensions/regress-351102-01': [FAIL_OK],
    717   'js1_5/extensions/regress-351102-02': [FAIL_OK],
    718   'js1_5/extensions/regress-351102-06': [FAIL_OK],
    719   'js1_5/extensions/regress-351973': [FAIL_OK],
    720   'js1_5/extensions/regress-352060': [FAIL_OK],
    721   'js1_5/extensions/regress-352094': [FAIL_OK],
    722   'js1_5/extensions/regress-352261': [FAIL_OK],
    723   'js1_5/extensions/regress-352281': [FAIL_OK],
    724   'js1_5/extensions/regress-352455': [FAIL_OK],
    725   'js1_5/extensions/regress-352604': [FAIL_OK],
    726   'js1_5/extensions/regress-353214': [FAIL_OK],
    727   'js1_5/extensions/regress-355339': [FAIL_OK],
    728   'js1_5/extensions/regress-355497': [FAIL_OK],
    729   'js1_5/extensions/regress-355622': [FAIL_OK],
    730   'js1_5/extensions/regress-355736': [FAIL_OK],
    731   'js1_5/extensions/regress-356085': [FAIL_OK],
    732   'js1_5/extensions/regress-356106': [FAIL_OK],
    733   'js1_5/extensions/regress-358594-01': [FAIL_OK],
    734   'js1_5/extensions/regress-358594-02': [FAIL_OK],
    735   'js1_5/extensions/regress-358594-03': [FAIL_OK],
    736   'js1_5/extensions/regress-358594-04': [FAIL_OK],
    737   'js1_5/extensions/regress-358594-05': [FAIL_OK],
    738   'js1_5/extensions/regress-358594-06': [FAIL_OK],
    739   'js1_5/extensions/regress-361346': [FAIL_OK],
    740   'js1_5/extensions/regress-361360': [FAIL_OK],
    741   'js1_5/extensions/regress-361558': [FAIL_OK],
    742   'js1_5/extensions/regress-361571': [FAIL_OK],
    743   'js1_5/extensions/regress-361856': [FAIL_OK],
    744   'js1_5/extensions/regress-361964': [FAIL_OK],
    745   'js1_5/extensions/regress-363988': [FAIL_OK],
    746   'js1_5/extensions/regress-365869': [FAIL_OK],
    747 
    748   # Uses non ES5 compatible syntax for setter
    749   'js1_5/extensions/regress-367501-01': [FAIL_OK],
    750   'js1_5/extensions/regress-367501-02': [FAIL_OK],
    751   'js1_5/extensions/regress-367501-03': [FAIL_OK],
    752   'js1_5/extensions/regress-367501-04': [FAIL_OK],
    753 
    754   'js1_5/extensions/regress-367630': [FAIL_OK],
    755   'js1_5/extensions/regress-367923': [FAIL_OK],
    756   'js1_5/extensions/regress-368859': [FAIL_OK],
    757   'js1_5/extensions/regress-369696-01': [FAIL_OK],
    758   'js1_5/extensions/regress-369696-02': [FAIL_OK],
    759   'js1_5/extensions/regress-369696-03': [FAIL_OK],
    760   'js1_5/extensions/regress-374589': [FAIL_OK],
    761   'js1_5/extensions/regress-375801': [FAIL_OK],
    762   'js1_5/extensions/regress-376052': [FAIL_OK],
    763   'js1_5/extensions/regress-379523': [FAIL_OK],
    764   'js1_5/extensions/regress-380581': [FAIL_OK],
    765   'js1_5/extensions/regress-380831': [FAIL_OK],
    766   'js1_5/extensions/regress-381205': [FAIL_OK],
    767   'js1_5/extensions/regress-381211': [FAIL_OK],
    768   'js1_5/extensions/regress-381304': [FAIL_OK],
    769   'js1_5/extensions/regress-382509': [FAIL_OK],
    770   'js1_5/extensions/regress-383965': [FAIL_OK],
    771   'js1_5/extensions/regress-384680': [FAIL_OK],
    772   'js1_5/extensions/regress-385393-09': [FAIL_OK],
    773   'js1_5/extensions/regress-407501': [FAIL_OK],
    774   'js1_5/extensions/regress-418730': [FAIL_OK],
    775   'js1_5/extensions/regress-420612': [FAIL_OK],
    776   'js1_5/extensions/regress-420869-01': [FAIL_OK],
    777   'js1_5/extensions/regress-424257': [FAIL_OK],
    778   'js1_5/extensions/regress-424683-01': [FAIL_OK],
    779   'js1_5/extensions/regress-429739': [FAIL_OK],
    780   'js1_5/extensions/regress-454142': [FAIL_OK],
    781   'js1_5/extensions/regress-465145': [FAIL_OK],
    782   'js1_5/extensions/regress-469625': [FAIL_OK],
    783   'js1_5/extensions/regress-472787': [FAIL_OK],
    784   'js1_5/extensions/regress-44009': [FAIL_OK],
    785   'js1_5/extensions/regress-50447-1': [FAIL_OK],
    786   'js1_5/extensions/regress-50447': [FAIL_OK],
    787   'js1_5/extensions/regress-90596-001': [FAIL_OK],
    788   'js1_5/extensions/regress-90596-002': [FAIL_OK],
    789   'js1_5/extensions/regress-96284-001': [FAIL_OK],
    790   'js1_5/extensions/regress-96284-002': [FAIL_OK],
    791   'js1_5/extensions/toLocaleFormat-01': [FAIL_OK],
    792   'js1_5/extensions/toLocaleFormat-02': [FAIL_OK],
    793 
    794   # TODO(yangguo): Both tests have complex regular expressions (nested (.*)*
    795   # and the like). Please investigate if these tests provide any coverage.
    796   # Furthermore, an exception is expected which is not thrown by v8.
    797   'js1_5/extensions/regress-330569': [SKIP],
    798   'js1_5/extensions/regress-351448': [SKIP],
    799   # In the 64-bit version, this test takes longer to run out of memory
    800   # than it does in the 32-bit version when attempting to generate a huge
    801   # error message in debug mode.
    802   'js1_5/extensions/regress-336410-1': [FAIL_OK, ['mode == debug and arch == x64', TIMEOUT, NO_VARIANTS]],
    803 
    804   ##################### DECOMPILATION TESTS #####################
    805 
    806   # We don't really about the outcome of running the
    807   # decompilation tests as long as they don't crash or
    808   # timeout.
    809 
    810   'js1_5/decompilation/regress-344120': [PASS, FAIL],
    811   'js1_5/decompilation/regress-346892': [PASS, FAIL],
    812   'js1_5/decompilation/regress-346902': [PASS, FAIL],
    813   'js1_5/decompilation/regress-346904': [PASS, FAIL],
    814   'js1_5/decompilation/regress-346915': [PASS, FAIL],
    815   'js1_5/decompilation/regress-349484': [PASS, FAIL],
    816   'js1_5/decompilation/regress-349489': [PASS, FAIL],
    817   'js1_5/decompilation/regress-349491': [PASS, FAIL],
    818   'js1_5/decompilation/regress-349596': [PASS, FAIL],
    819   'js1_5/decompilation/regress-349650': [PASS, FAIL],
    820   'js1_5/decompilation/regress-349663': [PASS, FAIL],
    821   'js1_5/decompilation/regress-350242': [PASS, FAIL],
    822   'js1_5/decompilation/regress-350263': [PASS, FAIL],
    823   'js1_5/decompilation/regress-350271': [PASS, FAIL],
    824   'js1_5/decompilation/regress-350666': [PASS, FAIL],
    825   'js1_5/decompilation/regress-350670': [PASS, FAIL],
    826   'js1_5/decompilation/regress-351104': [PASS, FAIL],
    827   'js1_5/decompilation/regress-351219': [PASS, FAIL],
    828   'js1_5/decompilation/regress-351336': [PASS, FAIL],
    829   'js1_5/decompilation/regress-351597': [PASS, FAIL],
    830   'js1_5/decompilation/regress-351625': [PASS, FAIL],
    831   'js1_5/decompilation/regress-351626': [PASS, FAIL],
    832   'js1_5/decompilation/regress-351693': [PASS, FAIL],
    833   'js1_5/decompilation/regress-351705': [PASS, FAIL],
    834   'js1_5/decompilation/regress-351793': [PASS, FAIL],
    835   'js1_5/decompilation/regress-352013': [PASS, FAIL],
    836   'js1_5/decompilation/regress-352022': [PASS, FAIL],
    837   'js1_5/decompilation/regress-352073': [PASS, FAIL],
    838   'js1_5/decompilation/regress-352202': [PASS, FAIL],
    839   'js1_5/decompilation/regress-352312': [PASS, FAIL],
    840   'js1_5/decompilation/regress-352360': [PASS, FAIL],
    841   'js1_5/decompilation/regress-352375': [PASS, FAIL],
    842   'js1_5/decompilation/regress-352453': [PASS, FAIL],
    843   'js1_5/decompilation/regress-352649': [PASS, FAIL],
    844   'js1_5/decompilation/regress-352873-01': [PASS, FAIL],
    845   'js1_5/decompilation/regress-352873-02': [PASS, FAIL],
    846   'js1_5/decompilation/regress-353000': [PASS, FAIL],
    847   'js1_5/decompilation/regress-353120': [PASS, FAIL],
    848   'js1_5/decompilation/regress-353146': [PASS, FAIL],
    849   'js1_5/decompilation/regress-354878': [PASS, FAIL],
    850   'js1_5/decompilation/regress-354910': [PASS, FAIL],
    851   'js1_5/decompilation/regress-355992': [PASS, FAIL],
    852   'js1_5/decompilation/regress-356083': [PASS, FAIL],
    853   'js1_5/decompilation/regress-356248': [PASS, FAIL],
    854   'js1_5/decompilation/regress-371692': [PASS, FAIL],
    855   'js1_5/decompilation/regress-373678': [PASS, FAIL],
    856   'js1_5/decompilation/regress-375639': [PASS, FAIL],
    857   'js1_5/decompilation/regress-375882': [PASS, FAIL],
    858   'js1_5/decompilation/regress-376564': [PASS, FAIL],
    859   'js1_5/decompilation/regress-383721': [PASS, FAIL],
    860   'js1_5/decompilation/regress-406555': [PASS, FAIL],
    861   'js1_5/decompilation/regress-460870': [PASS, FAIL],
    862 }],  # ALWAYS
    863 
    864 
    865 ['no_i18n == True and mode == debug', {
    866   # Tests too slow for no18n debug.
    867   'ecma_3/Statements/regress-302439': [PASS, FAST_VARIANTS],
    868   'js1_5/Regress/regress-98901': [SKIP],
    869   'ecma_3/RegExp/perlstress-001': [PASS, FAST_VARIANTS],
    870   'js1_5/extensions/regress-311161': [FAIL_OK, FAST_VARIANTS],
    871 }],  # 'no_i18n == True and mode == debug'
    872 
    873 
    874 ['arch == arm or arch == arm64', {
    875 
    876   # BUG(3251229): Times out when running new crankshaft test script.
    877   'ecma_3/RegExp/regress-311414': [SKIP],
    878   'ecma/Date/15.9.5.8': [SKIP],
    879   'ecma/Date/15.9.5.10-2': [SKIP],
    880   'ecma/Date/15.9.5.11-2': [SKIP],
    881   'ecma/Date/15.9.5.12-2': [SKIP],
    882   'js1_5/Array/regress-99120-02': [SKIP],
    883   'js1_5/extensions/regress-371636': [SKIP],
    884   'js1_5/Regress/regress-203278-1': [SKIP],
    885   'js1_5/Regress/regress-404755': [SKIP],
    886   'js1_5/Regress/regress-451322': [SKIP],
    887 
    888   # BUG(1040): Allow this test to timeout.
    889   'js1_5/GC/regress-203278-2': [PASS, TIMEOUT, NO_VARIANTS],
    890 }],  # 'arch == arm or arch == arm64'
    891 
    892 
    893 ['arch ==  arm64', {
    894   # BUG(v8:3503): Times out in debug mode.
    895   'js1_5/Regress/regress-280769-2': [PASS, FAIL, ['mode == debug', SKIP]],
    896   # BUG(v8:3716): Flaky failure.
    897   'ecma/Date/15.9.5.26-1': [PASS, FAIL],
    898 }],  # 'arch ==  arm64'
    899 
    900 
    901 ['arch == mipsel or arch == mips64el or arch == mips64', {
    902 
    903   # BUG(3251229): Times out when running new crankshaft test script.
    904   'ecma_3/RegExp/regress-311414': [SKIP],
    905   'ecma/Date/15.9.5.8': [SKIP],
    906   'ecma/Date/15.9.5.10-2': [SKIP],
    907   'ecma/Date/15.9.5.11-2': [SKIP],
    908   'ecma/Date/15.9.5.12-2': [SKIP],
    909   'js1_5/Array/regress-99120-02': [SKIP],
    910   'js1_5/extensions/regress-371636': [SKIP],
    911   'js1_5/Regress/regress-203278-1': [SKIP],
    912   'js1_5/Regress/regress-404755': [SKIP],
    913   'js1_5/Regress/regress-451322': [SKIP],
    914 
    915 
    916   # BUG(1040): Allow this test to timeout.
    917   'js1_5/GC/regress-203278-2': [PASS, TIMEOUT, NO_VARIANTS],
    918 }],  # 'arch == mipsel or arch == mips64el or arch == mips64'
    919 
    920 ['arch == mipsel and simulator_run == True', {
    921   # Crashes due to C stack overflow.
    922   'js1_5/extensions/regress-355497': [SKIP],
    923 }], # 'arch == mipsel and simulator_run == True'
    924 
    925 ['arch == mips64el and simulator_run == True', {
    926   'js1_5/extensions/regress-355497': [FAIL_OK, 'Flags: --sim-stack-size=512'],
    927 }], # 'arch == mips64el and simulator_run == True'
    928 
    929 ['arch == mips', {
    930 
    931   # BUG(3251229): Times out when running new crankshaft test script.
    932   'ecma_3/RegExp/regress-311414': [SKIP],
    933   'ecma/Date/15.9.5.8': [SKIP],
    934   'ecma/Date/15.9.5.10-2': [SKIP],
    935   'ecma/Date/15.9.5.11-2': [SKIP],
    936   'ecma/Date/15.9.5.12-2': [SKIP],
    937   'js1_5/Array/regress-99120-02': [SKIP],
    938   'js1_5/extensions/regress-371636': [SKIP],
    939   'js1_5/Regress/regress-203278-1': [SKIP],
    940   'js1_5/Regress/regress-404755': [SKIP],
    941   'js1_5/Regress/regress-451322': [SKIP],
    942 
    943 
    944   # BUG(1040): Allow this test to timeout.
    945   'js1_5/GC/regress-203278-2': [PASS, TIMEOUT, NO_VARIANTS],
    946 }],  # 'arch == mips'
    947 
    948 ['arch == arm and simulator_run == True', {
    949 
    950   #BUG(3837): Crashes due to C stack overflow.
    951   'js1_5/extensions/regress-355497': [SKIP],
    952 }],  # 'arch == arm and simulator_run == True'
    953 
    954 ['arch == arm64 and simulator_run == True', {
    955 
    956   'js1_5/GC/regress-203278-2': [SKIP],
    957 
    958   # These tests time out in debug mode but pass in product mode
    959   'js1_5/Regress/regress-360969-03': [SKIP],
    960   'js1_5/Regress/regress-360969-04': [SKIP],
    961   'js1_5/Regress/regress-360969-05': [SKIP],
    962   'js1_5/Regress/regress-360969-06': [SKIP],
    963   'js1_5/extensions/regress-365527': [SKIP],
    964   'ecma/Date/15.9.5.10-2': [SKIP],
    965   'js1_5/Regress/regress-416628': [SKIP],
    966   'js1_5/extensions/regress-371636': [SKIP],
    967   'ecma_3/RegExp/regress-330684': [SKIP],
    968   'ecma_3/RegExp/regress-307456': [SKIP],
    969   'js1_5/Regress/regress-303213': [SKIP],
    970   'js1_5/extensions/regress-330569': [SKIP],
    971   'js1_5/extensions/regress-351448': [SKIP],
    972   'js1_5/extensions/regress-336410-1': [SKIP],
    973 
    974   #BUG(3152): Avoid C stack overflow.
    975   'js1_5/extensions/regress-355497': [FAIL_OK, 'Flags: --sim-stack-size=512'],
    976 }],  # 'arch == arm64 and simulator_run == True'
    977 ]
    978