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