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