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