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