B3 should be able to compile a Check
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2015-11-01  Said Abou-Hallawa  <sabouhallawa@apple,com>
2
3         Add an option to make the graphics benchmark runs a specific test with fixed complexity
4         https://bugs.webkit.org/show_bug.cgi?id=150529
5
6         Reviewed by Darin Adler.
7
8         Beside each test in the suites tree, we are going to show the complexity
9         arithmetic mean of the of the last run in an edit control. Based on a
10         new option these edit controls will all be visible or hidden. If they are
11         visible their values can be changed. The benchmark runner if it run in
12         the non-adaptive mode will set the complexity of the test to the passed
13         value and will not change it ever. The animator will animate the test and
14         frame rate will also be measured.
15
16         * Animometer/runner/animometer.html: Add a new option for the non-adaptive mode.
17         
18         * Animometer/runner/resources/animometer.css:
19         (section#home input[type="number"]): Define the width of all the edit control in the <home> section.
20         (section#home > suites input[type="number"]): The edit controls in the <suites> box will be right aligned and hidden by default.
21         (section#home > suites input[type="number"].selected): When the class "selected" is added, the edit controls will be visible.
22         (section#home > options > label > input[type="number"]): Deleted.
23         
24         * Animometer/runner/resources/animometer.js:
25         (window.benchmarkRunnerClient.didFinishLastIteration): Update the local storage with the results of each test.
26         (window.optionsManager._adaptiveTestElement): Returns the checkbox for setting the adaptive test option.
27         (window.suitesManager._editElement):  Returns the edit element associated with each test element in the suites tree.
28         (window.suitesManager._editsElements): Returns a list of all the elements in the <suites> box.
29         (window.suitesManager._localStorageNameForTest): Change this function to take strings.
30         (window.suitesManager._createTestElement): Adds an edit control beside each test.
31         (window.suitesManager.updateEditsElementsState): Adds/Removes the 'selected' class to/from all the tests edit elements.
32         (window.suitesManager.updateUIFromLocalStorage): Reads the edit control value from the local storage.
33         (window.suitesManager.updateLocalStorageFromUI): Saves the edit control value to the local storage.
34         (window.suitesManager.updateLocalStorageFromJSON): Saves the last run results to the local storage.
35         (window.benchmarkController.initialize): Shows/Hides the test edit controls based on the adaptive test option.
36         (window.benchmarkController.onChangeAdaptiveTestCheckbox): An onchange event handler for the adaptive test checkbox.
37         
38         * Animometer/tests/resources/main.js: 
39         (Benchmark.prototype.update): Fix the complexity of the test if the running mode is non-adaptive test and desired complexity is not zero.
40         (window.runBenchmark): Add the test complexity as a new benchmark option.
41
42 2015-11-01  Said Abou-Hallawa  <sabouhallawa@apple,com>
43
44         Make the size of the benchmark canvas adaptive to the screen size and screen resolution
45         https://bugs.webkit.org/show_bug.cgi?id=150530
46
47         Reviewed by Darin Adler.
48         
49         We want to set the size of the benchmark stage dynamically such that it
50         depends on the screen resolution and the device scale factor. This patch 
51         does more than that because the home page css was not done properly. To
52         use the flex box layout, the animometer.css has to be rewritten almost from
53         scratch. The suites tree has to be rewritten also because it was not collapsing
54         and with the flex box layout it was going outside of the window area. The 
55         options handling and the local storage handling had to be rewritten to
56         allow more flexibility with this patch and the future patches. The code
57         in animometer.js was reorganized into objects to allow distributing the code
58         nicely among separate entities.
59
60         * Animometer/resources/extensions.js:
61         (Point.elementClientSize): Returns the client size of an HTMLElement as a Point object.
62         (Insets.prototype.get width): Follow the function opening brace style guidelines.
63         (Insets.prototype.get height):
64         (Insets.prototype.get size): Returns the size of an Insets as a Point object.
65         
66         (window.DocumentExtension): Provides document helper functions. It should be assailable from the runner and the tests.
67         (window.DocumentExtension.createElement): Creates an HTMLElement given its name, attributes and parentElement. 
68         (window.DocumentExtension.createSvgElement): Creates an SVGElement given its name, attributes and parentElement (moved from utilities.js). 
69         (window.DocumentExtension.insertCssRuleAfter): Inserts a CSS rule after an exiting rule given its text.
70         
71         (ResultsTable.prototype._showHeader): Use DocumentExtension functions.
72         (ResultsTable.prototype._showGraph): Use DocumentExtension functions and create a real button for "Graph..." option.
73         (ResultsTable.prototype._showJSON): Use DocumentExtension functions and create a real button for "JSON..." option.
74         (Options): Deleted.
75         
76         * Animometer/runner/animometer.html: Restructure the page to use the flex box layout.
77         
78         * Animometer/runner/resources/animometer.css:
79         (html,body):
80         (button):
81         
82         (button.large-button):The large button appears in the animometer.html.
83         (button.large-button:active):
84         (button.large-button:disabled):
85         
86         (button.small-button): The small button appears in the results table.
87         (button.small-button:active):
88         
89         (.tree): The tree class is used to list the suites and their tests.
90         (.tree .expand-button): This button expands a tree element.
91         (.tree .expand-button ~ ul): Hide the children (<ul>...</ul>) of a parent node by default.
92         (.tree .expand-button:checked ~ ul): Show the children of a parent node only when checked.
93         (.tree ul): Hide the list bullets.
94         (.tree li): Indent every node in the tree relative to its parent.
95         (.tree ul li): Indent all the non top level nodes only (the tests nodes in our case).
96         (.tree > li:last-child): Do not indent the bottom of the last child node.
97         (.tree-label): Style for all the labels in the tree.
98         (label.tree-label): Style for the labels in the top level only (the suites nodes in our case).
99         (label.tree-label:before): Style the unchecked case of the expand-button.
100         (:checked ~ label.tree-label:before): Style the checked case of the expand-button.
101         
102         (table.results-table): The results table appears while running the test and at the end.
103         (.results-table td):
104         (.results-table th):
105         
106         (div.results-json): The JSON div appears per test or for the whole run.
107         
108         (main): This is the flex box container.
109         
110         (section): A section is displayed exclusively inside the <main>. It is hidden by default.
111         (section.selected): When it is selected, its layout is flex layout.
112         (section > footer): The header or the footer of a section should not take more than 15% of the container.
113         
114         (section#home): The home section has <suites> and <options> parts to be laid out in the middle.
115         (section#home > options): 
116         (section#home > suites): The <suites> should not take more than 40% of the width.
117         (section#home > options > label): The benchmark title.
118         (section#home > header > h2): The benchmark title.
119         (section#home > options > label > input[type="number"]): Sets the width of the option edit control.
120         
121         (section#running): The running section contain the runner <iframe> which takes the whole area of the <main>.
122         (section#running > #running-test): This is the <iframe> container.
123         (section#running > #running-test > iframe): The <iframe> is created by the runner for each test.
124         (section#running > #progress): This is the progress bar.
125         (section#running > #progress > #progress-completed): This is another element which grows while the runner is progressing.
126         (section#running > #record): This the container of the record results table which is shown while running a test.
127         
128         (section#results):
129         (section#json):
130         (section#test-json):
131         (section#test-graph): All these sections have the same layout. A <data> element is laid out between <header> and <footer>.
132
133         (section#results > data):
134         (section#json > data):
135         (section#test-json > data):
136         (section#test-graph > data): The <data> element should take 70% of the <section>.
137         
138         (section#test-graph > data > svg):
139         (.axis line):
140         (.left-samples): These styles are for the d3 graph.
141         
142         (section#test-json > data): This is the style of the JSON <data> element.
143         
144         (iframe): Deleted.
145         (label, p): Deleted.
146         (section > p): Deleted.
147         (section#home > p): Deleted.
148         (section#home > p:first-child): Deleted.
149         (#testContainer): Deleted.
150         (section#running #progress-completed): Deleted.
151         (section#results > table): Deleted.
152         (section#results > table td, th): Deleted.
153         (section#results > table tr.alt, td): Deleted.
154         (section#results > table th): Deleted.
155         (section#json > textarea): Deleted.
156         (.options): Deleted.
157         (.options p): Deleted.
158         (#suites ul): Deleted.
159         (#suites ul ul): Deleted.
160         (#suites ul ul input, #suites ul ul label): Deleted.
161         (#suites.showTests ul ul): Deleted.
162         (.column): Deleted.
163         (input[type="number"]): Deleted.
164         (.buttons): Deleted.
165         (.small-button): Deleted.
166         (#graphContainer): Deleted.
167         (.right-samples): Deleted.
168         (.sample-time): Deleted.
169         (.left-mean): Deleted.
170         (.right-mean): Deleted.
171         
172         * Animometer/runner/resources/animometer.js:
173         (window.benchmarkRunnerClient.initialize): Initialize the client object with the options and the suites.
174         (window.benchmarkRunnerClient.willStartFirstIteration): Use new css selectors for results and the record table.
175         (window.benchmarkRunnerClient.didFinishLastIteration): Move the code which sets the JSON text to sectionsManager.showJSON().
176         
177         (window.sectionsManager): Responsible of managing the <section>s elements inside animometer.html.
178         (window.sectionsManager._sectionHeaderH1Element): Return the <h1> inside the <header> of a given section.
179         (window.sectionsManager._sectionDataDivElement): Return the <div> inside the <data> of a given section.
180         (window.sectionsManager.showScore): Show the score of the last benchmark run.
181         (window.sectionsManager.showTestName): Show the test name for detailed results <section>.
182         (window.sectionsManager.showJSON): Shows the JSON text of the last benchmark or for a specific test.
183         (window.sectionsManager.showSection): Shows a specific <section> in the <main> container.
184         (window.sectionsManager.setupSectionStyle): Sets css attributes for all the <section>s.
185         (window.sectionsManager.setupRunningSectionStyle): Sets the css attributes for the running <section> only.
186         
187         (window.optionsManager): Responsible of managing the user options and streaming them to/form the localStorage.
188         (window.optionsManager._optionsElements): Returns the children <input> elements of the <options>.
189         (window.optionsManager.updateUIFromLocalStorage): Restore the values of the <options> UI elements from the local storage.
190         (window.optionsManager.updateLocalStorageFromUI): Saves the values of the <options> UI elements to the local storage.
191         
192         (window.suitesManager): Responsible of managing the user suites and streaming them to/form the localStorage.
193         (window.suitesManager._treeElement): Returns the suites tree container element.
194         (window.suitesManager._suitesElements): Returns a list of the suites elements.
195         (window.suitesManager._checkboxElement): Returns the checkbox element of a given suite.
196         (window.suitesManager._localStorageNameForTest): Generates a string for the tuple <suite, test> to be saved in the localStorage.
197         (window.suitesManager._updateSuiteCheckboxState): Updates the state of a suite checkbox from the state of its tests' checkboxes.
198         (window.suitesManager._updateStartButtonState): Updates the state of the start button from the state of the suites' checkboxes.
199         (window.suitesManager._onChangeSuiteCheckbox): Called when a suite checkbox is clicked.
200         (window.suitesManager._onChangeTestCheckbox): Called when a test checkbox is clicked.
201         (window.suitesManager._createSuiteElement): Creates suite node in the suites tree.
202         (window.suitesManager._createTestElement): Creates test node in the suites tree.
203         (window.suitesManager.createElements): Creates the suites tree dynamically from the array Suites.
204         (window.suitesManager.updateUIFromLocalStorage): Restore the values of the <suites> UI elements from the local storage.
205         (window.suitesManager.updateLocalStorageFromUI): aves the values of the <suites> UI elements to the local storage.
206         
207         (window.benchmarkController): This is the UI controller of the animometer.html page.
208         (window.benchmarkController.initialize): Called when the animometer.html page is loaded.
209         (window.benchmarkController._runBenchmark): Starts a benchmark run.
210         (window.benchmarkController.startTest): Called when the "Start Test" button is clicked.
211         (window.benchmarkController.showResults): Called at the end of the test to show the final results.
212         (window.benchmarkController.showJson): Called from the results page to show the JSON of the last benchmark run.
213         (window.benchmarkController.showTestGraph): Called from the results the table to show a graph for the samples of a specific test.
214         (window.benchmarkController.showTestJSON): Called from the results the table to show a JSON for the samples of a specific test.
215         
216         (showSection): Deleted.
217         (startTest): Deleted.
218         (showResults): Deleted.
219         (showJson): Deleted.
220         (showTestGraph): Deleted.
221         (showTestJSON): Deleted.
222         (initialize.toggleTestsCheckbox.onchange): Deleted.
223         (initialize): Deleted.
224         (updateSuiteSelection): Deleted.
225         (updateTestSelection): Deleted.
226         (updateSuiteCheckbox): Deleted.
227         (localStorageNameForTest): Deleted.
228         (populateSettings.): Deleted.
229         (populateSettings): Deleted.
230         
231         * Animometer/runner/resources/benchmark-runner.js:
232         (BenchmarkRunner): Pass the frameContainer element to the BenchmarkRunner.
233         (BenchmarkRunner.prototype._appendFrame): Remove unused parameter unwanted styling code.
234         (BenchmarkRunner.prototype.runMultipleIterations):  Use the this._client.iterationCount instead of passing it as a parameter also.
235
236         * Animometer/runner/resources/graph.js:
237         (graph): Calculate the size of the chart from the container element.
238         
239         * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
240         (BouncingSvgImage):
241         * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
242         (BouncingSvgParticlesStage.prototype._createDefs):
243         (BouncingSvgParticlesStage.prototype._createClipStar):        
244         * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
245         (BouncingSvgShape.prototype._createShape):
246         (BouncingSvgShapesStage.prototype.createGradient):
247         Call DocumentExtension.createSvgElement() instead of calling Utilities.createSvgElement().
248         
249         * Animometer/tests/resources/main.js:
250         (Animator.prototype.animate):
251         (Benchmark):
252         (Benchmark.prototype.update):
253         * Animometer/tests/resources/stage.js:
254         (StageBenchmark.prototype.showResults):
255         Rename the options to match the <input> ids in animometer.html.
256         
257         * Animometer/tests/resources/utilities.js:
258         (window.Utilities.createSvgElement): Deleted.
259         
260         * Animometer/tests/text/layering-text.html:
261         * Animometer/tests/text/resources/layering-text.js:
262         (LayeringTextStage):
263         (LayeringTextStage.prototype._setFontSize): Sets the size of the text dynamically such that they all fit in one stage.
264
265 2015-10-29  Simon Fraser  <simon.fraser@apple.com>
266
267         Animometer computes frame rate incorrectly
268         https://bugs.webkit.org/show_bug.cgi?id=150698
269
270         Reviewed by Tim Horton.
271         
272         The existing code incremented this._frameCount after checking against this._dropFrameCount.
273         This has the effect of setting this._measureTimeOffset one frame too late, so
274         we were measuring only two frames, not three, and thus computing an incorrect fps.
275
276         * Animometer/tests/resources/main.js:
277         (Animator.prototype.animate):
278
279 2015-10-27  Jon Lee  <jonlee@apple.com>
280
281         Add an option to make the graphics benchmark runs a specific test
282         https://bugs.webkit.org/show_bug.cgi?id=150528
283         rdar://problem/23246614
284
285         Reviewed by Zalan Bujtas.
286
287         Add a checkbox that lets the user list all of the available tests, and select
288         the ones to run repeatedly. The test checkboxes will update the state of the suite
289         checkbox. The selected tests are stored in localStorage to make it easy to do
290         repeated runs.
291
292         * Animometer/runner/animometer.html: Add a checkbox to show individual tests.
293         Update other markup.
294         * Animometer/runner/resources/animometer.css: Make the settings area a little wider
295         to accommodate the longer names of the tests
296         * Animometer/runner/resources/animometer.js:
297         (startBenchmark): Change the way that the suites are fed into the benchmark
298         runner. Go through each of the suites and their tests, and create a new Suite
299         with just the enabled tests. While enumerating store the enabled tests into
300         localStorage.
301         (initialize): Initialization routine (taking over populateSettings). When the
302         checkbox for showing tests is toggled, add or remove a class on #suites to show
303         the individual tests.
304         (updateSuiteSelection): Called whenever the user toggles the checkbox for a suite.
305         Either select all or none of the tests.
306         (updateTestSelection): Called whenever the user toggles the checkbox for a test.
307         (updateSuiteCheckbox): Update the state of the test's suite's checkbox to
308         indeterminate if there is at least one enabled test, unchecked if none are selected,
309         and checked if all are selected.
310         (localStorageNameForTest): Helper function to get the name of the test to use as
311         a key to localStorage.
312         (populateSettings): Add the tests for each suite into an inner list.
313
314 2015-10-26  Said Abou-Hallawa  <sabouhallawa@apple.com>
315
316         Add an option to output the results of the graphics benchmark in JSON format
317         https://bugs.webkit.org/show_bug.cgi?id=150484
318         <rdar://problem/23243721>
319
320         Reviewed by Darin Adler.
321
322         * Animometer/resources/extensions.js:
323         (ResultsDashboard): A new class to hold the iterations results.
324         (ResultsDashboard.prototype.push): Appends an iteration results;
325         (ResultsDashboard.prototype.toJSON): Converts the iterations results to JSON format.
326
327         (RecordTable.prototype.clear): Clears the results table.
328         (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
329         (RecordTable.prototype._showHeader): Shows the table header titles.
330         (RecordTable.prototype._showEmpty): Shows an empty table cell.
331         (RecordTable.prototype._showValue): Shows a number value in the results table.
332         (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
333         (RecordTable.prototype._showTest): Shows the results of a single test.
334         (RecordTable.prototype._showSuite): Shows the results of a single suite.
335         (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
336         (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations. 
337         
338         (ResultsTable): RecordTable was renamed to ResultsTable.
339         (ResultsTable.prototype.clear): Clears the table element.
340         (ResultsTable.prototype._showHeaderRow): Shows a row in the results table header.
341         (ResultsTable.prototype._showHeader): Shows the results table header.
342         (ResultsTable.prototype._showEmpty): Shows an empty table cell.
343         (ResultsTable.prototype._showText): Shows a string in a new table cell.
344         (ResultsTable.prototype._showFixedNumber): Shows a number in a new table cell.
345         (ResultsTable.prototype._showGraph): Shows a button for the sampled data graph.
346         (ResultsTable.prototype._showJSON): Shows a button for the sampled data JSON.
347         (ResultsTable.prototype._showTest): Shows the results of a single test.
348         (ResultsTable.prototype._showSuite): Shows the results of a single suite.
349         (ResultsTable.prototype._showIteration): Shows the results of a single iteration.
350         (ResultsTable.prototype.showRecord): Shows a single iteration for a single test.
351         (ResultsTable.prototype.showIterations): Shows all the results.
352         (RecordTable): Deleted.
353         (RecordTable.prototype.clear): Deleted.
354         (RecordTable.prototype._showTitles): Deleted.
355         (RecordTable.prototype._showHeader): Deleted.
356         (RecordTable.prototype._showEmpty): Deleted.
357         (RecordTable.prototype._showValue): Deleted.
358         (RecordTable.prototype._showSamples): Deleted.
359         (RecordTable.prototype._showTest): Deleted.
360         (RecordTable.prototype._showSuite): Deleted.
361         (RecordTable.prototype.showRecord): Deleted.
362         (RecordTable.prototype.showIterations): Deleted.
363         
364         * Animometer/resources/sampler.js:
365         (Sampler.prototype.startSampling): Use forEach.
366         (Sampler.prototype.sample): Use forEach.
367         (Sampler.prototype.toJSON): Converts the sampler data to JSON format.
368         
369         * Animometer/resources/strings.js: Added.
370         This new file will be used to associate the strings used by the benchmark
371         with IDs. A string can be changed in one place without having to change
372         all the instances of this string in multiple files. There two groups of
373         strings in this file. The first one is used by the UI elements and the second
374         group is used when constructing the results JSON.
375         
376         * Animometer/runner/animometer.html:
377         * Animometer/runner/resources/animometer.css:
378         
379         * Animometer/runner/resources/animometer.js:
380         (window.benchmarkRunnerClient.willAddTestFrame):
381         (window.benchmarkRunnerClient.willStartFirstIteration):
382         (window.benchmarkRunnerClient.didRunSuites):
383         (window.benchmarkRunnerClient.didFinishLastIteration):
384         Make benchmarkRunnerClient uses ResultsDashboard instead of _iterationsSamplers
385         Get the JSON from ResultsDashboard.toJSON() and pass it to ResultsTable.showIterations().
386         Also set the textContent of the "#json" textarea with the results JSON.
387         
388         (showResults): Delete unneeded code.
389         (showJson): Shows the "json" section.
390         (showTestGraph): Rename showGraph() to be showTestGraph().
391         (showTestJSON): Shows the JSON of a single testResults.
392         (showGraph): Deleted.
393         
394         * Animometer/runner/resources/tests.js:
395         Use the string table instead of putting literal strings.
396
397         * Animometer/tests/resources/stage.js:
398         (StageBenchmark.prototype.showResults):
399         Fix the parameters which are passed to RecordTable.showRecord().
400         
401         * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
402         * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
403         * Animometer/tests/bouncing-particles/bouncing-css-images.html:
404         * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
405         * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
406         * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
407         * Animometer/tests/examples/canvas-electrons.html:
408         * Animometer/tests/examples/canvas-stars.html:
409         * Animometer/tests/simple/simple-canvas-paths.html:
410         * Animometer/tests/template/template-canvas.html:
411         * Animometer/tests/template/template-css.html:
412         * Animometer/tests/template/template-svg.html:
413         * Animometer/tests/text/layering-text.html:
414         Include the new strings.js file in all the test files.
415
416 2015-10-12  Jon Lee  <jonlee@apple.com>
417
418         Add canvas line dash test
419         https://bugs.webkit.org/show_bug.cgi?id=150078
420         <rdar://problem/23082347>
421
422         Reviewed by Dean Jackson.
423
424         * Animometer/runner/resources/tests.js: Add line dash test.
425         * Animometer/tests/simple/resources/simple-canvas-paths.js:
426         (CanvasLineDashStage): Create a new stage with a default dash pattern and stroke style.
427         Maintain a step which will animate the dash.
428         (CanvasLineDashStage.prototype.animate): Render the line path with the dash. Increment
429         the dash offset to animate.
430         (CanvasPathBenchmark.prototype.createStage): Add the test.
431
432 2015-10-12  Jon Lee  <jonlee@apple.com>
433
434         Add canvas line path tests
435         https://bugs.webkit.org/show_bug.cgi?id=150076
436         <rdar://problem/23082285>
437
438         Reviewed by Dean Jackson.
439
440         * Animometer/runner/resources/tests.js: Add new line path tests, with different
441         line joins.
442         * Animometer/tests/simple/resources/simple-canvas-paths.js:
443         (CanvasLinePathStage): The stage is the same as the SimpleCanvasPathStrokeStage
444         but sets the lineJoin on the context.
445         (CanvasPathBenchmark.prototype.createStage): Add the tests.
446
447 2015-10-12  Jon Lee  <jonlee@apple.com>
448
449         Add missing paint objects for arc and arcTo fills
450         https://bugs.webkit.org/show_bug.cgi?id=150075
451         <rdar://problem/23082233>
452
453         Reviewed by Dean Jackson.
454
455         * Animometer/tests/simple/resources/simple-canvas-paths.js: Add missing paint objects
456         for arcTo and arc segment fills.
457         (CanvasArcToSegmentFill):
458         (CanvasArcToSegmentFill.prototype.draw):
459         (CanvasArcSegmentFill):
460         (CanvasArcSegmentFill.prototype.draw):
461
462 2015-10-12  Jon Lee  <jonlee@apple.com>
463
464         Add canvas line segment tests
465         https://bugs.webkit.org/show_bug.cgi?id=150073
466         <rdar://problem/23082138>
467
468         Reviewed by Dean Jackson.
469
470         * Animometer/runner/resources/tests.js: Add new line segment tests, with different
471         line caps.
472         * Animometer/tests/simple/resources/simple-canvas-paths.js:
473         (CanvasLineSegment): Add new line segment paint object.
474         (CanvasLineSegmentStage): Create a new stage that sets the lineCap.
475
476 2015-10-12  Jon Lee  <jonlee@apple.com>
477
478         Add canvas path fill tests
479         https://bugs.webkit.org/show_bug.cgi?id=150071
480         <rdar://problem/23082001>
481
482         Reviewed by Dean Jackson.
483
484         * Animometer/runner/resources/tests.js: Add new pathTypes for path fills.
485         * Animometer/tests/simple/resources/simple-canvas-paths.js:
486         (CanvasLinePoint): Add basic point for a line, and call lineTo.
487         (SimpleCanvasPathFillStage): Add a new stage similar to SimpleCanvasPathStrokeStage.
488         (CanvasPathBenchmark.prototype.createStage): Add the tests.
489
490 2015-10-12  Jon Lee  <jonlee@apple.com>
491
492         Add canvas path tests
493         https://bugs.webkit.org/show_bug.cgi?id=150067
494         rdar://problem/23081463
495
496         Reviewed by Dean Jackson.
497
498         * Animometer/runner/resources/tests.js: Add a quadratic and bezier path test.
499
500         * Animometer/tests/simple/resources/simple-canvas.js:
501         (SimpleCanvasStage.prototype.tune): This kind of test joins all of the segments
502         into one long path, and tries to render that one path. Random points make it
503         difficult to tell what is going on, so add a parameter to the constructor to
504         confine the area where the random coordinates can land. The more complicated the
505         case is, the larger an area the path will cover. Add an artificial minimum so
506         that the first 200 points aren't confined to a space that is too small.
507
508         * Animometer/tests/simple/resources/simple-canvas-paths.js:
509         (SimpleCanvasPathStrokeStage): Add a new kind of stage that inherits from
510         SimpleCanvasStage. Each time the frame animates a random line width and stroke
511         color are chosen. The path setup is done outside of each paint object.
512         (CanvasQuadraticPoint): This point just calls quadraticCurveTo.
513         (CanvasPathBenchmark.prototype.createStage): Add the tests.
514
515 2015-10-12  Jon Lee  <jonlee@apple.com>
516
517         Add basic canvas tests
518         https://bugs.webkit.org/show_bug.cgi?id=150066
519         rdar://problem/23081143
520
521         Reviewed by Dean Jackson.
522
523         This adds a new test suite that will cover all of the path-based canvas calls.
524         The patch will be divided up to cover tests with similar techniques.
525
526         The simplest version uses a SimpleCanvasStage.
527
528         * Animometer/runner/resources/tests.js: Add tests for quadratic, bezier, arcTo,
529         arc, and rect segments. Also include arcTo, arc, and rect fills.
530         * Animometer/tests/resources/stage.js:
531         (Stage.prototype.randomBool): Added for counterclockwise property for arc segments.
532         (Stage.prototype.randomInt): Fix how values are rounded, used by randomBool. It should
533         round instead of flooring everything.
534         * Animometer/tests/simple/resources/simple-canvas.js: Added. Defines common classes
535         used by all simple canvas tests. The page reads best bottom to top.
536         (SimpleCanvasStage): Basic stage. Pass a canvasObject which will be used to create new
537         objects as needed in tune().
538         (SimpleCanvasStage.prototype.tune): Modeled on other tests. Adds and removed objects
539         as specified by the provided |count|.
540         (SimpleCanvasStage.prototype.animate): Iterate over all the objects and ask them to draw.
541         There is no "animating" of the objects; they will just paint statically on the canvas.
542         (SimpleCanvasAnimator): Basic animator clears the canvas prior to painting.
543         (SimpleCanvasBenchmark): Hard-code the feedback loop parameters instead of including
544         them in the query parameters to the test URLs.
545         (SimpleCanvasBenchmark.prototype.createAnimator):
546         * Animometer/tests/simple/simple-canvas-paths.html: Added.
547
548         * Animometer/tests/simple/resources/simple-canvas-paths.js: Added. There is no "animating"
549         of these objects--they just paint statically on the canvas.
550         (CanvasQuadraticSegment): Paint a quadratic segment stroke.
551         (CanvasBezierSegment): Paint a bezier segment stroke.
552         (CanvasArcToSegment): Paint an arcTo stroke.
553         (CanvasArcSegment): Paint an arc stroke.
554         (CanvasRect): Paint a rect.
555         (CanvasRectFill): Paint a filled rect.
556
557         (CanvasPathBenchmark):
558         (CanvasPathBenchmark.prototype.createStage): Look for the pathType and create the
559         stage using the right paint object.
560         (window.benchmarkClient.create):
561
562 2015-10-12  Jon Lee  <jonlee@apple.com>
563
564         Refactor tune() to pass in an integer-based count
565         https://bugs.webkit.org/show_bug.cgi?id=150060
566         <rdar://problem/23079425>
567
568         Reviewed by Dean Jackson.
569
570         All of the tune functions do an initial step of flooring the
571         # of painting objects to add or remove. Factor that out since
572         the complexity of all of these tests is always expressed in terms
573         of countable items.
574
575         * Animometer/tests/resources/main.js:
576         (Benchmark.prototype.update): Update the tuneValue.
577
578         * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
579         (BouncingParticlesStage.prototype.tune): Remove the count adjustment.
580         * Animometer/tests/examples/resources/canvas-electrons.js:
581         (CanvasElectronsStage.prototype.tune): Ditto.
582         * Animometer/tests/examples/resources/canvas-stars.js:
583         (CanvasStarsStage.prototype.tune): Ditto.
584         * Animometer/tests/text/resources/layering-text.js:
585         (LayeringTextStage.prototype.tune): Ditto.
586
587 2015-10-12  Jon Lee  <jonlee@apple.com>
588
589         Store test-interval in localStorage
590         https://bugs.webkit.org/show_bug.cgi?id=150055
591         <rdar://problem/23078879>
592
593         Reviewed by Dean Jackson.
594
595         * Animometer/runner/resources/animometer.js:
596         (populateSettings): Keep track of the specified test interval in localStorage
597         to make it easy to repeat a test suite.
598
599 2015-10-12  Jon Lee  <jonlee@apple.com>
600
601         Remove "../tests/" from the URLs of all tests
602         https://bugs.webkit.org/show_bug.cgi?id=150054
603         <rdar://problem/23078784>
604
605         Reviewed by Dean Jackson.
606
607         Presumably all tests will be running from the tests/ directory,
608         so we don't have to specify it in all of the test URLs.
609
610         * Animometer/runner/resources/benchmark-runner.js:
611         (BenchmarkRunnerState.prototype.prepareCurrentTest): Prepend
612         "../tests/" to all tests.
613         * Animometer/runner/resources/tests.js: Remove "../tests/" from
614         all URLs.
615
616 2015-10-12  Jon Lee  <jonlee@apple.com>
617
618         Refactor test suites to a separate class.
619         https://bugs.webkit.org/show_bug.cgi?id=150053
620         <rdar://problem/23078645>
621
622         Reviewed by Dean Jackson.
623
624         Create a Suite class to refactor out prepare() and run().
625         Generate the checkboxes representing the suites using Suites
626         instead of maintaining a separate list. Also, save the
627         selections out to localStorage.
628
629         * Animometer/runner/animometer.html: Remove the explicitly listed
630         suites. These will be generated from Suites instead.
631         * Animometer/runner/resources/animometer.js:
632         (populateSettings): Iterate through Suites, and create the
633         label and checkbox. Attach the Suite object to the checkbox so
634         when the benchmark is started, we get direct access. Initialize
635         the checkmark based on its value in localStorage. Set this to
636         run when DOMContentLoaded is dispatched.
637         (startBenchmark): Grab all of the checkboxes, inspect their
638         values, add it to enabledSuites if selected. Remember whether
639         the suite was enabled in localStorage, so that it's easy to do
640         repeated runs.
641         * Animometer/runner/resources/tests.js:
642         (Suite): Create a new Suite class. Refactor out prepare() and
643         run(), since all of them have the same implementation. Populate
644         Suites with Suite instances instead of generic objects.
645
646 2015-10-12  Jon Lee  <jonlee@apple.com>
647
648         Update graph styles for legibility.
649         https://bugs.webkit.org/show_bug.cgi?id=150052
650         <rdar://problem/23078503>
651
652         Reviewed by Dean Jackson.
653
654         * Animometer/runner/resources/animometer.css: Update colors and
655         stroke thicknesses to make the graphs easier to read.
656         (.smaple-time): Correct to .sample-time
657         * Animometer/runner/resources/graph.js:
658         (graph): Ditto.
659
660 2015-10-12  Jon Lee  <jonlee@apple.com>
661
662         Update graph styles for legibility.
663         https://bugs.webkit.org/show_bug.cgi?id=150052
664         <rdar://problem/23078503>
665
666         Reviewed by Dean Jackson.
667
668         * Animometer/runner/resources/animometer.css: Update colors and
669         stroke thicknesses to make the graphs easier to read.
670         (.smaple-time): Correct to .sample-time
671         * Animometer/runner/resources/graph.js:
672         (graph): Ditto.
673
674 2015-10-12  Filip Pizlo  <fpizlo@apple.com>
675
676         Unreviewed, revert an unintended commit.
677
678         * JetStream/Octane2/crypto.js:
679         (montRevert):
680         (montReduce):
681
682 2015-10-05  Said Abou-Hallawa  <sabouhallawa@apple.com>
683
684         Add a graphics benchmark
685         https://bugs.webkit.org/show_bug.cgi?id=149053
686         <rdar://problem/18984169>
687
688         Reviewed by Dean Jackson.
689
690         Instead of measuring the FPS of the animation, this benchmark measures the
691         test complexity when rendering at a set-point FPS which should be lower
692         than 60 FPS. This benchmark tries to stay at the set-point FPS by using
693         a closed loop control system PID function. The gain of the system is passed
694         as a parameter when running the test. Measuring the FPS faithfully results
695         very fluctuating values. A Kalman filter is used to give a better estimate
696         for the current FPS.
697
698         The animation of the tests is done manually. requestAnimationFrame() is
699         called with a callback. Inside this callback, the test is animating by
700         changing the positions of the elements inside the page. The test complexity
701         may change also if the current FPS is not equal to the desired FPS.
702
703         In this patch, the benchmark and the tests are included. The shared code
704         and the tests runner are included in separate patches.
705
706         * Animometer/runner/animometer.html:
707         * Animometer/runner/resources/animometer.js:
708         Add two new examples for more complex animation techniques.
709         Add an option to show/hide the test running results which is off by default.
710
711         * Animometer/runner/resources/tests.js: Added.
712         (suiteFromName): Returns a suite given its name.
713         (testFromName): Returns a test given its suite and name.
714
715         * Animometer/tests: Added.
716         This directory includes all the test suites to be run by the benchmark.
717         runner. All the tests should try to run on three stages: CSS, canvas and
718         SVG.
719         
720         * Animometer/tests/bouncing-particles: Added.
721         * Animometer/tests/bouncing-particles/resources: Added.
722         The bouncing particles test is an example of a simple animation technique.
723         
724         * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Added.
725         * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
726         * Animometer/tests/bouncing-particles/bouncing-css-images.html: Added.
727         * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Added.
728         * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Added.
729         * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
730         Bouncing particles test pages.
731
732         * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Added.
733         (BouncingParticle): Base class for a bouncing particle.
734         (BouncingParticle.prototype.center): Returns the center point or the particle.
735         (BouncingParticle.prototype.animate): Moves the particle based on its current position, angle and velocity.
736         
737         (BouncingParticlesAnimator): A sub class of Animator.
738         
739         (BouncingParticlesStage): Represents the container of all the bouncing particles.
740         (BouncingParticlesStage.prototype.parseShapeParamters): Gets the shape parameters for shape animating tests.
741         (BouncingParticlesStage.prototype.randomRotater): Creates a rotater for the particles.
742         (BouncingParticlesStage.prototype.animate): Animates all the particles.
743         (BouncingParticlesStage.prototype.tune): Changes the test by adding or removing particles.
744         
745         (BouncingParticlesBenchmark): Runs the benchmark for bouncing particles test.
746         (BouncingParticlesBenchmark.prototype.createAnimator): Creates an animator of type BouncingParticlesAnimator.
747
748         * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
749         (BouncingCssShape): A sub class of BouncingParticle for animating CSS shapes.
750         (BouncingCssShape.prototype._createSpan): Creates a <span> element and takes the shape and clipping classes into consideration.
751         (BouncingCssShape.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
752         (BouncingCssShape.prototype.animate): Rotates and moves the shape to a new location.
753         
754         (BouncingCssShapesStage): A sub class of BouncingParticlesStage for animating CSS shapes.
755         (BouncingCssShapesStage.prototype.createParticle): Creates a particle of type BouncingCssShape.
756         (BouncingCssShapesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
757         
758         (BouncingCssShapesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS shapes.
759         (BouncingCssShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCssShapesStage.
760         (window.benchmarkClient.create): Creates a benchmark of type BouncingCssShapesBenchmark.
761         
762         * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
763         (BouncingCssImage): A sub class of BouncingParticle for animating CSS images.
764         (BouncingCssImage.prototype._move): Move the particle to a new location. Apply transform since it does not require layout.
765         (BouncingCssImage.prototype.animate): Rotates and moves the shape to a new location.
766         
767         (BouncingCssImagesStage): A sub class of BouncingParticlesStage for animating CSS images.
768         (BouncingCssImagesStage.prototype.createParticle): Creates a particle of type BouncingCssImage.
769         (BouncingCssImagesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
770         
771         (BouncingCssImagesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS images.
772         (BouncingCssImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCssImagesStage.
773         (window.benchmarkClient.create): Creates a benchmark of type BouncingCssImagesBenchmark.
774         
775         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
776         (BouncingCanvasParticle): A base sub-class of BouncingParticle for animating canvas particles.
777         (BouncingCanvasParticle.prototype._applyRotation): Apply the particle rotation-around-center transform to the canvas context.
778         (BouncingCanvasParticle.prototype._applyClipping): Apply the particle clipping to the canvas context.
779         (BouncingCanvasParticle.prototype._draw): A non-implemented version of the drawing function.
780         (BouncingCanvasParticle.prototype.animate): Carries out all the steps to redraw the canvas particle.
781         
782         (BouncingCanvasParticlesStage): A base sub-class of BouncingParticlesStage for animating canvas particles.
783         
784         (BouncingCanvasParticlesAnimator): A concrete sub-class of BouncingParticlesAnimator for animating canvas particles.
785         (BouncingCanvasParticlesAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
786         
787         (BouncingCanvasParticlesBenchmark): A base sub-class of StageBenchmark for animating canvas particles.
788         (BouncingCanvasParticlesBenchmark.prototype.createAnimator): Creates the canvas particles animator.
789         
790         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
791         (BouncingCanvasShape): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
792         (BouncingCanvasShape.prototype._applyFill): Sets the fillStyle in the canvas context.
793         (BouncingCanvasShape.prototype._drawShape): Carries out the actual drawing.
794         (BouncingCanvasShape.prototype._draw): Carries out all the steps to draw the shape.
795         
796         (BouncingCanvasShapesStage): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
797         (BouncingCanvasShapesStage.prototype.createParticle): Creates a particle of type BouncingCanvasShape.
798         
799         (BouncingCanvasShapesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas shapes.
800         (BouncingCanvasShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasShapesStage.
801         (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasShapesBenchmark.
802
803         * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
804         (BouncingCanvasImage): A concrete sub-class of BouncingCanvasParticle for animating canvas images.
805         (BouncingCanvasImage.prototype._draw): Draws an image on the context of a canvas.
806         
807         (BouncingCanvasImagesStage): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
808         (BouncingCanvasImagesStage.prototype.createParticle): Creates a particle of type BouncingCanvasImage.
809         
810         (BouncingCanvasImagesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
811         (BouncingCanvasImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasImagesStage.
812         (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasImagesBenchmark.
813
814         * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
815         (BouncingSvgParticle): A base sub-class of BouncingParticle for animating SVG particles.
816         (BouncingSvgParticle.prototype._applyClipping): Apply the particle clipping by setting the 'clip-path' attribute of the SVGElement.
817         (BouncingSvgParticle.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
818         (BouncingSvgParticle.prototype.animate): Rotates and moves the shape to a new location.
819         (BouncingSvgParticlesStage): A sub class of BouncingParticlesStage for animating SVGElements.
820         (BouncingSvgParticlesStage.prototype._createDefs): Creates an SVGDefsElement.
821         (BouncingSvgParticlesStage.prototype._ensureDefsIsCreated): Ensures there is only one SVGDefsElement is created.
822         (BouncingSvgParticlesStage.prototype._createClipStar): Creates an SVGClipPathElement and sets its 'd' attribute to a star like shape.
823         (BouncingSvgParticlesStage.prototype.ensureClipStarIsCreated): Ensure there is only one star SVGClipPathElement is created.
824         (BouncingSvgParticlesStage.prototype.particleWillBeRemoved): Remove the corresponding element form the parent children list.
825
826         * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
827         (BouncingSvgShape): A concrete sub-class of BouncingSVGParticle for animating SVG shapes.
828         (BouncingSvgShape.prototype._createShape): Creates an SVG shape.
829         (BouncingSvgShape.prototype._applyFill): Applies the selected fill style to the SVG shape.
830         
831         (BouncingSvgShapesStage): A concrete sub-class of BouncingSvgParticlesStage for animating SVG shapes.
832         (BouncingSvgShapesStage.prototype.createGradient): Creates an SVGLinearGradientElement.
833         (BouncingSvgShapesStage.prototype.createParticle): Creates a particle of type BouncingSvgShape.
834         (BouncingSvgShapesStage.prototype.particleWillBeRemoved): Ensures the attached SVGLinearGradientElement is removed from the SVGDefsElement.
835         
836         (BouncingSvgShapesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
837         (BouncingSvgShapesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgShapesStage.
838         (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgShapesBenchmark.
839         
840         * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
841         (BouncingSvgImage): A concrete sub-class of BouncingSVGParticle for animating SVG images.
842         
843         (BouncingSvgImagesStage): A concrete sub-class of BouncingSVGParticlesBenchmark for animating SVG images.
844         (BouncingSvgImagesStage.prototype.createParticle): Creates a particle of type BouncingSvgImage.
845         
846         (BouncingSvgImagesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
847         (BouncingSvgImagesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgImagesStage.
848         (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgImagesBenchmark.
849
850         * Animometer/tests/examples: Added.
851         * Animometer/tests/examples/canvas-electrons.html: Added.
852         * Animometer/tests/examples/canvas-stars.html: Added.
853         Examples test pages. 
854         
855         * Animometer/tests/examples/resources: Added.
856         * Animometer/tests/examples/resources/canvas-electrons.js: Added.
857         (CanvasElectron): An object which draws and animate a electron object on a canvas stage.
858         (CanvasElectron.prototype._draw): Draws the electron object.
859         (CanvasElectron.prototype.animate): Animates the electron object.
860         
861         (CanvasElectronsStage): A concrete sub-class of Stage for animating electrons.
862         (CanvasElectronsStage.prototype.tune): Changes the test by adding or removing elements.
863         (CanvasElectronsStage.prototype.animate): Animates the test elements.
864         
865         (CanvasElectronsAnimator): A concrete sub-class of StageAnimator for animating canvas electrons.
866         (CanvasElectronsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
867         
868         (CanvasElectronsBenchmark): A concrete sub-class of StageBenchmark for animating electrons.
869         (CanvasElectronsBenchmark.prototype.createStage): Creates a stage of CanvasElectronsStage.
870         (CanvasElectronsBenchmark.prototype.createAnimator): Creates an animator of type CanvasElectronsAnimator.
871         (window.benchmarkClient.create): Creates a benchmark of type CanvasElectronsBenchmark.
872         
873         * Animometer/tests/examples/resources/canvas-stars.js: Added.
874         (CanvasStar): An object which draws and animate a star object on a canvas stage.
875         (CanvasStar.prototype._draw): Draws the star object.
876         (CanvasStar.prototype.animate): Animates the star object.
877         
878         (CanvasStarsStage): A concrete sub-class of Stage for animating stars.
879         (CanvasStarsStage.prototype.tune): Changes the test by adding or removing elements.
880         (CanvasStarsStage.prototype.animate): Animates the test elements.
881         
882         (CanvasStarsAnimator): A concrete sub-class of StageAnimator for animating canvas stars.
883         (CanvasStarsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
884         
885         (CanvasStarsBenchmark): A concrete sub-class of Benchmark for animating stars.
886         (CanvasStarsBenchmark.prototype.createStage): Creates a stage of CanvasStarsStage.
887         (CanvasStarsBenchmark.prototype.createAnimator): Creates an animator of type CanvasStarsAnimator.
888         (window.benchmarkClient.create): Creates a benchmark of type CanvasStarsBenchmark.
889
890         * Animometer/tests/resources: Added.
891         This directory includes the script which is required to run an adaptive 
892         graphics benchmark. From an empty test page, the set of classes in this
893         directory are responsible for measuring the current frame rate and
894         changing the test to reach a desired FPS. It keeps asking the test page
895         to tune itself by a certain value to increase or decrease the frame rate.
896         It's also responsible for sampling the test state and the corresponding
897         frame rate.
898         
899         * Animometer/tests/resources/main.js: Added.
900         (BenchmarkState): Tracks the state of the benchmark test.
901         (BenchmarkState.prototype._timeOffset): Returns the timeOffset of a stage.
902         (BenchmarkState.prototype._message): Returns the message of a stage.
903         (BenchmarkState.prototype.update): Sets the currentTimeOffset to a new value.
904         (BenchmarkState.prototype.samplingTimeOffset): Returns the timeOffset of the sampling stage.
905         (BenchmarkState.prototype.currentStage): Returns the current stage of the benchmark.
906         (BenchmarkState.prototype.currentMessage): Returns the message of the current stage and timeOffset.
907         (BenchmarkState.prototype.currentProgress): Returns a percentage of how much the benchmark is running.
908         
909         (Animator): Manages animating the test.
910         (Animator.prototype.start): Called if animating using setInterval is requested.
911         (Animator.prototype.timeDelta): Returns the current timeDelta 
912         (Animator.prototype.animate): Manages the test animation.
913         (Animator.prototype.animateLoop): Called if animating using requestAnimationFrame is requested. 
914
915         (Benchmark): Manages running the test benchmark and recording the sampled data.
916         (Benchmark.prototype.start): Starts the benchmark.
917         (Benchmark.prototype.update): Called from the animator.animate() to change the complexity of the test.
918         (Benchmark.prototype.record): Shows the current (not final) results of the benchmark.
919         (Benchmark.prototype.resolveWhenFinished): Spins until the benchmark is finished and returns its results.
920         (Benchmark.prototype.run): Starts the test, runs it, waits until it is finished and return its results.
921         (window.runBenchmark): Called from the benchmark runner through the suite controller run-callback.
922
923         * Animometer/tests/resources/math.js: Added.
924         (Matrix): A matrix object.
925         (Vector3): A vector of size 3 object.
926         (Matrix3): A matrix of size 3x3 object.
927         
928         (PIDController): Closed-loop controller for a set-point y.
929         (PIDController.prototype._sat): Limits the output to a certain range.
930         (PIDController.prototype.tune): Given the current output of a system, it produces a new pid value for tuning it.
931         
932         (KalmanEstimator): Implement Kalman filter to get an estimate for a sampled data point.
933         (KalmanEstimator.prototype.estimate): Returns an estimate for for a sampled data point.
934
935         * Animometer/tests/resources/utilities.js: Added.
936         (window.Utilities._parse): Given a separator character, it pareses a string to a set of <key, value> pairs.
937         (window.Utilities.parseParameters): Parses a test parameters.
938         (window.Utilities.parseArguments): Parses a tag arguments.
939         (window.Utilities.extendObject): Adds the attributes and their values of an object to another object.
940         (window.Utilities.copyObject): Copies the attributes and their values of an object to a new object.
941         (window.Utilities.mergeObjects): Copies the attributes and their values of two objects to a new object.
942         (window.Utilities.createSvgElement): Creates an SVGElement given its name and its attributes.
943         
944         * Animometer/tests/resources/stage.css: Added.
945         * Animometer/tests/resources/stage.js: Added.
946         (Rotater): Manages rotating an angle within a fixed time interval.
947         (Rotater.prototype.get interval): Returns the time interval which is required to rotate 360 degrees.
948         (Rotater.prototype.next): Moves the current time by a delta.
949         (Rotater.prototype.degree): Returns the current rotating degree.
950         (Rotater.prototype.rotateZ): Returns CSS formatted transform rotateZ() string for the current degree.
951         (Rotater.prototype.rotate): Returns SVG formatted transform rotate() string for the current degree.
952         
953         (Stage): A base class for managing the test complexity and test animation.
954         (Stage.prototype.get size): Returns the size of the stage excluding the CSS padding.
955         (Stage.prototype.random): Returns a random float.
956         (Stage.prototype.randomInt): Returns a random integer.
957         (Stage.prototype.randomPosition): Returns a random position.
958         (Stage.prototype.randomSquareSize): Returns a square size.
959         (Stage.prototype.randomVelocity): Returns a random velocity.
960         (Stage.prototype.randomAngle): Returns a random angle.
961         (Stage.prototype.randomColor): Returns a random color not too dark and not too light.
962         (Stage.prototype.randomRotater): Creates a random rotater. Its velocity depends on choosing a random rotation time interval.
963         (Stage.prototype.tune): A not-implemented version of this function.
964         (Stage.prototype.animate): A not-implemented version of this function.
965         (Stage.prototype.clear): Clears the stage from all its animation elements.
966         
967         (StageAnimator): A base class for the stage-based animators.
968         (StageAnimator.prototype.animate): Calls Animator.animate() which updates the test page and then calls Stage.animate() to force redraw.
969         
970         (StageBenchmark): A base class for the stage-based benchmarks.
971         (StageBenchmark.prototype.createStage): Creates the default stage.
972         (StageBenchmark.prototype.createAnimator): Creates the default animator.
973         (StageBenchmark.prototype.tune): Delegates the call to stage.
974         (StageBenchmark.prototype.clear): Delegates the call to stage.
975         (StageBenchmark.prototype.showResults): Shows the results/progress through its recordTable and progressBar.
976         
977         * Animometer/tests/resources/yin-yang.png: Added.
978         * Animometer/tests/resources/yin-yang.svg: Added.
979         These images are shared among all the tests.
980         
981         * Animometer/tests/template: Added.
982         * Animometer/tests/template/resources: Added.
983         This directory includes template tests which do nothing. They can be used
984         to author new tests. Animated items can be created, moved and redrawn by
985         removing the TODO comments in the script files and writing actual code.
986
987         * Animometer/tests/template/template-css.html: Added.
988         * Animometer/tests/template/template-canvas.html: Added.
989         * Animometer/tests/template/template-svg.html: Added.
990         Template test pages. They can be used as they are. CSS attributes or hidden
991         elements can be added to these derived test pages if needed.
992         
993         * Animometer/tests/template/resources/template-css.js: Added.
994         
995         (TemplateCssStage): A stage to create and animate HTMLElements.
996         (TemplateCssStage.prototype.tune): Changes the test by adding or removing elements.
997         (TemplateCssStage.prototype.animate): Animates the test elements.
998         (TemplateCssBenchmark): 
999         (TemplateCssBenchmark.prototype.createStage): Creates the test stage.
1000         (window.benchmarkClient.create): Creates a benchmark of type TemplateCssBenchmark.
1001         
1002         * Animometer/tests/template/resources/template-canvas.js: Added.
1003         (TemplateCanvasObject):
1004         (TemplateCanvasObject.prototype._draw): Draws the objects on the canvas context.
1005         (TemplateCanvasObject.prototype.animate): Moves and redraws the object.
1006         (TemplateCanvasStage): A stage to create and animate drawing elements.
1007         (TemplateCanvasStage.prototype.tune): hanges the test by adding or removing elements.
1008         (TemplateCanvasStage.prototype.animate):  Animates the test elements.
1009         (TemplateCanvasAnimator.prototype.animate): Starts the animation every frame.
1010         (TemplateCanvasBenchmark): 
1011         (TemplateCanvasBenchmark.prototype.createStage): Creates a stage of type TemplateCanvasStage.
1012         (TemplateCanvasBenchmark.prototype.createAnimator): Creates a animator of type TemplateCanvasAnimator.
1013         (window.benchmarkClient.create): Creates a benchmark of type TemplateCanvasBenchmark.
1014         
1015         * Animometer/tests/template/resources/template-svg.js: Added.
1016         (TemplateSvgStage): A stage to create and animate SVGElements.
1017         (TemplateSvgStage.prototype.tune): Changes the test by adding or removing elements.
1018         (TemplateSvgStage.prototype.animate): Animates the test elements.
1019         (TemplateSvgBenchmark.prototype.createStage): Creates a stage of type TemplateSvgStage.
1020         (window.benchmarkClient.create): Creates a benchmark of type TemplateSvgBenchmark.
1021         
1022         * Animometer/tests/text: Added.
1023         * Animometer/tests/text/resources: Added.
1024         This directory includes the text animating tests which currently runs
1025         on CSS stage only.
1026         
1027         * Animometer/tests/text/layering-text.html: Added.
1028         Text test page.
1029         
1030         * Animometer/tests/text/resources/layering-text.js: Added.
1031         (LayeringTextStage): Represents the container of all the stacked text layers.
1032         (LayeringTextStage.parseTextItem): Parses a textItem which may be an opening tag, a closing tag or a self-closing tag.
1033         (LayeringTextStage.isOpeningTextItem): Returns true if the textItem is an opening tag e.g. '<ol>'.
1034         (LayeringTextStage.isClosingTextItem): Returns true if  the textItem is an closing tag e.g. '</ol>.
1035         (LayeringTextStage.textItemsFlags.LayeringTextStage.textItems.map): Calculates and stores isOpening and isClosing flags for each textItem.
1036         (LayeringTextStage.isColorableTextItem): Returns true if the textItem is self-closing tag e.g. '<p>...</p>'.
1037         (LayeringTextStage.isInsertableTextItem): Returns true if the textItems causes a new element to be added to the text layers.
1038         (LayeringTextStage.colorableTextItems.LayeringTextStage.textItemsFlags.filter): Number of colorable textItems.
1039         (LayeringTextStage.insertableTextItems.LayeringTextStage.textItemsFlags.filter): Number of insertable textItems.
1040         (LayeringTextStage.colorIndexToTextElementIndex): Maps from colorIndex [0..colorableTextItems-1] to textElementIndex [0..insertableTextItems-1].
1041         (LayeringTextStage.prototype._nextTextItem): Moves the _textItemIndex one step forward in a loop [0..LayeringTextStage.textItems.length-1].
1042         (LayeringTextStage.prototype._previousTextItem): Moves the _textItemIndex one step backward in a loop.
1043         (LayeringTextStage.prototype._pushTextElement): Creates a new textItemElement and adds it to the topmost container <div>.
1044         (LayeringTextStage.prototype._popTextElement): Removes the last textItemElement from the topmost container <div>.
1045         (LayeringTextStage.prototype._colorTextItem): Changes the background color of a single colorable textElement. The index advances in a circle [0..colorableTextItems-1].
1046         (LayeringTextStage.prototype.animate): Changes the background color and the text color of the textElements such that a redraw is enforced.
1047         (LayeringTextStage.prototype.tune): Adds or removes textElements to the stage.
1048
1049         (LayeringTextBenchmark): Runs the benchmark for the layering text test.
1050         (LayeringTextBenchmark.prototype.createStage): Creates a stage of type LayeringTextStage.
1051         (window.benchmarkClient.create): Creates a benchmark of type LayeringTextBenchmark.
1052
1053 2015-10-02  Said Abou-Hallawa  <sabouhallawa@apple.com>
1054
1055         Add shared code for a new a graphics benchmark
1056         https://bugs.webkit.org/show_bug.cgi?id=149691
1057
1058         Reviewed by Ryosuke Niwa.
1059
1060         This set of classes will be shared and used by the tests and the runner
1061         of a new graphics benchmark.
1062
1063         * Animometer/resources: Added.
1064         * Animometer/resources/algorithm.js: Added.
1065         (Array.prototype.swap): Swaps two elements in an array.
1066         (Heap): Binary Min/Max Heap object
1067         (Heap.prototype._parentIndex): Given the child node index, it returns the parent index.
1068         (Heap.prototype._leftIndex): Given the parent node index, it returns the left node index.
1069         (Heap.prototype._rightIndex): Given the parent node index, it returns the right node index.
1070         (Heap.prototype._childIndex): Given the parent node index, it returns the child index that may violate the heap property.
1071         (Heap.prototype.init): Initializes the heap state.
1072         (Heap.prototype.top): Returns the value stored at the top of the heap.
1073         (Heap.prototype.push): Pushes a new node at the top of the heap.
1074         (Heap.prototype.pop): Extracts the top node of the heap.
1075         (Heap.prototype._bubble): Fixes the heap property by moving upward.
1076         (Heap.prototype._sink): Fixes the heap property by moving downward.
1077         (Heap.prototype.str): Prints the nodes of the heap to a string.
1078         (Heap.prototype.values): Returns the last "size" heap elements values.
1079
1080         (Algorithm.createMinHeap): Creates a size-bounded min-heap object.
1081         (Algorithm.createMaxHeap): Creates a size-bounded max-heap object.
1082         
1083         * Animometer/resources/extensions.js: Added.
1084         (Point): Point object but can be used as size also.
1085         (Point.pointOnCircle): Given, the radius of the circle and the angle of the point, it returns a point object.
1086         (Point.pointOnEllipse): Given, the radiuses of the ellipse and the angle of the point, it returns a point object.
1087         (Point.prototype.get width): Should be called when the point is used as size.
1088         (Point.prototype.get height): Should be called when the point is used as size.
1089         (Point.prototype.get center): Should be called when the point is used as size.
1090         (Point.prototype.add): Returns a new point = this + other.
1091         (Point.prototype.subtract): Returns a new point = this - other.
1092         (Point.prototype.multiply): Returns a new point = this * other.
1093         (Point.prototype.move): Moves the point in a given direction, velocity, time period.
1094
1095         (Insets): Represents borders of a container.
1096         (Insets.prototype.get width): Returns left + right.
1097         (Insets.prototype.get height): Returns top + bottom.
1098
1099         (SimplePromise):
1100         (SimplePromise.prototype.then):
1101         (SimplePromise.prototype.resolve):
1102         Moved from Animometer/runner/resources/benchmark-runner.js since tests also need it.
1103
1104         (Options): Benchmark running options as they are set by the user.
1105
1106         (ProgressBar): Manages a progress bar element. The progress bar is divided into equal length ranges.
1107         (ProgressBar.prototype._progressToPercent): Converts the progress into a percentage.
1108         (ProgressBar.prototype.incRange): Moves to the next range (a range is the running time of a single test).
1109         (ProgressBar.prototype.setPos): Draws the current progress in the current range.
1110
1111         (RecordTable): Shows the results of running a benchmark in a tabular form.
1112         (RecordTable.prototype.clear): Clears the results table.
1113         (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
1114         (RecordTable.prototype._showHeader): Shows the table header titles.
1115         (RecordTable.prototype._showEmpty): Shows an empty table cell.
1116         (RecordTable.prototype._showValue): Shows a number value in the results table.
1117         (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
1118         (RecordTable.prototype._showTest): Shows the results of a single test.
1119         (RecordTable.prototype._showSuite): Shows the results of a single suite.
1120         (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
1121         (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations. 
1122
1123         * Animometer/resources/sampler.js: Added.
1124         (Statistics.sampleMean): Returns the sample mean.
1125         (Statistics.unbiasedSampleStandardDeviation): Returns the unbiased sample variance (i.e. with Bessel's correction)
1126         (Statistics.geometricMean): Returns the geometric mean.
1127
1128         (Experiment): Represents a sampling experiment. 
1129         (Experiment.prototype._init): Called when the object is created and when startSampling() is called.
1130         (Experiment.prototype.startSampling): Called after warmup period. Restarts collecting sampled data points.
1131         (Experiment.prototype.sample): Add a new data point.
1132         (Experiment.prototype.mean): Returns the sample mean for the current sampled data points.
1133         (Experiment.prototype.standardDeviation): Returns the sample standard deviation for the current sampled data points.
1134         (Experiment.prototype.percentage): Returns the percentage of the standard deviation divided to the mean.
1135         (Experiment.prototype.confidenceIntervalDelta): Calculates the confidence delta for the current sampled data given a confidence level.
1136         (Experiment.prototype.concern): Returns the average of the worst given percentage from the sampled data.
1137         (Experiment.prototype.score): Returns a score for the sampled data. It is the geometric mean of sampleMean and concern.
1138
1139         (Sampler): Represents a compound experiment. It manages sampling multiple data points at the same time offset.
1140         (Sampler.prototype.startSampling): Called after warming up period. Restarts collecting sampled data points.
1141         (Sampler.prototype.sample): Add a new data vector at a given time offset.
1142         
1143 2015-10-02  Said Abou-Hallawa  <sabouhallawa@apple.com>
1144
1145         Add the test runner for a new a graphics benchmark
1146         https://bugs.webkit.org/show_bug.cgi?id=149683
1147
1148         Reviewed by Ryosuke Niwa.
1149
1150         The test runner collects the selected test suites and the running options
1151         from its home page. It loops through all the tests, runs them and collects
1152         their running results. At the end, it shows summary results and a final
1153         score. It can also show a chart for a test sampled data.
1154
1155         * Animometer: Added.
1156         * Animometer/runner: Added.
1157         * Animometer/runner/resources: Added.
1158         
1159         * Animometer/runner/animometer.html: Added.
1160         * Animometer/runner/resources/animometer.css: Added.
1161         The benchmark runner page and css.
1162
1163         * Animometer/runner/resources/animometer.js: Added.
1164         (window.benchmarkRunnerClient.willAddTestFrame): Called after the test <iframe> is created.
1165         (window.benchmarkRunnerClient.didRunTest): Called after running a test is finished.
1166         (window.benchmarkRunnerClient.willStartFirstIteration): Called at the beginning before running any test.
1167         (window.benchmarkRunnerClient.didRunSuites): Called after running all tests of a suite.
1168         (window.benchmarkRunnerClient.didFinishLastIteration): Called after running the last test.
1169         
1170         (showSection): Shows a section in the animometer.html page.
1171         (startTest): Called when the "Start Test" button is clicked.
1172         (showResults): Called after finishing all the tests.
1173         (showGraph): Called when "Click..." button in the "Samples" column of the results table is clicked
1174         
1175         * Animometer/runner/resources/benchmark-runner.js: Copied from PerformanceTests/Speedometer/resources/benchmark-runner.js.
1176         (BenchmarkRunnerState): Tracks the current running <suite, test>
1177         (BenchmarkRunnerState.prototype.currentSuite): Returns the current running suite.
1178         (BenchmarkRunnerState.prototype.currentTest): Returns the current running test.
1179         (BenchmarkRunnerState.prototype.isFirstTest): Returns true if we are running the first test in the current suite.
1180         (BenchmarkRunnerState.prototype.next): Advances to the next test.
1181         (BenchmarkRunnerState.prototype.prepareCurrentTest): Creates a new <iframe> and waits for it to load a test.
1182         
1183         (BenchmarkRunner): Manages running the tests and communicating with the benchmarkRunnerClient.
1184         (BenchmarkRunner.prototype.waitForElement): Waits for an element to be created.
1185         (BenchmarkRunner.prototype._appendFrame): Creates a new <iframe> element.
1186         (BenchmarkRunner.prototype._removeFrame): Removed the current <iframe> element.
1187         (BenchmarkRunner.prototype._runTestAndRecordResults): Runs the current test and saves its results.
1188         (BenchmarkRunner.prototype.step): Either runs the current test if there is or start a new iteration.
1189         (BenchmarkRunner.prototype.runAllSteps): Loops to run all the tests and move to the next iteration.
1190         (this._runNextIteration): Starts a new iteration or show the results.
1191         (BenchmarkRunner.prototype.runMultipleIterations): Loops to run all the iterations and show the results
1192         (BenchmarkRunner.prototype._finalize): Finalizes the current iteration and starts a new one.
1193
1194         (SimplePromise): Deleted.
1195         (SimplePromise.prototype.then): Deleted.
1196         (SimplePromise.prototype.resolve): Deleted.
1197         (BenchmarkTestStep): Deleted.
1198         (Fibonacci): Deleted.
1199         SimplePromise was moved t Animometer/resources/extensions.js because it is used by the runner and the tests.
1200         
1201         (BenchmarkRunner.prototype._waitAndWarmUp): Deleted.
1202         (BenchmarkRunner.prototype._runTest): Deleted.
1203         (BenchmarkState.prototype.currentSuite): Deleted.
1204         (BenchmarkState.prototype.currentTest): Deleted.
1205         (BenchmarkState.prototype.next): Deleted.
1206         (BenchmarkState.prototype.isFirstTest): Deleted.
1207         (BenchmarkState.prototype.prepareCurrentSuite): Deleted.
1208         BenchmarkState was renamed to BenchmarkRunnerState to not be confused with the tests BenchmarkState.
1209         
1210         * Animometer/runner/resources/d3.min.js: Copied from Websites/perf.webkit.org/public/v2/js/d3/d3.min.js.
1211         Needed for drawing charts for the sampled scores and frame rates.
1212         
1213         * Animometer/runner/resources/graph.js: Added.
1214         (graph): Draws a chart for a test sampled data. It shows two y-axes: one for the animated items and the second for FPS.
1215                 
1216         * Skipped: Skip the Animometer benchmark for now.
1217
1218 2015-08-27  Csaba Osztrogonác  <ossy@webkit.org>
1219
1220         [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
1221         https://bugs.webkit.org/show_bug.cgi?id=148470
1222
1223         Unreviewed gardening, skip the hanging test to make the performance bot work.
1224
1225         * Skipped:
1226
1227 2015-08-17  Chris Dumez  <cdumez@apple.com>
1228
1229         Add performance tests for traversal of collections returned by getElementsByClassName() / getElementsByTagName()
1230         https://bugs.webkit.org/show_bug.cgi?id=148080
1231
1232         Reviewed by Antti Koivisto.
1233
1234         Add performance tests for traversal of *uncached* collections returned
1235         by getElementsByClassName() / getElementsByTagName(). These methods
1236         will soon be updated to return an HTMLCollection instead of a
1237         NodeList and we need to make sure we don't regress performance in the
1238         process.
1239
1240         * DOM/get-elements-by-class-name-traversal-uncached.html: Added.
1241         * DOM/get-elements-by-tag-name-traversal-uncached.html: Added.
1242
1243 2015-08-14  Chris Dumez  <cdumez@apple.com>
1244
1245         Add performance tests for NodeList and HTMLCollection traversal
1246         https://bugs.webkit.org/show_bug.cgi?id=148043
1247
1248         Reviewed by Gavin Barraclough.
1249
1250         Add performance tests for NodeList and HTMLCollection traversal.
1251         Ideally, those 2 tests should be as fast. However, due to inefficiencies
1252         in our HTMLCollection bindings code, the HTMLCollection tests is ~30%
1253         slower. This will be addressed in the near future.
1254
1255         * Bindings/childNodes-traversal.html: Added.
1256         * Bindings/children-traversal.html: Added.
1257
1258 2015-08-05  Myles C. Maxfield  <mmaxfield@apple.com>
1259
1260         Add a second font-fallback performance test
1261         https://bugs.webkit.org/show_bug.cgi?id=147692
1262
1263         Reviewed by Ryosuke Niwa.
1264
1265         This test is smaller, but has more realistic content. Also, it uses the "lang" attribute.
1266
1267         * Layout/font-fallback-2.html: Added.
1268         * Layout/resources/font-fallback-2.html: Added.
1269
1270 2015-07-13  Filip Pizlo  <fpizlo@apple.com>
1271
1272         Update JetStream version number to 1.1.
1273
1274         Rubber stamped by Ryosuke Niwa.
1275
1276         * JetStream/create.rb:
1277
1278 2015-06-30  Filip Pizlo  <fpizlo@apple.com>
1279
1280         Update the JetStream documentation to reflect the recent changes
1281         https://bugs.webkit.org/show_bug.cgi?id=146474
1282
1283         Reviewed by Geoffrey Garen.
1284
1285         * JetStream/create.rb: Bump the version.
1286         * JetStream/in-depth-TEMPLATE.html: Add cdjs documentation. Remove cordic documentation. Change documentation for splay and mandreel.
1287
1288 2015-06-26  Filip Pizlo  <fpizlo@apple.com>
1289
1290         [JetStream] Raise the percentile of mandreel-latency and splay-latency
1291         https://bugs.webkit.org/show_bug.cgi?id=146378
1292
1293         Reviewed by Mark Lam.
1294         
1295         The current percentile is 95%.  When I looked at the sample lists in our GC, it was
1296         clear that the worst 5% samples completely amortize our GC pauses.  Our GC pauses can
1297         be quite bad.  Clearly, splay-latency is meant to test whether we have an incremental
1298         GC that ensures that you don't have bad worst-case pauses.  But 95% is too small,
1299         because it doesn't really capture those pauses.  Raising the percentile to above 99%
1300         appears to do the trick.  99.5% or more seems like a good bet.  The trade-off there is
1301         just that if we set it too high, then we won't have enough statistics.  Doing this very
1302         clearly rewards GCs that are incremental, and punishes GCs that aren't (like ours).
1303         That's what we want, since in the future we want to use this test to guide any
1304         improvements to the worst-case performance of our GC.
1305
1306         The way that the percentile is selected will also affect mandreel-latency.  That's a
1307         good thing, because 95% is probably too low for that test as well.  That test ends up
1308         with >10k samples.  The goal of using 95% in the first place was to get enough samples
1309         to have a stable average.  But if we have >10k samples, we can push that percentile up
1310         much higher and still get good statistics while achieving the effect we want - i.e.
1311         getting the worst case.
1312
1313         I don't think that we need to do the same thing for cdjs.  That test only takes 200
1314         samples, so 95% means we report the average of the worst 10 samples.  That's probably
1315         good enough.
1316
1317         * JetStream/Octane2/base.js: Raise the percentile as described above.
1318         (BenchmarkSuite.prototype.RunSingleBenchmark):
1319         * JetStream/Reference.js: Tweak the reference times to bring the latency tests closer to 100ish on my machine.
1320         * JetStream/create.rb: Bump the version.
1321
1322 2015-06-19  Filip Pizlo  <fpizlo@apple.com>
1323
1324         Run CDjs as part of JSC stress testing
1325         https://bugs.webkit.org/show_bug.cgi?id=146174
1326
1327         Reviewed by Geoffrey Garen.
1328
1329         * JetStream/cdjs/cdjs-tests.yaml: Added. This tells JSC stress tests what tests to run. It uses new syntax ("tests" being a list) that I add in this change.
1330         * JetStream/cdjs/main.js: Mark this as a slow test.
1331         * JetStream/create.rb: Don't copy the JSC stress tests artifacts into the JetStream bundle.
1332
1333 2015-06-19  Filip Pizlo  <fpizlo@apple.com>
1334
1335         Unreviewed, fix a small indentation goof.
1336
1337         * JetStream/cdjs/motion.js:
1338         (Motion.prototype.findIntersection):
1339
1340 2015-06-19  Filip Pizlo  <fpizlo@apple.com>
1341
1342         JetStream should include a JavaScript version of the CDx real-time benchmark
1343         https://bugs.webkit.org/show_bug.cgi?id=146156
1344
1345         Reviewed by Geoffrey Garen.
1346         
1347         This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
1348         the cordic test because it was previously the smallest and probably least interesting.
1349         
1350         The new test, "cdjs", is mostly a faithful rewrite of the Java code into JavaScript.
1351         I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.
1352         
1353         There are some differences:
1354         
1355         - It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly
1356           more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees
1357           and I don't know why that changed in the latest version.
1358         
1359         - CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version.
1360           I wrote the code that I wanted to write for aesthetics, rather than the code that I
1361           would have written if I tried to write the fastest code possible. Again, I believe
1362           that this is in the spirit of CDj - it's meant to test what would happen if you wrote
1363           real-timey stuff in a high level language and actually took advantage of that
1364           language to be more productive.
1365         
1366         The test score reflects the average latency of the worst 10 samples out of 200 samples.
1367         The simulation uses 1000 aircraft, flying along paths that result in some detected
1368         collisions every once in a while. The benchmark validates its results by checking the
1369         total number of collisions detected.
1370         
1371         Apart from the integration into the JetStream harness, the CDjs directory contains a
1372         fully self-contained benchmark that could be run either in the jsc shell or in browser.
1373         
1374         This new code uses the same 3-clause BSD license as the Purdue code, and gives
1375         attribution to Purdue in almost all files. I believe that is appropriate since I wrote
1376         most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
1377         In some cases, I even copy-pasted the Java code, like the complicated math for
1378         four-dimensional intersections and voxel hashing.
1379
1380         * JetStream/CDjsSetup.js: Added.
1381         * JetStream/Octane2Setup.js:
1382         * JetStream/Reference.js:
1383         * JetStream/cdjs: Added.
1384         * JetStream/cdjs/benchmark.js: Added.
1385         (benchmark):
1386         * JetStream/cdjs/call_sign.js: Added.
1387         (CallSign):
1388         (CallSign.prototype.compareTo):
1389         (CallSign.prototype.toString):
1390         * JetStream/cdjs/collision.js: Added.
1391         (Collision):
1392         (Collision.prototype.toString):
1393         * JetStream/cdjs/collision_detector.js: Added.
1394         (CollisionDetector):
1395         (CollisionDetector.prototype.handleNewFrame.get for):
1396         (CollisionDetector.prototype.handleNewFrame):
1397         * JetStream/cdjs/constants.js: Added.
1398         * JetStream/cdjs/main.html: Added.
1399         * JetStream/cdjs/main.js: Added.
1400         * JetStream/cdjs/motion.js: Added.
1401         (Motion):
1402         (Motion.prototype.toString):
1403         (Motion.prototype.delta):
1404         (Motion.prototype.findIntersection):
1405         * JetStream/cdjs/motion_test.js: Added.
1406         (checkDoesIntersect):
1407         (checkDoesNotIntersect):
1408         (makeMotion):
1409         * JetStream/cdjs/red_black_tree.js: Added.
1410         (RedBlackTree):
1411         (RedBlackTree.):
1412         * JetStream/cdjs/red_black_tree_test.js: Added.
1413         (test):
1414         (test.):
1415         * JetStream/cdjs/reduce_collision_set.js: Added.
1416         (drawMotionOnVoxelMap):
1417         (drawMotionOnVoxelMap.):
1418         (.get reduceCollisionSet):
1419         * JetStream/cdjs/reduce_collision_set_test.js: Added.
1420         (makeMotion):
1421         (keys):
1422         (test):
1423         * JetStream/cdjs/simulator.js: Added.
1424         (Simulator):
1425         (Simulator.prototype.simulate):
1426         * JetStream/cdjs/util.js: Added.
1427         (compareNumbers):
1428         (averageAbovePercentile):
1429         (currentTime):
1430         (else.currentTime):
1431         * JetStream/cdjs/vector_2d.js: Added.
1432         (Vector2D):
1433         (Vector2D.prototype.plus):
1434         (Vector2D.prototype.minus):
1435         (Vector2D.prototype.toString):
1436         (Vector2D.prototype.compareTo):
1437         * JetStream/cdjs/vector_3d.js: Added.
1438         (Vector3D):
1439         (Vector3D.prototype.plus):
1440         (Vector3D.prototype.minus):
1441         (Vector3D.prototype.dot):
1442         (Vector3D.prototype.squaredMagnitude):
1443         (Vector3D.prototype.magnitude):
1444         (Vector3D.prototype.times):
1445         (Vector3D.prototype.as2D):
1446         (Vector3D.prototype.toString):
1447         * JetStream/create.rb:
1448         * JetStream/index-TEMPLATE.html:
1449         * JetStream/sunspider/cordic.js: Removed.
1450
1451 2015-06-17  Javier Fernandez  <jfernandez@igalia.com>
1452
1453         [CSS Grid Layout] We should add performance tests for stretching logic
1454         https://bugs.webkit.org/show_bug.cgi?id=146063
1455
1456         Reviewed by Sergio Villar Senin.
1457
1458         Added a new performance test for Grid Layout to ensure there are no
1459         regressions in the stretching alignment logic.
1460
1461         * Layout/fixed-grid-lots-of-stretched-data.html: Added.
1462
1463 2015-06-17  Javier Fernandez  <jfernandez@igalia.com>
1464
1465         [CSS Grid Layout] Performance tests are using the old syntax
1466         https://bugs.webkit.org/show_bug.cgi?id=146061
1467
1468         Reviewed by Sergio Villar Senin.
1469
1470         Adapted tests to the new grid tracks definition syntax.
1471
1472         * Layout/auto-grid-lots-of-data.html:
1473         * Layout/fixed-grid-lots-of-data.html:
1474
1475 2015-06-08  Filip Pizlo  <fpizlo@apple.com>
1476
1477         JetStream should have a more rational story for jitter-oriented latency tests
1478         https://bugs.webkit.org/show_bug.cgi?id=145762
1479
1480         Reviewed by Geoffrey Garen.
1481         
1482         JetStream has some latency tests that are meant to measure jitter.  Prior to this change, they
1483         did this by computing the RMS.  But the RMS is a pretty bad metric.  The thing that it rewards
1484         isn't really the thing that you'd want your browser to do.  These RMS-based tests involve taking
1485         the geomean of the RMS of some samples and the sample average.  The lower the geomean, the better
1486         (in the JetStream harness we then invert the scores so that higher is better, but let's ignore
1487         that for this discussion and assume that lower is better).  Here's an example of how this can go
1488         bad.  A browser that always computes a task in some horribly long time (say, 1000ms) but never
1489         varies that time will perform better than a browser that usually computes the task super quickly
1490         (say, 10ms) and sometimes just a little bit less quickly (say, 15ms).  The former browser will
1491         have an RMS of 0 and an average of 1000.  The latter will have a RMS somewhere around 3.5 and an
1492         average of 12.5 (assuming equal probability of 10ms and 15ms).  The geomean of (0, 1000) is 0.
1493         The geomean of (3.5, 12.5) is 6.6.  Lower is better, so the former browser scores higher - even
1494         though it's obviously never better to have a browser always complete a task in 1000ms when a
1495         different browser can do it in 15ms in the worst case.
1496
1497         JetStream should not have this pathology.  The right way of avoiding it is to replace RMS with
1498         some other metric of how bad things get.  A good metric is the average of the worst percentile.
1499         The worst 1% or the worst 5% would be good things to average.  This will catch cases where the VM
1500         jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
1501         to a VM whose best case is worst than another VM's worst case.
1502         
1503         For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
1504         is the best thing - it might include too many scores that are around the best-case performance -
1505         but it's certainly better than RMS and it might be good enough to keep. But because of that
1506         uncertainty, I'm setting the version to be "1.1-alpha1" to indicate that we aren't ready to
1507         release this yet.
1508
1509         * JetStream/Octane2/base.js:
1510         (.this.Setup.setup.setup):
1511         (.this.TearDown.tearDown.tearDown):
1512         (BenchmarkSuite.GeometricMeanTime):
1513         (BenchmarkSuite.AverageAbovePercentile):
1514         (BenchmarkSuite.GeometricMeanLatency):
1515         (BenchmarkSuite.prototype.NotifyStep):
1516         (BenchmarkSuite.prototype.RunSingleBenchmark):
1517         * JetStream/Octane2/mandreel.js:
1518         (setupMandreel):
1519         (updateMandreelStats):
1520         (startMandreelTimer):
1521         (latencyMandreel):
1522         (tearDownMandreel):
1523         (RMSMandreel): Deleted.
1524         * JetStream/Octane2/splay.js:
1525         (GenerateKey):
1526         (SplayUpdateStats):
1527         (InsertNewNode):
1528         (SplayTearDown):
1529         (SplayRMS): Deleted.
1530         * JetStream/create.rb:
1531
1532 2015-06-03  Zalan Bujtas  <zalan@apple.com>
1533
1534         Skip Dromaeo/jslib-modify-prototype.html for now.
1535
1536         Unreviewed gardening.
1537
1538         * Skipped:
1539
1540 2015-05-04  Filip Pizlo  <fpizlo@apple.com>
1541
1542         Large array shouldn't be slow
1543         https://bugs.webkit.org/show_bug.cgi?id=144617
1544
1545         Reviewed by Geoffrey Garen.
1546         
1547         Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
1548         SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
1549         long-running. So, hash-map sort of belongs here.
1550
1551         * LongSpider/hash-map.js: Added.
1552         (HashMap):
1553         (HashMap.):
1554         (.get var):
1555
1556 2015-05-01  Dewei Zhu  <dewei_zhu@apple.com>
1557
1558         Fix typo bug in Speedometer/resources/main.js
1559         https://bugs.webkit.org/show_bug.cgi?id=144504
1560
1561         Reviewed by Ryosuke Niwa. 
1562
1563         * Speedometer/resources/main.js: Fix typo.
1564         (window.benchmarkClient.totalTimeInDisplayUnit):
1565
1566 2015-04-21  Ryosuke Niwa  <rniwa@webkit.org>
1567
1568         Add JetStream to PerformanceTests
1569         https://bugs.webkit.org/show_bug.cgi?id=144024
1570
1571         Rubber-stamped by Filip Pizlo.
1572
1573         * JetStream: Added.
1574         * JetStream/JetStream-Logo.png: Added.
1575         * JetStream/JetStream-Logo@2x.png: Added.
1576         * JetStream/JetStream.css: Added.
1577         * JetStream/JetStreamDriver.js: Added.
1578         * JetStream/LICENSE.txt: Added.
1579         * JetStream/LLVM-test-suite-LICENSE.txt: Added.
1580         * JetStream/Octane: Added.
1581         * JetStream/Octane/base.js: Added.
1582         * JetStream/Octane/code-load.js: Added.
1583         * JetStream/Octane2: Added.
1584         * JetStream/Octane2/base.js: Added.
1585         * JetStream/Octane2/box2d.js: Added.
1586         * JetStream/Octane2/code-load.js: Added.
1587         * JetStream/Octane2/crypto.js: Added.
1588         * JetStream/Octane2/deltablue.js: Added.
1589         * JetStream/Octane2/earley-boyer.js: Added.
1590         * JetStream/Octane2/gbemu-part1.js: Added.
1591         * JetStream/Octane2/gbemu-part2.js: Added.
1592         * JetStream/Octane2/mandreel.js: Added.
1593         * JetStream/Octane2/navier-stokes.js: Added.
1594         * JetStream/Octane2/pdfjs.js: Added.
1595         * JetStream/Octane2/raytrace.js: Added.
1596         * JetStream/Octane2/regexp.js: Added.
1597         * JetStream/Octane2/richards.js: Added.
1598         * JetStream/Octane2/run.js: Added.
1599         * JetStream/Octane2/splay.js: Added.
1600         * JetStream/Octane2/typescript-compiler.js: Added.
1601         * JetStream/Octane2/typescript-input.js: Added.
1602         * JetStream/Octane2/typescript.js: Added.
1603         * JetStream/Octane2/zlib-data.js: Added.
1604         * JetStream/Octane2/zlib.js: Added.
1605         * JetStream/Octane2Setup.js: Added.
1606         * JetStream/OctaneSetup.js: Added.
1607         * JetStream/README: Added.
1608         * JetStream/Reference.js: Added.
1609         * JetStream/SimpleSetup.js: Added.
1610         * JetStream/SunSpiderSetup.js: Added.
1611         * JetStream/Swoosh.png: Added.
1612         * JetStream/Swoosh@2x.png: Added.
1613         * JetStream/TestingSetup.js: Added.
1614         * JetStream/create.rb: Added.
1615         * JetStream/docs: Added.
1616         * JetStream/docs/JetStreamBlogPost.html: Added.
1617         * JetStream/in-depth-TEMPLATE.html: Added.
1618         * JetStream/index-TEMPLATE.html: Added.
1619         * JetStream/simple: Added.
1620         * JetStream/simple/bigfib.cpp: Added.
1621         * JetStream/simple/bigfib.cpp.js: Added.
1622         * JetStream/simple/container.cpp: Added.
1623         * JetStream/simple/container.cpp.js: Added.
1624         * JetStream/simple/dry.c: Added.
1625         * JetStream/simple/dry.c.js: Added.
1626         * JetStream/simple/float-mm.c: Added.
1627         * JetStream/simple/float-mm.c.js: Added.
1628         * JetStream/simple/gcc-loops.cpp: Added.
1629         * JetStream/simple/gcc-loops.cpp.js: Added.
1630         * JetStream/simple/hash-map.js: Added.
1631         * JetStream/simple/n-body.c: Added.
1632         * JetStream/simple/n-body.c.js: Added.
1633         * JetStream/simple/quicksort.c: Added.
1634         * JetStream/simple/quicksort.c.js: Added.
1635         * JetStream/simple/towers.c: Added.
1636         * JetStream/simple/towers.c.js: Added.
1637         * JetStream/sunspider: Added.
1638         * JetStream/sunspider/3d-cube.js: Added.
1639         * JetStream/sunspider/3d-raytrace.js: Added.
1640         * JetStream/sunspider/base64.js: Added.
1641         * JetStream/sunspider/cordic.js: Added.
1642         * JetStream/sunspider/crypto-aes.js: Added.
1643         * JetStream/sunspider/crypto-md5.js: Added.
1644         * JetStream/sunspider/crypto-sha1.js: Added.
1645         * JetStream/sunspider/date-format-tofte.js: Added.
1646         * JetStream/sunspider/date-format-xparb.js: Added.
1647         * JetStream/sunspider/n-body.js: Added.
1648         * JetStream/sunspider/regex-dna.js: Added.
1649         * JetStream/sunspider/tagcloud.js: Added.
1650
1651 2015-04-14  Said Abou-Hallawa  <sabouhallawa@apple.com>
1652
1653         textPath layout performance improvement.
1654         https://bugs.webkit.org/show_bug.cgi?id=141570.
1655
1656         Reviewed by Darin Adler.
1657
1658         Cut down the time spent in traversing the path for text by 50%. Instead
1659         of traversing the path twice at a certain length: one time for the position
1660         and the second time for the angle, we can merge these two passes into one.
1661
1662         * SVG/TextOnPathSimple.html: Added.
1663         * SVG/resources/TextOnPathSimple.svg: Added.
1664
1665 2015-04-13  Zalan Bujtas  <zalan@apple.com>
1666
1667         Clear up the test content when test is done.
1668
1669         Unreviewed fix.
1670
1671         * Layout/simple-line-layout-innertext.html:
1672
1673 2015-04-09  Zalan Bujtas  <zalan@apple.com>
1674
1675         Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
1676         https://bugs.webkit.org/show_bug.cgi?id=143554
1677
1678         Reviewed by Antti Koivisto.
1679
1680         Initialize render flow's segments only when the render flow changes in TextIterator.
1681         The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)
1682
1683         * Layout/simple-line-layout-innertext.html: Added.
1684
1685 2015-03-09  Chris Dumez  <cdumez@apple.com>
1686
1687         [CG] Have Canvas use the IOSurfacePool
1688         https://bugs.webkit.org/show_bug.cgi?id=142417
1689         <rdar://problem/20044440>
1690
1691         Reviewed by Darin Adler.
1692
1693         Lower the number of different canvas sizes from 1000 to 100 so that
1694         the test does not require such a huge cache size. With 100, we now
1695         get over 90% cache hit rate with the default IOSurfacePool size.
1696
1697         * Canvas/reuse.html:
1698
1699 2015-01-28  Said Abou-Hallawa  <sabouhallawa@apple.com>
1700
1701         Poor performance on IE's Chalkboard benchmark.
1702         https://bugs.webkit.org/show_bug.cgi?id=140753.
1703
1704         Reviewed by Zalan Bujtas.
1705
1706         * SVG/UnderTheSeeBenchmark.html: Added
1707         * SVG/WorldcupBenchmark.html: Added.
1708         * SVG/resources/RenderAnimator.css: Added.
1709         * SVG/resources/RenderAnimator.js: Added.
1710         These are benchmarks for the SVG rendering. Mainly we want to measure how fast
1711         the SVG rendering will be when only a small part of it is drawn.
1712         
1713 2015-01-21  Geoffrey Garen  <ggaren@apple.com>
1714
1715         bmalloc: support aligned allocation
1716         https://bugs.webkit.org/show_bug.cgi?id=140732
1717
1718         Reviewed by Andreas Kling.
1719
1720         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1721         * MallocBench/MallocBench/Benchmark.cpp:
1722         * MallocBench/MallocBench/memalign.cpp:
1723         (test):
1724         (benchmark_memalign): Added a test for specific interesting memalign values.
1725
1726         * MallocBench/MallocBench/stress_aligned.cpp: Added.
1727         (benchmark_stress_aligned):
1728         * MallocBench/MallocBench/stress_aligned.h: Added. Added a stress test
1729         for arbitrary memalign values.
1730
1731 2015-01-16  Geoffrey Garen  <ggaren@apple.com>
1732
1733         bmalloc: added the tiniest bit of testing for aligned allocation
1734         https://bugs.webkit.org/show_bug.cgi?id=140573
1735
1736         Reviewed by Andreas Kling.
1737
1738         Just good enoug to catch two bugs in a preliminary implementation.
1739
1740         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1741         * MallocBench/MallocBench/Benchmark.cpp:
1742         * MallocBench/MallocBench/mbmalloc.cpp:
1743         * MallocBench/MallocBench/mbmalloc.h:
1744         * MallocBench/MallocBench/memalign.cpp: Added.
1745         (benchmark_memalign):
1746         * MallocBench/MallocBench/memalign.h: Added.
1747
1748 2014-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
1749
1750         Add performance test related to font fallback
1751         https://bugs.webkit.org/show_bug.cgi?id=139332
1752
1753         Reviewed by Simon Fraser.
1754
1755         * Layout/font-fallback.html: Added.
1756         * Layout/resources/font-fallback.html: Added.
1757
1758 2014-12-08  Dean Jackson  <dino@apple.com>
1759
1760         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1761         https://bugs.webkit.org/show_bug.cgi?id=139310
1762
1763         Reviewed by Simon Fraser.
1764
1765         Add an interactive performance test that measures the speed of a set
1766         of blur operations on a generated images.
1767
1768         * Interactive/blur-filter-timing.html: Added.
1769
1770 2014-11-13  Zalan Bujtas  <zalan@apple.com>
1771
1772         Simple line layout: Add performance test case to measure line layout speed of monolithic text content.
1773         https://bugs.webkit.org/show_bug.cgi?id=138699
1774
1775         Reviewed by Antti Koivisto.
1776
1777         * Layout/line-layout-long-long-text.html: Added.
1778
1779 2014-10-22  Zalan Bujtas  <zalan@apple.com>
1780
1781         Speed up line parsing for simple line layout (part I)
1782         https://bugs.webkit.org/show_bug.cgi?id=137275
1783
1784         Reviewed by Antti Koivisto.
1785
1786         Extend simple line layout performance test with a few more cases.
1787         Now we've got:
1788         <div center
1789         <div right
1790         <div justify
1791         <div white-space: pre (new)
1792         <div overflow-wrap: break-word (new)
1793         <pre
1794         <pre white-space: pre-wrap
1795         <pre white-space: pre-line (new)
1796         <pre white-space: nowrap (new)
1797         <pre white-space: pre-wrap overflow-wrap: break-word
1798         <div + embedded <span etc.
1799         <div + br
1800
1801         * Layout/line-layout-simple.html:
1802
1803 2014-10-15  Andrei Bucur  <abucur@adobe.com>
1804
1805         [Multicol] Start adding performance tests for the multi-column implementation
1806         https://bugs.webkit.org/show_bug.cgi?id=137687
1807
1808         Reviewed by Mihnea Ovidenie.
1809
1810         This patch creates a Multicol folder inside the Layout performance tests suite. It adds only two tests
1811         as described below.
1812
1813         The tests are skipped until the implementation stabilizes.
1814
1815         * Layout/Multicol/MulticolManyColumns.html: Added.
1816         This test verifies the performance of the multi-column implementation with two nested multi-column
1817         containers, the first having 20 columns and the second 10 columns.
1818
1819         * Layout/Multicol/MulticolNested.html: Added.
1820         This test verifies the performance of nesting multi-column containers in the presence
1821         of floats.
1822
1823         * Layout/Multicol/resources/multicol-content-many-columns.html: Added.
1824         * Layout/Multicol/resources/multicol-content-nested.html: Added.
1825         * Skipped: Skip the Multicol folder for now.
1826
1827 2014-09-29  Filip Pizlo  <fpizlo@apple.com>
1828
1829         It should be fun and easy to run every possible JavaScript benchmark from the command line
1830         https://bugs.webkit.org/show_bug.cgi?id=137245
1831
1832         Reviewed by Oliver Hunt.
1833         
1834         This adds the scaffolding for running Octane version 2 inside run-jsc-benchmarks.
1835         In the future we should just land Octane2 in this directory, and run-jsc-benchmarks
1836         should be changed to point directly at this directory instead of requiring the
1837         Octane path to be configured as part of the configuration file.
1838
1839         * Octane: Added.
1840         * Octane/wrappers: Added.
1841         * Octane/wrappers/jsc-box2d.js: Added.
1842         (jscSetUp):
1843         (jscTearDown):
1844         (jscRun):
1845         * Octane/wrappers/jsc-boyer.js: Added.
1846         (jscSetUp):
1847         (jscTearDown):
1848         (jscRun):
1849         * Octane/wrappers/jsc-closure.js: Added.
1850         (jscSetUp):
1851         (jscTearDown):
1852         (jscRun):
1853         * Octane/wrappers/jsc-decrypt.js: Added.
1854         (jscSetUp):
1855         (jscTearDown):
1856         (jscRun):
1857         * Octane/wrappers/jsc-deltablue.js: Added.
1858         (jscSetUp):
1859         (jscTearDown):
1860         (jscRun):
1861         * Octane/wrappers/jsc-earley.js: Added.
1862         (jscSetUp):
1863         (jscTearDown):
1864         (jscRun):
1865         * Octane/wrappers/jsc-encrypt.js: Added.
1866         (jscSetUp):
1867         (jscTearDown):
1868         (jscRun):
1869         * Octane/wrappers/jsc-gbemu.js: Added.
1870         (jscSetUp):
1871         (jscTearDown):
1872         (jscRun):
1873         * Octane/wrappers/jsc-jquery.js: Added.
1874         (jscSetUp):
1875         (jscTearDown):
1876         (jscRun):
1877         * Octane/wrappers/jsc-mandreel.js: Added.
1878         (jscSetUp):
1879         (jscTearDown):
1880         (jscRun):
1881         * Octane/wrappers/jsc-navier-stokes.js: Added.
1882         (jscSetUp):
1883         (jscTearDown):
1884         (jscRun):
1885         * Octane/wrappers/jsc-pdfjs.js: Added.
1886         (jscSetUp.PdfJS_window.console.log):
1887         (jscSetUp):
1888         (jscTearDown):
1889         (jscRun):
1890         * Octane/wrappers/jsc-raytrace.js: Added.
1891         (jscSetUp):
1892         (jscTearDown):
1893         (jscRun):
1894         * Octane/wrappers/jsc-regexp.js: Added.
1895         (jscSetUp):
1896         (jscTearDown):
1897         (jscRun):
1898         * Octane/wrappers/jsc-richards.js: Added.
1899         (jscSetUp):
1900         (jscTearDown):
1901         (jscRun):
1902         * Octane/wrappers/jsc-splay.js: Added.
1903         (jscSetUp):
1904         (jscTearDown):
1905         (jscRun):
1906         * Octane/wrappers/jsc-typescript.js: Added.
1907         (jscSetUp):
1908         (jscTearDown):
1909         (jscRun):
1910         * Octane/wrappers/jsc-zlib.js: Added.
1911         (jscSetUp):
1912         (jscTearDown):
1913         (jscRun):
1914
1915 2014-09-28  Sungmann Cho  <sungmann.cho@navercorp.com>
1916
1917         Fix some minor typos: psuedo -> pseudo
1918         https://bugs.webkit.org/show_bug.cgi?id=137192
1919
1920         Reviewed by Alexey Proskuryakov.
1921
1922         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
1923
1924 2014-09-11  Geoffrey Garen  <ggaren@apple.com>
1925
1926         Some MallocBench refinements
1927         https://bugs.webkit.org/show_bug.cgi?id=136750
1928
1929         Reviewed by Sam Weinig.
1930
1931         * MallocBench/MallocBench/Interpreter.cpp:
1932         (Interpreter::run): Allow for null entries in the object list so that
1933         we can test in modes that exclude large or small allocations.
1934
1935         * MallocBench/MallocBench/churn.cpp:
1936         (benchmark_churn):
1937         * MallocBench/MallocBench/flickr.cpp:
1938         (benchmark_flickr):
1939         * MallocBench/MallocBench/fragment.cpp:
1940         (benchmark_fragment_iterate):
1941         * MallocBench/MallocBench/list.cpp:
1942         (benchmark_list_allocate):
1943         * MallocBench/MallocBench/reddit.cpp:
1944         (benchmark_reddit): Updated test runtimes to weight them more equally,
1945         for the sake of arithmetic mean.
1946
1947         * MallocBench/MallocBench/stress.cpp:
1948         (Object::Object):
1949         (allocate):
1950         (deallocate):
1951         (benchmark_stress): Verify the contents of memory as we go. Also,
1952         force scavenging each time through the loop to test the scavenging path.
1953
1954         * MallocBench/MallocBench/theverge.cpp:
1955         (benchmark_theverge):
1956         * MallocBench/MallocBench/tree.cpp:
1957         (benchmark_tree_churn): Re-weighted, as above.
1958
1959 2014-09-08  Myles C. Maxfield  <mmaxfield@apple.com>
1960
1961         PerformanceTests/SVG/SVG-Text.html has unparsable output
1962         https://bugs.webkit.org/show_bug.cgi?id=136648
1963
1964         Reviewed by Gavin Barraclough.
1965
1966         I need to clean up the arbitrary text on the page before telling
1967         the test runner infrastructure that the test is complete.
1968
1969         * SVG/SVG-Text.html:
1970
1971 2014-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
1972
1973         Laying out a TextRun using an SVG font is O(n^2)
1974         https://bugs.webkit.org/show_bug.cgi?id=136584
1975
1976         Reviewed by Andreas Kling.
1977
1978         Time how long it takes to lay out and render some text using an SVG font.
1979
1980         * SVG/SVG-Text.html: Added.
1981         * SVG/resources/graffiti.svg: Added.
1982
1983 2014-09-02  Geoffrey Garen  <ggaren@apple.com>
1984
1985         MallocBench should have a stress test for correctness
1986         https://bugs.webkit.org/show_bug.cgi?id=136468
1987
1988         Reviewed by Andreas Kling.
1989
1990         Added a stress test that allocates randomized sizes of randomized
1991         lifetimes in randomized order.
1992
1993         This version of the test reproduces the EWS crash seen in bmalloc
1994         (<https://bugs.webkit.org/show_bug.cgi?id=132629>).
1995
1996         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1997         * MallocBench/MallocBench/Benchmark.cpp: Sort!
1998         * MallocBench/MallocBench/stress.cpp: Added.
1999         (Object::Object):
2000         (SizeStream::SizeStream):
2001         (SizeStream::next):
2002         (benchmark_stress): Usually, we random(0). Surprisingly, though, only
2003         random(1) reproduces the bug I was looking for.
2004         * MallocBench/MallocBench/stress.h: Added.
2005
2006 2014-06-02  Ryosuke Niwa  <rniwa@webkit.org>
2007
2008         Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
2009         https://bugs.webkit.org/show_bug.cgi?id=133455
2010
2011         Reviewed by Timothy Hatcher.
2012
2013         * Speedometer/: Renamed from DoYouEvenBench.
2014         * Skipped: Updated the path for InteractiveRunner.html
2015
2016 2014-06-02  Ryosuke Niwa  <rniwa@webkit.org>
2017
2018         Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
2019         https://bugs.webkit.org/show_bug.cgi?id=133455
2020
2021         Reviewed by Timothy Hatcher.
2022
2023         Renamed the benchmark to Speedometer and added the new look designed by Timothy Hatcher.
2024
2025         Also changed the unit of measurements from milliseconds to runs-per-minute averaged over the number
2026         of the benchmark suites (7 for 1.0). You can divide 420000 by the old benchmark score (in milliseconds)
2027         to get the new value for the set of tests that are enabled by default in 1.0. You can continue to see
2028         results in milliseconds on Full.html#ms.
2029
2030         * DoYouEvenBench/Full.html: Added a bunch of sections and the description of the benchmark.
2031
2032         * DoYouEvenBench/resources/benchmark-report.js: Remove the newly added content when ran inside a DRT or
2033         WTR so that run-perf-tests wouldn't error.
2034         * DoYouEvenBench/resources/benchmark-runner.js:
2035         (BenchmarkRunner.prototype._appendFrame): Call a newly added willAddTestFrame callback when it exists.
2036
2037         * DoYouEvenBench/resources/gauge.png: Added.
2038         * DoYouEvenBench/resources/gauge@2x.png: Added.
2039         * DoYouEvenBench/resources/logo.png: Added.
2040         * DoYouEvenBench/resources/logo@2x.png: Added.
2041         * DoYouEvenBench/resources/main.css: Replaced the style.
2042
2043         * DoYouEvenBench/resources/main.js:
2044         (window.benchmarkClient.willAddTestFrame): Place the iframe right where #testContainer is shown.
2045         (window.benchmarkClient.willRunTest): Show the name of the suite (e.g. EmberJS-TodoMVC) to run next.
2046         (window.benchmarkClient.didRunSuites):
2047         (window.benchmarkClient.willStartFirstIteration): Initialize _timeValues and _finishedTestCount now that
2048         we have an UI to run the benchmark multiple times without reloading the page.
2049         (window.benchmarkClient.didFinishLastIteration): Split into smaller pieces.
2050         (window.benchmarkClient._computeResults): Computes the mean and the statistics for the given time values,
2051         and also format them in a human readable form.
2052         (window.benchmarkClient._computeResults.totalTimeInDisplayUnit): Converts ms to runs/min.
2053         (window.benchmarkClient._computeResults.sigFigFromPercentDelta): Given a percentage error (e.g. 1%),
2054         returns the number of significant digits required for the mean.
2055         (window.benchmarkClient._computeResults.toSigFigPrecision): Calls toPrecision with the specified precision
2056         constrained to be at least the number of non-decimal digits and at most 6.
2057         (window.benchmarkClient._addDetailedResultsRow): Renamed from _addResult. It now takes the table to which
2058         to add a row and the iteration number.
2059         (window.benchmarkClient._updateGaugeNeedle): Added. Controls the angle of the speed indicator.
2060         (window.benchmarkClient._populateDetailedResults): Added.
2061         (window.benchmarkClient.prepareUI): Added. It adds an event listener to show a specified section when
2062         the push state of the document changes, and shows a warning sign when the view port size is too small.
2063         We do this inside a callback to avoid running it inside DRT / WTR.
2064         (startBenchmark):
2065         (showSection): Added.
2066         (startTest): Added.
2067         (showResultsSummary): Added.
2068         (showResultDetails): Added.
2069         (showAbout): Added.
2070
2071 2014-06-01  Ryosuke Niwa  <rniwa@webkit.org>
2072
2073         DYEBench: Move test states into benchmarkClient and remove the closure
2074         https://bugs.webkit.org/show_bug.cgi?id=133438
2075
2076         Reviewed by Benjamin Poulain.
2077
2078         Moved all local variables in the closure wrapping benchmarkClient onto the object itself
2079         and removed the closure to improve the readability of the code.
2080
2081         * DoYouEvenBench/Full.html:
2082         * DoYouEvenBench/resources/main.js:
2083         (window.benchmarkClient.willRunTest):
2084         (window.benchmarkClient.didRunTest):
2085         (window.benchmarkClient.didRunSuites):
2086         (window.benchmarkClient.willStartFirstIteration):
2087         (window.benchmarkClient.didFinishLastIteration):
2088         (window.benchmarkClient._addResult): Moved.
2089         (.): Deleted.
2090
2091 2014-06-01  Ryosuke Niwa  <rniwa@webkit.org>
2092
2093         DYEBench: Split stylesheets and scripts in Full.html into separate files
2094         https://bugs.webkit.org/show_bug.cgi?id=133437
2095
2096         Reviewed by Benjamin Poulain.
2097
2098         Extracted main.js and main.css.
2099
2100         Also fixed a bug in startBenchmark that disabled suites were counted towards the total number of tests.
2101
2102         * DoYouEvenBench/Full.html:
2103         * DoYouEvenBench/resources/main.css: Added.
2104         * DoYouEvenBench/resources/main.js: Added.
2105         (.addResult):
2106         (window.benchmarkClient):
2107         (startBenchmark): Renamed from startTest.
2108
2109 2014-06-01  Ryosuke Niwa  <rniwa@webkit.org>
2110
2111         DYEBench: CSS parser warning at line 106 of base.css
2112         https://bugs.webkit.org/show_bug.cgi?id=133433
2113
2114         Reviewed by Maciej Stachowiak.
2115
2116         Removed the old filter CSS property for Internet Explorer. The latest Internet Explorer supports -ms-linear-gradient
2117         on background CSS property anyways.
2118
2119         It's interesting that some of the tests only have -webkit- prefixes. Perhaps we should update those subtests.
2120
2121         * DoYouEvenBench/Full.html:
2122         * DoYouEvenBench/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css:
2123         (#header:before):
2124         * DoYouEvenBench/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css:
2125         (#header:before):
2126         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
2127         (#header:before):
2128         * DoYouEvenBench/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css:
2129         (#header:before):
2130         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css:
2131         (#header:before):
2132         * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css:
2133         (#header:before):
2134         * DoYouEvenBench/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css:
2135         (#header:before):
2136
2137 2014-05-31  Ryosuke Niwa  <rniwa@webkit.org>
2138
2139         DYEBench: Ember.js assertion hit at line 20593
2140         https://bugs.webkit.org/show_bug.cgi?id=133431
2141
2142         Reviewed by Darin Adler.
2143
2144         The assertion was hit because ToDoMVC includes jQuery 2.1 and Ember.js 1.3.1 only recognizes jQuery 2.0.
2145         Port the assertion from Ember.js 1.5.1 to suppress the assertion.
2146
2147         We should update the entire Ember.js at some point but this would do the job for now.
2148
2149         * DoYouEvenBench/Full.html:
2150         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
2151
2152 2014-05-31  Ryosuke Niwa  <rniwa@webkit.org>
2153
2154         DYEBench: Prevent frame flattening on iOS
2155         https://bugs.webkit.org/show_bug.cgi?id=133428
2156
2157         Reviewed by Andreas Kling.
2158
2159         Prevent frame flattening on iOS by setting scrolling=no.
2160
2161         * DoYouEvenBench/Full.html:
2162         * DoYouEvenBench/resources/benchmark-runner.js:
2163         (BenchmarkRunner.prototype._appendFrame):
2164
2165 2014-05-30  Ryosuke Niwa  <rniwa@webkit.org>
2166
2167         DYEBench spits out 404 errors for learn.json
2168         https://bugs.webkit.org/show_bug.cgi?id=133416
2169
2170         Reviewed by Oliver Hunt.
2171
2172         Add an empty learn.json file so that it won't cause a 404 error when hosted on a http server.
2173
2174         Bumped the version number to 0.12.
2175
2176         * DoYouEvenBench/Full.html:
2177         * DoYouEvenBench/resources/todomvc/learn.json:
2178
2179 2014-05-23  Geoffrey Garen  <ggaren@apple.com>
2180
2181         Performance testing, diamond-square terrain generation + canvas
2182         https://bugs.webkit.org/show_bug.cgi?id=133054
2183
2184         Reviewed by Ryosuke Niwa.
2185
2186         This test was written by Hunter Loftis. It originally appeared on his
2187         blog @ <http://www.playfuljs.com/realistic-terrain-in-130-lines/>.
2188
2189         I did a bit of editing for format and benchmark suitability.
2190
2191         * Canvas/terrain.html: Added.
2192
2193 2014-05-13  Ryosuke Niwa  <rniwa@webkit.org>
2194
2195         DYEBench should run 20 iterations in browser
2196         https://bugs.webkit.org/show_bug.cgi?id=132795
2197
2198         Reviewed by Gavin Barraclough.
2199
2200         Right now, run-perf-tests runs BYEBench 4 times with different instances of DRT/WTR to get
2201         a more stable time and account for differences in the runtime environment, particularly,
2202         ASLR (Address Space Layout Randomization).
2203
2204         While we can't account for the latter effect when the benchmark is ran inside a browser,
2205         we can at least run 20 iterations to get a more stable (but perhaps biased by ALSR) number.
2206
2207         While the sample size of 20 is statistically unsound to compute the arithmetic mean from,
2208         it's MUCH better than the current sample size of 5.
2209
2210         * DoYouEvenBench/Full.html:
2211         (benchmarkClient.iterationCount): Set the default iteration count to 20.
2212         (startTest): Use benchmarkClient.iterationCount as the iteration count.
2213         * DoYouEvenBench/resources/benchmark-report.js:
2214         (benchmarkClient.iterationCount): Continue to use the old iteration count of 5 when ran
2215         inside run-perf-tests.
2216
2217 2014-05-09  Ryosuke Niwa  <rniwa@webkit.org>
2218
2219         DYEBench should show 95th percentile right next to the mean with ±
2220         https://bugs.webkit.org/show_bug.cgi?id=132729
2221
2222         Reviewed by Darin Adler.
2223
2224         Before this patch, Full.html showed the 95th percentile delta for the arthemtic mean in a separate row
2225         but this was confusing for some people. Show it right next to mean in the same row separated by ±.
2226
2227         * DoYouEvenBench/Full.html:
2228
2229 2014-05-08  Ryosuke Niwa  <rniwa@webkit.org>
2230
2231         DYEBench should use TodoMVC to test FlightJS for consistency
2232         https://bugs.webkit.org/show_bug.cgi?id=132727
2233
2234         Reviewed by Andreas Kling.
2235
2236         Add a test suite for the FlightJS version of TodoMVC, and disable FlightJS-MailClient by default.
2237
2238         I initially intended to include a wider variety of demo apps in DYEBench
2239         but that's not happening any time soon so let us use TodoMVC for all frameworks for now.
2240
2241         We can add more demo apps in v2.
2242
2243         * DoYouEvenBench/Full.html: Increment the version to 0.10.
2244         * DoYouEvenBench/InteractiveRunner.html: Don't check disabled suites by default.
2245         * DoYouEvenBench/resources/tests.js:
2246         * DoYouEvenBench/resources/todomvc/dependency-examples: Added.
2247         * DoYouEvenBench/resources/todomvc/dependency-examples/flight: Added.
2248         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.gitignore: Added.
2249         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
2250         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app: Added.
2251         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js: Added.
2252         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
2253         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data: Added.
2254         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
2255         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
2256         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
2257         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
2258         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui: Added.
2259         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
2260         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
2261         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
2262         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
2263         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
2264         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
2265         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
2266         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates: Added.
2267         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
2268         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
2269         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower.json: Added.
2270         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components: Added.
2271         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot: Added.
2272         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
2273         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim: Added.
2274         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
2275         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
2276         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight: Added.
2277         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib: Added.
2278         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
2279         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
2280         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
2281         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
2282         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
2283         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
2284         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
2285         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
2286         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
2287         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery: Added.
2288         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
2289         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs: Added.
2290         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text: Added.
2291         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
2292         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
2293         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common: Added.
2294         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
2295         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
2296         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
2297         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/index.html: Added.
2298         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
2299         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/package.json: Added.
2300         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/readme.md: Added.
2301         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test: Added.
2302         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
2303         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture: Added.
2304         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
2305         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
2306         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
2307         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock: Added.
2308         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
2309         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec: Added.
2310         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data: Added.
2311         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
2312         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
2313         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui: Added.
2314         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
2315         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
2316         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
2317         * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.
2318
2319 2014-05-07  Manuel Rego Casasnovas  <rego@igalia.com>
2320
2321         [CSS Grid Layout] Remove runtime feature
2322         https://bugs.webkit.org/show_bug.cgi?id=132382
2323
2324         Reviewed by Benjamin Poulain.
2325
2326         Remove set of WebKitCSSGridLayoutEnabled preference.
2327
2328         * Layout/auto-grid-lots-of-data.html:
2329         * Layout/fixed-grid-lots-of-data.html:
2330
2331 2014-05-06  Radu Stavila  <stavila@adobe.com>
2332
2333         [CSSRegions] Enabled regions performance tests by default
2334         https://bugs.webkit.org/show_bug.cgi?id=128244
2335
2336         Reviewed by Andreas Kling.
2337
2338         Enabled regions performance tests.
2339
2340         * Skipped:
2341
2342 2014-04-25  Andreas Kling  <akling@apple.com>
2343
2344         Bump jQuery to same version that dromaeo.com uses.
2345
2346         Rubber-stamped by Ryosuke Niwa.
2347
2348         * Dromaeo/resources/dromaeo/web/lib/jquery-1.10.2.min.js: Added.
2349         * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
2350         * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
2351         * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
2352         * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
2353         * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
2354         * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
2355
2356 2014-04-18  Geoffrey Garen  <ggaren@apple.com>
2357
2358         Added some more Membuster recordings to MallocBench
2359         https://bugs.webkit.org/show_bug.cgi?id=131862
2360
2361         Reviewed by Sam Weinig.
2362
2363         * MallocBench/MallocBench/Benchmark.cpp:
2364         (Benchmark::Benchmark):
2365         (Benchmark::run):
2366         * MallocBench/MallocBench/Benchmark.h:
2367         * MallocBench/MallocBench/CommandLine.cpp:
2368         * MallocBench/MallocBench/CommandLine.h:
2369         (CommandLine::runs): Added a --runs option, so we can specify zero runs
2370         for memory warning benchmarks. Those benchmarks want zero runs so that
2371         they can perform a single warmup, which does not free all allocated
2372         objects, and then see how far back to 0MB they can get. Running multiple
2373         times would accumulate leaks, which is not representative of the
2374         simulated scenario.
2375
2376         * MallocBench/MallocBench/Interpreter.cpp:
2377         (Interpreter::Interpreter):
2378         (Interpreter::run):
2379         * MallocBench/MallocBench/Interpreter.h: Support not deallocating all
2380         objects allocated during the recording, so we can do low memory warning
2381         memory use measurements, as above.
2382
2383         * MallocBench/MallocBench/flickr.cpp:
2384         (benchmark_flickr_memory_warning):
2385         * MallocBench/MallocBench/main.cpp:
2386         (main):
2387         * MallocBench/MallocBench/reddit.cpp:
2388         (benchmark_reddit_memory_warning):
2389         * MallocBench/MallocBench/theverge.cpp:
2390         (benchmark_theverge_memory_warning): Adopt the API above.
2391
2392         * MallocBench/run-malloc-benchmarks: I took a first pass at listing all
2393         available benchmarks here. Then I commented out the benchmarks that
2394         probably aren't reasonable to run by default.
2395
2396 2014-04-18  Geoffrey Garen  <ggaren@apple.com>
2397
2398         MallocBench: removed the --measure-heap option
2399         https://bugs.webkit.org/show_bug.cgi?id=131854
2400
2401         Reviewed by Sam Weinig.
2402
2403         As of <https://bugs.webkit.org/show_bug.cgi?id=131661>, measuring the
2404         heap is fast, so there's no reason to disable it.
2405
2406         * MallocBench/MallocBench/Benchmark.cpp:
2407         (Benchmark::Benchmark):
2408         (Benchmark::run):
2409         (Benchmark::printReport):
2410         * MallocBench/MallocBench/Benchmark.h:
2411         * MallocBench/MallocBench/CommandLine.cpp:
2412         (CommandLine::printUsage):
2413         * MallocBench/MallocBench/CommandLine.h:
2414         (CommandLine::heapSize):
2415         (CommandLine::measureHeap): Deleted.
2416         * MallocBench/MallocBench/main.cpp:
2417         (main):
2418
2419 2014-04-16  Alexandru Chiculita  <achicu@adobe.com>
2420
2421         Improve performance of the RenderLayerCompositor::OverlapMap
2422         https://bugs.webkit.org/show_bug.cgi?id=115063
2423
2424         Reviewed by Simon Fraser.
2425
2426         Testing the performance of computing the overlap of 5000 layers.
2427
2428         * Layout/layers_overlap_2d.html: Added. Using non-composited layers, to check
2429         that the performance on the non-composited path is not changing with this patch.
2430         * Layout/layers_overlap_3d.html: Added. Records the time to do the layout of 5000
2431         non-overlapping 3D layers.
2432
2433 2014-04-15  Zoltan Horvath  <zoltan@webkit.org>
2434
2435         [CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesRegions test
2436         https://bugs.webkit.org/show_bug.cgi?id=131572
2437
2438         Reviewed by Rob Buis.
2439
2440         In r167022 I moved the common CSS selectors into RegionsShapes.css, then I linked it into the perf test
2441         files, but the measurement results dropped down from about 400ms to 10ms. I realized it's caused by the
2442         linked css rule, so I've put the selectors back into every test case, which fixes the test measurements.
2443
2444         * Layout/Shapes/resources/RegionsShapes.css: Removed.
2445         * Layout/Shapes/resources/RegionsShapesContent.html:
2446         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html:
2447         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html:
2448         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html:
2449         * Layout/Shapes/resources/RegionsShapesContentNoShapes.html:
2450
2451 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
2452
2453         MallocBench should scavenge explicitly instead of waiting
2454         https://bugs.webkit.org/show_bug.cgi?id=131661
2455
2456         Reviewed by Andreas Kling.
2457
2458         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Don't build mbmalloc
2459         by default because it will overwrite any other mbmalloc you're working
2460         with in the WebKitBuild directory.
2461
2462         * MallocBench/MallocBench/Benchmark.cpp:
2463         (Benchmark::run): Scavenge explicitly instead of waiting. This is faster,
2464         and it's the only way to get FastMalloc to scavenge. (That's a bug in
2465         FastMalloc, but we don't want it to interfere with broader testing.)
2466
2467         * MallocBench/MallocBench/mbmalloc.cpp:
2468         * MallocBench/MallocBench/mbmalloc.h: Added a scavenge implementation
2469         for system malloc.
2470
2471 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
2472
2473         A few MallocBench record/replay fixes
2474         https://bugs.webkit.org/show_bug.cgi?id=131627
2475
2476         Reviewed by Andreas Kling.
2477
2478         * MallocBench/MallocBench/Interpreter.cpp:
2479         (Interpreter::run): Accept 0-sized allocations without asserting because
2480         WebKit does that sometimes.
2481
2482         * MallocBench/MallocBench/flickr.ops:
2483         * MallocBench/MallocBench/flickr_memory_warning.ops:
2484         * MallocBench/MallocBench/reddit.ops:
2485         * MallocBench/MallocBench/reddit_memory_warning.ops:
2486         * MallocBench/MallocBench/theverge.ops:
2487         * MallocBench/MallocBench/theverge_memory_warning.ops: Updated these
2488         recordings because a bug in the recording mechanism caused one out of
2489         every few thousand slot values to be bogus.
2490
2491 2014-04-13  Geoffrey Garen  <ggaren@apple.com>
2492
2493         Added some website recordings to MallocBench -- taken from Membuster
2494         https://bugs.webkit.org/show_bug.cgi?id=131601
2495
2496         Reviewed by Ryosuke Niwa.
2497
2498         Added flickr, reddit, and theverge -- each recorded from Membuster's
2499         cache, with and without sending Safari a low memory warning.
2500
2501         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
2502         * MallocBench/MallocBench/Benchmark.cpp:
2503         * MallocBench/MallocBench/flickr.cpp: Added.
2504         (benchmark_flickr):
2505         (benchmark_flickr_memory_warning):
2506         * MallocBench/MallocBench/flickr.h: Added.
2507         * MallocBench/MallocBench/flickr.ops: Added.
2508         * MallocBench/MallocBench/flickr_memory_warning.ops: Added.
2509         * MallocBench/MallocBench/reddit.cpp: Added.
2510         (benchmark_reddit):
2511         (benchmark_reddit_memory_warning):
2512         * MallocBench/MallocBench/reddit.h: Added.
2513         * MallocBench/MallocBench/reddit.ops: Added.
2514         * MallocBench/MallocBench/reddit_memory_warning.ops: Added.
2515         * MallocBench/MallocBench/theverge.cpp: Added.
2516         (benchmark_theverge):
2517         (benchmark_theverge_memory_warning):
2518         * MallocBench/MallocBench/theverge.h: Added.
2519         * MallocBench/MallocBench/theverge.ops: Added.
2520         * MallocBench/MallocBench/theverge_memory_warning.ops: Added.
2521
2522 2014-04-13  Geoffrey Garen  <ggaren@apple.com>
2523
2524         MallocBench record/replay should support realloc
2525         https://bugs.webkit.org/show_bug.cgi?id=131598
2526
2527         Reviewed by Ryosuke Niwa.
2528
2529         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Fixed some linkage
2530         issues that caused us not to fully link to system malloc in the default
2531         case. Also marked mbmalloc.dylib as required so the error message will
2532         be clearer if we mess up.
2533
2534         * MallocBench/MallocBench/Interpreter.cpp:
2535         (Interpreter::run):
2536         * MallocBench/MallocBench/Interpreter.h: Added the realloc case, and
2537         upgraded one-letter names to full words.
2538
2539 2014-04-11  Dirk Schulze  <krit@webkit.org>
2540
2541         Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
2542         https://bugs.webkit.org/show_bug.cgi?id=79659
2543
2544         Reviewed by Andreas Kling.
2545
2546         Add performance tests for real this time.
2547
2548         * Canvas/compositing-drawimage.html: Added.
2549         * Canvas/compositing-fillRect.html: Added.
2550
2551
2552 2014-04-11  Dirk Schulze  <krit@webkit.org>
2553
2554         Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
2555         https://bugs.webkit.org/show_bug.cgi?id=79659
2556
2557         Reviewed by Andreas Kling.
2558
2559         Add performance tests for fillRect() and drawImage() on composited contexts.
2560
2561         * Canvas/compositing-drawimage.html: Added.
2562         * Canvas/compositing-fillRect.html: Added.
2563
2564 2014-04-09  Zoltan Horvath  <zoltan@webkit.org>
2565
2566         [CSS Shapes] Add no shapes version of RegionsShapes performance test
2567         https://bugs.webkit.org/show_bug.cgi?id=131455
2568         
2569         Reviewed by Ryosuke Niwa.
2570
2571         This is a no shapes version of the RegionsShapes performance test. All the content
2572         will wrap around the floating containers. This way we can compare the runtime/memory
2573         usage of the RegionsShapes test with/without shapes. The test is skipped by default.
2574
2575         * Layout/Shapes/RegionsShapesNoShapes.html: Added.
2576         * Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Added.
2577
2578 2014-04-09  Zoltan Horvath  <zoltan@webkit.org>
2579
2580         [CSS Shapes] Add no regions version of RegionsShapes performance test
2581         https://bugs.webkit.org/show_bug.cgi?id=131442
2582
2583         Reviewed by Ryosuke Niwa.
2584
2585         We would like have a no regions version for RegionsShapes performance test. The new
2586         test produces similar layout to RegionsShapes.html without using regions. It is helpful
2587         for us to do further comparisons when necessary. This test is skipped by default.
2588
2589         * Layout/Shapes/RegionsShapesNoRegions.html: Added.
2590         * Layout/Shapes/resources/RegionsShapes.css: Added.
2591         (html, body):
2592         (.shape):
2593         (#circleShape):
2594         (#imageShape):
2595         (#insetShape):
2596         (#roundedInsetShape):
2597         (#triangleLeft):
2598         (#triangleRight):
2599         (#selfIntersectingStar):
2600         (#region1):
2601         (#region2):
2602         (#region3):
2603         * Layout/Shapes/resources/RegionsShapesContent.html:
2604         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html: Added.
2605         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html: Added.
2606         * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html: Added.
2607
2608 2014-04-02  Geoffrey Garen  <ggaren@apple.com>
2609
2610         Unreviewed.
2611
2612         Try to ignore some Xcode shmutz in MallocBench.
2613
2614         * MallocBench/MallocBench.xcodeproj: Added property svn:ignore.
2615
2616 2014-04-02  Geoffrey Garen  <ggaren@apple.com>
2617
2618         Let's benchmark malloc
2619         https://bugs.webkit.org/show_bug.cgi?id=131118
2620
2621         Reviewed by Mark Hahnenberg.
2622
2623         I want to replace fastMalloc with something faster (fasterMalloc?).
2624         I wrote these benchmarks to test / drive development.
2625
2626         * MallocBench: Added.
2627         * MallocBench/MallocBench: Added.
2628         * MallocBench/MallocBench.xcodeproj: Added.
2629         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Added.
2630         * MallocBench/MallocBench/Benchmark.cpp: Added.
2631         (allocateHeap):
2632         (deallocateHeap):
2633         (Benchmark::Benchmark):
2634         (Benchmark::printBenchmarks):
2635         (Benchmark::runOnce):
2636         (Benchmark::run):
2637         (Benchmark::printReport):
2638         (Benchmark::currentTimeMS):
2639         (Benchmark::currentMemoryBytes):
2640         * MallocBench/MallocBench/Benchmark.h: Added.
2641         (Benchmark::Memory::Memory):
2642         (Benchmark::Memory::operator-):
2643         (Benchmark::isValid):
2644         * MallocBench/MallocBench/CPUCount.cpp: Added.
2645         (cpuCount):
2646         * MallocBench/MallocBench/CPUCount.h: Added.
2647         * MallocBench/MallocBench/CommandLine.cpp: Added.
2648         (CommandLine::printUsage):
2649         * MallocBench/MallocBench/CommandLine.h: Added.
2650         (CommandLine::isValid):
2651         (CommandLine::benchmarkName):
2652         (CommandLine::isParallel):
2653         (CommandLine::heapSize):
2654         (CommandLine::measureHeap):
2655         * MallocBench/MallocBench/Interpreter.cpp: Added.
2656         (Interpreter::Interpreter):
2657         (Interpreter::~Interpreter):
2658         (Interpreter::run):
2659         * MallocBench/MallocBench/Interpreter.h: Added.
2660         * MallocBench/MallocBench/balloon.cpp: Added.
2661         (benchmark_balloon):
2662         * MallocBench/MallocBench/balloon.h: Added.
2663         * MallocBench/MallocBench/big.cpp: Added.
2664         (benchmark_big):
2665         * MallocBench/MallocBench/big.h: Added.
2666         * MallocBench/MallocBench/churn.cpp: Added.
2667         (HeapDouble::operator new):
2668         (HeapDouble::operator delete):
2669         (HeapDouble::HeapDouble):
2670         (HeapDouble::operator+=):
2671         (benchmark_churn):
2672         * MallocBench/MallocBench/churn.h: Added.
2673         * MallocBench/MallocBench/crash.ops: Added.
2674         * MallocBench/MallocBench/facebook.cpp: Added.
2675         (benchmark_facebook):
2676         * MallocBench/MallocBench/facebook.h: Added.
2677         * MallocBench/MallocBench/facebook.ops: Added.
2678         * MallocBench/MallocBench/fragment.cpp: Added.
2679         (validate):
2680         (benchmark_fragment):
2681         (benchmark_fragment_iterate):
2682         * MallocBench/MallocBench/fragment.h: Added.
2683         * MallocBench/MallocBench/list.cpp: Added.
2684         (benchmark_list_allocate):
2685         (benchmark_list_traverse):
2686         * MallocBench/MallocBench/list.h: Added.
2687         * MallocBench/MallocBench/main.cpp: Added.
2688         (main):
2689         * MallocBench/MallocBench/mbmalloc.cpp: Added.
2690         * MallocBench/MallocBench/mbmalloc.h: Added.
2691         * MallocBench/MallocBench/medium.cpp: Added.
2692         (benchmark_medium):
2693         * MallocBench/MallocBench/medium.h: Added.
2694         * MallocBench/MallocBench/message.cpp: Added.
2695         (benchmark_message_one):
2696         (benchmark_message_many):
2697         * MallocBench/MallocBench/message.h: Added.
2698         * MallocBench/MallocBench/realloc.cpp: Added.
2699         (benchmark_realloc):
2700         * MallocBench/MallocBench/realloc.h: Added.
2701         * MallocBench/MallocBench/tree.cpp: Added.
2702         (benchmark_tree_allocate):
2703         (benchmark_tree_traverse):
2704         (benchmark_tree_churn):
2705         * MallocBench/MallocBench/tree.h: Added.
2706         * MallocBench/run-malloc-benchmarks: Added.
2707
2708 2014-03-29  Mark Lam  <mark.lam@apple.com>
2709
2710         LongSpider 3d-morph result check is inappropriate.
2711         <https://webkit.org/b/130928>
2712
2713         Reviewed by Filip Pizlo.
2714
2715         The LongSpider 3d-morph component expected result check is incorrect.
2716         The existing test checks if the leading digit of a sum starts with "-1".
2717         However, it turned out that the expected sum is in the order of
2718         -1.8735013540549517e-16 (i.e. very close to 0).  With small errors in
2719         the terms of the sum adding up, it is very easy for the resultant sum 
2720         to fluctuate.  There is no guarantee that the resultant sum's most
2721         significant digit will start with -1 either.
2722
2723         The fix is to do a tolerance check on all the terms of the sum as well
2724         as the total sum value instead.  The tolerance should be more lenient
2725         for the sum which accumulates error from the individual terms, then for
2726         individual terms.
2727
2728         * LongSpider/3d-morph.js:
2729         (expect):
2730
2731 2014-03-28  Zoltan Horvath  <zoltan@webkit.org>
2732
2733         [CSS Shapes] Add performance tests for Shapes with Regions
2734         https://bugs.webkit.org/show_bug.cgi?id=129624
2735
2736         Reviewed by Ryosuke Niwa.
2737
2738         This tests introduces a real-life like page, which contains different types of shapes within
2739         shape-outsides. The content flows through regions, which use media queries. The performance test
2740         loads the actual Shapes-Regions test case into iframes with different page sizes (thus the layout
2741         triggers the media queries as well), and measures its load time.
2742
2743         * Layout/RegionsShapes.html: Added.
2744         * Layout/Shapes/resources/RegionsShapesContent.html: Added.
2745
2746 2014-03-20  Zoltan Horvath  <zoltan@webkit.org>
2747
2748         Add option for hiding Confidence Interval Delta on the performance tests results page
2749         https://bugs.webkit.org/show_bug.cgi?id=130483
2750
2751         Reviewed by Ryosuke Niwa.
2752
2753         I've found it useful to hide the confidence interval delta from the results table
2754         sometimes, for example on copying data, or for a clearer look. This patch introduces
2755         a new button for it on the local results page.
2756
2757         * resources/results-template.html:
2758
2759 2014-03-20  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>
2760
2761         Optimize RenderTable::colToEffCol() for tables without colspans
2762         https://bugs.webkit.org/show_bug.cgi?id=129298
2763
2764         Reviewed by Simon Fraser.
2765
2766         Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
2767         when there is no colspan or colspan does not exceed the width of table.
2768         Blink merge https://codereview.chromium.org/154243002 by rhogan
2769
2770         * Layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html: Added.
2771         * Layout/large-table-with-collapsed-borders-and-colspans.html: Added.
2772         * Layout/large-table-with-collapsed-borders-and-no-colspans.html: Added.
2773         * Layout/resources/large-table-with-collapsed-borders.css: Added.
2774         * Layout/resources/large-table-with-collapsed-borders.js: Added.
2775
2776 2014-03-14  Maciej Stachowiak  <mjs@apple.com>
2777
2778         Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
2779         https://bugs.webkit.org/show_bug.cgi?id=130276
2780         <rdar://problem/16266927>
2781
2782         Reviewed by Simon Fraser.
2783
2784         * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html:
2785         * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html:
2786         * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html:
2787         * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html:
2788         * LongSpider/3d-morph.js:
2789         * LongSpider/3d-raytrace.js:
2790         * LongSpider/math-cordic.js:
2791         * LongSpider/string-tagcloud.js:
2792         * Parser/resources/html5-8266.html:
2793         * Parser/resources/html5.html:
2794
2795 2014-03-10  Zoltan Horvath  <zoltan@webkit.org>
2796
2797         [CSS Shapes] Add performance tests for SVG shape with shape-margin
2798         https://bugs.webkit.org/show_bug.cgi?id=129930
2799
2800         Reviewed by Ryosuke Niwa.
2801
2802         The test is skipped by default.
2803
2804         * Layout/Shapes/ShapeOutsideSVGWithMargin.html: Added.
2805         * Layout/Shapes/resources/shape.svg: Added.
2806
2807 2014-02-19  Zoltan Horvath  <zoltan@webkit.org>
2808
2809         [CSS Shapes] Add performance test for stacked floats with shape-outsides
2810         https://bugs.webkit.org/show_bug.cgi?id=128821
2811
2812         Reviewed by Brent Fulgham.
2813
2814         This tests generate stacked floats content with shape-outsides.
2815         The test is skipped by default.
2816
2817         * Layout/Shapes/ShapeOutsideStackedPolygons.html: Added.
2818
2819 2014-02-15  Zoltan Horvath  <zoltan@webkit.org>
2820
2821         [CSS Shapes] Add performance test for raster shape with shape-margin
2822         https://bugs.webkit.org/show_bug.cgi?id=128770
2823
2824         Reviewed by Ryosuke Niwa.
2825
2826         This patch introduces a new performance test for image valued shapes,
2827         where shape-margin is applied on the shape.
2828         The test is skipped by default.
2829
2830         * Layout/Shapes/ShapeOutsideRasterWithMargin.html: Added.
2831
2832 2014-02-14  Ryosuke Niwa  <rniwa@webkit.org>
2833
2834         Improve the appearance of DYEBench
2835         https://bugs.webkit.org/show_bug.cgi?id=128866
2836
2837         Reviewed by Antti Koivisto.
2838
2839         Add a div that shows progress during the test. Also show 95th percentile,
2840         and use a table instead of pre to show results.
2841
2842         * DoYouEvenBench/Full.html:
2843         (.addResult): Added. Shows results in a table.
2844         (benchmarkClient.willRunTest): Added to show the progress bar.
2845         (benchmarkClient.didRunTest):
2846         (benchmarkClient.didRunSuites):
2847         (benchmarkClient.didFinishLastIteration): Compute 95th percentile using Statistics.js
2848
2849         * DoYouEvenBench/resources/benchmark-runner.js:
2850         (BenchmarkRunner.prototype._appendFrame): Fix the bug where marginLeft and marginTop
2851         weren't correctly parsed. We were treating top as left and bottom as top somehow.
2852         (BenchmarkRunner.prototype._runTestAndRecordResults): Fixed a typo.
2853
2854 2014-02-13  Zoltan Horvath  <zoltan@webkit.org>
2855
2856         [CSS Shapes] Add performance test for complex polygon with shape-margin
2857         https://bugs.webkit.org/show_bug.cgi?id=128769
2858
2859         Reviewed by Ryosuke Niwa.
2860
2861         This patch modifies the logic of createShapeOutsideTest to accept multiple
2862         CSS properties from the test. The patch adds performance test for complex
2863         polygon shape (self intersecting at multiple places) case, moreover we
2864         apply shape-margin on the polygon also.
2865
2866         * Layout/Shapes/ShapeOutsideContentBox.html:
2867         * Layout/Shapes/ShapeOutsideInset.html:
2868         * Layout/Shapes/ShapeOutsidePolygonWithMargin.html: Added.
2869         * Layout/Shapes/ShapeOutsideRaster.html:
2870         * Layout/Shapes/ShapeOutsideSimplePolygon.html:
2871         * Layout/Shapes/resources/shapes.js:
2872
2873 2014-02-13  Zoltan Horvath  <zoltan@webkit.org>
2874
2875         [CSS Shapes] Add performance test for raster shape
2876         https://bugs.webkit.org/show_bug.cgi?id=128746
2877
2878         Reviewed by Ryosuke Niwa.
2879
2880         This patch adds performance testing for image valued shape-outside.
2881         The test is skipped by default for now.
2882
2883         * Layout/Shapes/ShapeOutsideRaster.html: Added.
2884         * Layout/Shapes/resources/shape.gif: Added.
2885
2886 2014-02-10  Zoltan Horvath  <zoltan@webkit.org>
2887
2888         [CSS Shapes] Add initial performance tests for polygon shape 
2889         https://bugs.webkit.org/show_bug.cgi?id=128554
2890
2891         Reviewed by Ryosuke Niwa.
2892
2893         This patch adds performance testing for simple polygon shape-outside.
2894         The Shapes performance tests directory is skipped by default.
2895
2896         * Layout/Shapes/ShapeOutsideSimplePolygon.html: Added.
2897
2898 2014-02-07  Zoltan Horvath  <zoltan@webkit.org>
2899
2900         [CSS Shapes] Add initial performance tests for inset shape
2901         https://bugs.webkit.org/show_bug.cgi?id=128378
2902
2903         Reviewed by Ryosuke Niwa.
2904
2905         * Layout/Shapes/ShapeOutsideContentBox.html: Move js to shapes.js.
2906         * Layout/Shapes/ShapeOutsideInset.html: Added.
2907         * Layout/Shapes/resources/shapes.js: Added.
2908         (.):
2909
2910 2014-02-04  Ryosuke Niwa  <rniwa@webkit.org>
2911
2912         Undelete the "build" directory erroneously removed in r163427.
2913
2914         * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/director/build:
2915
2916 2014-02-04  Ryosuke Niwa  <rniwa@webkit.org>
2917
2918         Revert the change made in r162216 as it broke the benchmark on shipping Safari.
2919
2920         * DoYouEvenBench/resources/benchmark-runner.js:
2921
2922 2014-02-04  Ryosuke Niwa  <rniwa@webkit.org>
2923
2924         DoYouEvenBench: Update Ember.js test case
2925         https://bugs.webkit.org/show_bug.cgi?id=128227
2926
2927         Reviewed by Benjamin Poulain.
2928
2929         Updated the Ember.js TodoMVC implementation.
2930
2931         * DoYouEvenBench/resources/tests.js:
2932         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower.json:
2933         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.
2934         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js:
2935         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
2936         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
2937         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js:
2938         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
2939         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js:
2940         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/index.html:
2941         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/app.js:
2942         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js:
2943         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js:
2944         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.
2945         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
2946         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
2947         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/todo.js:
2948         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/router.js:
2949         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js:
2950         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.
2951         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/readme.md:
2952         * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/test.html:
2953
2954 2014-02-04  Zoltan Horvath  <zoltan@webkit.org>
2955
2956         [CSS Shapes] Add initial performance test for shape-outside: content-box
2957         https://bugs.webkit.org/show_bug.cgi?id=128190
2958
2959         Reviewed by Ryosuke Niwa.
2960
2961         I've introduced Shapes subdirectory in Layout, every CSS Shapes related performance tests should
2962         go there in the future. The initial performance tests uses 'shape-outside: content-box' in order
2963         to tests the code paths of the Shapes implementation. I also introduced shapes.js, which allows us
2964         to easily add new, simple performance tests for shape-outside.
2965
2966         The entire progress is tracked under #128188 meta bug.
2967
2968         * Layout/Shapes/ShapeOutsideContentBox.html: Added.
2969         * Layout/Shapes/resources/shapes.css: Added.
2970         * Layout/Shapes/resources/shapes.js: Added.
2971         * Skipped: We skip running the tests by default for now.
2972
2973 2014-01-17  Manuel Rego Casasnovas  <rego@igalia.com>
2974
2975         [CSS Regions] Minor fixes in regions performance tests
2976         https://bugs.webkit.org/show_bug.cgi?id=127041
2977
2978         Reviewed by Ryosuke Niwa.
2979
2980         Fix minor issues in CSS Regions performance tests.
2981
2982         * Layout/RegionsAuto.html: Change type to lower case.
2983         * Layout/RegionsAutoMaxHeight.html: Ditto.
2984         * Layout/RegionsFixed.html: Ditto.
2985         * Layout/RegionsFixedShort.html: Ditto.
2986         * Layout/RegionsSelection.html: Ditto. Move test methods from regions.js.
2987         * Layout/resources/regions.js: Remove moved methods.
2988
2989 2014-01-17  Ryosuke Niwa  <rniwa@webkit.org>
2990
2991         Host DoYouEvenBench on webkit.org
2992         https://bugs.webkit.org/show_bug.cgi?id=127185
2993
2994         Reviewed by Benjamin Poulain.
2995
2996         Compute the resources directory relative to the benchmark-runner's location
2997         so that we can load tests even if the runner HTML was located elsewhere.
2998
2999         * DoYouEvenBench/Full.html:
3000         * DoYouEvenBench/resources/benchmark-runner.js:
3001         (BenchmarkState._containingDirectory):
3002
3003 2014-01-17  Ryosuke Niwa  <rniwa@webkit.org>
3004
3005         DoYouEvenBench: Move flightjs-example-app and todomvc into resources
3006         https://bugs.webkit.org/show_bug.cgi?id=127183
3007
3008         Rubber-stamped by Anders Carlsson.
3009
3010         * DoYouEvenBench/InteractiveRunner.html: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
3011         * DoYouEvenBench/benchmark.html: Removed.
3012         * DoYouEvenBench/flightjs-example-app: Removed.
3013         * DoYouEvenBench/flightjs-example-app/LICENSE.md: Removed.
3014         * DoYouEvenBench/flightjs-example-app/README.md: Removed.
3015         * DoYouEvenBench/flightjs-example-app/app: Removed.
3016         * DoYouEvenBench/flightjs-example-app/app/boot: Removed.
3017         * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Removed.
3018         * DoYouEvenBench/flightjs-example-app/app/component_data: Removed.
3019         * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Removed.
3020         * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Removed.
3021         * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Removed.
3022         * DoYouEvenBench/flightjs-example-app/app/component_ui: Removed.
3023         * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Removed.
3024         * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Removed.
3025         * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Removed.
3026         * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Removed.
3027         * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Removed.
3028         * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Removed.
3029         * DoYouEvenBench/flightjs-example-app/app/css: Removed.
3030         * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Removed.
3031         * DoYouEvenBench/flightjs-example-app/app/data.js: Removed.
3032         * DoYouEvenBench/flightjs-example-app/app/templates.js: Removed.
3033         * DoYouEvenBench/flightjs-example-app/components: Removed.
3034         * DoYouEvenBench/flightjs-example-app/components/bootstrap: Removed.
3035         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Removed.
3036         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Removed.
3037         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Removed.
3038         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Removed.
3039         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Removed.
3040         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Removed.
3041         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Removed.
3042         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Removed.
3043         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Removed.
3044         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Removed.
3045         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Removed.
3046         * DoYouEvenBench/flightjs-example-app/components/es5-shim: Removed.
3047         * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Removed.
3048         * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Removed.
3049         * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Removed.
3050         * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Removed.
3051         * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Removed.
3052         * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Removed.
3053         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Removed.
3054         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Removed.
3055         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Removed.
3056         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Removed.
3057         * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Removed.
3058         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Removed.
3059         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Removed.
3060         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Removed.
3061         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Removed.
3062         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Removed.
3063         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Removed.
3064         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Removed.
3065         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Removed.
3066         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Removed.
3067         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Removed.
3068         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Removed.
3069         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Removed.
3070         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Removed.
3071         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Removed.
3072         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Removed.
3073         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Removed.
3074         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Removed.
3075         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Removed.
3076         * DoYouEvenBench/flightjs-example-app/components/flight: Removed.
3077         * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Removed.
3078         * DoYouEvenBench/flightjs-example-app/components/flight/lib: Removed.
3079         * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Removed.
3080         * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Removed.
3081         * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Removed.
3082         * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Removed.
3083         * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Removed.
3084         * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Removed.
3085         * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Removed.
3086         * DoYouEvenBench/flightjs-example-app/components/flight/tools: Removed.
3087         * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Removed.
3088         * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Removed.
3089         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Removed.
3090         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Removed.
3091         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Removed.
3092         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Removed.
3093         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Removed.
3094         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Removed.
3095         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Removed.
3096         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Removed.
3097         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Removed.
3098         * DoYouEvenBench/flightjs-example-app/components/jquery: Removed.
3099         * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Removed.
3100         * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Removed.
3101         * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Removed.
3102         * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Removed.
3103         * DoYouEvenBench/flightjs-example-app/components/mustache: Removed.
3104         * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Removed.
3105         * DoYouEvenBench/flightjs-example-app/components/requirejs: Removed.
3106         * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Removed.
3107         * DoYouEvenBench/flightjs-example-app/index.html: Removed.
3108         * DoYouEvenBench/flightjs-example-app/karma.conf.js: Removed.
3109         * DoYouEvenBench/flightjs-example-app/package.json: Removed.
3110         * DoYouEvenBench/flightjs-example-app/requireMain.js: Removed.
3111         * DoYouEvenBench/resources/benchmark-runner.js:
3112         * DoYouEvenBench/resources/flightjs-example-app: Copied from PerformanceTests/DoYouEvenBench/flightjs-example-app.
3113         * DoYouEvenBench/resources/todomvc: Copied from PerformanceTests/DoYouEvenBench/todomvc.
3114         * DoYouEvenBench/todomvc: Removed.
3115         * DoYouEvenBench/todomvc/architecture-examples: Removed.
3116         * DoYouEvenBench/todomvc/architecture-examples/angularjs: Removed.
3117         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Removed.
3118         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Removed.
3119         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Removed.
3120         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Removed.
3121         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
3122         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
3123         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Removed.
3124         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
3125         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
3126         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
3127         * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Removed.
3128         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Removed.
3129         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Removed.
3130         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Removed.
3131         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Removed.
3132         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Removed.
3133         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
3134         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Removed.
3135         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Removed.
3136         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Removed.
3137         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Removed.
3138         * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Removed.
3139         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Removed.
3140         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Removed.
3141         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
3142         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Removed.
3143         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
3144         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Removed.
3145         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
3146         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
3147         * DoYouEvenBench/todomvc/architecture-examples/backbone: Removed.
3148         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Removed.
3149         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Removed.
3150         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Removed.
3151         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Removed.
3152         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
3153         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Removed.
3154         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Removed.
3155         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
3156         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Removed.
3157         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
3158         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
3159         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
3160         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Removed.
3161         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
3162         * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Removed.
3163         * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Removed.
3164         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Removed.
3165         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Removed.
3166         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Removed.
3167         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Removed.
3168         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Removed.
3169         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Removed.
3170         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Removed.
3171         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Removed.
3172         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Removed.
3173         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Removed.
3174         * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Removed.
3175         * DoYouEvenBench/todomvc/architecture-examples/emberjs: Removed.
3176         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Removed.
3177         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Removed.
3178         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Removed.
3179         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Removed.
3180         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
3181         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
3182         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Removed.
3183         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
3184         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Removed.
3185         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
3186         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Removed.
3187         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Removed.
3188         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
3189         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
3190         * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Removed.
3191         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Removed.
3192         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Removed.
3193         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Removed.
3194         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
3195         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
3196         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Removed.
3197         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
3198         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Removed.
3199         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
3200         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
3201         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/router.js: Removed.
3202         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Removed.
3203         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
3204         * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Removed.
3205         * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Removed.
3206         * DoYouEvenBench/todomvc/architecture-examples/jquery: Removed.
3207         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Removed.
3208         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Removed.
3209         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Removed.
3210         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
3211         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Removed.
3212         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
3213         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Removed.
3214         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
3215         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
3216         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
3217         * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Removed.
3218         * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Removed.
3219         * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Removed.
3220         * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Removed.
3221         * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Removed.
3222         * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Removed.
3223         * DoYouEvenBench/todomvc/labs: Removed.
3224         * DoYouEvenBench/todomvc/labs/architecture-examples: Removed.
3225         * DoYouEvenBench/todomvc/labs/architecture-examples/react: Removed.
3226         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Removed.
3227         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Removed.
3228         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Removed.
3229         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Removed.
3230         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Removed.
3231         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Removed.
3232         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Removed.
3233         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Removed.
3234         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Removed.
3235         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Removed.
3236         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Removed.
3237         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Removed.
3238         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Removed.
3239         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Removed.
3240         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Removed.
3241         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Removed.
3242         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Removed.