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@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 45prefix mozilla 46def 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. 54js1_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. 58js1_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 62js1_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. 69ecma_3/Date/15.9.3.2-1: SKIP 70js1_2/function/Number: SKIP 71 72# TODO(2018): Temporarily allow timeout in debug mode. 73js1_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. 79js1_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. 85js1_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. 91js1_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). 95js1_5/GC/regress-348532: SLOW 96 97 98##################### FLAKY TESTS ##################### 99 100# These tests time out in debug mode but pass in product mode 101js1_5/Regress/regress-360969-03: PASS || TIMEOUT if $mode == debug 102js1_5/Regress/regress-360969-04: PASS || TIMEOUT if $mode == debug 103js1_5/Regress/regress-360969-05: PASS || TIMEOUT if $mode == debug 104js1_5/Regress/regress-360969-06: PASS || TIMEOUT if $mode == debug 105js1_5/extensions/regress-365527: PASS || TIMEOUT if $mode == debug 106 107js1_5/Regress/regress-280769-3: PASS || FAIL if $mode == debug 108js1_5/Regress/regress-203278-1: PASS || FAIL if $mode == debug 109js1_5/GC/regress-203278-2: PASS || FAIL if $mode == debug 110js1_5/Regress/regress-244470: PASS || FAIL if $mode == debug 111ecma_3/RegExp/regress-209067: PASS || FAIL if $mode == debug 112js1_5/GC/regress-278725: PASS || FAIL if $mode == debug 113# http://b/issue?id=1206983 114js1_5/Regress/regress-367561-03: PASS || FAIL if $mode == debug 115ecma/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. 120ecma/Date/15.9.2.1: PASS || FAIL 121ecma/Date/15.9.2.2-1: PASS || FAIL 122ecma/Date/15.9.2.2-2: PASS || FAIL 123ecma/Date/15.9.2.2-3: PASS || FAIL 124ecma/Date/15.9.2.2-4: PASS || FAIL 125ecma/Date/15.9.2.2-5: PASS || FAIL 126ecma/Date/15.9.2.2-6: PASS || FAIL 127 128# 1026139: These date tests fail on arm and mips 129ecma/Date/15.9.5.29-1: PASS || (($ARM || $MIPS) && FAIL) 130ecma/Date/15.9.5.34-1: PASS || (($ARM || $MIPS) && FAIL) 131ecma/Date/15.9.5.28-1: PASS || (($ARM || $MIPS) && FAIL) 132 133# 1050186: Arm/MIPS vm is broken; probably unrelated to dates 134ecma/Array/15.4.4.5-3: PASS || (($ARM || $MIPS) && FAIL) 135ecma/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 139ecma/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? 143js1_5/Regress/regress-169559: PASS || FAIL 144 145 146# Test that rely on specific timezone (not working in Denmark). 147js1_5/Regress/regress-58116: PASS || FAIL 148 149 150# Flaky random() test. Tests the distribution of calls to Math.random(). 151js1_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. 156ecma_3/RegExp/regress-311414: PASS || FAIL 157ecma_3/RegExp/regress-289669: PASS || FAIL 158js1_5/String/regress-314890: PASS || FAIL 159js1_5/String/regress-56940-01: PASS || FAIL 160js1_5/String/regress-56940-02: PASS || FAIL 161js1_5/String/regress-157334-01: PASS || FAIL 162js1_5/String/regress-322772: PASS || FAIL 163js1_5/Array/regress-99120-01: PASS || FAIL 164js1_5/Array/regress-99120-02: PASS || FAIL 165js1_5/Regress/regress-347306-01: PASS || FAIL 166js1_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. 173ecma/Date/15.9.5.10-1: PASS || FAIL 174ecma/Date/15.9.5.12-1: PASS || FAIL 175ecma/Date/15.9.5.14: PASS || FAIL 176ecma/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? 182js1_5/Regress/regress-290575: PASS || FAIL 183js1_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. 188js1_5/extensions/regress-371636: PASS || FAIL || TIMEOUT if $mode == debug 189 190 191# Tests depend on GC timings. Inherently flaky. 192js1_5/GC/regress-383269-01: PASS || FAIL 193js1_5/GC/regress-383269-02: PASS || FAIL 194js1_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. 199js1_5/extensions/regress-363258: PASS || FAIL 200 201 202# Test that assumes specific runtime for a regexp, flaky in debug mode. 203ecma_3/RegExp/regress-85721: PASS || FAIL if $mode == debug 204 205 206# Test that assumes specific execution time, flaky in debug mode. 207js1_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. 217ecma/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. 221ecma/String/15.5.4.8-2: FAIL_OK 222 223# Fail because of toLowerCase and toUpperCase conversion. 224ecma/String/15.5.4.11-2: FAIL_OK 225ecma/String/15.5.4.11-5: FAIL_OK 226ecma/String/15.5.4.12-1: FAIL_OK 227ecma/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. 233ecma/String/15.5.4.12-5: FAIL_OK 234 235# Creates a linked list of arrays until we run out of memory or timeout. 236js1_5/Regress/regress-312588: SKIP 237 238 239# Runs out of memory because it compiles huge functions. 240js1_5/Function/regress-338001: FAIL_OK 241js1_5/Function/regress-338121-01: FAIL_OK 242js1_5/Function/regress-338121-02: FAIL_OK 243js1_5/Function/regress-338121-03: FAIL_OK 244 245# Expectes 'prototype' property of functions to be enumerable. 246js1_5/Function/10.1.6-01: FAIL_OK 247 248# Length of objects whose prototype chain includes a function 249ecma_3/Function/regress-313570: FAIL_OK 250 251# toPrecision argument restricted to range 1..21 in JSC/V8 252js1_5/Regress/regress-452346: FAIL_OK 253ecma_3/Number/15.7.4.7-1: FAIL_OK 254 255# toExponential argument restricted to range 0..20 in JSC/V8 256ecma_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. 261ecma_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). 267ecma_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? 274ecma_3/RegExp/regress-209919: PASS || FAIL_OK 275js1_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. 281ecma_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. 288ecma_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? 293js1_5/Regress/regress-230216-2: FAIL_OK 294 295 296# Regexp too long for PCRE. 297js1_5/Regress/regress-280769: PASS || FAIL 298js1_5/Regress/regress-280769-1: PASS || FAIL 299js1_5/Regress/regress-280769-2: PASS || FAIL 300js1_5/Regress/regress-280769-4: PASS || FAIL 301js1_5/Regress/regress-280769-5: PASS || FAIL 302 303 304# We do not support static RegExp.multiline - should we?. 305js1_2/regexp/RegExp_multiline: FAIL_OK 306js1_2/regexp/RegExp_multiline_as_array: FAIL_OK 307js1_2/regexp/beginLine: FAIL_OK 308js1_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. 312js1_2/regexp/RegExp_input: FAIL_OK 313js1_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'. 318js1_2/function/regexparg-1: FAIL_OK 319 320 321# Date trouble? 322js1_5/Date/regress-301738-02: FAIL_OK 323 324 325# This test fails for all browsers on in the CET timezone. 326ecma/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. 331js1_5/Date/regress-309925-02: FAIL_OK 332 333 334# Print string after deleting array element? 335js1_5/Expressions/regress-96526-delelem: FAIL_OK 336 337 338# Stack overflows should be InternalError: too much recursion? 339js1_5/Regress/regress-234389: FAIL_OK 340 341 342# This may very well be a bogus test. I'm not sure yet. 343js1_5/Regress/regress-320119: FAIL_OK 344 345 346# No support for toSource(). 347js1_5/Regress/regress-248444: FAIL_OK 348js1_5/Regress/regress-313967-01: FAIL_OK 349js1_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. 353js1_5/Array/regress-350256-03: FAIL_OK 354 355 356# Extra arguments not handled properly in String.prototype.match 357js1_5/Regress/regress-179524: FAIL_OK 358 359 360# Uncategorized failures. Please help categorize (or fix) these failures. 361js1_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. 366ecma/GlobalObject/15.1.2.2-1: FAIL_OK 367ecma/GlobalObject/15.1.2.3-1: FAIL_OK 368ecma/GlobalObject/15.1.2.4: FAIL_OK 369ecma/GlobalObject/15.1.2.5-1: FAIL_OK 370ecma/GlobalObject/15.1.2.6: FAIL_OK 371ecma/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. 376js1_2/function/tostring-2: FAIL_OK 377js1_2/Objects/toString-001: FAIL_OK 378js1_5/LexicalConventions/regress-469940: FAIL_OK 379js1_5/Exceptions/regress-332472: FAIL_OK 380js1_5/Regress/regress-173067: FAIL_OK 381js1_5/Regress/regress-355556: FAIL_OK 382js1_5/Regress/regress-328664: FAIL_OK 383js1_5/Regress/regress-252892: FAIL_OK 384js1_5/Regress/regress-352208: FAIL_OK 385ecma_3/Array/15.4.5.1-01: FAIL_OK 386ecma_3/Array/regress-387501: FAIL_OK 387ecma_3/LexicalConventions/7.9.1: FAIL_OK 388ecma_3/RegExp/regress-375711: FAIL_OK 389ecma_3/Unicode/regress-352044-01: FAIL_OK 390ecma_3/extensions/regress-274152: FAIL_OK 391js1_5/Regress/regress-372364: FAIL_OK 392js1_5/Regress/regress-420919: FAIL_OK 393js1_5/Regress/regress-422348: FAIL_OK 394js1_5/Regress/regress-410852: FAIL_OK 395ecma_3/RegExp/regress-375715-04: FAIL_OK 396js1_5/decompilation/regress-456964-01: FAIL_OK 397js1_5/decompilation/regress-437288-02: FAIL_OK 398js1_5/decompilation/regress-457824: FAIL_OK 399js1_5/decompilation/regress-460116-01: FAIL_OK 400js1_5/decompilation/regress-460116-02: FAIL_OK 401js1_5/decompilation/regress-460501: FAIL_OK 402js1_5/decompilation/regress-460116-03: FAIL_OK 403js1_5/decompilation/regress-461110: FAIL_OK 404js1_5/decompilation/regress-456964-01: FAIL_OK 405js1_5/decompilation/regress-437288-02: FAIL_OK 406js1_5/decompilation/regress-457824: FAIL_OK 407js1_5/decompilation/regress-460116-01: FAIL_OK 408js1_5/decompilation/regress-460116-02: FAIL_OK 409js1_5/decompilation/regress-460116-03: FAIL_OK 410js1_5/decompilation/regress-460501: FAIL_OK 411js1_5/decompilation/regress-461110: FAIL_OK 412 413 414 415# Tests that use uneval. Non-ECMA. 416js1_5/GC/regress-418128: FAIL_OK 417js1_5/extensions/regress-465276: FAIL_OK 418js1_5/Error/regress-465377: FAIL_OK 419 420# Tests that use the watch method. Non-ECMA. 421js1_5/extensions/regress-435345-01: FAIL_OK 422js1_5/extensions/regress-455413: FAIL_OK 423 424 425# Uses Mozilla-specific QName, XML, XMLList and Iterator. 426js1_5/Regress/regress-407323: FAIL_OK 427js1_5/Regress/regress-407957: FAIL_OK 428 429 430# Relies on JavaScript 1.2 / 1.3 deprecated features. 431js1_2/function/String: FAIL_OK 432js1_2/operator/equality: FAIL_OK 433js1_2/version120/boolean-001: FAIL_OK 434js1_2/String/concat: FAIL_OK 435js1_2/function/Function_object: FAIL_OK 436js1_2/function/tostring-1: FAIL_OK 437js1_2/version120/regress-99663: FAIL_OK 438js1_2/regexp/RegExp_lastIndex: FAIL_OK 439js1_2/regexp/string_split: FAIL_OK 440 441 442# RegExps are not callable. 443js1_2/regexp/simple_form: FAIL_OK 444js1_2/regexp/regress-6359: FAIL_OK 445js1_2/regexp/regress-9141: FAIL_OK 446js1_5/Regress/regress-224956: FAIL_OK 447js1_5/Regress/regress-325925: FAIL_OK 448ecma_2/RegExp/regress-001: FAIL_OK 449 450# We do not check for bad surrogate pairs when quoting strings. 451js1_5/Regress/regress-315974: FAIL_OK 452 453 454# Use unsupported "watch". 455js1_5/Regress/regress-213482: FAIL_OK 456js1_5/Regress/regress-240577: FAIL_OK 457js1_5/Regress/regress-355344: FAIL_OK 458js1_5/Object/regress-362872-01: FAIL_OK 459js1_5/Object/regress-362872-02: FAIL_OK 460js1_5/Regress/regress-361467: FAIL_OK 461js1_5/Regress/regress-385393-06: FAIL_OK 462js1_5/Regress/regress-506567: FAIL_OK 463 464 465# Use special Mozilla getter/setter syntax 466js1_5/Regress/regress-354924: FAIL_OK 467js1_5/Regress/regress-355341: FAIL_OK 468js1_5/GC/regress-316885-01: FAIL_OK 469js1_5/GetSet/getset-002: FAIL_OK 470js1_5/GetSet/regress-353264: FAIL_OK 471js1_5/Regress/regress-361617: FAIL_OK 472js1_5/Regress/regress-362583: FAIL_OK 473js1_5/extensions/regress-356378: FAIL_OK 474js1_5/extensions/regress-452178: FAIL_OK 475 476 477# Requires Mozilla-specific strict mode or options() function. 478ecma_3/Object/8.6.1-01: FAIL_OK 479js1_5/Exceptions/regress-315147: FAIL_OK 480js1_5/Regress/regress-106244: FAIL_OK 481js1_5/Regress/regress-317533: FAIL_OK 482js1_5/Regress/regress-323314-1: FAIL_OK 483js1_5/Regress/regress-352197: FAIL_OK 484 485 486# Equivalent to assert(false). 487ecma_2/RegExp/exec-001: FAIL_OK 488ecma_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). 494ecma_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. 500ecma_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). 505js1_2/Array/array_split_1: FAIL_OK 506 507 508# The concat() method is defined in Array.prototype; not Array. 509js1_5/Array/regress-313153: FAIL_OK 510 511# The join() method is defined on Array.prototype; not Array. 512js1_5/Array/regress-474529: FAIL_OK 513 514# The lastIndexOf() method is defined on Array.prototype, not Array. 515ecma_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. 519js1_5/Exceptions/errstack-001: FAIL_OK 520js1_5/Exceptions/regress-257751: FAIL_OK 521js1_5/Regress/regress-119719: FAIL_OK 522js1_5/Regress/regress-167328: FAIL_OK 523js1_5/Regress/regress-243869: FAIL_OK 524 525 526# Unsupported import/export and <xml> literals. Mozilla extensions. 527js1_5/Regress/regress-249211: FAIL_OK 528js1_5/Regress/regress-309242: FAIL_OK 529js1_5/Regress/regress-350692: FAIL_OK 530js1_5/extensions/regress-421621: FAIL_OK 531js1_5/extensions/regress-432075: FAIL_OK 532 533 534# The length of Error functions is 1 not 3. 535js1_5/Exceptions/regress-123002: FAIL_OK 536 537 538# Reserved keywords as function names, etc is not supported. 539js1_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. 545js1_5/Regress/regress-240317: FAIL_OK 546 547 548# Unsupported list comprehensions: [ ... for ... ] and for each. 549js1_5/Regress/regress-352009: FAIL_OK 550js1_5/Regress/regress-349648: FAIL_OK 551 552 553# Expects top level arguments (passed on command line?) to be 554# the empty string? 555js1_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. 560ecma_3/RegExp/perlstress-001: PASS || FAIL_OK 561ecma_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. 565ecma_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. 569js1_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. 577ecma_3/Function/scope-001: FAIL_OK 578ecma_3/FunExpr/fe-001: FAIL_OK 579js1_5/Scope/regress-184107: FAIL_OK 580 581 582# Function is deletable in V8 and JSC. 583js1_5/Regress/regress-352604: FAIL_OK 584 585 586# Cannot call strings as functions. Expects not to crash. 587js1_5/Regress/regress-417893: FAIL_OK 588 589 590# Unsupported use of "[]" as function parameter. We match JSC. 591js1_5/Regress/regress-416737-01: FAIL_OK 592js1_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. 604js1_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. 609js1_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). 613js1_5/Regress/regress-295052: FAIL 614 615# Bug 1202592: New ecma_3/String/15.5.4.11 is failing. 616ecma_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. 620js1_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.) 629js1_5/Regress/regress-103602: FAIL 630 631##################### MOZILLA EXTENSION TESTS ##################### 632 633ecma/extensions/15.1.2.1-1: FAIL_OK 634ecma_3/extensions/regress-385393-03: FAIL_OK 635ecma_3/extensions/7.9.1: FAIL_OK 636js1_5/extensions/catchguard-001: FAIL_OK 637js1_5/extensions/catchguard-002: FAIL_OK 638js1_5/extensions/catchguard-003: FAIL_OK 639js1_5/extensions/getset-001: FAIL_OK 640js1_5/extensions/getset-003: FAIL_OK 641js1_5/extensions/no-such-method: FAIL_OK 642js1_5/extensions/regress-104077: FAIL_OK 643js1_5/extensions/regress-226078: FAIL_OK 644js1_5/extensions/regress-303277: FAIL_OK 645js1_5/extensions/regress-304897: FAIL_OK 646js1_5/extensions/regress-306738: FAIL_OK 647js1_5/extensions/regress-311161: FAIL_OK 648js1_5/extensions/regress-311583: FAIL_OK 649js1_5/extensions/regress-311792-01: FAIL_OK 650js1_5/extensions/regress-312278: FAIL_OK 651js1_5/extensions/regress-313630: FAIL_OK 652js1_5/extensions/regress-313763: FAIL_OK 653js1_5/extensions/regress-313803: FAIL_OK 654js1_5/extensions/regress-314874: FAIL_OK 655js1_5/extensions/regress-322957: FAIL_OK 656js1_5/extensions/regress-328556: FAIL_OK 657js1_5/extensions/regress-333541: FAIL_OK 658js1_5/extensions/regress-335700: FAIL_OK 659js1_5/extensions/regress-336409-1: FAIL_OK 660js1_5/extensions/regress-336409-2: FAIL_OK 661js1_5/extensions/regress-336410-2: FAIL_OK 662js1_5/extensions/regress-341956-01: FAIL_OK 663js1_5/extensions/regress-345967: FAIL_OK 664js1_5/extensions/regress-346494-01: FAIL_OK 665js1_5/extensions/regress-346494: FAIL_OK 666js1_5/extensions/regress-347306-02: FAIL_OK 667js1_5/extensions/regress-348986: FAIL_OK 668js1_5/extensions/regress-349616: FAIL_OK 669js1_5/extensions/regress-350312-02: FAIL_OK 670js1_5/extensions/regress-350312-03: FAIL_OK 671js1_5/extensions/regress-350531: FAIL_OK 672js1_5/extensions/regress-351102-01: FAIL_OK 673js1_5/extensions/regress-351102-02: FAIL_OK 674js1_5/extensions/regress-351102-06: FAIL_OK 675js1_5/extensions/regress-351973: FAIL_OK 676js1_5/extensions/regress-352060: FAIL_OK 677js1_5/extensions/regress-352094: FAIL_OK 678js1_5/extensions/regress-352261: FAIL_OK 679js1_5/extensions/regress-352281: FAIL_OK 680js1_5/extensions/regress-352455: FAIL_OK 681js1_5/extensions/regress-352604: FAIL_OK 682js1_5/extensions/regress-353214: FAIL_OK 683js1_5/extensions/regress-355339: FAIL_OK 684js1_5/extensions/regress-355497: FAIL_OK 685js1_5/extensions/regress-355622: FAIL_OK 686js1_5/extensions/regress-355736: FAIL_OK 687js1_5/extensions/regress-356085: FAIL_OK 688js1_5/extensions/regress-356106: FAIL_OK 689js1_5/extensions/regress-358594-01: FAIL_OK 690js1_5/extensions/regress-358594-02: FAIL_OK 691js1_5/extensions/regress-358594-03: FAIL_OK 692js1_5/extensions/regress-358594-04: FAIL_OK 693js1_5/extensions/regress-358594-05: FAIL_OK 694js1_5/extensions/regress-358594-06: FAIL_OK 695js1_5/extensions/regress-361346: FAIL_OK 696js1_5/extensions/regress-361360: FAIL_OK 697js1_5/extensions/regress-361558: FAIL_OK 698js1_5/extensions/regress-361571: FAIL_OK 699js1_5/extensions/regress-361856: FAIL_OK 700js1_5/extensions/regress-361964: FAIL_OK 701js1_5/extensions/regress-363988: FAIL_OK 702js1_5/extensions/regress-365869: FAIL_OK 703js1_5/extensions/regress-367630: FAIL_OK 704js1_5/extensions/regress-367923: FAIL_OK 705js1_5/extensions/regress-368859: FAIL_OK 706js1_5/extensions/regress-369696-01: FAIL_OK 707js1_5/extensions/regress-369696-02: FAIL_OK 708js1_5/extensions/regress-369696-03: FAIL_OK 709js1_5/extensions/regress-374589: FAIL_OK 710js1_5/extensions/regress-375801: FAIL_OK 711js1_5/extensions/regress-376052: FAIL_OK 712js1_5/extensions/regress-379523: FAIL_OK 713js1_5/extensions/regress-380581: FAIL_OK 714js1_5/extensions/regress-380831: FAIL_OK 715js1_5/extensions/regress-381205: FAIL_OK 716js1_5/extensions/regress-381211: FAIL_OK 717js1_5/extensions/regress-381304: FAIL_OK 718js1_5/extensions/regress-382509: FAIL_OK 719js1_5/extensions/regress-383965: FAIL_OK 720js1_5/extensions/regress-384680: FAIL_OK 721js1_5/extensions/regress-385393-09: FAIL_OK 722js1_5/extensions/regress-407501: FAIL_OK 723js1_5/extensions/regress-418730: FAIL_OK 724js1_5/extensions/regress-420612: FAIL_OK 725js1_5/extensions/regress-420869-01: FAIL_OK 726js1_5/extensions/regress-424257: FAIL_OK 727js1_5/extensions/regress-424683-01: FAIL_OK 728js1_5/extensions/regress-429739: FAIL_OK 729js1_5/extensions/regress-454142: FAIL_OK 730js1_5/extensions/regress-465145: FAIL_OK 731js1_5/extensions/regress-469625: FAIL_OK 732js1_5/extensions/regress-472787: FAIL_OK 733js1_5/extensions/regress-44009: FAIL_OK 734js1_5/extensions/regress-50447-1: FAIL_OK 735js1_5/extensions/regress-50447: FAIL_OK 736js1_5/extensions/regress-90596-001: FAIL_OK 737js1_5/extensions/regress-90596-002: FAIL_OK 738js1_5/extensions/regress-96284-001: FAIL_OK 739js1_5/extensions/regress-96284-002: FAIL_OK 740js1_5/extensions/scope-001: FAIL_OK 741js1_5/extensions/toLocaleFormat-01: FAIL_OK 742js1_5/extensions/toLocaleFormat-02: FAIL_OK 743 744js1_5/extensions/regress-330569: TIMEOUT 745js1_5/extensions/regress-351448: TIMEOUT 746js1_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. 750js1_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 758js1_5/decompilation/regress-344120: PASS || FAIL 759js1_5/decompilation/regress-346892: PASS || FAIL 760js1_5/decompilation/regress-346902: PASS || FAIL 761js1_5/decompilation/regress-346904: PASS || FAIL 762js1_5/decompilation/regress-346915: PASS || FAIL 763js1_5/decompilation/regress-349484: PASS || FAIL 764js1_5/decompilation/regress-349489: PASS || FAIL 765js1_5/decompilation/regress-349491: PASS || FAIL 766js1_5/decompilation/regress-349596: PASS || FAIL 767js1_5/decompilation/regress-349650: PASS || FAIL 768js1_5/decompilation/regress-349663: PASS || FAIL 769js1_5/decompilation/regress-350242: PASS || FAIL 770js1_5/decompilation/regress-350263: PASS || FAIL 771js1_5/decompilation/regress-350271: PASS || FAIL 772js1_5/decompilation/regress-350666: PASS || FAIL 773js1_5/decompilation/regress-350670: PASS || FAIL 774js1_5/decompilation/regress-351104: PASS || FAIL 775js1_5/decompilation/regress-351219: PASS || FAIL 776js1_5/decompilation/regress-351336: PASS || FAIL 777js1_5/decompilation/regress-351597: PASS || FAIL 778js1_5/decompilation/regress-351625: PASS || FAIL 779js1_5/decompilation/regress-351626: PASS || FAIL 780js1_5/decompilation/regress-351693: PASS || FAIL 781js1_5/decompilation/regress-351705: PASS || FAIL 782js1_5/decompilation/regress-351793: PASS || FAIL 783js1_5/decompilation/regress-352013: PASS || FAIL 784js1_5/decompilation/regress-352022: PASS || FAIL 785js1_5/decompilation/regress-352073: PASS || FAIL 786js1_5/decompilation/regress-352202: PASS || FAIL 787js1_5/decompilation/regress-352312: PASS || FAIL 788js1_5/decompilation/regress-352360: PASS || FAIL 789js1_5/decompilation/regress-352375: PASS || FAIL 790js1_5/decompilation/regress-352453: PASS || FAIL 791js1_5/decompilation/regress-352649: PASS || FAIL 792js1_5/decompilation/regress-352873-01: PASS || FAIL 793js1_5/decompilation/regress-352873-02: PASS || FAIL 794js1_5/decompilation/regress-353000: PASS || FAIL 795js1_5/decompilation/regress-353120: PASS || FAIL 796js1_5/decompilation/regress-353146: PASS || FAIL 797js1_5/decompilation/regress-354878: PASS || FAIL 798js1_5/decompilation/regress-354910: PASS || FAIL 799js1_5/decompilation/regress-355992: PASS || FAIL 800js1_5/decompilation/regress-356083: PASS || FAIL 801js1_5/decompilation/regress-356248: PASS || FAIL 802js1_5/decompilation/regress-371692: PASS || FAIL 803js1_5/decompilation/regress-373678: PASS || FAIL 804js1_5/decompilation/regress-375639: PASS || FAIL 805js1_5/decompilation/regress-375882: PASS || FAIL 806js1_5/decompilation/regress-376564: PASS || FAIL 807js1_5/decompilation/regress-383721: PASS || FAIL 808js1_5/decompilation/regress-406555: PASS || FAIL 809js1_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 814js1_5/Regress/regress-312588: TIMEOUT || SKIP if $FAST == yes 815js1_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. 822js1_5/extensions/regress-342960: SKIP 823 824# BUG(3251229): Times out when running new crankshaft test script. 825ecma_3/RegExp/regress-311414: SKIP 826ecma/Date/15.9.5.8: SKIP 827ecma/Date/15.9.5.10-2: SKIP 828ecma/Date/15.9.5.11-2: SKIP 829ecma/Date/15.9.5.12-2: SKIP 830js1_5/Array/regress-99120-02: SKIP 831js1_5/extensions/regress-371636: SKIP 832js1_5/Regress/regress-203278-1: SKIP 833js1_5/Regress/regress-404755: SKIP 834js1_5/Regress/regress-451322: SKIP 835 836 837# BUG(1040): Allow this test to timeout. 838js1_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 846js1_5/Regress/regress-280769-2: SKIP 847js1_5/Regress/regress-280769-3: SKIP 848js1_5/Regress/regress-244470: SKIP 849js1_5/Regress/regress-203278-1: SKIP 850js1_5/Regress/regress-290575: SKIP 851js1_5/Regress/regress-159334: SKIP 852js1_5/Regress/regress-321971: SKIP 853js1_5/Regress/regress-347306-01: SKIP 854js1_5/Regress/regress-280769-1: SKIP 855js1_5/Regress/regress-280769-5: SKIP 856js1_5/GC/regress-306788: SKIP 857js1_5/GC/regress-278725: SKIP 858js1_5/GC/regress-203278-3: SKIP 859js1_5/GC/regress-311497: SKIP 860js1_5/Array/regress-99120-02: SKIP 861ecma/Date/15.9.5.22-1: SKIP 862ecma/Date/15.9.5.20: SKIP 863ecma/Date/15.9.5.12-2: SKIP 864ecma/Date/15.9.5.8: SKIP 865ecma/Date/15.9.5.9: SKIP 866ecma/Date/15.9.5.11-2: SKIP 867ecma/Expressions/11.7.2: SKIP 868ecma/Expressions/11.10-2: SKIP 869ecma/Expressions/11.7.3: SKIP 870ecma/Expressions/11.10-3: SKIP 871ecma/Expressions/11.7.1: SKIP 872ecma_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. 878js1_5/extensions/regress-342960: SKIP 879 880# BUG(3251229): Times out when running new crankshaft test script. 881ecma_3/RegExp/regress-311414: SKIP 882ecma/Date/15.9.5.8: SKIP 883ecma/Date/15.9.5.10-2: SKIP 884ecma/Date/15.9.5.11-2: SKIP 885ecma/Date/15.9.5.12-2: SKIP 886js1_5/Array/regress-99120-02: SKIP 887js1_5/extensions/regress-371636: SKIP 888js1_5/Regress/regress-203278-1: SKIP 889js1_5/Regress/regress-404755: SKIP 890js1_5/Regress/regress-451322: SKIP 891 892 893# BUG(1040): Allow this test to timeout. 894js1_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 902js1_5/Regress/regress-280769-2: SKIP 903js1_5/Regress/regress-280769-3: SKIP 904js1_5/Regress/regress-244470: SKIP 905js1_5/Regress/regress-203278-1: SKIP 906js1_5/Regress/regress-290575: SKIP 907js1_5/Regress/regress-159334: SKIP 908js1_5/Regress/regress-321971: SKIP 909js1_5/Regress/regress-347306-01: SKIP 910js1_5/Regress/regress-280769-1: SKIP 911js1_5/Regress/regress-280769-5: SKIP 912js1_5/GC/regress-306788: SKIP 913js1_5/GC/regress-278725: SKIP 914js1_5/GC/regress-203278-3: SKIP 915js1_5/GC/regress-311497: SKIP 916js1_5/Array/regress-99120-02: SKIP 917ecma/Date/15.9.5.22-1: SKIP 918ecma/Date/15.9.5.20: SKIP 919ecma/Date/15.9.5.12-2: SKIP 920ecma/Date/15.9.5.8: SKIP 921ecma/Date/15.9.5.9: SKIP 922ecma/Date/15.9.5.11-2: SKIP 923ecma/Expressions/11.7.2: SKIP 924ecma/Expressions/11.10-2: SKIP 925ecma/Expressions/11.7.3: SKIP 926ecma/Expressions/11.10-3: SKIP 927ecma/Expressions/11.7.1: SKIP 928ecma_3/RegExp/regress-209067: SKIP 929