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