70064814bf40fcd549ced552814043f3dff674c4
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2017-08-16  Mathias Bynens  <mathias@qiwi.be>
2
3         Speedometer: Update Angular 1 TodoMVC example to v1.6.5
4         https://bugs.webkit.org/show_bug.cgi?id=175623
5
6         Reviewed by Ryosuke Niwa.
7
8         * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html: Made title consistent.
9         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js: Added.
10         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js.map: Added.
11         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js: Added.
12         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js.map: Added.
13         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js: Added.
14         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js.map: Added.
15         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Updated per build steps.
16         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Updated per build steps.
17         * Speedometer/resources/todomvc/architecture-examples/angularjs/package-lock.json: Added to pin dependencies.
18         * Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Updated per build steps.
19         * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md: Document the build process.
20
21 2017-08-16  Mathias Bynens  <mathias@qiwi.be>
22
23         Speedometer: Document Backbone example
24         https://bugs.webkit.org/show_bug.cgi?id=175626
25
26         Reviewed by Ryosuke Niwa.
27
28         * Speedometer/resources/todomvc/architecture-examples/backbone/index.html: Made title consistent.
29         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.js: Added.
30         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.map: Added.
31         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Updated per build steps.
32         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.js: Added.
33         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.map: Added.
34         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Updated per build steps.
35         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.js: Added.
36         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.map: Added.
37         * Speedometer/resources/todomvc/architecture-examples/backbone/package-lock.json: Added.
38         * Speedometer/resources/todomvc/architecture-examples/backbone/readme.md: Documented build steps.
39
40 2017-08-15  Michael Saboff  <msaboff@apple.com>
41
42         Add Offline Assembler parsing test to RexBench
43         https://bugs.webkit.org/show_bug.cgi?id=175581
44
45         Reviewed by Saam Barati.
46
47         This is a port of the JavaScriptCore offline assmebler's lexer, parser, AST and
48         supporting code from Ruby to JavaScript turned into a benchmark.  The benchmark
49         timing includes parsing through AST.  The validation processing time is not
50         part of the benchmark measurement.
51
52         The input data is the current tip of tree LLInt .asm source files.  Those file
53         were converted to JavaScript using the python script, convert_asm_to_js.py.
54         There is also a new JavaScript file, generate_expected.js, to create the
55         expected output JavaScript file.
56
57         * RexBench/OfflineAssembler: Added.
58         * RexBench/OfflineAssembler/ast.js: Added.
59         * RexBench/OfflineAssembler/instructions.js: Added.
60         * RexBench/OfflineAssembler/parser.js: Added.
61         * RexBench/OfflineAssembler/registers.js: Added.
62         These are JavaScript translation of the Ruby Offline Assembler.  Code not
63         needed for the benchmark was not translated and therefore missing.
64
65         * RexBench/OfflineAssembler/InitBytecodes.asm: Added.
66         * RexBench/OfflineAssembler/InitBytecodes.js: Added.
67         * RexBench/OfflineAssembler/LowLevelInterpreter.asm: Added.
68         * RexBench/OfflineAssembler/LowLevelInterpreter.js: Added.
69         * RexBench/OfflineAssembler/LowLevelInterpreter32_64.asm: Added.
70         * RexBench/OfflineAssembler/LowLevelInterpreter32_64.js: Added.
71         * RexBench/OfflineAssembler/LowLevelInterpreter64.asm: Added.
72         * RexBench/OfflineAssembler/LowLevelInterpreter64.js: Added.
73         Copies of the current LLInt source and conversion to JavaScript.
74
75         * RexBench/OfflineAssembler/file.js: Added.
76         (File):
77         (File.open):
78         (File.prototype.read):
79         Mock File class used to simulate filesystem access.
80
81         * RexBench/OfflineAssembler/expected.js: Added.
82         Expected output of the AST dumped and split into individual lines.
83
84         * RexBench/OfflineAssembler/benchmark.js: Added.
85         (OfflineAssemblerBenchmark):
86         (OfflineAssemblerBenchmark.prototype.runOnce):
87         (OfflineAssemblerBenchmark.prototype.validate):
88         Benchmark sub class for this test.
89
90         * RexBench/OfflineAssembler/convert_asm_to_js.py: Added.
91         (convertFile):
92         Converts .asm into .js files compatible to the benchmark.
93
94         * RexBench/OfflineAssembler/generate_expected.js: Added.
95         Converts AST output into the expected file format.
96
97         * RexBench/about.html: Added description of this sub-benchmark test.
98
99         * RexBench/cli.js:
100         * RexBench/glue.js:
101         * RexBench/index.html:
102         * RexBench/offline_assembler_benchmark.js: Added.
103         Updates to add this sub-benchmark.
104
105 2017-08-09  Myles C. Maxfield  <mmaxfield@apple.com>
106
107         font-fallback-font-family.html is failing on perf bots
108         https://bugs.webkit.org/show_bug.cgi?id=174989
109
110         Unreviewed.
111
112         * Layout/resources/font-fallback-font-family.html:
113
114 2017-08-09  Michael Saboff  <msaboff@apple.com>
115
116         Unreviewed build fix.
117
118         Added missing files.
119
120         * RexBench/Octane2/benchmark.js: Added.
121         (Octane2RegExpBenchmark):
122         (Octane2RegExpBenchmark.prototype.setup.):
123         (Octane2RegExpBenchmark.prototype.setup.Math.random):
124         (Octane2RegExpBenchmark.prototype.setup):
125         (Octane2RegExpBenchmark.prototype.runOnce):
126         (Octane2RegExpBenchmark.prototype.tearDown):
127         * RexBench/SunSpider/benchmark.js: Added.
128         (RegexDNABenchmark):
129         (RegexDNABenchmark.prototype.runOnce):
130         (RegexDNABenchmark.prototype.validate):
131
132 2017-08-09  Michael Saboff  <msaboff@apple.com>
133
134         Rex Bench doesn't work from the command line
135         https://bugs.webkit.org/show_bug.cgi?id=175349
136
137         Reviewed by Saam Barati.
138
139         Fixed cli.js to have the same set of benchmarks and .js files as the web
140         page driver.
141
142         Refactored the way benchmarks are run using a new Benchmark base class.  That
143         class will run the benchmark as well.  Eliminated the various runBenchmark()
144         functions that were used for individual tests.  This refactoring was threaded
145         into the web page driver as well.  Changed the iteration counts on many of the
146         individual benchmarks.  Also changed the inner loop count for the flight
147         planner test.
148
149         Eliminated Octane2/base.js as it isn't needed to run Octane2/RegExp with the 
150         new test harness.  Eliminated other dead code in Octane2/regexp.js.
151
152         * RexBench/Basic/benchmark.js:
153         (BasicBenchmark):
154         (BasicBenchmark.prototype.runIteration): Deleted.
155         (runBenchmark): Deleted.
156         * RexBench/FlightPlanner/benchmark.js:
157         (FlightPlannerBenchmark):
158         (FlightPlannerBenchmark.prototype.runOnce):
159         (this.performance.performance.now.currentTime): Deleted.
160         (else.this.preciseTime.currentTime): Deleted.
161         (else.currentTime): Deleted.
162         (FlightPlannerBenchmark.prototype.runIteration): Deleted.
163         (FlightPlannerBenchmark.prototype.checkResults): Deleted.
164         (runBenchmark): Deleted.
165         * RexBench/Octane2/base.js: Removed.
166         * RexBench/Octane2/regexp.js:
167         * RexBench/basic_benchmark.js:
168         * RexBench/benchmark.js: Added.
169         (this.performance.performance.now.currentTime):
170         (else.this.preciseTime.currentTime):
171         (else.currentTime):
172         (Benchmark):
173         (Benchmark.prototype.runIterations):
174         (Benchmark.prototype.setup):
175         (Benchmark.prototype.runOnce):
176         (Benchmark.prototype.validate):
177         (Benchmark.prototype.tearDown):
178         * RexBench/cli.js:
179         * RexBench/flightplan_benchmark.js:
180         * RexBench/flightplan_unicode_benchmark.js:
181         * RexBench/octane2_benchmark.js:
182         * RexBench/stats.js:
183         (Stats.prototype.toString.return.span.0.span.span):
184         * RexBench/sunspider_benchmark.js:
185
186 2017-08-07  Michael Saboff  <msaboff@apple.com>
187
188         Use more accurate Russian keywords for RexBench/FlightPlanner Unicode mode
189         https://bugs.webkit.org/show_bug.cgi?id=175298
190
191         Reviewed by Saam Barati.
192
193         With the help of Alexey Proskuryakov updated the Russian keywords.
194
195         * RexBench/FlightPlanner/use_unicode.js:
196
197 2017-08-07  Mathias Bynens  <mathias@qiwi.be>
198
199         Speedometer: Update to modern production Ember version
200         https://bugs.webkit.org/show_bug.cgi?id=175278
201
202         Reviewed by Ryosuke Niwa.
203
204         * Speedometer/resources/todomvc/architecture-examples/emberjs/README.md: Added.
205         * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html: Made title consistent.
206         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/README.md: Documented build process.
207         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/.gitkeep: Added.
208         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/index.html: Made title consistent.
209         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Removed.
210         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/models/.gitkeep: Added.
211         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/router.js: Update to latest version.
212         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/.gitkeep: Added.
213         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js: Update to latest version
214         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/styles/app.css: Added.
215         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/.gitkeep: Added.
216         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/bower.json: Update to latest version.
217         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/config/environment.js: Update to latest version.
218         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/dist/*: Added generated files per build instructions.
219         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package-lock.json: Pinned dependencies.
220         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package.json: Update to latest version.
221         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Removed.
222         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js: Updated to latest version.
223         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js: Updated to latest version.
224         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/index.html: Updated to latest version.
225         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/integration/.gitkeep: Added.
226         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/unit/.gitkeep: Added.
227         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/.gitkeep: Added.
228
229 2017-08-07  Michael Saboff  <msaboff@apple.com>
230
231         REGRESSION(r220307): Perf bot failure trying to run RexBench tests
232         https://bugs.webkit.org/show_bug.cgi?id=175289
233
234         Reviewed by Filip Pizlo.
235
236         Add RexBench to the list of benchmarks we skip on the perf bots.
237
238         * Skipped:
239
240 2017-08-04  Michael Saboff  <msaboff@apple.com>
241
242         Create a new JavaScript RegExp benchmark
243         https://bugs.webkit.org/show_bug.cgi?id=175225
244
245         Reviewed by JF Bastien.
246
247         This is a new benchmark for Regular Expressions.  It borrows regex-dna from
248         SunSpider, the regexp test from Octane2, the BASIC parser from ARES-6/Basic,
249         and adds a new flight planner benchmark that uses RegExp's for textual parsing.
250
251         There needs to be some additions and changes to some of the textual content.
252         This includes adding more BASIC programs to the Basic test and increasing 
253         keyword usage in the Flight Planner to increase the 16-bit coverage.
254         
255         The intent is to grow this benchmark by adding a JavaScript implementation of the 
256         offline assembler lexer and parser as well as adding some targeted micro benchmark
257         tests.
258
259         * RexBench: Added.
260         * RexBench/Basic: Added.
261         * RexBench/Basic/ast.js: Added.
262         * RexBench/Basic/basic.js: Added.
263         * RexBench/Basic/benchmark.js: Added.
264         * RexBench/Basic/caseless_map.js: Added.
265         * RexBench/Basic/lexer.js: Added.
266         * RexBench/Basic/number.js: Added.
267         * RexBench/Basic/parser.js: Added.
268         * RexBench/Basic/random.js: Added.
269         * RexBench/Basic/state.js: Added.
270         * RexBench/Basic/stress-test.js: Added.
271         * RexBench/Basic/util.js: Added.
272         * RexBench/FlightPlanner: Added.
273         * RexBench/FlightPlanner/airways.js: Added.
274         * RexBench/FlightPlanner/benchmark.js: Added.
275         * RexBench/FlightPlanner/convert-nfdc.py: Added.
276         * RexBench/FlightPlanner/expectations.js: Added.
277         * RexBench/FlightPlanner/flight_planner.js: Added.
278         * RexBench/FlightPlanner/use_unicode.js: Added.
279         * RexBench/FlightPlanner/waypoints.js: Added.
280         * RexBench/Octane2: Added.
281         * RexBench/Octane2/base.js: Added.
282         * RexBench/Octane2/regexp.js: Added.
283         * RexBench/SunSpider: Added.
284         * RexBench/SunSpider/regex-dna.js: Added.
285         * RexBench/about.html: Added.
286         * RexBench/basic_benchmark.js: Added.
287         * RexBench/cli.js: Added.
288         * RexBench/driver.js: Added.
289         * RexBench/flightplan_benchmark.js: Added.
290         * RexBench/flightplan_unicode_benchmark.js: Added.
291         * RexBench/glue.js: Added.
292         * RexBench/index.html: Added.
293         * RexBench/octane2_benchmark.js: Added.
294         * RexBench/results.js: Added.
295         * RexBench/stats.js: Added.
296         * RexBench/styles.css: Added.
297         * RexBench/sunspider_benchmark.js: Added.
298
299 2017-07-31  Mathias Bynens  <mathias@qiwi.be>
300
301         Speedometer 2.0: Remove <base> from Angular 4 test
302         https://bugs.webkit.org/show_bug.cgi?id=175004
303
304         Reviewed by Ryosuke Niwa.
305
306         * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Remove <base>.
307         * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Remove <base>.
308
309 2017-07-29  Mathias Bynens  <mathias@chromium.org>
310
311         Speedometer 2.0: Document vanilla/es2015 build process
312         https://bugs.webkit.org/show_bug.cgi?id=174894
313
314         Reviewed by Ryosuke Niwa.
315
316         * Speedometer/resources/todomvc/vanilla-examples/es2015/README.md: Added.
317         * Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Made title consistent.
318
319 2017-07-27  Mathias Bynens  <mathias@chromium.org>
320
321         Speedometer 2.0: Document Angular 4 build process
322         https://bugs.webkit.org/show_bug.cgi?id=174896
323
324         Reviewed by Ryosuke Niwa.
325
326         This patch documents the build process for the Angular 4 example, pins the dependencies (so
327         that builds are deterministic), and updates the generated files accordingly.
328
329         * Speedometer/resources/todomvc/architecture-examples/angular/README.md: Added.
330         * Speedometer/resources/todomvc/architecture-examples/angular/dist/*: Update per build instructions.
331         * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Removed unused file.
332         * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Removed unused file.
333         * Speedometer/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Removed unused file.
334         * Speedometer/resources/todomvc/architecture-examples/angular/package.json: Remove unneeded scripts.
335         * Speedometer/resources/todomvc/architecture-examples/angular/package-lock.json: Added to pin dependencies.
336         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Updated.
337         * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Updated.
338         * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Made title consistent.
339
340 2017-07-25  Mathias Bynens  <mathias@qiwi.be>
341
342         Speedometer 2.0: Document es2015-babel-webpack build process
343         https://bugs.webkit.org/show_bug.cgi?id=174252
344
345         Reviewed by Ryosuke Niwa.
346
347         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md: Added build docs.
348         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/*: Update generated build files.
349         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Remove unused items.
350         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package-lock.json: Added lockfile.
351         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Make title consistent.
352
353 2017-07-18  Matt Kotsenas  <mattkot@microsoft.com>
354
355         Add performance.mark()s around each test step
356         https://bugs.webkit.org/show_bug.cgi?id=174530
357
358         Reviewed by Ryosuke Niwa.
359
360         Add `performance.mark()` around each test step to make analysis
361         simpler. Now each test step can be investigated via dev tools, ETW, etc.
362
363         * Speedometer/resources/benchmark-runner.js:
364         (BenchmarkRunner.prototype._writeMark):
365         (BenchmarkRunner.prototype._runTest):
366         (BenchmarkRunner.prototype._runTestAndRecordResults):
367
368 2017-07-14  Saam Barati  <sbarati@apple.com>
369
370         Fix ambiguous description text in ARES-6 about the data the benchmark measures
371         https://bugs.webkit.org/show_bug.cgi?id=174510
372
373         Rubber stamped by Filip Pizlo.
374
375         * ARES-6/about.html:
376
377 2017-07-07  Mathias Bynens  <mathias@qiwi.be>
378
379         Speedometer 2.0: Fix vanilla JS example
380         https://bugs.webkit.org/show_bug.cgi?id=174246
381
382         Reviewed by Ryosuke Niwa.
383
384         Previously, all TODO items were assigned an ID of `null`. This patch
385         fixes that bug. Manually deleting items now works again.
386
387         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Made title consistent.
388         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Fixed bug with deleting items.
389         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Added docs.
390
391 2017-07-06  Myles C. Maxfield  <mmaxfield@apple.com>
392
393         [Cocoa] Improve performance of font lookups
394         https://bugs.webkit.org/show_bug.cgi?id=173960
395         <rdar://problem/31996891>
396
397         Reviewed by Darin Adler.
398
399         * Layout/font-fallback-font-family.html: Added.
400         * Layout/resources/font-fallback-font-family.html: Added.
401
402 2017-06-10  Dan Bernstein  <mitz@apple.com>
403
404         Reverted r218056 because it made the IDE reindex constantly.
405
406         * MediaTime/Configurations/DebugRelease.xcconfig:
407
408 2017-06-10  Dan Bernstein  <mitz@apple.com>
409
410         [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE
411         https://bugs.webkit.org/show_bug.cgi?id=173223
412
413         Reviewed by Sam Weinig.
414
415         The rebuilds were happening due to a difference in the compiler options that the IDE and
416         xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make
417         xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and
418         specify an appropriate path in CLANG_INDEX_STORE_PATH.
419
420         * MediaTime/Configurations/DebugRelease.xcconfig:
421
422 2017-06-07  Saam Barati  <sbarati@apple.com>
423
424         ARES-6 incorrectly measures Worst 4 Iterations
425         https://bugs.webkit.org/show_bug.cgi?id=172960
426
427         Reviewed by Mark Lam.
428
429         Version 1.0 of ARES-6 was accidentally measuring the first
430         4 iterations, instead of the worst 4. This patch fixes the
431         bug and bumps the version to 1.0.1.
432
433         * ARES-6/glue.js:
434         (driver.reportResult):
435         * ARES-6/results.js:
436         (Results.prototype.reportResult):
437
438 2017-06-06  Saam Barati  <sbarati@apple.com>
439
440         Add a version number to ARES-6
441         https://bugs.webkit.org/show_bug.cgi?id=172962
442
443         Reviewed by Yusuke Suzuki.
444
445         * ARES-6/glue.js:
446         (driver.reportResult):
447
448 2017-06-01  Saam Barati  <sbarati@apple.com>
449
450         Ensure a good experience for ARES-6 error reporting
451         https://bugs.webkit.org/show_bug.cgi?id=171699
452
453         Reviewed by Filip Pizlo and Jon Davis.
454
455         This patch fixes a bug where we would silently fail running ARES-6. The bug
456         was that we were calling reportError with the wrong |this| value.
457         I also cleaned up a bit of the code around error reporting. We
458         now indicate which test failed, and update the status to reflect
459         that a failure happened.
460         
461         This patch also modifies the CSS a bit to work better on smaller
462         screened devices. The CSS prevents the status from having a line
463         break both when an error is reported and when we're running the 
464         benchmark.
465
466         * ARES-6/driver.js:
467         (Driver):
468         (Driver.prototype.reportError):
469         * ARES-6/results.js:
470         (Results.prototype.reportError):
471         (Results):
472         * ARES-6/styles.css:
473         (.start):
474         (#status):
475         (.failed):
476         (#status.failed):
477         (.test .failed:before):
478         (#magic):
479         (@media only screen and (max-width: 784px)):
480         (.test):
481         (p):
482         (@media only screen and (max-width: 320px)):
483
484 2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
485
486         REGRESSION(r217118): Speedometer 2.0: Flight.js test is broken
487         https://bugs.webkit.org/show_bug.cgi?id=172394
488
489         Reviewed by Chris Dumez.
490
491         Fixed the bug that we were never clearing window.checkLoadedTimeoutId.
492
493         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
494         (newContext.checkLoaded):
495
496 2017-05-19  Yusuke Suzuki  <utatane.tea@gmail.com>
497
498         Add SixSpeed benchmark to PerformanceTests
499         https://bugs.webkit.org/show_bug.cgi?id=172326
500
501         Reviewed by Sam Weinig.
502
503         This patch imports SixSpeed benchmark into WebKit tree.
504         It is a collection of ES6 microbenchmarks. While the scripts are very tiny,
505         it sometimes hits our missing care for optimization. So including it is useful.
506
507         The benchmark is released under MIT license.
508
509         * SixSpeed/LICENSE: Added.
510         * SixSpeed/REVISION: Added.
511         * SixSpeed/ReadMe.md: Added.
512         * SixSpeed/tests/.eslintrc: Added.
513         * SixSpeed/tests/arrow-args/arrow-args.es5: Added.
514         * SixSpeed/tests/arrow-args/arrow-args.es6: Added.
515         * SixSpeed/tests/arrow-declare/arrow-declare.es5: Added.
516         * SixSpeed/tests/arrow-declare/arrow-declare.es6: Added.
517         * SixSpeed/tests/arrow/arrow.es5: Added.
518         * SixSpeed/tests/arrow/arrow.es6: Added.
519         * SixSpeed/tests/bindings-compound/bindings-compound.es5: Added.
520         * SixSpeed/tests/bindings-compound/bindings-compound.es6: Added.
521         * SixSpeed/tests/bindings/bindings.es5: Added.
522         * SixSpeed/tests/bindings/bindings.es6: Added.
523         * SixSpeed/tests/classes/classes.es5: Added.
524         * SixSpeed/tests/classes/classes.es6: Added.
525         * SixSpeed/tests/defaults/defaults.es5: Added.
526         * SixSpeed/tests/defaults/defaults.es6: Added.
527         * SixSpeed/tests/destructuring-simple/destructuring-simple.es5: Added.
528         * SixSpeed/tests/destructuring-simple/destructuring-simple.es6: Added.
529         * SixSpeed/tests/destructuring/destructuring.es5: Added.
530         * SixSpeed/tests/destructuring/destructuring.es6: Added.
531         * SixSpeed/tests/for-of-array/for-of-array.es5: Added.
532         * SixSpeed/tests/for-of-array/for-of-array.es6: Added.
533         * SixSpeed/tests/for-of-object/for-of-object.es5: Added.
534         * SixSpeed/tests/for-of-object/for-of-object.es6: Added.
535         * SixSpeed/tests/generator/generator.es5: Added.
536         * SixSpeed/tests/generator/generator.es6: Added.
537         * SixSpeed/tests/map-set-lookup/map-set-lookup.es5: Added.
538         * SixSpeed/tests/map-set-lookup/map-set-lookup.es6: Added.
539         * SixSpeed/tests/map-set-object/map-set-object.es5: Added.
540         * SixSpeed/tests/map-set-object/map-set-object.es6: Added.
541         * SixSpeed/tests/map-set/map-set.es5: Added.
542         * SixSpeed/tests/map-set/map-set.es6: Added.
543         * SixSpeed/tests/map-string/map-string.es5: Added.
544         * SixSpeed/tests/map-string/map-string.es6: Added.
545         * SixSpeed/tests/new-target/defaults.es5: Added.
546         * SixSpeed/tests/new-target/defaults.es6: Added.
547         * SixSpeed/tests/object-assign/object-assign.es5: Added.
548         * SixSpeed/tests/object-assign/object-assign.es6: Added.
549         * SixSpeed/tests/object-literal-ext/object-literal-ext.es5: Added.
550         * SixSpeed/tests/object-literal-ext/object-literal-ext.es6: Added.
551         * SixSpeed/tests/regex-u/regex-u.es5: Added.
552         * SixSpeed/tests/regex-u/regex-u.es6: Added.
553         * SixSpeed/tests/rest/rest.es5: Added.
554         * SixSpeed/tests/rest/rest.es6: Added.
555         * SixSpeed/tests/spread-generator/spread-generator.es5: Added.
556         * SixSpeed/tests/spread-generator/spread-generator.es6: Added.
557         * SixSpeed/tests/spread-literal/spread-literal.es5: Added.
558         * SixSpeed/tests/spread-literal/spread-literal.es6: Added.
559         * SixSpeed/tests/spread/spread.es5: Added.
560         * SixSpeed/tests/spread/spread.es6: Added.
561         * SixSpeed/tests/super/super.es5: Added.
562         * SixSpeed/tests/super/super.es6: Added.
563         * SixSpeed/tests/template_string/template_string.es5: Added.
564         * SixSpeed/tests/template_string/template_string.es6: Added.
565         * SixSpeed/tests/template_string_tag/template_string_tag.es5: Added.
566         * SixSpeed/tests/template_string_tag/template_string_tag.es6: Added.
567         * SixSpeed/wrappers/wrapper.js:
568         (test):
569
570 2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
571
572         Speedometer 2.0: Angular v1 test only deletes the second item
573         https://bugs.webkit.org/show_bug.cgi?id=172353
574
575         Reviewed by Antti Koivisto.
576
577         Like jQuery and Inferno, run querySelector after removing each todo item.
578
579         * Speedometer/InteractiveRunner.html: Tweaked CSS again.
580         * Speedometer/resources/tests.js:
581
582 2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
583
584         Speedometer 2.0: Elem test isn't updating DOM during the measurement
585         https://bugs.webkit.org/show_bug.cgi?id=172343
586
587         Reviewed by Antti Koivisto.
588
589         Elem test wasn't doing much work because it simply enqueues items into the work queue, which doesn't get
590         executed until the next requestAnimationFrame or setTimeout callback happens.
591
592         Expose elm's work function as contentWindow.elemWork and make the first use of rAF a synchronous callback
593         just as it would when requestAnimationFrame isn't defined, and make the second use of rAF queue up to
594         an array of callbacks, and have the test runner manually invoke each callback.
595
596         This increases the runtime of the Elm suite from 100ms to 300ms on Safari.
597
598         * Speedometer/resources/tests.js:
599         (processElmWorkQueue): Added. A helper which processes Elm's work queue and manually invokes render callbacks.
600         * Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
601
602 2017-05-18  Ryosuke Niwa  <rniwa@webkit.org>
603
604         Speedometer 2.0: Flight.js test is sometime broken
605         https://bugs.webkit.org/show_bug.cgi?id=172347
606
607         Reviewed by Antti Koivisto.
608
609         The bug was caused by the test runner only waiting for #new-todo, which happens before all other states are
610         updated in the Flight.js dependency example. As done in Speedometer v1, insert a dummy element with id set
611         to appIsReady and wait for this element to appear in the benchmark harness.
612
613         * Speedometer/resources/tests.js: Wait for #appIsReady.
614         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Removed the superflous call
615         to console.log.
616         (checkReady): Added. Insert #appIsReady if checkLoaded is no longer running at 50ms interval. Because this
617         could happen asynchronously, we check the absense of checkLoadedTimeoutId Î©every 10ms for 5 times for
618         the total duration of 50ms. If checkLoadedTimeoutId was never present, we call it ready. If we ever observed
619         the presence of checkLoadedTimeoutId, wait another 50ms and start over.
620         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
621         (.newContext.checkLoaded): Expose checkLoadedTimeoutId which is a timer ID used to check the dependency.
622
623 2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
624
625         Speedometer 2.0: jQuery and Inferno tests don't delete all ToDo items
626         https://bugs.webkit.org/show_bug.cgi?id=172341
627
628         Reviewed by Antti Koivisto.
629
630         The bug was caused by the fact TodoMVC examples for jQuery and Inferno JS create a new button
631         to delete the todo item each time todo items are rendered.
632
633         Fixed the bug by dynamically look for .destroy using querySelector for each item.
634
635         Also moved the deletion of the iframe from the end of each test suite to the beginning of each suite.
636         This will make debugging the issue like this easier on InteractiveRunner.html since the iframe
637         will stick around after stepping the last item in the suite.
638
639         * Speedometer/InteractiveRunner.html: Tweaked the CSS to make buttons to "Step" and "Run" always visible
640         even if the list of suites and subtests are too long to fit in the viewport.
641
642         * Speedometer/resources/benchmark-runner.js:
643         (BenchmarkRunner.prototype.step):
644         (BenchmarkRunner.prototype._runTestAndRecordResults):
645
646         * Speedometer/resources/tests.js: Fixed the bug for jQuery and Inferno. In the case of jQuery
647         we also have to fix the code for checking every ToDo item as completed as well.
648
649 2017-05-19  Ryosuke Niwa  <rniwa@webkit.org>
650
651         Speedometer 2.0: Vanilla JS test doesn't mark all todo items as completed
652         https://bugs.webkit.org/show_bug.cgi?id=172348
653
654         Reviewed by Antti Koivisto.
655
656         The bug was caused by the in-memory store class using the milisecond precision timestamp as an ID.
657         Because we inserts 50 items all at once, this can result in multiple data items sharing a single ID.
658
659         Fixed the bug by using a mononotically increasing ID instead.
660
661         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
662         (Store.prototype.save):
663
664 2017-05-18  Ryosuke Niwa  <rniwa@webkit.org>
665
666         REGRESSION (r216694 - 216712): Performance test Speedometer/Full.html is failing
667         https://bugs.webkit.org/show_bug.cgi?id=172077
668
669         Reviewed by Chris Dumez.
670
671         Rename Full.html to index.html to match the convention of other benchmarks.
672
673         * Speedometer/index.html: Renamed from PerformanceTests/Speedometer/Full.html.
674
675 2017-05-18  Addy Osmani  <addyosmani@gmail.com>
676
677         Speedometer: check-in missing React TodoMVC dependency
678         https://bugs.webkit.org/show_bug.cgi?id=172213
679
680         Reviewed by Ryosuke Niwa.
681
682         * Speedometer/resources/todomvc/architecture-examples/react/index.html: fix director.min.js path.
683         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/director.min.js: Added.
684
685 2017-05-17  Addy Osmani  <addyosmani@gmail.com>
686
687         Speedometer: adjust Ember TodoMVC to use full path
688         https://bugs.webkit.org/show_bug.cgi?id=172211
689
690         Reviewed by Ryosuke Niwa.
691
692         * Speedometer/resources/tests.js: use full path to Ember TodoMVC app.
693
694 2017-05-16  Addy Osmani  <addyosmani@gmail.com>
695
696         Update to Speedometer 2.0 w/updated frameworks + new workloads
697         https://bugs.webkit.org/show_bug.cgi?id=170513
698
699         Reviewed by Ryosuke Niwa.
700
701         Refresh test runner and fix apps to work with it.
702
703         * Speedometer/InteractiveRunner.html:
704         (parseQueryString): Adds support for startAutomatically query parameter.
705         * Speedometer/resources/tests.js:
706         (triggerEnter): Refactor event triggering behavior for tests.
707         * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html:
708         (CSS): Drop reference to extraneous stylesheet in Angular TodoMVC.
709         * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js:
710         * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
711         (base): Enable Ember TodoMVC to be run from any directory/level.
712         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js:
713         (localStorageMemory): Correct import path and switch to window.localStorageMemory to fix Ember failures.
714         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js:
715         * Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html:
716         * Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
717         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/LICENSE: Added.
718         (LICENSE): Add missing metadata and LICENSE files as part of director.js package for jQuery TodoMVC
719         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/bower.json: Added.
720         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.js: Add missing 
721         director.js dependency for jQuery TodoMVC implementation.
722         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.min.js: Added.
723         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/ender.js: Added.
724         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/package.json: Added.
725         * Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Fix path to built Elm TodoMVC scripts.
726
727 2017-05-12  Addy Osmani  <addyosmani@gmail.com>
728
729         Speedometer: Add a React.js TodoMVC implementation
730         https://bugs.webkit.org/show_bug.cgi?id=171444
731
732         Reviewed by Ryosuke Niwa.
733
734         Adds a more recent React.js TodoMVC implemenation to Speedometer
735
736         * Speedometer/resources/todomvc/architecture-examples/react/build.min.js: Added.
737         * Speedometer/resources/todomvc/architecture-examples/react/index.html: Added.
738         * Speedometer/resources/todomvc/architecture-examples/react/js/app.jsx: Added.
739         * Speedometer/resources/todomvc/architecture-examples/react/license.md: Added.
740         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/LICENSE: Added.
741         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bind.js: Added.
742         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bower.json: Added.
743         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/dedupe.js: Added.
744         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/index.js: Added.
745         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/package.json: Added.
746         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/LICENSE: Added.
747         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/bower.json: Added.
748         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/package.json: Added.
749         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/LICENSE: Added.
750         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom-server.min.js: Added.
751         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom.min.js: Added.
752         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/index.js: Added.
753         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/LICENSE: Added.
754         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/README.md: Added.
755         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react-with-addons.min.js: Added.
756         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react.min.js: Added.
757         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/package.json: Added.
758         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-app-css/index.css: Added.
759         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.css: Added.
760         * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.js: Added.
761         * Speedometer/resources/todomvc/architecture-examples/react/npm-shrinkwrap.json: Added.
762         * Speedometer/resources/todomvc/architecture-examples/react/package.json: Added.
763         * Speedometer/resources/todomvc/architecture-examples/react/yarn.lock: Added.
764
765 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
766
767         Speedometer: Update the Ember.js TodoMVC to a more recent version
768         https://bugs.webkit.org/show_bug.cgi?id=171342
769
770         Reviewed by Ryosuke Niwa.
771
772         Update the Ember TodoMVC app in Speedometer to latest
773
774         * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.css: Added.
775         * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js: Added.
776         * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.css: Renamed from PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css.
777         * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.js: Added.
778         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Removed.
779         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Removed.
780         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
781         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
782         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
783         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
784         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
785         * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
786         * Speedometer/resources/todomvc/architecture-examples/emberjs/crossdomain.xml: Added.
787         * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
788         * Speedometer/resources/todomvc/architecture-examples/emberjs/js/app.js: Removed.
789         * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
790         * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
791         * Speedometer/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Removed.
792         * Speedometer/resources/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
793         * Speedometer/resources/todomvc/architecture-examples/emberjs/js/router.js: Removed.
794         * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
795         * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Removed.
796         * Speedometer/resources/todomvc/architecture-examples/emberjs/readme.md: Removed.
797         * Speedometer/resources/todomvc/architecture-examples/emberjs/robots.txt: Added.
798         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.bowerrc: Added.
799         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.editorconfig: Added.
800         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.ember-cli: Added.
801         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.gitignore: Added.
802         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.jshintrc: Added.
803         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.travis.yml: Added.
804         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.watchmanconfig: Added.
805         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/README.md: Added.
806         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/app.js: Added.
807         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/.gitkeep: Added.
808         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-item.js: Added.
809         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-list.js: Added.
810         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/active.js: Added.
811         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/application.js: Added.
812         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/completed.js: Added.
813         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/gt.js: Added.
814         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/pluralize.js: Added.
815         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/index.html: Added.
816         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Added.
817         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/models/.gitkeep: Added.
818         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/resolver.js: Added.
819         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/router.js: Added.
820         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/.gitkeep: Added.
821         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/application.js: Added.
822         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js: Added.
823         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js: Added.
824         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/styles/app.css: Added.
825         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/active.hbs: Added.
826         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/application.hbs: Added.
827         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/completed.hbs: Added.
828         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/.gitkeep: Added.
829         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-item.hbs: Added.
830         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-list.hbs: Added.
831         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/index.hbs: Added.
832         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/bower.json: Added.
833         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/config/environment.js: Added.
834         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/ember-cli-build.js: Added.
835         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package.json: Added.
836         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/crossdomain.xml: Added.
837         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/robots.txt: Added.
838         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/testem.js: Added.
839         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Added.
840         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/destroy-app.js: Added.
841         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js: Added.
842         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/resolver.js: Added.
843         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js: Added.
844         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/index.html: Added.
845         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/integration/.gitkeep: Added.
846         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/test-helper.js: Added.
847         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/unit/.gitkeep: Added.
848         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/.gitkeep: Added.
849         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/base.css: Added.
850         * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/index.css: Added.
851         * Speedometer/resources/todomvc/architecture-examples/emberjs/test.html: Removed.
852         * Speedometer/resources/todomvc/architecture-examples/emberjs/testem.js: Added.
853         * Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html: Added.
854
855 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
856
857         Speedometer: Add a React + Redux TodoMVC implementation
858         https://bugs.webkit.org/show_bug.cgi?id=171329
859
860         Reviewed by Ryosuke Niwa.
861
862         Adds React and Redux TodoMVC implementation for Speedometer
863
864         * Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: Added.
865         * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/index.html: Added.
866         * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.d43d2909.css: Added.
867         * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.946269ff.js: Added.
868         * Speedometer/resources/todomvc/architecture-examples/react-redux/package.json: Added.
869         * Speedometer/resources/todomvc/architecture-examples/react-redux/public/index.html: Added.
870         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.js: Added.
871         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.spec.js: Added.
872         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.js: Added.
873         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.spec.js: Added.
874         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.js: Added.
875         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.spec.js: Added.
876         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.js: Added.
877         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.spec.js: Added.
878         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.js: Added.
879         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.spec.js: Added.
880         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.js: Added.
881         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.spec.js: Added.
882         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/ActionTypes.js: Added.
883         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/TodoFilters.js: Added.
884         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/containers/App.js: Added.
885         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/index.js: Added.
886         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/index.js: Added.
887         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js: Added.
888         * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.spec.js: Added.
889         * Speedometer/resources/todomvc/architecture-examples/react-redux/yarn.lock: Added.
890
891 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
892
893         Speedometer: Add an ES2015 (Babel + Webpack) TodoMVC implementation
894         https://bugs.webkit.org/show_bug.cgi?id=171452
895
896         Reviewed by Ryosuke Niwa.
897
898         Adds ES2015 Babel + Webpack TodoMVC implem
899
900         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.babelrc: Added.
901         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.eslintignore: Added.
902         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js: Added.
903         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js.map: Added.
904         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js: Added.
905         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js.map: Added.
906         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js: Added.
907         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js.map: Added.
908         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/index.html: Added.
909         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css: Added.
910         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css.map: Added.
911         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css: Added.
912         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css.map: Added.
913         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Added.
914         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.css: Added.
915         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.js: Added.
916         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/bootstrap.js: Added.
917         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.js: Added.
918         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.test.js: Added.
919         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/helpers.js: Added.
920         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Added.
921         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/memory.js: Added.
922         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/model.js: Added.
923         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js: Added.
924         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/template.js: Added.
925         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/todo.js: Added.
926         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/view.js: Added.
927         * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/webpack.config.babel.js: Added.
928
929 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
930
931         Speedometer: Add an Inferno TodoMVC implementation
932         https://bugs.webkit.org/show_bug.cgi?id=171411
933
934         Reviewed by Ryosuke Niwa.
935
936         Adds a Inferno implem of TodoMVC to Speedometer
937
938         * Speedometer/resources/todomvc/architecture-examples/inferno/dist/bundle.js: Added.
939         * Speedometer/resources/todomvc/architecture-examples/inferno/index.html: Added.
940         * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/index.css: Added.
941         * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/package.json: Added.
942         * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/readme.md: Added.
943         * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.css: Added.
944         * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.js: Added.
945         * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/package.json: Added.
946         * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/readme.md: Added.
947         * Speedometer/resources/todomvc/architecture-examples/inferno/package.json: Added.
948         * Speedometer/resources/todomvc/architecture-examples/inferno/src/base.js: Added.
949         * Speedometer/resources/todomvc/architecture-examples/inferno/src/index.js: Added.
950         * Speedometer/resources/todomvc/architecture-examples/inferno/src/item.js: Added.
951         * Speedometer/resources/todomvc/architecture-examples/inferno/src/model.js: Added.
952         * Speedometer/resources/todomvc/architecture-examples/inferno/src/share.js: Added.
953         * Speedometer/resources/todomvc/architecture-examples/inferno/webpack.config.js: Added.
954
955 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
956
957         Speedometer: Add an Angular 2 (4.x) TodoMVC implementation
958         https://bugs.webkit.org/show_bug.cgi?id=171343
959
960         Reviewed by Ryosuke Niwa.
961
962         Add a TodoMVC Angular 2 (4.x) implem for the benchmark
963
964         * Speedometer/resources/todomvc/architecture-examples/angular/.angular-cli.json: Added.
965         * Speedometer/resources/todomvc/architecture-examples/angular/.editorconfig: Added.
966         * Speedometer/resources/todomvc/architecture-examples/angular/README.md: Added.
967         * Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-app.css: Added.
968         * Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-common.css: Added.
969         * Speedometer/resources/todomvc/architecture-examples/angular/dist/favicon.ico: Added.
970         * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Added.
971         * Speedometer/resources/todomvc/architecture-examples/angular/dist/inline.b342d102ba4a53bf2002.bundle.js: Added.
972         * Speedometer/resources/todomvc/architecture-examples/angular/dist/main.779eb2f1ddbe23ac61c7.bundle.js: Added.
973         * Speedometer/resources/todomvc/architecture-examples/angular/dist/polyfills.2d45a4c73c85e24fe474.bundle.js: Added.
974         * Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Added.
975         * Speedometer/resources/todomvc/architecture-examples/angular/dist/vendor.b4be818cb6d8028f9192.bundle.js: Added.
976         * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Added.
977         * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Added.
978         * Speedometer/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Added.
979         * Speedometer/resources/todomvc/architecture-examples/angular/karma.conf.js: Added.
980         * Speedometer/resources/todomvc/architecture-examples/angular/package.json: Added.
981         * Speedometer/resources/todomvc/architecture-examples/angular/protractor.conf.js: Added.
982         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.css: Added.
983         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.html: Added.
984         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.spec.ts: Added.
985         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Added.
986         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.module.ts: Added.
987         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts: Added.
988         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.ts: Added.
989         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.spec.ts: Added.
990         * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.ts: Added.
991         * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/.gitkeep: Added.
992         * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-app.css: Added.
993         * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-common.css: Added.
994         * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.prod.ts: Added.
995         * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Added.
996         * Speedometer/resources/todomvc/architecture-examples/angular/src/favicon.ico: Added.
997         * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Added.
998         * Speedometer/resources/todomvc/architecture-examples/angular/src/main.ts: Added.
999         * Speedometer/resources/todomvc/architecture-examples/angular/src/polyfills.ts: Added.
1000         * Speedometer/resources/todomvc/architecture-examples/angular/src/styles.css: Added.
1001         * Speedometer/resources/todomvc/architecture-examples/angular/src/test.ts: Added.
1002         * Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.app.json: Added.
1003         * Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.spec.json: Added.
1004         * Speedometer/resources/todomvc/architecture-examples/angular/src/typings.d.ts: Added.
1005         * Speedometer/resources/todomvc/architecture-examples/angular/tsconfig.json: Added.
1006         * Speedometer/resources/todomvc/architecture-examples/angular/tslint.json: Added.
1007
1008 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1009
1010         Speedometer: Add a Vue.js TodoMVC implementation
1011         https://bugs.webkit.org/show_bug.cgi?id=171325
1012
1013         Reviewed by Ryosuke Niwa.
1014
1015         Adds a Vue.js TodoMVC implementation to Speedometer
1016
1017         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.babelrc: Added.
1018         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.editorconfig: Added.
1019         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintignore: Added.
1020         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintrc.js: Added.
1021         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: Added.
1022         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/dev.env.js: Added.
1023         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/index.js: Added.
1024         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/prod.env.js: Added.
1025         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/index.html: Added.
1026         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.677b45842d9f8b96e5b23c18969233b7.css: Added.
1027         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.b0e835874bc8949670d1.js: Added.
1028         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.84b2b4fceb74ab1f91f3.js: Added.
1029         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.a52517c5aa98e7fbea2e.js: Added.
1030         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/index.html: Added.
1031         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package.json: Added.
1032         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/App.vue: Added.
1033         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue: Added.
1034         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/todo.css: Added.
1035         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/main.js: Added.
1036         * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/yarn.lock: Added.
1037
1038 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1039
1040         Speedometer: Update the vanilla JavaScript TodoMVC implem to a more recent version
1041         https://bugs.webkit.org/show_bug.cgi?id=171306
1042
1043         Reviewed by Ryosuke Niwa.
1044
1045         Update vanilla JS TodoMVC implementation to the latest.
1046
1047         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
1048         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
1049         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
1050         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
1051         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html:
1052         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js:
1053         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js:
1054         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js:
1055         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js:
1056         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
1057         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/template.js: Added.
1058         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js:
1059         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-app-css/index.css: Added.
1060         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.css: Added.
1061         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.js: Added.
1062         * Speedometer/resources/todomvc/vanilla-examples/vanillajs/package.json: Added.
1063
1064 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1065
1066         Speedometer: Add an ES2015 TodoMVC implementation
1067         https://bugs.webkit.org/show_bug.cgi?id=171448
1068
1069         Reviewed by Ryosuke Niwa.
1070
1071         Adds ES2015 TodoMVC implementation for Speedometer
1072
1073         * Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Added.
1074         * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/index.css: Added.
1075         * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/package.json: Added.
1076         * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/readme.md: Added.
1077         * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.css: Added.
1078         * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.js: Added.
1079         * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/package.json: Added.
1080         * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/readme.md: Added.
1081         * Speedometer/resources/todomvc/vanilla-examples/es2015/package.json: Added.
1082         * Speedometer/resources/todomvc/vanilla-examples/es2015/src/.jshintrc: Added.
1083         * Speedometer/resources/todomvc/vanilla-examples/es2015/src/app.js: Added.
1084         * Speedometer/resources/todomvc/vanilla-examples/es2015/src/controller.js: Added.
1085         * Speedometer/resources/todomvc/vanilla-examples/es2015/src/helpers.js: Added.
1086         * Speedometer/resources/todomvc/vanilla-examples/es2015/src/model.js: Added.
1087         * Speedometer/resources/todomvc/vanilla-examples/es2015/src/store.js: Added.
1088         * Speedometer/resources/todomvc/vanilla-examples/es2015/src/template.js: Added.
1089         * Speedometer/resources/todomvc/vanilla-examples/es2015/src/view.js: Added.
1090
1091 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1092
1093         Speedometer: Add an Elm TodoMVC implementation
1094         https://bugs.webkit.org/show_bug.cgi?id=171464
1095
1096         Reviewed by Ryosuke Niwa.
1097
1098         Speedometer: Add Elm TodoMVC implementation
1099
1100         * Speedometer/resources/todomvc/functional-prog-examples/elm/Todo.elm: Added.
1101         * Speedometer/resources/todomvc/functional-prog-examples/elm/Todo/Task.elm: Added.
1102         * Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js: Added.
1103         * Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Added.
1104         * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-app-css/index.css: Added.
1105         * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.css: Added.
1106         * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.js: Added.
1107         * Speedometer/resources/todomvc/functional-prog-examples/elm/package.json: Added.
1108         * Speedometer/resources/todomvc/functional-prog-examples/elm/readme.md: Added.
1109
1110 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1111
1112         Speedometer: Update the Backbone.js implementation to a more recent library version
1113         https://bugs.webkit.org/show_bug.cgi?id=171305
1114
1115         Reviewed by Ryosuke Niwa.
1116
1117         Updates the Backbone.js TodoMVC implementation to latest
1118
1119         * Speedometer/resources/todomvc/architecture-examples/backbone/bower.json: Removed.
1120         * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
1121         * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
1122         * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
1123         * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
1124         * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
1125         * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
1126         * Speedometer/resources/todomvc/architecture-examples/backbone/index.html:
1127         * Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js:
1128         * Speedometer/resources/todomvc/architecture-examples/backbone/js/backbone.sync.js: Added.
1129         * Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js:
1130         * Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js:
1131         * Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js:
1132         * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js:
1133         * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js:
1134         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js.
1135         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Added.
1136         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Added.
1137         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.css: Added.
1138         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.js: Added.
1139         * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore.js: Added.
1140         * Speedometer/resources/todomvc/architecture-examples/backbone/package.json: Added.
1141
1142 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1143
1144         Speedometer: Add a Preact.js TodoMVC implementation
1145         https://bugs.webkit.org/show_bug.cgi?id=171323
1146
1147         Reviewed by Ryosuke Niwa.
1148
1149         Adds Preact.js TodoMVC implementation to Speedometer
1150
1151         * Speedometer/resources/todomvc/architecture-examples/preact/.babelrc: Added.
1152         * Speedometer/resources/todomvc/architecture-examples/preact/README.md: Added.
1153         * Speedometer/resources/todomvc/architecture-examples/preact/dist/app.js: Added.
1154         * Speedometer/resources/todomvc/architecture-examples/preact/dist/index.html: Added.
1155         * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.css: Added.
1156         * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.js: Added.
1157         * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc.css: Added.
1158         * Speedometer/resources/todomvc/architecture-examples/preact/package.json: Added.
1159         * Speedometer/resources/todomvc/architecture-examples/preact/rollup.config.js: Added.
1160         * Speedometer/resources/todomvc/architecture-examples/preact/src/app/footer.js: Added.
1161         * Speedometer/resources/todomvc/architecture-examples/preact/src/app/index.js: Added.
1162         * Speedometer/resources/todomvc/architecture-examples/preact/src/app/item.js: Added.
1163         * Speedometer/resources/todomvc/architecture-examples/preact/src/app/model.js: Added.
1164         * Speedometer/resources/todomvc/architecture-examples/preact/src/app/util.js: Added.
1165         * Speedometer/resources/todomvc/architecture-examples/preact/src/index.html: Added.
1166         * Speedometer/resources/todomvc/architecture-examples/preact/src/index.js: Added.
1167         * Speedometer/resources/todomvc/architecture-examples/preact/webpack.config.babel.js: Added.
1168
1169 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1170
1171         Speedometer: Update the jQuery implementation to a more recent library version
1172         https://bugs.webkit.org/show_bug.cgi?id=171308
1173
1174         Reviewed by Ryosuke Niwa.
1175
1176         Updates the jQuery implementation of TodoMVC to a more recent version
1177
1178         * Speedometer/resources/todomvc/architecture-examples/jquery/bower.json: Removed.
1179         * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
1180         * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
1181         * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
1182         * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
1183         * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
1184         * Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
1185         * Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js:
1186         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/handlebars/dist/handlebars.js: Added.
1187         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/jquery/dist/jquery.js: Added.
1188         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/index.css: Added.
1189         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/package.json: Added.
1190         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/readme.md: Added.
1191         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.css: Added.
1192         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.js: Added.
1193         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/package.json: Added.
1194         * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/readme.md: Added.
1195         * Speedometer/resources/todomvc/architecture-examples/jquery/package.json: Added.
1196         * Speedometer/resources/todomvc/architecture-examples/jquery/readme.md:
1197
1198 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1199
1200         Speedometer: Update the Flight.js implementation to a more recent library version
1201         https://bugs.webkit.org/show_bug.cgi?id=171471
1202
1203         Reviewed by Ryosuke Niwa.
1204
1205         Speedometer: Update FlightJS TodoMVC implementation
1206
1207         * Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Removed.
1208         * Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Removed.
1209         * Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Removed.
1210         * Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Removed.
1211         * Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Removed.
1212         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Removed.
1213         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Removed.
1214         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Removed.
1215         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Removed.
1216         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Removed.
1217         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Removed.
1218         * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Removed.
1219         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/stats.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/stats.js.
1220         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/todos.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/todos.js.
1221         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Added.
1222         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/page/app.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/app.js.
1223         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/store.js: Added.
1224         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/main_selector.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js.
1225         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/new_item.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js.
1226         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/stats.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js.
1227         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/todo_list.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js.
1228         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/toggle_all.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js.
1229         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/with_filters.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js.
1230         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js.
1231         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/stats.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html.
1232         * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/todo.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html.
1233         * Speedometer/resources/todomvc/dependency-examples/flight/flight/index.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/index.html.
1234         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/README.md: Added.
1235         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js.
1236         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.min.js: Added.
1237         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/package.json: Added.
1238         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE: Added.
1239         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js.
1240         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.min.js: Added.
1241         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.js: Added.
1242         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.min.js: Added.
1243         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE: Added.
1244         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/index.js: Added.
1245         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/advice.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js.
1246         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/base.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js.
1247         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/component.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js.
1248         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/compose.js: Added.
1249         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/debug.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js.
1250         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/logger.js: Added.
1251         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/registry.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js.
1252         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js.
1253         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/README.md: Added.
1254         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.js: Added.
1255         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.min.js: Added.
1256         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/package.json: Added.
1257         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/memorystorage/memorystorage.js: Added.
1258         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE: Added.
1259         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/README.md: Added.
1260         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/bower.json: Added.
1261         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/package.json: Added.
1262         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/text.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js.
1263         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/README.md: Added.
1264         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/package.json: Added.
1265         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js.
1266         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/index.css: Added.
1267         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/package.json: Added.
1268         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/readme.md: Added.
1269         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.css: Added.
1270         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js.
1271         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/package.json: Added.
1272         * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/readme.md: Added.
1273         * Speedometer/resources/todomvc/dependency-examples/flight/flight/package.json: Added.
1274         * Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Removed.
1275         * Speedometer/resources/todomvc/dependency-examples/flight/package.json: Removed.
1276         * Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Removed.
1277         * Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Removed.
1278         * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Removed.
1279         * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Removed.
1280         * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Removed.
1281         * Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Removed.
1282         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Removed.
1283         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Removed.
1284         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Removed.
1285         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Removed.
1286         * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Removed.
1287         * Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Removed.
1288
1289 2017-05-11  Addy Osmani  <addyosmani@gmail.com>
1290
1291         Speedometer: Update the AngularJS implementation to a more recent library version
1292         https://bugs.webkit.org/show_bug.cgi?id=171307
1293
1294         Reviewed by Ryosuke Niwa.
1295
1296         Updates the AngularJS implementation of TodoMVC to 1.4.x
1297
1298         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Removed.
1299         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
1300         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
1301         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
1302         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
1303         * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
1304         * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html:
1305         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js:
1306         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js:
1307         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
1308         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js:
1309         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js:
1310         * Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js:
1311         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js: Added.
1312         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js: Added.
1313         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js: Added.
1314         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/index.css: Added.
1315         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Added.
1316         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/readme.md: Added.
1317         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.css: Added.
1318         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.js: Added.
1319         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Added.
1320         * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/readme.md: Added.
1321         * Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Added.
1322         * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md:
1323         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
1324         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Removed.
1325         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
1326         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
1327         * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
1328         * Speedometer/resources/todomvc/architecture-examples/angularjs/todomvc-index.html: Added.
1329
1330 2017-05-09  Jon Davis  <jond@apple.com>
1331
1332         [ARES6] Improved the running test indicator
1333         https://bugs.webkit.org/show_bug.cgi?id=171400
1334         
1335         Running tests show a triangle before the test title and the titles are white.
1336
1337         Reviewed by Joseph Pecoraro.
1338
1339         * ARES-6/index.html:
1340         * ARES-6/styles.css:
1341         (.test .running):
1342         (.test .running:before):
1343         (.test .indicator): Deleted.
1344         (.test .indicator.running): Deleted.
1345         (@keyframes test-running): Deleted.
1346
1347 2017-05-04  Andy VanWagoner  <thetalecrafter@gmail.com>
1348
1349         [INTL] Add PerformanceTests for Intl objects
1350         https://bugs.webkit.org/show_bug.cgi?id=171695
1351
1352         Reviewed by Benjamin Poulain.
1353
1354         * Intl/collator-compare-all-options.html: Added.
1355         * Intl/collator-compare-default.html: Added.
1356         * Intl/collator-create-all-options.html: Added.
1357         * Intl/collator-create-default.html: Added.
1358         * Intl/datetimeformat-create-all-options.html: Added.
1359         * Intl/datetimeformat-create-default.html: Added.
1360         * Intl/datetimeformat-format-all-options.html: Added.
1361         * Intl/datetimeformat-format-default.html: Added.
1362         * Intl/numberformat-create-all-options.html: Added.
1363         * Intl/numberformat-create-default.html: Added.
1364         * Intl/numberformat-format-all-options.html: Added.
1365         * Intl/numberformat-format-default.html: Added.
1366
1367 2017-04-27  Michael Saboff  <msaboff@apple.com>
1368
1369         Add back tests inadvertently deleted in r205032.
1370
1371         Rubber stamped by Geoffrey Garen.
1372
1373         * MallocBench/run-malloc-benchmarks:
1374
1375 2017-04-25  Myles C. Maxfield  <mmaxfield@apple.com>
1376
1377         Add performance test for FontCache::systemFallbackForCharacters()
1378         https://bugs.webkit.org/show_bug.cgi?id=170842
1379
1380         Reviewed by Tim Horton.
1381
1382         * Layout/word-joiner.html: Added.
1383
1384 2017-04-24  Saam Barati  <sbarati@apple.com>
1385
1386         Add ML to ARES6
1387         https://bugs.webkit.org/show_bug.cgi?id=171206
1388
1389         Rubber stamped by Filip Pizlo.
1390
1391         This patch adds a new test to ARES6 called ML. ML is an implementation of
1392         a feedforward neural network: https://github.com/mljs/feedforward-neural-networks.
1393         It makes heavy use of classes, and does non-trivial matrix math using the
1394         ml-matrix library: https://github.com/mljs/matrix
1395
1396         * ARES-6/about.html:
1397         * ARES-6/cli.js:
1398         * ARES-6/glue.js:
1399         * ARES-6/index.html:
1400         * ARES-6/ml: Added.
1401         * ARES-6/ml/benchmark.js: Added.
1402         * ARES-6/ml/index.js: Added.
1403         * ARES-6/ml_benchmark.js: Added.
1404
1405 2017-04-21  Zalan Bujtas  <zalan@apple.com>
1406
1407         Simple line layout: Add performance test to measure mid-word line breaking with long text.
1408         https://bugs.webkit.org/show_bug.cgi?id=171136
1409
1410         Reviewed by Ryosuke Niwa.
1411
1412         * Layout/simple-line-layout-word-break-long-text.html: Added.
1413
1414 2017-04-17  Ryan Haddad  <ryanhaddad@apple.com>
1415
1416         Unreviewed, rolling out r215366.
1417
1418         This test is failing on performance bots.
1419
1420         Reverted changeset:
1421
1422         "Add performance test for asking the platform for a font for
1423         U+2060 WORD JOINER"
1424         https://bugs.webkit.org/show_bug.cgi?id=170842
1425         http://trac.webkit.org/changeset/215366
1426
1427 2017-04-14  Myles C. Maxfield  <mmaxfield@apple.com>
1428
1429         Add performance test for asking the platform for a font for U+2060 WORD JOINER
1430         https://bugs.webkit.org/show_bug.cgi?id=170842
1431
1432         Reviewed by Tim Horton.
1433
1434         * Layout/word-joiner.html: Added.
1435
1436 2017-04-03  Saam Barati  <sbarati@apple.com>
1437
1438         Add a new test to ARES6
1439         https://bugs.webkit.org/show_bug.cgi?id=170077
1440
1441         Rubber stamped by Filip Pizlo.
1442
1443         This patch adds a new test to ARES6. The test is called Babylon. Babylon is
1444         the JavaScript parser that is part of the Babel transpiler. The test runs
1445         the parser on 4 different JS scripts.
1446
1447         * ARES-6/Babylon: Added.
1448         * ARES-6/Babylon/AUTHORS: Added.
1449         * ARES-6/Babylon/air-blob.js: Added.
1450         (Reg):
1451         (Reg.fromReg):
1452         (Reg.prototype.get index):
1453         (Reg.prototype.get type):
1454         (Reg.prototype.get name):
1455         (Reg.prototype.get isCalleeSave):
1456         (Reg.prototype.get isReg):
1457         (Reg.prototype.hash):
1458         (Reg.prototype.toString):
1459         (Reg.extract):
1460         (Reg.forEachFast):
1461         (Reg.forEach):
1462         (newGPR):
1463         (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
1464         * ARES-6/Babylon/babylon-blob.js: Added.
1465         (export.default.Parser):
1466         (export.default.Parser.prototype.isReservedWord):
1467         (export.default.Parser.prototype.hasPlugin):
1468         (export.default.Parser.prototype.extend):
1469         (export.default.Parser.prototype.loadPlugins):
1470         (export.default.Parser.prototype.parse):
1471         * ARES-6/Babylon/basic-blob.js: Added.
1472         (Basic.NumberApply):
1473         (Basic.Variable):
1474         (Basic.Const):
1475         (Basic.NumberPow):
1476         (Basic.NumberMul):
1477         (Basic.NumberDiv):
1478         (Basic.NumberNeg):
1479         (Basic.NumberAdd):
1480         (Basic.NumberSub):
1481         (Basic.StringVar):
1482         (Basic.Equals):
1483         (Basic.NotEquals):
1484         (Basic.LessThan):
1485         (Basic.GreaterThan):
1486         (Basic.LessEqual):
1487         (Basic.GreaterEqual):
1488         (Basic.GoTo):
1489         (Basic.GoSub):
1490         (Basic.Def):
1491         (Basic.Let):
1492         (Basic.If):
1493         (Basic.Return):
1494         (Basic.Stop):
1495         (Basic.On):
1496         (sideState.shouldStop):
1497         (Basic.For):
1498         (Basic.Next):
1499         (Basic.Print):
1500         (Basic.Input):
1501         (Basic.Read):
1502         (Basic.Restore):
1503         (Basic.Dim):
1504         (Basic.Randomize):
1505         (Basic.End):
1506         (Basic.Program):
1507         * ARES-6/Babylon/benchmark.js: Added.
1508         (this.performance.performance.now.currentTime):
1509         (else.this.preciseTime.currentTime):
1510         (else.currentTime):
1511         (BabylonBenchmark.appendSource):
1512         (BabylonBenchmark):
1513         (BabylonBenchmark.prototype.runIteration.parse):
1514         (BabylonBenchmark.prototype.runIteration.parseExpression):
1515         (BabylonBenchmark.prototype.runIteration):
1516         (runBenchmark):
1517         * ARES-6/Babylon/index.js: Added.
1518         (isIdentifierStart):
1519         (isIdentifierChar):
1520         (isNewLine):
1521         (Position):
1522         (SourceLocation):
1523         (getLineInfo):
1524         (TokenType):
1525         (KeywordTokenType):
1526         (BinopTokenType):
1527         (TokContext):
1528         (tt.parenR.updateContext.tt.braceR.updateContext):
1529         (tt.name.updateContext):
1530         (tt.braceL.updateContext):
1531         (tt.dollarBraceL.updateContext):
1532         (tt.parenL.updateContext):
1533         (tt.incDec.updateContext):
1534         (tt._function.updateContext):
1535         (tt.backQuote.updateContext):
1536         (State.prototype.init):
1537         (State.prototype.curPosition):
1538         (State.prototype.clone):
1539         (State):
1540         (Token):
1541         (codePointToString):
1542         (Tokenizer):
1543         (Tokenizer.prototype.next):
1544         (Tokenizer.prototype.eat):
1545         (Tokenizer.prototype.match):
1546         (Tokenizer.prototype.isKeyword):
1547         (Tokenizer.prototype.lookahead):
1548         (Tokenizer.prototype.setStrict):
1549         (Tokenizer.prototype.curContext):
1550         (Tokenizer.prototype.nextToken):
1551         (Tokenizer.prototype.readToken):
1552         (Tokenizer.prototype.fullCharCodeAtPos):
1553         (Tokenizer.prototype.pushComment):
1554         (Tokenizer.prototype.skipBlockComment):
1555         (Tokenizer.prototype.skipLineComment):
1556         (Tokenizer.prototype.skipSpace):
1557         (Tokenizer.prototype.finishToken):
1558         (Tokenizer.prototype.readToken_dot):
1559         (Tokenizer.prototype.readToken_slash):
1560         (Tokenizer.prototype.readToken_mult_modulo):
1561         (Tokenizer.prototype.readToken_pipe_amp):
1562         (Tokenizer.prototype.readToken_caret):
1563         (Tokenizer.prototype.readToken_plus_min):
1564         (Tokenizer.prototype.readToken_lt_gt):
1565         (Tokenizer.prototype.readToken_eq_excl):
1566         (Tokenizer.prototype.getTokenFromCode):
1567         (Tokenizer.prototype.finishOp):
1568         (Tokenizer.prototype.readRegexp):
1569         (Tokenizer.prototype.readInt):
1570         (Tokenizer.prototype.readRadixNumber):
1571         (Tokenizer.prototype.readNumber):
1572         (Tokenizer.prototype.readCodePoint):
1573         (Tokenizer.prototype.readString):
1574         (Tokenizer.prototype.readTmplToken):
1575         (Tokenizer.prototype.readEscapedChar):
1576         (Tokenizer.prototype.readHexChar):
1577         (Tokenizer.prototype.readWord1):
1578         (Tokenizer.prototype.readWord):
1579         (Tokenizer.prototype.braceIsBlock):
1580         (Tokenizer.prototype.updateContext):
1581         (getOptions):
1582         (prototype.isReservedWord):
1583         (prototype.hasPlugin):
1584         (prototype.extend):
1585         (prototype.loadPlugins):
1586         (prototype.parse):
1587         (last):
1588         (pp.addComment):
1589         (pp.processComment):
1590         (pp.checkPropClash):
1591         (pp.getExpression):
1592         (pp.parseExpression):
1593         (pp.parseMaybeAssign):
1594         (pos.set i):
1595         * ARES-6/Babylon/inspector-blob.js: Added.
1596         (WebInspector.ScriptSyntaxTree):
1597         (WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
1598         (WebInspector.ScriptSyntaxTree.prototype.forEachNode):
1599         (WebInspector.ScriptSyntaxTree.prototype.filter):
1600         (WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
1601         (WebInspector.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange):
1602         (WebInspector.ScriptSyntaxTree.prototype.filterByRange):
1603         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
1604         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
1605         (WebInspector.ScriptSyntaxTree.functionReturnDivot):
1606         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
1607         (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
1608         (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
1609         (WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
1610         (WebInspector.ScriptSyntaxTree.prototype._recurse):
1611         (WebInspector.ScriptSyntaxTree.prototype._recurseArray):
1612         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1613         * ARES-6/about.html:
1614         * ARES-6/babylon_benchmark.js: Added.
1615         * ARES-6/cli.js:
1616         * ARES-6/glue.js:
1617         * ARES-6/index.html:
1618         * ARES-6/results.js:
1619         (Results.prototype.reportResult):
1620         (Results.prototype.reportResult.averageAbovePercentile): Deleted.
1621         * ARES-6/styles.css:
1622         (.test):
1623         (@media only screen and (max-width: 784px)):
1624
1625 2017-03-29  Zalan Bujtas <zalan@apple.com>
1626
1627         [Arabic text] Add whitespace preserve/word wrap performance test.
1628         https://bugs.webkit.org/show_bug.cgi?id=170243
1629
1630         Reviewed by Simon Fraser.
1631
1632         * Layout/ArabicLineLayout-pre-and-wrap.html: Added.
1633
1634 2017-03-08  Yusuke Suzuki  <utatane.tea@gmail.com>
1635
1636         [JSC] Add helpers to run Six Speed to run-jsc-benchmarks
1637         https://bugs.webkit.org/show_bug.cgi?id=169351
1638
1639         Reviewed by Saam Barati.
1640
1641         * SixSpeed/wrappers/wrapper.js: Added.
1642         (assertEqual):
1643         (test):
1644         (jscRun):
1645
1646 2017-03-08  Jon Davis  <jond@apple.com>
1647
1648         Fixed ARES-6 animations for other browsers
1649
1650         Rubber stamped by Saam Barati.
1651
1652         * ARES-6/styles.css:
1653         (.swoop):
1654         (.logo):
1655
1656 2017-03-07  Filip Pizlo  <fpizlo@apple.com>
1657
1658         Revise the ARES-6 explainer text
1659         https://bugs.webkit.org/show_bug.cgi?id=169287
1660
1661         Reviewed by Saam Barati.
1662         
1663         Just did some copy-editing.
1664
1665         * ARES-6/about.html:
1666
1667 2017-03-06  Jon Davis  <jond@apple.com>
1668
1669         Refined the ARES-6 experience
1670         https://bugs.webkit.org/show_bug.cgi?id=169205
1671
1672         Reviewed by Saam Barati.
1673
1674         * ARES-6/about.html: Copied from PerformanceTests/ARES-6/index.html.
1675         * ARES-6/driver.js:
1676         (Driver.prototype.start):
1677         (Driver.prototype._updateIterations):
1678         (Driver):
1679         * ARES-6/index.html:
1680         * ARES-6/stats.js:
1681         (Stats.prototype.toString.span.span):
1682         * ARES-6/styles.css:
1683         (body):
1684         (.swoop):
1685         (p):
1686         (.logo):
1687         (.start):
1688         (.test):
1689         (.test:nth-child(odd)):
1690         (.overall):
1691         (.about h2):
1692         (.button):
1693         (.button:hover):
1694         (.button.return:before):
1695         (@keyframes fade-in):
1696         (@keyframes scale-in):
1697         (@keyframes flicker-in):
1698         (@keyframes wipe-in):
1699         (.flip): Deleted.
1700         (.testing, .about): Deleted.
1701         (.testing): Deleted.
1702         (.about): Deleted.
1703         (#about:target): Deleted.
1704
1705 2017-03-06  Jeremy Jones  <jeremyj@apple.com>
1706
1707         StandardCanPlayThrough.html does not work on iOS.
1708         https://bugs.webkit.org/show_bug.cgi?id=169207
1709
1710         Reviewed by Jer Noble.
1711
1712         On iOS only, add muted=true and autoplay=allowed. The loading policy on iOS requires these attributes to load enough
1713         data to trigger canPlayThrough.
1714
1715         * Media/StandardCanPlayThrough.html:
1716
1717 2017-02-13  Zalan Bujtas <zalan@apple.com>
1718
1719         Simple line layout: Add performance test with text-rendering: optimizeSpeed
1720         https://bugs.webkit.org/show_bug.cgi?id=168248
1721
1722         Reviewed by Simon Fraser.
1723
1724         * Layout/simple-line-layout-with-varying-content-and-optimized-speed.html: Added.
1725
1726 2017-02-10  Zalan Bujtas  <zalan@apple.com>
1727
1728         Mail hangs when removing multiple rows from large table.
1729         https://bugs.webkit.org/show_bug.cgi?id=168103
1730         <rdar://problem/30090186>
1731
1732         Reviewed by Ryosuke Niwa.
1733
1734         * DOM/large-table-edit.html: Added.
1735
1736 2017-02-05  Filip Pizlo  <fpizlo@apple.com>
1737
1738         Beef up the ARES-6 explainer text
1739         https://bugs.webkit.org/show_bug.cgi?id=167867
1740
1741         Reviewed by Saam Barati.
1742         
1743         Added appropriate links.
1744
1745         Added text that explains the subscores.
1746
1747         * ARES-6/index.html:
1748
1749 2017-02-06  Jer Noble  <jer.noble@apple.com>
1750
1751         Playback stalls when a SourceBuffer append causes frame eviction
1752         https://bugs.webkit.org/show_bug.cgi?id=167834
1753
1754         Reviewed by Eric Carlson.
1755
1756         Add an in-page performance test measuring the amount of time required
1757         to append a large amount of media data to a SourceBuffer, and then to
1758         completely remove that data 30s at a time.
1759
1760         Add a microbenchmark for MediaTime which measures the amount of time
1761         required to create a 1M entry std::map and traverse the map 1M times.
1762
1763         * Media/MSERemoveCodedFrames.html: Added.
1764         * Media/media-source-loader.js:
1765         (MediaSourceLoader.prototype.get duration):
1766         * MediaTime/Configurations/Base.xcconfig: Added.
1767         * MediaTime/Configurations/DebugRelease.xcconfig: Added.
1768         * MediaTime/Makefile: Added.
1769         * MediaTime/MediaTime.xcodeproj/project.pbxproj: Added.
1770         * MediaTime/main.cpp: Added.
1771         (performTest):
1772         (test):
1773         (main):
1774         * Skipped:
1775
1776 2017-02-06  Saam Barati  <sbarati@apple.com>
1777
1778         Make ARES-6 work from the CLI again
1779         https://bugs.webkit.org/show_bug.cgi?id=167895
1780
1781         Reviewed by Michael Saboff.
1782
1783         * ARES-6/driver.js:
1784         (Driver.prototype.readyTrigger):
1785         (Driver.prototype.disableTrigger):
1786         * ARES-6/stats.js:
1787         (Stats.prototype.toString.span.span):
1788         (Stats.prototype.toString.return.span):
1789         (Stats.prototype.toString):
1790
1791 2017-02-06  Ryan Haddad  <ryanhaddad@apple.com>
1792
1793         Skip ARES-6 on performance bots
1794         https://bugs.webkit.org/show_bug.cgi?id=167863
1795
1796         Unreviewed test gardening.
1797
1798         ES6SampleBench was renamed to ARES-6, so this should be updated in PerformanceTests/Skipped as well.
1799
1800         * Skipped:
1801
1802 2017-02-05  Filip Pizlo  <fpizlo@apple.com>
1803
1804         Change ES6SampleBench into ARES-6
1805         https://bugs.webkit.org/show_bug.cgi?id=167863
1806
1807         Rubber stamped by Saam Barati.
1808         
1809         This imports changes that Jonathan Davis (jond@apple.com) made to ES6SampleBench to make it look
1810         super awesome. Its now called ARES-6.
1811
1812         * ARES-6: Copied from PerformanceTests/ES6SampleBench.
1813         * ARES-6/ARES-6.svg: Added.
1814         * ARES-6/driver.js:
1815         (Driver):
1816         (Driver.prototype.readyTrigger):
1817         (Driver.prototype.disableTrigger):
1818         (Driver.prototype.start):
1819         (Driver.prototype._updateIterations):
1820         * ARES-6/glue.js:
1821         * ARES-6/index.html:
1822         * ARES-6/results.js:
1823         (Results.prototype.reportRunning):
1824         (Results.prototype.reportDone):
1825         * ARES-6/stats.js:
1826         (Stats.prototype.toString.return.span):
1827         (Stats.prototype.toString.span.span):
1828         (Stats.prototype.toString): Deleted.
1829         * ARES-6/style.css: Removed.
1830         * ARES-6/styles.css: Added.
1831         (html):
1832         (body):
1833         (header,):
1834         (p a):
1835         (p a:hover):
1836         (.flip):
1837         (header):
1838         (h2,):
1839         (p):
1840         (.about h2):
1841         (.logo):
1842         (.start):
1843         (.start.ready):
1844         (.start.ready:hover):
1845         (.start:after):
1846         (.start.ready .testrun):
1847         (.tests):
1848         (.test):
1849         (.overall h2,):
1850         (.test .indicator):
1851         (.test .indicator.running):
1852         (@keyframes test-running):
1853         (100%):
1854         (.score):
1855         (.score label):
1856         (.score .value):
1857         (.score .units):
1858         (.score .margin):
1859         (.overall):
1860         (.overall .score):
1861         (.overall .margin):
1862         (.testing, .about):
1863         (.testing):
1864         (.about):
1865         (#about:target):
1866         (@media only screen and (max-width: 784px)):
1867         * ARES-6/swoop.svg: Added.
1868         * ES6SampleBench: Removed.
1869         * ES6SampleBench/Air: Removed.
1870         * ES6SampleBench/Air/README.md: Removed.
1871         * ES6SampleBench/Air/airjs-tests.yaml: Removed.
1872         * ES6SampleBench/Air/all.js: Removed.
1873         * ES6SampleBench/Air/allocate_stack.js: Removed.
1874         * ES6SampleBench/Air/arg.js: Removed.
1875         * ES6SampleBench/Air/basic_block.js: Removed.
1876         * ES6SampleBench/Air/benchmark.js: Removed.
1877         * ES6SampleBench/Air/code.js: Removed.
1878         * ES6SampleBench/Air/custom.js: Removed.
1879         * ES6SampleBench/Air/frequented_block.js: Removed.
1880         * ES6SampleBench/Air/insertion_set.js: Removed.
1881         * ES6SampleBench/Air/inst.js: Removed.
1882         * ES6SampleBench/Air/liveness.js: Removed.
1883         * ES6SampleBench/Air/make_dist.sh: Removed.
1884         * ES6SampleBench/Air/opcode.js: Removed.
1885         * ES6SampleBench/Air/payload-airjs-ACLj8C.js: Removed.
1886         * ES6SampleBench/Air/payload-gbemu-executeIteration.js: Removed.
1887         * ES6SampleBench/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
1888         * ES6SampleBench/Air/payload-typescript-scanIdentifier.js: Removed.
1889         * ES6SampleBench/Air/reg.js: Removed.
1890         * ES6SampleBench/Air/stack_slot.js: Removed.
1891         * ES6SampleBench/Air/stress-test.js: Removed.
1892         * ES6SampleBench/Air/strip-hash.rb: Removed.
1893         * ES6SampleBench/Air/symbols.js: Removed.
1894         * ES6SampleBench/Air/test.html: Removed.
1895         * ES6SampleBench/Air/test.js: Removed.
1896         * ES6SampleBench/Air/tmp.js: Removed.
1897         * ES6SampleBench/Air/tmp_base.js: Removed.
1898         * ES6SampleBench/Air/util.js: Removed.
1899         * ES6SampleBench/Basic: Removed.
1900         * ES6SampleBench/Basic/ast.js: Removed.
1901         * ES6SampleBench/Basic/basic-tests.yaml: Removed.
1902         * ES6SampleBench/Basic/basic.js: Removed.
1903         * ES6SampleBench/Basic/benchmark.js: Removed.
1904         * ES6SampleBench/Basic/caseless_map.js: Removed.
1905         * ES6SampleBench/Basic/lexer.js: Removed.
1906         * ES6SampleBench/Basic/number.js: Removed.
1907         * ES6SampleBench/Basic/parser.js: Removed.
1908         * ES6SampleBench/Basic/random.js: Removed.
1909         * ES6SampleBench/Basic/state.js: Removed.
1910         * ES6SampleBench/Basic/stress-test.js: Removed.
1911         * ES6SampleBench/Basic/test.html: Removed.
1912         * ES6SampleBench/Basic/test.js: Removed.
1913         * ES6SampleBench/Basic/util.js: Removed.
1914         * ES6SampleBench/air_benchmark.js: Removed.
1915         * ES6SampleBench/basic_benchmark.js: Removed.
1916         * ES6SampleBench/cli.js: Removed.
1917         * ES6SampleBench/driver.js: Removed.
1918         * ES6SampleBench/glue.js: Removed.
1919         * ES6SampleBench/index.html: Removed.
1920         * ES6SampleBench/results.js: Removed.
1921         * ES6SampleBench/stats.js: Removed.
1922         * ES6SampleBench/style.css: Removed.
1923
1924 2017-02-05  Zalan Bujtas  <zalan@apple.com>
1925
1926         Simple line layout: Add performance test with varying string and font-size to minimize width-cache hit.
1927         https://bugs.webkit.org/show_bug.cgi?id=167859
1928         <rdar://problem/30368070>
1929
1930         Reviewed by Antti Koivisto.
1931
1932         This is in preparation for webkit.org/b/167843.
1933
1934         * Layout/simple-line-layout-with-varying-content.html: Added.
1935
1936 2017-01-16  Filip Pizlo  <fpizlo@apple.com>
1937
1938         Add framerate baselines to the splay-detail test
1939         https://bugs.webkit.org/show_bug.cgi?id=167659
1940
1941         Reviewed by Geoffrey Garen.
1942
1943         * JetStream/Octane2/splay-detail.html:
1944
1945 2017-01-31  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1946
1947         [EFL][GTK] Skip some IndexedDB tests that time out on the Perf bots.
1948
1949         Unreviewed performance test gardening.
1950
1951         * Skipped:
1952
1953 2017-01-30  Zalan Bujtas  <zalan@apple.com>
1954
1955         Simple line layout: Small tweaks to improve performance.
1956         https://bugs.webkit.org/show_bug.cgi?id=167611
1957         <rdar://problem/30274294>
1958
1959         Reviewed by Simon Fraser.
1960
1961         * Layout/simple-line-layout-non-repeating-text.html: Added.
1962
1963 2017-01-13  Said Abou-Hallawa  <sabouhallawa@apple.com>
1964
1965         26 MotionMark performance tests failing
1966         https://bugs.webkit.org/show_bug.cgi?id=166854
1967
1968         Reviewed by Ryosuke Niwa.
1969         
1970         Skip running MotionMark on WebKit perf bots.
1971
1972         * Skipped:
1973
1974 2017-01-06  Said Abou-Hallawa  <sabouhallawa@apple.com>
1975
1976         Rename the directory and the files of MotionMark from Animometer to MotionMark
1977         https://bugs.webkit.org/show_bug.cgi?id=166659
1978
1979         Reviewed by Jon Lee.
1980         
1981         Rename the directory and the files of the benchmark to its new name.
1982
1983         * MotionMark/developer.html: Renamed from PerformanceTests/Animometer/developer.html.
1984         * MotionMark/index.html: Renamed from PerformanceTests/Animometer/index.html.
1985         * MotionMark/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/d3.min.js.
1986         * MotionMark/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/graph.js.
1987         * MotionMark/resources/debug-runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.css.
1988         * MotionMark/resources/debug-runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.js.
1989         * MotionMark/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/tests.js.
1990         * MotionMark/resources/extensions.js: Renamed from PerformanceTests/Animometer/resources/extensions.js.
1991         * MotionMark/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/runner/benchmark-runner.js.
1992         * MotionMark/resources/runner/crystal.svg: Renamed from PerformanceTests/Animometer/resources/runner/crystal.svg.
1993         * MotionMark/resources/runner/lines.svg: Renamed from PerformanceTests/Animometer/resources/runner/lines.svg.
1994         * MotionMark/resources/runner/logo.svg: Renamed from PerformanceTests/Animometer/resources/runner/logo.svg.
1995         * MotionMark/resources/runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/runner/animometer.css.
1996         * MotionMark/resources/runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/runner/animometer.js.
1997         * MotionMark/resources/runner/tests.js: Renamed from PerformanceTests/Animometer/resources/runner/tests.js.
1998         * MotionMark/resources/statistics.js: Renamed from PerformanceTests/Animometer/resources/statistics.js.
1999         * MotionMark/resources/strings.js: Renamed from PerformanceTests/Animometer/resources/strings.js.
2000         * MotionMark/tests/3d/resources/webgl.js: Renamed from PerformanceTests/Animometer/tests/3d/resources/webgl.js.
2001         * MotionMark/tests/3d/webgl.html: Renamed from PerformanceTests/Animometer/tests/3d/webgl.html.
2002         * MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-images.html.
2003         * MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html.
2004         * MotionMark/tests/bouncing-particles/bouncing-css-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-images.html.
2005         * MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-shapes.html.
2006         * MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-images.html.
2007         * MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-shapes.html.
2008         * MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-tagged-images.html.
2009         * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js.
2010         * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js.
2011         * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js.
2012         * MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-images.js.
2013         * MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js.
2014         * MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js.
2015         * MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js.
2016         * MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js.
2017         * MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js.
2018         * MotionMark/tests/bouncing-particles/resources/image1.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image1.jpg.
2019         * MotionMark/tests/bouncing-particles/resources/image2.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image2.jpg.
2020         * MotionMark/tests/bouncing-particles/resources/image3.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image3.jpg.
2021         * MotionMark/tests/bouncing-particles/resources/image4.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image4.jpg.
2022         * MotionMark/tests/bouncing-particles/resources/image5.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image5.jpg.
2023         * MotionMark/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/dom/compositing-transforms.html.
2024         * MotionMark/tests/dom/focus.html: Renamed from PerformanceTests/Animometer/tests/dom/focus.html.
2025         * MotionMark/tests/dom/leaves.html: Renamed from PerformanceTests/Animometer/tests/dom/leaves.html.
2026         * MotionMark/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/dom/particles.html.
2027         * MotionMark/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/compositing-transforms.js.
2028         * MotionMark/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/dom-particles.js.
2029         * MotionMark/tests/dom/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/focus.js.
2030         * MotionMark/tests/dom/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/leaves.js.
2031         * MotionMark/tests/master/canvas-stage.html: Renamed from PerformanceTests/Animometer/tests/master/canvas-stage.html.
2032         * MotionMark/tests/master/focus.html: Renamed from PerformanceTests/Animometer/tests/master/focus.html.
2033         * MotionMark/tests/master/image-data.html: Renamed from PerformanceTests/Animometer/tests/master/image-data.html.
2034         * MotionMark/tests/master/leaves.html: Renamed from PerformanceTests/Animometer/tests/master/leaves.html.
2035         * MotionMark/tests/master/multiply.html: Renamed from PerformanceTests/Animometer/tests/master/multiply.html.
2036         * MotionMark/tests/master/resources/canvas-stage.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-stage.js.
2037         * MotionMark/tests/master/resources/canvas-tests.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-tests.js.
2038         * MotionMark/tests/master/resources/compass.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/compass.svg.
2039         * MotionMark/tests/master/resources/compass100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/compass100.png.
2040         * MotionMark/tests/master/resources/console.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/console.svg.
2041         * MotionMark/tests/master/resources/console100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/console100.png.
2042         * MotionMark/tests/master/resources/contribute.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute.svg.
2043         * MotionMark/tests/master/resources/contribute100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute100.png.
2044         * MotionMark/tests/master/resources/debugger.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger.svg.
2045         * MotionMark/tests/master/resources/debugger100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger100.png.
2046         * MotionMark/tests/master/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/master/resources/focus.js.
2047         * MotionMark/tests/master/resources/image-data.js: Renamed from PerformanceTests/Animometer/tests/master/resources/image-data.js.
2048         * MotionMark/tests/master/resources/inspector.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector.svg.
2049         * MotionMark/tests/master/resources/inspector100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector100.png.
2050         * MotionMark/tests/master/resources/layout.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/layout.svg.
2051         * MotionMark/tests/master/resources/layout100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/layout100.png.
2052         * MotionMark/tests/master/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/master/resources/leaves.js.
2053         * MotionMark/tests/master/resources/multiply.js: Renamed from PerformanceTests/Animometer/tests/master/resources/multiply.js.
2054         * MotionMark/tests/master/resources/particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/particles.js.
2055         * MotionMark/tests/master/resources/performance.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/performance.svg.
2056         * MotionMark/tests/master/resources/performance100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/performance100.png.
2057         * MotionMark/tests/master/resources/script.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/script.svg.
2058         * MotionMark/tests/master/resources/script100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/script100.png.
2059         * MotionMark/tests/master/resources/shortcuts.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts.svg.
2060         * MotionMark/tests/master/resources/shortcuts100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts100.png.
2061         * MotionMark/tests/master/resources/standards.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/standards.svg.
2062         * MotionMark/tests/master/resources/standards100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/standards100.png.
2063         * MotionMark/tests/master/resources/storage.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/storage.svg.
2064         * MotionMark/tests/master/resources/storage100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/storage100.png.
2065         * MotionMark/tests/master/resources/styles.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/styles.svg.
2066         * MotionMark/tests/master/resources/styles100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/styles100.png.
2067         * MotionMark/tests/master/resources/svg-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/svg-particles.js.
2068         * MotionMark/tests/master/resources/text.js: Renamed from PerformanceTests/Animometer/tests/master/resources/text.js.
2069         * MotionMark/tests/master/resources/timeline.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline.svg.
2070         * MotionMark/tests/master/resources/timeline100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline100.png.
2071         * MotionMark/tests/master/svg-particles.html: Renamed from PerformanceTests/Animometer/tests/master/svg-particles.html.
2072         * MotionMark/tests/master/text.html: Renamed from PerformanceTests/Animometer/tests/master/text.html.
2073         * MotionMark/tests/resources/main.js: Renamed from PerformanceTests/Animometer/tests/resources/main.js.
2074         * MotionMark/tests/resources/math.js: Renamed from PerformanceTests/Animometer/tests/resources/math.js.
2075         * MotionMark/tests/resources/stage.css: Renamed from PerformanceTests/Animometer/tests/resources/stage.css.
2076         * MotionMark/tests/resources/star.svg: Renamed from PerformanceTests/Animometer/tests/resources/star.svg.
2077         * MotionMark/tests/resources/yin-yang.png: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.png.
2078         * MotionMark/tests/resources/yin-yang.svg: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.svg.
2079         * MotionMark/tests/simple/resources/simple-canvas-paths.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas-paths.js.
2080         * MotionMark/tests/simple/resources/simple-canvas.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas.js.
2081         * MotionMark/tests/simple/resources/tiled-canvas-image.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/tiled-canvas-image.js.
2082         * MotionMark/tests/simple/simple-canvas-paths.html: Renamed from PerformanceTests/Animometer/tests/simple/simple-canvas-paths.html.
2083         * MotionMark/tests/simple/tiled-canvas-image.html: Renamed from PerformanceTests/Animometer/tests/simple/tiled-canvas-image.html.
2084         * MotionMark/tests/template/resources/template-canvas.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-canvas.js.
2085         * MotionMark/tests/template/resources/template-css.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-css.js.
2086         * MotionMark/tests/template/resources/template-svg.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-svg.js.
2087         * MotionMark/tests/template/template-canvas.html: Renamed from PerformanceTests/Animometer/tests/template/template-canvas.html.
2088         * MotionMark/tests/template/template-css.html: Renamed from PerformanceTests/Animometer/tests/template/template-css.html.
2089         * MotionMark/tests/template/template-svg.html: Renamed from PerformanceTests/Animometer/tests/template/template-svg.html.
2090
2091 2016-12-13  Brady Eidson  <beidson@apple.com>
2092
2093         Add a PerfTest targeting IDBObjectStore.get().
2094         https://bugs.webkit.org/show_bug.cgi?id=165816
2095
2096         Reviewed by Alex Christensen.
2097
2098         * IndexedDB/objectstore-get.html: Added.
2099
2100 2016-12-13  Brady Eidson  <beidson@apple.com>
2101
2102         Add a PerfTest targeting IDBIndex.get().
2103         https://bugs.webkit.org/show_bug.cgi?id=165803
2104
2105         Reviewed by Alex Christensen.
2106
2107         * IndexedDB/index-get.html: Added.
2108
2109 2016-12-12  Brady Eidson  <beidson@apple.com>
2110
2111         More IndexedDB perf tests.
2112         https://bugs.webkit.org/show_bug.cgi?id=165634
2113
2114         Reviewed by Sam Weinig.
2115
2116         * IndexedDB/index-multientry.html:
2117         * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
2118         * IndexedDB/large-number-of-inserts.html: Added.
2119         * IndexedDB/objectstore-cursor.html: Added. Runtime cut in 1/4th compared to r209672.
2120
2121         * resources/runner.js:
2122
2123 2016-12-12  Commit Queue  <commit-queue@webkit.org>
2124
2125         Unreviewed, rolling out r209672.
2126         https://bugs.webkit.org/show_bug.cgi?id=165766
2127
2128         IndexedDB/objectstore-cursor.html perf test always times out
2129         (Requested by ap on #webkit).
2130
2131         Reverted changeset:
2132
2133         "More IndexedDB perf tests."
2134         https://bugs.webkit.org/show_bug.cgi?id=165634
2135         http://trac.webkit.org/changeset/209672
2136
2137 2016-12-10  Brady Eidson  <beidson@apple.com>
2138
2139         More IndexedDB perf tests.
2140         https://bugs.webkit.org/show_bug.cgi?id=165634
2141
2142         Reviewed by Sam Weinig.
2143
2144         * IndexedDB/index-multientry.html:
2145         * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
2146         * IndexedDB/large-number-of-inserts.html: Added.
2147         * IndexedDB/objectstore-cursor.html: Added.
2148         
2149         * resources/runner.js: Add "track responsiveness" functionality to PerfTestRunner.
2150
2151 2016-12-06  Filip Pizlo  <fpizlo@apple.com>
2152
2153         Concurrent GC should be stable enough to land enabled
2154         https://bugs.webkit.org/show_bug.cgi?id=164990
2155
2156         Reviewed by Geoffrey Garen.
2157         
2158         Made CDjs more configurable and refined the "large.js" configuration. I was using that one and
2159         the new "long.js" configuration to tune concurrent eden GCs.
2160         
2161         Added a new way of running Splay in browser, which using chartjs to plot the execution times of
2162         2000 iterations. This includes the minified chartjs.
2163
2164         * JetStream/Octane2/splay-detail.html: Added.
2165         * JetStream/cdjs/benchmark.js:
2166         (benchmarkImpl):
2167         (benchmark):
2168         * JetStream/cdjs/long.js: Added.
2169
2170 2016-12-07  Brady Eidson  <beidson@apple.com>
2171
2172         Add IDB perf tests stressing key size.
2173         https://bugs.webkit.org/show_bug.cgi?id=165567
2174
2175         Reviewed by Alex Christensen.
2176
2177         * IndexedDB/large-array-keys.html: Added.
2178         * IndexedDB/large-binary-keys.html: Added.
2179         * IndexedDB/large-string-keys.html: Added.
2180
2181 2016-12-05  Brady Eidson  <beidson@apple.com>
2182
2183         Add an IndexedDB perf test to PerformanceTests.
2184         https://bugs.webkit.org/show_bug.cgi?id=165430
2185
2186         Reviewed by Alex Christensen.
2187
2188         * IndexedDB/index-multientry.html: Added.
2189
2190 2016-12-02  Filip Pizlo  <fpizlo@apple.com>
2191
2192         ES6SampleBench should report an average for Steady State so that all of the numbers are comparable
2193         https://bugs.webkit.org/show_bug.cgi?id=165325
2194
2195         Reviewed by Saam Barati.
2196
2197         This makes all of the numbers that ES6SampleBench reports comparable to each other: they all speak of the time
2198         it took to run an iteration of something.
2199
2200         * ES6SampleBench/results.js:
2201         (Results.prototype.reportResult):
2202
2203 2016-11-18  Jer Noble  <jer.noble@apple.com>
2204
2205         Add some performance tests for various aspects of media loading and playback.
2206         https://bugs.webkit.org/show_bug.cgi?id=164977
2207
2208         Reviewed by Darin Adler.
2209
2210         Add new tests for a few aspects of media playback; namely: how quickly  media elements fire
2211         the "canplaythrough" event when all data is immediately available, how quickly HLS playback
2212         switches resolutions, and at what playback rate MSE-backed video can play without dropping
2213         frames. Skip these tests by default, as they're not runnable on all ports, and they require
2214         a webserver (run-webkit-httpd) to complete on macOS.
2215
2216         * Media/HLSCanPlayThrough.html: Added.
2217         * Media/HLSGearChange.html: Added.
2218         * Media/MSECanPlayThrough.html: Added.
2219         * Media/MSEPlaybackRate.html: Added.
2220         * Media/StandardCanPlayThrough.html: Added.
2221         * Media/hls/1080p/iframe_index.m3u8: Added.
2222         * Media/hls/1080p/prog_index.m3u8: Added.
2223         * Media/hls/1080p/test.ts: Added.
2224         * Media/hls/480p/iframe_index.m3u8: Added.
2225         * Media/hls/480p/prog_index.m3u8: Added.
2226         * Media/hls/480p/test.ts: Added.
2227         * Media/hls/720p/iframe_index.m3u8: Added.
2228         * Media/hls/720p/prog_index.m3u8: Added.
2229         * Media/hls/720p/test.ts: Added.
2230         * Media/hls/720p/test.ts.back: Added.
2231         * Media/hls/index.m3u8: Added.
2232         * Media/media-source-loader.js: Added.
2233         (MediaSourceLoader):
2234         (MediaSourceLoader.prototype.loadManifest):
2235         (MediaSourceLoader.prototype.loadManifestSucceeded):
2236         (MediaSourceLoader.prototype.loadManifestFailed):
2237         (MediaSourceLoader.prototype.loadMediaData):
2238         (MediaSourceLoader.prototype.loadMediaDataSucceeded):
2239         (MediaSourceLoader.prototype.loadMediaDataFailed):
2240         (MediaSourceLoader.prototype.get type):
2241         (MediaSourceLoader.prototype.get duration):
2242         (MediaSourceLoader.prototype.get initSegment):
2243         (MediaSourceLoader.prototype.get mediaSegmentsLength):
2244         (MediaSourceLoader.prototype.mediaSegments):
2245         (MediaSourceLoader.prototype.get everyMediaSegment):
2246         * Media/test-fragmented-video.json: Added.
2247         * Media/test-fragmented-video.mp4: Added.
2248         * Media/test.mp4: Added.
2249         * Skipped:
2250
2251 2016-11-18  Filip Pizlo  <fpizlo@apple.com>
2252
2253         Concurrent GC should be able to run splay in debug mode and earley/raytrace in release mode with no perf regression
2254         https://bugs.webkit.org/show_bug.cgi?id=164282
2255
2256         Reviewed by Geoffrey Garen and Oliver Hunt.
2257         
2258         CDjs is a fun benchmark for stressing concurrent GCs, but to really give the GC a good
2259         workout you need to increase the amount of work that the test does. This adds a second
2260         configuration of the benchmark that has more aircraft. It uses much more memory and causes us
2261         to do more GCs and those GCs take longer.
2262
2263         * JetStream/cdjs/benchmark.js:
2264         (benchmarkImpl):
2265         (benchmark):
2266         * JetStream/cdjs/large.js: Added.
2267
2268 2016-11-14  Filip Pizlo  <fpizlo@apple.com>
2269
2270         Unreviewed, revert unintended change.
2271
2272         * ES6SampleBench/Air/benchmark.js:
2273
2274 2016-10-03  Saam Barati  <sbarati@apple.com>
2275
2276         MapHash should speculate on the type of its child node
2277         https://bugs.webkit.org/show_bug.cgi?id=161922
2278
2279         Reviewed by Filip Pizlo.
2280
2281         I gave the main generator a name so it's easier to see what
2282         it is when using the sampling profiler.
2283
2284         * ES6SampleBench/Basic/ast.js:
2285         (Basic.Program):
2286
2287 2016-09-19  Sergio Villar Senin  <svillar@igalia.com>
2288
2289         [css-grid] Remove the x2 computation of row sizes with indefinite heights
2290         https://bugs.webkit.org/show_bug.cgi?id=162150
2291
2292         Reviewed by Darin Adler.
2293
2294         Added a new test case which checks the layout performance of grids inside other grids, i.e,
2295         grids acting both as grid container and grid item.
2296
2297         * Layout/nested-grid.html: Added.
2298
2299 2016-09-09  Simon Fraser  <simon.fraser@apple.com>
2300
2301         Perf test Animation/css-accelerated-animation.html failing
2302         https://bugs.webkit.org/show_bug.cgi?id=161795
2303
2304         Skip Animation/css-accelerated-animation.html since this only works as a MobileSafari
2305         perf test.
2306
2307         * Skipped:
2308
2309 2016-09-08  Simon Fraser  <simon.fraser@apple.com>
2310
2311         Add a content-animation test with accelerated CSS animations
2312         https://bugs.webkit.org/show_bug.cgi?id=161776
2313
2314         Reviewed by Dean Jackson.
2315
2316         Add a test that measures the frame rate of accelerated CSS animations.
2317
2318         This is like css-animation.html (which animates 'left' and 'top') but animates
2319         transforms instead. In order to get animation in X and Y we make two nested elements
2320         and set transformX() on one, and transformY() on the other.
2321
2322         * Animation/css-accelerated-animation.html: Added.
2323
2324 2016-08-23  Saam Barati  <sbarati@apple.com>
2325
2326         It should be easy to run ES6SampleBench from the jsc shell
2327         https://bugs.webkit.org/show_bug.cgi?id=161085
2328
2329         Reviewed by Yusuke Suzuki.
2330
2331         This patch makes ES6 sample bench runnable through the `jsc` shell.
2332         To do that, you need to be in the PerformanceTests/ES6SampleBench
2333         directory and run `jsc cli.js`. To make this work, the benchmark
2334         is now aware of being run in two modes: via the browser, and via
2335         the shell. Each entry point will set a variable `isInBrowser`,
2336         and the benchmark will do different things based on if that
2337         variable is true or false.
2338
2339         * ES6SampleBench/Air/benchmark.js:
2340         * ES6SampleBench/Air/stress-test.js:
2341         * ES6SampleBench/Basic/benchmark.js:
2342         (runBenchmark):
2343         * ES6SampleBench/Basic/stress-test.js:
2344         * ES6SampleBench/air_benchmark.js:
2345         * ES6SampleBench/basic_benchmark.js:
2346         * ES6SampleBench/cli.js: Added.
2347         (return.doRun):
2348         (makeBenchmarkRunner):
2349         * ES6SampleBench/driver.js:
2350         (Driver):
2351         (Driver.prototype._recomputeSummary):
2352         (Driver.prototype._iterate.window.setTimeout):
2353         (Driver.prototype._iterate):
2354         (Driver.prototype._updateIterations):
2355         * ES6SampleBench/glue.js:
2356         (reportResult):
2357         * ES6SampleBench/index.html:
2358         * ES6SampleBench/results.js:
2359         (Results):
2360         (Results.prototype.reportRunning):
2361         (Results.prototype.reportDone):
2362         (Results.prototype.reportError):
2363         * ES6SampleBench/stats.js:
2364         (Stats):
2365         (Stats.prototype.toString):
2366         (Stats.prototype._update):
2367
2368 2016-08-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
2369
2370         Add an option to run the MotionMark tests with classic tile size (512x512)
2371         https://bugs.webkit.org/show_bug.cgi?id=160371
2372
2373         Reviewed by Darin Adler.
2374
2375         Setting the body to large size (3000x3000) and overflow to scroll forces
2376         the classic tile size (512x512). This option does not affect the canvas
2377         tests because the canvas is displayed on one tile regardless of its size.
2378
2379         * Animometer/developer.html:
2380         * Animometer/resources/debug-runner/animometer.css:
2381         (body.showing-test-container.tiles-big):
2382         (body.showing-test-container.tiles-classic):
2383         * Animometer/resources/debug-runner/animometer.js:
2384         * Animometer/resources/runner/animometer.js:
2385         (window.benchmarkController.startBenchmark):
2386
2387 2016-06-29  Filip Pizlo  <fpizlo@apple.com>
2388
2389         Generators violate bytecode liveness validation
2390         https://bugs.webkit.org/show_bug.cgi?id=159279
2391
2392         Reviewed by Yusuke Suzuki.
2393
2394         Add Basic to our test harness.
2395
2396         Also made some cosmetic changes to the benchmark harness.
2397
2398         * ES6SampleBench/Basic/basic-tests.yaml: Added.
2399         * ES6SampleBench/Basic/stress-test.js: Added.
2400         (preciseTime):
2401         * ES6SampleBench/driver.js:
2402         (Driver):
2403         (Driver.prototype.start):
2404         (Driver.prototype.reportError):
2405         * ES6SampleBench/glue.js:
2406         * ES6SampleBench/index.html:
2407
2408 2016-06-28  Filip Pizlo  <fpizlo@apple.com>
2409
2410         ES6SampleBench should have a harness
2411         https://bugs.webkit.org/show_bug.cgi?id=159246
2412
2413         Reviewed by Saam Barati.
2414         
2415         This adds a simple web harness for ES6SampleBench. It runs Air and Basic 10 times for 200
2416         iterations each and reports three metrics:
2417         
2418         First iteration: the time it takes for the first iteration to run. This is the first
2419         iteration after the benchmark is loaded into the iframe, so it's representative of what
2420         would happen if one of these workloads only ran for a short time.
2421         
2422         Worst 2%: of the last 199 iterations, the average of the worst 2% iterations. If code like
2423         any of these workloads was used in an important event handler, you'd want that code to run
2424         well in the worst case in addition to having great throughput.
2425         
2426         Steady state: the total of the last 199 iterations. This is representative of what would
2427         happen if you ran code like this for a long time.
2428         
2429         The total score is the geomean of the firstIteration/worstCase/steadyState numbers of the
2430         two benchmarks.
2431         
2432         The harness does statistics using Student's T-distribution confidence intervals.
2433
2434         * ES6SampleBench/Basic/benchmark.js:
2435         (Benchmark):
2436         * ES6SampleBench/air_benchmark.js: Added.
2437         * ES6SampleBench/basic_benchmark.js: Added.
2438         * ES6SampleBench/driver.js: Added.
2439         (Driver):
2440         (Driver.prototype.addBenchmark):
2441         (Driver.prototype.start):
2442         (Driver.prototype.reportResult):
2443         (Driver.prototype.reportError):
2444         (Driver.prototype._recomputeSummary.Geomean):
2445         (Driver.prototype._recomputeSummary.Geomean.prototype.add):
2446         (Driver.prototype._recomputeSummary.Geomean.prototype.get result):
2447         (Driver.prototype._recomputeSummary):
2448         (Driver.prototype._iterate):
2449         (Driver.prototype._updateIterations):
2450         * ES6SampleBench/glue.js: Added.
2451         * ES6SampleBench/index.html: Added.
2452         * ES6SampleBench/results.js: Added.
2453         (Results):
2454         (Results.prototype.get benchmark):
2455         (Results.prototype.reset):
2456         (Results.prototype.reportRunning):
2457         (Results.prototype.reportDone):
2458         (Results.prototype.reportResult.averageAbovePercentile):
2459         (Results.prototype.reportResult):
2460         (Results.prototype.reportError):
2461         * ES6SampleBench/stats.js: Added.
2462         (Stats):
2463         (Stats.prototype.reset):
2464         (Stats.prototype.add):
2465         (Stats.prototype.get numIterations):
2466         (Stats.prototype.valueForIteration):
2467         (Stats.get result.tDist):
2468         (Stats.prototype.get result):
2469         (Stats.prototype.toString):
2470         (Stats.prototype._update):
2471         * ES6SampleBench/style.css: Added.
2472         (body):
2473         (body, th, tr):
2474         (h1, h2, h3, h4):
2475         (h1):
2476         (h2):
2477         (h3):
2478         (hr):
2479         (address):
2480         (img):
2481         (.underline):
2482         (ol.loweralpha):
2483         (ol.upperalpha):
2484         (ol.lowerroman):
2485         (ol.upperroman):
2486         (ol.arabic):
2487         (.banner-link:link, .banner-link:visited):
2488         (:link, :visited):
2489         (h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited):
2490         (.anchor:link, .anchor:visited):
2491         (* > .anchor:link, * > .anchor:visited):
2492         (span:hover .anchor):
2493         (a.forbidden, span.forbidden):
2494         (a.missing:hover):
2495         (a.closed:link, a.closed:visited, span.closed):
2496         (pre):
2497         (div.code):
2498         (div.code pre):
2499         (dt):
2500         (dd):
2501         (dd:last-child):
2502         (.site-logo):
2503         (.site-logo .tagline):
2504         (table):
2505         (#contents):
2506         (p):
2507         (p:last-child):
2508         (th):
2509         (td):
2510
2511 2016-06-28  Jon Lee  <jonlee@apple.com>
2512
2513         Update focus test
2514         https://bugs.webkit.org/show_bug.cgi?id=159242
2515         rdar://problem/27070007
2516
2517         Reviewed by Dean Jackson.
2518         Provisionally reviewed by Said Abou-Hallawa.
2519
2520         Move previous test to dom suite, and update the test for better reporting of frame rate, although
2521         it uses a different rendering path.
2522
2523         * Animometer/resources/debug-runner/tests.js: Add to dom suite.
2524         * Animometer/tests/dom/focus.html: Copied from PerformanceTests/Animometer/tests/master/focus.html.
2525         * Animometer/tests/dom/resources/focus.js: Copied from PerformanceTests/Animometer/tests/master/resources/focus.js.
2526         * Animometer/tests/master/focus.html: Remove center element.
2527         * Animometer/tests/master/resources/focus.js: Use narrower size range with smaller particles. Remove the
2528         container elements. Inline getBlurValue and getOpacityValue since they are only called once.
2529
2530 2016-06-28  Filip Pizlo  <fpizlo@apple.com>
2531
2532         Move Air.js and Basic into ES6SampleBench
2533
2534         Rubber stamped by Geoffrey Garen.
2535         
2536         We want to group our ES6 benchmarks together, and eventually, we want to give them a
2537         common harness.
2538
2539         * Air.js: Removed.
2540         * Air.js/README.md: Removed.
2541         * Air.js/airjs-tests.yaml: Removed.
2542         * Air.js/all.js: Removed.
2543         * Air.js/allocate_stack.js: Removed.
2544         * Air.js/arg.js: Removed.
2545         * Air.js/basic_block.js: Removed.
2546         * Air.js/benchmark.js: Removed.
2547         * Air.js/code.js: Removed.
2548         * Air.js/custom.js: Removed.
2549         * Air.js/frequented_block.js: Removed.
2550         * Air.js/insertion_set.js: Removed.
2551         * Air.js/inst.js: Removed.
2552         * Air.js/liveness.js: Removed.
2553         * Air.js/make_dist.sh: Removed.
2554         * Air.js/opcode.js: Removed.
2555         * Air.js/payload-airjs-ACLj8C.js: Removed.
2556         * Air.js/payload-gbemu-executeIteration.js: Removed.
2557         * Air.js/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
2558         * Air.js/payload-typescript-scanIdentifier.js: Removed.
2559         * Air.js/reg.js: Removed.
2560         * Air.js/stack_slot.js: Removed.
2561         * Air.js/stress-test.js: Removed.
2562         * Air.js/strip-hash.rb: Removed.
2563         * Air.js/symbols.js: Removed.
2564         * Air.js/test.html: Removed.
2565         * Air.js/test.js: Removed.
2566         * Air.js/tmp.js: Removed.
2567         * Air.js/tmp_base.js: Removed.
2568         * Air.js/util.js: Removed.
2569         * Basic: Removed.
2570         * Basic/ast.js: Removed.
2571         * Basic/basic.js: Removed.
2572         * Basic/benchmark.js: Removed.
2573         * Basic/caseless_map.js: Removed.
2574         * Basic/lexer.js: Removed.
2575         * Basic/number.js: Removed.
2576         * Basic/parser.js: Removed.
2577         * Basic/random.js: Removed.
2578         * Basic/state.js: Removed.
2579         * Basic/test.html: Removed.
2580         * Basic/test.js: Removed.
2581         * Basic/util.js: Removed.
2582         * ES6SampleBench: Added.
2583         * ES6SampleBench/Air: Copied from PerformanceTests/Air.js.
2584         * ES6SampleBench/Basic: Copied from PerformanceTests/Basic.
2585         * Skipped:
2586
2587 2016-06-24  Filip Pizlo  <fpizlo@apple.com>
2588
2589         Add a ES6 generator benchmark
2590         https://bugs.webkit.org/show_bug.cgi?id=159101
2591
2592         Rubber stamped by Keith Miller.
2593         
2594         This adds a Basic interpreter loosely based on ECMA-55:
2595         
2596         http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf
2597         
2598         It includes a lexer that is a generator, a parser that uses regular expressions, and an AST
2599         walk interpreter where the walking functions for statements are generators that call each
2600         other with yield*. This enables the interpreter to look like an AST walk even though it can
2601         yield at INPUT and PRINT statements.
2602         
2603         This also uses for-of, classes, Map, and WeakMap. It also uses deprecated-but-awesome RegExp
2604         features like RegExp.lastMatch and RegExp.rightContext. I did it that way because this is
2605         how I've always written lexers in dynamic languages; see offlineasm's lex() method in
2606         parser.rb for example.
2607         
2608         The benchmark runs a handful of simple Basic programs. The longest-running one computes
2609         prime numbers.
2610         
2611         Includes a command-line and web harness. On my machine it runs in 2-3 seconds.
2612
2613         * Basic: Added.
2614         * Basic/ast.js: Added.
2615         (Basic.NumberApply):
2616         (Basic.Variable):
2617         (Basic.Const):
2618         (Basic.NumberPow):
2619         (Basic.NumberMul):
2620         (Basic.NumberDiv):
2621         (Basic.NumberNeg):
2622         (Basic.NumberAdd):
2623         (Basic.NumberSub):
2624         (Basic.StringVar):
2625         (Basic.Equals):
2626         (Basic.NotEquals):
2627         (Basic.LessThan):
2628         (Basic.GreaterThan):
2629         (Basic.LessEqual):
2630         (Basic.GreaterEqual):
2631         (Basic.GoTo):
2632         (Basic.GoSub):
2633         (Basic.Def):
2634         (Basic.Let):
2635         (Basic.If):
2636         (Basic.Return):
2637         (Basic.Stop):
2638         (Basic.On):
2639         (sideState.shouldStop):
2640         (Basic.For):
2641         (Basic.Next):
2642         (Basic.Print):
2643         (Basic.Input):
2644         (Basic.Read):
2645         (Basic.Restore):
2646         (Basic.Dim):
2647         (Basic.Randomize):
2648         (Basic.End):
2649         (Basic.Program):
2650         * Basic/basic.js: Added.
2651         (prepare):
2652         (simulate):
2653         * Basic/benchmark.js: Added.
2654         (Benchmark):
2655         (Benchmark.prototype.runIteration.expect):
2656         (Benchmark.prototype.runIteration):
2657         (runBenchmark):
2658         * Basic/caseless_map.js: Added.
2659         (CaselessMap):
2660         * Basic/lexer.js: Added.
2661         (lex.consumeWhitespace):
2662         (lex.consume):
2663         (lex):
2664         * Basic/lexer_test.js: Added.
2665         * Basic/number.js: Added.
2666         (NumberValue):
2667         (NumberValue.prototype.get value):
2668         (NumberValue.prototype.apply):
2669         (NumberValue.prototype.leftApply):
2670         (NumberValue.prototype.assign):
2671         (NumberArray.):
2672         (NumberArray):
2673         (NumberArray.prototype.apply):
2674         (NumberArray.prototype.leftApply):
2675         (NumberFunction):
2676         (NumberFunction.prototype.apply):
2677         (NumberFunction.prototype.leftApply):
2678         (NativeFunction):
2679         (NativeFunction.prototype.apply):
2680         (NativeFunction.prototype.leftApply):
2681         * Basic/parser.js: Added.
2682         (parse):
2683         (parse.pushToken):
2684         (parse.peekToken):
2685         (parse.consumeKind):
2686         (parse.consumeToken):
2687         (parse.parseVariable):
2688         (parse.parseNumericExpression.parsePrimary):
2689         (parse.parseNumericExpression.parseFactor):
2690         (parse.parseNumericExpression.parseTerm):
2691         (parse.parseNumericExpression):
2692         (parse.parseConstant):
2693         (parse.parseStringExpression):
2694         (parse.isStringExpression):
2695         (parse.parseRelationalExpression):
2696         (parse.parseNonNegativeInteger):
2697         (parse.parseGoToStatement):
2698         (parse.parseGoSubStatement):
2699         (parse.parseStatement):
2700         (parse.parseStatements):
2701         * Basic/random.js: Added.
2702         (createRNG):
2703         (createRNGWithFixedSeed):
2704         (createRNGWithRandomSeed):
2705         * Basic/state.js: Added.
2706         (State):
2707         (State.prototype.getValue):
2708         (State.prototype.getSideState):
2709         (State.prototype.abort):
2710         (State.prototype.validate):
2711         * Basic/test.html: Added.
2712         * Basic/test.js: Added.
2713         * Basic/util.js: Added.
2714         (this.performance.performance.now.currentTime):
2715         (else.this.preciseTime.currentTime):
2716         (else.currentTime):
2717         * Skipped: Make sure that we don't run Basic yet.
2718
2719 2016-06-21  Jon Lee  <jonlee@apple.com>
2720
2721         Update canvas size when benchmark begins
2722         https://bugs.webkit.org/show_bug.cgi?id=159010
2723
2724         Reviewed by Dean Jackson.
2725
2726         Previously we would evaluate the media queries and assign the canvas size to the test
2727         on body.onload. Instead, do it once the user starts the benchmark.
2728
2729         * Animometer/resources/debug-runner/animometer.js: Move benchmarkController.determineCanvasSize()
2730         to benchmarkController._startBenchmark.
2731         * Animometer/resources/runner/animometer.js: Ditto.
2732
2733 2016-06-21  Jon Lee  <jonlee@apple.com>
2734
2735         Add new timestamp option
2736         https://bugs.webkit.org/show_bug.cgi?id=159006
2737
2738         Reviewed by Dean Jackson.
2739
2740         Add a new option to take timestamps from the rAF callback.
2741
2742         * Animometer/developer.html: Added option.
2743         * Animometer/tests/resources/main.js:
2744         (Benchmark): Fall back to using the rAF timestamp if performance.now()
2745         is not available.
2746         (Benchmark._animateLoop): Update how timestamp is set. Prefer to use
2747         local var instead of accessing private var.
2748
2749 2016-06-21  Jon Lee  <jonlee@apple.com>
2750
2751         Improvements to Animometer benchmark
2752         https://bugs.webkit.org/show_bug.cgi?id=157738
2753
2754         Reviewed by Dean Jackson.
2755         Provisionally reviewed by Said Abou-Hallawa.
2756
2757         Update tests.
2758
2759         * Animometer/tests/master/text.html: Ensure only three text sizes for
2760         the three canvases.
2761         * Animometer/tests/master/focus.html: Reduce the text size to fit with smaller
2762         particle sizes.
2763         * Animometer/tests/master/resources/focus.js: Remove the quadratic distribution for
2764         particle sizes, and make it linear. Reduce the size variance. Shuffle the math to
2765         reduce some calculations per frame. Fix the placement of the particles which might
2766         otherwise be culled.
2767         * Animometer/tests/master/resources/image-data.js: Reduce the particle size
2768         to encourage larger scores.
2769
2770 2016-06-21  Jon Lee  <jonlee@apple.com>
2771
2772         Improvements to Animometer benchmark
2773         https://bugs.webkit.org/show_bug.cgi?id=157738
2774
2775         Reviewed by Dean Jackson.
2776         Provisionally reviewed by Said Abou-Hallawa.
2777
2778         Include confidence interval for the final score, and store the canvas
2779         size in the serialization so that it is accurately shown in results.
2780
2781         * Animometer/developer.html: Add a "confidence" div.
2782         * Animometer/index.html: Ditto. Convert "mean" to "confidence".
2783         * Animometer/resources/debug-runner/animometer.js: Look at options, and
2784         if the configuration is included, update the body class based on it
2785         (similar to what we do when we first load the page). That way, if you
2786         drag-and-drop previous results in, that configuration is reflected in
2787         the dashboard. Show the full confidence interval.
2788
2789         * Animometer/resources/debug-runner/animometer.css:
2790         * Animometer/resources/debug-runner/animometer.js: Style update.
2791         * Animometer/resources/runner/animometer.css:
2792
2793         * Animometer/resources/runner/animometer.js:
2794         (_processData): Propagate the confidence interval values out and calculate
2795         the lower and upper bounds. For now, shortcut the aggregate calculation,
2796         since we only go through one iteration.
2797         (this._processData.calculateScore): Propagate the confidence interval out
2798         to be next to the score. Depending on the controller these values are
2799         calculated differently.
2800         (this._processData._getResultsProperty): Convenience function.
2801         (this._processData.get score): Refactor.
2802         (this._processData.get scoreLowerBound): Get the aggregate lower bound.
2803         (this._processData.get scoreUpperBound): Get the aggregate upper bound.
2804         (window.sectionsManager.setSectionScore):
2805         (window.benchmarkController._startBenchmark): When the benchmark starts, note
2806         the canvas size and add it to options. That way it will be automatically be
2807         serialized.
2808         (window.benchmarkController.showResults): Include the maximum deviation
2809         percentage.
2810         * Animometer/resources/runner/lines.svg: Make the background line up with the
2811         skew.
2812         * Animometer/resources/runner/tests.js:
2813         (Headers.details.text): Refactor.
2814         * Animometer/resources/statistics.js:
2815         (Statistics.largestDeviationPercentage): Convenience function to calculate
2816         the deviation percentage on either end and return the largest deviation.
2817         * Animometer/resources/strings.js:
2818
2819         Allow specifying a regression profile to use instead of taking the one
2820         with the lowest error.
2821
2822         Address an issue in the focus test when the regression calculated ends
2823         up overestimating the change point, causing a cascade of tougher
2824         ramps. The reason behind this is that at max complexity of an initial
2825         ramp, the frame length is very high, and it influences the second
2826         segment of the piecewise regression strongly, causing it to be very
2827         steep. As a result, the first segment, expected to be flat, ends up
2828         covering a higher range of complexity. That makes the change point
2829         much higher than it should be. To avoid this, we will add a sanity
2830         check on the maximum value of the ramp. If the regression's projected
2831         value at the maximum complexity of the current ramp is very slow (less
2832         than 20 fps), 1) reduce the maximum complexity by 20%, and 2) do not
2833         include the regression's change point in the change point estimator.
2834         That estimator is used as the midpoint of the next ramp, and including
2835         the change point from a poor regression can bake in the error. The
2836         controller already knows how to adjust for ramps that are too easy for
2837         the system.
2838
2839         * Animometer/resources/runner/animometer.js:
2840         (this._processData.findRegression): Takes a preferred profile and gives that to
2841         Regression.
2842         (this._processData.calculateScore): With the ramp controller, take the profile
2843         of the ramp that was used the most when calculating the ramp's regression. That
2844         profile is what is used for the test's score.
2845         * Animometer/resources/statistics.js:
2846         (Regression.Utilities.createClass): Update to take an options object which can
2847         specify a profile to calculate with. Otherwise it will continue to use both and
2848         select the one with the lower error.
2849         (_calculateRegression): Fix an issue where we claim 0 error if the regression
2850         calculation fails due to divide-by-zero. Instead reject that regression calculation
2851         by giving it Number.MAX_VALUE.
2852         * Animometer/resources/strings.js: New strings for marking a regression as flat
2853         or slope.
2854         * Animometer/tests/resources/main.js:
2855         (RampController): Rename the thresholds for clarity. Add a threshold that, if
2856         exceeded, will lower the maximum complexity of the next ramp.
2857         (tune): Relax the cdf check to consider whether the interval definitely falls in
2858         the desired frame length threshold.
2859         (processSamples): Include the profile in the ramp.
2860
2861         Update ramp controller test. Increase the length of the test to 30 seconds, and extend
2862         the interval to 120 ms during sampling. Improve the estimation of the ramp parameters.
2863
2864         * Animometer/developer.html: Change default to 30 seconds, and don't show the progress bar
2865         by default.
2866         * Animometer/resources/runner/animometer.js: Change default to 30 seconds.
2867         * Animometer/tests/resources/main.js: A number of improvements to the ramp controller, in
2868         the order in which they appear in the patch:
2869
2870         - With a longer test length use longer ramps with longer intervals to get more data at each
2871         complexity. Keep the 100 ms interval length during the ramp up phase since we don't need to
2872         spend more time there to find the right order of magnitude, but increase it during the
2873         ramps to 120 ms.
2874         - The ramp linearly interpolates the complexity to render based on its timestamp, but it would
2875         never sample the minimum complexity. Instead of lerping max to min complexity from time
2876         0 to t where t is the ramp length, instead lerp from 0 to (t - intervalSampleLength) so that
2877         we can have at least one interval sample at the min complexity for that ramp.
2878         - Some regression calculations only come out with one line segment rather than the two
2879         we expect. This could be due to a noisy ramp or the ramp's range is too narrow. If that's the
2880         case, influence the minimum complexity of the next ramp towards the lowest bound of 1, so that
2881         we ensure that at least part of the ramp is covering a complexity range that the system can
2882         handle at full 60.
2883         - Remove an assignment to interpolatedFrameLength since that is never subsequently used.
2884
2885         Update the format used to serialize the results for analysis.
2886
2887         Each data point used to have named properties for fields like complexity and frame rate.
2888         In addition the serialized numbers had rounding errors that took up many characters.
2889         Update the format by introducing a new data container called SampleData, which contains a
2890         field map. The map maps a string to an array index. Each data point is an array, so, to
2891         get a stat, use the field map to get the array index into the data point. This allows future
2892         versions to track other data, and reduces the size of the output string by two-thirds.
2893
2894         * Animometer/resources/extensions.js:
2895         (Utilities.toFixedNumber): Add convenience function that truncates the number to a fixed
2896         precision, and converts it back to a number.
2897         (SampleData): New class that contains sample data and a field map that maps properties to
2898         an array index.
2899         (get length): Number of data points.
2900         (addField): Add a field to the field map.
2901         (push): Add a data point.
2902         (sort): Sort the data.
2903         (slice): Return new SampleData object with sliced data.
2904         (forEach): Iterate over the data with provided function.
2905         (createDatum):
2906         (getFieldInDatum): Returns the data point associated with the field name by looking it up
2907         in the field map in the datum provided, which can be the datum object itself (an array) or
2908         an index into the data member variable.
2909         (setFieldInDatum): Sets the data point associated with the field name.
2910         (at): Returns the data point at the provided index.
2911         (toArray): Serializes the data where the field map serves as property names for each point.
2912
2913         * Animometer/resources/debug-runner/graph.js:
2914         (updateGraphData): Remove unused _testData. Convert the data to the old array format for the
2915         graph to use, since the old format was much easier to work with when displaying the graphs.
2916         (onGraphTypeChanged): For some controllers, no alternative score or mean is provided.
2917         * Animometer/resources/runner/animometer.css:
2918         * Animometer/resources/runner/animometer.js: Refactor to use SampleData. Update JSON output
2919         to only go to 3 digits of precision for purposes of reducing the data size.
2920         * Animometer/resources/strings.js: Add new strings to put into the field maps.
2921         * Animometer/tests/resources/main.js: Refactor to use SampleData.
2922
2923         * Animometer/developer.html:
2924         * Animometer/index.html: Restructure results table for both pages. Add charset attribute to
2925         tests.js include.
2926         * Animometer/resources/debug-runner/animometer.css: Clear out styles from release runner.
2927         * Animometer/resources/debug-runner/graph.js:
2928         (onGraphTypeChanged): Update score and mean if bootstrap results are available from the
2929         controller, since not all controllers do bootstrapping.
2930         * Animometer/resources/debug-runner/tests.js: Update header text.
2931         * Animometer/resources/runner/animometer.css: Include confidence interval in results.
2932         * Animometer/resources/runner/animometer.js:
2933         (ResultsTable._addHeader): Header contents can be HTML, so use innerHTML instead.
2934         (ResultsTable._addBody): Add tbody element.
2935         (ResultsTable._addTest): Allow a data cell to invoke a JS function to get its contents.
2936         (window.benchmarkController.showResults): Add table that includes tests' confidence intervals.
2937         * Animometer/resources/runner/tests.js:
2938         (Headers.details.text): Add new details table that includes bootstrap confidence interval.
2939         The interval can be asymmetric, but for simplicity, report the maximum deviation percentage
2940         on either side of the bootstrap median.
2941         * Animometer/resources/statistics.js:
2942         (bootstrap): Include the confidence percentage in the return object.
2943
2944         Report canvas size in results.
2945
2946         * Animometer/developer.html: Add markup to indicate whether a small, medium, or large
2947         canvas was used.
2948         * Animometer/index.html: Ditto.
2949         * Animometer/resources/debug-runner/animometer.js: Call determineCanvasSize().
2950         * Animometer/resources/runner/animometer.css: Update styles to set the canvas based on the
2951         body class size.
2952         * Animometer/resources/runner/animometer.js:
2953         (window.benchmarkController.initialize): Update styles to set the canvas based on the
2954         body class size.
2955         (window.benchmarkController.determineCanvasSize): Run various media queries and set the body
2956         class based on the size of the device.
2957
2958         * Animometer/developer.html: Refactor to include the main CSS file, and redo
2959         the layout so that it doesn't rely on flexbox.
2960         * Animometer/resources/debug-runner/animometer.css:
2961         * Animometer/resources/debug-runner/animometer.js:
2962         (updateDisplay): Since various parts of the script alter the body class, we can't
2963         replace the className directly. Instead, remove all display-based values and then add
2964         the one that was selected.
2965         * Animometer/resources/debug-runner/graph.js:
2966         (updateGraphData): To set the size of the graph, use window.innerHeight.
2967         * Animometer/resources/runner/animometer.js:
2968         (window.sectionsManager.showSection): Since various parts of the script alter the body
2969         class, we can't replace the className directly. Remove all of the section classes
2970         individually and then add the one desired.
2971         * Animometer/tests/resources/stage.css: Remove -apple-system as a font to use in the
2972         stage.
2973
2974 2016-06-12  Filip Pizlo  <fpizlo@apple.com>
2975
2976         Fix round-down goof in Air.js's ShuffleCustom.forEachArg
2977         https://bugs.webkit.org/show_bug.cgi?id=158674
2978
2979         Reviewed by Michael Saboff.
2980         
2981         x / 3 * 3 is not how you round down to multiples of 3 in JavaScript. You need to do
2982         Math.floor(x / 3) * 3 instead.
2983         
2984         This is a benign change, because having extra arguments to a Shuffle is not something we
2985         actually take advantage of yet. But I think it's best to match the original C++ code's
2986         intent.
2987
2988         * Air.js/custom.js:
2989         (const.ShuffleCustom.forEachArg):
2990
2991 2016-06-11  Filip Pizlo  <fpizlo@apple.com>
2992
2993         Unreviewed, skip Air.js. It got unskipped when I renamed it from JSAir.
2994
2995         * Skipped:
2996
2997 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
2998
2999         Make it easy to package Air.js
3000         https://bugs.webkit.org/show_bug.cgi?id=158652
3001
3002         Reviewed by Benjamin Poulain.
3003         
3004         If you want to give Air.js to someone, you can now do:
3005         
3006         cd PerformanceTests/Air.js
3007         ./make_dist.sh
3008         
3009         This will create Air.js.tar.gz and a directory called Air.js. If you want to send someone
3010         the benchmark, just send either of those things and tell them to look at index.html.
3011         
3012         You may have to edit make_dist.sh for wherever you have Markdown.pl. You can get that from
3013         https://daringfireball.net/projects/markdown/
3014
3015         * Air.js/make_dist.sh: Added.
3016         * Air.js/test.html:
3017
3018 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
3019
3020         Unreviewed, make the link to test.html into an actual link.
3021
3022         * Air.js/README.md:
3023
3024 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
3025
3026         Fix some text in Air.js/README.md
3027         https://bugs.webkit.org/show_bug.cgi?id=158650
3028
3029         Reviewed by Benjamin Poulain.
3030         
3031         I read the text again and found bugs:
3032         
3033         - We never actually say how to run the benchmark. This change adds a blurb about how to run
3034           it.
3035
3036         - We both say that allocateStack is responsible for the bulk of the running time and that
3037           we haven't measured where the bulk of the time is spent. This changes the text to say that
3038           it was a goal to make allocateStack be the hottest part of the benchmark, but that we did
3039           not measure this.
3040
3041         * Air.js/README.md:
3042
3043 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
3044
3045         Air.js should have some documentation
3046         https://bugs.webkit.org/show_bug.cgi?id=158648
3047
3048         Reviewed by Keith Miller.
3049         
3050         I want to be able to point people at a document if they want to know more about this
3051         benchmark.
3052
3053         * Air.js/README.md: Added.
3054
3055 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
3056
3057         Rename JSAir to Air.js.
3058
3059         Rubber stamped by Mark Lam.
3060
3061         * Air.js: Copied from PerformanceTests/JSAir.
3062         * Air.js/airjs-tests.yaml: Copied from PerformanceTests/JSAir/jsair-tests.yaml.
3063         * Air.js/benchmark.js: Copied from PerformanceTests/JSAir/benchmark.js.
3064         (Benchmark):
3065         * Air.js/jsair-tests.yaml: Removed.
3066         * Air.js/payload-airjs-ACLj8C.js: Copied from PerformanceTests/JSAir/payload-jsair-ACLj8C.js.
3067         * Air.js/payload-jsair-ACLj8C.js: Removed.
3068         * Air.js/stress-test.js: Copied from PerformanceTests/JSAir/stress-test.js.
3069         * Air.js/test.html: Copied from PerformanceTests/JSAir/test.html.
3070         * Air.js/test.js: Copied from PerformanceTests/JSAir/test.js.
3071         * JSAir: Removed.
3072         * JSAir/all.js: Removed.
3073         * JSAir/allocate_stack.js: Removed.
3074         * JSAir/arg.js: Removed.
3075         * JSAir/basic_block.js: Removed.
3076         * JSAir/benchmark.js: Removed.
3077         * JSAir/code.js: Removed.
3078         * JSAir/custom.js: Removed.
3079         * JSAir/frequented_block.js: Removed.
3080         * JSAir/insertion_set.js: Removed.
3081         * JSAir/inst.js: Removed.
3082         * JSAir/jsair-tests.yaml: Removed.
3083         * JSAir/liveness.js: Removed.
3084         * JSAir/opcode.js: Removed.
3085         * JSAir/payload-gbemu-executeIteration.js: Removed.
3086         * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
3087         * JSAir/payload-jsair-ACLj8C.js: Removed.
3088         * JSAir/payload-typescript-scanIdentifier.js: Removed.
3089         * JSAir/reg.js: Removed.
3090         * JSAir/stack_slot.js: Removed.
3091         * JSAir/stress-test.js: Removed.
3092         * JSAir/strip-hash.rb: Removed.
3093         * JSAir/symbols.js: Removed.
3094         * JSAir/test.html: Removed.
3095         * JSAir/test.js: Removed.
3096         * JSAir/tmp.js: Removed.
3097         * JSAir/tmp_base.js: Removed.
3098         * JSAir/util.js: Removed.
3099
3100 2016-06-10  Filip Pizlo  <fpizlo@apple.com>
3101
3102         JSC Stress Test failing: jsair-tests.yaml/test.js.ftl-eager-no-cjit
3103         https://bugs.webkit.org/show_bug.cgi?id=158571
3104
3105         Reviewed by Keith Miller.
3106         
3107         Introduce a different harness for run-jsc-stress-tests, which runs for a minimum of 10
3108         iterations and then tries to do any number of "bonus" iterations until it's been running for
3109         two seconds. Since this is the sort of test that isn't really meant to stress anything in
3110         particular, I think it's OK if it is time-limited in this way. The worst case is that some
3111         of its failures will be flaky, but I think that they would have been flaky anyway given the
3112         complexity of the test.
3113
3114         * JSAir/benchmark.js:
3115         (Benchmark):
3116         (Benchmark.prototype.runIteration):
3117         (benchmark): Deleted.
3118         * JSAir/jsair-tests.yaml:
3119         * JSAir/stress-test.js: Added.
3120         (preciseTime):
3121         * JSAir/test.html:
3122         * JSAir/test.js:
3123
3124 2016-06-09  Filip Pizlo  <fpizlo@apple.com>
3125
3126         Unreviewed, teach the perf bots not to run JSAir.
3127
3128         * Skipped:
3129
3130 2016-06-08  Filip Pizlo  <fpizlo@apple.com>
3131
3132         Use more ES6 features in JSAir
3133         https://bugs.webkit.org/show_bug.cgi?id=158497
3134
3135         Reviewed by Keith Miller.
3136         
3137         This improves JSAir with the following ES6 features suggested by JoePeck:
3138         
3139         - String interpolation.
3140         - Destructuring inside PatchCustom.
3141         - Default arguments.
3142         
3143         All of these things are on hot paths.
3144         
3145         Note that I didn't use string interpolation everywhere that I could, only in those places
3146         where it made the code more readable. In Ruby, I used the style that if the interpolation
3147         expression has any non-trivial stuff (like a ternary operator, a chain of calls, or embedded
3148         strings) then it's better to use regular strcat. I think that's what I carried over to here.
3149         
3150         Note that the previous change (Add result validation to JSAir) also made the Proxy code not
3151         dead, though it's not necessarily on the hot path. The Proxy isn't called into frequently
3152         but it's used from a function that is otherwise hot, so if calling into the Proxy prevents
3153         that function from being optimized then it will hurt so good.
3154         
3155         I also reenabled tail calls in a few places.
3156         
3157         This change doesn't seem to change the performance of the benchmark for us. That's expected
3158         since these ES6 features are cheap. Note that this claim doesn't include Proxy, which was
3159         added in a separate change and that change did make the benchmark overall more expensive.
3160
3161         * JSAir/allocate_stack.js:
3162         (allocateStack):
3163         * JSAir/arg.js:
3164         (Arg.createBitImm64):
3165         (Arg.createAddr):
3166         (Arg.createStack):
3167         (Arg.logScale):
3168         (Arg.createIndex):
3169         * JSAir/basic_block.js:
3170         (BasicBlock.get headerString):
3171         (BasicBlock.prototype.get if):
3172         (BasicBlock):
3173         * JSAir/benchmark.js:
3174         (benchmark):
3175         * JSAir/code.js:
3176         (Code):
3177         (Code.prototype.addBlock):
3178         (Code.prototype.addStackSlot):
3179         (Code.prototype.newTmp):
3180         (Code.prototype.get size):
3181         (Code.prototype.get blocks):
3182         (Code.prototype.get stackSlots):
3183         (Code.prototype.tmps):
3184         (Code.prototype.get callArgAreaSize):
3185         (Code.prototype.toString):
3186         * JSAir/custom.js:
3187         (const.PatchCustom.forEachArg):
3188         * JSAir/inst.js:
3189         (Inst):
3190         * JSAir/reg.js:
3191         (Reg.prototype.toString):
3192         * JSAir/util.js:
3193         (symbolName):
3194         (lowerSymbolName):
3195
3196 2016-06-07  Filip Pizlo  <fpizlo@apple.com>
3197
3198         Add result validation to JSAir
3199         https://bugs.webkit.org/show_bug.cgi?id=158493
3200
3201         Reviewed by Saam Barati.
3202         
3203         This adds the ability to hash a Code in a way that matches the C++ code's hashing of Code.
3204         This allows us to check if the Code that JSAir sees is the code that C++ saw. We use this to
3205         check the Code before and after allocateStack, and compare against hashes we got from C++.
3206         
3207         Doing this uncovered bugs. roundUpToMultipleOf wasn't doing anything. allocateStack was not
3208         allocating things correctly because I was concatting a Set to an Array, which doesn't really
3209         work. Now these bugs are fixed.
3210         
3211         The checking step adds to the running time so I reduced the number of iterations. The
3212         benchmark spends a decent amount of its time computing Code hashes; I think it's around 1/3
3213         total. This is probably OK. It's better to verify the results even if the running time is
3214         not all in the "core" of the algorithm.
3215         
3216         Also add a run-jsc-stress-tests yaml file to allow this to run as a test.
3217
3218         * JSAir/allocate_stack.js:
3219         * JSAir/arg.js:
3220         (Arg.createImm):
3221         (Arg.createBigImm):
3222         (Arg.createBitImm):
3223         (Arg.createBitImm64):
3224         (Arg.createWidth):
3225         (Arg.createSpecial):
3226         (Arg.prototype.get kind):
3227         (Arg.prototype.get isTmp):
3228         (Arg.prototype.get isImm):
3229         (Arg.prototype.get isSomeImm):
3230         (Arg.prototype.get isSomeBigImm):
3231         (Arg.prototype.get isCondition):
3232         (Arg.prototype.get isWidth):
3233         (Arg.prototype.get isSpecial):
3234         (Arg.prototype.get isAlive):
3235         (Arg.prototype.get tmp):
3236         (Arg.prototype.get value):
3237         (Arg.prototype.get lowValue):
3238         (Arg.prototype.get highValue):
3239         (Arg.prototype.get base):
3240         (Arg.prototype.get isGP):
3241         (Arg.prototype.get isFP):
3242         (Arg.prototype.isValidForm):
3243         (Arg.prototype.get isInvertible):
3244         (Arg.kindCode):
3245         (Arg.prototype.hash):
3246         (Arg.prototype.toString):
3247         (Arg):
3248         * JSAir/basic_block.js:
3249         (BasicBlock.get successorBlocks):
3250         * JSAir/benchmark.js:
3251         (benchmark):
3252         * JSAir/code.js:
3253         (Code.prototype.setFrameSize):
3254         (Code.prototype.hash):
3255         (Code.prototype.toString):
3256         (Code):
3257         * JSAir/inst.js:
3258         (Inst.prototype.get hasNonArgEffects):
3259         (Inst.prototype.hash):
3260         (Inst.prototype.toString):
3261         (Inst):
3262         * JSAir/jsair-tests.yaml: Added.
3263         * JSAir/opcode.js:
3264         (Inst_forEachArg):
3265         (Inst_hasNonArgEffects):
3266         (opcodeCode):
3267         * JSAir/payload-gbemu-executeIteration.js:
3268         (createPayloadGbemuExecuteIteration):
3269         * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js:
3270         (createPayloadImagingGaussianBlurGaussianBlur):
3271         * JSAir/payload-jsair-ACLj8C.js:
3272         (createPayloadJSAirACLj8C):
3273         * JSAir/payload-typescript-scanIdentifier.js:
3274         (createPayloadTypescriptScanIdentifier):
3275         * JSAir/reg.js:
3276         (Reg.prototype.get isReg):
3277         (Reg.prototype.hash):
3278         (Reg.prototype.toString):
3279         * JSAir/stack_slot.js:
3280         (StackSlot.prototype.setOffsetFromFP):
3281         (StackSlot.prototype.hash):
3282         (StackSlot.prototype.toString):
3283         * JSAir/symbols.js:
3284         (relCondCode):
3285         (resCondCode):
3286         (doubleCondCode):
3287         * JSAir/test.html:
3288         * JSAir/tmp.js:
3289         (Tmp.prototype.get isReg):
3290         (Tmp.prototype.hash):
3291         (Tmp.prototype.toString):
3292         * JSAir/util.js:
3293         (roundUpToMultipleOf):
3294         (symbolName):
3295
3296 2016-06-07  Filip Pizlo  <fpizlo@apple.com>
3297
3298         Implement Air::allocateStack() in ES6 to see how much of a bad idea that is
3299         https://bugs.webkit.org/show_bug.cgi?id=158318
3300
3301         Reviewed by Saam Barati.