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 prefix mozilla
     46 def FAIL_OK = FAIL, OKAY
     47 
     48 
     49 ##################### SKIPPED TESTS #####################
     50 
     51 # This test checks that we behave properly in an out-of-memory
     52 # situation.  The test fails in V8 with an exception and takes a long
     53 # time to do so.
     54 js1_5/Regress/regress-271716-n: SKIP
     55 
     56 # BUG(960): This test has an insane amount of output when it times out,
     57 # messing up ability to see other failures on the waterfall.
     58 js1_5/extensions/regress-342960: SKIP
     59 
     60 # This test uses a unitialized variable. A Bug has been filed:
     61 # https://bugzilla.mozilla.org/show_bug.cgi?id=575575
     62 js1_5/Array/regress-465980-02: SKIP
     63 
     64 # These tests are simply wrong (i.e., they do not test what they intend
     65 # to test).
     66 # In particular, these two compare numbers to NaN with != in the current
     67 # version of the Mozilla tests. This is *fixed* in a later version.
     68 # The tests should be re-enabled when switching to a new version.
     69 ecma_3/Date/15.9.3.2-1: SKIP
     70 js1_2/function/Number: SKIP
     71 
     72 # TODO(2018): Temporarily allow timeout in debug mode.
     73 js1_5/GC/regress-203278-2: PASS || TIMEOUT if $mode == debug
     74 
     75 ##################### SLOW TESTS #####################
     76 
     77 # This takes a long time to run (~100 seconds). It should only be run
     78 # by the really patient.
     79 js1_5/GC/regress-324278: SLOW
     80 
     81 # This takes a long time to run because our indexOf operation is
     82 # pretty slow - it causes a lot of GCs; see issue
     83 # #926379. We could consider marking this SKIP because it takes a
     84 # while to run to completion.
     85 js1_5/GC/regress-338653: SLOW
     86 
     87 # This test is designed to run until it runs out of memory. This takes
     88 # a very long time because it builds strings character by character
     89 # and compiles a lot of regular expressions. We could consider marking
     90 # this SKIP because it takes a while to run to completion.
     91 js1_5/GC/regress-346794: SLOW
     92 
     93 # Runs out of memory while trying to build huge string of 'x'
     94 # characters. This takes a long time to run (~32 seconds).
     95 js1_5/GC/regress-348532: SLOW
     96 
     97 
     98 ##################### FLAKY TESTS #####################
     99 
    100 # These tests time out in debug mode but pass in product mode
    101 js1_5/Regress/regress-360969-03: PASS || TIMEOUT if $mode == debug
    102 js1_5/Regress/regress-360969-04: PASS || TIMEOUT if $mode == debug
    103 js1_5/Regress/regress-360969-05: PASS || TIMEOUT if $mode == debug
    104 js1_5/Regress/regress-360969-06: PASS || TIMEOUT if $mode == debug
    105 js1_5/extensions/regress-365527: PASS || TIMEOUT if $mode == debug
    106 
    107 js1_5/Regress/regress-280769-3: PASS || FAIL if $mode == debug
    108 js1_5/Regress/regress-203278-1: PASS || FAIL if $mode == debug
    109 js1_5/GC/regress-203278-2: PASS || FAIL if $mode == debug
    110 js1_5/Regress/regress-244470: PASS || FAIL if $mode == debug
    111 ecma_3/RegExp/regress-209067: PASS || FAIL if $mode == debug
    112 js1_5/GC/regress-278725: PASS || FAIL if $mode == debug
    113 # http://b/issue?id=1206983
    114 js1_5/Regress/regress-367561-03: PASS || FAIL if $mode == debug
    115 ecma/Date/15.9.5.10-2: PASS || (FAIL || TIMEOUT if $mode == debug)
    116 
    117 # These tests create two Date objects just after each other and
    118 # expects them to match.  Sometimes this happens on the border
    119 # between one second and the next.
    120 ecma/Date/15.9.2.1: PASS || FAIL
    121 ecma/Date/15.9.2.2-1: PASS || FAIL
    122 ecma/Date/15.9.2.2-2: PASS || FAIL
    123 ecma/Date/15.9.2.2-3: PASS || FAIL
    124 ecma/Date/15.9.2.2-4: PASS || FAIL
    125 ecma/Date/15.9.2.2-5: PASS || FAIL
    126 ecma/Date/15.9.2.2-6: PASS || FAIL
    127 
    128 # 1026139: These date tests fail on arm and mips
    129 ecma/Date/15.9.5.29-1: PASS || (($ARM || $MIPS) && FAIL)
    130 ecma/Date/15.9.5.34-1: PASS || (($ARM || $MIPS) && FAIL)
    131 ecma/Date/15.9.5.28-1: PASS || (($ARM || $MIPS) && FAIL)
    132 
    133 # 1050186: Arm/MIPS vm is broken; probably unrelated to dates
    134 ecma/Array/15.4.4.5-3: PASS || (($ARM || $MIPS) && FAIL)
    135 ecma/Date/15.9.5.22-2: PASS || (($ARM || $MIPS) && FAIL)
    136 
    137 # Flaky test that fails due to what appears to be a bug in the test.
    138 # Occurs depending on current time
    139 ecma/Date/15.9.5.8: PASS || FAIL
    140 
    141 # Severely brain-damaged test. Access to local variables must not
    142 # be more than 2.5 times faster than access to global variables? WTF?
    143 js1_5/Regress/regress-169559: PASS || FAIL
    144 
    145 
    146 # Test that rely on specific timezone (not working in Denmark).
    147 js1_5/Regress/regress-58116: PASS || FAIL
    148 
    149 
    150 # Flaky random() test. Tests the distribution of calls to Math.random().
    151 js1_5/Regress/regress-211590: PASS || FAIL
    152 
    153 
    154 # Flaky tests; expect BigO-order computations to yield 1, but the code
    155 # cannot handle outliers. See bug #925864.
    156 ecma_3/RegExp/regress-311414: PASS || FAIL
    157 ecma_3/RegExp/regress-289669: PASS || FAIL
    158 js1_5/String/regress-314890: PASS || FAIL
    159 js1_5/String/regress-56940-01: PASS || FAIL
    160 js1_5/String/regress-56940-02: PASS || FAIL
    161 js1_5/String/regress-157334-01: PASS || FAIL
    162 js1_5/String/regress-322772: PASS || FAIL
    163 js1_5/Array/regress-99120-01: PASS || FAIL
    164 js1_5/Array/regress-99120-02: PASS || FAIL
    165 js1_5/Regress/regress-347306-01: PASS || FAIL
    166 js1_5/Regress/regress-416628: PASS || FAIL || TIMEOUT if $mode == debug
    167 
    168 
    169 # The following two tests assume that daylight savings time starts first Sunday
    170 # in April. This is not true when executing the tests outside California!
    171 # In Denmark the adjustment starts one week earlier!.
    172 # Tests based on shell that use dates in this gap are flaky.
    173 ecma/Date/15.9.5.10-1: PASS || FAIL
    174 ecma/Date/15.9.5.12-1: PASS || FAIL
    175 ecma/Date/15.9.5.14: PASS || FAIL
    176 ecma/Date/15.9.5.34-1: PASS || FAIL
    177 
    178 
    179 # These tests sometimes pass (in particular on Windows). They build up
    180 # a lot of stuff on the stack, which normally causes a stack overflow,
    181 # but sometimes it makes it through?
    182 js1_5/Regress/regress-290575: PASS || FAIL
    183 js1_5/Regress/regress-98901: PASS || FAIL
    184 
    185 
    186 # Tests that sorting arrays of ints is less than 3 times as fast
    187 # as sorting arrays of strings.
    188 js1_5/extensions/regress-371636: PASS || FAIL || TIMEOUT if $mode == debug
    189 
    190 
    191 # Tests depend on GC timings. Inherently flaky.
    192 js1_5/GC/regress-383269-01: PASS || FAIL
    193 js1_5/GC/regress-383269-02: PASS || FAIL
    194 js1_5/Regress/regress-404755: PASS || FAIL
    195 
    196 
    197 # Test that depends on timer resolution. Fails every now and then
    198 # if we're unlucky enough to get a context switch at a bad time.
    199 js1_5/extensions/regress-363258: PASS || FAIL
    200 
    201 
    202 # Test that assumes specific runtime for a regexp, flaky in debug mode.
    203 ecma_3/RegExp/regress-85721: PASS || FAIL if $mode == debug
    204 
    205 
    206 # Test that assumes specific execution time, flaky in debug mode.
    207 js1_5/Array/regress-101964: PASS || FAIL if $mode == debug
    208 
    209 
    210 ##################### INCOMPATIBLE TESTS #####################
    211 
    212 # This section is for tests that fail in both V8 and JSC.  Thus they
    213 # have been determined to be incompatible between Mozilla and V8/JSC.
    214 
    215 # Fail because it calls builtins as functions and do not expect the
    216 # builtin to have undefined as the receiver.
    217 ecma/String/15.5.4.6-2: FAIL_OK
    218 
    219 # Fail because it expects String.prototype.split to distinguish whether
    220 # separator was undefined or not passed at all.
    221 ecma/String/15.5.4.8-2: FAIL_OK
    222 
    223 # Fail because of toLowerCase and toUpperCase conversion.
    224 ecma/String/15.5.4.11-2: FAIL_OK
    225 ecma/String/15.5.4.11-5: FAIL_OK
    226 ecma/String/15.5.4.12-1: FAIL_OK
    227 ecma/String/15.5.4.12-4: FAIL_OK
    228 
    229 # This test uses an older version of the unicode standard that fails
    230 # us because we correctly convert the armenian small ligature ech-yiwn
    231 # to the two upper-case characters ECH and YIWN, whereas the older
    232 # unicode version converts it to itself.
    233 ecma/String/15.5.4.12-5: FAIL_OK
    234 
    235 # Creates a linked list of arrays until we run out of memory or timeout.
    236 js1_5/Regress/regress-312588: SKIP
    237 
    238 
    239 # Runs out of memory because it compiles huge functions.
    240 js1_5/Function/regress-338001: FAIL_OK
    241 js1_5/Function/regress-338121-01: FAIL_OK
    242 js1_5/Function/regress-338121-02: FAIL_OK
    243 js1_5/Function/regress-338121-03: FAIL_OK
    244 
    245 # Expectes 'prototype' property of functions to be enumerable.
    246 js1_5/Function/10.1.6-01: FAIL_OK
    247 
    248 # Length of objects whose prototype chain includes a function
    249 ecma_3/Function/regress-313570: FAIL_OK
    250 
    251 # toPrecision argument restricted to range 1..21 in JSC/V8
    252 js1_5/Regress/regress-452346: FAIL_OK
    253 ecma_3/Number/15.7.4.7-1: FAIL_OK
    254 
    255 # toExponential argument restricted to range 0..20 in JSC/V8
    256 ecma_3/Number/15.7.4.6-1: FAIL_OK
    257 
    258 #:=== RegExp:===
    259 # We don't match the syntax error message of Mozilla for invalid
    260 # RegExp flags.
    261 ecma_3/RegExp/15.10.4.1-6: FAIL_OK
    262 
    263 # PCRE doesn't allow subpattern nesting deeper than 200, this tests
    264 # depth 500.  JSC detects the case, and return null from the match,
    265 # and passes this test (the test doesn't check for a correct return
    266 # value).
    267 ecma_3/RegExp/regress-119909: PASS || FAIL_OK
    268 
    269 
    270 # Difference in the way capturing subpatterns work.  In JS, when the
    271 # 'minimum repeat count' is reached, the empty string must not match.
    272 # In this case, we are similar but not identical to JSC.  Hard to
    273 # support the JS behavior with PCRE, so maybe emulate JSC?
    274 ecma_3/RegExp/regress-209919: PASS || FAIL_OK
    275 js1_5/extensions/regress-459606: PASS || FAIL_OK
    276 
    277 
    278 # PCRE's match limit is reached.  SpiderMonkey hangs on the first one,
    279 # JSC returns true somehow.  Maybe they up the match limit?  There is
    280 # an open V8 bug 676063 about this.
    281 ecma_3/RegExp/regress-330684: TIMEOUT
    282 
    283 
    284 # This test contains a regexp that runs exponentially long.  Spidermonkey
    285 # standalone will hang, though apparently inside Firefox it will trigger a
    286 # long-running-script timeout.  JSCRE passes by hitting the matchLimit and
    287 # just pretending that an exhaustive search found no match.
    288 ecma_3/RegExp/regress-307456: PASS || TIMEOUT
    289 
    290 
    291 # We do not detect overflow in bounds for back references and {}
    292 # quantifiers.  Might fix by parsing numbers differently?
    293 js1_5/Regress/regress-230216-2: FAIL_OK
    294 
    295 
    296 # Regexp too long for PCRE.
    297 js1_5/Regress/regress-280769: PASS || FAIL
    298 js1_5/Regress/regress-280769-1: PASS || FAIL
    299 js1_5/Regress/regress-280769-2: PASS || FAIL
    300 js1_5/Regress/regress-280769-4: PASS || FAIL
    301 js1_5/Regress/regress-280769-5: PASS || FAIL
    302 
    303 
    304 # We do not support static RegExp.multiline - should we?.
    305 js1_2/regexp/RegExp_multiline: FAIL_OK
    306 js1_2/regexp/RegExp_multiline_as_array: FAIL_OK
    307 js1_2/regexp/beginLine: FAIL_OK
    308 js1_2/regexp/endLine: FAIL_OK
    309 
    310 # We no longer let calls to test and exec with no argument implicitly
    311 # use the previous input.
    312 js1_2/regexp/RegExp_input: FAIL_OK
    313 js1_2/regexp/RegExp_input_as_array: FAIL_OK
    314 
    315 
    316 # To be compatible with safari typeof a regexp yields 'function';
    317 # in firefox it yields 'object'.
    318 js1_2/function/regexparg-1: FAIL_OK
    319 
    320 
    321 # Date trouble?
    322 js1_5/Date/regress-301738-02: FAIL_OK
    323 
    324 
    325 # This test fails for all browsers on in the CET timezone.
    326 ecma/Date/15.9.5.35-1: PASS || FAIL_OK
    327 
    328 
    329 # Spidermonkey allows stuff in parenthesis directly after the minutes
    330 # in a date.  JSC does not, so we don't either.
    331 js1_5/Date/regress-309925-02: FAIL_OK
    332 
    333 
    334 # Print string after deleting array element?
    335 js1_5/Expressions/regress-96526-delelem: FAIL_OK
    336 
    337 
    338 # Stack overflows should be InternalError: too much recursion?
    339 js1_5/Regress/regress-234389: FAIL_OK
    340 
    341 
    342 # This may very well be a bogus test. I'm not sure yet.
    343 js1_5/Regress/regress-320119: FAIL_OK
    344 
    345 
    346 # No support for toSource().
    347 js1_5/Regress/regress-248444: FAIL_OK
    348 js1_5/Regress/regress-313967-01: FAIL_OK
    349 js1_5/Regress/regress-313967-02: FAIL_OK
    350 
    351 # This fails because we don't have stack space for Function.prototype.apply
    352 # with very large numbers of arguments.  The test uses 2^24 arguments.
    353 js1_5/Array/regress-350256-03: FAIL_OK
    354 
    355 
    356 # Extra arguments not handled properly in String.prototype.match
    357 js1_5/Regress/regress-179524: FAIL_OK
    358 
    359 
    360 # Uncategorized failures. Please help categorize (or fix) these failures.
    361 js1_5/Regress/regress-172699: FAIL_OK
    362 
    363 
    364 # Assumes that the prototype of a function is enumerable. Non-ECMA,
    365 # see section 15.3.3.1, page 86.
    366 ecma/GlobalObject/15.1.2.2-1: FAIL_OK
    367 ecma/GlobalObject/15.1.2.3-1: FAIL_OK
    368 ecma/GlobalObject/15.1.2.4: FAIL_OK
    369 ecma/GlobalObject/15.1.2.5-1: FAIL_OK
    370 ecma/GlobalObject/15.1.2.6: FAIL_OK
    371 ecma/GlobalObject/15.1.2.7: FAIL_OK
    372 
    373 
    374 # Tests that rely on specific details of function decompilation or
    375 # print strings for errors. Non-ECMA behavior.
    376 js1_2/function/tostring-2: FAIL_OK
    377 js1_2/Objects/toString-001: FAIL_OK
    378 js1_5/LexicalConventions/regress-469940: FAIL_OK
    379 js1_5/Exceptions/regress-332472: FAIL_OK
    380 js1_5/Regress/regress-173067: FAIL_OK
    381 js1_5/Regress/regress-355556: FAIL_OK
    382 js1_5/Regress/regress-328664: FAIL_OK
    383 js1_5/Regress/regress-252892: FAIL_OK
    384 js1_5/Regress/regress-352208: FAIL_OK
    385 ecma_3/Array/15.4.5.1-01: FAIL_OK
    386 ecma_3/Array/regress-387501: FAIL_OK
    387 ecma_3/LexicalConventions/7.9.1: FAIL_OK
    388 ecma_3/RegExp/regress-375711: FAIL_OK
    389 ecma_3/Unicode/regress-352044-01: FAIL_OK
    390 ecma_3/extensions/regress-274152: FAIL_OK
    391 js1_5/Regress/regress-372364: FAIL_OK
    392 js1_5/Regress/regress-420919: FAIL_OK
    393 js1_5/Regress/regress-422348: FAIL_OK
    394 js1_5/Regress/regress-410852: FAIL_OK
    395 ecma_3/RegExp/regress-375715-04: FAIL_OK
    396 js1_5/decompilation/regress-456964-01: FAIL_OK
    397 js1_5/decompilation/regress-437288-02: FAIL_OK
    398 js1_5/decompilation/regress-457824: FAIL_OK
    399 js1_5/decompilation/regress-460116-01: FAIL_OK
    400 js1_5/decompilation/regress-460116-02: FAIL_OK
    401 js1_5/decompilation/regress-460501: FAIL_OK
    402 js1_5/decompilation/regress-460116-03: FAIL_OK
    403 js1_5/decompilation/regress-461110: FAIL_OK
    404 js1_5/decompilation/regress-456964-01: FAIL_OK
    405 js1_5/decompilation/regress-437288-02: FAIL_OK
    406 js1_5/decompilation/regress-457824: FAIL_OK
    407 js1_5/decompilation/regress-460116-01: FAIL_OK
    408 js1_5/decompilation/regress-460116-02: FAIL_OK
    409 js1_5/decompilation/regress-460116-03: FAIL_OK
    410 js1_5/decompilation/regress-460501: FAIL_OK
    411 js1_5/decompilation/regress-461110: FAIL_OK
    412 
    413 
    414 
    415 # Tests that use uneval.  Non-ECMA.
    416 js1_5/GC/regress-418128: FAIL_OK
    417 js1_5/extensions/regress-465276: FAIL_OK
    418 js1_5/Error/regress-465377: FAIL_OK
    419 
    420 # Tests that use the watch method.  Non-ECMA.
    421 js1_5/extensions/regress-435345-01: FAIL_OK
    422 js1_5/extensions/regress-455413: FAIL_OK
    423 
    424 
    425 # Uses Mozilla-specific QName, XML, XMLList and Iterator.
    426 js1_5/Regress/regress-407323: FAIL_OK
    427 js1_5/Regress/regress-407957: FAIL_OK
    428 
    429 
    430 # Relies on JavaScript 1.2 / 1.3 deprecated features.
    431 js1_2/function/String: FAIL_OK
    432 js1_2/operator/equality: FAIL_OK
    433 js1_2/version120/boolean-001: FAIL_OK
    434 js1_2/String/concat: FAIL_OK
    435 js1_2/function/Function_object: FAIL_OK
    436 js1_2/function/tostring-1: FAIL_OK
    437 js1_2/version120/regress-99663: FAIL_OK
    438 js1_2/regexp/RegExp_lastIndex: FAIL_OK
    439 js1_2/regexp/string_split: FAIL_OK
    440 
    441 
    442 # RegExps are not callable.
    443 js1_2/regexp/simple_form: FAIL_OK
    444 js1_2/regexp/regress-6359: FAIL_OK
    445 js1_2/regexp/regress-9141: FAIL_OK
    446 js1_5/Regress/regress-224956: FAIL_OK
    447 js1_5/Regress/regress-325925: FAIL_OK
    448 ecma_2/RegExp/regress-001: FAIL_OK
    449 
    450 # We do not check for bad surrogate pairs when quoting strings.
    451 js1_5/Regress/regress-315974: FAIL_OK
    452 
    453 
    454 # Use unsupported "watch".
    455 js1_5/Regress/regress-213482: FAIL_OK
    456 js1_5/Regress/regress-240577: FAIL_OK
    457 js1_5/Regress/regress-355344: FAIL_OK
    458 js1_5/Object/regress-362872-01: FAIL_OK
    459 js1_5/Object/regress-362872-02: FAIL_OK
    460 js1_5/Regress/regress-361467: FAIL_OK
    461 js1_5/Regress/regress-385393-06: FAIL_OK
    462 js1_5/Regress/regress-506567: FAIL_OK
    463 
    464 
    465 # Use special Mozilla getter/setter syntax
    466 js1_5/Regress/regress-354924: FAIL_OK
    467 js1_5/Regress/regress-355341: FAIL_OK
    468 js1_5/GC/regress-316885-01: FAIL_OK
    469 js1_5/GetSet/getset-002: FAIL_OK
    470 js1_5/GetSet/regress-353264: FAIL_OK
    471 js1_5/Regress/regress-361617: FAIL_OK
    472 js1_5/Regress/regress-362583: FAIL_OK
    473 js1_5/extensions/regress-356378: FAIL_OK
    474 js1_5/extensions/regress-452178: FAIL_OK
    475 
    476 
    477 # Requires Mozilla-specific strict mode or options() function.
    478 ecma_3/Object/8.6.1-01: FAIL_OK
    479 js1_5/Exceptions/regress-315147: FAIL_OK
    480 js1_5/Regress/regress-106244: FAIL_OK
    481 js1_5/Regress/regress-317533: FAIL_OK
    482 js1_5/Regress/regress-323314-1: FAIL_OK
    483 js1_5/Regress/regress-352197: FAIL_OK
    484 
    485 
    486 # Equivalent to assert(false).
    487 ecma_2/RegExp/exec-001: FAIL_OK
    488 ecma_2/String/replace-001: FAIL_OK
    489 
    490 
    491 # We do not strip unicode format control characters. This is really
    492 # required for working with non-latin character sets.  We match JSC
    493 # and IE here.  Firefox matches the spec (section 7.1).
    494 ecma_3/Unicode/uc-001: FAIL_OK
    495 
    496 
    497 # A non-breaking space doesn't match \s in a regular expression.  This behaviour
    498 # matches JSC.  All the VMs have different behaviours in which characters match
    499 # \s so we do the same as JSC until they change.
    500 ecma_3/Unicode/uc-002: PASS || FAIL_OK
    501 
    502 
    503 # String.prototype.split on empty strings always returns an array
    504 # with one element (as specified in ECMA-262).
    505 js1_2/Array/array_split_1: FAIL_OK
    506 
    507 
    508 # The concat() method is defined in Array.prototype; not Array.
    509 js1_5/Array/regress-313153: FAIL_OK
    510 
    511 # The join() method is defined on Array.prototype; not Array.
    512 js1_5/Array/regress-474529: FAIL_OK
    513 
    514 # The lastIndexOf() method is defined on Array.prototype, not Array.
    515 ecma_3/Array/15.5.4.8-01: FAIL_OK
    516 
    517 # Properties fileName, and lineNumber of Error instances are
    518 # not supported. Mozilla specific extension.
    519 js1_5/Exceptions/errstack-001: FAIL_OK
    520 js1_5/Exceptions/regress-257751: FAIL_OK
    521 js1_5/Regress/regress-119719: FAIL_OK
    522 js1_5/Regress/regress-167328: FAIL_OK
    523 js1_5/Regress/regress-243869: FAIL_OK
    524 
    525 
    526 # Unsupported import/export and <xml> literals. Mozilla extensions.
    527 js1_5/Regress/regress-249211: FAIL_OK
    528 js1_5/Regress/regress-309242: FAIL_OK
    529 js1_5/Regress/regress-350692: FAIL_OK
    530 js1_5/extensions/regress-421621: FAIL_OK
    531 js1_5/extensions/regress-432075: FAIL_OK
    532 
    533 
    534 # The length of Error functions is 1 not 3.
    535 js1_5/Exceptions/regress-123002: FAIL_OK
    536 
    537 
    538 # Reserved keywords as function names, etc is not supported.
    539 js1_5/LexicalConventions/regress-343675: FAIL_OK
    540 
    541 
    542 # Tests if future reserved keywords of ECMA-262, edition 3 emit warnings. We
    543 # implement the edition 5 behaviour and fail on use of edition 5 future reserved
    544 # keywords as identifiers.
    545 js1_5/Regress/regress-240317: FAIL_OK
    546 
    547 
    548 # Unsupported list comprehensions: [ ... for ... ] and for each.
    549 js1_5/Regress/regress-352009: FAIL_OK
    550 js1_5/Regress/regress-349648: FAIL_OK
    551 
    552 
    553 # Expects top level arguments (passed on command line?) to be
    554 # the empty string?
    555 js1_5/Regress/regress-336100: FAIL_OK
    556 
    557 
    558 # Regular expression test failures due to PCRE. We match JSC (ie, perl)
    559 # behavior and not the ECMA spec.
    560 ecma_3/RegExp/perlstress-001: PASS || FAIL_OK
    561 ecma_3/RegExp/regress-334158: PASS || FAIL
    562 
    563 # This test fails due to http://code.google.com/p/v8/issues/detail?id=187
    564 # Failure to clear captures when a lookahead is unwound.
    565 ecma_3/RegExp/15.10.2-1: PASS || FAIL_OK
    566 
    567 # This test requires a failure if we try to compile a function with more
    568 # than 65536 arguments.  This seems to be a Mozilla restriction.
    569 js1_5/Regress/regress-290575: FAIL_OK
    570 
    571 
    572 # Fails because of the way function declarations are
    573 # handled in V8/JSC. V8 follows IE behavior and introduce
    574 # all nested function declarations when entering the
    575 # surrounding function, whereas Spidermonkey declares
    576 # them dynamically when the statement is executed.
    577 ecma_3/Function/scope-001: FAIL_OK
    578 ecma_3/FunExpr/fe-001: FAIL_OK
    579 js1_5/Scope/regress-184107: FAIL_OK
    580 
    581 
    582 # Function is deletable in V8 and JSC.
    583 js1_5/Regress/regress-352604: FAIL_OK
    584 
    585 
    586 # Cannot call strings as functions. Expects not to crash.
    587 js1_5/Regress/regress-417893: FAIL_OK
    588 
    589 
    590 # Unsupported use of "[]" as function parameter. We match JSC.
    591 js1_5/Regress/regress-416737-01: FAIL_OK
    592 js1_5/Regress/regress-416737-02: FAIL_OK
    593 
    594 
    595 ##################### FAILING TESTS #####################
    596 
    597 # This section is for tests that fail in V8 and pass in JSC.
    598 # Tests that fail in both V8 and JSC belong in the FAIL_OK
    599 # category.
    600 
    601 # This fails because we don't handle Function.prototype.apply with very large
    602 # numbers of arguments (depending on max stack size).  350256-02 needs more than
    603 # 4Mbytes of stack space.
    604 js1_5/Array/regress-350256-02: FAIL
    605 
    606 
    607 # This test seems designed to fail (it produces a 700Mbyte string).
    608 # We fail on out of memory.  The important thing is not to crash.
    609 js1_5/Regress/regress-303213: FAIL || TIMEOUT if $mode == debug
    610 
    611 # This test fails since we now throw in String.prototype.match when apply
    612 # is given null or undefined as this argument (and so does firefox nightly).
    613 js1_5/Regress/regress-295052: FAIL
    614 
    615 # Bug 1202592: New ecma_3/String/15.5.4.11 is failing.
    616 ecma_3/String/15.5.4.11: FAIL
    617 
    618 # Bug 1202597: New js1_5/Expressions/regress-394673 is failing.
    619 # Marked as: Will not fix. V8 throws an acceptable RangeError.
    620 js1_5/Expressions/regress-394673: FAIL
    621 
    622 
    623 # Bug 762: http://code.google.com/p/v8/issues/detail?id=762
    624 # We do not correctly handle assignments within "with"
    625 /ecma_3/Statements/12.10-01: FAIL
    626 
    627 # We do not throw an exception when a const is redeclared.
    628 # (We only fail section 1 of the test.)
    629 js1_5/Regress/regress-103602: FAIL
    630 
    631 ##################### MOZILLA EXTENSION TESTS #####################
    632 
    633 ecma/extensions/15.1.2.1-1: FAIL_OK
    634 ecma_3/extensions/regress-385393-03: FAIL_OK
    635 ecma_3/extensions/7.9.1: FAIL_OK
    636 js1_5/extensions/catchguard-001: FAIL_OK
    637 js1_5/extensions/catchguard-002: FAIL_OK
    638 js1_5/extensions/catchguard-003: FAIL_OK
    639 js1_5/extensions/getset-001: FAIL_OK
    640 js1_5/extensions/getset-003: FAIL_OK
    641 js1_5/extensions/no-such-method: FAIL_OK
    642 js1_5/extensions/regress-104077: FAIL_OK
    643 js1_5/extensions/regress-226078: FAIL_OK
    644 js1_5/extensions/regress-303277: FAIL_OK
    645 js1_5/extensions/regress-304897: FAIL_OK
    646 js1_5/extensions/regress-306738: FAIL_OK
    647 js1_5/extensions/regress-311161: FAIL_OK
    648 js1_5/extensions/regress-311583: FAIL_OK
    649 js1_5/extensions/regress-311792-01: FAIL_OK
    650 js1_5/extensions/regress-312278: FAIL_OK
    651 js1_5/extensions/regress-313630: FAIL_OK
    652 js1_5/extensions/regress-313763: FAIL_OK
    653 js1_5/extensions/regress-313803: FAIL_OK
    654 js1_5/extensions/regress-314874: FAIL_OK
    655 js1_5/extensions/regress-322957: FAIL_OK
    656 js1_5/extensions/regress-328556: FAIL_OK
    657 js1_5/extensions/regress-333541: FAIL_OK
    658 js1_5/extensions/regress-335700: FAIL_OK
    659 js1_5/extensions/regress-336409-1: FAIL_OK
    660 js1_5/extensions/regress-336409-2: FAIL_OK
    661 js1_5/extensions/regress-336410-2: FAIL_OK
    662 js1_5/extensions/regress-341956-01: FAIL_OK
    663 js1_5/extensions/regress-345967: FAIL_OK
    664 js1_5/extensions/regress-346494-01: FAIL_OK
    665 js1_5/extensions/regress-346494: FAIL_OK
    666 js1_5/extensions/regress-347306-02: FAIL_OK
    667 js1_5/extensions/regress-348986: FAIL_OK
    668 js1_5/extensions/regress-349616: FAIL_OK
    669 js1_5/extensions/regress-350312-02: FAIL_OK
    670 js1_5/extensions/regress-350312-03: FAIL_OK
    671 js1_5/extensions/regress-350531: FAIL_OK
    672 js1_5/extensions/regress-351102-01: FAIL_OK
    673 js1_5/extensions/regress-351102-02: FAIL_OK
    674 js1_5/extensions/regress-351102-06: FAIL_OK
    675 js1_5/extensions/regress-351973: FAIL_OK
    676 js1_5/extensions/regress-352060: FAIL_OK
    677 js1_5/extensions/regress-352094: FAIL_OK
    678 js1_5/extensions/regress-352261: FAIL_OK
    679 js1_5/extensions/regress-352281: FAIL_OK
    680 js1_5/extensions/regress-352455: FAIL_OK
    681 js1_5/extensions/regress-352604: FAIL_OK
    682 js1_5/extensions/regress-353214: FAIL_OK
    683 js1_5/extensions/regress-355339: FAIL_OK
    684 js1_5/extensions/regress-355497: FAIL_OK
    685 js1_5/extensions/regress-355622: FAIL_OK
    686 js1_5/extensions/regress-355736: FAIL_OK
    687 js1_5/extensions/regress-356085: FAIL_OK
    688 js1_5/extensions/regress-356106: FAIL_OK
    689 js1_5/extensions/regress-358594-01: FAIL_OK
    690 js1_5/extensions/regress-358594-02: FAIL_OK
    691 js1_5/extensions/regress-358594-03: FAIL_OK
    692 js1_5/extensions/regress-358594-04: FAIL_OK
    693 js1_5/extensions/regress-358594-05: FAIL_OK
    694 js1_5/extensions/regress-358594-06: FAIL_OK
    695 js1_5/extensions/regress-361346: FAIL_OK
    696 js1_5/extensions/regress-361360: FAIL_OK
    697 js1_5/extensions/regress-361558: FAIL_OK
    698 js1_5/extensions/regress-361571: FAIL_OK
    699 js1_5/extensions/regress-361856: FAIL_OK
    700 js1_5/extensions/regress-361964: FAIL_OK
    701 js1_5/extensions/regress-363988: FAIL_OK
    702 js1_5/extensions/regress-365869: FAIL_OK
    703 js1_5/extensions/regress-367630: FAIL_OK
    704 js1_5/extensions/regress-367923: FAIL_OK
    705 js1_5/extensions/regress-368859: FAIL_OK
    706 js1_5/extensions/regress-369696-01: FAIL_OK
    707 js1_5/extensions/regress-369696-02: FAIL_OK
    708 js1_5/extensions/regress-369696-03: FAIL_OK
    709 js1_5/extensions/regress-374589: FAIL_OK
    710 js1_5/extensions/regress-375801: FAIL_OK
    711 js1_5/extensions/regress-376052: FAIL_OK
    712 js1_5/extensions/regress-379523: FAIL_OK
    713 js1_5/extensions/regress-380581: FAIL_OK
    714 js1_5/extensions/regress-380831: FAIL_OK
    715 js1_5/extensions/regress-381205: FAIL_OK
    716 js1_5/extensions/regress-381211: FAIL_OK
    717 js1_5/extensions/regress-381304: FAIL_OK
    718 js1_5/extensions/regress-382509: FAIL_OK
    719 js1_5/extensions/regress-383965: FAIL_OK
    720 js1_5/extensions/regress-384680: FAIL_OK
    721 js1_5/extensions/regress-385393-09: FAIL_OK
    722 js1_5/extensions/regress-407501: FAIL_OK
    723 js1_5/extensions/regress-418730: FAIL_OK
    724 js1_5/extensions/regress-420612: FAIL_OK
    725 js1_5/extensions/regress-420869-01: FAIL_OK
    726 js1_5/extensions/regress-424257: FAIL_OK
    727 js1_5/extensions/regress-424683-01: FAIL_OK
    728 js1_5/extensions/regress-429739: FAIL_OK
    729 js1_5/extensions/regress-454142: FAIL_OK
    730 js1_5/extensions/regress-465145: FAIL_OK
    731 js1_5/extensions/regress-469625: FAIL_OK
    732 js1_5/extensions/regress-472787: FAIL_OK
    733 js1_5/extensions/regress-44009: FAIL_OK
    734 js1_5/extensions/regress-50447-1: FAIL_OK
    735 js1_5/extensions/regress-50447: FAIL_OK
    736 js1_5/extensions/regress-90596-001: FAIL_OK
    737 js1_5/extensions/regress-90596-002: FAIL_OK
    738 js1_5/extensions/regress-96284-001: FAIL_OK
    739 js1_5/extensions/regress-96284-002: FAIL_OK
    740 js1_5/extensions/scope-001: FAIL_OK
    741 js1_5/extensions/toLocaleFormat-01: FAIL_OK
    742 js1_5/extensions/toLocaleFormat-02: FAIL_OK
    743 
    744 js1_5/extensions/regress-330569: TIMEOUT
    745 js1_5/extensions/regress-351448: TIMEOUT
    746 js1_5/extensions/regress-342960: FAIL_OK || TIMEOUT if $mode == debug
    747 # In the 64-bit version, this test takes longer to run out of memory
    748 # than it does in the 32-bit version when attempting to generate a huge
    749 # error message in debug mode.
    750 js1_5/extensions/regress-336410-1: FAIL_OK || TIMEOUT if ($mode == debug && $arch == x64)
    751 
    752 ##################### DECOMPILATION TESTS #####################
    753 
    754 # We don't really about the outcome of running the
    755 # decompilation tests as long as they don't crash or
    756 # timeout.
    757 
    758 js1_5/decompilation/regress-344120: PASS || FAIL
    759 js1_5/decompilation/regress-346892: PASS || FAIL
    760 js1_5/decompilation/regress-346902: PASS || FAIL
    761 js1_5/decompilation/regress-346904: PASS || FAIL
    762 js1_5/decompilation/regress-346915: PASS || FAIL
    763 js1_5/decompilation/regress-349484: PASS || FAIL
    764 js1_5/decompilation/regress-349489: PASS || FAIL
    765 js1_5/decompilation/regress-349491: PASS || FAIL
    766 js1_5/decompilation/regress-349596: PASS || FAIL
    767 js1_5/decompilation/regress-349650: PASS || FAIL
    768 js1_5/decompilation/regress-349663: PASS || FAIL
    769 js1_5/decompilation/regress-350242: PASS || FAIL
    770 js1_5/decompilation/regress-350263: PASS || FAIL
    771 js1_5/decompilation/regress-350271: PASS || FAIL
    772 js1_5/decompilation/regress-350666: PASS || FAIL
    773 js1_5/decompilation/regress-350670: PASS || FAIL
    774 js1_5/decompilation/regress-351104: PASS || FAIL
    775 js1_5/decompilation/regress-351219: PASS || FAIL
    776 js1_5/decompilation/regress-351336: PASS || FAIL
    777 js1_5/decompilation/regress-351597: PASS || FAIL
    778 js1_5/decompilation/regress-351625: PASS || FAIL
    779 js1_5/decompilation/regress-351626: PASS || FAIL
    780 js1_5/decompilation/regress-351693: PASS || FAIL
    781 js1_5/decompilation/regress-351705: PASS || FAIL
    782 js1_5/decompilation/regress-351793: PASS || FAIL
    783 js1_5/decompilation/regress-352013: PASS || FAIL
    784 js1_5/decompilation/regress-352022: PASS || FAIL
    785 js1_5/decompilation/regress-352073: PASS || FAIL
    786 js1_5/decompilation/regress-352202: PASS || FAIL
    787 js1_5/decompilation/regress-352312: PASS || FAIL
    788 js1_5/decompilation/regress-352360: PASS || FAIL
    789 js1_5/decompilation/regress-352375: PASS || FAIL
    790 js1_5/decompilation/regress-352453: PASS || FAIL
    791 js1_5/decompilation/regress-352649: PASS || FAIL
    792 js1_5/decompilation/regress-352873-01: PASS || FAIL
    793 js1_5/decompilation/regress-352873-02: PASS || FAIL
    794 js1_5/decompilation/regress-353000: PASS || FAIL
    795 js1_5/decompilation/regress-353120: PASS || FAIL
    796 js1_5/decompilation/regress-353146: PASS || FAIL
    797 js1_5/decompilation/regress-354878: PASS || FAIL
    798 js1_5/decompilation/regress-354910: PASS || FAIL
    799 js1_5/decompilation/regress-355992: PASS || FAIL
    800 js1_5/decompilation/regress-356083: PASS || FAIL
    801 js1_5/decompilation/regress-356248: PASS || FAIL
    802 js1_5/decompilation/regress-371692: PASS || FAIL
    803 js1_5/decompilation/regress-373678: PASS || FAIL
    804 js1_5/decompilation/regress-375639: PASS || FAIL
    805 js1_5/decompilation/regress-375882: PASS || FAIL
    806 js1_5/decompilation/regress-376564: PASS || FAIL
    807 js1_5/decompilation/regress-383721: PASS || FAIL
    808 js1_5/decompilation/regress-406555: PASS || FAIL
    809 js1_5/decompilation/regress-460870: PASS || FAIL
    810 
    811 # These tests take an unreasonable amount of time so we skip them
    812 # in fast mode.
    813 
    814 js1_5/Regress/regress-312588: TIMEOUT || SKIP if $FAST == yes
    815 js1_5/Regress/regress-271716-n: PASS || SKIP if $FAST == yes
    816 
    817 
    818 [ $arch == arm ]
    819 
    820 # Times out and print so much output that we need to skip it to not
    821 # hang the builder.
    822 js1_5/extensions/regress-342960: SKIP
    823 
    824 # BUG(3251229): Times out when running new crankshaft test script.
    825 ecma_3/RegExp/regress-311414: SKIP
    826 ecma/Date/15.9.5.8: SKIP
    827 ecma/Date/15.9.5.10-2: SKIP
    828 ecma/Date/15.9.5.11-2: SKIP
    829 ecma/Date/15.9.5.12-2: SKIP
    830 js1_5/Array/regress-99120-02: SKIP
    831 js1_5/extensions/regress-371636: SKIP
    832 js1_5/Regress/regress-203278-1: SKIP
    833 js1_5/Regress/regress-404755:  SKIP
    834 js1_5/Regress/regress-451322: SKIP
    835 
    836 
    837 # BUG(1040): Allow this test to timeout.
    838 js1_5/GC/regress-203278-2: PASS || TIMEOUT
    839 
    840 
    841 [ $fast == yes && $arch == arm ]
    842 
    843 # In fast mode on arm we try to skip all tests that would time out,
    844 # since running the tests takes so long in the first place.
    845 
    846 js1_5/Regress/regress-280769-2: SKIP
    847 js1_5/Regress/regress-280769-3: SKIP
    848 js1_5/Regress/regress-244470: SKIP
    849 js1_5/Regress/regress-203278-1: SKIP
    850 js1_5/Regress/regress-290575: SKIP
    851 js1_5/Regress/regress-159334: SKIP
    852 js1_5/Regress/regress-321971: SKIP
    853 js1_5/Regress/regress-347306-01: SKIP
    854 js1_5/Regress/regress-280769-1: SKIP
    855 js1_5/Regress/regress-280769-5: SKIP
    856 js1_5/GC/regress-306788: SKIP
    857 js1_5/GC/regress-278725: SKIP
    858 js1_5/GC/regress-203278-3: SKIP
    859 js1_5/GC/regress-311497: SKIP
    860 js1_5/Array/regress-99120-02: SKIP
    861 ecma/Date/15.9.5.22-1: SKIP
    862 ecma/Date/15.9.5.20: SKIP
    863 ecma/Date/15.9.5.12-2: SKIP
    864 ecma/Date/15.9.5.8: SKIP
    865 ecma/Date/15.9.5.9: SKIP
    866 ecma/Date/15.9.5.11-2: SKIP
    867 ecma/Expressions/11.7.2: SKIP
    868 ecma/Expressions/11.10-2: SKIP
    869 ecma/Expressions/11.7.3: SKIP
    870 ecma/Expressions/11.10-3: SKIP
    871 ecma/Expressions/11.7.1: SKIP
    872 ecma_3/RegExp/regress-209067: SKIP
    873 
    874 [ $arch == mips ]
    875 
    876 # Times out and print so much output that we need to skip it to not
    877 # hang the builder.
    878 js1_5/extensions/regress-342960: SKIP
    879 
    880 # BUG(3251229): Times out when running new crankshaft test script.
    881 ecma_3/RegExp/regress-311414: SKIP
    882 ecma/Date/15.9.5.8: SKIP
    883 ecma/Date/15.9.5.10-2: SKIP
    884 ecma/Date/15.9.5.11-2: SKIP
    885 ecma/Date/15.9.5.12-2: SKIP
    886 js1_5/Array/regress-99120-02: SKIP
    887 js1_5/extensions/regress-371636: SKIP
    888 js1_5/Regress/regress-203278-1: SKIP
    889 js1_5/Regress/regress-404755:  SKIP
    890 js1_5/Regress/regress-451322: SKIP
    891 
    892 
    893 # BUG(1040): Allow this test to timeout.
    894 js1_5/GC/regress-203278-2: PASS || TIMEOUT
    895 
    896 
    897 [ $fast == yes && $arch == mips ]
    898 
    899 # In fast mode on mips we try to skip all tests that would time out,
    900 # since running the tests takes so long in the first place.
    901 
    902 js1_5/Regress/regress-280769-2: SKIP
    903 js1_5/Regress/regress-280769-3: SKIP
    904 js1_5/Regress/regress-244470: SKIP
    905 js1_5/Regress/regress-203278-1: SKIP
    906 js1_5/Regress/regress-290575: SKIP
    907 js1_5/Regress/regress-159334: SKIP
    908 js1_5/Regress/regress-321971: SKIP
    909 js1_5/Regress/regress-347306-01: SKIP
    910 js1_5/Regress/regress-280769-1: SKIP
    911 js1_5/Regress/regress-280769-5: SKIP
    912 js1_5/GC/regress-306788: SKIP
    913 js1_5/GC/regress-278725: SKIP
    914 js1_5/GC/regress-203278-3: SKIP
    915 js1_5/GC/regress-311497: SKIP
    916 js1_5/Array/regress-99120-02: SKIP
    917 ecma/Date/15.9.5.22-1: SKIP
    918 ecma/Date/15.9.5.20: SKIP
    919 ecma/Date/15.9.5.12-2: SKIP
    920 ecma/Date/15.9.5.8: SKIP
    921 ecma/Date/15.9.5.9: SKIP
    922 ecma/Date/15.9.5.11-2: SKIP
    923 ecma/Expressions/11.7.2: SKIP
    924 ecma/Expressions/11.10-2: SKIP
    925 ecma/Expressions/11.7.3: SKIP
    926 ecma/Expressions/11.10-3: SKIP
    927 ecma/Expressions/11.7.1: SKIP
    928 ecma_3/RegExp/regress-209067: SKIP
    929