1 2017-06-07 Saam Barati <sbarati@apple.com>
3 ARES-6 incorrectly measures Worst 4 Iterations
4 https://bugs.webkit.org/show_bug.cgi?id=172960
8 Version 1.0 of ARES-6 was accidentally measuring the first
9 4 iterations, instead of the worst 4. This patch fixes the
10 bug and bumps the version to 1.0.1.
13 (driver.reportResult):
15 (Results.prototype.reportResult):
17 2017-06-06 Saam Barati <sbarati@apple.com>
19 Add a version number to ARES-6
20 https://bugs.webkit.org/show_bug.cgi?id=172962
22 Reviewed by Yusuke Suzuki.
25 (driver.reportResult):
27 2017-06-01 Saam Barati <sbarati@apple.com>
29 Ensure a good experience for ARES-6 error reporting
30 https://bugs.webkit.org/show_bug.cgi?id=171699
32 Reviewed by Filip Pizlo and Jon Davis.
34 This patch fixes a bug where we would silently fail running ARES-6. The bug
35 was that we were calling reportError with the wrong |this| value.
36 I also cleaned up a bit of the code around error reporting. We
37 now indicate which test failed, and update the status to reflect
38 that a failure happened.
40 This patch also modifies the CSS a bit to work better on smaller
41 screened devices. The CSS prevents the status from having a line
42 break both when an error is reported and when we're running the
47 (Driver.prototype.reportError):
49 (Results.prototype.reportError):
56 (.test .failed:before):
58 (@media only screen and (max-width: 784px)):
61 (@media only screen and (max-width: 320px)):
63 2017-05-19 Ryosuke Niwa <rniwa@webkit.org>
65 REGRESSION(r217118): Speedometer 2.0: Flight.js test is broken
66 https://bugs.webkit.org/show_bug.cgi?id=172394
68 Reviewed by Chris Dumez.
70 Fixed the bug that we were never clearing window.checkLoadedTimeoutId.
72 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
73 (newContext.checkLoaded):
75 2017-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
77 Add SixSpeed benchmark to PerformanceTests
78 https://bugs.webkit.org/show_bug.cgi?id=172326
80 Reviewed by Sam Weinig.
82 This patch imports SixSpeed benchmark into WebKit tree.
83 It is a collection of ES6 microbenchmarks. While the scripts are very tiny,
84 it sometimes hits our missing care for optimization. So including it is useful.
86 The benchmark is released under MIT license.
88 * SixSpeed/LICENSE: Added.
89 * SixSpeed/REVISION: Added.
90 * SixSpeed/ReadMe.md: Added.
91 * SixSpeed/tests/.eslintrc: Added.
92 * SixSpeed/tests/arrow-args/arrow-args.es5: Added.
93 * SixSpeed/tests/arrow-args/arrow-args.es6: Added.
94 * SixSpeed/tests/arrow-declare/arrow-declare.es5: Added.
95 * SixSpeed/tests/arrow-declare/arrow-declare.es6: Added.
96 * SixSpeed/tests/arrow/arrow.es5: Added.
97 * SixSpeed/tests/arrow/arrow.es6: Added.
98 * SixSpeed/tests/bindings-compound/bindings-compound.es5: Added.
99 * SixSpeed/tests/bindings-compound/bindings-compound.es6: Added.
100 * SixSpeed/tests/bindings/bindings.es5: Added.
101 * SixSpeed/tests/bindings/bindings.es6: Added.
102 * SixSpeed/tests/classes/classes.es5: Added.
103 * SixSpeed/tests/classes/classes.es6: Added.
104 * SixSpeed/tests/defaults/defaults.es5: Added.
105 * SixSpeed/tests/defaults/defaults.es6: Added.
106 * SixSpeed/tests/destructuring-simple/destructuring-simple.es5: Added.
107 * SixSpeed/tests/destructuring-simple/destructuring-simple.es6: Added.
108 * SixSpeed/tests/destructuring/destructuring.es5: Added.
109 * SixSpeed/tests/destructuring/destructuring.es6: Added.
110 * SixSpeed/tests/for-of-array/for-of-array.es5: Added.
111 * SixSpeed/tests/for-of-array/for-of-array.es6: Added.
112 * SixSpeed/tests/for-of-object/for-of-object.es5: Added.
113 * SixSpeed/tests/for-of-object/for-of-object.es6: Added.
114 * SixSpeed/tests/generator/generator.es5: Added.
115 * SixSpeed/tests/generator/generator.es6: Added.
116 * SixSpeed/tests/map-set-lookup/map-set-lookup.es5: Added.
117 * SixSpeed/tests/map-set-lookup/map-set-lookup.es6: Added.
118 * SixSpeed/tests/map-set-object/map-set-object.es5: Added.
119 * SixSpeed/tests/map-set-object/map-set-object.es6: Added.
120 * SixSpeed/tests/map-set/map-set.es5: Added.
121 * SixSpeed/tests/map-set/map-set.es6: Added.
122 * SixSpeed/tests/map-string/map-string.es5: Added.
123 * SixSpeed/tests/map-string/map-string.es6: Added.
124 * SixSpeed/tests/new-target/defaults.es5: Added.
125 * SixSpeed/tests/new-target/defaults.es6: Added.
126 * SixSpeed/tests/object-assign/object-assign.es5: Added.
127 * SixSpeed/tests/object-assign/object-assign.es6: Added.
128 * SixSpeed/tests/object-literal-ext/object-literal-ext.es5: Added.
129 * SixSpeed/tests/object-literal-ext/object-literal-ext.es6: Added.
130 * SixSpeed/tests/regex-u/regex-u.es5: Added.
131 * SixSpeed/tests/regex-u/regex-u.es6: Added.
132 * SixSpeed/tests/rest/rest.es5: Added.
133 * SixSpeed/tests/rest/rest.es6: Added.
134 * SixSpeed/tests/spread-generator/spread-generator.es5: Added.
135 * SixSpeed/tests/spread-generator/spread-generator.es6: Added.
136 * SixSpeed/tests/spread-literal/spread-literal.es5: Added.
137 * SixSpeed/tests/spread-literal/spread-literal.es6: Added.
138 * SixSpeed/tests/spread/spread.es5: Added.
139 * SixSpeed/tests/spread/spread.es6: Added.
140 * SixSpeed/tests/super/super.es5: Added.
141 * SixSpeed/tests/super/super.es6: Added.
142 * SixSpeed/tests/template_string/template_string.es5: Added.
143 * SixSpeed/tests/template_string/template_string.es6: Added.
144 * SixSpeed/tests/template_string_tag/template_string_tag.es5: Added.
145 * SixSpeed/tests/template_string_tag/template_string_tag.es6: Added.
146 * SixSpeed/wrappers/wrapper.js:
149 2017-05-19 Ryosuke Niwa <rniwa@webkit.org>
151 Speedometer 2.0: Angular v1 test only deletes the second item
152 https://bugs.webkit.org/show_bug.cgi?id=172353
154 Reviewed by Antti Koivisto.
156 Like jQuery and Inferno, run querySelector after removing each todo item.
158 * Speedometer/InteractiveRunner.html: Tweaked CSS again.
159 * Speedometer/resources/tests.js:
161 2017-05-19 Ryosuke Niwa <rniwa@webkit.org>
163 Speedometer 2.0: Elem test isn't updating DOM during the measurement
164 https://bugs.webkit.org/show_bug.cgi?id=172343
166 Reviewed by Antti Koivisto.
168 Elem test wasn't doing much work because it simply enqueues items into the work queue, which doesn't get
169 executed until the next requestAnimationFrame or setTimeout callback happens.
171 Expose elm's work function as contentWindow.elemWork and make the first use of rAF a synchronous callback
172 just as it would when requestAnimationFrame isn't defined, and make the second use of rAF queue up to
173 an array of callbacks, and have the test runner manually invoke each callback.
175 This increases the runtime of the Elm suite from 100ms to 300ms on Safari.
177 * Speedometer/resources/tests.js:
178 (processElmWorkQueue): Added. A helper which processes Elm's work queue and manually invokes render callbacks.
179 * Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
181 2017-05-18 Ryosuke Niwa <rniwa@webkit.org>
183 Speedometer 2.0: Flight.js test is sometime broken
184 https://bugs.webkit.org/show_bug.cgi?id=172347
186 Reviewed by Antti Koivisto.
188 The bug was caused by the test runner only waiting for #new-todo, which happens before all other states are
189 updated in the Flight.js dependency example. As done in Speedometer v1, insert a dummy element with id set
190 to appIsReady and wait for this element to appear in the benchmark harness.
192 * Speedometer/resources/tests.js: Wait for #appIsReady.
193 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Removed the superflous call
195 (checkReady): Added. Insert #appIsReady if checkLoaded is no longer running at 50ms interval. Because this
196 could happen asynchronously, we check the absense of checkLoadedTimeoutId Ωevery 10ms for 5 times for
197 the total duration of 50ms. If checkLoadedTimeoutId was never present, we call it ready. If we ever observed
198 the presence of checkLoadedTimeoutId, wait another 50ms and start over.
199 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
200 (.newContext.checkLoaded): Expose checkLoadedTimeoutId which is a timer ID used to check the dependency.
202 2017-05-19 Ryosuke Niwa <rniwa@webkit.org>
204 Speedometer 2.0: jQuery and Inferno tests don't delete all ToDo items
205 https://bugs.webkit.org/show_bug.cgi?id=172341
207 Reviewed by Antti Koivisto.
209 The bug was caused by the fact TodoMVC examples for jQuery and Inferno JS create a new button
210 to delete the todo item each time todo items are rendered.
212 Fixed the bug by dynamically look for .destroy using querySelector for each item.
214 Also moved the deletion of the iframe from the end of each test suite to the beginning of each suite.
215 This will make debugging the issue like this easier on InteractiveRunner.html since the iframe
216 will stick around after stepping the last item in the suite.
218 * Speedometer/InteractiveRunner.html: Tweaked the CSS to make buttons to "Step" and "Run" always visible
219 even if the list of suites and subtests are too long to fit in the viewport.
221 * Speedometer/resources/benchmark-runner.js:
222 (BenchmarkRunner.prototype.step):
223 (BenchmarkRunner.prototype._runTestAndRecordResults):
225 * Speedometer/resources/tests.js: Fixed the bug for jQuery and Inferno. In the case of jQuery
226 we also have to fix the code for checking every ToDo item as completed as well.
228 2017-05-19 Ryosuke Niwa <rniwa@webkit.org>
230 Speedometer 2.0: Vanilla JS test doesn't mark all todo items as completed
231 https://bugs.webkit.org/show_bug.cgi?id=172348
233 Reviewed by Antti Koivisto.
235 The bug was caused by the in-memory store class using the milisecond precision timestamp as an ID.
236 Because we inserts 50 items all at once, this can result in multiple data items sharing a single ID.
238 Fixed the bug by using a mononotically increasing ID instead.
240 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
241 (Store.prototype.save):
243 2017-05-18 Ryosuke Niwa <rniwa@webkit.org>
245 REGRESSION (r216694 - 216712): Performance test Speedometer/Full.html is failing
246 https://bugs.webkit.org/show_bug.cgi?id=172077
248 Reviewed by Chris Dumez.
250 Rename Full.html to index.html to match the convention of other benchmarks.
252 * Speedometer/index.html: Renamed from PerformanceTests/Speedometer/Full.html.
254 2017-05-18 Addy Osmani <addyosmani@gmail.com>
256 Speedometer: check-in missing React TodoMVC dependency
257 https://bugs.webkit.org/show_bug.cgi?id=172213
259 Reviewed by Ryosuke Niwa.
261 * Speedometer/resources/todomvc/architecture-examples/react/index.html: fix director.min.js path.
262 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/director.min.js: Added.
264 2017-05-17 Addy Osmani <addyosmani@gmail.com>
266 Speedometer: adjust Ember TodoMVC to use full path
267 https://bugs.webkit.org/show_bug.cgi?id=172211
269 Reviewed by Ryosuke Niwa.
271 * Speedometer/resources/tests.js: use full path to Ember TodoMVC app.
273 2017-05-16 Addy Osmani <addyosmani@gmail.com>
275 Update to Speedometer 2.0 w/updated frameworks + new workloads
276 https://bugs.webkit.org/show_bug.cgi?id=170513
278 Reviewed by Ryosuke Niwa.
280 Refresh test runner and fix apps to work with it.
282 * Speedometer/InteractiveRunner.html:
283 (parseQueryString): Adds support for startAutomatically query parameter.
284 * Speedometer/resources/tests.js:
285 (triggerEnter): Refactor event triggering behavior for tests.
286 * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html:
287 (CSS): Drop reference to extraneous stylesheet in Angular TodoMVC.
288 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js:
289 * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
290 (base): Enable Ember TodoMVC to be run from any directory/level.
291 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js:
292 (localStorageMemory): Correct import path and switch to window.localStorageMemory to fix Ember failures.
293 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js:
294 * Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html:
295 * Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
296 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/LICENSE: Added.
297 (LICENSE): Add missing metadata and LICENSE files as part of director.js package for jQuery TodoMVC
298 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/bower.json: Added.
299 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.js: Add missing
300 director.js dependency for jQuery TodoMVC implementation.
301 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.min.js: Added.
302 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/ender.js: Added.
303 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/package.json: Added.
304 * Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Fix path to built Elm TodoMVC scripts.
306 2017-05-12 Addy Osmani <addyosmani@gmail.com>
308 Speedometer: Add a React.js TodoMVC implementation
309 https://bugs.webkit.org/show_bug.cgi?id=171444
311 Reviewed by Ryosuke Niwa.
313 Adds a more recent React.js TodoMVC implemenation to Speedometer
315 * Speedometer/resources/todomvc/architecture-examples/react/build.min.js: Added.
316 * Speedometer/resources/todomvc/architecture-examples/react/index.html: Added.
317 * Speedometer/resources/todomvc/architecture-examples/react/js/app.jsx: Added.
318 * Speedometer/resources/todomvc/architecture-examples/react/license.md: Added.
319 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/LICENSE: Added.
320 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bind.js: Added.
321 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bower.json: Added.
322 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/dedupe.js: Added.
323 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/index.js: Added.
324 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/package.json: Added.
325 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/LICENSE: Added.
326 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/bower.json: Added.
327 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/package.json: Added.
328 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/LICENSE: Added.
329 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom-server.min.js: Added.
330 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom.min.js: Added.
331 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/index.js: Added.
332 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/LICENSE: Added.
333 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/README.md: Added.
334 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react-with-addons.min.js: Added.
335 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react.min.js: Added.
336 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/package.json: Added.
337 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-app-css/index.css: Added.
338 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.css: Added.
339 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.js: Added.
340 * Speedometer/resources/todomvc/architecture-examples/react/npm-shrinkwrap.json: Added.
341 * Speedometer/resources/todomvc/architecture-examples/react/package.json: Added.
342 * Speedometer/resources/todomvc/architecture-examples/react/yarn.lock: Added.
344 2017-05-11 Addy Osmani <addyosmani@gmail.com>
346 Speedometer: Update the Ember.js TodoMVC to a more recent version
347 https://bugs.webkit.org/show_bug.cgi?id=171342
349 Reviewed by Ryosuke Niwa.
351 Update the Ember TodoMVC app in Speedometer to latest
353 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.css: Added.
354 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js: Added.
355 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.css: Renamed from PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css.
356 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.js: Added.
357 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Removed.
358 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Removed.
359 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
360 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
361 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
362 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
363 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
364 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
365 * Speedometer/resources/todomvc/architecture-examples/emberjs/crossdomain.xml: Added.
366 * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
367 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/app.js: Removed.
368 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
369 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
370 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Removed.
371 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
372 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/router.js: Removed.
373 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
374 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Removed.
375 * Speedometer/resources/todomvc/architecture-examples/emberjs/readme.md: Removed.
376 * Speedometer/resources/todomvc/architecture-examples/emberjs/robots.txt: Added.
377 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.bowerrc: Added.
378 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.editorconfig: Added.
379 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.ember-cli: Added.
380 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.gitignore: Added.
381 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.jshintrc: Added.
382 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.travis.yml: Added.
383 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.watchmanconfig: Added.
384 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/README.md: Added.
385 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/app.js: Added.
386 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/.gitkeep: Added.
387 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-item.js: Added.
388 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-list.js: Added.
389 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/active.js: Added.
390 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/application.js: Added.
391 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/completed.js: Added.
392 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/gt.js: Added.
393 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/pluralize.js: Added.
394 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/index.html: Added.
395 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Added.
396 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/models/.gitkeep: Added.
397 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/resolver.js: Added.
398 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/router.js: Added.
399 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/.gitkeep: Added.
400 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/application.js: Added.
401 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js: Added.
402 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js: Added.
403 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/styles/app.css: Added.
404 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/active.hbs: Added.
405 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/application.hbs: Added.
406 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/completed.hbs: Added.
407 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/.gitkeep: Added.
408 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-item.hbs: Added.
409 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-list.hbs: Added.
410 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/index.hbs: Added.
411 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/bower.json: Added.
412 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/config/environment.js: Added.
413 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/ember-cli-build.js: Added.
414 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package.json: Added.
415 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/crossdomain.xml: Added.
416 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/robots.txt: Added.
417 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/testem.js: Added.
418 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Added.
419 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/destroy-app.js: Added.
420 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js: Added.
421 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/resolver.js: Added.
422 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js: Added.
423 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/index.html: Added.
424 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/integration/.gitkeep: Added.
425 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/test-helper.js: Added.
426 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/unit/.gitkeep: Added.
427 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/.gitkeep: Added.
428 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/base.css: Added.
429 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/index.css: Added.
430 * Speedometer/resources/todomvc/architecture-examples/emberjs/test.html: Removed.
431 * Speedometer/resources/todomvc/architecture-examples/emberjs/testem.js: Added.
432 * Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html: Added.
434 2017-05-11 Addy Osmani <addyosmani@gmail.com>
436 Speedometer: Add a React + Redux TodoMVC implementation
437 https://bugs.webkit.org/show_bug.cgi?id=171329
439 Reviewed by Ryosuke Niwa.
441 Adds React and Redux TodoMVC implementation for Speedometer
443 * Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: Added.
444 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/index.html: Added.
445 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.d43d2909.css: Added.
446 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.946269ff.js: Added.
447 * Speedometer/resources/todomvc/architecture-examples/react-redux/package.json: Added.
448 * Speedometer/resources/todomvc/architecture-examples/react-redux/public/index.html: Added.
449 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.js: Added.
450 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.spec.js: Added.
451 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.js: Added.
452 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.spec.js: Added.
453 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.js: Added.
454 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.spec.js: Added.
455 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.js: Added.
456 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.spec.js: Added.
457 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.js: Added.
458 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.spec.js: Added.
459 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.js: Added.
460 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.spec.js: Added.
461 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/ActionTypes.js: Added.
462 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/TodoFilters.js: Added.
463 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/containers/App.js: Added.
464 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/index.js: Added.
465 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/index.js: Added.
466 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js: Added.
467 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.spec.js: Added.
468 * Speedometer/resources/todomvc/architecture-examples/react-redux/yarn.lock: Added.
470 2017-05-11 Addy Osmani <addyosmani@gmail.com>
472 Speedometer: Add an ES2015 (Babel + Webpack) TodoMVC implementation
473 https://bugs.webkit.org/show_bug.cgi?id=171452
475 Reviewed by Ryosuke Niwa.
477 Adds ES2015 Babel + Webpack TodoMVC implem
479 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.babelrc: Added.
480 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.eslintignore: Added.
481 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js: Added.
482 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js.map: Added.
483 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js: Added.
484 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js.map: Added.
485 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js: Added.
486 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js.map: Added.
487 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/index.html: Added.
488 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css: Added.
489 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css.map: Added.
490 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css: Added.
491 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css.map: Added.
492 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Added.
493 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.css: Added.
494 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.js: Added.
495 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/bootstrap.js: Added.
496 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.js: Added.
497 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.test.js: Added.
498 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/helpers.js: Added.
499 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Added.
500 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/memory.js: Added.
501 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/model.js: Added.
502 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js: Added.
503 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/template.js: Added.
504 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/todo.js: Added.
505 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/view.js: Added.
506 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/webpack.config.babel.js: Added.
508 2017-05-11 Addy Osmani <addyosmani@gmail.com>
510 Speedometer: Add an Inferno TodoMVC implementation
511 https://bugs.webkit.org/show_bug.cgi?id=171411
513 Reviewed by Ryosuke Niwa.
515 Adds a Inferno implem of TodoMVC to Speedometer
517 * Speedometer/resources/todomvc/architecture-examples/inferno/dist/bundle.js: Added.
518 * Speedometer/resources/todomvc/architecture-examples/inferno/index.html: Added.
519 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/index.css: Added.
520 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/package.json: Added.
521 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/readme.md: Added.
522 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.css: Added.
523 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.js: Added.
524 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/package.json: Added.
525 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/readme.md: Added.
526 * Speedometer/resources/todomvc/architecture-examples/inferno/package.json: Added.
527 * Speedometer/resources/todomvc/architecture-examples/inferno/src/base.js: Added.
528 * Speedometer/resources/todomvc/architecture-examples/inferno/src/index.js: Added.
529 * Speedometer/resources/todomvc/architecture-examples/inferno/src/item.js: Added.
530 * Speedometer/resources/todomvc/architecture-examples/inferno/src/model.js: Added.
531 * Speedometer/resources/todomvc/architecture-examples/inferno/src/share.js: Added.
532 * Speedometer/resources/todomvc/architecture-examples/inferno/webpack.config.js: Added.
534 2017-05-11 Addy Osmani <addyosmani@gmail.com>
536 Speedometer: Add an Angular 2 (4.x) TodoMVC implementation
537 https://bugs.webkit.org/show_bug.cgi?id=171343
539 Reviewed by Ryosuke Niwa.
541 Add a TodoMVC Angular 2 (4.x) implem for the benchmark
543 * Speedometer/resources/todomvc/architecture-examples/angular/.angular-cli.json: Added.
544 * Speedometer/resources/todomvc/architecture-examples/angular/.editorconfig: Added.
545 * Speedometer/resources/todomvc/architecture-examples/angular/README.md: Added.
546 * Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-app.css: Added.
547 * Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-common.css: Added.
548 * Speedometer/resources/todomvc/architecture-examples/angular/dist/favicon.ico: Added.
549 * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Added.
550 * Speedometer/resources/todomvc/architecture-examples/angular/dist/inline.b342d102ba4a53bf2002.bundle.js: Added.
551 * Speedometer/resources/todomvc/architecture-examples/angular/dist/main.779eb2f1ddbe23ac61c7.bundle.js: Added.
552 * Speedometer/resources/todomvc/architecture-examples/angular/dist/polyfills.2d45a4c73c85e24fe474.bundle.js: Added.
553 * Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Added.
554 * Speedometer/resources/todomvc/architecture-examples/angular/dist/vendor.b4be818cb6d8028f9192.bundle.js: Added.
555 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Added.
556 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Added.
557 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Added.
558 * Speedometer/resources/todomvc/architecture-examples/angular/karma.conf.js: Added.
559 * Speedometer/resources/todomvc/architecture-examples/angular/package.json: Added.
560 * Speedometer/resources/todomvc/architecture-examples/angular/protractor.conf.js: Added.
561 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.css: Added.
562 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.html: Added.
563 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.spec.ts: Added.
564 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Added.
565 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.module.ts: Added.
566 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts: Added.
567 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.ts: Added.
568 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.spec.ts: Added.
569 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.ts: Added.
570 * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/.gitkeep: Added.
571 * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-app.css: Added.
572 * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-common.css: Added.
573 * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.prod.ts: Added.
574 * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Added.
575 * Speedometer/resources/todomvc/architecture-examples/angular/src/favicon.ico: Added.
576 * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Added.
577 * Speedometer/resources/todomvc/architecture-examples/angular/src/main.ts: Added.
578 * Speedometer/resources/todomvc/architecture-examples/angular/src/polyfills.ts: Added.
579 * Speedometer/resources/todomvc/architecture-examples/angular/src/styles.css: Added.
580 * Speedometer/resources/todomvc/architecture-examples/angular/src/test.ts: Added.
581 * Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.app.json: Added.
582 * Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.spec.json: Added.
583 * Speedometer/resources/todomvc/architecture-examples/angular/src/typings.d.ts: Added.
584 * Speedometer/resources/todomvc/architecture-examples/angular/tsconfig.json: Added.
585 * Speedometer/resources/todomvc/architecture-examples/angular/tslint.json: Added.
587 2017-05-11 Addy Osmani <addyosmani@gmail.com>
589 Speedometer: Add a Vue.js TodoMVC implementation
590 https://bugs.webkit.org/show_bug.cgi?id=171325
592 Reviewed by Ryosuke Niwa.
594 Adds a Vue.js TodoMVC implementation to Speedometer
596 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.babelrc: Added.
597 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.editorconfig: Added.
598 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintignore: Added.
599 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintrc.js: Added.
600 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: Added.
601 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/dev.env.js: Added.
602 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/index.js: Added.
603 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/prod.env.js: Added.
604 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/index.html: Added.
605 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.677b45842d9f8b96e5b23c18969233b7.css: Added.
606 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.b0e835874bc8949670d1.js: Added.
607 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.84b2b4fceb74ab1f91f3.js: Added.
608 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.a52517c5aa98e7fbea2e.js: Added.
609 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/index.html: Added.
610 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package.json: Added.
611 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/App.vue: Added.
612 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue: Added.
613 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/todo.css: Added.
614 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/main.js: Added.
615 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/yarn.lock: Added.
617 2017-05-11 Addy Osmani <addyosmani@gmail.com>
619 Speedometer: Update the vanilla JavaScript TodoMVC implem to a more recent version
620 https://bugs.webkit.org/show_bug.cgi?id=171306
622 Reviewed by Ryosuke Niwa.
624 Update vanilla JS TodoMVC implementation to the latest.
626 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
627 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
628 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
629 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
630 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html:
631 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js:
632 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js:
633 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js:
634 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js:
635 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
636 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/template.js: Added.
637 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js:
638 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-app-css/index.css: Added.
639 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.css: Added.
640 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.js: Added.
641 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/package.json: Added.
643 2017-05-11 Addy Osmani <addyosmani@gmail.com>
645 Speedometer: Add an ES2015 TodoMVC implementation
646 https://bugs.webkit.org/show_bug.cgi?id=171448
648 Reviewed by Ryosuke Niwa.
650 Adds ES2015 TodoMVC implementation for Speedometer
652 * Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Added.
653 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/index.css: Added.
654 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/package.json: Added.
655 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/readme.md: Added.
656 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.css: Added.
657 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.js: Added.
658 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/package.json: Added.
659 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/readme.md: Added.
660 * Speedometer/resources/todomvc/vanilla-examples/es2015/package.json: Added.
661 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/.jshintrc: Added.
662 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/app.js: Added.
663 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/controller.js: Added.
664 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/helpers.js: Added.
665 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/model.js: Added.
666 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/store.js: Added.
667 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/template.js: Added.
668 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/view.js: Added.
670 2017-05-11 Addy Osmani <addyosmani@gmail.com>
672 Speedometer: Add an Elm TodoMVC implementation
673 https://bugs.webkit.org/show_bug.cgi?id=171464
675 Reviewed by Ryosuke Niwa.
677 Speedometer: Add Elm TodoMVC implementation
679 * Speedometer/resources/todomvc/functional-prog-examples/elm/Todo.elm: Added.
680 * Speedometer/resources/todomvc/functional-prog-examples/elm/Todo/Task.elm: Added.
681 * Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js: Added.
682 * Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Added.
683 * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-app-css/index.css: Added.
684 * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.css: Added.
685 * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.js: Added.
686 * Speedometer/resources/todomvc/functional-prog-examples/elm/package.json: Added.
687 * Speedometer/resources/todomvc/functional-prog-examples/elm/readme.md: Added.
689 2017-05-11 Addy Osmani <addyosmani@gmail.com>
691 Speedometer: Update the Backbone.js implementation to a more recent library version
692 https://bugs.webkit.org/show_bug.cgi?id=171305
694 Reviewed by Ryosuke Niwa.
696 Updates the Backbone.js TodoMVC implementation to latest
698 * Speedometer/resources/todomvc/architecture-examples/backbone/bower.json: Removed.
699 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
700 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
701 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
702 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
703 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
704 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
705 * Speedometer/resources/todomvc/architecture-examples/backbone/index.html:
706 * Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js:
707 * Speedometer/resources/todomvc/architecture-examples/backbone/js/backbone.sync.js: Added.
708 * Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js:
709 * Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js:
710 * Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js:
711 * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js:
712 * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js:
713 * 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.
714 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Added.
715 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Added.
716 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.css: Added.
717 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.js: Added.
718 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore.js: Added.
719 * Speedometer/resources/todomvc/architecture-examples/backbone/package.json: Added.
721 2017-05-11 Addy Osmani <addyosmani@gmail.com>
723 Speedometer: Add a Preact.js TodoMVC implementation
724 https://bugs.webkit.org/show_bug.cgi?id=171323
726 Reviewed by Ryosuke Niwa.
728 Adds Preact.js TodoMVC implementation to Speedometer
730 * Speedometer/resources/todomvc/architecture-examples/preact/.babelrc: Added.
731 * Speedometer/resources/todomvc/architecture-examples/preact/README.md: Added.
732 * Speedometer/resources/todomvc/architecture-examples/preact/dist/app.js: Added.
733 * Speedometer/resources/todomvc/architecture-examples/preact/dist/index.html: Added.
734 * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.css: Added.
735 * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.js: Added.
736 * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc.css: Added.
737 * Speedometer/resources/todomvc/architecture-examples/preact/package.json: Added.
738 * Speedometer/resources/todomvc/architecture-examples/preact/rollup.config.js: Added.
739 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/footer.js: Added.
740 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/index.js: Added.
741 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/item.js: Added.
742 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/model.js: Added.
743 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/util.js: Added.
744 * Speedometer/resources/todomvc/architecture-examples/preact/src/index.html: Added.
745 * Speedometer/resources/todomvc/architecture-examples/preact/src/index.js: Added.
746 * Speedometer/resources/todomvc/architecture-examples/preact/webpack.config.babel.js: Added.
748 2017-05-11 Addy Osmani <addyosmani@gmail.com>
750 Speedometer: Update the jQuery implementation to a more recent library version
751 https://bugs.webkit.org/show_bug.cgi?id=171308
753 Reviewed by Ryosuke Niwa.
755 Updates the jQuery implementation of TodoMVC to a more recent version
757 * Speedometer/resources/todomvc/architecture-examples/jquery/bower.json: Removed.
758 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
759 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
760 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
761 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
762 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
763 * Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
764 * Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js:
765 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/handlebars/dist/handlebars.js: Added.
766 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/jquery/dist/jquery.js: Added.
767 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/index.css: Added.
768 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/package.json: Added.
769 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/readme.md: Added.
770 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.css: Added.
771 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.js: Added.
772 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/package.json: Added.
773 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/readme.md: Added.
774 * Speedometer/resources/todomvc/architecture-examples/jquery/package.json: Added.
775 * Speedometer/resources/todomvc/architecture-examples/jquery/readme.md:
777 2017-05-11 Addy Osmani <addyosmani@gmail.com>
779 Speedometer: Update the Flight.js implementation to a more recent library version
780 https://bugs.webkit.org/show_bug.cgi?id=171471
782 Reviewed by Ryosuke Niwa.
784 Speedometer: Update FlightJS TodoMVC implementation
786 * Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Removed.
787 * Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Removed.
788 * Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Removed.
789 * Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Removed.
790 * Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Removed.
791 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Removed.
792 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Removed.
793 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Removed.
794 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Removed.
795 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Removed.
796 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Removed.
797 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Removed.
798 * 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.
799 * 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.
800 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Added.
801 * 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.
802 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/store.js: Added.
803 * 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.
804 * 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.
805 * 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.
806 * 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.
807 * 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.
808 * 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.
809 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js.
810 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/stats.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html.
811 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/todo.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html.
812 * Speedometer/resources/todomvc/dependency-examples/flight/flight/index.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/index.html.
813 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/README.md: Added.
814 * 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.
815 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.min.js: Added.
816 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/package.json: Added.
817 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE: Added.
818 * 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.
819 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.min.js: Added.
820 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.js: Added.
821 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.min.js: Added.
822 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE: Added.
823 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/index.js: Added.
824 * 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.
825 * 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.
826 * 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.
827 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/compose.js: Added.
828 * 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.
829 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/logger.js: Added.
830 * 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.
831 * 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.
832 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/README.md: Added.
833 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.js: Added.
834 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.min.js: Added.
835 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/package.json: Added.
836 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/memorystorage/memorystorage.js: Added.
837 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE: Added.
838 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/README.md: Added.
839 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/bower.json: Added.
840 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/package.json: Added.
841 * 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.
842 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/README.md: Added.
843 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/package.json: Added.
844 * 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.
845 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/index.css: Added.
846 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/package.json: Added.
847 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/readme.md: Added.
848 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.css: Added.
849 * 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.
850 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/package.json: Added.
851 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/readme.md: Added.
852 * Speedometer/resources/todomvc/dependency-examples/flight/flight/package.json: Added.
853 * Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Removed.
854 * Speedometer/resources/todomvc/dependency-examples/flight/package.json: Removed.
855 * Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Removed.
856 * Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Removed.
857 * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Removed.
858 * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Removed.
859 * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Removed.
860 * Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Removed.
861 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Removed.
862 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Removed.
863 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Removed.
864 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Removed.
865 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Removed.
866 * Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Removed.
868 2017-05-11 Addy Osmani <addyosmani@gmail.com>
870 Speedometer: Update the AngularJS implementation to a more recent library version
871 https://bugs.webkit.org/show_bug.cgi?id=171307
873 Reviewed by Ryosuke Niwa.
875 Updates the AngularJS implementation of TodoMVC to 1.4.x
877 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Removed.
878 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
879 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
880 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
881 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
882 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
883 * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html:
884 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js:
885 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js:
886 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
887 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js:
888 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js:
889 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js:
890 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js: Added.
891 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js: Added.
892 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js: Added.
893 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/index.css: Added.
894 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Added.
895 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/readme.md: Added.
896 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.css: Added.
897 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.js: Added.
898 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Added.
899 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/readme.md: Added.
900 * Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Added.
901 * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md:
902 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
903 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Removed.
904 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
905 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
906 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
907 * Speedometer/resources/todomvc/architecture-examples/angularjs/todomvc-index.html: Added.
909 2017-05-09 Jon Davis <jond@apple.com>
911 [ARES6] Improved the running test indicator
912 https://bugs.webkit.org/show_bug.cgi?id=171400
914 Running tests show a triangle before the test title and the titles are white.
916 Reviewed by Joseph Pecoraro.
921 (.test .running:before):
922 (.test .indicator): Deleted.
923 (.test .indicator.running): Deleted.
924 (@keyframes test-running): Deleted.
926 2017-05-04 Andy VanWagoner <thetalecrafter@gmail.com>
928 [INTL] Add PerformanceTests for Intl objects
929 https://bugs.webkit.org/show_bug.cgi?id=171695
931 Reviewed by Benjamin Poulain.
933 * Intl/collator-compare-all-options.html: Added.
934 * Intl/collator-compare-default.html: Added.
935 * Intl/collator-create-all-options.html: Added.
936 * Intl/collator-create-default.html: Added.
937 * Intl/datetimeformat-create-all-options.html: Added.
938 * Intl/datetimeformat-create-default.html: Added.
939 * Intl/datetimeformat-format-all-options.html: Added.
940 * Intl/datetimeformat-format-default.html: Added.
941 * Intl/numberformat-create-all-options.html: Added.
942 * Intl/numberformat-create-default.html: Added.
943 * Intl/numberformat-format-all-options.html: Added.
944 * Intl/numberformat-format-default.html: Added.
946 2017-04-27 Michael Saboff <msaboff@apple.com>
948 Add back tests inadvertently deleted in r205032.
950 Rubber stamped by Geoffrey Garen.
952 * MallocBench/run-malloc-benchmarks:
954 2017-04-25 Myles C. Maxfield <mmaxfield@apple.com>
956 Add performance test for FontCache::systemFallbackForCharacters()
957 https://bugs.webkit.org/show_bug.cgi?id=170842
959 Reviewed by Tim Horton.
961 * Layout/word-joiner.html: Added.
963 2017-04-24 Saam Barati <sbarati@apple.com>
966 https://bugs.webkit.org/show_bug.cgi?id=171206
968 Rubber stamped by Filip Pizlo.
970 This patch adds a new test to ARES6 called ML. ML is an implementation of
971 a feedforward neural network: https://github.com/mljs/feedforward-neural-networks.
972 It makes heavy use of classes, and does non-trivial matrix math using the
973 ml-matrix library: https://github.com/mljs/matrix
980 * ARES-6/ml/benchmark.js: Added.
981 * ARES-6/ml/index.js: Added.
982 * ARES-6/ml_benchmark.js: Added.
984 2017-04-21 Zalan Bujtas <zalan@apple.com>
986 Simple line layout: Add performance test to measure mid-word line breaking with long text.
987 https://bugs.webkit.org/show_bug.cgi?id=171136
989 Reviewed by Ryosuke Niwa.
991 * Layout/simple-line-layout-word-break-long-text.html: Added.
993 2017-04-17 Ryan Haddad <ryanhaddad@apple.com>
995 Unreviewed, rolling out r215366.
997 This test is failing on performance bots.
1001 "Add performance test for asking the platform for a font for
1003 https://bugs.webkit.org/show_bug.cgi?id=170842
1004 http://trac.webkit.org/changeset/215366
1006 2017-04-14 Myles C. Maxfield <mmaxfield@apple.com>
1008 Add performance test for asking the platform for a font for U+2060 WORD JOINER
1009 https://bugs.webkit.org/show_bug.cgi?id=170842
1011 Reviewed by Tim Horton.
1013 * Layout/word-joiner.html: Added.
1015 2017-04-03 Saam Barati <sbarati@apple.com>
1017 Add a new test to ARES6
1018 https://bugs.webkit.org/show_bug.cgi?id=170077
1020 Rubber stamped by Filip Pizlo.
1022 This patch adds a new test to ARES6. The test is called Babylon. Babylon is
1023 the JavaScript parser that is part of the Babel transpiler. The test runs
1024 the parser on 4 different JS scripts.
1026 * ARES-6/Babylon: Added.
1027 * ARES-6/Babylon/AUTHORS: Added.
1028 * ARES-6/Babylon/air-blob.js: Added.
1031 (Reg.prototype.get index):
1032 (Reg.prototype.get type):
1033 (Reg.prototype.get name):
1034 (Reg.prototype.get isCalleeSave):
1035 (Reg.prototype.get isReg):
1036 (Reg.prototype.hash):
1037 (Reg.prototype.toString):
1042 (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
1043 * ARES-6/Babylon/babylon-blob.js: Added.
1044 (export.default.Parser):
1045 (export.default.Parser.prototype.isReservedWord):
1046 (export.default.Parser.prototype.hasPlugin):
1047 (export.default.Parser.prototype.extend):
1048 (export.default.Parser.prototype.loadPlugins):
1049 (export.default.Parser.prototype.parse):
1050 * ARES-6/Babylon/basic-blob.js: Added.
1051 (Basic.NumberApply):
1064 (Basic.GreaterThan):
1066 (Basic.GreaterEqual):
1075 (sideState.shouldStop):
1086 * ARES-6/Babylon/benchmark.js: Added.
1087 (this.performance.performance.now.currentTime):
1088 (else.this.preciseTime.currentTime):
1090 (BabylonBenchmark.appendSource):
1092 (BabylonBenchmark.prototype.runIteration.parse):
1093 (BabylonBenchmark.prototype.runIteration.parseExpression):
1094 (BabylonBenchmark.prototype.runIteration):
1096 * ARES-6/Babylon/index.js: Added.
1097 (isIdentifierStart):
1107 (tt.parenR.updateContext.tt.braceR.updateContext):
1108 (tt.name.updateContext):
1109 (tt.braceL.updateContext):
1110 (tt.dollarBraceL.updateContext):
1111 (tt.parenL.updateContext):
1112 (tt.incDec.updateContext):
1113 (tt._function.updateContext):
1114 (tt.backQuote.updateContext):
1115 (State.prototype.init):
1116 (State.prototype.curPosition):
1117 (State.prototype.clone):
1120 (codePointToString):
1122 (Tokenizer.prototype.next):
1123 (Tokenizer.prototype.eat):
1124 (Tokenizer.prototype.match):
1125 (Tokenizer.prototype.isKeyword):
1126 (Tokenizer.prototype.lookahead):
1127 (Tokenizer.prototype.setStrict):
1128 (Tokenizer.prototype.curContext):
1129 (Tokenizer.prototype.nextToken):
1130 (Tokenizer.prototype.readToken):
1131 (Tokenizer.prototype.fullCharCodeAtPos):
1132 (Tokenizer.prototype.pushComment):
1133 (Tokenizer.prototype.skipBlockComment):
1134 (Tokenizer.prototype.skipLineComment):
1135 (Tokenizer.prototype.skipSpace):
1136 (Tokenizer.prototype.finishToken):
1137 (Tokenizer.prototype.readToken_dot):
1138 (Tokenizer.prototype.readToken_slash):
1139 (Tokenizer.prototype.readToken_mult_modulo):
1140 (Tokenizer.prototype.readToken_pipe_amp):
1141 (Tokenizer.prototype.readToken_caret):
1142 (Tokenizer.prototype.readToken_plus_min):
1143 (Tokenizer.prototype.readToken_lt_gt):
1144 (Tokenizer.prototype.readToken_eq_excl):
1145 (Tokenizer.prototype.getTokenFromCode):
1146 (Tokenizer.prototype.finishOp):
1147 (Tokenizer.prototype.readRegexp):
1148 (Tokenizer.prototype.readInt):
1149 (Tokenizer.prototype.readRadixNumber):
1150 (Tokenizer.prototype.readNumber):
1151 (Tokenizer.prototype.readCodePoint):
1152 (Tokenizer.prototype.readString):
1153 (Tokenizer.prototype.readTmplToken):
1154 (Tokenizer.prototype.readEscapedChar):
1155 (Tokenizer.prototype.readHexChar):
1156 (Tokenizer.prototype.readWord1):
1157 (Tokenizer.prototype.readWord):
1158 (Tokenizer.prototype.braceIsBlock):
1159 (Tokenizer.prototype.updateContext):
1161 (prototype.isReservedWord):
1162 (prototype.hasPlugin):
1164 (prototype.loadPlugins):
1168 (pp.processComment):
1169 (pp.checkPropClash):
1171 (pp.parseExpression):
1172 (pp.parseMaybeAssign):
1174 * ARES-6/Babylon/inspector-blob.js: Added.
1175 (WebInspector.ScriptSyntaxTree):
1176 (WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
1177 (WebInspector.ScriptSyntaxTree.prototype.forEachNode):
1178 (WebInspector.ScriptSyntaxTree.prototype.filter):
1179 (WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
1180 (WebInspector.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange):
1181 (WebInspector.ScriptSyntaxTree.prototype.filterByRange):
1182 (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
1183 (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
1184 (WebInspector.ScriptSyntaxTree.functionReturnDivot):
1185 (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
1186 (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
1187 (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
1188 (WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
1189 (WebInspector.ScriptSyntaxTree.prototype._recurse):
1190 (WebInspector.ScriptSyntaxTree.prototype._recurseArray):
1191 (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1192 * ARES-6/about.html:
1193 * ARES-6/babylon_benchmark.js: Added.
1196 * ARES-6/index.html:
1197 * ARES-6/results.js:
1198 (Results.prototype.reportResult):
1199 (Results.prototype.reportResult.averageAbovePercentile): Deleted.
1200 * ARES-6/styles.css:
1202 (@media only screen and (max-width: 784px)):
1204 2017-03-29 Zalan Bujtas <zalan@apple.com>
1206 [Arabic text] Add whitespace preserve/word wrap performance test.
1207 https://bugs.webkit.org/show_bug.cgi?id=170243
1209 Reviewed by Simon Fraser.
1211 * Layout/ArabicLineLayout-pre-and-wrap.html: Added.
1213 2017-03-08 Yusuke Suzuki <utatane.tea@gmail.com>
1215 [JSC] Add helpers to run Six Speed to run-jsc-benchmarks
1216 https://bugs.webkit.org/show_bug.cgi?id=169351
1218 Reviewed by Saam Barati.
1220 * SixSpeed/wrappers/wrapper.js: Added.
1225 2017-03-08 Jon Davis <jond@apple.com>
1227 Fixed ARES-6 animations for other browsers
1229 Rubber stamped by Saam Barati.
1231 * ARES-6/styles.css:
1235 2017-03-07 Filip Pizlo <fpizlo@apple.com>
1237 Revise the ARES-6 explainer text
1238 https://bugs.webkit.org/show_bug.cgi?id=169287
1240 Reviewed by Saam Barati.
1242 Just did some copy-editing.
1244 * ARES-6/about.html:
1246 2017-03-06 Jon Davis <jond@apple.com>
1248 Refined the ARES-6 experience
1249 https://bugs.webkit.org/show_bug.cgi?id=169205
1251 Reviewed by Saam Barati.
1253 * ARES-6/about.html: Copied from PerformanceTests/ARES-6/index.html.
1255 (Driver.prototype.start):
1256 (Driver.prototype._updateIterations):
1258 * ARES-6/index.html:
1260 (Stats.prototype.toString.span.span):
1261 * ARES-6/styles.css:
1268 (.test:nth-child(odd)):
1273 (.button.return:before):
1274 (@keyframes fade-in):
1275 (@keyframes scale-in):
1276 (@keyframes flicker-in):
1277 (@keyframes wipe-in):
1279 (.testing, .about): Deleted.
1280 (.testing): Deleted.
1282 (#about:target): Deleted.
1284 2017-03-06 Jeremy Jones <jeremyj@apple.com>
1286 StandardCanPlayThrough.html does not work on iOS.
1287 https://bugs.webkit.org/show_bug.cgi?id=169207
1289 Reviewed by Jer Noble.
1291 On iOS only, add muted=true and autoplay=allowed. The loading policy on iOS requires these attributes to load enough
1292 data to trigger canPlayThrough.
1294 * Media/StandardCanPlayThrough.html:
1296 2017-02-13 Zalan Bujtas <zalan@apple.com>
1298 Simple line layout: Add performance test with text-rendering: optimizeSpeed
1299 https://bugs.webkit.org/show_bug.cgi?id=168248
1301 Reviewed by Simon Fraser.
1303 * Layout/simple-line-layout-with-varying-content-and-optimized-speed.html: Added.
1305 2017-02-10 Zalan Bujtas <zalan@apple.com>
1307 Mail hangs when removing multiple rows from large table.
1308 https://bugs.webkit.org/show_bug.cgi?id=168103
1309 <rdar://problem/30090186>
1311 Reviewed by Ryosuke Niwa.
1313 * DOM/large-table-edit.html: Added.
1315 2017-02-05 Filip Pizlo <fpizlo@apple.com>
1317 Beef up the ARES-6 explainer text
1318 https://bugs.webkit.org/show_bug.cgi?id=167867
1320 Reviewed by Saam Barati.
1322 Added appropriate links.
1324 Added text that explains the subscores.
1326 * ARES-6/index.html:
1328 2017-02-06 Jer Noble <jer.noble@apple.com>
1330 Playback stalls when a SourceBuffer append causes frame eviction
1331 https://bugs.webkit.org/show_bug.cgi?id=167834
1333 Reviewed by Eric Carlson.
1335 Add an in-page performance test measuring the amount of time required
1336 to append a large amount of media data to a SourceBuffer, and then to
1337 completely remove that data 30s at a time.
1339 Add a microbenchmark for MediaTime which measures the amount of time
1340 required to create a 1M entry std::map and traverse the map 1M times.
1342 * Media/MSERemoveCodedFrames.html: Added.
1343 * Media/media-source-loader.js:
1344 (MediaSourceLoader.prototype.get duration):
1345 * MediaTime/Configurations/Base.xcconfig: Added.
1346 * MediaTime/Configurations/DebugRelease.xcconfig: Added.
1347 * MediaTime/Makefile: Added.
1348 * MediaTime/MediaTime.xcodeproj/project.pbxproj: Added.
1349 * MediaTime/main.cpp: Added.
1355 2017-02-06 Saam Barati <sbarati@apple.com>
1357 Make ARES-6 work from the CLI again
1358 https://bugs.webkit.org/show_bug.cgi?id=167895
1360 Reviewed by Michael Saboff.
1363 (Driver.prototype.readyTrigger):
1364 (Driver.prototype.disableTrigger):
1366 (Stats.prototype.toString.span.span):
1367 (Stats.prototype.toString.return.span):
1368 (Stats.prototype.toString):
1370 2017-02-06 Ryan Haddad <ryanhaddad@apple.com>
1372 Skip ARES-6 on performance bots
1373 https://bugs.webkit.org/show_bug.cgi?id=167863
1375 Unreviewed test gardening.
1377 ES6SampleBench was renamed to ARES-6, so this should be updated in PerformanceTests/Skipped as well.
1381 2017-02-05 Filip Pizlo <fpizlo@apple.com>
1383 Change ES6SampleBench into ARES-6
1384 https://bugs.webkit.org/show_bug.cgi?id=167863
1386 Rubber stamped by Saam Barati.
1388 This imports changes that Jonathan Davis (jond@apple.com) made to ES6SampleBench to make it look
1389 super awesome. Its now called ARES-6.
1391 * ARES-6: Copied from PerformanceTests/ES6SampleBench.
1392 * ARES-6/ARES-6.svg: Added.
1395 (Driver.prototype.readyTrigger):
1396 (Driver.prototype.disableTrigger):
1397 (Driver.prototype.start):
1398 (Driver.prototype._updateIterations):
1400 * ARES-6/index.html:
1401 * ARES-6/results.js:
1402 (Results.prototype.reportRunning):
1403 (Results.prototype.reportDone):
1405 (Stats.prototype.toString.return.span):
1406 (Stats.prototype.toString.span.span):
1407 (Stats.prototype.toString): Deleted.
1408 * ARES-6/style.css: Removed.
1409 * ARES-6/styles.css: Added.
1423 (.start.ready:hover):
1425 (.start.ready .testrun):
1430 (.test .indicator.running):
1431 (@keyframes test-running):
1445 (@media only screen and (max-width: 784px)):
1446 * ARES-6/swoop.svg: Added.
1447 * ES6SampleBench: Removed.
1448 * ES6SampleBench/Air: Removed.
1449 * ES6SampleBench/Air/README.md: Removed.
1450 * ES6SampleBench/Air/airjs-tests.yaml: Removed.
1451 * ES6SampleBench/Air/all.js: Removed.
1452 * ES6SampleBench/Air/allocate_stack.js: Removed.
1453 * ES6SampleBench/Air/arg.js: Removed.
1454 * ES6SampleBench/Air/basic_block.js: Removed.
1455 * ES6SampleBench/Air/benchmark.js: Removed.
1456 * ES6SampleBench/Air/code.js: Removed.
1457 * ES6SampleBench/Air/custom.js: Removed.
1458 * ES6SampleBench/Air/frequented_block.js: Removed.
1459 * ES6SampleBench/Air/insertion_set.js: Removed.
1460 * ES6SampleBench/Air/inst.js: Removed.
1461 * ES6SampleBench/Air/liveness.js: Removed.
1462 * ES6SampleBench/Air/make_dist.sh: Removed.
1463 * ES6SampleBench/Air/opcode.js: Removed.
1464 * ES6SampleBench/Air/payload-airjs-ACLj8C.js: Removed.
1465 * ES6SampleBench/Air/payload-gbemu-executeIteration.js: Removed.
1466 * ES6SampleBench/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
1467 * ES6SampleBench/Air/payload-typescript-scanIdentifier.js: Removed.
1468 * ES6SampleBench/Air/reg.js: Removed.
1469 * ES6SampleBench/Air/stack_slot.js: Removed.
1470 * ES6SampleBench/Air/stress-test.js: Removed.
1471 * ES6SampleBench/Air/strip-hash.rb: Removed.
1472 * ES6SampleBench/Air/symbols.js: Removed.
1473 * ES6SampleBench/Air/test.html: Removed.
1474 * ES6SampleBench/Air/test.js: Removed.
1475 * ES6SampleBench/Air/tmp.js: Removed.
1476 * ES6SampleBench/Air/tmp_base.js: Removed.
1477 * ES6SampleBench/Air/util.js: Removed.
1478 * ES6SampleBench/Basic: Removed.
1479 * ES6SampleBench/Basic/ast.js: Removed.
1480 * ES6SampleBench/Basic/basic-tests.yaml: Removed.
1481 * ES6SampleBench/Basic/basic.js: Removed.
1482 * ES6SampleBench/Basic/benchmark.js: Removed.
1483 * ES6SampleBench/Basic/caseless_map.js: Removed.
1484 * ES6SampleBench/Basic/lexer.js: Removed.
1485 * ES6SampleBench/Basic/number.js: Removed.
1486 * ES6SampleBench/Basic/parser.js: Removed.
1487 * ES6SampleBench/Basic/random.js: Removed.
1488 * ES6SampleBench/Basic/state.js: Removed.
1489 * ES6SampleBench/Basic/stress-test.js: Removed.
1490 * ES6SampleBench/Basic/test.html: Removed.
1491 * ES6SampleBench/Basic/test.js: Removed.
1492 * ES6SampleBench/Basic/util.js: Removed.
1493 * ES6SampleBench/air_benchmark.js: Removed.
1494 * ES6SampleBench/basic_benchmark.js: Removed.
1495 * ES6SampleBench/cli.js: Removed.
1496 * ES6SampleBench/driver.js: Removed.
1497 * ES6SampleBench/glue.js: Removed.
1498 * ES6SampleBench/index.html: Removed.
1499 * ES6SampleBench/results.js: Removed.
1500 * ES6SampleBench/stats.js: Removed.
1501 * ES6SampleBench/style.css: Removed.
1503 2017-02-05 Zalan Bujtas <zalan@apple.com>
1505 Simple line layout: Add performance test with varying string and font-size to minimize width-cache hit.
1506 https://bugs.webkit.org/show_bug.cgi?id=167859
1507 <rdar://problem/30368070>
1509 Reviewed by Antti Koivisto.
1511 This is in preparation for webkit.org/b/167843.
1513 * Layout/simple-line-layout-with-varying-content.html: Added.
1515 2017-01-16 Filip Pizlo <fpizlo@apple.com>
1517 Add framerate baselines to the splay-detail test
1518 https://bugs.webkit.org/show_bug.cgi?id=167659
1520 Reviewed by Geoffrey Garen.
1522 * JetStream/Octane2/splay-detail.html:
1524 2017-01-31 Carlos Alberto Lopez Perez <clopez@igalia.com>
1526 [EFL][GTK] Skip some IndexedDB tests that time out on the Perf bots.
1528 Unreviewed performance test gardening.
1532 2017-01-30 Zalan Bujtas <zalan@apple.com>
1534 Simple line layout: Small tweaks to improve performance.
1535 https://bugs.webkit.org/show_bug.cgi?id=167611
1536 <rdar://problem/30274294>
1538 Reviewed by Simon Fraser.
1540 * Layout/simple-line-layout-non-repeating-text.html: Added.
1542 2017-01-13 Said Abou-Hallawa <sabouhallawa@apple.com>
1544 26 MotionMark performance tests failing
1545 https://bugs.webkit.org/show_bug.cgi?id=166854
1547 Reviewed by Ryosuke Niwa.
1549 Skip running MotionMark on WebKit perf bots.
1553 2017-01-06 Said Abou-Hallawa <sabouhallawa@apple.com>
1555 Rename the directory and the files of MotionMark from Animometer to MotionMark
1556 https://bugs.webkit.org/show_bug.cgi?id=166659
1558 Reviewed by Jon Lee.
1560 Rename the directory and the files of the benchmark to its new name.
1562 * MotionMark/developer.html: Renamed from PerformanceTests/Animometer/developer.html.
1563 * MotionMark/index.html: Renamed from PerformanceTests/Animometer/index.html.
1564 * MotionMark/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/d3.min.js.
1565 * MotionMark/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/graph.js.
1566 * MotionMark/resources/debug-runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.css.
1567 * MotionMark/resources/debug-runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.js.
1568 * MotionMark/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/tests.js.
1569 * MotionMark/resources/extensions.js: Renamed from PerformanceTests/Animometer/resources/extensions.js.
1570 * MotionMark/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/runner/benchmark-runner.js.
1571 * MotionMark/resources/runner/crystal.svg: Renamed from PerformanceTests/Animometer/resources/runner/crystal.svg.
1572 * MotionMark/resources/runner/lines.svg: Renamed from PerformanceTests/Animometer/resources/runner/lines.svg.
1573 * MotionMark/resources/runner/logo.svg: Renamed from PerformanceTests/Animometer/resources/runner/logo.svg.
1574 * MotionMark/resources/runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/runner/animometer.css.
1575 * MotionMark/resources/runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/runner/animometer.js.
1576 * MotionMark/resources/runner/tests.js: Renamed from PerformanceTests/Animometer/resources/runner/tests.js.
1577 * MotionMark/resources/statistics.js: Renamed from PerformanceTests/Animometer/resources/statistics.js.
1578 * MotionMark/resources/strings.js: Renamed from PerformanceTests/Animometer/resources/strings.js.
1579 * MotionMark/tests/3d/resources/webgl.js: Renamed from PerformanceTests/Animometer/tests/3d/resources/webgl.js.
1580 * MotionMark/tests/3d/webgl.html: Renamed from PerformanceTests/Animometer/tests/3d/webgl.html.
1581 * MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-images.html.
1582 * MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html.
1583 * MotionMark/tests/bouncing-particles/bouncing-css-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-images.html.
1584 * MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-shapes.html.
1585 * MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-images.html.
1586 * MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-shapes.html.
1587 * MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-tagged-images.html.
1588 * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js.
1589 * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js.
1590 * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js.
1591 * MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-images.js.
1592 * MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js.
1593 * MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js.
1594 * MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js.
1595 * MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js.
1596 * MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js.
1597 * MotionMark/tests/bouncing-particles/resources/image1.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image1.jpg.
1598 * MotionMark/tests/bouncing-particles/resources/image2.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image2.jpg.
1599 * MotionMark/tests/bouncing-particles/resources/image3.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image3.jpg.
1600 * MotionMark/tests/bouncing-particles/resources/image4.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image4.jpg.
1601 * MotionMark/tests/bouncing-particles/resources/image5.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image5.jpg.
1602 * MotionMark/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/dom/compositing-transforms.html.
1603 * MotionMark/tests/dom/focus.html: Renamed from PerformanceTests/Animometer/tests/dom/focus.html.
1604 * MotionMark/tests/dom/leaves.html: Renamed from PerformanceTests/Animometer/tests/dom/leaves.html.
1605 * MotionMark/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/dom/particles.html.
1606 * MotionMark/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/compositing-transforms.js.
1607 * MotionMark/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/dom-particles.js.
1608 * MotionMark/tests/dom/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/focus.js.
1609 * MotionMark/tests/dom/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/leaves.js.
1610 * MotionMark/tests/master/canvas-stage.html: Renamed from PerformanceTests/Animometer/tests/master/canvas-stage.html.
1611 * MotionMark/tests/master/focus.html: Renamed from PerformanceTests/Animometer/tests/master/focus.html.
1612 * MotionMark/tests/master/image-data.html: Renamed from PerformanceTests/Animometer/tests/master/image-data.html.
1613 * MotionMark/tests/master/leaves.html: Renamed from PerformanceTests/Animometer/tests/master/leaves.html.
1614 * MotionMark/tests/master/multiply.html: Renamed from PerformanceTests/Animometer/tests/master/multiply.html.
1615 * MotionMark/tests/master/resources/canvas-stage.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-stage.js.
1616 * MotionMark/tests/master/resources/canvas-tests.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-tests.js.
1617 * MotionMark/tests/master/resources/compass.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/compass.svg.
1618 * MotionMark/tests/master/resources/compass100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/compass100.png.
1619 * MotionMark/tests/master/resources/console.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/console.svg.
1620 * MotionMark/tests/master/resources/console100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/console100.png.
1621 * MotionMark/tests/master/resources/contribute.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute.svg.
1622 * MotionMark/tests/master/resources/contribute100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute100.png.
1623 * MotionMark/tests/master/resources/debugger.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger.svg.
1624 * MotionMark/tests/master/resources/debugger100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger100.png.
1625 * MotionMark/tests/master/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/master/resources/focus.js.
1626 * MotionMark/tests/master/resources/image-data.js: Renamed from PerformanceTests/Animometer/tests/master/resources/image-data.js.
1627 * MotionMark/tests/master/resources/inspector.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector.svg.
1628 * MotionMark/tests/master/resources/inspector100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector100.png.
1629 * MotionMark/tests/master/resources/layout.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/layout.svg.
1630 * MotionMark/tests/master/resources/layout100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/layout100.png.
1631 * MotionMark/tests/master/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/master/resources/leaves.js.
1632 * MotionMark/tests/master/resources/multiply.js: Renamed from PerformanceTests/Animometer/tests/master/resources/multiply.js.
1633 * MotionMark/tests/master/resources/particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/particles.js.
1634 * MotionMark/tests/master/resources/performance.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/performance.svg.
1635 * MotionMark/tests/master/resources/performance100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/performance100.png.
1636 * MotionMark/tests/master/resources/script.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/script.svg.
1637 * MotionMark/tests/master/resources/script100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/script100.png.
1638 * MotionMark/tests/master/resources/shortcuts.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts.svg.
1639 * MotionMark/tests/master/resources/shortcuts100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts100.png.
1640 * MotionMark/tests/master/resources/standards.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/standards.svg.
1641 * MotionMark/tests/master/resources/standards100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/standards100.png.
1642 * MotionMark/tests/master/resources/storage.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/storage.svg.
1643 * MotionMark/tests/master/resources/storage100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/storage100.png.
1644 * MotionMark/tests/master/resources/styles.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/styles.svg.
1645 * MotionMark/tests/master/resources/styles100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/styles100.png.
1646 * MotionMark/tests/master/resources/svg-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/svg-particles.js.
1647 * MotionMark/tests/master/resources/text.js: Renamed from PerformanceTests/Animometer/tests/master/resources/text.js.
1648 * MotionMark/tests/master/resources/timeline.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline.svg.
1649 * MotionMark/tests/master/resources/timeline100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline100.png.
1650 * MotionMark/tests/master/svg-particles.html: Renamed from PerformanceTests/Animometer/tests/master/svg-particles.html.
1651 * MotionMark/tests/master/text.html: Renamed from PerformanceTests/Animometer/tests/master/text.html.
1652 * MotionMark/tests/resources/main.js: Renamed from PerformanceTests/Animometer/tests/resources/main.js.
1653 * MotionMark/tests/resources/math.js: Renamed from PerformanceTests/Animometer/tests/resources/math.js.
1654 * MotionMark/tests/resources/stage.css: Renamed from PerformanceTests/Animometer/tests/resources/stage.css.
1655 * MotionMark/tests/resources/star.svg: Renamed from PerformanceTests/Animometer/tests/resources/star.svg.
1656 * MotionMark/tests/resources/yin-yang.png: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.png.
1657 * MotionMark/tests/resources/yin-yang.svg: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.svg.
1658 * MotionMark/tests/simple/resources/simple-canvas-paths.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas-paths.js.
1659 * MotionMark/tests/simple/resources/simple-canvas.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas.js.
1660 * MotionMark/tests/simple/resources/tiled-canvas-image.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/tiled-canvas-image.js.
1661 * MotionMark/tests/simple/simple-canvas-paths.html: Renamed from PerformanceTests/Animometer/tests/simple/simple-canvas-paths.html.
1662 * MotionMark/tests/simple/tiled-canvas-image.html: Renamed from PerformanceTests/Animometer/tests/simple/tiled-canvas-image.html.
1663 * MotionMark/tests/template/resources/template-canvas.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-canvas.js.
1664 * MotionMark/tests/template/resources/template-css.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-css.js.
1665 * MotionMark/tests/template/resources/template-svg.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-svg.js.
1666 * MotionMark/tests/template/template-canvas.html: Renamed from PerformanceTests/Animometer/tests/template/template-canvas.html.
1667 * MotionMark/tests/template/template-css.html: Renamed from PerformanceTests/Animometer/tests/template/template-css.html.
1668 * MotionMark/tests/template/template-svg.html: Renamed from PerformanceTests/Animometer/tests/template/template-svg.html.
1670 2016-12-13 Brady Eidson <beidson@apple.com>
1672 Add a PerfTest targeting IDBObjectStore.get().
1673 https://bugs.webkit.org/show_bug.cgi?id=165816
1675 Reviewed by Alex Christensen.
1677 * IndexedDB/objectstore-get.html: Added.
1679 2016-12-13 Brady Eidson <beidson@apple.com>
1681 Add a PerfTest targeting IDBIndex.get().
1682 https://bugs.webkit.org/show_bug.cgi?id=165803
1684 Reviewed by Alex Christensen.
1686 * IndexedDB/index-get.html: Added.
1688 2016-12-12 Brady Eidson <beidson@apple.com>
1690 More IndexedDB perf tests.
1691 https://bugs.webkit.org/show_bug.cgi?id=165634
1693 Reviewed by Sam Weinig.
1695 * IndexedDB/index-multientry.html:
1696 * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
1697 * IndexedDB/large-number-of-inserts.html: Added.
1698 * IndexedDB/objectstore-cursor.html: Added. Runtime cut in 1/4th compared to r209672.
1700 * resources/runner.js:
1702 2016-12-12 Commit Queue <commit-queue@webkit.org>
1704 Unreviewed, rolling out r209672.
1705 https://bugs.webkit.org/show_bug.cgi?id=165766
1707 IndexedDB/objectstore-cursor.html perf test always times out
1708 (Requested by ap on #webkit).
1712 "More IndexedDB perf tests."
1713 https://bugs.webkit.org/show_bug.cgi?id=165634
1714 http://trac.webkit.org/changeset/209672
1716 2016-12-10 Brady Eidson <beidson@apple.com>
1718 More IndexedDB perf tests.
1719 https://bugs.webkit.org/show_bug.cgi?id=165634
1721 Reviewed by Sam Weinig.
1723 * IndexedDB/index-multientry.html:
1724 * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
1725 * IndexedDB/large-number-of-inserts.html: Added.
1726 * IndexedDB/objectstore-cursor.html: Added.
1728 * resources/runner.js: Add "track responsiveness" functionality to PerfTestRunner.
1730 2016-12-06 Filip Pizlo <fpizlo@apple.com>
1732 Concurrent GC should be stable enough to land enabled
1733 https://bugs.webkit.org/show_bug.cgi?id=164990
1735 Reviewed by Geoffrey Garen.
1737 Made CDjs more configurable and refined the "large.js" configuration. I was using that one and
1738 the new "long.js" configuration to tune concurrent eden GCs.
1740 Added a new way of running Splay in browser, which using chartjs to plot the execution times of
1741 2000 iterations. This includes the minified chartjs.
1743 * JetStream/Octane2/splay-detail.html: Added.
1744 * JetStream/cdjs/benchmark.js:
1747 * JetStream/cdjs/long.js: Added.
1749 2016-12-07 Brady Eidson <beidson@apple.com>
1751 Add IDB perf tests stressing key size.
1752 https://bugs.webkit.org/show_bug.cgi?id=165567
1754 Reviewed by Alex Christensen.
1756 * IndexedDB/large-array-keys.html: Added.
1757 * IndexedDB/large-binary-keys.html: Added.
1758 * IndexedDB/large-string-keys.html: Added.
1760 2016-12-05 Brady Eidson <beidson@apple.com>
1762 Add an IndexedDB perf test to PerformanceTests.
1763 https://bugs.webkit.org/show_bug.cgi?id=165430
1765 Reviewed by Alex Christensen.
1767 * IndexedDB/index-multientry.html: Added.
1769 2016-12-02 Filip Pizlo <fpizlo@apple.com>
1771 ES6SampleBench should report an average for Steady State so that all of the numbers are comparable
1772 https://bugs.webkit.org/show_bug.cgi?id=165325
1774 Reviewed by Saam Barati.
1776 This makes all of the numbers that ES6SampleBench reports comparable to each other: they all speak of the time
1777 it took to run an iteration of something.
1779 * ES6SampleBench/results.js:
1780 (Results.prototype.reportResult):
1782 2016-11-18 Jer Noble <jer.noble@apple.com>
1784 Add some performance tests for various aspects of media loading and playback.
1785 https://bugs.webkit.org/show_bug.cgi?id=164977
1787 Reviewed by Darin Adler.
1789 Add new tests for a few aspects of media playback; namely: how quickly media elements fire
1790 the "canplaythrough" event when all data is immediately available, how quickly HLS playback
1791 switches resolutions, and at what playback rate MSE-backed video can play without dropping
1792 frames. Skip these tests by default, as they're not runnable on all ports, and they require
1793 a webserver (run-webkit-httpd) to complete on macOS.
1795 * Media/HLSCanPlayThrough.html: Added.
1796 * Media/HLSGearChange.html: Added.
1797 * Media/MSECanPlayThrough.html: Added.
1798 * Media/MSEPlaybackRate.html: Added.
1799 * Media/StandardCanPlayThrough.html: Added.
1800 * Media/hls/1080p/iframe_index.m3u8: Added.
1801 * Media/hls/1080p/prog_index.m3u8: Added.
1802 * Media/hls/1080p/test.ts: Added.
1803 * Media/hls/480p/iframe_index.m3u8: Added.
1804 * Media/hls/480p/prog_index.m3u8: Added.
1805 * Media/hls/480p/test.ts: Added.
1806 * Media/hls/720p/iframe_index.m3u8: Added.
1807 * Media/hls/720p/prog_index.m3u8: Added.
1808 * Media/hls/720p/test.ts: Added.
1809 * Media/hls/720p/test.ts.back: Added.
1810 * Media/hls/index.m3u8: Added.
1811 * Media/media-source-loader.js: Added.
1812 (MediaSourceLoader):
1813 (MediaSourceLoader.prototype.loadManifest):
1814 (MediaSourceLoader.prototype.loadManifestSucceeded):
1815 (MediaSourceLoader.prototype.loadManifestFailed):
1816 (MediaSourceLoader.prototype.loadMediaData):
1817 (MediaSourceLoader.prototype.loadMediaDataSucceeded):
1818 (MediaSourceLoader.prototype.loadMediaDataFailed):
1819 (MediaSourceLoader.prototype.get type):
1820 (MediaSourceLoader.prototype.get duration):
1821 (MediaSourceLoader.prototype.get initSegment):
1822 (MediaSourceLoader.prototype.get mediaSegmentsLength):
1823 (MediaSourceLoader.prototype.mediaSegments):
1824 (MediaSourceLoader.prototype.get everyMediaSegment):
1825 * Media/test-fragmented-video.json: Added.
1826 * Media/test-fragmented-video.mp4: Added.
1827 * Media/test.mp4: Added.
1830 2016-11-18 Filip Pizlo <fpizlo@apple.com>
1832 Concurrent GC should be able to run splay in debug mode and earley/raytrace in release mode with no perf regression
1833 https://bugs.webkit.org/show_bug.cgi?id=164282
1835 Reviewed by Geoffrey Garen and Oliver Hunt.
1837 CDjs is a fun benchmark for stressing concurrent GCs, but to really give the GC a good
1838 workout you need to increase the amount of work that the test does. This adds a second
1839 configuration of the benchmark that has more aircraft. It uses much more memory and causes us
1840 to do more GCs and those GCs take longer.
1842 * JetStream/cdjs/benchmark.js:
1845 * JetStream/cdjs/large.js: Added.
1847 2016-11-14 Filip Pizlo <fpizlo@apple.com>
1849 Unreviewed, revert unintended change.
1851 * ES6SampleBench/Air/benchmark.js:
1853 2016-10-03 Saam Barati <sbarati@apple.com>
1855 MapHash should speculate on the type of its child node
1856 https://bugs.webkit.org/show_bug.cgi?id=161922
1858 Reviewed by Filip Pizlo.
1860 I gave the main generator a name so it's easier to see what
1861 it is when using the sampling profiler.
1863 * ES6SampleBench/Basic/ast.js:
1866 2016-09-19 Sergio Villar Senin <svillar@igalia.com>
1868 [css-grid] Remove the x2 computation of row sizes with indefinite heights
1869 https://bugs.webkit.org/show_bug.cgi?id=162150
1871 Reviewed by Darin Adler.
1873 Added a new test case which checks the layout performance of grids inside other grids, i.e,
1874 grids acting both as grid container and grid item.
1876 * Layout/nested-grid.html: Added.
1878 2016-09-09 Simon Fraser <simon.fraser@apple.com>
1880 Perf test Animation/css-accelerated-animation.html failing
1881 https://bugs.webkit.org/show_bug.cgi?id=161795
1883 Skip Animation/css-accelerated-animation.html since this only works as a MobileSafari
1888 2016-09-08 Simon Fraser <simon.fraser@apple.com>
1890 Add a content-animation test with accelerated CSS animations
1891 https://bugs.webkit.org/show_bug.cgi?id=161776
1893 Reviewed by Dean Jackson.
1895 Add a test that measures the frame rate of accelerated CSS animations.
1897 This is like css-animation.html (which animates 'left' and 'top') but animates
1898 transforms instead. In order to get animation in X and Y we make two nested elements
1899 and set transformX() on one, and transformY() on the other.
1901 * Animation/css-accelerated-animation.html: Added.
1903 2016-08-23 Saam Barati <sbarati@apple.com>
1905 It should be easy to run ES6SampleBench from the jsc shell
1906 https://bugs.webkit.org/show_bug.cgi?id=161085
1908 Reviewed by Yusuke Suzuki.
1910 This patch makes ES6 sample bench runnable through the `jsc` shell.
1911 To do that, you need to be in the PerformanceTests/ES6SampleBench
1912 directory and run `jsc cli.js`. To make this work, the benchmark
1913 is now aware of being run in two modes: via the browser, and via
1914 the shell. Each entry point will set a variable `isInBrowser`,
1915 and the benchmark will do different things based on if that
1916 variable is true or false.
1918 * ES6SampleBench/Air/benchmark.js:
1919 * ES6SampleBench/Air/stress-test.js:
1920 * ES6SampleBench/Basic/benchmark.js:
1922 * ES6SampleBench/Basic/stress-test.js:
1923 * ES6SampleBench/air_benchmark.js:
1924 * ES6SampleBench/basic_benchmark.js:
1925 * ES6SampleBench/cli.js: Added.
1927 (makeBenchmarkRunner):
1928 * ES6SampleBench/driver.js:
1930 (Driver.prototype._recomputeSummary):
1931 (Driver.prototype._iterate.window.setTimeout):
1932 (Driver.prototype._iterate):
1933 (Driver.prototype._updateIterations):
1934 * ES6SampleBench/glue.js:
1936 * ES6SampleBench/index.html:
1937 * ES6SampleBench/results.js:
1939 (Results.prototype.reportRunning):
1940 (Results.prototype.reportDone):
1941 (Results.prototype.reportError):
1942 * ES6SampleBench/stats.js:
1944 (Stats.prototype.toString):
1945 (Stats.prototype._update):
1947 2016-08-01 Said Abou-Hallawa <sabouhallawa@apple.com>
1949 Add an option to run the MotionMark tests with classic tile size (512x512)
1950 https://bugs.webkit.org/show_bug.cgi?id=160371
1952 Reviewed by Darin Adler.
1954 Setting the body to large size (3000x3000) and overflow to scroll forces
1955 the classic tile size (512x512). This option does not affect the canvas
1956 tests because the canvas is displayed on one tile regardless of its size.
1958 * Animometer/developer.html:
1959 * Animometer/resources/debug-runner/animometer.css:
1960 (body.showing-test-container.tiles-big):
1961 (body.showing-test-container.tiles-classic):
1962 * Animometer/resources/debug-runner/animometer.js:
1963 * Animometer/resources/runner/animometer.js:
1964 (window.benchmarkController.startBenchmark):
1966 2016-06-29 Filip Pizlo <fpizlo@apple.com>
1968 Generators violate bytecode liveness validation
1969 https://bugs.webkit.org/show_bug.cgi?id=159279
1971 Reviewed by Yusuke Suzuki.
1973 Add Basic to our test harness.
1975 Also made some cosmetic changes to the benchmark harness.
1977 * ES6SampleBench/Basic/basic-tests.yaml: Added.
1978 * ES6SampleBench/Basic/stress-test.js: Added.
1980 * ES6SampleBench/driver.js:
1982 (Driver.prototype.start):
1983 (Driver.prototype.reportError):
1984 * ES6SampleBench/glue.js:
1985 * ES6SampleBench/index.html:
1987 2016-06-28 Filip Pizlo <fpizlo@apple.com>
1989 ES6SampleBench should have a harness
1990 https://bugs.webkit.org/show_bug.cgi?id=159246
1992 Reviewed by Saam Barati.
1994 This adds a simple web harness for ES6SampleBench. It runs Air and Basic 10 times for 200
1995 iterations each and reports three metrics:
1997 First iteration: the time it takes for the first iteration to run. This is the first
1998 iteration after the benchmark is loaded into the iframe, so it's representative of what
1999 would happen if one of these workloads only ran for a short time.
2001 Worst 2%: of the last 199 iterations, the average of the worst 2% iterations. If code like
2002 any of these workloads was used in an important event handler, you'd want that code to run
2003 well in the worst case in addition to having great throughput.
2005 Steady state: the total of the last 199 iterations. This is representative of what would
2006 happen if you ran code like this for a long time.
2008 The total score is the geomean of the firstIteration/worstCase/steadyState numbers of the
2011 The harness does statistics using Student's T-distribution confidence intervals.
2013 * ES6SampleBench/Basic/benchmark.js:
2015 * ES6SampleBench/air_benchmark.js: Added.
2016 * ES6SampleBench/basic_benchmark.js: Added.
2017 * ES6SampleBench/driver.js: Added.
2019 (Driver.prototype.addBenchmark):
2020 (Driver.prototype.start):
2021 (Driver.prototype.reportResult):
2022 (Driver.prototype.reportError):
2023 (Driver.prototype._recomputeSummary.Geomean):
2024 (Driver.prototype._recomputeSummary.Geomean.prototype.add):
2025 (Driver.prototype._recomputeSummary.Geomean.prototype.get result):
2026 (Driver.prototype._recomputeSummary):
2027 (Driver.prototype._iterate):
2028 (Driver.prototype._updateIterations):
2029 * ES6SampleBench/glue.js: Added.
2030 * ES6SampleBench/index.html: Added.
2031 * ES6SampleBench/results.js: Added.
2033 (Results.prototype.get benchmark):
2034 (Results.prototype.reset):
2035 (Results.prototype.reportRunning):
2036 (Results.prototype.reportDone):
2037 (Results.prototype.reportResult.averageAbovePercentile):
2038 (Results.prototype.reportResult):
2039 (Results.prototype.reportError):
2040 * ES6SampleBench/stats.js: Added.
2042 (Stats.prototype.reset):
2043 (Stats.prototype.add):
2044 (Stats.prototype.get numIterations):
2045 (Stats.prototype.valueForIteration):
2046 (Stats.get result.tDist):
2047 (Stats.prototype.get result):
2048 (Stats.prototype.toString):
2049 (Stats.prototype._update):
2050 * ES6SampleBench/style.css: Added.
2066 (.banner-link:link, .banner-link:visited):
2068 (h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited):
2069 (.anchor:link, .anchor:visited):
2070 (* > .anchor:link, * > .anchor:visited):
2071 (span:hover .anchor):
2072 (a.forbidden, span.forbidden):
2074 (a.closed:link, a.closed:visited, span.closed):
2082 (.site-logo .tagline):
2090 2016-06-28 Jon Lee <jonlee@apple.com>
2093 https://bugs.webkit.org/show_bug.cgi?id=159242
2094 rdar://problem/27070007
2096 Reviewed by Dean Jackson.
2097 Provisionally reviewed by Said Abou-Hallawa.
2099 Move previous test to dom suite, and update the test for better reporting of frame rate, although
2100 it uses a different rendering path.
2102 * Animometer/resources/debug-runner/tests.js: Add to dom suite.
2103 * Animometer/tests/dom/focus.html: Copied from PerformanceTests/Animometer/tests/master/focus.html.
2104 * Animometer/tests/dom/resources/focus.js: Copied from PerformanceTests/Animometer/tests/master/resources/focus.js.
2105 * Animometer/tests/master/focus.html: Remove center element.
2106 * Animometer/tests/master/resources/focus.js: Use narrower size range with smaller particles. Remove the
2107 container elements. Inline getBlurValue and getOpacityValue since they are only called once.
2109 2016-06-28 Filip Pizlo <fpizlo@apple.com>
2111 Move Air.js and Basic into ES6SampleBench
2113 Rubber stamped by Geoffrey Garen.
2115 We want to group our ES6 benchmarks together, and eventually, we want to give them a
2119 * Air.js/README.md: Removed.
2120 * Air.js/airjs-tests.yaml: Removed.
2121 * Air.js/all.js: Removed.
2122 * Air.js/allocate_stack.js: Removed.
2123 * Air.js/arg.js: Removed.
2124 * Air.js/basic_block.js: Removed.
2125 * Air.js/benchmark.js: Removed.
2126 * Air.js/code.js: Removed.
2127 * Air.js/custom.js: Removed.
2128 * Air.js/frequented_block.js: Removed.
2129 * Air.js/insertion_set.js: Removed.
2130 * Air.js/inst.js: Removed.
2131 * Air.js/liveness.js: Removed.
2132 * Air.js/make_dist.sh: Removed.
2133 * Air.js/opcode.js: Removed.
2134 * Air.js/payload-airjs-ACLj8C.js: Removed.
2135 * Air.js/payload-gbemu-executeIteration.js: Removed.
2136 * Air.js/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
2137 * Air.js/payload-typescript-scanIdentifier.js: Removed.
2138 * Air.js/reg.js: Removed.
2139 * Air.js/stack_slot.js: Removed.
2140 * Air.js/stress-test.js: Removed.
2141 * Air.js/strip-hash.rb: Removed.
2142 * Air.js/symbols.js: Removed.
2143 * Air.js/test.html: Removed.
2144 * Air.js/test.js: Removed.
2145 * Air.js/tmp.js: Removed.
2146 * Air.js/tmp_base.js: Removed.
2147 * Air.js/util.js: Removed.
2149 * Basic/ast.js: Removed.
2150 * Basic/basic.js: Removed.
2151 * Basic/benchmark.js: Removed.
2152 * Basic/caseless_map.js: Removed.
2153 * Basic/lexer.js: Removed.
2154 * Basic/number.js: Removed.
2155 * Basic/parser.js: Removed.
2156 * Basic/random.js: Removed.
2157 * Basic/state.js: Removed.
2158 * Basic/test.html: Removed.
2159 * Basic/test.js: Removed.
2160 * Basic/util.js: Removed.
2161 * ES6SampleBench: Added.
2162 * ES6SampleBench/Air: Copied from PerformanceTests/Air.js.
2163 * ES6SampleBench/Basic: Copied from PerformanceTests/Basic.
2166 2016-06-24 Filip Pizlo <fpizlo@apple.com>
2168 Add a ES6 generator benchmark
2169 https://bugs.webkit.org/show_bug.cgi?id=159101
2171 Rubber stamped by Keith Miller.
2173 This adds a Basic interpreter loosely based on ECMA-55:
2175 http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf
2177 It includes a lexer that is a generator, a parser that uses regular expressions, and an AST
2178 walk interpreter where the walking functions for statements are generators that call each
2179 other with yield*. This enables the interpreter to look like an AST walk even though it can
2180 yield at INPUT and PRINT statements.
2182 This also uses for-of, classes, Map, and WeakMap. It also uses deprecated-but-awesome RegExp
2183 features like RegExp.lastMatch and RegExp.rightContext. I did it that way because this is
2184 how I've always written lexers in dynamic languages; see offlineasm's lex() method in
2185 parser.rb for example.
2187 The benchmark runs a handful of simple Basic programs. The longest-running one computes
2190 Includes a command-line and web harness. On my machine it runs in 2-3 seconds.
2193 * Basic/ast.js: Added.
2194 (Basic.NumberApply):
2207 (Basic.GreaterThan):
2209 (Basic.GreaterEqual):
2218 (sideState.shouldStop):
2229 * Basic/basic.js: Added.
2232 * Basic/benchmark.js: Added.
2234 (Benchmark.prototype.runIteration.expect):
2235 (Benchmark.prototype.runIteration):
2237 * Basic/caseless_map.js: Added.
2239 * Basic/lexer.js: Added.
2240 (lex.consumeWhitespace):
2243 * Basic/lexer_test.js: Added.
2244 * Basic/number.js: Added.
2246 (NumberValue.prototype.get value):
2247 (NumberValue.prototype.apply):
2248 (NumberValue.prototype.leftApply):
2249 (NumberValue.prototype.assign):
2252 (NumberArray.prototype.apply):
2253 (NumberArray.prototype.leftApply):
2255 (NumberFunction.prototype.apply):
2256 (NumberFunction.prototype.leftApply):
2258 (NativeFunction.prototype.apply):
2259 (NativeFunction.prototype.leftApply):
2260 * Basic/parser.js: Added.
2264 (parse.consumeKind):
2265 (parse.consumeToken):
2266 (parse.parseVariable):
2267 (parse.parseNumericExpression.parsePrimary):
2268 (parse.parseNumericExpression.parseFactor):
2269 (parse.parseNumericExpression.parseTerm):
2270 (parse.parseNumericExpression):
2271 (parse.parseConstant):
2272 (parse.parseStringExpression):
2273 (parse.isStringExpression):
2274 (parse.parseRelationalExpression):
2275 (parse.parseNonNegativeInteger):
2276 (parse.parseGoToStatement):
2277 (parse.parseGoSubStatement):
2278 (parse.parseStatement):
2279 (parse.parseStatements):
2280 * Basic/random.js: Added.
2282 (createRNGWithFixedSeed):
2283 (createRNGWithRandomSeed):
2284 * Basic/state.js: Added.
2286 (State.prototype.getValue):
2287 (State.prototype.getSideState):
2288 (State.prototype.abort):
2289 (State.prototype.validate):
2290 * Basic/test.html: Added.
2291 * Basic/test.js: Added.
2292 * Basic/util.js: Added.
2293 (this.performance.performance.now.currentTime):
2294 (else.this.preciseTime.currentTime):
2296 * Skipped: Make sure that we don't run Basic yet.
2298 2016-06-21 Jon Lee <jonlee@apple.com>
2300 Update canvas size when benchmark begins
2301 https://bugs.webkit.org/show_bug.cgi?id=159010
2303 Reviewed by Dean Jackson.
2305 Previously we would evaluate the media queries and assign the canvas size to the test
2306 on body.onload. Instead, do it once the user starts the benchmark.
2308 * Animometer/resources/debug-runner/animometer.js: Move benchmarkController.determineCanvasSize()
2309 to benchmarkController._startBenchmark.
2310 * Animometer/resources/runner/animometer.js: Ditto.
2312 2016-06-21 Jon Lee <jonlee@apple.com>
2314 Add new timestamp option
2315 https://bugs.webkit.org/show_bug.cgi?id=159006
2317 Reviewed by Dean Jackson.
2319 Add a new option to take timestamps from the rAF callback.
2321 * Animometer/developer.html: Added option.
2322 * Animometer/tests/resources/main.js:
2323 (Benchmark): Fall back to using the rAF timestamp if performance.now()
2325 (Benchmark._animateLoop): Update how timestamp is set. Prefer to use
2326 local var instead of accessing private var.
2328 2016-06-21 Jon Lee <jonlee@apple.com>
2330 Improvements to Animometer benchmark
2331 https://bugs.webkit.org/show_bug.cgi?id=157738
2333 Reviewed by Dean Jackson.
2334 Provisionally reviewed by Said Abou-Hallawa.
2338 * Animometer/tests/master/text.html: Ensure only three text sizes for
2340 * Animometer/tests/master/focus.html: Reduce the text size to fit with smaller
2342 * Animometer/tests/master/resources/focus.js: Remove the quadratic distribution for
2343 particle sizes, and make it linear. Reduce the size variance. Shuffle the math to
2344 reduce some calculations per frame. Fix the placement of the particles which might
2345 otherwise be culled.
2346 * Animometer/tests/master/resources/image-data.js: Reduce the particle size
2347 to encourage larger scores.
2349 2016-06-21 Jon Lee <jonlee@apple.com>
2351 Improvements to Animometer benchmark
2352 https://bugs.webkit.org/show_bug.cgi?id=157738
2354 Reviewed by Dean Jackson.
2355 Provisionally reviewed by Said Abou-Hallawa.
2357 Include confidence interval for the final score, and store the canvas
2358 size in the serialization so that it is accurately shown in results.
2360 * Animometer/developer.html: Add a "confidence" div.
2361 * Animometer/index.html: Ditto. Convert "mean" to "confidence".
2362 * Animometer/resources/debug-runner/animometer.js: Look at options, and
2363 if the configuration is included, update the body class based on it
2364 (similar to what we do when we first load the page). That way, if you
2365 drag-and-drop previous results in, that configuration is reflected in
2366 the dashboard. Show the full confidence interval.
2368 * Animometer/resources/debug-runner/animometer.css:
2369 * Animometer/resources/debug-runner/animometer.js: Style update.
2370 * Animometer/resources/runner/animometer.css:
2372 * Animometer/resources/runner/animometer.js:
2373 (_processData): Propagate the confidence interval values out and calculate
2374 the lower and upper bounds. For now, shortcut the aggregate calculation,
2375 since we only go through one iteration.
2376 (this._processData.calculateScore): Propagate the confidence interval out
2377 to be next to the score. Depending on the controller these values are
2378 calculated differently.
2379 (this._processData._getResultsProperty): Convenience function.
2380 (this._processData.get score): Refactor.
2381 (this._processData.get scoreLowerBound): Get the aggregate lower bound.
2382 (this._processData.get scoreUpperBound): Get the aggregate upper bound.
2383 (window.sectionsManager.setSectionScore):
2384 (window.benchmarkController._startBenchmark): When the benchmark starts, note
2385 the canvas size and add it to options. That way it will be automatically be
2387 (window.benchmarkController.showResults): Include the maximum deviation
2389 * Animometer/resources/runner/lines.svg: Make the background line up with the
2391 * Animometer/resources/runner/tests.js:
2392 (Headers.details.text): Refactor.
2393 * Animometer/resources/statistics.js:
2394 (Statistics.largestDeviationPercentage): Convenience function to calculate
2395 the deviation percentage on either end and return the largest deviation.
2396 * Animometer/resources/strings.js:
2398 Allow specifying a regression profile to use instead of taking the one
2399 with the lowest error.
2401 Address an issue in the focus test when the regression calculated ends
2402 up overestimating the change point, causing a cascade of tougher
2403 ramps. The reason behind this is that at max complexity of an initial
2404 ramp, the frame length is very high, and it influences the second
2405 segment of the piecewise regression strongly, causing it to be very
2406 steep. As a result, the first segment, expected to be flat, ends up
2407 covering a higher range of complexity. That makes the change point
2408 much higher than it should be. To avoid this, we will add a sanity
2409 check on the maximum value of the ramp. If the regression's projected
2410 value at the maximum complexity of the current ramp is very slow (less
2411 than 20 fps), 1) reduce the maximum complexity by 20%, and 2) do not
2412 include the regression's change point in the change point estimator.
2413 That estimator is used as the midpoint of the next ramp, and including
2414 the change point from a poor regression can bake in the error. The
2415 controller already knows how to adjust for ramps that are too easy for
2418 * Animometer/resources/runner/animometer.js:
2419 (this._processData.findRegression): Takes a preferred profile and gives that to
2421 (this._processData.calculateScore): With the ramp controller, take the profile
2422 of the ramp that was used the most when calculating the ramp's regression. That
2423 profile is what is used for the test's score.
2424 * Animometer/resources/statistics.js:
2425 (Regression.Utilities.createClass): Update to take an options object which can
2426 specify a profile to calculate with. Otherwise it will continue to use both and
2427 select the one with the lower error.
2428 (_calculateRegression): Fix an issue where we claim 0 error if the regression
2429 calculation fails due to divide-by-zero. Instead reject that regression calculation
2430 by giving it Number.MAX_VALUE.
2431 * Animometer/resources/strings.js: New strings for marking a regression as flat
2433 * Animometer/tests/resources/main.js:
2434 (RampController): Rename the thresholds for clarity. Add a threshold that, if
2435 exceeded, will lower the maximum complexity of the next ramp.
2436 (tune): Relax the cdf check to consider whether the interval definitely falls in
2437 the desired frame length threshold.
2438 (processSamples): Include the profile in the ramp.
2440 Update ramp controller test. Increase the length of the test to 30 seconds, and extend
2441 the interval to 120 ms during sampling. Improve the estimation of the ramp parameters.
2443 * Animometer/developer.html: Change default to 30 seconds, and don't show the progress bar
2445 * Animometer/resources/runner/animometer.js: Change default to 30 seconds.
2446 * Animometer/tests/resources/main.js: A number of improvements to the ramp controller, in
2447 the order in which they appear in the patch:
2449 - With a longer test length use longer ramps with longer intervals to get more data at each
2450 complexity. Keep the 100 ms interval length during the ramp up phase since we don't need to
2451 spend more time there to find the right order of magnitude, but increase it during the
2453 - The ramp linearly interpolates the complexity to render based on its timestamp, but it would
2454 never sample the minimum complexity. Instead of lerping max to min complexity from time
2455 0 to t where t is the ramp length, instead lerp from 0 to (t - intervalSampleLength) so that
2456 we can have at least one interval sample at the min complexity for that ramp.
2457 - Some regression calculations only come out with one line segment rather than the two
2458 we expect. This could be due to a noisy ramp or the ramp's range is too narrow. If that's the
2459 case, influence the minimum complexity of the next ramp towards the lowest bound of 1, so that
2460 we ensure that at least part of the ramp is covering a complexity range that the system can
2462 - Remove an assignment to interpolatedFrameLength since that is never subsequently used.
2464 Update the format used to serialize the results for analysis.
2466 Each data point used to have named properties for fields like complexity and frame rate.
2467 In addition the serialized numbers had rounding errors that took up many characters.
2468 Update the format by introducing a new data container called SampleData, which contains a
2469 field map. The map maps a string to an array index. Each data point is an array, so, to
2470 get a stat, use the field map to get the array index into the data point. This allows future
2471 versions to track other data, and reduces the size of the output string by two-thirds.
2473 * Animometer/resources/extensions.js:
2474 (Utilities.toFixedNumber): Add convenience function that truncates the number to a fixed
2475 precision, and converts it back to a number.
2476 (SampleData): New class that contains sample data and a field map that maps properties to
2478 (get length): Number of data points.
2479 (addField): Add a field to the field map.
2480 (push): Add a data point.
2481 (sort): Sort the data.
2482 (slice): Return new SampleData object with sliced data.
2483 (forEach): Iterate over the data with provided function.
2485 (getFieldInDatum): Returns the data point associated with the field name by looking it up
2486 in the field map in the datum provided, which can be the datum object itself (an array) or
2487 an index into the data member variable.
2488 (setFieldInDatum): Sets the data point associated with the field name.
2489 (at): Returns the data point at the provided index.
2490 (toArray): Serializes the data where the field map serves as property names for each point.
2492 * Animometer/resources/debug-runner/graph.js:
2493 (updateGraphData): Remove unused _testData. Convert the data to the old array format for the
2494 graph to use, since the old format was much easier to work with when displaying the graphs.
2495 (onGraphTypeChanged): For some controllers, no alternative score or mean is provided.
2496 * Animometer/resources/runner/animometer.css:
2497 * Animometer/resources/runner/animometer.js: Refactor to use SampleData. Update JSON output
2498 to only go to 3 digits of precision for purposes of reducing the data size.
2499 * Animometer/resources/strings.js: Add new strings to put into the field maps.
2500 * Animometer/tests/resources/main.js: Refactor to use SampleData.
2502 * Animometer/developer.html:
2503 * Animometer/index.html: Restructure results table for both pages. Add charset attribute to
2505 * Animometer/resources/debug-runner/animometer.css: Clear out styles from release runner.
2506 * Animometer/resources/debug-runner/graph.js:
2507 (onGraphTypeChanged): Update score and mean if bootstrap results are available from the
2508 controller, since not all controllers do bootstrapping.
2509 * Animometer/resources/debug-runner/tests.js: Update header text.
2510 * Animometer/resources/runner/animometer.css: Include confidence interval in results.
2511 * Animometer/resources/runner/animometer.js:
2512 (ResultsTable._addHeader): Header contents can be HTML, so use innerHTML instead.
2513 (ResultsTable._addBody): Add tbody element.
2514 (ResultsTable._addTest): Allow a data cell to invoke a JS function to get its contents.
2515 (window.benchmarkController.showResults): Add table that includes tests' confidence intervals.
2516 * Animometer/resources/runner/tests.js:
2517 (Headers.details.text): Add new details table that includes bootstrap confidence interval.
2518 The interval can be asymmetric, but for simplicity, report the maximum deviation percentage
2519 on either side of the bootstrap median.
2520 * Animometer/resources/statistics.js:
2521 (bootstrap): Include the confidence percentage in the return object.
2523 Report canvas size in results.
2525 * Animometer/developer.html: Add markup to indicate whether a small, medium, or large
2527 * Animometer/index.html: Ditto.
2528 * Animometer/resources/debug-runner/animometer.js: Call determineCanvasSize().
2529 * Animometer/resources/runner/animometer.css: Update styles to set the canvas based on the
2531 * Animometer/resources/runner/animometer.js:
2532 (window.benchmarkController.initialize): Update styles to set the canvas based on the
2534 (window.benchmarkController.determineCanvasSize): Run various media queries and set the body
2535 class based on the size of the device.
2537 * Animometer/developer.html: Refactor to include the main CSS file, and redo
2538 the layout so that it doesn't rely on flexbox.
2539 * Animometer/resources/debug-runner/animometer.css:
2540 * Animometer/resources/debug-runner/animometer.js:
2541 (updateDisplay): Since various parts of the script alter the body class, we can't
2542 replace the className directly. Instead, remove all display-based values and then add
2543 the one that was selected.
2544 * Animometer/resources/debug-runner/graph.js:
2545 (updateGraphData): To set the size of the graph, use window.innerHeight.
2546 * Animometer/resources/runner/animometer.js:
2547 (window.sectionsManager.showSection): Since various parts of the script alter the body
2548 class, we can't replace the className directly. Remove all of the section classes
2549 individually and then add the one desired.
2550 * Animometer/tests/resources/stage.css: Remove -apple-system as a font to use in the
2553 2016-06-12 Filip Pizlo <fpizlo@apple.com>
2555 Fix round-down goof in Air.js's ShuffleCustom.forEachArg
2556 https://bugs.webkit.org/show_bug.cgi?id=158674
2558 Reviewed by Michael Saboff.
2560 x / 3 * 3 is not how you round down to multiples of 3 in JavaScript. You need to do
2561 Math.floor(x / 3) * 3 instead.
2563 This is a benign change, because having extra arguments to a Shuffle is not something we
2564 actually take advantage of yet. But I think it's best to match the original C++ code's
2568 (const.ShuffleCustom.forEachArg):
2570 2016-06-11 Filip Pizlo <fpizlo@apple.com>
2572 Unreviewed, skip Air.js. It got unskipped when I renamed it from JSAir.
2576 2016-06-10 Filip Pizlo <fpizlo@apple.com>
2578 Make it easy to package Air.js
2579 https://bugs.webkit.org/show_bug.cgi?id=158652
2581 Reviewed by Benjamin Poulain.
2583 If you want to give Air.js to someone, you can now do:
2585 cd PerformanceTests/Air.js
2588 This will create Air.js.tar.gz and a directory called Air.js. If you want to send someone
2589 the benchmark, just send either of those things and tell them to look at index.html.
2591 You may have to edit make_dist.sh for wherever you have Markdown.pl. You can get that from
2592 https://daringfireball.net/projects/markdown/
2594 * Air.js/make_dist.sh: Added.
2597 2016-06-10 Filip Pizlo <fpizlo@apple.com>
2599 Unreviewed, make the link to test.html into an actual link.
2603 2016-06-10 Filip Pizlo <fpizlo@apple.com>
2605 Fix some text in Air.js/README.md
2606 https://bugs.webkit.org/show_bug.cgi?id=158650
2608 Reviewed by Benjamin Poulain.
2610 I read the text again and found bugs:
2612 - We never actually say how to run the benchmark. This change adds a blurb about how to run
2615 - We both say that allocateStack is responsible for the bulk of the running time and that
2616 we haven't measured where the bulk of the time is spent. This changes the text to say that
2617 it was a goal to make allocateStack be the hottest part of the benchmark, but that we did
2622 2016-06-10 Filip Pizlo <fpizlo@apple.com>
2624 Air.js should have some documentation
2625 https://bugs.webkit.org/show_bug.cgi?id=158648
2627 Reviewed by Keith Miller.
2629 I want to be able to point people at a document if they want to know more about this
2632 * Air.js/README.md: Added.
2634 2016-06-10 Filip Pizlo <fpizlo@apple.com>
2636 Rename JSAir to Air.js.
2638 Rubber stamped by Mark Lam.
2640 * Air.js: Copied from PerformanceTests/JSAir.
2641 * Air.js/airjs-tests.yaml: Copied from PerformanceTests/JSAir/jsair-tests.yaml.
2642 * Air.js/benchmark.js: Copied from PerformanceTests/JSAir/benchmark.js.
2644 * Air.js/jsair-tests.yaml: Removed.
2645 * Air.js/payload-airjs-ACLj8C.js: Copied from PerformanceTests/JSAir/payload-jsair-ACLj8C.js.
2646 * Air.js/payload-jsair-ACLj8C.js: Removed.
2647 * Air.js/stress-test.js: Copied from PerformanceTests/JSAir/stress-test.js.
2648 * Air.js/test.html: Copied from PerformanceTests/JSAir/test.html.
2649 * Air.js/test.js: Copied from PerformanceTests/JSAir/test.js.
2651 * JSAir/all.js: Removed.
2652 * JSAir/allocate_stack.js: Removed.
2653 * JSAir/arg.js: Removed.
2654 * JSAir/basic_block.js: Removed.
2655 * JSAir/benchmark.js: Removed.
2656 * JSAir/code.js: Removed.
2657 * JSAir/custom.js: Removed.
2658 * JSAir/frequented_block.js: Removed.
2659 * JSAir/insertion_set.js: Removed.
2660 * JSAir/inst.js: Removed.
2661 * JSAir/jsair-tests.yaml: Removed.
2662 * JSAir/liveness.js: Removed.
2663 * JSAir/opcode.js: Removed.
2664 * JSAir/payload-gbemu-executeIteration.js: Removed.
2665 * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
2666 * JSAir/payload-jsair-ACLj8C.js: Removed.
2667 * JSAir/payload-typescript-scanIdentifier.js: Removed.
2668 * JSAir/reg.js: Removed.
2669 * JSAir/stack_slot.js: Removed.
2670 * JSAir/stress-test.js: Removed.
2671 * JSAir/strip-hash.rb: Removed.
2672 * JSAir/symbols.js: Removed.
2673 * JSAir/test.html: Removed.
2674 * JSAir/test.js: Removed.
2675 * JSAir/tmp.js: Removed.
2676 * JSAir/tmp_base.js: Removed.
2677 * JSAir/util.js: Removed.
2679 2016-06-10 Filip Pizlo <fpizlo@apple.com>
2681 JSC Stress Test failing: jsair-tests.yaml/test.js.ftl-eager-no-cjit
2682 https://bugs.webkit.org/show_bug.cgi?id=158571
2684 Reviewed by Keith Miller.
2686 Introduce a different harness for run-jsc-stress-tests, which runs for a minimum of 10
2687 iterations and then tries to do any number of "bonus" iterations until it's been running for
2688 two seconds. Since this is the sort of test that isn't really meant to stress anything in
2689 particular, I think it's OK if it is time-limited in this way. The worst case is that some
2690 of its failures will be flaky, but I think that they would have been flaky anyway given the
2691 complexity of the test.
2693 * JSAir/benchmark.js:
2695 (Benchmark.prototype.runIteration):
2696 (benchmark): Deleted.
2697 * JSAir/jsair-tests.yaml:
2698 * JSAir/stress-test.js: Added.
2703 2016-06-09 Filip Pizlo <fpizlo@apple.com>
2705 Unreviewed, teach the perf bots not to run JSAir.
2709 2016-06-08 Filip Pizlo <fpizlo@apple.com>
2711 Use more ES6 features in JSAir
2712 https://bugs.webkit.org/show_bug.cgi?id=158497
2714 Reviewed by Keith Miller.
2716 This improves JSAir with the following ES6 features suggested by JoePeck:
2718 - String interpolation.
2719 - Destructuring inside PatchCustom.
2720 - Default arguments.
2722 All of these things are on hot paths.
2724 Note that I didn't use string interpolation everywhere that I could, only in those places
2725 where it made the code more readable. In Ruby, I used the style that if the interpolation
2726 expression has any non-trivial stuff (like a ternary operator, a chain of calls, or embedded
2727 strings) then it's better to use regular strcat. I think that's what I carried over to here.
2729 Note that the previous change (Add result validation to JSAir) also made the Proxy code not
2730 dead, though it's not necessarily on the hot path. The Proxy isn't called into frequently
2731 but it's used from a function that is otherwise hot, so if calling into the Proxy prevents
2732 that function from being optimized then it will hurt so good.
2734 I also reenabled tail calls in a few places.
2736 This change doesn't seem to change the performance of the benchmark for us. That's expected
2737 since these ES6 features are cheap. Note that this claim doesn't include Proxy, which was
2738 added in a separate change and that change did make the benchmark overall more expensive.
2740 * JSAir/allocate_stack.js:
2743 (Arg.createBitImm64):
2748 * JSAir/basic_block.js:
2749 (BasicBlock.get headerString):
2750 (BasicBlock.prototype.get if):
2752 * JSAir/benchmark.js:
2756 (Code.prototype.addBlock):
2757 (Code.prototype.addStackSlot):
2758 (Code.prototype.newTmp):
2759 (Code.prototype.get size):
2760 (Code.prototype.get blocks):
2761 (Code.prototype.get stackSlots):
2762 (Code.prototype.tmps):
2763 (Code.prototype.get callArgAreaSize):
2764 (Code.prototype.toString):
2766 (const.PatchCustom.forEachArg):
2770 (Reg.prototype.toString):
2775 2016-06-07 Filip Pizlo <fpizlo@apple.com>
2777 Add result validation to JSAir
2778 https://bugs.webkit.org/show_bug.cgi?id=158493
2780 Reviewed by Saam Barati.
2782 This adds the ability to hash a Code in a way that matches the C++ code's hashing of Code.
2783 This allows us to check if the Code that JSAir sees is the code that C++ saw. We use this to
2784 check the Code before and after allocateStack, and compare against hashes we got from C++.
2786 Doing this uncovered bugs. roundUpToMultipleOf wasn't doing anything. allocateStack was not
2787 allocating things correctly because I was concatting a Set to an Array, which doesn't really
2788 work. Now these bugs are fixed.
2790 The checking step adds to the running time so I reduced the number of iterations. The
2791 benchmark spends a decent amount of its time computing Code hashes; I think it's around 1/3
2792 total. This is probably OK. It's better to verify the results even if the running time is
2793 not all in the "core" of the algorithm.
2795 Also add a run-jsc-stress-tests yaml file to allow this to run as a test.
2797 * JSAir/allocate_stack.js:
2802 (Arg.createBitImm64):
2804 (Arg.createSpecial):
2805 (Arg.prototype.get kind):
2806 (Arg.prototype.get isTmp):
2807 (Arg.prototype.get isImm):
2808 (Arg.prototype.get isSomeImm):
2809 (Arg.prototype.get isSomeBigImm):
2810 (Arg.prototype.get isCondition):
2811 (Arg.prototype.get isWidth):
2812 (Arg.prototype.get isSpecial):
2813 (Arg.prototype.get isAlive):
2814 (Arg.prototype.get tmp):
2815 (Arg.prototype.get value):
2816 (Arg.prototype.get lowValue):
2817 (Arg.prototype.get highValue):
2818 (Arg.prototype.get base):
2819 (Arg.prototype.get isGP):
2820 (Arg.prototype.get isFP):
2821 (Arg.prototype.isValidForm):
2822 (Arg.prototype.get isInvertible):
2824 (Arg.prototype.hash):
2825 (Arg.prototype.toString):
2827 * JSAir/basic_block.js:
2828 (BasicBlock.get successorBlocks):
2829 * JSAir/benchmark.js:
2832 (Code.prototype.setFrameSize):
2833 (Code.prototype.hash):
2834 (Code.prototype.toString):
2837 (Inst.prototype.get hasNonArgEffects):
2838 (Inst.prototype.hash):
2839 (Inst.prototype.toString):
2841 * JSAir/jsair-tests.yaml: Added.
2844 (Inst_hasNonArgEffects):
2846 * JSAir/payload-gbemu-executeIteration.js:
2847 (createPayloadGbemuExecuteIteration):
2848 * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js:
2849 (createPayloadImagingGaussianBlurGaussianBlur):
2850 * JSAir/payload-jsair-ACLj8C.js:
2851 (createPayloadJSAirACLj8C):
2852 * JSAir/payload-typescript-scanIdentifier.js:
2853 (createPayloadTypescriptScanIdentifier):
2855 (Reg.prototype.get isReg):
2856 (Reg.prototype.hash):
2857 (Reg.prototype.toString):
2858 * JSAir/stack_slot.js:
2859 (StackSlot.prototype.setOffsetFromFP):
2860 (StackSlot.prototype.hash):
2861 (StackSlot.prototype.toString):
2868 (Tmp.prototype.get isReg):
2869 (Tmp.prototype.hash):
2870 (Tmp.prototype.toString):
2872 (roundUpToMultipleOf):
2875 2016-06-07 Filip Pizlo <fpizlo@apple.com>
2877 Implement Air::allocateStack() in ES6 to see how much of a bad idea that is
2878 https://bugs.webkit.org/show_bug.cgi?id=158318
2880 Reviewed by Saam Barati.
2882 This adds a new benchmark for us to play with called JSAir. It's a complete ES6
2883 implementation of Air's allocateStack() phase along with all of Air needed to run that
2884 phase. This includes things like stack slots, registers, temporaries, basic blocks,
2885 instructions, and all of the code for iterating over, inspecting, and modifying those
2888 To make this work, JSC can now dump Air just before allocateStack() in the form of JS code
2889 that creates a Code object that matches exactly what C++ Air saw. This benchmark comprises
2892 - Octane/gbemu's largest function, executeIteration.
2893 - Kraken/imaging-gaussian-blur's largest function in OSR entry mode, gaussuanBlur.
2894 - Octane/typescript's largest function that is actually hot, scanIdentifier.
2895 - JSAir's largest hot function, which is anonymous, so we call it by its hash (ACLj8C).
2897 This runs in about 2 seconds on my machine in JSC trunk. It includes both a commandline
2898 harness and a web harness. JSAir is almost exactly 100x slower in ES6 in WebKit than the
2899 C++ Air::allocateStack() phase on which it is based.
2901 JSAir uses the following ES6 features:
2910 All of these things are used in anger and should end up on the hot path. There is also code
2911 that uses Proxies, but it ends up being dead.
2913 We can improve this even more:
2914 I still need to add result validation: https://bugs.webkit.org/show_bug.cgi?id=158493
2915 I want to make it use more ES6 features: https://bugs.webkit.org/show_bug.cgi?id=158497
2918 * JSAir/all.js: Added.
2919 * JSAir/allocate_stack.js: Added.
2920 (allocateStack.attemptAssignment):
2921 (allocateStack.assign):
2922 (allocateStack.interfere):
2925 * JSAir/arg.js: Added.
2937 (Arg.typeForB3Type):
2938 (Arg.widthForB3Type):
2939 (Arg.conservativeWidth):
2942 (Arg.widthForBytes):
2948 (Arg.createBitImm64):
2951 (Arg.createCallArg):
2952 (Arg.createStackAddr):
2956 (Arg.createRelCond):
2957 (Arg.createResCond):
2958 (Arg.createDoubleCond):
2960 (Arg.prototype.get kind):
2961 (Arg.prototype.get isTmp):
2962 (Arg.prototype.get isImm):
2963 (Arg.prototype.get isBigImm):
2964 (Arg.prototype.get isBitImm):
2965 (Arg.prototype.get isBitImm64):
2966 (Arg.prototype.get isSomeImm):
2967 (Arg.prototype.get isAddr):
2968 (Arg.prototype.get isStack):
2969 (Arg.prototype.get isCallArg):
2970 (Arg.prototype.get isIndex):
2971 (Arg.prototype.get isMemory):
2972 (Arg.prototype.get isStackMemory):
2973 (Arg.prototype.get isRelCond):
2974 (Arg.prototype.get isResCond):
2975 (Arg.prototype.get isDoubleCond):
2976 (Arg.prototype.get isCondition):
2977 (Arg.prototype.get isWidth):
2978 (Arg.prototype.get isAlive):
2979 (Arg.prototype.get tmp):
2980 (Arg.prototype.get value):
2981 (Arg.prototype.get base):
2982 (Arg.prototype.get hasOffset):
2983 (Arg.prototype.get offset):
2984 (Arg.prototype.get stackSlot):
2985 (Arg.prototype.get index):
2986 (Arg.prototype.get scale):
2987 (Arg.prototype.get logScale):
2988 (Arg.prototype.get width):
2989 (Arg.prototype.get isGPTmp):
2990 (Arg.prototype.get isFPTmp):
2991 (Arg.prototype.get isGP):
2992 (Arg.prototype.get isFP):
2993 (Arg.prototype.get hasType):
2994 (Arg.prototype.get type):
2995 (Arg.prototype.isType):
2996 (Arg.prototype.isCompatibleType):
2997 (Arg.prototype.get isGPR):
2998 (Arg.prototype.get gpr):
2999 (Arg.prototype.get isFPR):
3000 (Arg.prototype.get fpr):
3001 (Arg.prototype.get isReg):
3002 (Arg.prototype.get reg):
3003 (Arg.isValidImmForm):
3004 (Arg.isValidBitImmForm):
3005 (Arg.isValidBitImm64Form):
3006 (Arg.isValidAddrForm):
3007 (Arg.isValidIndexForm):
3008 (Arg.prototype.isValidForm):
3009 (Arg.prototype.forEachTmpFast):
3010 (Arg.prototype.usesTmp):
3011 (Arg.prototype.forEachTmp):
3014 (Arg.prototype.forEachFast):
3015 (Arg.prototype.forEach):
3019 (Arg.prototype.get condition):
3020 (Arg.prototype.get isInvertible):
3021 (Arg.prototype.toString):
3022 * JSAir/basic_block.js: Added.
3024 (BasicBlock.prototype.get index):
3025 (BasicBlock.prototype.get size):
3026 (BasicBlock.prototype.Symbol.iterator):
3027 (BasicBlock.prototype.at):
3028 (BasicBlock.get last):
3029 (BasicBlock.get insts):
3030 (BasicBlock.get numSuccessors):
3031 (BasicBlock.get successors):
3032 (BasicBlock.get successorBlocks.):
3033 (BasicBlock.get successorBlocks):
3034 (BasicBlock.set get numPredecessors):
3035 (BasicBlock.get predecessors):
3036 (BasicBlock.get frequency):
3037 (BasicBlock.get headerString):
3038 (BasicBlock.get footerString):
3039 * JSAir/benchmark.js: Added.
3041 * JSAir/code.js: Added.
3043 (Code.prototype.addBlock):
3044 (Code.prototype.addStackSlot):
3045 (Code.prototype.newTmp):
3046 (Code.prototype.get size):
3047 (Code.prototype.at):
3048 (Code.prototype.Symbol.iterator):
3049 (Code.prototype.get blocks):
3050 (Code.prototype.get stackSlots):
3051 (Code.prototype.tmps):
3052 (Code.prototype.get callArgAreaSize):
3053 (Code.prototype.requestCallArgAreaSize):
3054 (Code.prototype.get frameSize):
3055 (Code.prototype.setFrameSize):
3056 (Code.prototype.toString):
3057 * JSAir/custom.js: Added.
3058 (const.ShuffleCustom.forEachArg):
3059 (const.ShuffleCustom.hasNonArgNonControlEffects):
3060 (const.PatchCustom.forEachArg):
3061 (const.PatchCustom.hasNonArgNonControlEffects):
3062 (const.CCallCustom.forEachArg):
3063 (const.CCallCustom.hasNonArgNonControlEffects):
3064 (const.ColdCCallCustom.forEachArg):
3065 (const.ColdCCallCustom.hasNonArgNonControlEffects):
3066 * JSAir/frequented_block.js: Added.
3068 (FrequentedBlock.prototype.toString):
3069 * JSAir/insertion_set.js: Added.
3071 (Insertion.prototype.get index):
3072 (Insertion.prototype.get element):
3073 (Insertion.prototype.lessThan):
3075 (InsertionSet.prototype.appendInsertion):
3076 (InsertionSet.prototype.append):
3077 (InsertionSet.prototype.execute):
3078 * JSAir/inst.js: Added.
3080 (Inst.prototype.append):
3081 (Inst.prototype.clear):
3082 (Inst.prototype.get opcode):
3083 (Inst.prototype.get args):
3084 (Inst.prototype.visitArg):
3085 (Inst.prototype.forEachTmpFast):
3086 (Inst.prototype.forEachArg):
3087 (Inst.prototype.forEachTmp):
3088 (Inst.prototype.forEach):
3090 (Inst.forEachDefWithExtraClobberedRegs):
3091 (Inst.prototype.get hasNonArgEffects):
3092 (Inst.prototype.toString):
3093 * JSAir/liveness.js: Added.
3095 (Liveness.prototype.get thing):
3096 (Liveness.prototype.get code):
3097 (Liveness.prototype.get liveAtHead):
3098 (Liveness.prototype.get liveAtTail):
3099 (Liveness.prototype.localCalc.LocalCalc):
3100 (Liveness.prototype.localCalc.LocalCalc.prototype.get liveSet):
3101 (Liveness.prototype.localCalc.LocalCalc.prototype.execute):
3102 (Liveness.prototype.localCalc):
3103 * JSAir/opcode.js: Added.
3105 (Inst_hasNonArgEffects):
3106 * JSAir/payload-gbemu-executeIteration.js: Added.
3107 (createPayloadGbemuExecuteIteration):
3108 * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Added.
3109 (createPayloadImagingGaussianBlurGaussianBlur):
3110 * JSAir/payload-jsair-ACLj8C.js: Added.
3111 (createPayloadJSAirACLj8C):
3112 * JSAir/payload-typescript-scanIdentifier.js: Added.
3113 (createPayloadTypescriptScanIdentifier):
3114 * JSAir/reg.js: Added.
3117 (Reg.prototype.get index):
3118 (Reg.prototype.get type):
3119 (Reg.prototype.get name):
3120 (Reg.prototype.get isCalleeSave):
3121 (Reg.prototype.get isReg):
3122 (Reg.prototype.toString):
3127 (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
3128 * JSAir/stack_slot.js: Added.
3130 (StackSlot.prototype.get byteSize):
3131 (StackSlot.prototype.get kind):
3132 (StackSlot.prototype.get isLocked):
3133 (StackSlot.prototype.get isSpill):
3134 (StackSlot.prototype.get index):
3135 (StackSlot.prototype.ensureSize):
3136 (StackSlot.prototype.get alignment):
3137 (StackSlot.prototype.get offsetFromFP):
3138 (StackSlot.prototype.setOffsetFromFP):
3139 (StackSlot.prototype.toString):
3140 (StackSlot.extract):
3141 (StackSlot.forEachFast):
3142 (StackSlot.forEach):
3143 * JSAir/symbols.js: Added.
3144 * JSAir/test.html: Added.
3145 * JSAir/test.js: Added.
3146 * JSAir/tmp.js: Added.
3149 (Tmp.prototype.get index):
3150 (Tmp.prototype.get type):
3151 (Tmp.prototype.get isReg):
3152 (Tmp.prototype.toString):
3156 * JSAir/tmp_base.js: Added.
3157 (TmpBase.prototype.get isGP):
3158 (TmpBase.prototype.get isFP):
3159 (TmpBase.prototype.get isGPR):
3160 (TmpBase.prototype.get isFPR):
3161 (TmpBase.prototype.get reg):
3162 (TmpBase.prototype.get gpr):
3163 (TmpBase.prototype.get fpr):
3165 * JSAir/util.js: Added.
3166 (isRepresentableAsInt32):
3168 (roundUpToMultipleOf):
3171 (nonEmptyRangesOverlap):
3173 (removeAllMatching):
3180 2016-05-26 Yusuke Suzuki <utatane.tea@gmail.com>
3182 [JSC] Allow JSBench to use precise time
3183 https://bugs.webkit.org/show_bug.cgi?id=158050
3185 Reviewed by Geoffrey Garen.
3187 * JSBench/amazon-chrome-win/urem.js:
3188 (else.window.performance.window.performance.now.currentTimeInMS):
3189 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3190 (else.else.currentTimeInMS):
3193 * JSBench/amazon-chrome/urem.js:
3194 (else.window.performance.window.performance.now.currentTimeInMS):
3195 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3196 (else.else.currentTimeInMS):
3199 * JSBench/amazon-firefox-win/urm.js:
3200 (else.window.performance.window.performance.now.currentTimeInMS):
3201 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3202 (else.else.currentTimeInMS):
3205 * JSBench/amazon-firefox/urm.js:
3206 (else.window.performance.window.performance.now.currentTimeInMS):
3207 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3208 (else.else.currentTimeInMS):
3211 * JSBench/amazon-safari/urem.js:
3212 (else.window.performance.window.performance.now.currentTimeInMS):
3213 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3214 (else.else.currentTimeInMS):
3217 * JSBench/facebook-chrome-win/urem.js:
3218 (else.window.performance.window.performance.now.currentTimeInMS):
3219 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3220 (else.else.currentTimeInMS):
3223 * JSBench/facebook-chrome/urem.js:
3224 (else.window.performance.window.performance.now.currentTimeInMS):
3225 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3226 (else.else.currentTimeInMS):
3229 * JSBench/facebook-firefox-win/urem.js:
3230 (else.window.performance.window.performance.now.currentTimeInMS):
3231 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3232 (else.else.currentTimeInMS):
3235 * JSBench/facebook-firefox/urem.js:
3236 (else.window.performance.window.performance.now.currentTimeInMS):
3237 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3238 (else.else.currentTimeInMS):
3241 * JSBench/facebook-safari/urem.js:
3242 (else.window.performance.window.performance.now.currentTimeInMS):
3243 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3244 (else.else.currentTimeInMS):
3247 * JSBench/google-chrome-win/urem.js:
3248 (else.window.performance.window.performance.now.currentTimeInMS):
3249 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3250 (else.else.currentTimeInMS):
3253 * JSBench/google-chrome/urem.js:
3254 (else.window.performance.window.performance.now.currentTimeInMS):
3255 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3256 (else.else.currentTimeInMS):
3259 * JSBench/google-firefox-win/urem.js:
3260 (else.window.performance.window.performance.now.currentTimeInMS):
3261 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3262 (else.else.currentTimeInMS):
3265 * JSBench/google-firefox/uem.js:
3266 (else.window.performance.window.performance.now.currentTimeInMS):
3267 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3268 (else.else.currentTimeInMS):
3271 * JSBench/google-safari/urem.js:
3272 (else.window.performance.window.performance.now.currentTimeInMS):
3273 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3274 (else.else.currentTimeInMS):
3277 * JSBench/harness.js:
3278 (runBenchmark.window.currentTimeInMS):
3279 (runBenchmark.else.window.currentTimeInMS):
3280 * JSBench/twitter-chrome-win/rem.js:
3281 (else.window.performance.window.performance.now.currentTimeInMS):
3282 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3283 (else.else.currentTimeInMS):
3286 * JSBench/twitter-chrome/urem.js:
3287 (else.window.performance.window.performance.now.currentTimeInMS):
3288 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3289 (else.else.currentTimeInMS):
3292 * JSBench/twitter-firefox-win/urem.js:
3293 (else.window.performance.window.performance.now.currentTimeInMS):
3294 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3295 (else.else.currentTimeInMS):
3298 * JSBench/twitter-firefox/urem.js:
3299 (else.window.performance.window.performance.now.currentTimeInMS):
3300 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3301 (else.else.currentTimeInMS):
3304 * JSBench/twitter-safari/urem.js:
3305 (else.window.performance.window.performance.now.currentTimeInMS):
3306 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3307 (else.else.currentTimeInMS):
3310 * JSBench/yahoo-chrome-win/urem.js:
3311 (else.window.performance.window.performance.now.currentTimeInMS):
3312 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
3313 (else.else.currentTimeInMS):