fast/js/dfg-* tests should wait for the concurrent JIT
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Sep 2013 06:30:15 +0000 (06:30 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Sep 2013 06:30:15 +0000 (06:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=120723

Source/JavaScriptCore:

Reviewed by Geoffrey Garen.

* runtime/TestRunnerUtils.cpp:
(JSC::numberOfDFGCompiles): This should also handle constructors.

LayoutTests:

Reviewed by Geoffrey Garen.

Add dfgShouldBe(), a handy function that covers a lot of common cases.
Also convert a bunch of tests.

* fast/js/dfg-activation-register-overwritten-in-throw-expected.txt:
* fast/js/dfg-add-not-number-expected.txt:
* fast/js/dfg-allocation-profile-watch-point-exit-expected.txt:
* fast/js/dfg-arguments-alias-escape-expected.txt:
* fast/js/dfg-arguments-cross-code-origin-expected.txt:
* fast/js/dfg-arguments-mixed-alias-expected.txt:
* fast/js/dfg-arguments-strict-mode-expected.txt:
* fast/js/dfg-arguments-unexpected-escape-expected.txt:
* fast/js/dfg-array-dead-expected.txt:
* fast/js/dfg-array-length-dead-expected.txt:
* fast/js/dfg-array-pop-value-clearing-expected.txt:
* fast/js/dfg-array-push-bad-time-expected.txt:
* fast/js/dfg-array-push-slow-put-expected.txt:
* fast/js/dfg-arrayify-when-late-prevent-extensions-expected.txt:
* fast/js/dfg-arrayify-when-prevent-extensions-expected.txt:
* fast/js/dfg-bool-to-int32-reuse-expected.txt:
* fast/js/jsc-test-list:
* fast/js/resources/js-test-pre.js:
(dfgShouldBe):
* fast/js/resources/standalone-pre.js:
(dfgShouldBe):
* fast/js/script-tests/dfg-activation-register-overwritten-in-throw.js:
(g):
* fast/js/script-tests/dfg-add-not-number.js:
* fast/js/script-tests/dfg-allocation-profile-watch-point-exit.js:
(foo):
* fast/js/script-tests/dfg-arguments-alias-escape.js:
* fast/js/script-tests/dfg-arguments-cross-code-origin.js:
* fast/js/script-tests/dfg-arguments-mixed-alias.js:
* fast/js/script-tests/dfg-arguments-strict-mode.js:
* fast/js/script-tests/dfg-arguments-unexpected-escape.js:
* fast/js/script-tests/dfg-array-dead.js:
* fast/js/script-tests/dfg-array-length-dead.js:
* fast/js/script-tests/dfg-array-pop-value-clearing.js:
* fast/js/script-tests/dfg-array-push-bad-time.js:
* fast/js/script-tests/dfg-array-push-slow-put.js:
* fast/js/script-tests/dfg-arrayify-when-late-prevent-extensions.js:
* fast/js/script-tests/dfg-arrayify-when-prevent-extensions.js:
* fast/js/script-tests/dfg-bool-to-int32-reuse.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155096 268f45cc-cd09-0410-ab3c-d52691b4dbfc

38 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/js/dfg-activation-register-overwritten-in-throw-expected.txt
LayoutTests/fast/js/dfg-add-not-number-expected.txt
LayoutTests/fast/js/dfg-allocation-profile-watch-point-exit-expected.txt
LayoutTests/fast/js/dfg-arguments-alias-escape-expected.txt
LayoutTests/fast/js/dfg-arguments-cross-code-origin-expected.txt
LayoutTests/fast/js/dfg-arguments-mixed-alias-expected.txt
LayoutTests/fast/js/dfg-arguments-strict-mode-expected.txt
LayoutTests/fast/js/dfg-arguments-unexpected-escape-expected.txt
LayoutTests/fast/js/dfg-array-dead-expected.txt
LayoutTests/fast/js/dfg-array-length-dead-expected.txt
LayoutTests/fast/js/dfg-array-pop-value-clearing-expected.txt
LayoutTests/fast/js/dfg-array-push-bad-time-expected.txt
LayoutTests/fast/js/dfg-array-push-slow-put-expected.txt
LayoutTests/fast/js/dfg-arrayify-when-late-prevent-extensions-expected.txt
LayoutTests/fast/js/dfg-arrayify-when-prevent-extensions-expected.txt
LayoutTests/fast/js/dfg-bool-to-int32-reuse-expected.txt
LayoutTests/fast/js/jsc-test-list
LayoutTests/fast/js/resources/js-test-pre.js
LayoutTests/fast/js/resources/standalone-pre.js
LayoutTests/fast/js/script-tests/dfg-activation-register-overwritten-in-throw.js
LayoutTests/fast/js/script-tests/dfg-add-not-number.js
LayoutTests/fast/js/script-tests/dfg-allocation-profile-watch-point-exit.js
LayoutTests/fast/js/script-tests/dfg-arguments-alias-escape.js
LayoutTests/fast/js/script-tests/dfg-arguments-cross-code-origin.js
LayoutTests/fast/js/script-tests/dfg-arguments-mixed-alias.js
LayoutTests/fast/js/script-tests/dfg-arguments-strict-mode.js
LayoutTests/fast/js/script-tests/dfg-arguments-unexpected-escape.js
LayoutTests/fast/js/script-tests/dfg-array-dead.js
LayoutTests/fast/js/script-tests/dfg-array-length-dead.js
LayoutTests/fast/js/script-tests/dfg-array-pop-value-clearing.js
LayoutTests/fast/js/script-tests/dfg-array-push-bad-time.js
LayoutTests/fast/js/script-tests/dfg-array-push-slow-put.js
LayoutTests/fast/js/script-tests/dfg-arrayify-when-late-prevent-extensions.js
LayoutTests/fast/js/script-tests/dfg-arrayify-when-prevent-extensions.js
LayoutTests/fast/js/script-tests/dfg-bool-to-int32-reuse.js
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/TestRunnerUtils.cpp

index 717d28c..da9dd8e 100644 (file)
@@ -1,3 +1,53 @@
+2013-09-04  Filip Pizlo  <fpizlo@apple.com>
+
+        fast/js/dfg-* tests should wait for the concurrent JIT
+        https://bugs.webkit.org/show_bug.cgi?id=120723
+
+        Reviewed by Geoffrey Garen.
+        
+        Add dfgShouldBe(), a handy function that covers a lot of common cases.
+        Also convert a bunch of tests.
+
+        * fast/js/dfg-activation-register-overwritten-in-throw-expected.txt:
+        * fast/js/dfg-add-not-number-expected.txt:
+        * fast/js/dfg-allocation-profile-watch-point-exit-expected.txt:
+        * fast/js/dfg-arguments-alias-escape-expected.txt:
+        * fast/js/dfg-arguments-cross-code-origin-expected.txt:
+        * fast/js/dfg-arguments-mixed-alias-expected.txt:
+        * fast/js/dfg-arguments-strict-mode-expected.txt:
+        * fast/js/dfg-arguments-unexpected-escape-expected.txt:
+        * fast/js/dfg-array-dead-expected.txt:
+        * fast/js/dfg-array-length-dead-expected.txt:
+        * fast/js/dfg-array-pop-value-clearing-expected.txt:
+        * fast/js/dfg-array-push-bad-time-expected.txt:
+        * fast/js/dfg-array-push-slow-put-expected.txt:
+        * fast/js/dfg-arrayify-when-late-prevent-extensions-expected.txt:
+        * fast/js/dfg-arrayify-when-prevent-extensions-expected.txt:
+        * fast/js/dfg-bool-to-int32-reuse-expected.txt:
+        * fast/js/jsc-test-list:
+        * fast/js/resources/js-test-pre.js:
+        (dfgShouldBe):
+        * fast/js/resources/standalone-pre.js:
+        (dfgShouldBe):
+        * fast/js/script-tests/dfg-activation-register-overwritten-in-throw.js:
+        (g):
+        * fast/js/script-tests/dfg-add-not-number.js:
+        * fast/js/script-tests/dfg-allocation-profile-watch-point-exit.js:
+        (foo):
+        * fast/js/script-tests/dfg-arguments-alias-escape.js:
+        * fast/js/script-tests/dfg-arguments-cross-code-origin.js:
+        * fast/js/script-tests/dfg-arguments-mixed-alias.js:
+        * fast/js/script-tests/dfg-arguments-strict-mode.js:
+        * fast/js/script-tests/dfg-arguments-unexpected-escape.js:
+        * fast/js/script-tests/dfg-array-dead.js:
+        * fast/js/script-tests/dfg-array-length-dead.js:
+        * fast/js/script-tests/dfg-array-pop-value-clearing.js:
+        * fast/js/script-tests/dfg-array-push-bad-time.js:
+        * fast/js/script-tests/dfg-array-push-slow-put.js:
+        * fast/js/script-tests/dfg-arrayify-when-late-prevent-extensions.js:
+        * fast/js/script-tests/dfg-arrayify-when-prevent-extensions.js:
+        * fast/js/script-tests/dfg-bool-to-int32-reuse.js:
+
 2013-09-04  Arpita Bahuguna  <a.bah@samsung.com>
 
         setAttributeNode() does not set the new value to an existing attribute if specified attribute is in a different case.
index e367ebf..411f5f6 100644 (file)
@@ -3,6 +3,7 @@ This tests that the DFG does not attempt to overwrite the activation register wi
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
+PASS try { g() } catch (e) { } is void 0 on all iterations including after DFG tier-up.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index c38e3f9..e3bc07f 100644 (file)
@@ -3,7 +3,8 @@ Tests that adding things that aren't numbers using ++ does not crash or generate
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Passed some tests silently.
+PASS foo("foo") is NaN on all iterations including after DFG tier-up.
+PASS successfullyParsed is true
 
 TEST COMPLETE
 
index e67a0af..79de408 100644 (file)
@@ -3,107 +3,7 @@ Checks that if a DFG AllocationProfileWatchpoint fires and the callee is otherwi
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS foo() is 42
-PASS successfullyParsed is true
+Passed some tests silently.
 
 TEST COMPLETE
 
index 272d3b3..7008a6c 100644 (file)
@@ -3,7 +3,8 @@ Tests aliased uses of 'arguments' that escape.
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Passed some tests silently.
+PASS bar(42) is 1764 on all iterations including after DFG tier-up.
+PASS successfullyParsed is true
 
 TEST COMPLETE
 
index 39fb4ca..50785ed 100644 (file)
@@ -3,7 +3,8 @@ Tests uses of 'arguments' that are aliased but span code origins.
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Passed some tests silently.
+PASS baz(42) is 42 on all iterations including after DFG tier-up.
+PASS successfullyParsed is true
 
 TEST COMPLETE
 
index 991a807..84b1f3e 100644 (file)
@@ -3,7 +3,8 @@ Tests functions that use 'arguments' in both an aliased and a non-aliased way.
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Passed some tests silently.
+PASS bar(42) is 42 on all iterations including after DFG tier-up.
+PASS successfullyParsed is true
 
 TEST COMPLETE
 
index 5c91f7a..e73ef07 100644 (file)
@@ -3,7 +3,7 @@ Tests what happens when you use arguments in strict mode and present the DFG wit
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS f(1) is 1
+PASS f(1) is 1 on all iterations including after DFG tier-up.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 93fe830..7c28648 100644 (file)
@@ -3,7 +3,8 @@ Tests aliased uses of 'arguments' that have an unexpected escape.
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Passed some tests silently.
+PASS bar(42) is 84 on all iterations including after DFG tier-up.
+PASS successfullyParsed is true
 
 TEST COMPLETE
 
index 76dbc09..bdbb5bb 100644 (file)
@@ -3,1006 +3,7 @@ Tests that an array being dead does not result in register allocation failures.
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
-PASS foo() is 2
+PASS foo() is 2 on all iterations including after DFG tier-up.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 32ca94e..4910a9f 100644 (file)
@@ -3,7 +3,8 @@ Tests that an array length access being dead does not result in register allocat
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Passed some tests silently.
+PASS foo({f:[]}) is 42 on all iterations including after DFG tier-up.
+PASS successfullyParsed is true
 
 TEST COMPLETE
 
index d26dc57..8ca37ff 100644 (file)
@@ -3,1006 +3,7 @@ Tests that array popping properly cleans up the popped element.
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
-PASS foo([1, 2]) is [2,42,,]
+PASS foo([1, 2]) is [2,42,,] on all iterations including after DFG tier-up.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 44d0276..f42caf7 100644 (file)
@@ -3,1059 +3,58 @@ Tests that defining a setter on the Array prototype and then using ArrayPush wor
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
-PASS "0,1,2,3,4" is "0,1,2,3,4"
 Henceforth I will have a bad time.
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
 Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-PASS ouches is 50
-PASS successfullyParsed is true
+Passed some tests silently.
 
 TEST COMPLETE
 
index 7612b86..12ad47e 100644 (file)
@@ -3,207 +3,8 @@ Tests that defining a setter on the Array prototype works with ArrayPush.
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-Ouch!
-PASS "0,1,2,,4" is "0,1,2,,4"
-PASS ouches is 100
+PASS foo().join(",") is "0,1,2,,4" on all iterations including after DFG tier-up.
+PASS ouches is numRuns
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 75a3296..16a4aa3 100644 (file)
@@ -3,207 +3,7 @@ Tests that Arraify does good things when Object.preventExtensions() has been cal
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is 42
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS successfullyParsed is true
+Passed some tests silently.
 
 TEST COMPLETE
 
index b443194..a3853ab 100644 (file)
@@ -3,206 +3,7 @@ Tests that Arraify does good things when Object.preventExtensions() has been cal
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
-PASS foo(o) is void 0
+PASS var o = {}; Object.preventExtensions(o); foo(o) is void 0 on all iterations including after DFG tier-up.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 6607dad..bc1bc21 100644 (file)
@@ -3,106 +3,7 @@ Tests that using a value predicted boolean after it is converted to an int32 doe
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
-PASS foo(true) is [2, true]
+PASS foo(true) is [2, true] on all iterations including after DFG tier-up.
 PASS successfullyParsed is true
 
 TEST COMPLETE
index d38cc97..89f0033 100644 (file)
@@ -71,6 +71,7 @@ fast/js/debugger
 fast/js/declaration-in-block
 fast/js/delete-getters-setters
 fast/js/delete-then-put
+fast/js/dfg-activation-register-overwritten-in-throw
 fast/js/dfg-abs-backwards-propagation
 fast/js/dfg-add-not-number
 fast/js/dfg-allocation-profile-watch-point-exit
index d99e17c..b017207 100644 (file)
@@ -222,6 +222,48 @@ function shouldBe(_a, _b, quiet)
     testFailed(_a + " should be " + stringify(_bv) + " (of type " + typeof _bv + "). Was " + _av + " (of type " + typeof _av + ").");
 }
 
+function dfgShouldBe(theFunction, _a, _b)
+{
+  if (typeof theFunction != "function" || typeof _a != "string" || typeof _b != "string")
+    debug("WARN: dfgShouldBe() expects a function and two strings");
+  noInline(theFunction);
+  var exception;
+  var values = [];
+
+  // Defend against tests that muck with numeric properties on array.prototype.
+  values.__proto__ = null;
+  values.push = Array.prototype.push;
+  
+  try {
+    while (!dfgCompiled({f:theFunction}))
+      values.push(eval(_a));
+    values.push(eval(_a));
+  } catch (e) {
+    exception = e;
+  }
+
+  var _bv = eval(_b);
+  if (exception)
+    testFailed(_a + " should be " + stringify(_bv) + ". On iteration " + (values.length + 1) + ", threw exception " + exception);
+  else {
+    var allPassed = true;
+    for (var i = 0; i < values.length; ++i) {
+      var _av = values[i];
+      if (isResultCorrect(_av, _bv))
+        continue;
+      if (typeof(_av) == typeof(_bv))
+        testFailed(_a + " should be " + stringify(_bv) + ". On iteration " + (i + 1) + ", was " + stringify(_av) + ".");
+      else
+        testFailed(_a + " should be " + stringify(_bv) + " (of type " + typeof _bv + "). On iteration " + (i + 1) + ", was " + _av + " (of type " + typeof _av + ").");
+      allPassed = false;
+    }
+    if (allPassed)
+      testPassed(_a + " is " + _b + " on all iterations including after DFG tier-up.");
+  }
+  
+  return values.length;
+}
+
 // Execute condition every 5 milliseconds until it succeed or failureTime is reached.
 // completionHandler is executed on success, failureHandler is executed on timeout.
 function _waitForCondition(condition, failureTime, completionHandler, failureHandler)
index 9dc057f..2f30cdd 100644 (file)
@@ -133,6 +133,48 @@ function shouldBe(_a, _b)
     testFailed(_a + " should be " + stringify(_bv) + " (of type " + typeof _bv + "). Was " + _av + " (of type " + typeof _av + ").");
 }
 
+function dfgShouldBe(theFunction, _a, _b)
+{
+  if (typeof theFunction != "function" || typeof _a != "string" || typeof _b != "string")
+    debug("WARN: dfgShouldBe() expects a function and two strings");
+  noInline(theFunction);
+  var exception;
+  var values = [];
+
+  // Defend against tests that muck with numeric properties on array.prototype.
+  values.__proto__ = null;
+  values.push = Array.prototype.push;
+  
+  try {
+    while (!dfgCompiled({f:theFunction}))
+      values.push(eval(_a));
+    values.push(eval(_a));
+  } catch (e) {
+    exception = e;
+  }
+
+  var _bv = eval(_b);
+  if (exception)
+    testFailed(_a + " should be " + stringify(_bv) + ". On iteration " + (values.length + 1) + ", threw exception " + exception);
+  else {
+    var allPassed = true;
+    for (var i = 0; i < values.length; ++i) {
+      var _av = values[i];
+      if (isResultCorrect(_av, _bv))
+        continue;
+      if (typeof(_av) == typeof(_bv))
+        testFailed(_a + " should be " + stringify(_bv) + ". On iteration " + (i + 1) + ", was " + stringify(_av) + ".");
+      else
+        testFailed(_a + " should be " + stringify(_bv) + " (of type " + typeof _bv + "). On iteration " + (i + 1) + ", was " + _av + " (of type " + typeof _av + ").");
+      allPassed = false;
+    }
+    if (allPassed)
+      testPassed(_a + " is " + _b + " on all iterations including after DFG tier-up.");
+  }
+  
+  return values.length;
+}
+
 function shouldBeTrue(_a) { shouldBe(_a, "true"); }
 function shouldBeFalse(_a) { shouldBe(_a, "false"); }
 function shouldBeNaN(_a) { shouldBe(_a, "NaN"); }
index e565b98..7b3e490 100644 (file)
@@ -5,11 +5,6 @@ description(
 function g() { 
     (eval("-7") = 0);
 }
-while (!dfgCompiled({f:g})) {
-    try {
-        g()
-    } catch(e) {
 
-    }
-}
+dfgShouldBe(g, "try { g() } catch (e) { }", "void 0");
+
index 7c6d092..12c14d0 100644 (file)
@@ -7,9 +7,4 @@ function foo(a) {
     return a;
 }
 
-silentTestPass = true;
-noInline(foo);
-
-for (var i = 0; i < 100; i = dfgIncrement({f:foo, i:i + 1, n:50}))
-    shouldBe("foo(\"foo\" + i)", "NaN");
-
+dfgShouldBe(foo, "foo(\"foo\")", "NaN");
index 3f1aadc..be51c69 100644 (file)
@@ -7,11 +7,13 @@ function Foo() {
 }
 
 function foo() {
-    eval("// Don't optimize me!");
     return new Foo().f;
 }
 
-for (var i = 0; i < 100; ++i) {
+silentTestPass = true;
+noInline(Foo);
+
+for (var i = 0; i < 100; i = dfgIncrement({f:Foo, i:i + 1, n:90})) {
     if (i == 95)
         Foo.prototype = {foo: 62};
     shouldBe("foo()", "42");
index a08ad6a..fc8f2df 100644 (file)
@@ -15,9 +15,4 @@ function bar(x) {
     return result[0] * result[1][0];
 }
 
-silentTestPass = true;
-noInline(bar);
-
-for (var i = 0; i < 200; i = dfgIncrement({f:bar, i:i + 1, n:100}))
-    shouldBe("bar(42)", "1764");
-
+dfgShouldBe(bar, "bar(42)", "1764");
index f83ba22..4813677 100644 (file)
@@ -17,8 +17,4 @@ function baz(x) {
     return bar(foo(x));
 }
 
-silentTestPass = true;
-noInline(baz);
-
-for (var i = 0; i < 200; i = dfgIncrement({f:baz, i:i + 1, n:100}))
-    shouldBe("baz(42)", "42");
+dfgShouldBe(baz, "baz(42)", "42");
index 56d0b63..b2c316d 100644 (file)
@@ -14,9 +14,4 @@ function bar(x) {
     return foo(x);
 }
 
-silentTestPass = true;
-noInline(bar);
-
-for (var i = 0; i < 200; i = dfgIncrement({f:bar, i:i + 1, n:100}))
-    shouldBe("bar(42)", "42");
-
+dfgShouldBe(bar, "bar(42)", "42");
index c16ba63..d02cc4c 100644 (file)
@@ -8,10 +8,4 @@ function f(a) {
     return arguments[0];
 }
 
-noInline(f);
-
-while (!dfgCompiled({f:f}))
-    f(1);
-
-shouldBe("f(1)", "1");
-
+dfgShouldBe(f, "f(1)", "1");
index 0ef9b60..c9aea8d 100644 (file)
@@ -20,8 +20,4 @@ function bar(x) {
     return foo(x);
 }
 
-silentTestPass = true;
-noInline(bar);
-
-for (var i = 0; i < 200; i = dfgIncrement({f:bar, i:i + 1, n:100}))
-    shouldBe("bar(42)", "84");
+dfgShouldBe(bar, "bar(42)", "84");
index a4ffa19..4cce632 100644 (file)
@@ -23,7 +23,4 @@ function bar(x) {
     return a;
 }
 
-for (var i = 0; i < 1000; ++i) {
-    shouldBe("foo()", "2");
-}
-
+dfgShouldBe(foo, "foo()", "2");
index bb44591..48c237b 100644 (file)
@@ -7,10 +7,4 @@ function foo(x) {
     return 42;
 }
 
-noInline(foo);
-silentTestPass = true;
-
-for (var i = 0; i < 2; i = dfgIncrement({f:foo, i:i + 1, n:1})) {
-    shouldBe("foo({f:[]})", "42");
-}
-
+dfgShouldBe(foo, "foo({f:[]})", "42");
index 7d8c311..7aaec66 100644 (file)
@@ -8,5 +8,4 @@ function foo(a) {
     return [x, a.pop(), a.pop()];
 }
 
-for (var i = 0; i < 1000; ++i)
-    shouldBe("foo([1, 2])", "[2,42,,]");
+dfgShouldBe(foo, "foo([1, 2])", "[2,42,,]");
index 718c59b..cc5dc67 100644 (file)
@@ -18,7 +18,10 @@ function foo(haveABadTime) {
 
 var expected = "\"0,1,2,3,4\"";
 
-for (var i = 0; i < 1000; ++i) {
+silentTestPass = true;
+noInline(foo);
+
+for (var i = 0; i < 1000; i = dfgIncrement({f:foo, i:i + 1, n:900})) {
     var haveABadTime;
     if (i == 950) {
         haveABadTime = 2;
index 35ea612..f0cc989 100644 (file)
@@ -3,7 +3,7 @@ description(
 );
 
 var ouches = 0;
-Array.prototype.__defineSetter__("3", function() { debug("Ouch!"); ouches++; });
+Array.prototype.__defineSetter__("3", function() { ouches++; });
 
 function foo() {
     var result = [];
@@ -12,7 +12,6 @@ function foo() {
     return result;
 }
 
-for (var i = 0; i < 100; ++i)
-    shouldBe("\"" + foo().join(",") + "\"", "\"0,1,2,,4\"");
+var numRuns = dfgShouldBe(foo, "foo().join(\",\")", "\"0,1,2,,4\"");
 
-shouldBe("ouches", "100");
+shouldBe("ouches", "numRuns");
index bc72290..7928a8b 100644 (file)
@@ -7,7 +7,10 @@ function foo(o) {
     return o[0];
 }
 
-for (var i = 0; i < 200; ++i) {
+silentTestPass = true;
+noInline(foo);
+
+for (var i = 0; i < 200; i = dfgIncrement({f:foo, i:i + 1, n: 100})) {
     var o = {};
     var expected;
     if (i >= 150) {
index 3a0e0ce..de0199d 100644 (file)
@@ -7,8 +7,4 @@ function foo(o) {
     return o[0];
 }
 
-for (var i = 0; i < 200; ++i) {
-    var o = {};
-    Object.preventExtensions(o);
-    shouldBe("foo(o)", "void 0");
-}
+dfgShouldBe(foo, "var o = {}; Object.preventExtensions(o); foo(o)", "void 0");
index d82b922..5cfe1ad 100644 (file)
@@ -6,5 +6,4 @@ function foo(x) {
     return [x << 1, x];
 }
 
-for (var i = 0; i < 100; ++i)
-    shouldBe("foo(true)", "[2, true]");
+dfgShouldBe(foo, "foo(true)", "[2, true]");
index 8ecc0d2..3a1fc24 100644 (file)
@@ -1,5 +1,15 @@
 2013-09-04  Filip Pizlo  <fpizlo@apple.com>
 
+        fast/js/dfg-* tests should wait for the concurrent JIT
+        https://bugs.webkit.org/show_bug.cgi?id=120723
+
+        Reviewed by Geoffrey Garen.
+        
+        * runtime/TestRunnerUtils.cpp:
+        (JSC::numberOfDFGCompiles): This should also handle constructors.
+
+2013-09-04  Filip Pizlo  <fpizlo@apple.com>
+
         run-fast-jsc should work with new-school fast/js tests that loop until the DFG tiers up
         https://bugs.webkit.org/show_bug.cgi?id=120697
 
index e59e217..2d21b7f 100644 (file)
@@ -56,6 +56,9 @@ JSValue numberOfDFGCompiles(JSValue theFunctionValue)
         CodeBlock* baselineCodeBlock = executable->baselineCodeBlockFor(CodeForCall);
         
         if (!baselineCodeBlock)
+            baselineCodeBlock = executable->baselineCodeBlockFor(CodeForConstruct);
+        
+        if (!baselineCodeBlock)
             return jsNumber(0);
 
         if (pretendToHaveManyCompiles)