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