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