<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[194756] trunk/PerformanceTests</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/194756">194756</a></dd>
<dt>Author</dt> <dd>jonlee@apple.com</dd>
<dt>Date</dt> <dd>2016-01-07 20:29:42 -0800 (Thu, 07 Jan 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Fix new test.

* Animometer/resources/runner/tests.js: Wrong URL from an
old patch.
* Animometer/tests/master/particles.html:
* Animometer/tests/master/resources/dom-particles.js:
(Particle.call.reset): Figured out a simpler way to set up
the particles.
(this.move.reset): Deleted.
(this.move._applyAttributes): Deleted.
* Animometer/tests/master/resources/particles.js:
(Particle): Call move() after reset().</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkPerformanceTestsAnimometerresourcesrunnertestsjs">trunk/PerformanceTests/Animometer/resources/runner/tests.js</a></li>
<li><a href="#trunkPerformanceTestsAnimometertestsmasterparticleshtml">trunk/PerformanceTests/Animometer/tests/master/particles.html</a></li>
<li><a href="#trunkPerformanceTestsAnimometertestsmasterresourcesdomparticlesjs">trunk/PerformanceTests/Animometer/tests/master/resources/dom-particles.js</a></li>
<li><a href="#trunkPerformanceTestsAnimometertestsmasterresourcesparticlesjs">trunk/PerformanceTests/Animometer/tests/master/resources/particles.js</a></li>
<li><a href="#trunkPerformanceTestsChangeLog">trunk/PerformanceTests/ChangeLog</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkPerformanceTestsAnimometerresourcesrunnertestsjs"></a>
<div class="modfile"><h4>Modified: trunk/PerformanceTests/Animometer/resources/runner/tests.js (194755 => 194756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/PerformanceTests/Animometer/resources/runner/tests.js        2016-01-08 04:28:12 UTC (rev 194755)
+++ trunk/PerformanceTests/Animometer/resources/runner/tests.js        2016-01-08 04:29:42 UTC (rev 194756)
</span><span class="lines">@@ -25,8 +25,8 @@
</span><span class="cx">             name: &quot;Canvas line segments&quot;
</span><span class="cx">         },
</span><span class="cx">         {
</span><del>-            url: &quot;master/svg-stage.html&quot;,
-            name: &quot;SVG clipped rects&quot;
</del><ins>+            url: &quot;master/particles.html&quot;,
+            name: &quot;DOM particles, SVG masks&quot;
</ins><span class="cx">         },
</span><span class="cx">     ]
</span><span class="cx"> ));
</span></span></pre></div>
<a id="trunkPerformanceTestsAnimometertestsmasterparticleshtml"></a>
<div class="modfile"><h4>Modified: trunk/PerformanceTests/Animometer/tests/master/particles.html (194755 => 194756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/PerformanceTests/Animometer/tests/master/particles.html        2016-01-08 04:28:12 UTC (rev 194755)
+++ trunk/PerformanceTests/Animometer/tests/master/particles.html        2016-01-08 04:29:42 UTC (rev 194756)
</span><span class="lines">@@ -19,6 +19,6 @@
</span><span class="cx">     &lt;script src=&quot;../resources/math.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;../resources/main.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;resources/particles.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;script src=&quot;resources/svg-particles.js&quot;&gt;&lt;/script&gt;
</del><ins>+    &lt;script src=&quot;resources/dom-particles.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;/body&gt;
</span><span class="cx"> &lt;/html&gt;
</span></span></pre></div>
<a id="trunkPerformanceTestsAnimometertestsmasterresourcesdomparticlesjs"></a>
<div class="modfile"><h4>Modified: trunk/PerformanceTests/Animometer/tests/master/resources/dom-particles.js (194755 => 194756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/PerformanceTests/Animometer/tests/master/resources/dom-particles.js        2016-01-08 04:28:12 UTC (rev 194755)
+++ trunk/PerformanceTests/Animometer/tests/master/resources/dom-particles.js        2016-01-08 04:29:42 UTC (rev 194756)
</span><span class="lines">@@ -3,26 +3,18 @@
</span><span class="cx"> DOMParticle = Utilities.createSubclass(Particle,
</span><span class="cx">     function(stage)
</span><span class="cx">     {
</span><del>-        Particle.call(this, stage);
</del><span class="cx">         this.element = document.createElement(&quot;div&quot;);
</span><span class="cx">         stage.element.appendChild(this.element);
</span><span class="cx"> 
</span><del>-        this._applyAttributes();
-        this.move();
</del><ins>+        Particle.call(this, stage);
</ins><span class="cx">     }, {
</span><span class="cx"> 
</span><span class="cx">     reset: function()
</span><span class="cx">     {
</span><span class="cx">         Particle.prototype.reset.call(this);
</span><del>-        if (this.element)
-            this._applyAttributes();
-    },
-
-    _applyAttributes: function()
-    {
</del><span class="cx">         this.element.style.width = this.size.x + &quot;px&quot;;
</span><span class="cx">         this.element.style.height = this.size.y + &quot;px&quot;;
</span><del>-        this.element.style.backgroundColor = &quot;hsl(&quot; + (((Date.now()/2000)%1)*360) + &quot;, 70%, 45%)&quot;;
</del><ins>+        this.element.style.backgroundColor = &quot;hsl(&quot; + ((Date.now()/2000)%1)*360 + &quot;, 70%, 45%)&quot;;
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     move: function()
</span></span></pre></div>
<a id="trunkPerformanceTestsAnimometertestsmasterresourcesparticlesjs"></a>
<div class="modfile"><h4>Modified: trunk/PerformanceTests/Animometer/tests/master/resources/particles.js (194755 => 194756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/PerformanceTests/Animometer/tests/master/resources/particles.js        2016-01-08 04:28:12 UTC (rev 194755)
+++ trunk/PerformanceTests/Animometer/tests/master/resources/particles.js        2016-01-08 04:29:42 UTC (rev 194756)
</span><span class="lines">@@ -3,6 +3,7 @@
</span><span class="cx">     this.stage = stage;
</span><span class="cx">     this.rotater = this.stage.randomRotater();
</span><span class="cx">     this.reset();
</span><ins>+    this.move();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Particle.prototype =
</span></span></pre></div>
<a id="trunkPerformanceTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/PerformanceTests/ChangeLog (194755 => 194756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/PerformanceTests/ChangeLog        2016-01-08 04:28:12 UTC (rev 194755)
+++ trunk/PerformanceTests/ChangeLog        2016-01-08 04:29:42 UTC (rev 194756)
</span><span class="lines">@@ -1,5 +1,20 @@
</span><span class="cx"> 2016-01-07  Jon Lee  &lt;jonlee@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Fix new test.
+
+        * Animometer/resources/runner/tests.js: Wrong URL from an
+        old patch.
+        * Animometer/tests/master/particles.html:
+        * Animometer/tests/master/resources/dom-particles.js:
+        (Particle.call.reset): Figured out a simpler way to set up
+        the particles.
+        (this.move.reset): Deleted.
+        (this.move._applyAttributes): Deleted.
+        * Animometer/tests/master/resources/particles.js:
+        (Particle): Call move() after reset().
+
+2016-01-07  Jon Lee  &lt;jonlee@apple.com&gt;
+
</ins><span class="cx">         Update benchmark test suite
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=152679
</span><span class="cx"> 
</span><span class="lines">@@ -513,7 +528,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=152544
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Zalan Bujtas.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Add a test that draws lots of international text. This is a particle test,
</span><span class="cx">         moving the boxes around with absolution positioning.
</span><span class="cx"> 
</span><span class="lines">@@ -897,11 +912,11 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151724
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Dean Jackson.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Add a &quot;bouncing particles&quot; test that moves composited layers around, optionally with a filter.
</span><del>-        
</del><ins>+
</ins><span class="cx">         This is added under a new &quot;Miscellaneous&quot; category.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Remove the test templates category from the UI.
</span><span class="cx"> 
</span><span class="cx">         * Animometer/runner/resources/tests.js:
</span><span class="lines">@@ -944,7 +959,7 @@
</span><span class="cx">         clipboard.
</span><span class="cx"> 
</span><span class="cx">         * Animometer/runner/animometer.html: Add a new button to select the results table or JSON.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/animometer.js:
</span><span class="cx">         (window.sectionsManager._sectionDataElement): Selects the container &lt;data&gt; element.
</span><span class="cx">         (window.sectionsManager._sectionDataDivElement): Replace a literal string with a string table entry.
</span><span class="lines">@@ -962,9 +977,9 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151526
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Simon Fraser.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Having the graphs do interpolation is misleading, because you can't see the actual data.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Also remove &quot;shape-rendering: crispEdges;&quot; so the lines get antialiased.
</span><span class="cx"> 
</span><span class="cx">         * Animometer/runner/resources/animometer.css:
</span><span class="lines">@@ -990,17 +1005,17 @@
</span><span class="cx">         * Animometer/resources/extensions.js:
</span><span class="cx">         (ResultsTable.prototype._isNoisyMeasurement): Fix a parameter name.
</span><span class="cx">         (ResultsTable.prototype._isNoisyTest): Since score is a member of testResults, we need to limit our search to frame rate and complexity.
</span><del>-        (ResultsTable.prototype._showTest): Pass the correct parameter to _isNoisyMeasurement(). 
-        
</del><ins>+        (ResultsTable.prototype._showTest): Pass the correct parameter to _isNoisyMeasurement().
+
</ins><span class="cx">         * Animometer/resources/strings.js: Fix the indentation and name and value of a string.
</span><span class="cx"> 
</span><span class="cx">         * Animometer/runner/resources/tests.js: Remove all the manual gains and limits parameters which had to be passed to every test.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/resources/main.js:
</span><span class="cx">         (BenchmarkState.prototype.currentStage): Fix an enum name.
</span><span class="cx">         (Benchmark): Get rid of manual gain and limits.
</span><span class="cx">         (Benchmark.prototype.update): Simplify the calculation by having all the times in ms.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/resources/math.js:
</span><span class="cx">         (PIDController): Get rid of the manual gain and limits and the magic numbers for Ti and Td.
</span><span class="cx">         (PIDController.prototype._yPosition): Tells whether the test current output is moving towards the set-point or away from it.
</span><span class="lines">@@ -1013,7 +1028,7 @@
</span><span class="cx">         (PIDController.prototype._tune):
</span><span class="cx">         (PIDController.prototype._saturate):
</span><span class="cx">         (PIDController.prototype.tune): Manages calculating the controller parameters. It then returns a PID tuning value.
</span><del>-        (PIDController.prototype._sat): Deleted. We may need to return it back but the limits have to be calculated adaptively not manually. 
</del><ins>+        (PIDController.prototype._sat): Deleted. We may need to return it back but the limits have to be calculated adaptively not manually.
</ins><span class="cx"> 
</span><span class="cx"> 2015-11-17  Said Abou-Hallawa  &lt;sabouhallawa@apple.com&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -1021,7 +1036,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151334
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Simon Fraser.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Make the graphics benchmark string table be an object of sub-objects. Each
</span><span class="cx">         sub-object represents an associative array, the key is the string name and
</span><span class="cx">         the value is the string data.
</span><span class="lines">@@ -1054,7 +1069,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151361
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Simon Fraser.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Use fixed size for stage iframe of the graphics benchmark to disable
</span><span class="cx">         flattening the iframe while animating the particles. Also ensure the
</span><span class="cx">         bouncing particles do not go outside the iframe's boundaries.
</span><span class="lines">@@ -1099,7 +1114,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151283
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Darin Adler.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Get rid of the option to run animation using setInterval().
</span><span class="cx"> 
</span><span class="cx">         * Animometer/tests/resources/main.js:
</span><span class="lines">@@ -1114,10 +1129,10 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151286
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Simon Fraser.
</span><del>-        
</del><ins>+
</ins><span class="cx">         When showing the results of a test in the graphics benchmark the following
</span><span class="cx">         criteria is going to be applied:
</span><del>-        
</del><ins>+
</ins><span class="cx">         1. If the standard deviation of the test complexity or the frame rate is
</span><span class="cx">            equal to or more than 10%, the standard deviation and the test name
</span><span class="cx">            will be displayed in red.
</span><span class="lines">@@ -1205,7 +1220,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151289
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Simon Fraser.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Cache the stage size when it is created instead of requesting every time
</span><span class="cx">         an object is added via clientWidth and clientHeight.
</span><span class="cx"> 
</span><span class="lines">@@ -1229,14 +1244,14 @@
</span><span class="cx">         Add &quot;defer&quot; back when loading resources/animometer.js since this script
</span><span class="cx">         depends on many other scripts and we need to wait till the page is parsed.
</span><span class="cx">         Also change the default test interval to be 10 seconds.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/graph.js:
</span><span class="cx">         (graph): Make the test results curves smoother.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/resources/main.js:
</span><span class="cx">         (Animator): Initialize the Kalman filter with 60 FPS which should be true
</span><span class="cx">         if the test page is empty.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (Animator.prototype.animate):
</span><span class="cx">         * Animometer/tests/resources/math.js:
</span><span class="cx">         (KalmanEstimator): Fix the initial value of _vecX_est.
</span><span class="lines">@@ -1247,7 +1262,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2015-11-04  Said Abou-Hallawa  &lt;sabouhallawa@apple.com&gt;
</span><span class="cx"> 
</span><del>-        Remove &quot;defer&quot; from the scripts' references in the graphics benchmark home page 
</del><ins>+        Remove &quot;defer&quot; from the scripts' references in the graphics benchmark home page
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=150915
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Simon Fraser.
</span><span class="lines">@@ -1272,13 +1287,13 @@
</span><span class="cx">         frame rate will also be measured.
</span><span class="cx"> 
</span><span class="cx">         * Animometer/runner/animometer.html: Add a new option for the non-adaptive mode.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/animometer.css:
</span><span class="cx">         (section#home input[type=&quot;number&quot;]): Define the width of all the edit control in the &lt;home&gt; section.
</span><span class="cx">         (section#home &gt; suites input[type=&quot;number&quot;]): The edit controls in the &lt;suites&gt; box will be right aligned and hidden by default.
</span><span class="cx">         (section#home &gt; suites input[type=&quot;number&quot;].selected): When the class &quot;selected&quot; is added, the edit controls will be visible.
</span><span class="cx">         (section#home &gt; options &gt; label &gt; input[type=&quot;number&quot;]): Deleted.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/animometer.js:
</span><span class="cx">         (window.benchmarkRunnerClient.didFinishLastIteration): Update the local storage with the results of each test.
</span><span class="cx">         (window.optionsManager._adaptiveTestElement): Returns the checkbox for setting the adaptive test option.
</span><span class="lines">@@ -1292,8 +1307,8 @@
</span><span class="cx">         (window.suitesManager.updateLocalStorageFromJSON): Saves the last run results to the local storage.
</span><span class="cx">         (window.benchmarkController.initialize): Shows/Hides the test edit controls based on the adaptive test option.
</span><span class="cx">         (window.benchmarkController.onChangeAdaptiveTestCheckbox): An onchange event handler for the adaptive test checkbox.
</span><del>-        
-        * Animometer/tests/resources/main.js: 
</del><ins>+
+        * Animometer/tests/resources/main.js:
</ins><span class="cx">         (Benchmark.prototype.update): Fix the complexity of the test if the running mode is non-adaptive test and desired complexity is not zero.
</span><span class="cx">         (window.runBenchmark): Add the test complexity as a new benchmark option.
</span><span class="cx"> 
</span><span class="lines">@@ -1303,13 +1318,13 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=150530
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Darin Adler.
</span><del>-        
</del><ins>+
</ins><span class="cx">         We want to set the size of the benchmark stage dynamically such that it
</span><del>-        depends on the screen resolution and the device scale factor. This patch 
</del><ins>+        depends on the screen resolution and the device scale factor. This patch
</ins><span class="cx">         does more than that because the home page css was not done properly. To
</span><span class="cx">         use the flex box layout, the animometer.css has to be rewritten almost from
</span><span class="cx">         scratch. The suites tree has to be rewritten also because it was not collapsing
</span><del>-        and with the flex box layout it was going outside of the window area. The 
</del><ins>+        and with the flex box layout it was going outside of the window area. The
</ins><span class="cx">         options handling and the local storage handling had to be rewritten to
</span><span class="cx">         allow more flexibility with this patch and the future patches. The code
</span><span class="cx">         in animometer.js was reorganized into objects to allow distributing the code
</span><span class="lines">@@ -1320,30 +1335,30 @@
</span><span class="cx">         (Insets.prototype.get width): Follow the function opening brace style guidelines.
</span><span class="cx">         (Insets.prototype.get height):
</span><span class="cx">         (Insets.prototype.get size): Returns the size of an Insets as a Point object.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (window.DocumentExtension): Provides document helper functions. It should be assailable from the runner and the tests.
</span><del>-        (window.DocumentExtension.createElement): Creates an HTMLElement given its name, attributes and parentElement. 
-        (window.DocumentExtension.createSvgElement): Creates an SVGElement given its name, attributes and parentElement (moved from utilities.js). 
</del><ins>+        (window.DocumentExtension.createElement): Creates an HTMLElement given its name, attributes and parentElement.
+        (window.DocumentExtension.createSvgElement): Creates an SVGElement given its name, attributes and parentElement (moved from utilities.js).
</ins><span class="cx">         (window.DocumentExtension.insertCssRuleAfter): Inserts a CSS rule after an exiting rule given its text.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (ResultsTable.prototype._showHeader): Use DocumentExtension functions.
</span><span class="cx">         (ResultsTable.prototype._showGraph): Use DocumentExtension functions and create a real button for &quot;Graph...&quot; option.
</span><span class="cx">         (ResultsTable.prototype._showJSON): Use DocumentExtension functions and create a real button for &quot;JSON...&quot; option.
</span><span class="cx">         (Options): Deleted.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/animometer.html: Restructure the page to use the flex box layout.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/animometer.css:
</span><span class="cx">         (html,body):
</span><span class="cx">         (button):
</span><del>-        
</del><ins>+
</ins><span class="cx">         (button.large-button):The large button appears in the animometer.html.
</span><span class="cx">         (button.large-button:active):
</span><span class="cx">         (button.large-button:disabled):
</span><del>-        
</del><ins>+
</ins><span class="cx">         (button.small-button): The small button appears in the results table.
</span><span class="cx">         (button.small-button:active):
</span><del>-        
</del><ins>+
</ins><span class="cx">         (.tree): The tree class is used to list the suites and their tests.
</span><span class="cx">         (.tree .expand-button): This button expands a tree element.
</span><span class="cx">         (.tree .expand-button ~ ul): Hide the children (&lt;ul&gt;...&lt;/ul&gt;) of a parent node by default.
</span><span class="lines">@@ -1356,33 +1371,33 @@
</span><span class="cx">         (label.tree-label): Style for the labels in the top level only (the suites nodes in our case).
</span><span class="cx">         (label.tree-label:before): Style the unchecked case of the expand-button.
</span><span class="cx">         (:checked ~ label.tree-label:before): Style the checked case of the expand-button.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (table.results-table): The results table appears while running the test and at the end.
</span><span class="cx">         (.results-table td):
</span><span class="cx">         (.results-table th):
</span><del>-        
</del><ins>+
</ins><span class="cx">         (div.results-json): The JSON div appears per test or for the whole run.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (main): This is the flex box container.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (section): A section is displayed exclusively inside the &lt;main&gt;. It is hidden by default.
</span><span class="cx">         (section.selected): When it is selected, its layout is flex layout.
</span><span class="cx">         (section &gt; footer): The header or the footer of a section should not take more than 15% of the container.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (section#home): The home section has &lt;suites&gt; and &lt;options&gt; parts to be laid out in the middle.
</span><del>-        (section#home &gt; options): 
</del><ins>+        (section#home &gt; options):
</ins><span class="cx">         (section#home &gt; suites): The &lt;suites&gt; should not take more than 40% of the width.
</span><span class="cx">         (section#home &gt; options &gt; label): The benchmark title.
</span><span class="cx">         (section#home &gt; header &gt; h2): The benchmark title.
</span><span class="cx">         (section#home &gt; options &gt; label &gt; input[type=&quot;number&quot;]): Sets the width of the option edit control.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (section#running): The running section contain the runner &lt;iframe&gt; which takes the whole area of the &lt;main&gt;.
</span><span class="cx">         (section#running &gt; #running-test): This is the &lt;iframe&gt; container.
</span><span class="cx">         (section#running &gt; #running-test &gt; iframe): The &lt;iframe&gt; is created by the runner for each test.
</span><span class="cx">         (section#running &gt; #progress): This is the progress bar.
</span><span class="cx">         (section#running &gt; #progress &gt; #progress-completed): This is another element which grows while the runner is progressing.
</span><span class="cx">         (section#running &gt; #record): This the container of the record results table which is shown while running a test.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (section#results):
</span><span class="cx">         (section#json):
</span><span class="cx">         (section#test-json):
</span><span class="lines">@@ -1392,13 +1407,13 @@
</span><span class="cx">         (section#json &gt; data):
</span><span class="cx">         (section#test-json &gt; data):
</span><span class="cx">         (section#test-graph &gt; data): The &lt;data&gt; element should take 70% of the &lt;section&gt;.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (section#test-graph &gt; data &gt; svg):
</span><span class="cx">         (.axis line):
</span><span class="cx">         (.left-samples): These styles are for the d3 graph.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (section#test-json &gt; data): This is the style of the JSON &lt;data&gt; element.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (iframe): Deleted.
</span><span class="cx">         (label, p): Deleted.
</span><span class="cx">         (section &gt; p): Deleted.
</span><span class="lines">@@ -1426,12 +1441,12 @@
</span><span class="cx">         (.sample-time): Deleted.
</span><span class="cx">         (.left-mean): Deleted.
</span><span class="cx">         (.right-mean): Deleted.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/animometer.js:
</span><span class="cx">         (window.benchmarkRunnerClient.initialize): Initialize the client object with the options and the suites.
</span><span class="cx">         (window.benchmarkRunnerClient.willStartFirstIteration): Use new css selectors for results and the record table.
</span><span class="cx">         (window.benchmarkRunnerClient.didFinishLastIteration): Move the code which sets the JSON text to sectionsManager.showJSON().
</span><del>-        
</del><ins>+
</ins><span class="cx">         (window.sectionsManager): Responsible of managing the &lt;section&gt;s elements inside animometer.html.
</span><span class="cx">         (window.sectionsManager._sectionHeaderH1Element): Return the &lt;h1&gt; inside the &lt;header&gt; of a given section.
</span><span class="cx">         (window.sectionsManager._sectionDataDivElement): Return the &lt;div&gt; inside the &lt;data&gt; of a given section.
</span><span class="lines">@@ -1441,12 +1456,12 @@
</span><span class="cx">         (window.sectionsManager.showSection): Shows a specific &lt;section&gt; in the &lt;main&gt; container.
</span><span class="cx">         (window.sectionsManager.setupSectionStyle): Sets css attributes for all the &lt;section&gt;s.
</span><span class="cx">         (window.sectionsManager.setupRunningSectionStyle): Sets the css attributes for the running &lt;section&gt; only.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (window.optionsManager): Responsible of managing the user options and streaming them to/form the localStorage.
</span><span class="cx">         (window.optionsManager._optionsElements): Returns the children &lt;input&gt; elements of the &lt;options&gt;.
</span><span class="cx">         (window.optionsManager.updateUIFromLocalStorage): Restore the values of the &lt;options&gt; UI elements from the local storage.
</span><span class="cx">         (window.optionsManager.updateLocalStorageFromUI): Saves the values of the &lt;options&gt; UI elements to the local storage.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (window.suitesManager): Responsible of managing the user suites and streaming them to/form the localStorage.
</span><span class="cx">         (window.suitesManager._treeElement): Returns the suites tree container element.
</span><span class="cx">         (window.suitesManager._suitesElements): Returns a list of the suites elements.
</span><span class="lines">@@ -1461,7 +1476,7 @@
</span><span class="cx">         (window.suitesManager.createElements): Creates the suites tree dynamically from the array Suites.
</span><span class="cx">         (window.suitesManager.updateUIFromLocalStorage): Restore the values of the &lt;suites&gt; UI elements from the local storage.
</span><span class="cx">         (window.suitesManager.updateLocalStorageFromUI): aves the values of the &lt;suites&gt; UI elements to the local storage.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (window.benchmarkController): This is the UI controller of the animometer.html page.
</span><span class="cx">         (window.benchmarkController.initialize): Called when the animometer.html page is loaded.
</span><span class="cx">         (window.benchmarkController._runBenchmark): Starts a benchmark run.
</span><span class="lines">@@ -1470,7 +1485,7 @@
</span><span class="cx">         (window.benchmarkController.showJson): Called from the results page to show the JSON of the last benchmark run.
</span><span class="cx">         (window.benchmarkController.showTestGraph): Called from the results the table to show a graph for the samples of a specific test.
</span><span class="cx">         (window.benchmarkController.showTestJSON): Called from the results the table to show a JSON for the samples of a specific test.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (showSection): Deleted.
</span><span class="cx">         (startTest): Deleted.
</span><span class="cx">         (showResults): Deleted.
</span><span class="lines">@@ -1485,7 +1500,7 @@
</span><span class="cx">         (localStorageNameForTest): Deleted.
</span><span class="cx">         (populateSettings.): Deleted.
</span><span class="cx">         (populateSettings): Deleted.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/benchmark-runner.js:
</span><span class="cx">         (BenchmarkRunner): Pass the frameContainer element to the BenchmarkRunner.
</span><span class="cx">         (BenchmarkRunner.prototype._appendFrame): Remove unused parameter unwanted styling code.
</span><span class="lines">@@ -1493,17 +1508,17 @@
</span><span class="cx"> 
</span><span class="cx">         * Animometer/runner/resources/graph.js:
</span><span class="cx">         (graph): Calculate the size of the chart from the container element.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
</span><span class="cx">         (BouncingSvgImage):
</span><span class="cx">         * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
</span><span class="cx">         (BouncingSvgParticlesStage.prototype._createDefs):
</span><del>-        (BouncingSvgParticlesStage.prototype._createClipStar):        
</del><ins>+        (BouncingSvgParticlesStage.prototype._createClipStar):
</ins><span class="cx">         * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
</span><span class="cx">         (BouncingSvgShape.prototype._createShape):
</span><span class="cx">         (BouncingSvgShapesStage.prototype.createGradient):
</span><span class="cx">         Call DocumentExtension.createSvgElement() instead of calling Utilities.createSvgElement().
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/resources/main.js:
</span><span class="cx">         (Animator.prototype.animate):
</span><span class="cx">         (Benchmark):
</span><span class="lines">@@ -1511,10 +1526,10 @@
</span><span class="cx">         * Animometer/tests/resources/stage.js:
</span><span class="cx">         (StageBenchmark.prototype.showResults):
</span><span class="cx">         Rename the options to match the &lt;input&gt; ids in animometer.html.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/resources/utilities.js:
</span><span class="cx">         (window.Utilities.createSvgElement): Deleted.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/text/layering-text.html:
</span><span class="cx">         * Animometer/tests/text/resources/layering-text.js:
</span><span class="cx">         (LayeringTextStage):
</span><span class="lines">@@ -1526,7 +1541,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=150698
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Tim Horton.
</span><del>-        
</del><ins>+
</ins><span class="cx">         The existing code incremented this._frameCount after checking against this._dropFrameCount.
</span><span class="cx">         This has the effect of setting this._measureTimeOffset one frame too late, so
</span><span class="cx">         we were measuring only two frames, not three, and thus computing an incorrect fps.
</span><span class="lines">@@ -1591,8 +1606,8 @@
</span><span class="cx">         (RecordTable.prototype._showTest): Shows the results of a single test.
</span><span class="cx">         (RecordTable.prototype._showSuite): Shows the results of a single suite.
</span><span class="cx">         (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
</span><del>-        (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations. 
-        
</del><ins>+        (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations.
+
</ins><span class="cx">         (ResultsTable): RecordTable was renamed to ResultsTable.
</span><span class="cx">         (ResultsTable.prototype.clear): Clears the table element.
</span><span class="cx">         (ResultsTable.prototype._showHeaderRow): Shows a row in the results table header.
</span><span class="lines">@@ -1618,22 +1633,22 @@
</span><span class="cx">         (RecordTable.prototype._showSuite): Deleted.
</span><span class="cx">         (RecordTable.prototype.showRecord): Deleted.
</span><span class="cx">         (RecordTable.prototype.showIterations): Deleted.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/resources/sampler.js:
</span><span class="cx">         (Sampler.prototype.startSampling): Use forEach.
</span><span class="cx">         (Sampler.prototype.sample): Use forEach.
</span><span class="cx">         (Sampler.prototype.toJSON): Converts the sampler data to JSON format.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/resources/strings.js: Added.
</span><span class="cx">         This new file will be used to associate the strings used by the benchmark
</span><span class="cx">         with IDs. A string can be changed in one place without having to change
</span><span class="cx">         all the instances of this string in multiple files. There two groups of
</span><span class="cx">         strings in this file. The first one is used by the UI elements and the second
</span><span class="cx">         group is used when constructing the results JSON.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/animometer.html:
</span><span class="cx">         * Animometer/runner/resources/animometer.css:
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/animometer.js:
</span><span class="cx">         (window.benchmarkRunnerClient.willAddTestFrame):
</span><span class="cx">         (window.benchmarkRunnerClient.willStartFirstIteration):
</span><span class="lines">@@ -1642,20 +1657,20 @@
</span><span class="cx">         Make benchmarkRunnerClient uses ResultsDashboard instead of _iterationsSamplers
</span><span class="cx">         Get the JSON from ResultsDashboard.toJSON() and pass it to ResultsTable.showIterations().
</span><span class="cx">         Also set the textContent of the &quot;#json&quot; textarea with the results JSON.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (showResults): Delete unneeded code.
</span><span class="cx">         (showJson): Shows the &quot;json&quot; section.
</span><span class="cx">         (showTestGraph): Rename showGraph() to be showTestGraph().
</span><span class="cx">         (showTestJSON): Shows the JSON of a single testResults.
</span><span class="cx">         (showGraph): Deleted.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/tests.js:
</span><span class="cx">         Use the string table instead of putting literal strings.
</span><span class="cx"> 
</span><span class="cx">         * Animometer/tests/resources/stage.js:
</span><span class="cx">         (StageBenchmark.prototype.showResults):
</span><span class="cx">         Fix the parameters which are passed to RecordTable.showRecord().
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
</span><span class="cx">         * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
</span><span class="cx">         * Animometer/tests/bouncing-particles/bouncing-css-images.html:
</span><span class="lines">@@ -1974,11 +1989,11 @@
</span><span class="cx">         This directory includes all the test suites to be run by the benchmark.
</span><span class="cx">         runner. All the tests should try to run on three stages: CSS, canvas and
</span><span class="cx">         SVG.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/bouncing-particles: Added.
</span><span class="cx">         * Animometer/tests/bouncing-particles/resources: Added.
</span><span class="cx">         The bouncing particles test is an example of a simple animation technique.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Added.
</span><span class="cx">         * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
</span><span class="cx">         * Animometer/tests/bouncing-particles/bouncing-css-images.html: Added.
</span><span class="lines">@@ -1991,15 +2006,15 @@
</span><span class="cx">         (BouncingParticle): Base class for a bouncing particle.
</span><span class="cx">         (BouncingParticle.prototype.center): Returns the center point or the particle.
</span><span class="cx">         (BouncingParticle.prototype.animate): Moves the particle based on its current position, angle and velocity.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingParticlesAnimator): A sub class of Animator.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingParticlesStage): Represents the container of all the bouncing particles.
</span><span class="cx">         (BouncingParticlesStage.prototype.parseShapeParamters): Gets the shape parameters for shape animating tests.
</span><span class="cx">         (BouncingParticlesStage.prototype.randomRotater): Creates a rotater for the particles.
</span><span class="cx">         (BouncingParticlesStage.prototype.animate): Animates all the particles.
</span><span class="cx">         (BouncingParticlesStage.prototype.tune): Changes the test by adding or removing particles.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingParticlesBenchmark): Runs the benchmark for bouncing particles test.
</span><span class="cx">         (BouncingParticlesBenchmark.prototype.createAnimator): Creates an animator of type BouncingParticlesAnimator.
</span><span class="cx"> 
</span><span class="lines">@@ -2008,52 +2023,52 @@
</span><span class="cx">         (BouncingCssShape.prototype._createSpan): Creates a &lt;span&gt; element and takes the shape and clipping classes into consideration.
</span><span class="cx">         (BouncingCssShape.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
</span><span class="cx">         (BouncingCssShape.prototype.animate): Rotates and moves the shape to a new location.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCssShapesStage): A sub class of BouncingParticlesStage for animating CSS shapes.
</span><span class="cx">         (BouncingCssShapesStage.prototype.createParticle): Creates a particle of type BouncingCssShape.
</span><span class="cx">         (BouncingCssShapesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCssShapesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS shapes.
</span><span class="cx">         (BouncingCssShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCssShapesStage.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type BouncingCssShapesBenchmark.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
</span><span class="cx">         (BouncingCssImage): A sub class of BouncingParticle for animating CSS images.
</span><span class="cx">         (BouncingCssImage.prototype._move): Move the particle to a new location. Apply transform since it does not require layout.
</span><span class="cx">         (BouncingCssImage.prototype.animate): Rotates and moves the shape to a new location.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCssImagesStage): A sub class of BouncingParticlesStage for animating CSS images.
</span><span class="cx">         (BouncingCssImagesStage.prototype.createParticle): Creates a particle of type BouncingCssImage.
</span><span class="cx">         (BouncingCssImagesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCssImagesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS images.
</span><span class="cx">         (BouncingCssImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCssImagesStage.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type BouncingCssImagesBenchmark.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
</span><span class="cx">         (BouncingCanvasParticle): A base sub-class of BouncingParticle for animating canvas particles.
</span><span class="cx">         (BouncingCanvasParticle.prototype._applyRotation): Apply the particle rotation-around-center transform to the canvas context.
</span><span class="cx">         (BouncingCanvasParticle.prototype._applyClipping): Apply the particle clipping to the canvas context.
</span><span class="cx">         (BouncingCanvasParticle.prototype._draw): A non-implemented version of the drawing function.
</span><span class="cx">         (BouncingCanvasParticle.prototype.animate): Carries out all the steps to redraw the canvas particle.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCanvasParticlesStage): A base sub-class of BouncingParticlesStage for animating canvas particles.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCanvasParticlesAnimator): A concrete sub-class of BouncingParticlesAnimator for animating canvas particles.
</span><span class="cx">         (BouncingCanvasParticlesAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCanvasParticlesBenchmark): A base sub-class of StageBenchmark for animating canvas particles.
</span><span class="cx">         (BouncingCanvasParticlesBenchmark.prototype.createAnimator): Creates the canvas particles animator.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
</span><span class="cx">         (BouncingCanvasShape): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
</span><span class="cx">         (BouncingCanvasShape.prototype._applyFill): Sets the fillStyle in the canvas context.
</span><span class="cx">         (BouncingCanvasShape.prototype._drawShape): Carries out the actual drawing.
</span><span class="cx">         (BouncingCanvasShape.prototype._draw): Carries out all the steps to draw the shape.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCanvasShapesStage): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
</span><span class="cx">         (BouncingCanvasShapesStage.prototype.createParticle): Creates a particle of type BouncingCanvasShape.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCanvasShapesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas shapes.
</span><span class="cx">         (BouncingCanvasShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasShapesStage.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasShapesBenchmark.
</span><span class="lines">@@ -2061,10 +2076,10 @@
</span><span class="cx">         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
</span><span class="cx">         (BouncingCanvasImage): A concrete sub-class of BouncingCanvasParticle for animating canvas images.
</span><span class="cx">         (BouncingCanvasImage.prototype._draw): Draws an image on the context of a canvas.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCanvasImagesStage): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
</span><span class="cx">         (BouncingCanvasImagesStage.prototype.createParticle): Creates a particle of type BouncingCanvasImage.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingCanvasImagesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
</span><span class="cx">         (BouncingCanvasImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasImagesStage.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasImagesBenchmark.
</span><span class="lines">@@ -2085,22 +2100,22 @@
</span><span class="cx">         (BouncingSvgShape): A concrete sub-class of BouncingSVGParticle for animating SVG shapes.
</span><span class="cx">         (BouncingSvgShape.prototype._createShape): Creates an SVG shape.
</span><span class="cx">         (BouncingSvgShape.prototype._applyFill): Applies the selected fill style to the SVG shape.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingSvgShapesStage): A concrete sub-class of BouncingSvgParticlesStage for animating SVG shapes.
</span><span class="cx">         (BouncingSvgShapesStage.prototype.createGradient): Creates an SVGLinearGradientElement.
</span><span class="cx">         (BouncingSvgShapesStage.prototype.createParticle): Creates a particle of type BouncingSvgShape.
</span><span class="cx">         (BouncingSvgShapesStage.prototype.particleWillBeRemoved): Ensures the attached SVGLinearGradientElement is removed from the SVGDefsElement.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingSvgShapesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
</span><span class="cx">         (BouncingSvgShapesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgShapesStage.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgShapesBenchmark.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
</span><span class="cx">         (BouncingSvgImage): A concrete sub-class of BouncingSVGParticle for animating SVG images.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingSvgImagesStage): A concrete sub-class of BouncingSVGParticlesBenchmark for animating SVG images.
</span><span class="cx">         (BouncingSvgImagesStage.prototype.createParticle): Creates a particle of type BouncingSvgImage.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BouncingSvgImagesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
</span><span class="cx">         (BouncingSvgImagesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgImagesStage.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgImagesBenchmark.
</span><span class="lines">@@ -2108,52 +2123,52 @@
</span><span class="cx">         * Animometer/tests/examples: Added.
</span><span class="cx">         * Animometer/tests/examples/canvas-electrons.html: Added.
</span><span class="cx">         * Animometer/tests/examples/canvas-stars.html: Added.
</span><del>-        Examples test pages. 
-        
</del><ins>+        Examples test pages.
+
</ins><span class="cx">         * Animometer/tests/examples/resources: Added.
</span><span class="cx">         * Animometer/tests/examples/resources/canvas-electrons.js: Added.
</span><span class="cx">         (CanvasElectron): An object which draws and animate a electron object on a canvas stage.
</span><span class="cx">         (CanvasElectron.prototype._draw): Draws the electron object.
</span><span class="cx">         (CanvasElectron.prototype.animate): Animates the electron object.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (CanvasElectronsStage): A concrete sub-class of Stage for animating electrons.
</span><span class="cx">         (CanvasElectronsStage.prototype.tune): Changes the test by adding or removing elements.
</span><span class="cx">         (CanvasElectronsStage.prototype.animate): Animates the test elements.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (CanvasElectronsAnimator): A concrete sub-class of StageAnimator for animating canvas electrons.
</span><span class="cx">         (CanvasElectronsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (CanvasElectronsBenchmark): A concrete sub-class of StageBenchmark for animating electrons.
</span><span class="cx">         (CanvasElectronsBenchmark.prototype.createStage): Creates a stage of CanvasElectronsStage.
</span><span class="cx">         (CanvasElectronsBenchmark.prototype.createAnimator): Creates an animator of type CanvasElectronsAnimator.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type CanvasElectronsBenchmark.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/examples/resources/canvas-stars.js: Added.
</span><span class="cx">         (CanvasStar): An object which draws and animate a star object on a canvas stage.
</span><span class="cx">         (CanvasStar.prototype._draw): Draws the star object.
</span><span class="cx">         (CanvasStar.prototype.animate): Animates the star object.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (CanvasStarsStage): A concrete sub-class of Stage for animating stars.
</span><span class="cx">         (CanvasStarsStage.prototype.tune): Changes the test by adding or removing elements.
</span><span class="cx">         (CanvasStarsStage.prototype.animate): Animates the test elements.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (CanvasStarsAnimator): A concrete sub-class of StageAnimator for animating canvas stars.
</span><span class="cx">         (CanvasStarsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (CanvasStarsBenchmark): A concrete sub-class of Benchmark for animating stars.
</span><span class="cx">         (CanvasStarsBenchmark.prototype.createStage): Creates a stage of CanvasStarsStage.
</span><span class="cx">         (CanvasStarsBenchmark.prototype.createAnimator): Creates an animator of type CanvasStarsAnimator.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type CanvasStarsBenchmark.
</span><span class="cx"> 
</span><span class="cx">         * Animometer/tests/resources: Added.
</span><del>-        This directory includes the script which is required to run an adaptive 
</del><ins>+        This directory includes the script which is required to run an adaptive
</ins><span class="cx">         graphics benchmark. From an empty test page, the set of classes in this
</span><span class="cx">         directory are responsible for measuring the current frame rate and
</span><span class="cx">         changing the test to reach a desired FPS. It keeps asking the test page
</span><span class="cx">         to tune itself by a certain value to increase or decrease the frame rate.
</span><span class="cx">         It's also responsible for sampling the test state and the corresponding
</span><span class="cx">         frame rate.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/resources/main.js: Added.
</span><span class="cx">         (BenchmarkState): Tracks the state of the benchmark test.
</span><span class="cx">         (BenchmarkState.prototype._timeOffset): Returns the timeOffset of a stage.
</span><span class="lines">@@ -2163,12 +2178,12 @@
</span><span class="cx">         (BenchmarkState.prototype.currentStage): Returns the current stage of the benchmark.
</span><span class="cx">         (BenchmarkState.prototype.currentMessage): Returns the message of the current stage and timeOffset.
</span><span class="cx">         (BenchmarkState.prototype.currentProgress): Returns a percentage of how much the benchmark is running.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (Animator): Manages animating the test.
</span><span class="cx">         (Animator.prototype.start): Called if animating using setInterval is requested.
</span><del>-        (Animator.prototype.timeDelta): Returns the current timeDelta 
</del><ins>+        (Animator.prototype.timeDelta): Returns the current timeDelta
</ins><span class="cx">         (Animator.prototype.animate): Manages the test animation.
</span><del>-        (Animator.prototype.animateLoop): Called if animating using requestAnimationFrame is requested. 
</del><ins>+        (Animator.prototype.animateLoop): Called if animating using requestAnimationFrame is requested.
</ins><span class="cx"> 
</span><span class="cx">         (Benchmark): Manages running the test benchmark and recording the sampled data.
</span><span class="cx">         (Benchmark.prototype.start): Starts the benchmark.
</span><span class="lines">@@ -2182,11 +2197,11 @@
</span><span class="cx">         (Matrix): A matrix object.
</span><span class="cx">         (Vector3): A vector of size 3 object.
</span><span class="cx">         (Matrix3): A matrix of size 3x3 object.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (PIDController): Closed-loop controller for a set-point y.
</span><span class="cx">         (PIDController.prototype._sat): Limits the output to a certain range.
</span><span class="cx">         (PIDController.prototype.tune): Given the current output of a system, it produces a new pid value for tuning it.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (KalmanEstimator): Implement Kalman filter to get an estimate for a sampled data point.
</span><span class="cx">         (KalmanEstimator.prototype.estimate): Returns an estimate for for a sampled data point.
</span><span class="cx"> 
</span><span class="lines">@@ -2198,7 +2213,7 @@
</span><span class="cx">         (window.Utilities.copyObject): Copies the attributes and their values of an object to a new object.
</span><span class="cx">         (window.Utilities.mergeObjects): Copies the attributes and their values of two objects to a new object.
</span><span class="cx">         (window.Utilities.createSvgElement): Creates an SVGElement given its name and its attributes.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/resources/stage.css: Added.
</span><span class="cx">         * Animometer/tests/resources/stage.js: Added.
</span><span class="cx">         (Rotater): Manages rotating an angle within a fixed time interval.
</span><span class="lines">@@ -2207,7 +2222,7 @@
</span><span class="cx">         (Rotater.prototype.degree): Returns the current rotating degree.
</span><span class="cx">         (Rotater.prototype.rotateZ): Returns CSS formatted transform rotateZ() string for the current degree.
</span><span class="cx">         (Rotater.prototype.rotate): Returns SVG formatted transform rotate() string for the current degree.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (Stage): A base class for managing the test complexity and test animation.
</span><span class="cx">         (Stage.prototype.get size): Returns the size of the stage excluding the CSS padding.
</span><span class="cx">         (Stage.prototype.random): Returns a random float.
</span><span class="lines">@@ -2221,21 +2236,21 @@
</span><span class="cx">         (Stage.prototype.tune): A not-implemented version of this function.
</span><span class="cx">         (Stage.prototype.animate): A not-implemented version of this function.
</span><span class="cx">         (Stage.prototype.clear): Clears the stage from all its animation elements.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (StageAnimator): A base class for the stage-based animators.
</span><span class="cx">         (StageAnimator.prototype.animate): Calls Animator.animate() which updates the test page and then calls Stage.animate() to force redraw.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (StageBenchmark): A base class for the stage-based benchmarks.
</span><span class="cx">         (StageBenchmark.prototype.createStage): Creates the default stage.
</span><span class="cx">         (StageBenchmark.prototype.createAnimator): Creates the default animator.
</span><span class="cx">         (StageBenchmark.prototype.tune): Delegates the call to stage.
</span><span class="cx">         (StageBenchmark.prototype.clear): Delegates the call to stage.
</span><span class="cx">         (StageBenchmark.prototype.showResults): Shows the results/progress through its recordTable and progressBar.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/resources/yin-yang.png: Added.
</span><span class="cx">         * Animometer/tests/resources/yin-yang.svg: Added.
</span><span class="cx">         These images are shared among all the tests.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/template: Added.
</span><span class="cx">         * Animometer/tests/template/resources: Added.
</span><span class="cx">         This directory includes template tests which do nothing. They can be used
</span><span class="lines">@@ -2247,16 +2262,16 @@
</span><span class="cx">         * Animometer/tests/template/template-svg.html: Added.
</span><span class="cx">         Template test pages. They can be used as they are. CSS attributes or hidden
</span><span class="cx">         elements can be added to these derived test pages if needed.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/template/resources/template-css.js: Added.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (TemplateCssStage): A stage to create and animate HTMLElements.
</span><span class="cx">         (TemplateCssStage.prototype.tune): Changes the test by adding or removing elements.
</span><span class="cx">         (TemplateCssStage.prototype.animate): Animates the test elements.
</span><del>-        (TemplateCssBenchmark): 
</del><ins>+        (TemplateCssBenchmark):
</ins><span class="cx">         (TemplateCssBenchmark.prototype.createStage): Creates the test stage.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type TemplateCssBenchmark.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/template/resources/template-canvas.js: Added.
</span><span class="cx">         (TemplateCanvasObject):
</span><span class="cx">         (TemplateCanvasObject.prototype._draw): Draws the objects on the canvas context.
</span><span class="lines">@@ -2265,26 +2280,26 @@
</span><span class="cx">         (TemplateCanvasStage.prototype.tune): hanges the test by adding or removing elements.
</span><span class="cx">         (TemplateCanvasStage.prototype.animate):  Animates the test elements.
</span><span class="cx">         (TemplateCanvasAnimator.prototype.animate): Starts the animation every frame.
</span><del>-        (TemplateCanvasBenchmark): 
</del><ins>+        (TemplateCanvasBenchmark):
</ins><span class="cx">         (TemplateCanvasBenchmark.prototype.createStage): Creates a stage of type TemplateCanvasStage.
</span><span class="cx">         (TemplateCanvasBenchmark.prototype.createAnimator): Creates a animator of type TemplateCanvasAnimator.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type TemplateCanvasBenchmark.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/template/resources/template-svg.js: Added.
</span><span class="cx">         (TemplateSvgStage): A stage to create and animate SVGElements.
</span><span class="cx">         (TemplateSvgStage.prototype.tune): Changes the test by adding or removing elements.
</span><span class="cx">         (TemplateSvgStage.prototype.animate): Animates the test elements.
</span><span class="cx">         (TemplateSvgBenchmark.prototype.createStage): Creates a stage of type TemplateSvgStage.
</span><span class="cx">         (window.benchmarkClient.create): Creates a benchmark of type TemplateSvgBenchmark.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/text: Added.
</span><span class="cx">         * Animometer/tests/text/resources: Added.
</span><span class="cx">         This directory includes the text animating tests which currently runs
</span><span class="cx">         on CSS stage only.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/text/layering-text.html: Added.
</span><span class="cx">         Text test page.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/tests/text/resources/layering-text.js: Added.
</span><span class="cx">         (LayeringTextStage): Represents the container of all the stacked text layers.
</span><span class="cx">         (LayeringTextStage.parseTextItem): Parses a textItem which may be an opening tag, a closing tag or a self-closing tag.
</span><span class="lines">@@ -2337,7 +2352,7 @@
</span><span class="cx"> 
</span><span class="cx">         (Algorithm.createMinHeap): Creates a size-bounded min-heap object.
</span><span class="cx">         (Algorithm.createMaxHeap): Creates a size-bounded max-heap object.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/resources/extensions.js: Added.
</span><span class="cx">         (Point): Point object but can be used as size also.
</span><span class="cx">         (Point.pointOnCircle): Given, the radius of the circle and the angle of the point, it returns a point object.
</span><span class="lines">@@ -2376,14 +2391,14 @@
</span><span class="cx">         (RecordTable.prototype._showTest): Shows the results of a single test.
</span><span class="cx">         (RecordTable.prototype._showSuite): Shows the results of a single suite.
</span><span class="cx">         (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
</span><del>-        (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations. 
</del><ins>+        (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations.
</ins><span class="cx"> 
</span><span class="cx">         * Animometer/resources/sampler.js: Added.
</span><span class="cx">         (Statistics.sampleMean): Returns the sample mean.
</span><span class="cx">         (Statistics.unbiasedSampleStandardDeviation): Returns the unbiased sample variance (i.e. with Bessel's correction)
</span><span class="cx">         (Statistics.geometricMean): Returns the geometric mean.
</span><span class="cx"> 
</span><del>-        (Experiment): Represents a sampling experiment. 
</del><ins>+        (Experiment): Represents a sampling experiment.
</ins><span class="cx">         (Experiment.prototype._init): Called when the object is created and when startSampling() is called.
</span><span class="cx">         (Experiment.prototype.startSampling): Called after warmup period. Restarts collecting sampled data points.
</span><span class="cx">         (Experiment.prototype.sample): Add a new data point.
</span><span class="lines">@@ -2397,7 +2412,7 @@
</span><span class="cx">         (Sampler): Represents a compound experiment. It manages sampling multiple data points at the same time offset.
</span><span class="cx">         (Sampler.prototype.startSampling): Called after warming up period. Restarts collecting sampled data points.
</span><span class="cx">         (Sampler.prototype.sample): Add a new data vector at a given time offset.
</span><del>-        
</del><ins>+
</ins><span class="cx"> 2015-10-02  Said Abou-Hallawa  &lt;sabouhallawa@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Add the test runner for a new a graphics benchmark
</span><span class="lines">@@ -2413,7 +2428,7 @@
</span><span class="cx">         * Animometer: Added.
</span><span class="cx">         * Animometer/runner: Added.
</span><span class="cx">         * Animometer/runner/resources: Added.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/animometer.html: Added.
</span><span class="cx">         * Animometer/runner/resources/animometer.css: Added.
</span><span class="cx">         The benchmark runner page and css.
</span><span class="lines">@@ -2424,12 +2439,12 @@
</span><span class="cx">         (window.benchmarkRunnerClient.willStartFirstIteration): Called at the beginning before running any test.
</span><span class="cx">         (window.benchmarkRunnerClient.didRunSuites): Called after running all tests of a suite.
</span><span class="cx">         (window.benchmarkRunnerClient.didFinishLastIteration): Called after running the last test.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (showSection): Shows a section in the animometer.html page.
</span><span class="cx">         (startTest): Called when the &quot;Start Test&quot; button is clicked.
</span><span class="cx">         (showResults): Called after finishing all the tests.
</span><span class="cx">         (showGraph): Called when &quot;Click...&quot; button in the &quot;Samples&quot; column of the results table is clicked
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/benchmark-runner.js: Copied from PerformanceTests/Speedometer/resources/benchmark-runner.js.
</span><span class="cx">         (BenchmarkRunnerState): Tracks the current running &lt;suite, test&gt;
</span><span class="cx">         (BenchmarkRunnerState.prototype.currentSuite): Returns the current running suite.
</span><span class="lines">@@ -2437,7 +2452,7 @@
</span><span class="cx">         (BenchmarkRunnerState.prototype.isFirstTest): Returns true if we are running the first test in the current suite.
</span><span class="cx">         (BenchmarkRunnerState.prototype.next): Advances to the next test.
</span><span class="cx">         (BenchmarkRunnerState.prototype.prepareCurrentTest): Creates a new &lt;iframe&gt; and waits for it to load a test.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BenchmarkRunner): Manages running the tests and communicating with the benchmarkRunnerClient.
</span><span class="cx">         (BenchmarkRunner.prototype.waitForElement): Waits for an element to be created.
</span><span class="cx">         (BenchmarkRunner.prototype._appendFrame): Creates a new &lt;iframe&gt; element.
</span><span class="lines">@@ -2455,7 +2470,7 @@
</span><span class="cx">         (BenchmarkTestStep): Deleted.
</span><span class="cx">         (Fibonacci): Deleted.
</span><span class="cx">         SimplePromise was moved t Animometer/resources/extensions.js because it is used by the runner and the tests.
</span><del>-        
</del><ins>+
</ins><span class="cx">         (BenchmarkRunner.prototype._waitAndWarmUp): Deleted.
</span><span class="cx">         (BenchmarkRunner.prototype._runTest): Deleted.
</span><span class="cx">         (BenchmarkState.prototype.currentSuite): Deleted.
</span><span class="lines">@@ -2464,13 +2479,13 @@
</span><span class="cx">         (BenchmarkState.prototype.isFirstTest): Deleted.
</span><span class="cx">         (BenchmarkState.prototype.prepareCurrentSuite): Deleted.
</span><span class="cx">         BenchmarkState was renamed to BenchmarkRunnerState to not be confused with the tests BenchmarkState.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/d3.min.js: Copied from Websites/perf.webkit.org/public/v2/js/d3/d3.min.js.
</span><span class="cx">         Needed for drawing charts for the sampled scores and frame rates.
</span><del>-        
</del><ins>+
</ins><span class="cx">         * Animometer/runner/resources/graph.js: Added.
</span><span class="cx">         (graph): Draws a chart for a test sampled data. It shows two y-axes: one for the animated items and the second for FPS.
</span><del>-                
</del><ins>+
</ins><span class="cx">         * Skipped: Skip the Animometer benchmark for now.
</span><span class="cx"> 
</span><span class="cx"> 2015-08-27  Csaba Osztrogonác  &lt;ossy@webkit.org&gt;
</span><span class="lines">@@ -2549,7 +2564,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=146378
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Mark Lam.
</span><del>-        
</del><ins>+
</ins><span class="cx">         The current percentile is 95%.  When I looked at the sample lists in our GC, it was
</span><span class="cx">         clear that the worst 5% samples completely amortize our GC pauses.  Our GC pauses can
</span><span class="cx">         be quite bad.  Clearly, splay-latency is meant to test whether we have an incremental
</span><span class="lines">@@ -2601,34 +2616,34 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=146156
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Geoffrey Garen.
</span><del>-        
</del><ins>+
</ins><span class="cx">         This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
</span><span class="cx">         the cordic test because it was previously the smallest and probably least interesting.
</span><del>-        
</del><ins>+
</ins><span class="cx">         The new test, &quot;cdjs&quot;, is mostly a faithful rewrite of the Java code into JavaScript.
</span><span class="cx">         I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.
</span><del>-        
</del><ins>+
</ins><span class="cx">         There are some differences:
</span><del>-        
</del><ins>+
</ins><span class="cx">         - It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly
</span><span class="cx">           more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees
</span><span class="cx">           and I don't know why that changed in the latest version.
</span><del>-        
</del><ins>+
</ins><span class="cx">         - CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version.
</span><span class="cx">           I wrote the code that I wanted to write for aesthetics, rather than the code that I
</span><span class="cx">           would have written if I tried to write the fastest code possible. Again, I believe
</span><span class="cx">           that this is in the spirit of CDj - it's meant to test what would happen if you wrote
</span><span class="cx">           real-timey stuff in a high level language and actually took advantage of that
</span><span class="cx">           language to be more productive.
</span><del>-        
</del><ins>+
</ins><span class="cx">         The test score reflects the average latency of the worst 10 samples out of 200 samples.
</span><span class="cx">         The simulation uses 1000 aircraft, flying along paths that result in some detected
</span><span class="cx">         collisions every once in a while. The benchmark validates its results by checking the
</span><span class="cx">         total number of collisions detected.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Apart from the integration into the JetStream harness, the CDjs directory contains a
</span><span class="cx">         fully self-contained benchmark that could be run either in the jsc shell or in browser.
</span><del>-        
</del><ins>+
</ins><span class="cx">         This new code uses the same 3-clause BSD license as the Purdue code, and gives
</span><span class="cx">         attribution to Purdue in almost all files. I believe that is appropriate since I wrote
</span><span class="cx">         most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
</span><span class="lines">@@ -2736,7 +2751,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=145762
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Geoffrey Garen.
</span><del>-        
</del><ins>+
</ins><span class="cx">         JetStream has some latency tests that are meant to measure jitter.  Prior to this change, they
</span><span class="cx">         did this by computing the RMS.  But the RMS is a pretty bad metric.  The thing that it rewards
</span><span class="cx">         isn't really the thing that you'd want your browser to do.  These RMS-based tests involve taking
</span><span class="lines">@@ -2757,7 +2772,7 @@
</span><span class="cx">         The worst 1% or the worst 5% would be good things to average.  This will catch cases where the VM
</span><span class="cx">         jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
</span><span class="cx">         to a VM whose best case is worst than another VM's worst case.
</span><del>-        
</del><ins>+
</ins><span class="cx">         For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
</span><span class="cx">         is the best thing - it might include too many scores that are around the best-case performance -
</span><span class="cx">         but it's certainly better than RMS and it might be good enough to keep. But because of that
</span><span class="lines">@@ -2801,7 +2816,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=144617
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Geoffrey Garen.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
</span><span class="cx">         SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
</span><span class="cx">         long-running. So, hash-map sort of belongs here.
</span><span class="lines">@@ -2816,7 +2831,7 @@
</span><span class="cx">         Fix typo bug in Speedometer/resources/main.js
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=144504
</span><span class="cx"> 
</span><del>-        Reviewed by Ryosuke Niwa. 
</del><ins>+        Reviewed by Ryosuke Niwa.
</ins><span class="cx"> 
</span><span class="cx">         * Speedometer/resources/main.js: Fix typo.
</span><span class="cx">         (window.benchmarkClient.totalTimeInDisplayUnit):
</span><span class="lines">@@ -2967,7 +2982,7 @@
</span><span class="cx">         * SVG/resources/RenderAnimator.js: Added.
</span><span class="cx">         These are benchmarks for the SVG rendering. Mainly we want to measure how fast
</span><span class="cx">         the SVG rendering will be when only a small part of it is drawn.
</span><del>-        
</del><ins>+
</ins><span class="cx"> 2015-01-21  Geoffrey Garen  &lt;ggaren@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         bmalloc: support aligned allocation
</span><span class="lines">@@ -3088,7 +3103,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=137245
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Oliver Hunt.
</span><del>-        
</del><ins>+
</ins><span class="cx">         This adds the scaffolding for running Octane version 2 inside run-jsc-benchmarks.
</span><span class="cx">         In the future we should just land Octane2 in this directory, and run-jsc-benchmarks
</span><span class="cx">         should be changed to point directly at this directory instead of requiring the
</span><span class="lines">@@ -3823,7 +3838,7 @@
</span><span class="cx"> 
</span><span class="cx">         [CSS Shapes] Add no shapes version of RegionsShapes performance test
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=131455
</span><del>-        
</del><ins>+
</ins><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="cx"> 
</span><span class="cx">         This is a no shapes version of the RegionsShapes performance test. All the content
</span><span class="lines">@@ -3974,7 +3989,7 @@
</span><span class="cx">         The existing test checks if the leading digit of a sum starts with &quot;-1&quot;.
</span><span class="cx">         However, it turned out that the expected sum is in the order of
</span><span class="cx">         -1.8735013540549517e-16 (i.e. very close to 0).  With small errors in
</span><del>-        the terms of the sum adding up, it is very easy for the resultant sum 
</del><ins>+        the terms of the sum adding up, it is very easy for the resultant sum
</ins><span class="cx">         to fluctuate.  There is no guarantee that the resultant sum's most
</span><span class="cx">         significant digit will start with -1 either.
</span><span class="cx"> 
</span><span class="lines">@@ -4143,7 +4158,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2014-02-10  Zoltan Horvath  &lt;zoltan@webkit.org&gt;
</span><span class="cx"> 
</span><del>-        [CSS Shapes] Add initial performance tests for polygon shape 
</del><ins>+        [CSS Shapes] Add initial performance tests for polygon shape
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=128554
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="lines">@@ -4642,7 +4657,7 @@
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=126596
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Stephanie Lewis.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Extracted benchmark-runner.js and tests.js out of benchmark.js and benchmark.html.
</span><span class="cx"> 
</span><span class="cx">         Added a &quot;client&quot; interface to BenchmarkRunner so that benchmark.html could register necessary hooks to
</span><span class="lines">@@ -4676,7 +4691,7 @@
</span><span class="cx">         (BenchmarkRunner.step): Ditto.
</span><span class="cx">         (BenchmarkRunner._runTestAndRecordResults): Ditto. Note the code to update the UI has been move to
</span><span class="cx">         benchmark.html. Also moved the code to accumulate the totals here from _finalize.
</span><del>-        (BenchmarkRunner._finalize): Moved. 
</del><ins>+        (BenchmarkRunner._finalize): Moved.
</ins><span class="cx"> 
</span><span class="cx">         * DoYouEvenBench/resources/tests.js: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
</span><span class="cx">         Uses BenchmarkTestStep instead of an array for each test step.
</span><span class="lines">@@ -4686,12 +4701,12 @@
</span><span class="cx">         Allow ImageBuffer to re-use IOSurfaces
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=125477
</span><span class="cx"> 
</span><del>-        Reviewed by Geoff Garen. 
</del><ins>+        Reviewed by Geoff Garen.
</ins><span class="cx"> 
</span><del>-        This test times creating a variety of different sizes of canvases 
-        once some have already been created. The second creation of the 
-        canvases should re-use the existing IOSurfaces. 
-        
</del><ins>+        This test times creating a variety of different sizes of canvases
+        once some have already been created. The second creation of the
+        canvases should re-use the existing IOSurfaces.
+
</ins><span class="cx">         * Canvas/reuse.html: Added.
</span><span class="cx"> 
</span><span class="cx"> 2013-12-23  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="lines">@@ -5040,13 +5055,13 @@
</span><span class="cx"> 
</span><span class="cx">         Add line layout performance test that exercises more cases
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=124041
</span><del>-        
</del><ins>+
</ins><span class="cx">         Reviewed by Anders Carlsson.
</span><span class="cx"> 
</span><span class="cx">         The existing line-layout.html covers the most basic left-aligned case only.
</span><span class="cx">         Add a test with more coverage for things that are mostly not yet supported by the simple
</span><span class="cx">         line layout path:
</span><del>-        
</del><ins>+
</ins><span class="cx">         - centered text
</span><span class="cx">         - right aligned text
</span><span class="cx">         - justified text
</span><span class="lines">@@ -5331,7 +5346,7 @@
</span><span class="cx">         * DoYouEvenBench: Added.
</span><span class="cx">         * DoYouEvenBench/benchmark.html: Added.
</span><span class="cx">         * DoYouEvenBench/benchmark.js: Added.
</span><del>-        (SimplePromise): 
</del><ins>+        (SimplePromise):
</ins><span class="cx">         (SimplePromise.prototype.then):
</span><span class="cx">         (SimplePromise.prototype.resolve.else):
</span><span class="cx">         (SimplePromise.prototype.resolve):
</span><span class="lines">@@ -5458,7 +5473,7 @@
</span><span class="cx">         Introduce a version of SunSpider that runs for a really long time (about 1 sec on my machine)
</span><span class="cx"> 
</span><span class="cx">         Rubber stamped by Mark Hahnenberg.
</span><del>-        
</del><ins>+
</ins><span class="cx">         This isn't meant for serious VM-to-VM performance comparisons, but it is useful
</span><span class="cx">         to see how these benchmarks behave when they're completely warmed up.
</span><span class="cx"> 
</span><span class="lines">@@ -5951,7 +5966,7 @@
</span><span class="cx">         since such tests no longer exist. Also fixed up the code compute y-axis range.
</span><span class="cx"> 
</span><span class="cx">         (createTableRow.markupForRun): Updated to use confidenceIntervalDelta() instead of stdev().
</span><del>-        
</del><ins>+
</ins><span class="cx">         (init.addTests): Added. Recursively add metrics.
</span><span class="cx"> 
</span><span class="cx">         * resources/statistics.js: Added. Imported from perf.webkit.org.
</span><span class="lines">@@ -6344,7 +6359,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2012-10-29  Zoltan Horvath  &lt;zoltan@webkit.org&gt;
</span><span class="cx"> 
</span><del>-        Turn PageLoad tests into simple performancetests, commit #7 (last) 
</del><ins>+        Turn PageLoad tests into simple performancetests, commit #7 (last)
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=99899
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="lines">@@ -6388,7 +6403,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2012-10-26  Zoltan Horvath  &lt;zoltan@webkit.org&gt;
</span><span class="cx"> 
</span><del>-        Turn PageLoad tests into simple performancetests, commit #6 
</del><ins>+        Turn PageLoad tests into simple performancetests, commit #6
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=99899
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="lines">@@ -6412,7 +6427,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2012-10-26  Zoltan Horvath  &lt;zoltan@webkit.org&gt;
</span><span class="cx"> 
</span><del>-        Turn PageLoad tests into simple performancetests, commit #5 
</del><ins>+        Turn PageLoad tests into simple performancetests, commit #5
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=99899
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="lines">@@ -6438,7 +6453,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2012-10-25  Zoltan Horvath  &lt;zoltan@webkit.org&gt;
</span><span class="cx"> 
</span><del>-        Turn PageLoad tests into simple performancetests, commit #4 
</del><ins>+        Turn PageLoad tests into simple performancetests, commit #4
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=99899
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="lines">@@ -6459,7 +6474,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2012-10-25  Zoltan Horvath  &lt;zoltan@webkit.org&gt;
</span><span class="cx"> 
</span><del>-        Turn PageLoad tests into simple performancetests, commit #3 
</del><ins>+        Turn PageLoad tests into simple performancetests, commit #3
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=99899
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="lines">@@ -6485,7 +6500,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2012-10-24  Zoltan Horvath  &lt;zoltan@webkit.org&gt;
</span><span class="cx"> 
</span><del>-        Turn PageLoad tests into simple performancetests, commit #2 
</del><ins>+        Turn PageLoad tests into simple performancetests, commit #2
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=99899
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="lines">@@ -6509,7 +6524,7 @@
</span><span class="cx"> 
</span><span class="cx"> 2012-10-24  Zoltan Horvath  &lt;zoltan@webkit.org&gt;
</span><span class="cx"> 
</span><del>-        Turn PageLoad tests into simple performancetests, commit #1 
</del><ins>+        Turn PageLoad tests into simple performancetests, commit #1
</ins><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=99899
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Ryosuke Niwa.
</span><span class="lines">@@ -9788,7 +9803,7 @@
</span><span class="cx"> 2006-12-26  Eric Seidel  &lt;eric@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by bradee-oh.
</span><del>-        
</del><ins>+
</ins><span class="cx">         Add new PageLoadTests directory (this one)
</span><span class="cx">         Add LICENSES file to explain where each SVG came from.
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>