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