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