2013-10-02 Geoffrey Garen <ggaren@apple.com>
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Oct 2013 04:31:04 +0000 (04:31 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Oct 2013 04:31:04 +0000 (04:31 +0000)
        Sync'd sunspider-1.0.2 to PerformanceTests/SunSpider/hosted/sunspider-1.0.2.

        * perf/sunspider-1.0.2/sunspider-1.0.2/driver.html:
        * perf/sunspider-1.0.2/sunspider-1.0.2/sunspider-test-contents.js:

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

Websites/webkit.org/ChangeLog
Websites/webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/driver.html
Websites/webkit.org/perf/sunspider-1.0.2/sunspider-1.0.2/sunspider-test-contents.js

index d92e9d2..375872a 100644 (file)
@@ -1,3 +1,10 @@
+2013-10-02  Geoffrey Garen  <ggaren@apple.com>
+
+        Sync'd sunspider-1.0.2 to PerformanceTests/SunSpider/hosted/sunspider-1.0.2.
+
+        * perf/sunspider-1.0.2/sunspider-1.0.2/driver.html:
+        * perf/sunspider-1.0.2/sunspider-1.0.2/sunspider-test-contents.js:
+
 2013-09-26  Geoffrey Garen  <ggaren@apple.com>
 
         Fixed a version number string in SunSpider 1.0.2
index 409a3ba..cf8d75a 100644 (file)
@@ -29,7 +29,7 @@
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 -->
 
-<title>SunSpider 1.0.1 JavaScript Benchmark (sunspider-1.0.2 test suite - In Progress...)</title>
+<title>SunSpider 1.0.2 JavaScript Benchmark (sunspider-1.0.2 test suite - In Progress...)</title>
 <link rel="stylesheet" href="../sunspider.css">
 </head>
 
@@ -53,28 +53,25 @@ for (var i = 0; i < output.length; i++) {
 
 function start() 
 {
-    window.setTimeout(next, 500);
+    window.setTimeout(next, 128);
 }
 
 function next()
 {
-    var timeout = window.setTimeout(next, 0);
-
     document.getElementById("frameparent").innerHTML = "";
     document.getElementById("frameparent").innerHTML = "<iframe id='testframe'>";
     var testFrame = document.getElementById("testframe");
-    testIndex++;
-    if (testIndex < tests.length) {
+    if (++testIndex < tests.length) {
+        window.setTimeout(next, 0);
+
         testFrame.contentDocument.open();
         testFrame.contentDocument.write(testContents[testIndex]);
         testFrame.contentDocument.close();
     } else if (++currentRepeat < repeatCount) { 
-        testIndex = 0;
-        testFrame.contentDocument.open();
-        testFrame.contentDocument.write(testContents[testIndex]);
-        testFrame.contentDocument.close();
+        window.setTimeout(next, 128);
+
+        testIndex = -1;
     } else {
-        window.clearTimeout(timeout);
         finish();
     }
 }
index eb44559..7713635 100644 (file)
@@ -30,18 +30,27 @@ var testContents = [ "<!DOCTYPE html>\n\
 \n\
 <title>SunSpider 3d-cube</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>3d-cube</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -448,18 +457,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider 3d-morph</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>3d-morph</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -574,18 +592,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider 3d-raytrace</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>3d-raytrace</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -1084,18 +1111,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider access-binary-trees</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>access-binary-trees</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -1200,18 +1236,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider access-fannkuch</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>access-fannkuch</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -1333,18 +1378,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider access-nbody</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>access-nbody</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -1570,18 +1624,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider access-nsieve</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>access-nsieve</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -1679,18 +1742,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider bitops-3bit-bits-in-byte</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>bitops-3bit-bits-in-byte</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -1782,18 +1854,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider bitops-bits-in-byte</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>bitops-bits-in-byte</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -1875,18 +1956,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider bitops-bitwise-and</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>bitops-bitwise-and</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -1973,18 +2063,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider bitops-nsieve-bits</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>bitops-nsieve-bits</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -2078,18 +2177,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider controlflow-recursive</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>controlflow-recursive</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -2173,18 +2281,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider crypto-aes</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>crypto-aes</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -2662,18 +2779,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider crypto-md5</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>crypto-md5</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -3017,18 +3143,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider crypto-sha1</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>crypto-sha1</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -3308,18 +3443,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider date-format-tofte</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>date-format-tofte</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -3672,18 +3816,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider date-format-xparb</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>date-format-xparb</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -4155,18 +4308,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider math-cordic</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>math-cordic</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -4324,18 +4486,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider math-partial-sums</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>math-partial-sums</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -4432,18 +4603,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider math-spectral-norm</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>math-spectral-norm</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -4554,18 +4734,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider regexp-dna</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>regexp-dna</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -6338,18 +6527,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider string-base64</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>string-base64</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -6538,18 +6736,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider string-fasta</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>string-fasta</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -6691,18 +6898,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider string-tagcloud</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>string-tagcloud</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -7025,18 +7241,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider string-unpack-code</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>string-unpack-code</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\
@@ -7169,18 +7394,27 @@ record(_sunSpiderInterval);\n\
 \n\
 <title>SunSpider string-validate-input</title>\n\
 <link rel=\"stylesheet\" href=\"../sunspider.css\">\n\
+<style>\n\
+#countdown {\n\
+    font-size: 128px; \n\
+    text-align: center;\n\
+}\n\
+</style>\n\
 </head>\n\
 \n\
 <body>\n\
-<h3>string-validate-input</h3>\n\
-<div id=\"console\">\n\
-</div>\n\
+<h3 id=\"countdown\"></h3>\n\
 <script>\n\
+if (window.parent) {\n\
+    document.getElementById(\"countdown\").innerHTML =\n\
+        window.parent.currentRepeat < 0\n\
+            ? \"warmup\"\n\
+            : (window.parent.repeatCount - window.parent.currentRepeat);\n\
+}\n\
+\n\
 function record(time) {\n\
-    document.getElementById(\"console\").innerHTML = time + \"ms\";\n\
-    if (window.parent) {\n\
+    if (window.parent)\n\
         parent.recordResult(time);\n\
-    }\n\
 }\n\
 \n\
 window.onerror = function(e) {\n\