blob: 7328132c9b0cd0f9cc971eeb5a6138e53747c850 [file] [log] [blame]
fpizlo@apple.com54b57ac2017-09-06 18:16:56 +000012017-08-19 Filip Pizlo <fpizlo@apple.com>
2
3 We should have more tests of tail calls
4 https://bugs.webkit.org/show_bug.cgi?id=175754
5
6 Reviewed by Sam Weinig.
7
8 This introduces a new test suite called TailBench9000, which will have benchmarks written in
9 JavaScript that avoid all looping except by tail call. As a warmup, I wrote a mergesort
10 benchmark and I proted n-body to use tail calls instead of for loops.
11
12 * TailBench9000: Added.
13 * TailBench9000/merge-sort-run.js: Added.
14 * TailBench9000/merge-sort.js: Added.
15 (TEST_mergeSort.createRNG):
16 (TEST_mergeSort.):
17 (TEST_mergeSort.merge):
18 (TEST_mergeSort.mergeSorted):
19 (TEST_mergeSort.checkSorted.check):
20 (TEST_mergeSort.checkSorted):
21 (TEST_mergeSort.add):
22 (TEST_mergeSort.build):
23 (TEST_mergeSort.compare):
24 (TEST_mergeSort.checkSpectrum):
25 (TEST_mergeSort.buildArray):
26 (TEST_mergeSort):
27 * TailBench9000/n-body-run.js: Added.
28 * TailBench9000/n-body.js: Added.
29 (TEST_nBody.Body):
30 (TEST_nBody.Body.prototype.offsetMomentum):
31 (TEST_nBody.Jupiter):
32 (TEST_nBody.Saturn):
33 (TEST_nBody.Uranus):
34 (TEST_nBody.Neptune):
35 (TEST_nBody.Sun):
36 (TEST_nBody.NBodySystem):
37 (TEST_nBody.NBodySystem.prototype.advance):
38 (TEST_nBody.NBodySystem.prototype.energy):
39 (TEST_nBody):
40
rniwa@webkit.org974557e2017-09-06 02:37:41 +0000412017-09-05 Ryosuke Niwa <rniwa@webkit.org>
42
43 Compute the final score using geometric mean in Speedometer 2.0
44 https://bugs.webkit.org/show_bug.cgi?id=172968
45
46 Reviewed by Saam Barati.
47
48 Make Speedometer 2.0 use the geometric mean of the subtotal of each test suite instead of the total..
49
50 In Speedometer 1.0, we used the total time to compute the final score because we wanted to make
51 the slowest framework and library faster. The fastest suite (FlightJS) still accounted for ~6% and
52 the slowest case (React) accounted for ~25% so we felt the total time, or the arithmetic mean with
53 a constant factor, was a good metric to track.
54
55 In the latest version of Speedometer 2.0, however, the fastest suite (Preact) runs in ~55ms whereas
56 the slowest suite (Inferno) takes 1.5s on Safari. Since the total time is 6.5s, Preact's suite only
57 accounts for ~0.8% of the total score while Inferno's suite accounts for ~23% of the total score.
58 Since the goal of Speedometer is to approximate different kinds of DOM API use patterns on the Web,
59 we want each framework & library to have some measurement impact on the overall benchmark score.
60
61 Furthermore, after r221205, we're testing both debug build of Ember.js as well as release build.
62 Since debug build is 4x slower, using the total time or the arithmetic mean thereof will effectively
63 give 4x as much weight to debug build of Ember.js relative to release build of Ember.js. Given only
64 ~5% of websites that deploy Ember.js use debug build, this weighting is clearly not right.
65
66 This patch, therefore, replaces the arithmetic mean by the geometric mean to compute the final score.
67 It also moves the code to compute the final score to BenchmarkRunner to be shared between main.js
68 and InteractiveRunner.html.
69
70 * Speedometer/InteractiveRunner.html:
71 (.didRunSuites): Show geometric mean, arithmetic mean, total, as well as the score for completeness
72 since this is a debugging page for developers.
73 * Speedometer/resources/benchmark-runner.js:
74 (BenchmarkRunner.prototype.step): Added mean, geomean, and score as measuredValues' properties.
75 (BenchmarkRunner.prototype._runTestAndRecordResults): Removed the dead code.
76 (BenchmarkRunner.prototype._finalize): Compute and add total, arithmetic mean (just mean in the code),
77 and geometric mean (geomean) to measuredValues.
78 * Speedometer/resources/main.js:
79 (window.benchmarkClient): Replaced testsCount by stepsCount and _timeValues by _measuredValuesList.
80 (window.benchmarkClient.willRunTest):
81 (window.benchmarkClient.didRunTest):
82 (window.benchmarkClient.didRunSuites): Store measuredValues object instead of just the total time.
83 (window.benchmarkClient.didFinishLastIteration):
84 (window.benchmarkClient._computeResults):
85 (window.benchmarkClient._computeResults.valueForUnit): Renamed from totalTimeInDisplayUnit. Now simply
86 retrieves the values computed by BenchmarkRunner's_finalize.
87 (startBenchmark):
88 (computeScore): Deleted.
89
jfbastien@apple.comcd6d5f72017-09-05 21:18:24 +0000902017-09-05 JF Bastien <jfbastien@apple.com>
91
92 StitchMarker build fix
93
94 Unreviewed
95
96 * StitchMarker/ck.sh: was missing `cd ck`
97
commit-queue@webkit.org2b50f262017-09-05 08:17:25 +0000982017-09-05 Shiyu Zhang <shiyu.zhang@intel.com>
99
100 Speedometer 2.0: Add dummy node to notify app is ready for Backbone suite
101 https://bugs.webkit.org/show_bug.cgi?id=176142
102
103 Reviewed by Ryosuke Niwa.
104
105 Create a dummy node to notify that app is ready for Backbone suite. It prevents Speedometer injecting items before app.js is loaded.
106
107 * Speedometer/resources/tests.js:
108 (Suites.push.prepare):
109 * Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js:
110
commit-queue@webkit.org4d9c22d52017-08-30 22:45:26 +00001112017-08-30 Shiyu Zhang <shiyu.zhang@intel.com>
112
113 Speedometer 2.0: jQuery test fails occasionally
114 https://bugs.webkit.org/show_bug.cgi?id=176017
115
116 Reviewed by Ryosuke Niwa.
117
118 Create a dummy node to notify that app is ready for jQuery suite. It prevents Speedometer injecting items before app.js is loaded.
119
120 * Speedometer/resources/tests.js:
121 (Suites.push.prepare):
122 * Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js:
123 (jQuery.App.init):
124
commit-queue@webkit.orgbca9dd32017-08-25 21:59:29 +00001252017-08-25 Mathias Bynens <mathias@qiwi.be>
126
127 Speedometer: Restructure Ember example
128 https://bugs.webkit.org/show_bug.cgi?id=175926
129
130 Reviewed by Ryosuke Niwa.
131
132 This patch removes an unused stylesheet from the output, and gets rid of the unneeded intermediate `source` folder.
133
134 * Speedometer/resources/tests.js: Update path to Ember benchmark.
135 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/*: Moved to `../`.
136 * Speedometer/resources/todomvc/architecture-examples/emberjs/app/index.html: Removed stylesheet reference.
137 * Speedometer/resources/todomvc/architecture-examples/emberjs/app/styles/.gitkeep: Added.
138 * Speedometer/resources/todomvc/architecture-examples/emberjs/dist/*: Regenerated per build instructions.
139
rniwa@webkit.org1c362102017-08-25 21:21:35 +00001402017-08-24 Ryosuke Niwa <rniwa@webkit.org>
141
142 Speedometer 2.0: Duplicate the current EmberJS test as EmberJS-Debug test
143 https://bugs.webkit.org/show_bug.cgi?id=175956
144
145 Reviewed by Saam Barati.
146
147 Made the copy of Ember.js directory at r216946 as emberjs-debug, and added a new test suite "EmberJS-Debug-TodoMVC".
148
149 * Speedometer/resources/tests.js:
150 (Suites.push.prepare):
151 * Speedometer/resources/todomvc/architecture-examples/emberjs-debug: Copied from emberjs@r216946.
152
rniwa@webkit.orgf5243692017-08-24 06:13:42 +00001532017-08-23 Ryosuke Niwa <rniwa@webkit.org>
154
155 Speedometer: Add missing stylesheet to Angular example
156 ​https://bugs.webkit.org/show_bug.cgi?id=175820
157
158 Fix r221042. It was supposed to add an empty file but git-svn failed to do so.
159
160 * Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Added.
161
commit-queue@webkit.org9973e8f2017-08-24 00:14:55 +00001622017-08-23 Mathias Bynens <mathias@qiwi.be>
163
164 Speedometer: Update to modern Preact version
165 https://bugs.webkit.org/show_bug.cgi?id=175763
166
167 Reviewed by Ryosuke Niwa.
168
169 * Speedometer/resources/todomvc/architecture-examples/preact/README.md: Documented build steps.
170 * Speedometer/resources/todomvc/architecture-examples/preact/dist/*: Renamed from build to dist so it can be checked in, and updated per build steps.
171 * Speedometer/resources/todomvc/architecture-examples/preact/package-lock.json: Locked dependencies to ensure builds are deterministic.
172 * Speedometer/resources/todomvc/architecture-examples/preact/package.json: Updated build commands and dependencies.
173 * Speedometer/resources/todomvc/architecture-examples/preact/rollup.config.js: Updated configuration.
174 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/footer.js: Updated to modern Preact version.
175 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/index.js: Updated to modern Preact version.
176 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/util.js: Updated to modern Preact version.
177 * Speedometer/resources/todomvc/architecture-examples/preact/src/index.html: Made title consistent.
178 * Speedometer/resources/todomvc/architecture-examples/preact/webpack.config.babel.js: Updated configuration.
179
rniwa@webkit.orge2acc412017-08-23 21:39:28 +00001802017-08-23 Ryosuke Niwa <rniwa@webkit.org>
181
rniwa@webkit.orgbd12a162017-08-23 23:04:13 +0000182 Speedometer 2.0: Add the capability to run a specific suite
183 https://bugs.webkit.org/show_bug.cgi?id=175908
184
rniwa@webkit.org5cd72fd2017-08-23 23:54:40 +0000185 Address Joe's review comments.
186
187 * Speedometer/resources/main.js:
188 (startBenchmark):
189
1902017-08-23 Ryosuke Niwa <rniwa@webkit.org>
191
192 Speedometer 2.0: Add the capability to run a specific suite
193 https://bugs.webkit.org/show_bug.cgi?id=175908
194
rniwa@webkit.orgbd12a162017-08-23 23:04:13 +0000195 Reviewed by Saam Barati.
196
197 Added ?suite=X query parameter to specify a specific suite (e.g. React-TodoMVC) to run.
198
199 * Speedometer/resources/main.js:
200 (enableOneSuite): Added.
201 (startBenchmark): Return true if the benchmark actually had started running.
202 (startTest): Don't transition to the "running" state if the benchmark failed to start (e.g. no tests to run).
203
2042017-08-23 Ryosuke Niwa <rniwa@webkit.org>
205
rniwa@webkit.org91d83702017-08-23 21:40:41 +0000206 Speedometer 2.0: Async time is not always capturing layout time
207 https://bugs.webkit.org/show_bug.cgi?id=175871
208
209 Reviewed by Simon Fraser.
210
211 Speedometer harness was designed to capture the time browser engine spends relayouting and repainting the content
212 after DOM mutations this in its async time measurement, which is the time between each test case's code had finished
213 running and when a newly scheduled 0s timer is fired immediately afterwards.
214
215 It turns out that modern web browsers defer this reflow and repaint work until the next animation frame is requested.
216 This results in Speedometer harness measuring reflow and repaint cost only sometimes depending on when each test case
217 had finished running relative to the next frame request.
218
219 While such a behavior makes sense and might be desirable for a modern browser engine, we would like to capture it in
220 the async time for the purpose of Speedometer. Unfortunately, there isn't an interoperable API for browsers to report
221 the total layout and repaint time, and relying on 16ms-granularity requestAnimationFrame is too coarse for Speedometer.
222
223 This patch works around these limitations by manually forcing the layout in async time measurement by calling
224 getBoundingClientRect() in iframe's document. Since the height of the document depends on the number of todo items,
225 this should cause browser engines to do most if not all of the work needed to reflow the document at least for now.
226
227 Note that even new async time doesn't always capture painting time but there isn't a good cross-browser mechanism
228 to measure paint time in the granurality we need for Speedometer at the moment anyway. (Should such a mechanism exist,
229 that could be a huge timing attack surface so it's probably best that we don't have one.)
230
231 * Speedometer/resources/benchmark-runner.js:
232 (BenchmarkRunner.prototype._runTest):
233
2342017-08-23 Ryosuke Niwa <rniwa@webkit.org>
235
rniwa@webkit.orge2acc412017-08-23 21:39:28 +0000236 Speedometer: Make React/Redux item order consistent
237 https://bugs.webkit.org/show_bug.cgi?id=175818
238
239 Reviewed by Joseph Pecoraro.
240
241 Based on the patch made by Mathias Bynens. Re-generated project files.
242
243 Also tweaked the instruction in package.json so that newly generated files in build/* replace dist/* instead of
244 being moved under dist/build/ by rm -rf'ing dist directory first.
245
246 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/index.html:
247 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.43a0948c.js: Removed.
248 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.43a0948c.js.map: Removed.
249 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.69cd9655.js: Added.
250 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.69cd9655.js.map: Added.
251 * Speedometer/resources/todomvc/architecture-examples/react-redux/package.json:
252 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js: Forced new items to be appended rather than prepended.
253 * Speedometer/resources/todomvc/architecture-examples/react-redux/yarn.lock: Removed unnecessary file.
254
commit-queue@webkit.org98473e22017-08-23 21:37:45 +00002552017-08-23 Mathias Bynens <mathias@qiwi.be>
256
257 Speedometer: Update to modern React version
258 https://bugs.webkit.org/show_bug.cgi?id=175715
259
260 Reviewed by Ryosuke Niwa.
261
262 This patch pins React and react-dom to v15.5.4 (released in May 2017).
263
264 * Speedometer/resources/todomvc/architecture-examples/react/README.md: Documented build steps.
265 * Speedometer/resources/todomvc/architecture-examples/react/index.html: Made title consistent.
266 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/*: Remove unneeded files and update per build instructions.
267 * Speedometer/resources/todomvc/architecture-examples/react/npm-shrinkwrap.json: Removed in favor of package-lock.json.
268 * Speedometer/resources/todomvc/architecture-examples/react/package-lock.json: Pinned dependencies to make build deterministic.
269 * Speedometer/resources/todomvc/architecture-examples/react/package.json: Update dependencies.
270 * Speedometer/resources/todomvc/architecture-examples/react/yarn.lock: Removed in favor of package-lock.json.
271
rniwa@webkit.org21917382017-08-22 23:11:05 +00002722017-08-22 Ryosuke Niwa <rniwa@webkit.org>
273
274 REGRESSION(R220043): Speedometer 2.0: Fix vanilla JS examples
275 https://bugs.webkit.org/show_bug.cgi?id=175815
276
277 Reviewed by Saam Barati.
278
279 Both vanilla ES2015 and Babel + WebPack test cases were failing to mark Todo items as completed since they were relying on
280 `new Date().getTime()` to generate an unique ID. That's not going to work if mulitple todo items are added within 1ms.
281
282 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.71bb1f671e4e65604d05.js: Added.
283 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.71bb1f671e4e65604d05.js.map: Added.
284 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.9debb1b0a94f14d0ebe9.js: Removed.
285 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.9debb1b0a94f14d0ebe9.js.map: Removed.
286 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.2102040c9a6e04cc046e.js: Added.
287 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.2102040c9a6e04cc046e.js.map: Added.
288 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.b16cc08e016d07886f5f.js: Added.
289 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.b16cc08e016d07886f5f.js.map: Added.
290 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/index.html:
291 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.71bb1f671e4e65604d05.css: Added.
292 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.71bb1f671e4e65604d05.css.map: Added.
293 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.b16cc08e016d07886f5f.css: Added.
294 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.b16cc08e016d07886f5f.css.map: Added.
295 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js:
296 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/store.js:
297
jfbastien@apple.coma07ee7f2017-08-22 21:54:59 +00002982017-08-22 JF Bastien <jfbastien@apple.com>
299
300 StitchMarker: threading, locking, and atomics benchmark
301 https://bugs.webkit.org/show_bug.cgi?id=175847
302
303 Rubber-stamped by Filip Pizlo.
304
305 This patch imports concurrency and parallelism benchmarks from
306 four independent projects: Facebook's folly, Olivier Giroux's
307 locking benchmark aimed at C++20 standardization, Samy Al Bahra's
308 ck concurrency primitives, and WebKit's WTF lock benchmarks.
309 There's a fifth benchmark in the waiting, Cristian Mattarei's FMJS
310 litmus tests, which currently only targets JavaScript but will
311 eventually work on straight C code.
312
313 The benchmark currently execute on native platforms only, but
314 could be compiled to WebAssembly when the toolchains mature. They
315 should stress interesting aspects of atomics, locking, and
316 threading. The build works through simple shell scripts, and there
317 currently is no "runner" because each benchmark is a standalone
318 executable. This setup is especially well suited for WebAssembly.
319
320 * StitchMarker/README.md: Added. See this for more details.
321 * StitchMarker/ck.sh: Added. Build script.
322 * StitchMarker/ck/LICENSE: Added.
323 * StitchMarker/ck/Makefile: Added.
324 * StitchMarker/ck/Makefile.in: Added.
325 * StitchMarker/ck/README: Added.
326 * StitchMarker/ck/configure: Added.
327 * StitchMarker/ck/doc/Makefile: Added.
328 * StitchMarker/ck/include/ck_array.h: Added.
329 (ck_array_length):
330 (ck_array_buffer):
331 (ck_array_initialized):
332 * StitchMarker/ck/include/ck_backoff.h: Added.
333 (ck_backoff_eb):
334 * StitchMarker/ck/include/ck_barrier.h: Added.
335 * StitchMarker/ck/include/ck_bitmap.h: Added.
336 (ck_bitmap_base):
337 (ck_bitmap_size):
338 (ck_bitmap_bits):
339 (ck_bitmap_buffer):
340 (ck_bitmap_set):
341 (ck_bitmap_bts):
342 (ck_bitmap_reset):
343 (ck_bitmap_test):
344 (ck_bitmap_union):
345 (ck_bitmap_intersection):
346 (ck_bitmap_intersection_negate):
347 (ck_bitmap_clear):
348 (ck_bitmap_empty):
349 (ck_bitmap_full):
350 (ck_bitmap_count):
351 (ck_bitmap_count_intersect):
352 (ck_bitmap_init):
353 (ck_bitmap_iterator_init):
354 (ck_bitmap_next):
355 * StitchMarker/ck/include/ck_brlock.h: Added.
356 (ck_brlock_init):
357 (ck_brlock_write_lock):
358 (ck_brlock_write_unlock):
359 (ck_brlock_write_trylock):
360 (ck_brlock_read_register):
361 (ck_brlock_read_unregister):
362 (ck_brlock_read_lock):
363 (ck_brlock_read_trylock):
364 (ck_brlock_read_unlock):
365 * StitchMarker/ck/include/ck_bytelock.h: Added.
366 (ck_bytelock_init):
367 (ck_bytelock_write_lock):
368 (ck_bytelock_write_unlock):
369 (ck_bytelock_read_lock):
370 (ck_bytelock_read_unlock):
371 * StitchMarker/ck/include/ck_cc.h: Added.
372 (ck_cc_ffs):
373 (ck_cc_clz):
374 (ck_cc_ctz):
375 (ck_cc_popcount):
376 * StitchMarker/ck/include/ck_cohort.h: Added.
377 * StitchMarker/ck/include/ck_elide.h: Added.
378 (ck_elide_stat_init):
379 (_ck_elide_fallback):
380 * StitchMarker/ck/include/ck_epoch.h: Added.
381 (ck_epoch_record_ct):
382 (ck_epoch_begin):
383 (ck_epoch_end):
384 (ck_epoch_call):
385 (ck_epoch_call_strict):
386 (ck_epoch_value):
387 * StitchMarker/ck/include/ck_fifo.h: Added.
388 (ck_fifo_spsc_enqueue_trylock):
389 (ck_fifo_spsc_enqueue_lock):
390 (ck_fifo_spsc_enqueue_unlock):
391 (ck_fifo_spsc_dequeue_trylock):
392 (ck_fifo_spsc_dequeue_lock):
393 (ck_fifo_spsc_dequeue_unlock):
394 (ck_fifo_spsc_init):
395 (ck_fifo_spsc_deinit):
396 (ck_fifo_spsc_enqueue):
397 (ck_fifo_spsc_dequeue):
398 (ck_fifo_spsc_recycle):
399 (ck_fifo_spsc_isempty):
400 (ck_fifo_mpmc_init):
401 (ck_fifo_mpmc_deinit):
402 (ck_fifo_mpmc_enqueue):
403 (ck_fifo_mpmc_tryenqueue):
404 (ck_fifo_mpmc_dequeue):
405 (ck_fifo_mpmc_trydequeue):
406 * StitchMarker/ck/include/ck_hp.h: Added.
407 (ck_hp_set):
408 (ck_hp_set_fence):
409 (ck_hp_clear):
410 * StitchMarker/ck/include/ck_hp_fifo.h: Added.
411 (ck_hp_fifo_init):
412 (ck_hp_fifo_deinit):
413 (ck_hp_fifo_enqueue_mpmc):
414 (ck_hp_fifo_tryenqueue_mpmc):
415 (ck_hp_fifo_dequeue_mpmc):
416 (ck_hp_fifo_trydequeue_mpmc):
417 * StitchMarker/ck/include/ck_hp_stack.h: Added.
418 (ck_hp_stack_push_mpmc):
419 (ck_hp_stack_trypush_mpmc):
420 (ck_hp_stack_pop_mpmc):
421 (ck_hp_stack_trypop_mpmc):
422 * StitchMarker/ck/include/ck_hs.h: Added.
423 * StitchMarker/ck/include/ck_ht.h: Added.
424 * StitchMarker/ck/include/ck_limits.h: Added.
425 * StitchMarker/ck/include/ck_malloc.h: Added.
426 * StitchMarker/ck/include/ck_md.h: Added.
427 * StitchMarker/ck/include/ck_md.h.in: Added.
428 * StitchMarker/ck/include/ck_pflock.h: Added.
429 (ck_pflock_init):
430 (ck_pflock_write_unlock):
431 (ck_pflock_write_lock):
432 (ck_pflock_read_unlock):
433 (ck_pflock_read_lock):
434 * StitchMarker/ck/include/ck_pr.h: Added.
435 (ck_pr_rfo):
436 * StitchMarker/ck/include/ck_queue.h: Added.
437 * StitchMarker/ck/include/ck_rhs.h: Added.
438 * StitchMarker/ck/include/ck_ring.h: Added.
439 (ck_ring_size):
440 (ck_ring_capacity):
441 (ck_ring_init):
442 (_ck_ring_enqueue_sp):
443 (_ck_ring_enqueue_sp_size):
444 (_ck_ring_dequeue_sc):
445 (_ck_ring_enqueue_mp):
446 (_ck_ring_enqueue_mp_size):
447 (_ck_ring_trydequeue_mc):
448 (_ck_ring_dequeue_mc):
449 (ck_ring_enqueue_spsc_size):
450 (ck_ring_enqueue_spsc):
451 (ck_ring_dequeue_spsc):
452 (ck_ring_enqueue_mpmc):
453 (ck_ring_enqueue_mpmc_size):
454 (ck_ring_trydequeue_mpmc):
455 (ck_ring_dequeue_mpmc):
456 (ck_ring_enqueue_spmc_size):
457 (ck_ring_enqueue_spmc):
458 (ck_ring_trydequeue_spmc):
459 (ck_ring_dequeue_spmc):
460 (ck_ring_enqueue_mpsc):
461 (ck_ring_enqueue_mpsc_size):
462 (ck_ring_dequeue_mpsc):
463 * StitchMarker/ck/include/ck_rwcohort.h: Added.
464 * StitchMarker/ck/include/ck_rwlock.h: Added.
465 (ck_rwlock_init):
466 (ck_rwlock_write_unlock):
467 (ck_rwlock_locked_writer):
468 (ck_rwlock_write_downgrade):
469 (ck_rwlock_locked):
470 (ck_rwlock_write_trylock):
471 (ck_rwlock_write_lock):
472 (ck_rwlock_read_trylock):
473 (ck_rwlock_read_lock):
474 (ck_rwlock_locked_reader):
475 (ck_rwlock_read_unlock):
476 (ck_rwlock_recursive_write_lock):
477 (ck_rwlock_recursive_write_trylock):
478 (ck_rwlock_recursive_write_unlock):
479 (ck_rwlock_recursive_read_lock):
480 (ck_rwlock_recursive_read_trylock):
481 (ck_rwlock_recursive_read_unlock):
482 * StitchMarker/ck/include/ck_sequence.h: Added.
483 (ck_sequence_init):
484 (ck_sequence_read_begin):
485 (ck_sequence_read_retry):
486 (ck_sequence_write_begin):
487 (ck_sequence_write_end):
488 * StitchMarker/ck/include/ck_spinlock.h: Added.
489 * StitchMarker/ck/include/ck_stack.h: Added.
490 (ck_stack_push_upmc):
491 (ck_stack_trypush_upmc):
492 (ck_stack_pop_upmc):
493 (ck_stack_trypop_upmc):
494 (ck_stack_batch_pop_upmc):
495 (ck_stack_push_mpmc):
496 (ck_stack_trypush_mpmc):
497 (ck_stack_pop_mpmc):
498 (ck_stack_trypop_mpmc):
499 (ck_stack_batch_pop_mpmc):
500 (ck_stack_push_mpnc):
501 (ck_stack_push_spnc):
502 (ck_stack_pop_npsc):
503 (ck_stack_batch_pop_npsc):
504 (ck_stack_init):
505 * StitchMarker/ck/include/ck_stdbool.h: Added.
506 * StitchMarker/ck/include/ck_stddef.h: Added.
507 * StitchMarker/ck/include/ck_stdint.h: Added.
508 * StitchMarker/ck/include/ck_stdlib.h: Added.
509 * StitchMarker/ck/include/ck_string.h: Added.
510 * StitchMarker/ck/include/ck_swlock.h: Added.
511 (ck_swlock_init):
512 (ck_swlock_write_unlock):
513 (ck_swlock_locked_writer):
514 (ck_swlock_write_downgrade):
515 (ck_swlock_locked):
516 (ck_swlock_write_trylock):
517 (ck_swlock_write_lock):
518 (ck_swlock_write_latch):
519 (ck_swlock_write_unlatch):
520 (ck_swlock_read_trylock):
521 (ck_swlock_read_lock):
522 (ck_swlock_locked_reader):
523 (ck_swlock_read_unlock):
524 * StitchMarker/ck/include/ck_tflock.h: Added.
525 (ck_tflock_ticket_fca_32):
526 (ck_tflock_ticket_init):
527 (ck_tflock_ticket_write_lock):
528 (ck_tflock_ticket_write_unlock):
529 (ck_tflock_ticket_read_lock):
530 (ck_tflock_ticket_read_unlock):
531 * StitchMarker/ck/include/gcc/aarch64/ck_f_pr.h: Added.
532 * StitchMarker/ck/include/gcc/aarch64/ck_pr.h: Added.
533 (ck_pr_stall):
534 * StitchMarker/ck/include/gcc/aarch64/ck_pr_llsc.h: Added.
535 (ck_pr_cas_64_2_value):
536 (ck_pr_cas_ptr_2_value):
537 (ck_pr_cas_64_2):
538 (ck_pr_cas_ptr_2):
539 (ck_pr_faa_ptr):
540 (ck_pr_faa_64):
541 * StitchMarker/ck/include/gcc/aarch64/ck_pr_lse.h: Added.
542 (ck_pr_cas_64_2_value):
543 (ck_pr_cas_ptr_2_value):
544 (ck_pr_cas_64_2):
545 (ck_pr_cas_ptr_2):
546 (ck_pr_faa_ptr):
547 (ck_pr_faa_64):
548 * StitchMarker/ck/include/gcc/arm/ck_f_pr.h: Added.
549 * StitchMarker/ck/include/gcc/arm/ck_pr.h: Added.
550 (ck_pr_stall):
551 (ck_pr_cas_ptr_2_value):
552 (ck_pr_cas_ptr_2):
553 (ck_pr_cas_ptr_value):
554 (ck_pr_cas_ptr):
555 (ck_pr_faa_ptr):
556 * StitchMarker/ck/include/gcc/ck_cc.h: Added.
557 (ck_cc_ffs):
558 (ck_cc_clz):
559 (ck_cc_ctz):
560 (ck_cc_popcount):
561 * StitchMarker/ck/include/gcc/ck_f_pr.h: Added.
562 * StitchMarker/ck/include/gcc/ck_pr.h: Added.
563 (ck_pr_barrier):
564 (ck_pr_md_load_ptr):
565 (ck_pr_md_store_ptr):
566 (ck_pr_stall):
567 (ck_pr_cas_ptr_value):
568 * StitchMarker/ck/include/gcc/ppc/ck_f_pr.h: Added.
569 * StitchMarker/ck/include/gcc/ppc/ck_pr.h: Added.
570 (ck_pr_stall):
571 (ck_pr_faa_ptr):
572 * StitchMarker/ck/include/gcc/ppc64/ck_f_pr.h: Added.
573 * StitchMarker/ck/include/gcc/ppc64/ck_pr.h: Added.
574 (ck_pr_stall):
575 (ck_pr_cas_64_value):
576 (ck_pr_cas_ptr_value):
577 (ck_pr_cas_64):
578 (ck_pr_cas_ptr):
579 (ck_pr_faa_ptr):
580 * StitchMarker/ck/include/gcc/s390x/ck_f_pr.h: Added.
581 * StitchMarker/ck/include/gcc/s390x/ck_pr.h: Added.
582 (ck_pr_stall):
583 (ck_pr_md_load_double):
584 (ck_pr_md_store_double):
585 (ck_pr_cas_64_value):
586 (ck_pr_cas_ptr_value):
587 (ck_pr_cas_64):
588 (ck_pr_cas_ptr):
589 (ck_pr_fas_ptr):
590 (ck_pr_fas_double):
591 (ck_pr_faa_ptr):
592 * StitchMarker/ck/include/gcc/sparcv9/ck_f_pr.h: Added.
593 * StitchMarker/ck/include/gcc/sparcv9/ck_pr.h: Added.
594 (ck_pr_stall):
595 (ck_pr_cas_64_value):
596 (ck_pr_cas_64):
597 (ck_pr_cas_ptr):
598 (ck_pr_cas_ptr_value):
599 * StitchMarker/ck/include/gcc/x86/ck_f_pr.h: Added.
600 * StitchMarker/ck/include/gcc/x86/ck_pr.h: Added.
601 (ck_pr_stall):
602 * StitchMarker/ck/include/gcc/x86_64/ck_f_pr.h: Added.
603 * StitchMarker/ck/include/gcc/x86_64/ck_pr.h: Added.
604 (ck_pr_stall):
605 (ck_pr_rfo):
606 (ck_pr_load_64_2):
607 (ck_pr_load_ptr_2):
608 (ck_pr_cas_64_2):
609 (ck_pr_cas_ptr_2):
610 (ck_pr_cas_64_2_value):
611 (ck_pr_cas_ptr_2_value):
612 * StitchMarker/ck/include/gcc/x86_64/ck_pr_rtm.h: Added.
613 (ck_pr_rtm_begin):
614 (ck_pr_rtm_end):
615 (ck_pr_rtm_abort):
616 (ck_pr_rtm_test):
617 * StitchMarker/ck/include/spinlock/anderson.h: Added.
618 (ck_spinlock_anderson_init):
619 (ck_spinlock_anderson_locked):
620 (ck_spinlock_anderson_lock):
621 (ck_spinlock_anderson_unlock):
622 * StitchMarker/ck/include/spinlock/cas.h: Added.
623 (ck_spinlock_cas_init):
624 (ck_spinlock_cas_trylock):
625 (ck_spinlock_cas_locked):
626 (ck_spinlock_cas_lock):
627 (ck_spinlock_cas_lock_eb):
628 (ck_spinlock_cas_unlock):
629 * StitchMarker/ck/include/spinlock/clh.h: Added.
630 (ck_spinlock_clh_init):
631 (ck_spinlock_clh_locked):
632 (ck_spinlock_clh_lock):
633 (ck_spinlock_clh_unlock):
634 * StitchMarker/ck/include/spinlock/dec.h: Added.
635 (ck_spinlock_dec_init):
636 (ck_spinlock_dec_trylock):
637 (ck_spinlock_dec_locked):
638 (ck_spinlock_dec_lock):
639 (ck_spinlock_dec_lock_eb):
640 (ck_spinlock_dec_unlock):
641 * StitchMarker/ck/include/spinlock/fas.h: Added.
642 (ck_spinlock_fas_init):
643 (ck_spinlock_fas_trylock):
644 (ck_spinlock_fas_locked):
645 (ck_spinlock_fas_lock):
646 (ck_spinlock_fas_lock_eb):
647 (ck_spinlock_fas_unlock):
648 * StitchMarker/ck/include/spinlock/hclh.h: Added.
649 (ck_spinlock_hclh_init):
650 (ck_spinlock_hclh_locked):
651 (ck_spinlock_hclh_lock):
652 (ck_spinlock_hclh_unlock):
653 * StitchMarker/ck/include/spinlock/mcs.h: Added.
654 (ck_spinlock_mcs_init):
655 (ck_spinlock_mcs_trylock):
656 (ck_spinlock_mcs_locked):
657 (ck_spinlock_mcs_lock):
658 (ck_spinlock_mcs_unlock):
659 * StitchMarker/ck/include/spinlock/ticket.h: Added.
660 (ck_spinlock_ticket_init):
661 (ck_spinlock_ticket_locked):
662 (ck_spinlock_ticket_lock):
663 (ck_spinlock_ticket_lock_pb):
664 (ck_spinlock_ticket_trylock):
665 (ck_spinlock_ticket_unlock):
666 * StitchMarker/ck/regressions/Makefile: Added.
667 * StitchMarker/ck/regressions/Makefile.unsupported: Added.
668 * StitchMarker/ck/regressions/ck_array/validate/Makefile: Added.
669 * StitchMarker/ck/regressions/ck_array/validate/serial.c: Added.
670 (my_free):
671 (my_malloc):
672 (my_realloc):
673 (main):
674 * StitchMarker/ck/regressions/ck_array/validate/serial.dSYM/Contents/Info.plist: Added.
675 * StitchMarker/ck/regressions/ck_array/validate/serial.dSYM/Contents/Resources/DWARF/serial: Added.
676 * StitchMarker/ck/regressions/ck_backoff/validate/Makefile: Added.
677 * StitchMarker/ck/regressions/ck_backoff/validate/validate.c: Added.
678 (main):
679 * StitchMarker/ck/regressions/ck_barrier/benchmark/Makefile: Added.
680 * StitchMarker/ck/regressions/ck_barrier/benchmark/throughput.c: Added.
681 (thread):
682 (main):
683 * StitchMarker/ck/regressions/ck_barrier/validate/Makefile: Added.
684 * StitchMarker/ck/regressions/ck_barrier/validate/barrier_centralized.c: Added.
685 (thread):
686 (main):
687 * StitchMarker/ck/regressions/ck_barrier/validate/barrier_combining.c: Added.
688 (thread):
689 (main):
690 * StitchMarker/ck/regressions/ck_barrier/validate/barrier_dissemination.c: Added.
691 (thread):
692 (main):
693 * StitchMarker/ck/regressions/ck_barrier/validate/barrier_mcs.c: Added.
694 (thread):
695 (main):
696 * StitchMarker/ck/regressions/ck_barrier/validate/barrier_tournament.c: Added.
697 (thread):
698 (main):
699 * StitchMarker/ck/regressions/ck_bitmap/validate/Makefile: Added.
700 * StitchMarker/ck/regressions/ck_bitmap/validate/serial.c: Added.
701 (check_iteration):
702 (test):
703 (test_init):
704 (random_init):
705 (copy):
706 (test_counts):
707 (random_test):
708 (main):
709 * StitchMarker/ck/regressions/ck_brlock/benchmark/Makefile: Added.
710 * StitchMarker/ck/regressions/ck_brlock/benchmark/latency.c: Added.
711 (main):
712 * StitchMarker/ck/regressions/ck_brlock/benchmark/throughput.c: Added.
713 (thread_brlock):
714 (main):
715 * StitchMarker/ck/regressions/ck_brlock/validate/Makefile: Added.
716 * StitchMarker/ck/regressions/ck_brlock/validate/validate.c: Added.
717 (thread):
718 (main):
719 * StitchMarker/ck/regressions/ck_bytelock/benchmark/Makefile: Added.
720 * StitchMarker/ck/regressions/ck_bytelock/benchmark/latency.c: Added.
721 (main):
722 * StitchMarker/ck/regressions/ck_bytelock/validate/Makefile: Added.
723 * StitchMarker/ck/regressions/ck_bytelock/validate/validate.c: Added.
724 (thread):
725 (main):
726 * StitchMarker/ck/regressions/ck_cohort/benchmark/Makefile: Added.
727 * StitchMarker/ck/regressions/ck_cohort/benchmark/ck_cohort.c: Added.
728 * StitchMarker/ck/regressions/ck_cohort/benchmark/throughput.c: Added.
729 (ck_spinlock_fas_lock_with_context):
730 (ck_spinlock_fas_unlock_with_context):
731 (ck_spinlock_fas_locked_with_context):
732 (fairness):
733 (main):
734 * StitchMarker/ck/regressions/ck_cohort/ck_cohort.h: Added.
735 * StitchMarker/ck/regressions/ck_cohort/validate/Makefile: Added.
736 * StitchMarker/ck/regressions/ck_cohort/validate/validate.c: Added.
737 (ck_spinlock_fas_lock_with_context):
738 (ck_spinlock_fas_unlock_with_context):
739 (ck_spinlock_fas_locked_with_context):
740 (ck_spinlock_fas_trylock_with_context):
741 (thread):
742 (main):
743 * StitchMarker/ck/regressions/ck_epoch/validate/Makefile: Added.
744 * StitchMarker/ck/regressions/ck_epoch/validate/ck_epoch_call.c: Added.
745 (cb):
746 (main):
747 * StitchMarker/ck/regressions/ck_epoch/validate/ck_epoch_poll.c: Added.
748 (destructor):
749 (read_thread):
750 (write_thread):
751 (main):
752 * StitchMarker/ck/regressions/ck_epoch/validate/ck_epoch_section.c: Added.
753 (setup_test):
754 (teardown_test):
755 (cleanup):
756 (test_simple_read_section):
757 (test_nested_read_section):
758 (barrier_work):
759 (reader_work):
760 (obj_destroy):
761 (test_single_reader_with_barrier_thread):
762 (test_multiple_readers_with_barrier_thread):
763 (main):
764 * StitchMarker/ck/regressions/ck_epoch/validate/ck_epoch_section_2.c: Added.
765 (read_thread):
766 (write_thread):
767 (main):
768 * StitchMarker/ck/regressions/ck_epoch/validate/ck_epoch_synchronize.c: Added.
769 (destructor):
770 (read_thread):
771 (write_thread):
772 (main):
773 * StitchMarker/ck/regressions/ck_epoch/validate/ck_stack.c: Added.
774 (thread):
775 (main):
776 * StitchMarker/ck/regressions/ck_epoch/validate/torture.c: Added.
777 (read_thread):
778 (write_thread):
779 (main):
780 * StitchMarker/ck/regressions/ck_fifo/benchmark/Makefile: Added.
781 * StitchMarker/ck/regressions/ck_fifo/benchmark/latency.c: Added.
782 (main):
783 * StitchMarker/ck/regressions/ck_fifo/validate/Makefile: Added.
784 * StitchMarker/ck/regressions/ck_fifo/validate/ck_fifo_mpmc.c: Added.
785 (test):
786 (main):
787 * StitchMarker/ck/regressions/ck_fifo/validate/ck_fifo_mpmc_iterator.c: Added.
788 (main):
789 * StitchMarker/ck/regressions/ck_fifo/validate/ck_fifo_spsc.c: Added.
790 (test):
791 (main):
792 * StitchMarker/ck/regressions/ck_fifo/validate/ck_fifo_spsc_iterator.c: Added.
793 (main):
794 * StitchMarker/ck/regressions/ck_hp/benchmark/Makefile: Added.
795 * StitchMarker/ck/regressions/ck_hp/benchmark/fifo_latency.c: Added.
796 (main):
797 * StitchMarker/ck/regressions/ck_hp/benchmark/stack_latency.c: Added.
798 (main):
799 * StitchMarker/ck/regressions/ck_hp/validate/Makefile: Added.
800 * StitchMarker/ck/regressions/ck_hp/validate/ck_hp_fifo.c: Added.
801 (test):
802 (destructor):
803 (main):
804 * StitchMarker/ck/regressions/ck_hp/validate/ck_hp_fifo_donner.c: Added.
805 (destructor):
806 (queue_50_50):
807 (main):
808 * StitchMarker/ck/regressions/ck_hp/validate/ck_hp_stack.c: Added.
809 (destructor):
810 (main):
811 * StitchMarker/ck/regressions/ck_hp/validate/nbds_haz_test.c: Added.
812 (stack_pop_mpmc):
813 (thread):
814 (destructor):
815 (main):
816 * StitchMarker/ck/regressions/ck_hp/validate/serial.c: Added.
817 (destructor):
818 (main):
819 * StitchMarker/ck/regressions/ck_hs/benchmark/Makefile: Added.
820 * StitchMarker/ck/regressions/ck_hs/benchmark/apply.c: Added.
821 (hs_malloc):
822 (hs_free):
823 (hs_compare):
824 (set_destroy):
825 (set_init):
826 (set_count):
827 (set_reset):
828 (test_apply):
829 (run_test):
830 (main):
831 * StitchMarker/ck/regressions/ck_hs/benchmark/parallel_bytestring.c: Added.
832 (alarm_handler):
833 (hs_hash):
834 (hs_compare):
835 (hs_destroy):
836 (hs_malloc):
837 (hs_free):
838 (set_remove):
839 (set_replace):
840 (set_swap):
841 (set_get):
842 (set_insert):
843 (set_count):
844 (set_reset):
845 (reader):
846 (acc):
847 (main):
848 * StitchMarker/ck/regressions/ck_hs/benchmark/serial.c: Added.
849 (hs_malloc):
850 (hs_free):
851 (hs_compare):
852 (set_destroy):
853 (set_init):
854 (set_remove):
855 (set_swap):
856 (set_replace):
857 (set_get):
858 (set_insert):
859 (set_insert_unique):
860 (set_count):
861 (set_reset):
862 (set_gc):
863 (set_rebuild):
864 (keys_shuffle):
865 (run_test):
866 (main):
867 * StitchMarker/ck/regressions/ck_hs/validate/Makefile: Added.
868 * StitchMarker/ck/regressions/ck_hs/validate/serial.c: Added.
869 (hs_malloc):
870 (hs_free):
871 (hs_compare):
872 (test_ip):
873 (test_negative):
874 (test_unique):
875 (test_remove):
876 (run_test):
877 (main):
878 * StitchMarker/ck/regressions/ck_ht/benchmark/Makefile: Added.
879 * StitchMarker/ck/regressions/ck_ht/benchmark/parallel_bytestring.c: Added.
880 (alarm_handler):
881 (ht_destroy):
882 (ht_malloc):
883 (ht_free):
884 (table_remove):
885 (table_replace):
886 (table_get):
887 (table_insert):
888 (table_count):
889 (table_reset):
890 (reader):
891 (main):
892 * StitchMarker/ck/regressions/ck_ht/benchmark/parallel_direct.c: Added.
893 (alarm_handler):
894 (ht_destroy):
895 (ht_malloc):
896 (ht_free):
897 (table_init):
898 (table_remove):
899 (table_replace):
900 (table_get):
901 (table_insert):
902 (table_count):
903 (table_reset):
904 (ht_reader):
905 (main):
906 * StitchMarker/ck/regressions/ck_ht/benchmark/serial.c: Added.
907 (ht_malloc):
908 (ht_free):
909 (table_remove):
910 (table_replace):
911 (table_get):
912 (table_insert):
913 (table_count):
914 (table_gc):
915 (table_reset):
916 (keys_shuffle):
917 (main):
918 * StitchMarker/ck/regressions/ck_ht/validate/Makefile: Added.
919 * StitchMarker/ck/regressions/ck_ht/validate/serial.c: Added.
920 (ht_malloc):
921 (ht_free):
922 (ht_hash_wrapper):
923 * StitchMarker/ck/regressions/ck_pflock/benchmark/Makefile: Added.
924 * StitchMarker/ck/regressions/ck_pflock/benchmark/latency.c: Added.
925 (main):
926 * StitchMarker/ck/regressions/ck_pflock/benchmark/throughput.c: Added.
927 (thread_pflock):
928 (main):
929 * StitchMarker/ck/regressions/ck_pflock/validate/Makefile: Added.
930 * StitchMarker/ck/regressions/ck_pflock/validate/validate.c: Added.
931 (thread):
932 (main):
933 * StitchMarker/ck/regressions/ck_pr/benchmark/Makefile: Added.
934 * StitchMarker/ck/regressions/ck_pr/benchmark/benchmark.h: Added.
935 (fairness):
936 (main):
937 * StitchMarker/ck/regressions/ck_pr/benchmark/ck_pr_add_64.c: Added.
938 (main):
939 * StitchMarker/ck/regressions/ck_pr/benchmark/ck_pr_cas_64.c: Added.
940 (main):
941 * StitchMarker/ck/regressions/ck_pr/benchmark/ck_pr_cas_64_2.c: Added.
942 (main):
943 * StitchMarker/ck/regressions/ck_pr/benchmark/ck_pr_faa_64.c: Added.
944 (main):
945 * StitchMarker/ck/regressions/ck_pr/benchmark/ck_pr_fas_64.c: Added.
946 (main):
947 * StitchMarker/ck/regressions/ck_pr/benchmark/ck_pr_neg_64.c: Added.
948 (main):
949 * StitchMarker/ck/regressions/ck_pr/benchmark/fp.c: Added.
950 (main):
951 * StitchMarker/ck/regressions/ck_pr/validate/Makefile: Added.
952 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_add.c: Added.
953 (rg_width):
954 (main):
955 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_and.c: Added.
956 (rg_width):
957 (main):
958 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_bin.c: Added.
959 (main):
960 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_btc.c: Added.
961 (main):
962 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_btr.c: Added.
963 (main):
964 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_bts.c: Added.
965 (main):
966 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_btx.c: Added.
967 (main):
968 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_cas.c: Added.
969 (rg_width):
970 (main):
971 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_dec.c: Added.
972 (rg_width):
973 (main):
974 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_faa.c: Added.
975 (rg_width):
976 (main):
977 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_fas.c: Added.
978 (rg_width):
979 (main):
980 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_fax.c: Added.
981 (main):
982 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_inc.c: Added.
983 (rg_width):
984 (main):
985 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_load.c: Added.
986 (rg_width):
987 (main):
988 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_n.c: Added.
989 (main):
990 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_or.c: Added.
991 (rg_width):
992 (main):
993 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_store.c: Added.
994 (rg_width):
995 (main):
996 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_sub.c: Added.
997 (rg_width):
998 (main):
999 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_unary.c: Added.
1000 (main):
1001 * StitchMarker/ck/regressions/ck_pr/validate/ck_pr_xor.c: Added.
1002 (rg_width):
1003 (main):
1004 * StitchMarker/ck/regressions/ck_queue/validate/Makefile: Added.
1005 * StitchMarker/ck/regressions/ck_queue/validate/ck_list.c: Added.
1006 (test_foreach):
1007 (execute):
1008 (main):
1009 * StitchMarker/ck/regressions/ck_queue/validate/ck_slist.c: Added.
1010 (test_foreach):
1011 (execute):
1012 (main):
1013 * StitchMarker/ck/regressions/ck_queue/validate/ck_stailq.c: Added.
1014 (test_foreach):
1015 (execute):
1016 (main):
1017 * StitchMarker/ck/regressions/ck_rhs/benchmark/Makefile: Added.
1018 * StitchMarker/ck/regressions/ck_rhs/benchmark/parallel_bytestring.c: Added.
1019 (alarm_handler):
1020 (hs_hash):
1021 (hs_compare):
1022 (hs_destroy):
1023 (hs_malloc):
1024 (hs_free):
1025 (set_remove):
1026 (set_replace):
1027 (set_swap):
1028 (set_get):
1029 (set_insert):
1030 (set_count):
1031 (set_reset):
1032 (reader):
1033 (acc):
1034 (main):
1035 * StitchMarker/ck/regressions/ck_rhs/benchmark/serial.c: Added.
1036 (hs_malloc):
1037 (hs_free):
1038 (hs_compare):
1039 (set_destroy):
1040 (set_init):
1041 (set_remove):
1042 (set_swap):
1043 (set_replace):
1044 (set_get):
1045 (set_insert):
1046 (set_insert_unique):
1047 (set_count):
1048 (set_reset):
1049 (set_gc):
1050 (set_rebuild):
1051 (keys_shuffle):
1052 (run_test):
1053 (main):
1054 * StitchMarker/ck/regressions/ck_rhs/validate/Makefile: Added.
1055 * StitchMarker/ck/regressions/ck_rhs/validate/serial.c: Added.
1056 (hs_malloc):
1057 (hs_free):
1058 (hs_compare):
1059 (test_ip):
1060 (test_negative):
1061 (test_unique):
1062 (test_remove):
1063 (run_test):
1064 (main):
1065 * StitchMarker/ck/regressions/ck_ring/benchmark/Makefile: Added.
1066 * StitchMarker/ck/regressions/ck_ring/benchmark/latency.c: Added.
1067 (main):
1068 * StitchMarker/ck/regressions/ck_ring/validate/Makefile: Added.
1069 * StitchMarker/ck/regressions/ck_ring/validate/ck_ring_mpmc.c: Added.
1070 (test_mpmc):
1071 (test_spmc):
1072 (test):
1073 (main):
1074 * StitchMarker/ck/regressions/ck_ring/validate/ck_ring_mpmc_template.c: Added.
1075 (test_spmc):
1076 (test):
1077 (main):
1078 * StitchMarker/ck/regressions/ck_ring/validate/ck_ring_spmc.c: Added.
1079 (test_spmc):
1080 (test):
1081 (main):
1082 * StitchMarker/ck/regressions/ck_ring/validate/ck_ring_spmc_template.c: Added.
1083 (test_spmc):
1084 (test):
1085 (main):
1086 * StitchMarker/ck/regressions/ck_ring/validate/ck_ring_spsc.c: Added.
1087 (test):
1088 (main):
1089 * StitchMarker/ck/regressions/ck_rwcohort/benchmark/Makefile: Added.
1090 * StitchMarker/ck/regressions/ck_rwcohort/benchmark/ck_neutral.c: Added.
1091 * StitchMarker/ck/regressions/ck_rwcohort/benchmark/ck_rp.c: Added.
1092 * StitchMarker/ck/regressions/ck_rwcohort/benchmark/ck_wp.c: Added.
1093 * StitchMarker/ck/regressions/ck_rwcohort/benchmark/latency.h: Added.
1094 (ck_spinlock_fas_lock_with_context):
1095 (ck_spinlock_fas_unlock_with_context):
1096 (ck_spinlock_fas_locked_with_context):
1097 (main):
1098 * StitchMarker/ck/regressions/ck_rwcohort/benchmark/throughput.h: Added.
1099 (ck_spinlock_fas_lock_with_context):
1100 (ck_spinlock_fas_unlock_with_context):
1101 (ck_spinlock_fas_locked_with_context):
1102 (thread_rwlock):
1103 (main):
1104 * StitchMarker/ck/regressions/ck_rwcohort/ck_neutral.h: Added.
1105 * StitchMarker/ck/regressions/ck_rwcohort/ck_rp.h: Added.
1106 * StitchMarker/ck/regressions/ck_rwcohort/ck_wp.h: Added.
1107 * StitchMarker/ck/regressions/ck_rwcohort/validate/Makefile: Added.
1108 * StitchMarker/ck/regressions/ck_rwcohort/validate/ck_neutral.c: Added.
1109 * StitchMarker/ck/regressions/ck_rwcohort/validate/ck_rp.c: Added.
1110 * StitchMarker/ck/regressions/ck_rwcohort/validate/ck_wp.c: Added.
1111 * StitchMarker/ck/regressions/ck_rwcohort/validate/validate.h: Added.
1112 (ck_spinlock_fas_lock_with_context):
1113 (ck_spinlock_fas_unlock_with_context):
1114 (ck_spinlock_fas_locked_with_context):
1115 (thread):
1116 (main):
1117 * StitchMarker/ck/regressions/ck_rwlock/benchmark/Makefile: Added.
1118 * StitchMarker/ck/regressions/ck_rwlock/benchmark/latency.c: Added.
1119 (main):
1120 * StitchMarker/ck/regressions/ck_rwlock/benchmark/throughput.c: Added.
1121 (thread_lock):
1122 (rwlock_test):
1123 (main):
1124 * StitchMarker/ck/regressions/ck_rwlock/validate/Makefile: Added.
1125 * StitchMarker/ck/regressions/ck_rwlock/validate/validate.c: Added.
1126 (thread_recursive):
1127 (thread_rtm_adaptive):
1128 (thread_rtm_mix):
1129 (thread_rtm):
1130 (thread):
1131 (rwlock_test):
1132 (main):
1133 * StitchMarker/ck/regressions/ck_sequence/benchmark/Makefile: Added.
1134 * StitchMarker/ck/regressions/ck_sequence/benchmark/ck_sequence.c: Added.
1135 (main):
1136 * StitchMarker/ck/regressions/ck_sequence/validate/Makefile: Added.
1137 * StitchMarker/ck/regressions/ck_sequence/validate/ck_sequence.c: Added.
1138 (validate):
1139 (consumer):
1140 (main):
1141 * StitchMarker/ck/regressions/ck_spinlock/benchmark/Makefile: Added.
1142 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_anderson.c: Added.
1143 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_cas.c: Added.
1144 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_clh.c: Added.
1145 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_dec.c: Added.
1146 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_fas.c: Added.
1147 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_hclh.c: Added.
1148 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_mcs.c: Added.
1149 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_spinlock.c: Added.
1150 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_ticket.c: Added.
1151 * StitchMarker/ck/regressions/ck_spinlock/benchmark/ck_ticket_pb.c: Added.
1152 * StitchMarker/ck/regressions/ck_spinlock/benchmark/latency.h: Added.
1153 (main):
1154 * StitchMarker/ck/regressions/ck_spinlock/benchmark/linux_spinlock.c: Added.
1155 * StitchMarker/ck/regressions/ck_spinlock/benchmark/throughput.h: Added.
1156 (gen_lock):
1157 (gen_unlock):
1158 (fairness):
1159 (main):
1160 * StitchMarker/ck/regressions/ck_spinlock/ck_anderson.h: Added.
1161 * StitchMarker/ck/regressions/ck_spinlock/ck_cas.h: Added.
1162 * StitchMarker/ck/regressions/ck_spinlock/ck_clh.h: Added.
1163 * StitchMarker/ck/regressions/ck_spinlock/ck_dec.h: Added.
1164 * StitchMarker/ck/regressions/ck_spinlock/ck_fas.h: Added.
1165 * StitchMarker/ck/regressions/ck_spinlock/ck_hclh.h: Added.
1166 * StitchMarker/ck/regressions/ck_spinlock/ck_mcs.h: Added.
1167 * StitchMarker/ck/regressions/ck_spinlock/ck_spinlock.h: Added.
1168 * StitchMarker/ck/regressions/ck_spinlock/ck_ticket.h: Added.
1169 * StitchMarker/ck/regressions/ck_spinlock/ck_ticket_pb.h: Added.
1170 * StitchMarker/ck/regressions/ck_spinlock/linux_spinlock.h: Added.
1171 (spin_lock):
1172 (spin_unlock):
1173 * StitchMarker/ck/regressions/ck_spinlock/validate/Makefile: Added.
1174 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_anderson.c: Added.
1175 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_cas.c: Added.
1176 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_clh.c: Added.
1177 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_dec.c: Added.
1178 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_fas.c: Added.
1179 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_hclh.c: Added.
1180 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_mcs.c: Added.
1181 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_spinlock.c: Added.
1182 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_ticket.c: Added.
1183 * StitchMarker/ck/regressions/ck_spinlock/validate/ck_ticket_pb.c: Added.
1184 * StitchMarker/ck/regressions/ck_spinlock/validate/linux_spinlock.c: Added.
1185 (main):
1186 * StitchMarker/ck/regressions/ck_spinlock/validate/validate.h: Added.
1187 (thread):
1188 (main):
1189 * StitchMarker/ck/regressions/ck_stack/benchmark/Makefile: Added.
1190 * StitchMarker/ck/regressions/ck_stack/benchmark/latency.c: Added.
1191 (main):
1192 * StitchMarker/ck/regressions/ck_stack/validate/Makefile: Added.
1193 * StitchMarker/ck/regressions/ck_stack/validate/pair.c: Added.
1194 (stack_thread):
1195 (stack_assert):
1196 (main):
1197 * StitchMarker/ck/regressions/ck_stack/validate/pop.c: Added.
1198 (stack_thread):
1199 (stack_assert):
1200 (push_stack):
1201 (main):
1202 * StitchMarker/ck/regressions/ck_stack/validate/push.c: Added.
1203 (stack_thread):
1204 (stack_assert):
1205 (main):
1206 * StitchMarker/ck/regressions/ck_stack/validate/serial.c: Added.
1207 (serial):
1208 (main):
1209 * StitchMarker/ck/regressions/ck_swlock/benchmark/Makefile: Added.
1210 * StitchMarker/ck/regressions/ck_swlock/benchmark/latency.c: Added.
1211 (main):
1212 * StitchMarker/ck/regressions/ck_swlock/benchmark/throughput.c: Added.
1213 (swlock_test):
1214 (main):
1215 * StitchMarker/ck/regressions/ck_swlock/validate/Makefile: Added.
1216 * StitchMarker/ck/regressions/ck_swlock/validate/validate.c: Added.
1217 (thread_rtm_adaptive):
1218 (thread_rtm_mix):
1219 (thread_rtm):
1220 (thread_latch):
1221 (thread):
1222 (swlock_test):
1223 (main):
1224 * StitchMarker/ck/regressions/ck_tflock/benchmark/Makefile: Added.
1225 * StitchMarker/ck/regressions/ck_tflock/benchmark/latency.c: Added.
1226 (main):
1227 * StitchMarker/ck/regressions/ck_tflock/benchmark/throughput.c: Added.
1228 (tflock_test):
1229 (main):
1230 * StitchMarker/ck/regressions/ck_tflock/validate/Makefile: Added.
1231 * StitchMarker/ck/regressions/ck_tflock/validate/validate.c: Added.
1232 (thread):
1233 (tflock_ticket_test):
1234 (main):
1235 * StitchMarker/ck/regressions/common.h: Added.
1236 (common_srand):
1237 (common_rand):
1238 (common_rand_r):
1239 (common_srand48):
1240 (common_lrand48):
1241 (common_drand48):
1242 (common_sleep):
1243 (common_gettimeofday):
1244 (common_alarm):
1245 (gettid):
1246 (aff_iterate):
1247 (aff_iterate_core):
1248 (rdtsc):
1249 (ck_error):
1250 * StitchMarker/ck/src/Makefile: Added.
1251 * StitchMarker/ck/src/Makefile.in: Added.
1252 * StitchMarker/ck/src/ck_array.c: Added.
1253 (ck_array_create):
1254 (ck_array_init):
1255 (ck_array_put):
1256 (ck_array_put_unique):
1257 (ck_array_remove):
1258 (ck_array_commit):
1259 (ck_array_deinit):
1260 * StitchMarker/ck/src/ck_barrier_centralized.c: Added.
1261 (ck_barrier_centralized):
1262 * StitchMarker/ck/src/ck_barrier_combining.c: Added.
1263 (ck_barrier_combining_queue_dequeue):
1264 (ck_barrier_combining_insert):
1265 (ck_barrier_combining_queue_enqueue):
1266 (ck_barrier_combining_group_init):
1267 (ck_barrier_combining_init):
1268 (ck_barrier_combining_aux):
1269 (ck_barrier_combining):
1270 * StitchMarker/ck/src/ck_barrier_dissemination.c: Added.
1271 (ck_barrier_dissemination_init):
1272 (ck_barrier_dissemination_subscribe):
1273 (ck_barrier_dissemination_size):
1274 (ck_barrier_dissemination):
1275 * StitchMarker/ck/src/ck_barrier_mcs.c: Added.
1276 (ck_barrier_mcs_init):
1277 (ck_barrier_mcs_subscribe):
1278 (ck_barrier_mcs_check_children):
1279 (ck_barrier_mcs_reinitialize_children):
1280 (ck_barrier_mcs):
1281 * StitchMarker/ck/src/ck_barrier_tournament.c: Added.
1282 (ck_barrier_tournament_subscribe):
1283 (ck_barrier_tournament_init):
1284 (ck_barrier_tournament_size):
1285 (ck_barrier_tournament):
1286 * StitchMarker/ck/src/ck_epoch.c: Added.
1287 (_ck_epoch_delref):
1288 (_ck_epoch_addref):
1289 (ck_epoch_init):
1290 (ck_epoch_recycle):
1291 (ck_epoch_register):
1292 (ck_epoch_unregister):
1293 (ck_epoch_scan):
1294 (ck_epoch_dispatch):
1295 (ck_epoch_reclaim):
1296 (epoch_block):
1297 (ck_epoch_synchronize_wait):
1298 (ck_epoch_synchronize):
1299 (ck_epoch_barrier):
1300 (ck_epoch_barrier_wait):
1301 (ck_epoch_poll):
1302 * StitchMarker/ck/src/ck_hp.c: Added.
1303 (ck_hp_init):
1304 (ck_hp_set_threshold):
1305 (ck_hp_recycle):
1306 (ck_hp_unregister):
1307 (ck_hp_register):
1308 (hazard_compare):
1309 (ck_hp_member_scan):
1310 (ck_hp_member_cache):
1311 (ck_hp_reclaim):
1312 (ck_hp_retire):
1313 (ck_hp_free):
1314 (ck_hp_purge):
1315 * StitchMarker/ck/src/ck_hs.c: Added.
1316 (ck_hs_map_signal):
1317 (_ck_hs_next):
1318 (ck_hs_iterator_init):
1319 (ck_hs_next):
1320 (ck_hs_next_spmc):
1321 (ck_hs_stat):
1322 (ck_hs_count):
1323 (ck_hs_map_destroy):
1324 (ck_hs_destroy):
1325 (ck_hs_map_create):
1326 (ck_hs_reset_size):
1327 (ck_hs_reset):
1328 (ck_hs_map_probe_next):
1329 (ck_hs_map_bound_set):
1330 (ck_hs_map_bound_get):
1331 (ck_hs_grow):
1332 (ck_hs_map_postinsert):
1333 (ck_hs_rebuild):
1334 (ck_hs_map_probe):
1335 (ck_hs_marshal):
1336 (ck_hs_gc):
1337 (ck_hs_fas):
1338 (ck_hs_apply):
1339 (ck_hs_set):
1340 (ck_hs_put_internal):
1341 (ck_hs_put):
1342 (ck_hs_put_unique):
1343 (ck_hs_get):
1344 (ck_hs_remove):
1345 (ck_hs_move):
1346 (ck_hs_init):
1347 * StitchMarker/ck/src/ck_ht.c: Added.
1348 (ck_ht_stat):
1349 (ck_ht_hash):
1350 (ck_ht_hash_direct):
1351 (ck_ht_hash_wrapper):
1352 (ck_ht_map_create):
1353 (ck_ht_map_bound_set):
1354 (ck_ht_map_bound_get):
1355 (ck_ht_map_destroy):
1356 (ck_ht_map_probe_next):
1357 (ck_ht_init):
1358 (ck_ht_map_probe_wr):
1359 (ck_ht_gc):
1360 (ck_ht_map_probe_rd):
1361 (ck_ht_count):
1362 (ck_ht_next):
1363 (ck_ht_reset_size_spmc):
1364 (ck_ht_reset_spmc):
1365 (ck_ht_grow_spmc):
1366 (ck_ht_remove_spmc):
1367 (ck_ht_get_spmc):
1368 (ck_ht_set_spmc):
1369 (ck_ht_put_spmc):
1370 (ck_ht_destroy):
1371 * StitchMarker/ck/src/ck_ht_hash.h: Added.
1372 (rotl32):
1373 (rotl64):
1374 (getblock):
1375 (fmix):
1376 (MurmurHash3_x86_32):
1377 (MurmurHash64A):
1378 (MurmurHash64B):
1379 * StitchMarker/ck/src/ck_internal.h: Added.
1380 (ck_internal_log):
1381 (ck_internal_power_2):
1382 (ck_internal_max):
1383 (ck_internal_max_64):
1384 (ck_internal_max_32):
1385 (ck_internal_bsf):
1386 (ck_internal_bsf_64):
1387 * StitchMarker/ck/src/ck_rhs.c: Added.
1388 (ck_rhs_entry):
1389 (ck_rhs_entry_addr):
1390 (ck_rhs_desc):
1391 (ck_rhs_wanted_inc):
1392 (ck_rhs_probes):
1393 (ck_rhs_set_probes):
1394 (ck_rhs_probe_bound):
1395 (ck_rhs_probe_bound_addr):
1396 (ck_rhs_in_rh):
1397 (ck_rhs_set_rh):
1398 (ck_rhs_unset_rh):
1399 (ck_rhs_set_load_factor):
1400 (ck_rhs_iterator_init):
1401 (ck_rhs_next):
1402 (ck_rhs_stat):
1403 (ck_rhs_count):
1404 (ck_rhs_map_destroy):
1405 (ck_rhs_destroy):
1406 (ck_rhs_map_create):
1407 (ck_rhs_reset_size):
1408 (ck_rhs_reset):
1409 (ck_rhs_map_probe_next):
1410 (ck_rhs_map_probe_prev):
1411 (ck_rhs_map_bound_set):
1412 (ck_rhs_map_bound_get):
1413 (ck_rhs_grow):
1414 (ck_rhs_rebuild):
1415 (ck_rhs_map_probe_rm):
1416 (ck_rhs_map_probe):
1417 (ck_rhs_marshal):
1418 (ck_rhs_gc):
1419 (ck_rhs_add_wanted):
1420 (ck_rhs_remove_wanted):
1421 (ck_rhs_get_first_offset):
1422 (ck_rhs_put_robin_hood):
1423 (ck_rhs_do_backward_shift_delete):
1424 (ck_rhs_fas):
1425 (ck_rhs_apply):
1426 (ck_rhs_set):
1427 (ck_rhs_put_internal):
1428 (ck_rhs_put):
1429 (ck_rhs_put_unique):
1430 (ck_rhs_get):
1431 (ck_rhs_remove):
1432 (ck_rhs_move):
1433 (ck_rhs_init):
1434 * StitchMarker/folly.sh: Added. Build script.
1435 * StitchMarker/folly/LICENSE: Added.
1436 * StitchMarker/folly/README.md: Added.
1437 * StitchMarker/folly/boost/LICENSE_1_0.txt: Added.
1438 * StitchMarker/folly/boost/assert.hpp: Added.
1439 * StitchMarker/folly/boost/blank.hpp: Added.
1440 * StitchMarker/folly/boost/blank_fwd.hpp: Added.
1441 * StitchMarker/folly/boost/concept/assert.hpp: Added.
1442 * StitchMarker/folly/boost/concept/detail/backward_compatibility.hpp: Added.
1443 * StitchMarker/folly/boost/concept/detail/concept_def.hpp: Added.
1444 * StitchMarker/folly/boost/concept/detail/concept_undef.hpp: Added.
1445 * StitchMarker/folly/boost/concept/detail/general.hpp: Added.
1446 * StitchMarker/folly/boost/concept/detail/has_constraints.hpp: Added.
1447 * StitchMarker/folly/boost/concept/usage.hpp: Added.
1448 * StitchMarker/folly/boost/concept_check.hpp: Added.
1449 * StitchMarker/folly/boost/config.hpp: Added.
1450 * StitchMarker/folly/boost/config/compiler/clang.hpp: Added.
1451 * StitchMarker/folly/boost/config/no_tr1/cmath.hpp: Added.
1452 * StitchMarker/folly/boost/config/no_tr1/complex.hpp: Added.
1453 * StitchMarker/folly/boost/config/platform/macos.hpp: Added.
1454 * StitchMarker/folly/boost/config/posix_features.hpp: Added.
1455 * StitchMarker/folly/boost/config/select_compiler_config.hpp: Added.
1456 * StitchMarker/folly/boost/config/select_platform_config.hpp: Added.
1457 * StitchMarker/folly/boost/config/select_stdlib_config.hpp: Added.
1458 * StitchMarker/folly/boost/config/stdlib/libcpp.hpp: Added.
1459 * StitchMarker/folly/boost/config/suffix.hpp: Added.
1460 * StitchMarker/folly/boost/config/user.hpp: Added.
1461 * StitchMarker/folly/boost/core/addressof.hpp: Added.
1462 * StitchMarker/folly/boost/core/checked_delete.hpp: Added.
1463 * StitchMarker/folly/boost/core/enable_if.hpp: Added.
1464 * StitchMarker/folly/boost/core/no_exceptions_support.hpp: Added.
1465 * StitchMarker/folly/boost/core/noncopyable.hpp: Added.
1466 * StitchMarker/folly/boost/cstdint.hpp: Added.
1467 * StitchMarker/folly/boost/current_function.hpp: Added.
1468 * StitchMarker/folly/boost/detail/endian.hpp: Added.
1469 * StitchMarker/folly/boost/detail/indirect_traits.hpp: Added.
1470 * StitchMarker/folly/boost/detail/iterator.hpp: Added.
1471 * StitchMarker/folly/boost/detail/templated_streams.hpp: Added.
1472 * StitchMarker/folly/boost/detail/workaround.hpp: Added.
1473 * StitchMarker/folly/boost/exception/exception.hpp: Added.
1474 * StitchMarker/folly/boost/function_types/components.hpp: Added.
1475 * StitchMarker/folly/boost/function_types/config/cc_names.hpp: Added.
1476 * StitchMarker/folly/boost/function_types/config/compiler.hpp: Added.
1477 * StitchMarker/folly/boost/function_types/config/config.hpp: Added.
1478 * StitchMarker/folly/boost/function_types/detail/class_transform.hpp: Added.
1479 * StitchMarker/folly/boost/function_types/detail/components_as_mpl_sequence.hpp: Added.
1480 * StitchMarker/folly/boost/function_types/detail/components_impl/arity10_0.hpp: Added.
1481 * StitchMarker/folly/boost/function_types/detail/components_impl/arity10_1.hpp: Added.
1482 * StitchMarker/folly/boost/function_types/detail/components_impl/arity20_0.hpp: Added.
1483 * StitchMarker/folly/boost/function_types/detail/components_impl/arity20_1.hpp: Added.
1484 * StitchMarker/folly/boost/function_types/detail/encoding/aliases_def.hpp: Added.
1485 * StitchMarker/folly/boost/function_types/detail/encoding/aliases_undef.hpp: Added.
1486 * StitchMarker/folly/boost/function_types/detail/encoding/def.hpp: Added.
1487 * StitchMarker/folly/boost/function_types/detail/encoding/undef.hpp: Added.
1488 * StitchMarker/folly/boost/function_types/detail/pp_arity_loop.hpp: Added.
1489 * StitchMarker/folly/boost/function_types/detail/pp_cc_loop/preprocessed.hpp: Added.
1490 * StitchMarker/folly/boost/function_types/detail/pp_loop.hpp: Added.
1491 * StitchMarker/folly/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp: Added.
1492 * StitchMarker/folly/boost/function_types/detail/pp_tags/cc_tag.hpp: Added.
1493 * StitchMarker/folly/boost/function_types/detail/pp_tags/preprocessed.hpp: Added.
1494 * StitchMarker/folly/boost/function_types/detail/pp_variate_loop/preprocessed.hpp: Added.
1495 * StitchMarker/folly/boost/function_types/detail/retag_default_cc.hpp: Added.
1496 * StitchMarker/folly/boost/function_types/function_arity.hpp: Added.
1497 * StitchMarker/folly/boost/function_types/is_callable_builtin.hpp: Added.
1498 * StitchMarker/folly/boost/function_types/property_tags.hpp: Added.
1499 * StitchMarker/folly/boost/implicit_cast.hpp: Added.
1500 * StitchMarker/folly/boost/integer.hpp: Added.
1501 * StitchMarker/folly/boost/integer/integer_log2.hpp: Added.
1502 * StitchMarker/folly/boost/integer/integer_mask.hpp: Added.
1503 * StitchMarker/folly/boost/integer/static_log2.hpp: Added.
1504 * StitchMarker/folly/boost/integer_fwd.hpp: Added.
1505 * StitchMarker/folly/boost/integer_traits.hpp: Added.
1506 * StitchMarker/folly/boost/intrusive/circular_list_algorithms.hpp: Added.
1507 * StitchMarker/folly/boost/intrusive/detail/algo_type.hpp: Added.
1508 * StitchMarker/folly/boost/intrusive/detail/algorithm.hpp: Added.
1509 * StitchMarker/folly/boost/intrusive/detail/array_initializer.hpp: Added.
1510 * StitchMarker/folly/boost/intrusive/detail/assert.hpp: Added.
1511 * StitchMarker/folly/boost/intrusive/detail/config_begin.hpp: Added.
1512 * StitchMarker/folly/boost/intrusive/detail/config_end.hpp: Added.
1513 * StitchMarker/folly/boost/intrusive/detail/default_header_holder.hpp: Added.
1514 * StitchMarker/folly/boost/intrusive/detail/ebo_functor_holder.hpp: Added.
1515 * StitchMarker/folly/boost/intrusive/detail/equal_to_value.hpp: Added.
1516 * StitchMarker/folly/boost/intrusive/detail/exception_disposer.hpp: Added.
1517 * StitchMarker/folly/boost/intrusive/detail/function_detector.hpp: Added.
1518 * StitchMarker/folly/boost/intrusive/detail/generic_hook.hpp: Added.
1519 * StitchMarker/folly/boost/intrusive/detail/get_value_traits.hpp: Added.
1520 * StitchMarker/folly/boost/intrusive/detail/hook_traits.hpp: Added.
1521 * StitchMarker/folly/boost/intrusive/detail/iiterator.hpp: Added.
1522 * StitchMarker/folly/boost/intrusive/detail/is_stateful_value_traits.hpp: Added.
1523 * StitchMarker/folly/boost/intrusive/detail/iterator.hpp: Added.
1524 * StitchMarker/folly/boost/intrusive/detail/key_nodeptr_comp.hpp: Added.
1525 * StitchMarker/folly/boost/intrusive/detail/list_iterator.hpp: Added.
1526 * StitchMarker/folly/boost/intrusive/detail/list_node.hpp: Added.
1527 * StitchMarker/folly/boost/intrusive/detail/minimal_less_equal_header.hpp: Added.
1528 * StitchMarker/folly/boost/intrusive/detail/mpl.hpp: Added.
1529 * StitchMarker/folly/boost/intrusive/detail/node_holder.hpp: Added.
1530 * StitchMarker/folly/boost/intrusive/detail/parent_from_member.hpp: Added.
1531 * StitchMarker/folly/boost/intrusive/detail/pointer_element.hpp: Added.
1532 * StitchMarker/folly/boost/intrusive/detail/reverse_iterator.hpp: Added.
1533 * StitchMarker/folly/boost/intrusive/detail/simple_disposers.hpp: Added.
1534 * StitchMarker/folly/boost/intrusive/detail/size_holder.hpp: Added.
1535 * StitchMarker/folly/boost/intrusive/detail/std_fwd.hpp: Added.
1536 * StitchMarker/folly/boost/intrusive/detail/to_raw_pointer.hpp: Added.
1537 * StitchMarker/folly/boost/intrusive/detail/tree_value_compare.hpp: Added.
1538 * StitchMarker/folly/boost/intrusive/detail/uncast.hpp: Added.
1539 * StitchMarker/folly/boost/intrusive/detail/workaround.hpp: Added.
1540 * StitchMarker/folly/boost/intrusive/intrusive_fwd.hpp: Added.
1541 * StitchMarker/folly/boost/intrusive/link_mode.hpp: Added.
1542 * StitchMarker/folly/boost/intrusive/list.hpp: Added.
1543 * StitchMarker/folly/boost/intrusive/list_hook.hpp: Added.
1544 * StitchMarker/folly/boost/intrusive/options.hpp: Added.
1545 * StitchMarker/folly/boost/intrusive/pack_options.hpp: Added.
1546 * StitchMarker/folly/boost/intrusive/pointer_rebind.hpp: Added.
1547 * StitchMarker/folly/boost/intrusive/pointer_traits.hpp: Added.
1548 * StitchMarker/folly/boost/iterator.hpp: Added.
1549 * StitchMarker/folly/boost/iterator/detail/config_def.hpp: Added.
1550 * StitchMarker/folly/boost/iterator/detail/config_undef.hpp: Added.
1551 * StitchMarker/folly/boost/iterator/detail/enable_if.hpp: Added.
1552 * StitchMarker/folly/boost/iterator/detail/facade_iterator_category.hpp: Added.
1553 * StitchMarker/folly/boost/iterator/interoperable.hpp: Added.
1554 * StitchMarker/folly/boost/iterator/iterator_adaptor.hpp: Added.
1555 * StitchMarker/folly/boost/iterator/iterator_categories.hpp: Added.
1556 * StitchMarker/folly/boost/iterator/iterator_concepts.hpp: Added.
1557 * StitchMarker/folly/boost/iterator/iterator_facade.hpp: Added.
1558 * StitchMarker/folly/boost/iterator/iterator_traits.hpp: Added.
1559 * StitchMarker/folly/boost/limits.hpp: Added.
1560 * StitchMarker/folly/boost/math/policies/policy.hpp: Added.
1561 * StitchMarker/folly/boost/math/special_functions/detail/fp_traits.hpp: Added.
1562 * StitchMarker/folly/boost/math/special_functions/detail/round_fwd.hpp: Added.
1563 * StitchMarker/folly/boost/math/special_functions/fpclassify.hpp: Added.
1564 * StitchMarker/folly/boost/math/special_functions/math_fwd.hpp: Added.
1565 * StitchMarker/folly/boost/math/tools/config.hpp: Added.
1566 * StitchMarker/folly/boost/math/tools/promotion.hpp: Added.
1567 * StitchMarker/folly/boost/math/tools/real_cast.hpp: Added.
1568 * StitchMarker/folly/boost/math/tools/user.hpp: Added.
1569 * StitchMarker/folly/boost/move/core.hpp: Added.
1570 * StitchMarker/folly/boost/move/detail/config_begin.hpp: Added.
1571 * StitchMarker/folly/boost/move/detail/config_end.hpp: Added.
1572 * StitchMarker/folly/boost/move/detail/iterator_traits.hpp: Added.
1573 * StitchMarker/folly/boost/move/detail/meta_utils.hpp: Added.
1574 * StitchMarker/folly/boost/move/detail/meta_utils_core.hpp: Added.
1575 * StitchMarker/folly/boost/move/detail/std_ns_begin.hpp: Added.
1576 * StitchMarker/folly/boost/move/detail/std_ns_end.hpp: Added.
1577 * StitchMarker/folly/boost/move/detail/type_traits.hpp: Added.
1578 * StitchMarker/folly/boost/move/detail/workaround.hpp: Added.
1579 * StitchMarker/folly/boost/move/utility_core.hpp: Added.
1580 * StitchMarker/folly/boost/mpl/O1_size.hpp: Added.
1581 * StitchMarker/folly/boost/mpl/O1_size_fwd.hpp: Added.
1582 * StitchMarker/folly/boost/mpl/advance.hpp: Added.
1583 * StitchMarker/folly/boost/mpl/advance_fwd.hpp: Added.
1584 * StitchMarker/folly/boost/mpl/always.hpp: Added.
1585 * StitchMarker/folly/boost/mpl/and.hpp: Added.
1586 * StitchMarker/folly/boost/mpl/apply.hpp: Added.
1587 * StitchMarker/folly/boost/mpl/apply_fwd.hpp: Added.
1588 * StitchMarker/folly/boost/mpl/apply_wrap.hpp: Added.
1589 * StitchMarker/folly/boost/mpl/arg.hpp: Added.
1590 * StitchMarker/folly/boost/mpl/arg_fwd.hpp: Added.
1591 * StitchMarker/folly/boost/mpl/assert.hpp: Added.
1592 * StitchMarker/folly/boost/mpl/at.hpp: Added.
1593 * StitchMarker/folly/boost/mpl/at_fwd.hpp: Added.
1594 * StitchMarker/folly/boost/mpl/aux_/O1_size_impl.hpp: Added.
1595 * StitchMarker/folly/boost/mpl/aux_/adl_barrier.hpp: Added.
1596 * StitchMarker/folly/boost/mpl/aux_/advance_backward.hpp: Added.
1597 * StitchMarker/folly/boost/mpl/aux_/advance_forward.hpp: Added.
1598 * StitchMarker/folly/boost/mpl/aux_/arg_typedef.hpp: Added.
1599 * StitchMarker/folly/boost/mpl/aux_/arithmetic_op.hpp: Added.
1600 * StitchMarker/folly/boost/mpl/aux_/arity.hpp: Added.
1601 * StitchMarker/folly/boost/mpl/aux_/arity_spec.hpp: Added.
1602 * StitchMarker/folly/boost/mpl/aux_/at_impl.hpp: Added.
1603 * StitchMarker/folly/boost/mpl/aux_/begin_end_impl.hpp: Added.
1604 * StitchMarker/folly/boost/mpl/aux_/clear_impl.hpp: Added.
1605 * StitchMarker/folly/boost/mpl/aux_/common_name_wknd.hpp: Added.
1606 * StitchMarker/folly/boost/mpl/aux_/comparison_op.hpp: Added.
1607 * StitchMarker/folly/boost/mpl/aux_/config/adl.hpp: Added.
1608 * StitchMarker/folly/boost/mpl/aux_/config/arrays.hpp: Added.
1609 * StitchMarker/folly/boost/mpl/aux_/config/bcc.hpp: Added.
1610 * StitchMarker/folly/boost/mpl/aux_/config/bind.hpp: Added.
1611 * StitchMarker/folly/boost/mpl/aux_/config/compiler.hpp: Added.
1612 * StitchMarker/folly/boost/mpl/aux_/config/ctps.hpp: Added.
1613 * StitchMarker/folly/boost/mpl/aux_/config/dtp.hpp: Added.
1614 * StitchMarker/folly/boost/mpl/aux_/config/eti.hpp: Added.
1615 * StitchMarker/folly/boost/mpl/aux_/config/forwarding.hpp: Added.
1616 * StitchMarker/folly/boost/mpl/aux_/config/gcc.hpp: Added.
1617 * StitchMarker/folly/boost/mpl/aux_/config/gpu.hpp: Added.
1618 * StitchMarker/folly/boost/mpl/aux_/config/has_apply.hpp: Added.
1619 * StitchMarker/folly/boost/mpl/aux_/config/has_xxx.hpp: Added.
1620 * StitchMarker/folly/boost/mpl/aux_/config/integral.hpp: Added.
1621 * StitchMarker/folly/boost/mpl/aux_/config/intel.hpp: Added.
1622 * StitchMarker/folly/boost/mpl/aux_/config/lambda.hpp: Added.
1623 * StitchMarker/folly/boost/mpl/aux_/config/msvc.hpp: Added.
1624 * StitchMarker/folly/boost/mpl/aux_/config/msvc_typename.hpp: Added.
1625 * StitchMarker/folly/boost/mpl/aux_/config/nttp.hpp: Added.
1626 * StitchMarker/folly/boost/mpl/aux_/config/overload_resolution.hpp: Added.
1627 * StitchMarker/folly/boost/mpl/aux_/config/pp_counter.hpp: Added.
1628 * StitchMarker/folly/boost/mpl/aux_/config/preprocessor.hpp: Added.
1629 * StitchMarker/folly/boost/mpl/aux_/config/static_constant.hpp: Added.
1630 * StitchMarker/folly/boost/mpl/aux_/config/ttp.hpp: Added.
1631 * StitchMarker/folly/boost/mpl/aux_/config/typeof.hpp: Added.
1632 * StitchMarker/folly/boost/mpl/aux_/config/use_preprocessed.hpp: Added.
1633 * StitchMarker/folly/boost/mpl/aux_/config/workaround.hpp: Added.
1634 * StitchMarker/folly/boost/mpl/aux_/contains_impl.hpp: Added.
1635 * StitchMarker/folly/boost/mpl/aux_/find_if_pred.hpp: Added.
1636 * StitchMarker/folly/boost/mpl/aux_/fold_impl.hpp: Added.
1637 * StitchMarker/folly/boost/mpl/aux_/full_lambda.hpp: Added.
1638 * StitchMarker/folly/boost/mpl/aux_/has_apply.hpp: Added.
1639 * StitchMarker/folly/boost/mpl/aux_/has_begin.hpp: Added.
1640 * StitchMarker/folly/boost/mpl/aux_/has_size.hpp: Added.
1641 * StitchMarker/folly/boost/mpl/aux_/has_tag.hpp: Added.
1642 * StitchMarker/folly/boost/mpl/aux_/has_type.hpp: Added.
1643 * StitchMarker/folly/boost/mpl/aux_/include_preprocessed.hpp: Added.
1644 * StitchMarker/folly/boost/mpl/aux_/inserter_algorithm.hpp: Added.
1645 * StitchMarker/folly/boost/mpl/aux_/integral_wrapper.hpp: Added.
1646 * StitchMarker/folly/boost/mpl/aux_/is_msvc_eti_arg.hpp: Added.
1647 * StitchMarker/folly/boost/mpl/aux_/iter_apply.hpp: Added.
1648 * StitchMarker/folly/boost/mpl/aux_/iter_fold_if_impl.hpp: Added.
1649 * StitchMarker/folly/boost/mpl/aux_/iter_fold_impl.hpp: Added.
1650 * StitchMarker/folly/boost/mpl/aux_/lambda_arity_param.hpp: Added.
1651 * StitchMarker/folly/boost/mpl/aux_/lambda_spec.hpp: Added.
1652 * StitchMarker/folly/boost/mpl/aux_/lambda_support.hpp: Added.
1653 * StitchMarker/folly/boost/mpl/aux_/largest_int.hpp: Added.
1654 * StitchMarker/folly/boost/mpl/aux_/msvc_eti_base.hpp: Added.
1655 * StitchMarker/folly/boost/mpl/aux_/msvc_never_true.hpp: Added.
1656 * StitchMarker/folly/boost/mpl/aux_/msvc_type.hpp: Added.
1657 * StitchMarker/folly/boost/mpl/aux_/na.hpp: Added.
1658 * StitchMarker/folly/boost/mpl/aux_/na_assert.hpp: Added.
1659 * StitchMarker/folly/boost/mpl/aux_/na_fwd.hpp: Added.
1660 * StitchMarker/folly/boost/mpl/aux_/na_spec.hpp: Added.
1661 * StitchMarker/folly/boost/mpl/aux_/nested_type_wknd.hpp: Added.
1662 * StitchMarker/folly/boost/mpl/aux_/nttp_decl.hpp: Added.
1663 * StitchMarker/folly/boost/mpl/aux_/numeric_cast_utils.hpp: Added.
1664 * StitchMarker/folly/boost/mpl/aux_/numeric_op.hpp: Added.
1665 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp: Added.
1666 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp: Added.
1667 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/and.hpp: Added.
1668 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/apply.hpp: Added.
1669 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp: Added.
1670 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp: Added.
1671 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/arg.hpp: Added.
1672 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/bind.hpp: Added.
1673 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp: Added.
1674 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/bitand.hpp: Added.
1675 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp: Added.
1676 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp: Added.
1677 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp: Added.
1678 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp: Added.
1679 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/greater.hpp: Added.
1680 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp: Added.
1681 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp: Added.
1682 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp: Added.
1683 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/less.hpp: Added.
1684 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp: Added.
1685 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/list.hpp: Added.
1686 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/minus.hpp: Added.
1687 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp: Added.
1688 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/or.hpp: Added.
1689 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp: Added.
1690 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/plus.hpp: Added.
1691 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/quote.hpp: Added.
1692 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp: Added.
1693 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp: Added.
1694 * StitchMarker/folly/boost/mpl/aux_/preprocessed/gcc/vector.hpp: Added.
1695 * StitchMarker/folly/boost/mpl/aux_/preprocessor/def_params_tail.hpp: Added.
1696 * StitchMarker/folly/boost/mpl/aux_/preprocessor/default_params.hpp: Added.
1697 * StitchMarker/folly/boost/mpl/aux_/preprocessor/enum.hpp: Added.
1698 * StitchMarker/folly/boost/mpl/aux_/preprocessor/params.hpp: Added.
1699 * StitchMarker/folly/boost/mpl/aux_/push_back_impl.hpp: Added.
1700 * StitchMarker/folly/boost/mpl/aux_/push_front_impl.hpp: Added.
1701 * StitchMarker/folly/boost/mpl/aux_/reverse_fold_impl.hpp: Added.
1702 * StitchMarker/folly/boost/mpl/aux_/size_impl.hpp: Added.
1703 * StitchMarker/folly/boost/mpl/aux_/static_cast.hpp: Added.
1704 * StitchMarker/folly/boost/mpl/aux_/template_arity.hpp: Added.
1705 * StitchMarker/folly/boost/mpl/aux_/template_arity_fwd.hpp: Added.
1706 * StitchMarker/folly/boost/mpl/aux_/traits_lambda_spec.hpp: Added.
1707 * StitchMarker/folly/boost/mpl/aux_/type_wrapper.hpp: Added.
1708 * StitchMarker/folly/boost/mpl/aux_/value_wknd.hpp: Added.
1709 * StitchMarker/folly/boost/mpl/aux_/yes_no.hpp: Added.
1710 * StitchMarker/folly/boost/mpl/back_fwd.hpp: Added.
1711 * StitchMarker/folly/boost/mpl/back_inserter.hpp: Added.
1712 * StitchMarker/folly/boost/mpl/begin_end.hpp: Added.
1713 * StitchMarker/folly/boost/mpl/begin_end_fwd.hpp: Added.
1714 * StitchMarker/folly/boost/mpl/bind.hpp: Added.
1715 * StitchMarker/folly/boost/mpl/bind_fwd.hpp: Added.
1716 * StitchMarker/folly/boost/mpl/bitand.hpp: Added.
1717 * StitchMarker/folly/boost/mpl/bitxor.hpp: Added.
1718 * StitchMarker/folly/boost/mpl/bool.hpp: Added.
1719 * StitchMarker/folly/boost/mpl/bool_fwd.hpp: Added.
1720 * StitchMarker/folly/boost/mpl/clear.hpp: Added.
1721 * StitchMarker/folly/boost/mpl/clear_fwd.hpp: Added.
1722 * StitchMarker/folly/boost/mpl/comparison.hpp: Added.
1723 * StitchMarker/folly/boost/mpl/contains.hpp: Added.
1724 * StitchMarker/folly/boost/mpl/contains_fwd.hpp: Added.
1725 * StitchMarker/folly/boost/mpl/deref.hpp: Added.
1726 * StitchMarker/folly/boost/mpl/distance.hpp: Added.
1727 * StitchMarker/folly/boost/mpl/distance_fwd.hpp: Added.
1728 * StitchMarker/folly/boost/mpl/empty_fwd.hpp: Added.
1729 * StitchMarker/folly/boost/mpl/equal_to.hpp: Added.
1730 * StitchMarker/folly/boost/mpl/eval_if.hpp: Added.
1731 * StitchMarker/folly/boost/mpl/find.hpp: Added.
1732 * StitchMarker/folly/boost/mpl/find_if.hpp: Added.
1733 * StitchMarker/folly/boost/mpl/fold.hpp: Added.
1734 * StitchMarker/folly/boost/mpl/front_fwd.hpp: Added.
1735 * StitchMarker/folly/boost/mpl/front_inserter.hpp: Added.
1736 * StitchMarker/folly/boost/mpl/greater.hpp: Added.
1737 * StitchMarker/folly/boost/mpl/greater_equal.hpp: Added.
1738 * StitchMarker/folly/boost/mpl/has_xxx.hpp: Added.
1739 * StitchMarker/folly/boost/mpl/identity.hpp: Added.
1740 * StitchMarker/folly/boost/mpl/if.hpp: Added.
1741 * StitchMarker/folly/boost/mpl/inserter.hpp: Added.
1742 * StitchMarker/folly/boost/mpl/int.hpp: Added.
1743 * StitchMarker/folly/boost/mpl/int_fwd.hpp: Added.
1744 * StitchMarker/folly/boost/mpl/integral_c.hpp: Added.
1745 * StitchMarker/folly/boost/mpl/integral_c_fwd.hpp: Added.
1746 * StitchMarker/folly/boost/mpl/integral_c_tag.hpp: Added.
1747 * StitchMarker/folly/boost/mpl/iter_fold.hpp: Added.
1748 * StitchMarker/folly/boost/mpl/iter_fold_if.hpp: Added.
1749 * StitchMarker/folly/boost/mpl/iterator_range.hpp: Added.
1750 * StitchMarker/folly/boost/mpl/iterator_tags.hpp: Added.
1751 * StitchMarker/folly/boost/mpl/lambda.hpp: Added.
1752 * StitchMarker/folly/boost/mpl/lambda_fwd.hpp: Added.
1753 * StitchMarker/folly/boost/mpl/less.hpp: Added.
1754 * StitchMarker/folly/boost/mpl/less_equal.hpp: Added.
1755 * StitchMarker/folly/boost/mpl/limits/arity.hpp: Added.
1756 * StitchMarker/folly/boost/mpl/limits/list.hpp: Added.
1757 * StitchMarker/folly/boost/mpl/limits/vector.hpp: Added.
1758 * StitchMarker/folly/boost/mpl/list.hpp: Added.
1759 * StitchMarker/folly/boost/mpl/list/aux_/O1_size.hpp: Added.
1760 * StitchMarker/folly/boost/mpl/list/aux_/begin_end.hpp: Added.
1761 * StitchMarker/folly/boost/mpl/list/aux_/clear.hpp: Added.
1762 * StitchMarker/folly/boost/mpl/list/aux_/empty.hpp: Added.
1763 * StitchMarker/folly/boost/mpl/list/aux_/front.hpp: Added.
1764 * StitchMarker/folly/boost/mpl/list/aux_/include_preprocessed.hpp: Added.
1765 * StitchMarker/folly/boost/mpl/list/aux_/item.hpp: Added.
1766 * StitchMarker/folly/boost/mpl/list/aux_/iterator.hpp: Added.
1767 * StitchMarker/folly/boost/mpl/list/aux_/pop_front.hpp: Added.
1768 * StitchMarker/folly/boost/mpl/list/aux_/preprocessed/plain/list10.hpp: Added.
1769 * StitchMarker/folly/boost/mpl/list/aux_/preprocessed/plain/list20.hpp: Added.
1770 * StitchMarker/folly/boost/mpl/list/aux_/push_back.hpp: Added.
1771 * StitchMarker/folly/boost/mpl/list/aux_/push_front.hpp: Added.
1772 * StitchMarker/folly/boost/mpl/list/aux_/size.hpp: Added.
1773 * StitchMarker/folly/boost/mpl/list/aux_/tag.hpp: Added.
1774 * StitchMarker/folly/boost/mpl/list/list0.hpp: Added.
1775 * StitchMarker/folly/boost/mpl/list/list10.hpp: Added.
1776 * StitchMarker/folly/boost/mpl/list/list20.hpp: Added.
1777 * StitchMarker/folly/boost/mpl/logical.hpp: Added.
1778 * StitchMarker/folly/boost/mpl/long.hpp: Added.
1779 * StitchMarker/folly/boost/mpl/long_fwd.hpp: Added.
1780 * StitchMarker/folly/boost/mpl/minus.hpp: Added.
1781 * StitchMarker/folly/boost/mpl/negate.hpp: Added.
1782 * StitchMarker/folly/boost/mpl/next.hpp: Added.
1783 * StitchMarker/folly/boost/mpl/next_prior.hpp: Added.
1784 * StitchMarker/folly/boost/mpl/not.hpp: Added.
1785 * StitchMarker/folly/boost/mpl/not_equal_to.hpp: Added.
1786 * StitchMarker/folly/boost/mpl/numeric_cast.hpp: Added.
1787 * StitchMarker/folly/boost/mpl/or.hpp: Added.
1788 * StitchMarker/folly/boost/mpl/pair.hpp: Added.
1789 * StitchMarker/folly/boost/mpl/placeholders.hpp: Added.
1790 * StitchMarker/folly/boost/mpl/plus.hpp: Added.
1791 * StitchMarker/folly/boost/mpl/pop_back_fwd.hpp: Added.
1792 * StitchMarker/folly/boost/mpl/pop_front_fwd.hpp: Added.
1793 * StitchMarker/folly/boost/mpl/prior.hpp: Added.
1794 * StitchMarker/folly/boost/mpl/protect.hpp: Added.
1795 * StitchMarker/folly/boost/mpl/push_back.hpp: Added.
1796 * StitchMarker/folly/boost/mpl/push_back_fwd.hpp: Added.
1797 * StitchMarker/folly/boost/mpl/push_front.hpp: Added.
1798 * StitchMarker/folly/boost/mpl/push_front_fwd.hpp: Added.
1799 * StitchMarker/folly/boost/mpl/quote.hpp: Added.
1800 * StitchMarker/folly/boost/mpl/remove.hpp: Added.
1801 * StitchMarker/folly/boost/mpl/remove_if.hpp: Added.
1802 * StitchMarker/folly/boost/mpl/reverse_fold.hpp: Added.
1803 * StitchMarker/folly/boost/mpl/same_as.hpp: Added.
1804 * StitchMarker/folly/boost/mpl/sequence_tag.hpp: Added.
1805 * StitchMarker/folly/boost/mpl/sequence_tag_fwd.hpp: Added.
1806 * StitchMarker/folly/boost/mpl/size.hpp: Added.
1807 * StitchMarker/folly/boost/mpl/size_fwd.hpp: Added.
1808 * StitchMarker/folly/boost/mpl/tag.hpp: Added.
1809 * StitchMarker/folly/boost/mpl/vector.hpp: Added.
1810 * StitchMarker/folly/boost/mpl/vector/aux_/O1_size.hpp: Added.
1811 * StitchMarker/folly/boost/mpl/vector/aux_/at.hpp: Added.
1812 * StitchMarker/folly/boost/mpl/vector/aux_/back.hpp: Added.
1813 * StitchMarker/folly/boost/mpl/vector/aux_/begin_end.hpp: Added.
1814 * StitchMarker/folly/boost/mpl/vector/aux_/clear.hpp: Added.
1815 * StitchMarker/folly/boost/mpl/vector/aux_/empty.hpp: Added.
1816 * StitchMarker/folly/boost/mpl/vector/aux_/front.hpp: Added.
1817 * StitchMarker/folly/boost/mpl/vector/aux_/include_preprocessed.hpp: Added.
1818 * StitchMarker/folly/boost/mpl/vector/aux_/item.hpp: Added.
1819 * StitchMarker/folly/boost/mpl/vector/aux_/iterator.hpp: Added.
1820 * StitchMarker/folly/boost/mpl/vector/aux_/pop_back.hpp: Added.
1821 * StitchMarker/folly/boost/mpl/vector/aux_/pop_front.hpp: Added.
1822 * StitchMarker/folly/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp: Added.
1823 * StitchMarker/folly/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp: Added.
1824 * StitchMarker/folly/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp: Added.
1825 * StitchMarker/folly/boost/mpl/vector/aux_/push_back.hpp: Added.
1826 * StitchMarker/folly/boost/mpl/vector/aux_/push_front.hpp: Added.
1827 * StitchMarker/folly/boost/mpl/vector/aux_/size.hpp: Added.
1828 * StitchMarker/folly/boost/mpl/vector/aux_/tag.hpp: Added.
1829 * StitchMarker/folly/boost/mpl/vector/aux_/vector0.hpp: Added.
1830 * StitchMarker/folly/boost/mpl/vector/vector0.hpp: Added.
1831 * StitchMarker/folly/boost/mpl/vector/vector10.hpp: Added.
1832 * StitchMarker/folly/boost/mpl/vector/vector20.hpp: Added.
1833 * StitchMarker/folly/boost/mpl/vector/vector30.hpp: Added.
1834 * StitchMarker/folly/boost/mpl/void.hpp: Added.
1835 * StitchMarker/folly/boost/mpl/void_fwd.hpp: Added.
1836 * StitchMarker/folly/boost/next_prior.hpp: Added.
1837 * StitchMarker/folly/boost/noncopyable.hpp: Added.
1838 * StitchMarker/folly/boost/operators.hpp: Added.
1839 * StitchMarker/folly/boost/pending/integer_log2.hpp: Added.
1840 * StitchMarker/folly/boost/predef.h: Added.
1841 * StitchMarker/folly/boost/predef/architecture.h: Added.
1842 * StitchMarker/folly/boost/predef/architecture/alpha.h: Added.
1843 * StitchMarker/folly/boost/predef/architecture/arm.h: Added.
1844 * StitchMarker/folly/boost/predef/architecture/blackfin.h: Added.
1845 * StitchMarker/folly/boost/predef/architecture/convex.h: Added.
1846 * StitchMarker/folly/boost/predef/architecture/ia64.h: Added.
1847 * StitchMarker/folly/boost/predef/architecture/m68k.h: Added.
1848 * StitchMarker/folly/boost/predef/architecture/mips.h: Added.
1849 * StitchMarker/folly/boost/predef/architecture/parisc.h: Added.
1850 * StitchMarker/folly/boost/predef/architecture/ppc.h: Added.
1851 * StitchMarker/folly/boost/predef/architecture/pyramid.h: Added.
1852 * StitchMarker/folly/boost/predef/architecture/rs6k.h: Added.
1853 * StitchMarker/folly/boost/predef/architecture/sparc.h: Added.
1854 * StitchMarker/folly/boost/predef/architecture/superh.h: Added.
1855 * StitchMarker/folly/boost/predef/architecture/sys370.h: Added.
1856 * StitchMarker/folly/boost/predef/architecture/sys390.h: Added.
1857 * StitchMarker/folly/boost/predef/architecture/x86.h: Added.
1858 * StitchMarker/folly/boost/predef/architecture/x86/32.h: Added.
1859 * StitchMarker/folly/boost/predef/architecture/x86/64.h: Added.
1860 * StitchMarker/folly/boost/predef/architecture/z.h: Added.
1861 * StitchMarker/folly/boost/predef/compiler.h: Added.
1862 * StitchMarker/folly/boost/predef/compiler/borland.h: Added.
1863 * StitchMarker/folly/boost/predef/compiler/clang.h: Added.
1864 * StitchMarker/folly/boost/predef/compiler/comeau.h: Added.
1865 * StitchMarker/folly/boost/predef/compiler/compaq.h: Added.
1866 * StitchMarker/folly/boost/predef/compiler/diab.h: Added.
1867 * StitchMarker/folly/boost/predef/compiler/digitalmars.h: Added.
1868 * StitchMarker/folly/boost/predef/compiler/dignus.h: Added.
1869 * StitchMarker/folly/boost/predef/compiler/edg.h: Added.
1870 * StitchMarker/folly/boost/predef/compiler/ekopath.h: Added.
1871 * StitchMarker/folly/boost/predef/compiler/gcc.h: Added.
1872 * StitchMarker/folly/boost/predef/compiler/gcc_xml.h: Added.
1873 * StitchMarker/folly/boost/predef/compiler/greenhills.h: Added.
1874 * StitchMarker/folly/boost/predef/compiler/hp_acc.h: Added.
1875 * StitchMarker/folly/boost/predef/compiler/iar.h: Added.
1876 * StitchMarker/folly/boost/predef/compiler/ibm.h: Added.
1877 * StitchMarker/folly/boost/predef/compiler/intel.h: Added.
1878 * StitchMarker/folly/boost/predef/compiler/kai.h: Added.
1879 * StitchMarker/folly/boost/predef/compiler/llvm.h: Added.
1880 * StitchMarker/folly/boost/predef/compiler/metaware.h: Added.
1881 * StitchMarker/folly/boost/predef/compiler/metrowerks.h: Added.
1882 * StitchMarker/folly/boost/predef/compiler/microtec.h: Added.
1883 * StitchMarker/folly/boost/predef/compiler/mpw.h: Added.
1884 * StitchMarker/folly/boost/predef/compiler/palm.h: Added.
1885 * StitchMarker/folly/boost/predef/compiler/pgi.h: Added.
1886 * StitchMarker/folly/boost/predef/compiler/sgi_mipspro.h: Added.
1887 * StitchMarker/folly/boost/predef/compiler/sunpro.h: Added.
1888 * StitchMarker/folly/boost/predef/compiler/tendra.h: Added.
1889 * StitchMarker/folly/boost/predef/compiler/visualc.h: Added.
1890 * StitchMarker/folly/boost/predef/compiler/watcom.h: Added.
1891 * StitchMarker/folly/boost/predef/detail/_cassert.h: Added.
1892 * StitchMarker/folly/boost/predef/detail/_exception.h: Added.
1893 * StitchMarker/folly/boost/predef/detail/comp_detected.h: Added.
1894 * StitchMarker/folly/boost/predef/detail/endian_compat.h: Added.
1895 * StitchMarker/folly/boost/predef/detail/os_detected.h: Added.
1896 * StitchMarker/folly/boost/predef/detail/test.h: Added.
1897 * StitchMarker/folly/boost/predef/hardware.h: Added.
1898 * StitchMarker/folly/boost/predef/hardware/simd.h: Added.
1899 * StitchMarker/folly/boost/predef/hardware/simd/arm.h: Added.
1900 * StitchMarker/folly/boost/predef/hardware/simd/arm/versions.h: Added.
1901 * StitchMarker/folly/boost/predef/hardware/simd/ppc.h: Added.
1902 * StitchMarker/folly/boost/predef/hardware/simd/ppc/versions.h: Added.
1903 * StitchMarker/folly/boost/predef/hardware/simd/x86.h: Added.
1904 * StitchMarker/folly/boost/predef/hardware/simd/x86/versions.h: Added.
1905 * StitchMarker/folly/boost/predef/hardware/simd/x86_amd.h: Added.
1906 * StitchMarker/folly/boost/predef/hardware/simd/x86_amd/versions.h: Added.
1907 * StitchMarker/folly/boost/predef/language.h: Added.
1908 * StitchMarker/folly/boost/predef/language/objc.h: Added.
1909 * StitchMarker/folly/boost/predef/language/stdc.h: Added.
1910 * StitchMarker/folly/boost/predef/language/stdcpp.h: Added.
1911 * StitchMarker/folly/boost/predef/library.h: Added.
1912 * StitchMarker/folly/boost/predef/library/c.h: Added.
1913 * StitchMarker/folly/boost/predef/library/c/_prefix.h: Added.
1914 * StitchMarker/folly/boost/predef/library/c/gnu.h: Added.
1915 * StitchMarker/folly/boost/predef/library/c/uc.h: Added.
1916 * StitchMarker/folly/boost/predef/library/c/vms.h: Added.
1917 * StitchMarker/folly/boost/predef/library/c/zos.h: Added.
1918 * StitchMarker/folly/boost/predef/library/std.h: Added.
1919 * StitchMarker/folly/boost/predef/library/std/_prefix.h: Added.
1920 * StitchMarker/folly/boost/predef/library/std/cxx.h: Added.
1921 * StitchMarker/folly/boost/predef/library/std/dinkumware.h: Added.
1922 * StitchMarker/folly/boost/predef/library/std/libcomo.h: Added.
1923 * StitchMarker/folly/boost/predef/library/std/modena.h: Added.
1924 * StitchMarker/folly/boost/predef/library/std/msl.h: Added.
1925 * StitchMarker/folly/boost/predef/library/std/roguewave.h: Added.
1926 * StitchMarker/folly/boost/predef/library/std/sgi.h: Added.
1927 * StitchMarker/folly/boost/predef/library/std/stdcpp3.h: Added.
1928 * StitchMarker/folly/boost/predef/library/std/stlport.h: Added.
1929 * StitchMarker/folly/boost/predef/library/std/vacpp.h: Added.
1930 * StitchMarker/folly/boost/predef/make.h: Added.
1931 * StitchMarker/folly/boost/predef/os.h: Added.
1932 * StitchMarker/folly/boost/predef/os/aix.h: Added.
1933 * StitchMarker/folly/boost/predef/os/amigaos.h: Added.
1934 * StitchMarker/folly/boost/predef/os/android.h: Added.
1935 * StitchMarker/folly/boost/predef/os/beos.h: Added.
1936 * StitchMarker/folly/boost/predef/os/bsd.h: Added.
1937 * StitchMarker/folly/boost/predef/os/bsd/bsdi.h: Added.
1938 * StitchMarker/folly/boost/predef/os/bsd/dragonfly.h: Added.
1939 * StitchMarker/folly/boost/predef/os/bsd/free.h: Added.
1940 * StitchMarker/folly/boost/predef/os/bsd/net.h: Added.
1941 * StitchMarker/folly/boost/predef/os/bsd/open.h: Added.
1942 * StitchMarker/folly/boost/predef/os/cygwin.h: Added.
1943 * StitchMarker/folly/boost/predef/os/haiku.h: Added.
1944 * StitchMarker/folly/boost/predef/os/hpux.h: Added.
1945 * StitchMarker/folly/boost/predef/os/ios.h: Added.
1946 * StitchMarker/folly/boost/predef/os/irix.h: Added.
1947 * StitchMarker/folly/boost/predef/os/linux.h: Added.
1948 * StitchMarker/folly/boost/predef/os/macos.h: Added.
1949 * StitchMarker/folly/boost/predef/os/os400.h: Added.
1950 * StitchMarker/folly/boost/predef/os/qnxnto.h: Added.
1951 * StitchMarker/folly/boost/predef/os/solaris.h: Added.
1952 * StitchMarker/folly/boost/predef/os/unix.h: Added.
1953 * StitchMarker/folly/boost/predef/os/vms.h: Added.
1954 * StitchMarker/folly/boost/predef/os/windows.h: Added.
1955 * StitchMarker/folly/boost/predef/other.h: Added.
1956 * StitchMarker/folly/boost/predef/other/endian.h: Added.
1957 * StitchMarker/folly/boost/predef/platform.h: Added.
1958 * StitchMarker/folly/boost/predef/platform/mingw.h: Added.
1959 * StitchMarker/folly/boost/predef/platform/windows_desktop.h: Added.
1960 * StitchMarker/folly/boost/predef/platform/windows_phone.h: Added.
1961 * StitchMarker/folly/boost/predef/platform/windows_runtime.h: Added.
1962 * StitchMarker/folly/boost/predef/platform/windows_store.h: Added.
1963 * StitchMarker/folly/boost/predef/version.h: Added.
1964 * StitchMarker/folly/boost/predef/version_number.h: Added.
1965 * StitchMarker/folly/boost/preprocessor/arithmetic/add.hpp: Added.
1966 * StitchMarker/folly/boost/preprocessor/arithmetic/dec.hpp: Added.
1967 * StitchMarker/folly/boost/preprocessor/arithmetic/detail/div_base.hpp: Added.
1968 * StitchMarker/folly/boost/preprocessor/arithmetic/inc.hpp: Added.
1969 * StitchMarker/folly/boost/preprocessor/arithmetic/mod.hpp: Added.
1970 * StitchMarker/folly/boost/preprocessor/arithmetic/sub.hpp: Added.
1971 * StitchMarker/folly/boost/preprocessor/array/data.hpp: Added.
1972 * StitchMarker/folly/boost/preprocessor/array/elem.hpp: Added.
1973 * StitchMarker/folly/boost/preprocessor/array/size.hpp: Added.
1974 * StitchMarker/folly/boost/preprocessor/cat.hpp: Added.
1975 * StitchMarker/folly/boost/preprocessor/comma_if.hpp: Added.
1976 * StitchMarker/folly/boost/preprocessor/comparison/less_equal.hpp: Added.
1977 * StitchMarker/folly/boost/preprocessor/config/config.hpp: Added.
1978 * StitchMarker/folly/boost/preprocessor/control/deduce_d.hpp: Added.
1979 * StitchMarker/folly/boost/preprocessor/control/detail/while.hpp: Added.
1980 * StitchMarker/folly/boost/preprocessor/control/expr_iif.hpp: Added.
1981 * StitchMarker/folly/boost/preprocessor/control/if.hpp: Added.
1982 * StitchMarker/folly/boost/preprocessor/control/iif.hpp: Added.
1983 * StitchMarker/folly/boost/preprocessor/control/while.hpp: Added.
1984 * StitchMarker/folly/boost/preprocessor/debug/error.hpp: Added.
1985 * StitchMarker/folly/boost/preprocessor/detail/auto_rec.hpp: Added.
1986 * StitchMarker/folly/boost/preprocessor/detail/check.hpp: Added.
1987 * StitchMarker/folly/boost/preprocessor/detail/is_binary.hpp: Added.
1988 * StitchMarker/folly/boost/preprocessor/empty.hpp: Added.
1989 * StitchMarker/folly/boost/preprocessor/facilities/empty.hpp: Added.
1990 * StitchMarker/folly/boost/preprocessor/facilities/expand.hpp: Added.
1991 * StitchMarker/folly/boost/preprocessor/facilities/identity.hpp: Added.
1992 * StitchMarker/folly/boost/preprocessor/facilities/overload.hpp: Added.
1993 * StitchMarker/folly/boost/preprocessor/identity.hpp: Added.
1994 * StitchMarker/folly/boost/preprocessor/inc.hpp: Added.
1995 * StitchMarker/folly/boost/preprocessor/list/adt.hpp: Added.
1996 * StitchMarker/folly/boost/preprocessor/list/detail/fold_left.hpp: Added.
1997 * StitchMarker/folly/boost/preprocessor/list/detail/fold_right.hpp: Added.
1998 * StitchMarker/folly/boost/preprocessor/list/fold_left.hpp: Added.
1999 * StitchMarker/folly/boost/preprocessor/list/fold_right.hpp: Added.
2000 * StitchMarker/folly/boost/preprocessor/list/reverse.hpp: Added.
2001 * StitchMarker/folly/boost/preprocessor/logical/and.hpp: Added.
2002 * StitchMarker/folly/boost/preprocessor/logical/bitand.hpp: Added.
2003 * StitchMarker/folly/boost/preprocessor/logical/bool.hpp: Added.
2004 * StitchMarker/folly/boost/preprocessor/logical/compl.hpp: Added.
2005 * StitchMarker/folly/boost/preprocessor/logical/not.hpp: Added.
2006 * StitchMarker/folly/boost/preprocessor/punctuation/comma.hpp: Added.
2007 * StitchMarker/folly/boost/preprocessor/punctuation/comma_if.hpp: Added.
2008 * StitchMarker/folly/boost/preprocessor/punctuation/paren.hpp: Added.
2009 * StitchMarker/folly/boost/preprocessor/repeat.hpp: Added.
2010 * StitchMarker/folly/boost/preprocessor/repetition/detail/for.hpp: Added.
2011 * StitchMarker/folly/boost/preprocessor/repetition/enum_binary_params.hpp: Added.
2012 * StitchMarker/folly/boost/preprocessor/repetition/enum_params.hpp: Added.
2013 * StitchMarker/folly/boost/preprocessor/repetition/enum_trailing_params.hpp: Added.
2014 * StitchMarker/folly/boost/preprocessor/repetition/for.hpp: Added.
2015 * StitchMarker/folly/boost/preprocessor/repetition/repeat.hpp: Added.
2016 * StitchMarker/folly/boost/preprocessor/repetition/repeat_from_to.hpp: Added.
2017 * StitchMarker/folly/boost/preprocessor/seq/cat.hpp: Added.
2018 * StitchMarker/folly/boost/preprocessor/seq/detail/is_empty.hpp: Added.
2019 * StitchMarker/folly/boost/preprocessor/seq/elem.hpp: Added.
2020 * StitchMarker/folly/boost/preprocessor/seq/enum.hpp: Added.
2021 * StitchMarker/folly/boost/preprocessor/seq/fold_left.hpp: Added.
2022 * StitchMarker/folly/boost/preprocessor/seq/for_each_i.hpp: Added.
2023 * StitchMarker/folly/boost/preprocessor/seq/seq.hpp: Added.
2024 * StitchMarker/folly/boost/preprocessor/seq/size.hpp: Added.
2025 * StitchMarker/folly/boost/preprocessor/seq/transform.hpp: Added.
2026 * StitchMarker/folly/boost/preprocessor/stringize.hpp: Added.
2027 * StitchMarker/folly/boost/preprocessor/tuple/detail/is_single_return.hpp: Added.
2028 * StitchMarker/folly/boost/preprocessor/tuple/eat.hpp: Added.
2029 * StitchMarker/folly/boost/preprocessor/tuple/elem.hpp: Added.
2030 * StitchMarker/folly/boost/preprocessor/tuple/rem.hpp: Added.
2031 * StitchMarker/folly/boost/preprocessor/variadic/elem.hpp: Added.
2032 * StitchMarker/folly/boost/preprocessor/variadic/size.hpp: Added.
2033 * StitchMarker/folly/boost/random.hpp: Added.
2034 * StitchMarker/folly/boost/random/additive_combine.hpp: Added.
2035 * StitchMarker/folly/boost/random/bernoulli_distribution.hpp: Added.
2036 * StitchMarker/folly/boost/random/beta_distribution.hpp: Added.
2037 * StitchMarker/folly/boost/random/binomial_distribution.hpp: Added.
2038 * StitchMarker/folly/boost/random/cauchy_distribution.hpp: Added.
2039 * StitchMarker/folly/boost/random/chi_squared_distribution.hpp: Added.
2040 * StitchMarker/folly/boost/random/detail/config.hpp: Added.
2041 * StitchMarker/folly/boost/random/detail/const_mod.hpp: Added.
2042 * StitchMarker/folly/boost/random/detail/disable_warnings.hpp: Added.
2043 * StitchMarker/folly/boost/random/detail/enable_warnings.hpp: Added.
2044 * StitchMarker/folly/boost/random/detail/generator_bits.hpp: Added.
2045 * StitchMarker/folly/boost/random/detail/generator_seed_seq.hpp: Added.
2046 * StitchMarker/folly/boost/random/detail/int_float_pair.hpp: Added.
2047 * StitchMarker/folly/boost/random/detail/integer_log2.hpp: Added.
2048 * StitchMarker/folly/boost/random/detail/large_arithmetic.hpp: Added.
2049 * StitchMarker/folly/boost/random/detail/operators.hpp: Added.
2050 * StitchMarker/folly/boost/random/detail/polynomial.hpp: Added.
2051 * StitchMarker/folly/boost/random/detail/ptr_helper.hpp: Added.
2052 * StitchMarker/folly/boost/random/detail/seed.hpp: Added.
2053 * StitchMarker/folly/boost/random/detail/seed_impl.hpp: Added.
2054 * StitchMarker/folly/boost/random/detail/signed_unsigned_tools.hpp: Added.
2055 * StitchMarker/folly/boost/random/detail/uniform_int_float.hpp: Added.
2056 * StitchMarker/folly/boost/random/detail/vector_io.hpp: Added.
2057 * StitchMarker/folly/boost/random/discard_block.hpp: Added.
2058 * StitchMarker/folly/boost/random/discrete_distribution.hpp: Added.
2059 * StitchMarker/folly/boost/random/exponential_distribution.hpp: Added.
2060 * StitchMarker/folly/boost/random/extreme_value_distribution.hpp: Added.
2061 * StitchMarker/folly/boost/random/fisher_f_distribution.hpp: Added.
2062 * StitchMarker/folly/boost/random/gamma_distribution.hpp: Added.
2063 * StitchMarker/folly/boost/random/generate_canonical.hpp: Added.
2064 * StitchMarker/folly/boost/random/geometric_distribution.hpp: Added.
2065 * StitchMarker/folly/boost/random/hyperexponential_distribution.hpp: Added.
2066 * StitchMarker/folly/boost/random/independent_bits.hpp: Added.
2067 * StitchMarker/folly/boost/random/inversive_congruential.hpp: Added.
2068 * StitchMarker/folly/boost/random/lagged_fibonacci.hpp: Added.
2069 * StitchMarker/folly/boost/random/laplace_distribution.hpp: Added.
2070 * StitchMarker/folly/boost/random/linear_congruential.hpp: Added.
2071 * StitchMarker/folly/boost/random/linear_feedback_shift.hpp: Added.
2072 * StitchMarker/folly/boost/random/lognormal_distribution.hpp: Added.
2073 * StitchMarker/folly/boost/random/mersenne_twister.hpp: Added.
2074 * StitchMarker/folly/boost/random/negative_binomial_distribution.hpp: Added.
2075 * StitchMarker/folly/boost/random/non_central_chi_squared_distribution.hpp: Added.
2076 * StitchMarker/folly/boost/random/normal_distribution.hpp: Added.
2077 * StitchMarker/folly/boost/random/piecewise_constant_distribution.hpp: Added.
2078 * StitchMarker/folly/boost/random/piecewise_linear_distribution.hpp: Added.
2079 * StitchMarker/folly/boost/random/poisson_distribution.hpp: Added.
2080 * StitchMarker/folly/boost/random/random_number_generator.hpp: Added.
2081 * StitchMarker/folly/boost/random/ranlux.hpp: Added.
2082 * StitchMarker/folly/boost/random/seed_seq.hpp: Added.
2083 * StitchMarker/folly/boost/random/shuffle_order.hpp: Added.
2084 * StitchMarker/folly/boost/random/shuffle_output.hpp: Added.
2085 * StitchMarker/folly/boost/random/student_t_distribution.hpp: Added.
2086 * StitchMarker/folly/boost/random/subtract_with_carry.hpp: Added.
2087 * StitchMarker/folly/boost/random/taus88.hpp: Added.
2088 * StitchMarker/folly/boost/random/traits.hpp: Added.
2089 * StitchMarker/folly/boost/random/triangle_distribution.hpp: Added.
2090 * StitchMarker/folly/boost/random/uniform_01.hpp: Added.
2091 * StitchMarker/folly/boost/random/uniform_int.hpp: Added.
2092 * StitchMarker/folly/boost/random/uniform_int_distribution.hpp: Added.
2093 * StitchMarker/folly/boost/random/uniform_on_sphere.hpp: Added.
2094 * StitchMarker/folly/boost/random/uniform_real.hpp: Added.
2095 * StitchMarker/folly/boost/random/uniform_real_distribution.hpp: Added.
2096 * StitchMarker/folly/boost/random/uniform_smallint.hpp: Added.
2097 * StitchMarker/folly/boost/random/variate_generator.hpp: Added.
2098 * StitchMarker/folly/boost/random/weibull_distribution.hpp: Added.
2099 * StitchMarker/folly/boost/random/xor_combine.hpp: Added.
2100 * StitchMarker/folly/boost/range/begin.hpp: Added.
2101 * StitchMarker/folly/boost/range/concepts.hpp: Added.
2102 * StitchMarker/folly/boost/range/config.hpp: Added.
2103 * StitchMarker/folly/boost/range/const_iterator.hpp: Added.
2104 * StitchMarker/folly/boost/range/detail/common.hpp: Added.
2105 * StitchMarker/folly/boost/range/detail/extract_optional_type.hpp: Added.
2106 * StitchMarker/folly/boost/range/detail/has_member_size.hpp: Added.
2107 * StitchMarker/folly/boost/range/detail/implementation_help.hpp: Added.
2108 * StitchMarker/folly/boost/range/detail/misc_concept.hpp: Added.
2109 * StitchMarker/folly/boost/range/detail/msvc_has_iterator_workaround.hpp: Added.
2110 * StitchMarker/folly/boost/range/detail/sfinae.hpp: Added.
2111 * StitchMarker/folly/boost/range/difference_type.hpp: Added.
2112 * StitchMarker/folly/boost/range/end.hpp: Added.
2113 * StitchMarker/folly/boost/range/has_range_iterator.hpp: Added.
2114 * StitchMarker/folly/boost/range/iterator.hpp: Added.
2115 * StitchMarker/folly/boost/range/mutable_iterator.hpp: Added.
2116 * StitchMarker/folly/boost/range/range_fwd.hpp: Added.
2117 * StitchMarker/folly/boost/range/size.hpp: Added.
2118 * StitchMarker/folly/boost/range/size_type.hpp: Added.
2119 * StitchMarker/folly/boost/range/value_type.hpp: Added.
2120 * StitchMarker/folly/boost/regex/pending/unicode_iterator.hpp: Added.
2121 * StitchMarker/folly/boost/static_assert.hpp: Added.
2122 * StitchMarker/folly/boost/throw_exception.hpp: Added.
2123 * StitchMarker/folly/boost/type_traits.hpp: Added.
2124 * StitchMarker/folly/boost/type_traits/add_const.hpp: Added.
2125 * StitchMarker/folly/boost/type_traits/add_cv.hpp: Added.
2126 * StitchMarker/folly/boost/type_traits/add_lvalue_reference.hpp: Added.
2127 * StitchMarker/folly/boost/type_traits/add_pointer.hpp: Added.
2128 * StitchMarker/folly/boost/type_traits/add_reference.hpp: Added.
2129 * StitchMarker/folly/boost/type_traits/add_rvalue_reference.hpp: Added.
2130 * StitchMarker/folly/boost/type_traits/add_volatile.hpp: Added.
2131 * StitchMarker/folly/boost/type_traits/aligned_storage.hpp: Added.
2132 * StitchMarker/folly/boost/type_traits/alignment_of.hpp: Added.
2133 * StitchMarker/folly/boost/type_traits/common_type.hpp: Added.
2134 * StitchMarker/folly/boost/type_traits/conditional.hpp: Added.
2135 * StitchMarker/folly/boost/type_traits/conversion_traits.hpp: Added.
2136 * StitchMarker/folly/boost/type_traits/copy_cv.hpp: Added.
2137 * StitchMarker/folly/boost/type_traits/decay.hpp: Added.
2138 * StitchMarker/folly/boost/type_traits/declval.hpp: Added.
2139 * StitchMarker/folly/boost/type_traits/detail/config.hpp: Added.
2140 * StitchMarker/folly/boost/type_traits/detail/has_binary_operator.hpp: Added.
2141 * StitchMarker/folly/boost/type_traits/detail/has_postfix_operator.hpp: Added.
2142 * StitchMarker/folly/boost/type_traits/detail/has_prefix_operator.hpp: Added.
2143 * StitchMarker/folly/boost/type_traits/detail/is_function_ptr_helper.hpp: Added.
2144 * StitchMarker/folly/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp: Added.
2145 * StitchMarker/folly/boost/type_traits/detail/mp_defer.hpp: Added.
2146 * StitchMarker/folly/boost/type_traits/detail/yes_no_type.hpp: Added.
2147 * StitchMarker/folly/boost/type_traits/extent.hpp: Added.
2148 * StitchMarker/folly/boost/type_traits/floating_point_promotion.hpp: Added.
2149 * StitchMarker/folly/boost/type_traits/function_traits.hpp: Added.
2150 * StitchMarker/folly/boost/type_traits/has_bit_and.hpp: Added.
2151 * StitchMarker/folly/boost/type_traits/has_bit_and_assign.hpp: Added.
2152 * StitchMarker/folly/boost/type_traits/has_bit_or.hpp: Added.
2153 * StitchMarker/folly/boost/type_traits/has_bit_or_assign.hpp: Added.
2154 * StitchMarker/folly/boost/type_traits/has_bit_xor.hpp: Added.
2155 * StitchMarker/folly/boost/type_traits/has_bit_xor_assign.hpp: Added.
2156 * StitchMarker/folly/boost/type_traits/has_complement.hpp: Added.
2157 * StitchMarker/folly/boost/type_traits/has_dereference.hpp: Added.
2158 * StitchMarker/folly/boost/type_traits/has_divides.hpp: Added.
2159 * StitchMarker/folly/boost/type_traits/has_divides_assign.hpp: Added.
2160 * StitchMarker/folly/boost/type_traits/has_equal_to.hpp: Added.
2161 * StitchMarker/folly/boost/type_traits/has_greater.hpp: Added.
2162 * StitchMarker/folly/boost/type_traits/has_greater_equal.hpp: Added.
2163 * StitchMarker/folly/boost/type_traits/has_left_shift.hpp: Added.
2164 * StitchMarker/folly/boost/type_traits/has_left_shift_assign.hpp: Added.
2165 * StitchMarker/folly/boost/type_traits/has_less.hpp: Added.
2166 * StitchMarker/folly/boost/type_traits/has_less_equal.hpp: Added.
2167 * StitchMarker/folly/boost/type_traits/has_logical_and.hpp: Added.
2168 * StitchMarker/folly/boost/type_traits/has_logical_not.hpp: Added.
2169 * StitchMarker/folly/boost/type_traits/has_logical_or.hpp: Added.
2170 * StitchMarker/folly/boost/type_traits/has_minus.hpp: Added.
2171 * StitchMarker/folly/boost/type_traits/has_minus_assign.hpp: Added.
2172 * StitchMarker/folly/boost/type_traits/has_modulus.hpp: Added.
2173 * StitchMarker/folly/boost/type_traits/has_modulus_assign.hpp: Added.
2174 * StitchMarker/folly/boost/type_traits/has_multiplies.hpp: Added.
2175 * StitchMarker/folly/boost/type_traits/has_multiplies_assign.hpp: Added.
2176 * StitchMarker/folly/boost/type_traits/has_negate.hpp: Added.
2177 * StitchMarker/folly/boost/type_traits/has_new_operator.hpp: Added.
2178 * StitchMarker/folly/boost/type_traits/has_not_equal_to.hpp: Added.
2179 * StitchMarker/folly/boost/type_traits/has_nothrow_assign.hpp: Added.
2180 * StitchMarker/folly/boost/type_traits/has_nothrow_constructor.hpp: Added.
2181 * StitchMarker/folly/boost/type_traits/has_nothrow_copy.hpp: Added.
2182 * StitchMarker/folly/boost/type_traits/has_nothrow_destructor.hpp: Added.
2183 * StitchMarker/folly/boost/type_traits/has_plus.hpp: Added.
2184 * StitchMarker/folly/boost/type_traits/has_plus_assign.hpp: Added.
2185 * StitchMarker/folly/boost/type_traits/has_post_decrement.hpp: Added.
2186 * StitchMarker/folly/boost/type_traits/has_post_increment.hpp: Added.
2187 * StitchMarker/folly/boost/type_traits/has_pre_decrement.hpp: Added.
2188 * StitchMarker/folly/boost/type_traits/has_pre_increment.hpp: Added.
2189 * StitchMarker/folly/boost/type_traits/has_right_shift.hpp: Added.
2190 * StitchMarker/folly/boost/type_traits/has_right_shift_assign.hpp: Added.
2191 * StitchMarker/folly/boost/type_traits/has_trivial_assign.hpp: Added.
2192 * StitchMarker/folly/boost/type_traits/has_trivial_constructor.hpp: Added.
2193 * StitchMarker/folly/boost/type_traits/has_trivial_copy.hpp: Added.
2194 * StitchMarker/folly/boost/type_traits/has_trivial_destructor.hpp: Added.
2195 * StitchMarker/folly/boost/type_traits/has_trivial_move_assign.hpp: Added.
2196 * StitchMarker/folly/boost/type_traits/has_trivial_move_constructor.hpp: Added.
2197 * StitchMarker/folly/boost/type_traits/has_unary_minus.hpp: Added.
2198 * StitchMarker/folly/boost/type_traits/has_unary_plus.hpp: Added.
2199 * StitchMarker/folly/boost/type_traits/has_virtual_destructor.hpp: Added.
2200 * StitchMarker/folly/boost/type_traits/integral_constant.hpp: Added.
2201 * StitchMarker/folly/boost/type_traits/integral_promotion.hpp: Added.
2202 * StitchMarker/folly/boost/type_traits/intrinsics.hpp: Added.
2203 * StitchMarker/folly/boost/type_traits/is_abstract.hpp: Added.
2204 * StitchMarker/folly/boost/type_traits/is_arithmetic.hpp: Added.
2205 * StitchMarker/folly/boost/type_traits/is_array.hpp: Added.
2206 * StitchMarker/folly/boost/type_traits/is_assignable.hpp: Added.
2207 * StitchMarker/folly/boost/type_traits/is_base_and_derived.hpp: Added.
2208 * StitchMarker/folly/boost/type_traits/is_base_of.hpp: Added.
2209 * StitchMarker/folly/boost/type_traits/is_class.hpp: Added.
2210 * StitchMarker/folly/boost/type_traits/is_complex.hpp: Added.
2211 * StitchMarker/folly/boost/type_traits/is_compound.hpp: Added.
2212 * StitchMarker/folly/boost/type_traits/is_const.hpp: Added.
2213 * StitchMarker/folly/boost/type_traits/is_constructible.hpp: Added.
2214 * StitchMarker/folly/boost/type_traits/is_convertible.hpp: Added.
2215 * StitchMarker/folly/boost/type_traits/is_copy_assignable.hpp: Added.
2216 * StitchMarker/folly/boost/type_traits/is_copy_constructible.hpp: Added.
2217 * StitchMarker/folly/boost/type_traits/is_default_constructible.hpp: Added.
2218 * StitchMarker/folly/boost/type_traits/is_destructible.hpp: Added.
2219 * StitchMarker/folly/boost/type_traits/is_empty.hpp: Added.
2220 * StitchMarker/folly/boost/type_traits/is_enum.hpp: Added.
2221 * StitchMarker/folly/boost/type_traits/is_final.hpp: Added.
2222 * StitchMarker/folly/boost/type_traits/is_float.hpp: Added.
2223 * StitchMarker/folly/boost/type_traits/is_floating_point.hpp: Added.
2224 * StitchMarker/folly/boost/type_traits/is_function.hpp: Added.
2225 * StitchMarker/folly/boost/type_traits/is_fundamental.hpp: Added.
2226 * StitchMarker/folly/boost/type_traits/is_integral.hpp: Added.
2227 * StitchMarker/folly/boost/type_traits/is_lvalue_reference.hpp: Added.
2228 * StitchMarker/folly/boost/type_traits/is_member_function_pointer.hpp: Added.
2229 * StitchMarker/folly/boost/type_traits/is_member_object_pointer.hpp: Added.
2230 * StitchMarker/folly/boost/type_traits/is_member_pointer.hpp: Added.
2231 * StitchMarker/folly/boost/type_traits/is_nothrow_move_assignable.hpp: Added.
2232 * StitchMarker/folly/boost/type_traits/is_nothrow_move_constructible.hpp: Added.
2233 * StitchMarker/folly/boost/type_traits/is_object.hpp: Added.
2234 * StitchMarker/folly/boost/type_traits/is_pod.hpp: Added.
2235 * StitchMarker/folly/boost/type_traits/is_pointer.hpp: Added.
2236 * StitchMarker/folly/boost/type_traits/is_polymorphic.hpp: Added.
2237 * StitchMarker/folly/boost/type_traits/is_reference.hpp: Added.
2238 * StitchMarker/folly/boost/type_traits/is_rvalue_reference.hpp: Added.
2239 * StitchMarker/folly/boost/type_traits/is_same.hpp: Added.
2240 * StitchMarker/folly/boost/type_traits/is_scalar.hpp: Added.
2241 * StitchMarker/folly/boost/type_traits/is_signed.hpp: Added.
2242 * StitchMarker/folly/boost/type_traits/is_stateless.hpp: Added.
2243 * StitchMarker/folly/boost/type_traits/is_union.hpp: Added.
2244 * StitchMarker/folly/boost/type_traits/is_unsigned.hpp: Added.
2245 * StitchMarker/folly/boost/type_traits/is_virtual_base_of.hpp: Added.
2246 * StitchMarker/folly/boost/type_traits/is_void.hpp: Added.
2247 * StitchMarker/folly/boost/type_traits/is_volatile.hpp: Added.
2248 * StitchMarker/folly/boost/type_traits/make_signed.hpp: Added.
2249 * StitchMarker/folly/boost/type_traits/make_unsigned.hpp: Added.
2250 * StitchMarker/folly/boost/type_traits/make_void.hpp: Added.
2251 * StitchMarker/folly/boost/type_traits/promote.hpp: Added.
2252 * StitchMarker/folly/boost/type_traits/rank.hpp: Added.
2253 * StitchMarker/folly/boost/type_traits/remove_all_extents.hpp: Added.
2254 * StitchMarker/folly/boost/type_traits/remove_bounds.hpp: Added.
2255 * StitchMarker/folly/boost/type_traits/remove_const.hpp: Added.
2256 * StitchMarker/folly/boost/type_traits/remove_cv.hpp: Added.
2257 * StitchMarker/folly/boost/type_traits/remove_extent.hpp: Added.
2258 * StitchMarker/folly/boost/type_traits/remove_pointer.hpp: Added.
2259 * StitchMarker/folly/boost/type_traits/remove_reference.hpp: Added.
2260 * StitchMarker/folly/boost/type_traits/remove_volatile.hpp: Added.
2261 * StitchMarker/folly/boost/type_traits/type_identity.hpp: Added.
2262 * StitchMarker/folly/boost/type_traits/type_with_alignment.hpp: Added.
2263 * StitchMarker/folly/boost/utility.hpp: Added.
2264 * StitchMarker/folly/boost/utility/addressof.hpp: Added.
2265 * StitchMarker/folly/boost/utility/base_from_member.hpp: Added.
2266 * StitchMarker/folly/boost/utility/binary.hpp: Added.
2267 * StitchMarker/folly/boost/utility/enable_if.hpp: Added.
2268 * StitchMarker/folly/boost/utility/identity_type.hpp: Added.
2269 * StitchMarker/folly/boost/version.hpp: Added.
2270 * StitchMarker/folly/double-conversion/LICENSE: Added.
2271 * StitchMarker/folly/double-conversion/README.md: Added.
2272 * StitchMarker/folly/double-conversion/double-conversion/bignum-dtoa.cc: Added.
2273 * StitchMarker/folly/double-conversion/double-conversion/bignum-dtoa.h: Added.
2274 * StitchMarker/folly/double-conversion/double-conversion/bignum.cc: Added.
2275 * StitchMarker/folly/double-conversion/double-conversion/bignum.h: Added.
2276 (double_conversion::Bignum::Times10):
2277 (double_conversion::Bignum::Equal):
2278 (double_conversion::Bignum::LessEqual):
2279 (double_conversion::Bignum::Less):
2280 (double_conversion::Bignum::PlusEqual):
2281 (double_conversion::Bignum::PlusLessEqual):
2282 (double_conversion::Bignum::PlusLess):
2283 (double_conversion::Bignum::EnsureCapacity):
2284 (double_conversion::Bignum::BigitLength const):
2285 * StitchMarker/folly/double-conversion/double-conversion/cached-powers.cc: Added.
2286 * StitchMarker/folly/double-conversion/double-conversion/cached-powers.h: Added.
2287 * StitchMarker/folly/double-conversion/double-conversion/diy-fp.cc: Added.
2288 * StitchMarker/folly/double-conversion/double-conversion/diy-fp.h: Added.
2289 (double_conversion::DiyFp::DiyFp):
2290 (double_conversion::DiyFp::Subtract):
2291 (double_conversion::DiyFp::Minus):
2292 (double_conversion::DiyFp::Times):
2293 (double_conversion::DiyFp::Normalize):
2294 (double_conversion::DiyFp::f const):
2295 (double_conversion::DiyFp::e const):
2296 (double_conversion::DiyFp::set_f):
2297 (double_conversion::DiyFp::set_e):
2298 * StitchMarker/folly/double-conversion/double-conversion/double-conversion.cc: Added.
2299 * StitchMarker/folly/double-conversion/double-conversion/double-conversion.h: Added.
2300 (double_conversion::DoubleToStringConverter::DoubleToStringConverter):
2301 (double_conversion::DoubleToStringConverter::ToShortest const):
2302 (double_conversion::DoubleToStringConverter::ToShortestSingle const):
2303 (double_conversion::StringToDoubleConverter::StringToDoubleConverter):
2304 * StitchMarker/folly/double-conversion/double-conversion/fast-dtoa.cc: Added.
2305 * StitchMarker/folly/double-conversion/double-conversion/fast-dtoa.h: Added.
2306 * StitchMarker/folly/double-conversion/double-conversion/fixed-dtoa.cc: Added.
2307 * StitchMarker/folly/double-conversion/double-conversion/fixed-dtoa.h: Added.
2308 * StitchMarker/folly/double-conversion/double-conversion/ieee.h: Added.
2309 (double_conversion::double_to_uint64):
2310 (double_conversion::uint64_to_double):
2311 (double_conversion::float_to_uint32):
2312 (double_conversion::uint32_to_float):
2313 (double_conversion::Double::Double):
2314 (double_conversion::Double::AsDiyFp const):
2315 (double_conversion::Double::AsNormalizedDiyFp const):
2316 (double_conversion::Double::AsUint64 const):
2317 (double_conversion::Double::NextDouble const):
2318 (double_conversion::Double::PreviousDouble const):
2319 (double_conversion::Double::Exponent const):
2320 (double_conversion::Double::Significand const):
2321 (double_conversion::Double::IsDenormal const):
2322 (double_conversion::Double::IsSpecial const):
2323 (double_conversion::Double::IsNan const):
2324 (double_conversion::Double::IsInfinite const):
2325 (double_conversion::Double::Sign const):
2326 (double_conversion::Double::UpperBoundary const):
2327 (double_conversion::Double::NormalizedBoundaries const):
2328 (double_conversion::Double::LowerBoundaryIsCloser const):
2329 (double_conversion::Double::value const):
2330 (double_conversion::Double::SignificandSizeForOrderOfMagnitude):
2331 (double_conversion::Double::Infinity):
2332 (double_conversion::Double::NaN):
2333 (double_conversion::Double::DiyFpToUint64):
2334 (double_conversion::Single::Single):
2335 (double_conversion::Single::AsDiyFp const):
2336 (double_conversion::Single::AsUint32 const):
2337 (double_conversion::Single::Exponent const):
2338 (double_conversion::Single::Significand const):
2339 (double_conversion::Single::IsDenormal const):
2340 (double_conversion::Single::IsSpecial const):
2341 (double_conversion::Single::IsNan const):
2342 (double_conversion::Single::IsInfinite const):
2343 (double_conversion::Single::Sign const):
2344 (double_conversion::Single::NormalizedBoundaries const):
2345 (double_conversion::Single::UpperBoundary const):
2346 (double_conversion::Single::LowerBoundaryIsCloser const):
2347 (double_conversion::Single::value const):
2348 (double_conversion::Single::Infinity):
2349 (double_conversion::Single::NaN):
2350 * StitchMarker/folly/double-conversion/double-conversion/strtod.cc: Added.
2351 * StitchMarker/folly/double-conversion/double-conversion/strtod.h: Added.
2352 * StitchMarker/folly/double-conversion/double-conversion/utils.h: Added.
2353 (abort_noreturn):
2354 (double_conversion::Max):
2355 (double_conversion::Min):
2356 (double_conversion::StrLength):
2357 (double_conversion::Vector::Vector):
2358 (double_conversion::Vector::SubVector):
2359 (double_conversion::Vector::length const):
2360 (double_conversion::Vector::is_empty const):
2361 (double_conversion::Vector::start const):
2362 (double_conversion::Vector::operator[] const):
2363 (double_conversion::Vector::first):
2364 (double_conversion::Vector::last):
2365 (double_conversion::StringBuilder::StringBuilder):
2366 (double_conversion::StringBuilder::~StringBuilder):
2367 (double_conversion::StringBuilder::size const):
2368 (double_conversion::StringBuilder::position const):
2369 (double_conversion::StringBuilder::Reset):
2370 (double_conversion::StringBuilder::AddCharacter):
2371 (double_conversion::StringBuilder::AddString):
2372 (double_conversion::StringBuilder::AddSubstring):
2373 (double_conversion::StringBuilder::AddPadding):
2374 (double_conversion::StringBuilder::Finalize):
2375 (double_conversion::StringBuilder::is_finalized const):
2376 (double_conversion::BitCast):
2377 * StitchMarker/folly/folly/ApplyTuple.h: Added.
2378 (folly::detail::apply_tuple::sum):
2379 (folly::detail::apply_tuple::makeCallable):
2380 (folly::detail::apply_tuple::call):
2381 (folly::detail::apply_tuple::forwardTuple):
2382 (folly::applyTuple):
2383 (folly::detail::apply_tuple::Uncurry::Uncurry):
2384 (folly::detail::apply_tuple::Uncurry::operator() const):
2385 (folly::uncurry):
2386 * StitchMarker/folly/folly/Assume.cpp: Added.
2387 (folly::detail::assume_check):
2388 * StitchMarker/folly/folly/Assume.h: Added.
2389 (folly::assume):
2390 (folly::assume_unreachable):
2391 * StitchMarker/folly/folly/AtomicStruct.h: Added.
2392 * StitchMarker/folly/folly/Baton.h: Added.
2393 (folly::Baton::Baton):
2394 (folly::Baton::~Baton):
2395 (folly::Baton::reset):
2396 (folly::Baton::post):
2397 (folly::Baton::wait):
2398 (folly::Baton::timed_wait):
2399 (folly::Baton::try_wait const):
2400 (folly::Baton::spinWaitForEarlyDelivery):
2401 * StitchMarker/folly/folly/Benchmark.cpp: Added.
2402 (folly::benchmarks):
2403 (folly::BENCHMARK):
2404 (folly::getGlobalBenchmarkBaselineIndex):
2405 (folly::detail::addBenchmarkImpl):
2406 (folly::estimateTime):
2407 (folly::runBenchmarkGetNSPerIteration):
2408 (folly::humanReadable):
2409 (folly::readableTime):
2410 (folly::metricReadable):
2411 (folly::printBenchmarkResultsAsTable):
2412 (folly::printBenchmarkResults):
2413 (folly::runBenchmarks):
2414 * StitchMarker/folly/folly/Benchmark.h: Added.
2415 (folly::runBenchmarksOnFlag):
2416 (folly::BenchmarkSuspender::BenchmarkSuspender):
2417 (folly::BenchmarkSuspender::operator=):
2418 (folly::BenchmarkSuspender::~BenchmarkSuspender):
2419 (folly::BenchmarkSuspender::dismiss):
2420 (folly::BenchmarkSuspender::rehire):
2421 (folly::BenchmarkSuspender::dismissing):
2422 (folly::BenchmarkSuspender::operator bool const):
2423 (folly::BenchmarkSuspender::tally):
2424 (folly::addBenchmark):
2425 (folly::doNotOptimizeDependencySink):
2426 (folly::doNotOptimizeAway):
2427 (folly::makeUnpredictable):
2428 * StitchMarker/folly/folly/Bits.h: Added.
2429 (folly::findFirstSet):
2430 (folly::findLastSet):
2431 (folly::nextPowTwo):
2432 (folly::prevPowTwo):
2433 (folly::isPowTwo):
2434 (folly::popcount):
2435 (folly::detail::EndianInt::swap):
2436 (folly::detail::EndianInt::big):
2437 (folly::detail::EndianInt::little):
2438 (folly::Endian::swap):
2439 (folly::Endian::big):
2440 (folly::Endian::little):
2441 (folly::BitIterator::bitsPerBlock):
2442 (folly::BitIterator::BitIterator):
2443 (folly::BitIterator::bitOffset const):
2444 (folly::BitIterator::advanceToNextBlock):
2445 (folly::BitIterator::operator=):
2446 (folly::BitIterator::advanceInBlock):
2447 (folly::BitIterator::dereference const):
2448 (folly::BitIterator::advance):
2449 (folly::BitIterator::increment):
2450 (folly::BitIterator::decrement):
2451 (folly::BitIterator::equal const):
2452 (folly::BitIterator::distance_to const):
2453 (folly::makeBitIterator):
2454 (folly::loadUnaligned):
2455 (folly::storeUnaligned):
2456 * StitchMarker/folly/folly/CPortability.h: Added.
2457 * StitchMarker/folly/folly/CallOnce.h: Added.
2458 (folly::call_once):
2459 (folly::call_once_impl_no_inline):
2460 * StitchMarker/folly/folly/ConcurrentSkipList-inl.h: Added.
2461 (folly::detail::SkipListNode::create):
2462 (folly::detail::SkipListNode::destroy):
2463 (folly::detail::SkipListNode::copyHead):
2464 (folly::detail::SkipListNode::skip const):
2465 (folly::detail::SkipListNode::next):
2466 (folly::detail::SkipListNode::setSkip):
2467 (folly::detail::SkipListNode::data):
2468 (folly::detail::SkipListNode::data const):
2469 (folly::detail::SkipListNode::maxLayer const):
2470 (folly::detail::SkipListNode::height const):
2471 (folly::detail::SkipListNode::acquireGuard):
2472 (folly::detail::SkipListNode::fullyLinked const):
2473 (folly::detail::SkipListNode::markedForRemoval const):
2474 (folly::detail::SkipListNode::isHeadNode const):
2475 (folly::detail::SkipListNode::setIsHeadNode):
2476 (folly::detail::SkipListNode::setFullyLinked):
2477 (folly::detail::SkipListNode::setMarkedForRemoval):
2478 (folly::detail::SkipListNode::SkipListNode):
2479 (folly::detail::SkipListNode::~SkipListNode):
2480 (folly::detail::SkipListNode::getFlags const):
2481 (folly::detail::SkipListNode::setFlags):
2482 (folly::detail::SkipListRandomHeight::instance):
2483 (folly::detail::SkipListRandomHeight::getHeight const):
2484 (folly::detail::SkipListRandomHeight::getSizeLimit const):
2485 (folly::detail::SkipListRandomHeight::SkipListRandomHeight):
2486 (folly::detail::SkipListRandomHeight::initLookupTable):
2487 (folly::detail::SkipListRandomHeight::randomProb):
2488 * StitchMarker/folly/folly/ConcurrentSkipList.h: Added.
2489 (folly::ConcurrentSkipList::ConcurrentSkipList):
2490 (folly::ConcurrentSkipList::create):
2491 (folly::ConcurrentSkipList::createInstance):
2492 (folly::ConcurrentSkipList::~ConcurrentSkipList):
2493 (folly::ConcurrentSkipList::greater):
2494 (folly::ConcurrentSkipList::less):
2495 (folly::ConcurrentSkipList::findInsertionPoint):
2496 (folly::ConcurrentSkipList::size const):
2497 (folly::ConcurrentSkipList::height const):
2498 (folly::ConcurrentSkipList::maxLayer const):
2499 (folly::ConcurrentSkipList::incrementSize):
2500 (folly::ConcurrentSkipList::find):
2501 (folly::ConcurrentSkipList::lockNodesForChange):
2502 (folly::ConcurrentSkipList::addOrGetData):
2503 (folly::ConcurrentSkipList::remove):
2504 (folly::ConcurrentSkipList::first const):
2505 (folly::ConcurrentSkipList::last const):
2506 (folly::ConcurrentSkipList::okToDelete):
2507 (folly::ConcurrentSkipList::findInsertionPointGetMaxLayer const):
2508 (folly::ConcurrentSkipList::findNode const):
2509 (folly::ConcurrentSkipList::findNodeDownRight const):
2510 (folly::ConcurrentSkipList::findNodeRightDown const):
2511 (folly::ConcurrentSkipList::lower_bound const):
2512 (folly::ConcurrentSkipList::growHeight):
2513 (folly::ConcurrentSkipList::recycle):
2514 (folly::detail::csl_iterator::csl_iterator):
2515 (folly::detail::csl_iterator::nodeSize const):
2516 (folly::detail::csl_iterator::good const):
2517 (folly::detail::csl_iterator::increment):
2518 (folly::detail::csl_iterator::equal const):
2519 (folly::detail::csl_iterator::dereference const):
2520 * StitchMarker/folly/folly/Conv.cpp: Added.
2521 (folly::makeConversionError):
2522 * StitchMarker/folly/folly/Conv.h: Added.
2523 (folly::ConversionError::ConversionError):
2524 (folly::ConversionError::errorCode const):
2525 (folly::detail::enforceWhitespaceErr):
2526 (folly::detail::enforceWhitespace):
2527 (folly::tryTo):
2528 (folly::to):
2529 (folly::detail::getLastElement):
2530 (folly::detail::LastElementImpl::call):
2531 (folly::detail::digitsEnough):
2532 (folly::detail::unsafeTelescope128):
2533 (folly::digits10):
2534 (folly::uint64ToBufferUnsafe):
2535 (folly::toAppend):
2536 (folly::estimateSpaceNeeded):
2537 (folly::sizeof):
2538 (folly::detail::estimateSpaceToReserve):
2539 (folly::detail::reserveInTarget):
2540 (folly::detail::reserveInTargetDelim):
2541 (folly::detail::toAppendStrImpl):
2542 (folly::detail::sizeof):
2543 (folly::detail::toAppendDelimStrImpl):
2544 (folly::toAppendFit):
2545 (folly::toAppendDelim):
2546 (folly::toAppendDelimFit):
2547 (folly::toDelim):
2548 (folly::parseTo):
2549 (folly::detail::checkConversion):
2550 (folly::detail::errorValue):
2551 (folly::detail::decltype):
2552 (folly::detail::CheckTrailingSpace::operator() const):
2553 (folly::detail::ReturnUnit::operator() const):
2554 (folly::detail::parseToWrap):
2555 (folly::detail::ExpectedErrorType<decltype):
2556 * StitchMarker/folly/folly/CppAttributes.h: Added.
2557 * StitchMarker/folly/folly/CpuId.h: Added.
2558 (folly::CpuId::CpuId):
2559 * StitchMarker/folly/folly/Demangle.cpp: Added.
2560 * StitchMarker/folly/folly/Demangle.h: Added.
2561 (folly::demangle):
2562 * StitchMarker/folly/folly/Exception.h: Added.
2563 (folly::throwSystemErrorExplicit):
2564 (folly::throwSystemError):
2565 (folly::checkPosixError):
2566 (folly::checkKernelError):
2567 (folly::checkUnixError):
2568 (folly::checkUnixErrorExplicit):
2569 (folly::checkFopenError):
2570 (folly::checkFopenErrorExplicit):
2571 * StitchMarker/folly/folly/ExceptionString.h: Added.
2572 (folly::exceptionStr):
2573 * StitchMarker/folly/folly/ExceptionWrapper-inl.h: Added.
2574 (folly::Class::):
2575 (folly::exception_wrapper::arg_type_<Ret):
2576 (folly::exception_wrapper::noop_):
2577 (folly::exception_wrapper::uninit_type_):
2578 (folly::exception_wrapper::Buffer::Buffer):
2579 (folly::exception_wrapper::as_exception_or_null_):
2580 (folly::exception_wrapper::ExceptionPtr::as_int_):
2581 (folly::exception_wrapper::ExceptionPtr::has_exception_ const):
2582 (folly::exception_wrapper::ExceptionPtr::as_exception_ const):
2583 (folly::exception_wrapper::ExceptionPtr::as_type_ const):
2584 (folly::exception_wrapper::ExceptionPtr::copy_):
2585 (folly::exception_wrapper::ExceptionPtr::move_):
2586 (folly::exception_wrapper::ExceptionPtr::delete_):
2587 (folly::exception_wrapper::ExceptionPtr::throw_):
2588 (folly::exception_wrapper::ExceptionPtr::type_):
2589 (folly::exception_wrapper::ExceptionPtr::get_exception_):
2590 (folly::exception_wrapper::ExceptionPtr::get_exception_ptr_):
2591 (folly::exception_wrapper::InPlace<Ex>::copy_):
2592 (folly::exception_wrapper::InPlace<Ex>::move_):
2593 (folly::exception_wrapper::InPlace<Ex>::delete_):
2594 (folly::exception_wrapper::InPlace<Ex>::throw_):
2595 (folly::exception_wrapper::InPlace<Ex>::type_):
2596 (folly::exception_wrapper::InPlace<Ex>::get_exception_):
2597 (folly::exception_wrapper::InPlace<Ex>::get_exception_ptr_):
2598 (folly::exception_wrapper::SharedPtr::Impl<Ex>::throw_ const):
2599 (folly::exception_wrapper::SharedPtr::copy_):
2600 (folly::exception_wrapper::SharedPtr::move_):
2601 (folly::exception_wrapper::SharedPtr::delete_):
2602 (folly::exception_wrapper::SharedPtr::throw_):
2603 (folly::exception_wrapper::SharedPtr::type_):
2604 (folly::exception_wrapper::SharedPtr::get_exception_):
2605 (folly::exception_wrapper::SharedPtr::get_exception_ptr_):
2606 (folly::exception_wrapper::exception_wrapper):
2607 (folly::vptr_):
2608 (folly::exception_wrapper::operator=):
2609 (folly::exception_wrapper::~exception_wrapper):
2610 (folly::exception_wrapper_detail::dont_slice):
2611 (folly::FOLLY_REQUIRES_DEF):
2612 (folly::exception_wrapper::reset):
2613 (folly::exception_wrapper::what const):
2614 (folly::exception_wrapper::class_name const):
2615 (folly::exception_wrapper::throw_exception const):
2616 (folly::exception_wrapper::HandleReduce::FOLLY_REQUIRES const):
2617 (folly::exception_wrapper::HandleStdExceptReduce::FOLLY_REQUIRES const):
2618 (folly::exception_wrapper::handle_):
2619 (folly::exception_wrapper_detail::catch_fn::operator()):
2620 (folly::exception_wrapper_detail::catch_):
2621 (folly::exception_wrapper::with_exception_):
2622 (folly::exception_wrapper::with_exception):
2623 (folly::exception_wrapper::with_exception const):
2624 (folly::exception_wrapper::handle):
2625 (folly::exception_wrapper::handle const):
2626 * StitchMarker/folly/folly/ExceptionWrapper.h: Added.
2627 (folly::exception_wrapper_detail::fold):
2628 (folly::make_exception_wrapper):
2629 (folly::operator<<):
2630 (folly::detail::try_and_catch_):
2631 (folly::try_and_catch):
2632 * StitchMarker/folly/folly/Executor.h: Added.
2633 (folly::Executor::getNumPriorities const):
2634 (folly::Executor::addPtr):
2635 (folly::Executor::KeepAlive::KeepAlive):
2636 (folly::Executor::KeepAlive::reset):
2637 (folly::Executor::KeepAlive::operator bool const):
2638 (folly::Executor::KeepAlive::Deleter::operator()):
2639 (folly::Executor::getKeepAliveToken):
2640 (folly::Executor::makeKeepAlive):
2641 * StitchMarker/folly/folly/Expected.h: Added.
2642 (folly::expected_detail::doEmplaceAssign):
2643 (folly::expected_detail::getStorageType):
2644 (folly::expected_detail::Error>):
2645 (folly::expected_detail::ExpectedUnion::noexcept):
2646 (folly::expected_detail::ExpectedUnion::ExpectedUnion):
2647 (folly::expected_detail::ExpectedUnion::operator=):
2648 (folly::expected_detail::ExpectedUnion::~ExpectedUnion):
2649 (folly::expected_detail::ExpectedUnion::value):
2650 (folly::expected_detail::ExpectedUnion::value const):
2651 (folly::expected_detail::ExpectedUnion::error):
2652 (folly::expected_detail::ExpectedUnion::error const):
2653 (folly::expected_detail::CopyConstructible::noexcept):
2654 (folly::expected_detail::MoveConstructible::noexcept):
2655 (folly::expected_detail::CopyAssignable::noexcept):
2656 (folly::expected_detail::MoveAssignable::noexcept):
2657 (folly::expected_detail::expected_detail_ExpectedHelper::ExpectedHelper::return_):
2658 (folly::expected_detail::expected_detail_ExpectedHelper::ExpectedHelper::FOLLY_REQUIRES_TRAILING):
2659 (folly::expected_detail::expected_detail_ExpectedHelper::ExpectedHelper::then_):
2660 (folly::unexpected):
2661 (folly::BadExpectedAccess::BadExpectedAccess):
2662 (folly::FOLLY_REQUIRES_TRAILING):
2663 (folly::makeUnexpected):
2664 (folly::operator==):
2665 (folly::operator<):
2666 (folly::noexcept):
2667 (folly::makeExpected):
2668 * StitchMarker/folly/folly/FBString.h: Added.
2669 (fbstring_detail::copy_n):
2670 (fbstring_detail::podFill):
2671 (fbstring_detail::podCopy):
2672 (fbstring_detail::podMove):
2673 (fbstring_detail::assume_unreachable):
2674 (fbstring_core::fbstring_core):
2675 (fbstring_core::swap):
2676 (fbstring_core::data const):
2677 (fbstring_core::mutableData):
2678 (fbstring_core::c_str const):
2679 (fbstring_core::shrink):
2680 (fbstring_core::reserve):
2681 (fbstring_core::push_back):
2682 (fbstring_core::size const):
2683 (fbstring_core::capacity const):
2684 (fbstring_core::isShared const):
2685 (fbstring_core::reset):
2686 (fbstring_core::RefCounted::getDataOffset):
2687 (fbstring_core::RefCounted::fromData):
2688 (fbstring_core::RefCounted::refs):
2689 (fbstring_core::RefCounted::incrementRefs):
2690 (fbstring_core::RefCounted::decrementRefs):
2691 (fbstring_core::RefCounted::create):
2692 (fbstring_core::RefCounted::reallocate):
2693 (fbstring_core::category const):
2694 (fbstring_core::MediumLarge::capacity const):
2695 (fbstring_core::MediumLarge::setCapacity):
2696 (fbstring_core::smallSize const):
2697 (fbstring_core::setSmallSize):
2698 (fbstring_core<Char>::copySmall):
2699 (fbstring_core<Char>::copyMedium):
2700 (fbstring_core<Char>::copyLarge):
2701 (fbstring_core<Char>::initSmall):
2702 (fbstring_core<Char>::initMedium):
2703 (fbstring_core<Char>::initLarge):
2704 (fbstring_core<Char>::unshare):
2705 (fbstring_core<Char>::mutableDataLarge):
2706 (fbstring_core<Char>::reserveLarge):
2707 (fbstring_core<Char>::reserveMedium):
2708 (fbstring_core<Char>::reserveSmall):
2709 (fbstring_core<Char>::expandNoinit):
2710 (fbstring_core<Char>::shrinkSmall):
2711 (fbstring_core<Char>::shrinkMedium):
2712 (fbstring_core<Char>::shrinkLarge):
2713 (dummy_fbstring_core::dummy_fbstring_core):
2714 (dummy_fbstring_core::swap):
2715 (dummy_fbstring_core::data const):
2716 (dummy_fbstring_core::mutableData):
2717 (dummy_fbstring_core::shrink):
2718 (dummy_fbstring_core::expandNoinit):
2719 (dummy_fbstring_core::push_back):
2720 (dummy_fbstring_core::size const):
2721 (dummy_fbstring_core::capacity const):
2722 (dummy_fbstring_core::isShared const):
2723 (dummy_fbstring_core::reserve):
2724 (S>::traitsLength):
2725 (=):
2726 (S>::resize):
2727 (S>::append):
2728 (S>::assign):
2729 (S>::getlineImpl):
2730 (S>::find const):
2731 (S>::insertImplDiscr):
2732 (S>::insertImpl):
2733 (S>::replaceImplDiscr):
2734 (S>::replaceAliased):
2735 (S>::replaceImpl):
2736 (S>::rfind const):
2737 (S>::find_first_of const):
2738 (S>::find_last_of const):
2739 (S>::find_first_not_of const):
2740 (S>::find_last_not_of const):
2741 (operator+):
2742 (operator==):
2743 (operator!=):
2744 (operator<):
2745 (operator>):
2746 (operator<=):
2747 (operator>=):
2748 (swap):
2749 (operator>>):
2750 (operator<<):
2751 * StitchMarker/folly/folly/FBVector.h: Added.
2752 (folly::fbvector::Impl::Impl):
2753 (folly::fbvector::Impl::~Impl):
2754 (folly::fbvector::Impl::D_allocate):
2755 (folly::fbvector::Impl::swapData):
2756 (folly::fbvector::Impl::init):
2757 (folly::fbvector::Impl::set):
2758 (folly::fbvector::Impl::reset):
2759 (folly::fbvector::swap):
2760 (folly::fbvector::M_allocate):
2761 (folly::fbvector::M_construct):
2762 (folly::fbvector::S_construct):
2763 (folly::fbvector::S_construct_a):
2764 (folly::fbvector::M_uninitialized_fill_n_e):
2765 (folly::fbvector::D_uninitialized_fill_n_a):
2766 (folly::fbvector::S_uninitialized_fill_n_a):
2767 (folly::fbvector::S_uninitialized_fill_n):
2768 (folly::fbvector::M_uninitialized_copy_e):
2769 (folly::fbvector::M_uninitialized_move_e):
2770 (folly::fbvector::D_uninitialized_copy_a):
2771 (folly::fbvector::D_uninitialized_move_a):
2772 (folly::fbvector::S_uninitialized_copy_a):
2773 (folly::fbvector::S_uninitialized_copy):
2774 (folly::fbvector::S_uninitialized_copy_bits):
2775 (folly::fbvector::S_copy_n):
2776 (folly::fbvector::M_relocate):
2777 (folly::fbvector::relocate_move):
2778 (folly::fbvector::relocate_move_or_memcpy):
2779 (folly::fbvector::relocate_move_or_copy):
2780 (folly::fbvector::fbvector):
2781 (folly::fbvector::operator=):
2782 (folly::fbvector::assign):
2783 (folly::fbvector::moveFrom):
2784 (folly::fbvector::dataIsInternalAndNotVT):
2785 (folly::fbvector::dataIsInternal):
2786 (folly::fbvector::resize):
2787 (folly::fbvector::reserve):
2788 (folly::fbvector::reserve_in_place):
2789 (folly::fbvector::operator[]):
2790 (folly::fbvector::operator[] const):
2791 (folly::fbvector::at const):
2792 (folly::fbvector::at):
2793 (folly::fbvector::front):
2794 (folly::fbvector::front const):
2795 (folly::fbvector::back):
2796 (folly::fbvector::back const):
2797 (folly::fbvector::emplace_back):
2798 (folly::fbvector::push_back):
2799 (folly::fbvector::pop_back):
2800 (folly::fbvector::computePushBackCapacity const):
2801 (folly::fbvector::erase):
2802 (folly::fbvector::isValid):
2803 (folly::fbvector::computeInsertCapacity):
2804 (folly::fbvector::make_window):
2805 (folly::fbvector::wrap_frame):
2806 (folly::fbvector::insert_use_fresh):
2807 (folly::fbvector::do_real_insert):
2808 (folly::fbvector::emplace):
2809 (folly::fbvector::insert):
2810 (folly::fbvector::operator== const):
2811 (folly::fbvector::operator!= const):
2812 (folly::fbvector::operator< const):
2813 (folly::fbvector::operator> const):
2814 (folly::fbvector::operator<= const):
2815 (folly::fbvector::operator>= const):
2816 (folly::Allocator>::emplace_back_aux):
2817 (folly::compactResize):
2818 (folly::relinquish):
2819 (folly::attach):
2820 * StitchMarker/folly/folly/File.h: Added.
2821 (folly::File::fd const):
2822 (folly::File::operator bool const):
2823 * StitchMarker/folly/folly/FileUtil.h: Added.
2824 (folly::readFile):
2825 (folly::writeFile):
2826 * StitchMarker/folly/folly/Foreach.h: Added.
2827 (folly::detail::notThereYet):
2828 (folly::detail::downTo):
2829 * StitchMarker/folly/folly/Format-inl.h: Added.
2830 (folly::detail::uintToHex):
2831 (folly::detail::uintToHexLower):
2832 (folly::detail::uintToHexUpper):
2833 (folly::detail::uintToOctal):
2834 (folly::detail::uintToBinary):
2835 (folly::>::BaseFormatter):
2836 (folly::>::operator const):
2837 (folly::writeTo):
2838 (folly::format_value::formatString):
2839 (folly::format_value::formatNumber):
2840 (folly::format_value::formatFormatter):
2841 (folly::FormatValue<bool>::FormatValue):
2842 (folly::FormatValue<bool>::format const):
2843 (folly::FormatValue<double>::FormatValue):
2844 (folly::FormatValue<double>::format const):
2845 (folly::FormatValue<float>::FormatValue):
2846 (folly::FormatValue<float>::format const):
2847 (folly::FormatValue<std::nullptr_t>::FormatValue):
2848 (folly::FormatValue<std::nullptr_t>::format const):
2849 (folly::TryFormatValue::formatOrFail):
2850 (folly::detail::KeyFromStringPiece<std::string>::convert):
2851 (folly::detail::KeyFromStringPiece<fbstring>::convert):
2852 (folly::detail::KeyFromStringPiece<StringPiece>::convert):
2853 (folly::detail::KeyableTraitsAssoc::at):
2854 (folly::toAppend):
2855 * StitchMarker/folly/folly/Format.cpp: Added.
2856 (folly::FormatValue<double>::formatHelper const):
2857 (folly::FormatArg::initSlow):
2858 (folly::FormatArg::validate const):
2859 (folly::detail::insertThousandsGroupingUnsafe):
2860 * StitchMarker/folly/folly/Format.h: Added.
2861 (folly::BaseFormatter::appendTo const):
2862 (folly::BaseFormatter::str const):
2863 (folly::BaseFormatter::fbstr const):
2864 (folly::BaseFormatter::asDerived const):
2865 (folly::BaseFormatter::doFormatFrom const):
2866 (folly::BaseFormatter::doFormat const):
2867 (folly::BaseFormatter::getSizeArgFrom const):
2868 (folly::BaseFormatter::getValue const):
2869 (folly::BaseFormatter::getSizeArg const):
2870 (folly::BaseFormatter::getFormatValue const):
2871 (folly::Formatter::Formatter):
2872 (folly::Formatter::doFormatArg const):
2873 (folly::operator<<):
2874 (folly::sformat):
2875 (folly::vformat):
2876 (folly::svformat):
2877 (folly::detail::DefaultValueWrapper::DefaultValueWrapper):
2878 (folly::defaulted):
2879 (folly::format):
2880 (folly::sformatChecked):
2881 (folly::vformatChecked):
2882 (folly::svformatChecked):
2883 (folly::formatChecked):
2884 * StitchMarker/folly/folly/FormatArg.h: Added.
2885 (folly::BadFormatArg::BadFormatArg):
2886 (folly::FormatArg::FormatArg):
2887 (folly::FormatArg::enforce const):
2888 (folly::FormatArg::keyEmpty const):
2889 (folly::FormatArg::setNextIntKey):
2890 (folly::FormatArg::setNextKey):
2891 (folly::FormatArg::errorStr const):
2892 (folly::FormatArg::error const):
2893 (folly::FormatArg::splitKey):
2894 (folly::FormatArg::doSplitKey):
2895 (folly::FormatArg::splitIntKey):
2896 * StitchMarker/folly/folly/FormatTables.cpp: Added.
2897 * StitchMarker/folly/folly/FormatTraits.h: Added.
2898 (folly::detail::IndexableTraitsSeq::at):
2899 (folly::detail::IndexableTraitsAssoc::at):
2900 * StitchMarker/folly/folly/Function.h: Added.
2901 (folly::detail::function::isNullPtrFn):
2902 (folly::detail::function::uninitNoop):
2903 (folly::detail::function::FunctionTraits<ReturnType):
2904 (folly::detail::function::execSmall):
2905 (folly::detail::function::execBig):
2906 (folly::detail::function::invoke):
2907 (folly::operator==):
2908 (folly::operator!=):
2909 (folly::FunctionRef<ReturnType):
2910 * StitchMarker/folly/folly/Hash.h: Added.
2911 (folly::hash::hash_128_to_64):
2912 (folly::hash::hash_combine_generic):
2913 (folly::hash::hash_range):
2914 (folly::hash::StdHasher::hash):
2915 (folly::hash::hash_combine):
2916 (folly::hash::twang_mix64):
2917 (folly::hash::twang_unmix64):
2918 (folly::hash::twang_32from64):
2919 (folly::hash::jenkins_rev_mix32):
2920 (folly::hash::jenkins_rev_unmix32):
2921 (folly::hash::fnv32):
2922 (folly::hash::fnv32_buf):
2923 (folly::hash::fnv64):
2924 (folly::hash::fnv64_buf):
2925 (folly::hash::fnva64_buf):
2926 (folly::hash::fnva64):
2927 (folly::hash::hsieh_hash32_buf):
2928 (folly::hash::hsieh_hash32):
2929 (folly::hash::hsieh_hash32_str):
2930 (folly::Hash::operator() const):
2931 (folly::hasher<bool>::operator() const):
2932 (folly::hasher<int32_t>::operator() const):
2933 (folly::hasher<uint32_t>::operator() const):
2934 (folly::hasher<int16_t>::operator() const):
2935 (folly::hasher<uint16_t>::operator() const):
2936 (folly::hasher<int8_t>::operator() const):
2937 (folly::hasher<uint8_t>::operator() const):
2938 (folly::hasher<char>::operator() const):
2939 (folly::hasher<int64_t>::operator() const):
2940 (folly::hasher<uint64_t>::operator() const):
2941 (folly::hasher<std::string>::operator() const):
2942 (folly::TupleHasher::operator() const):
2943 * StitchMarker/folly/folly/Indestructible.h: Added.
2944 * StitchMarker/folly/folly/IndexedMemPool.h: Added.
2945 (folly::IndexedMemPoolTraits::eagerRecycle):
2946 (folly::IndexedMemPoolTraits::initialize):
2947 (folly::IndexedMemPoolTraits::cleanup):
2948 (folly::IndexedMemPoolTraits::onAllocate):
2949 (folly::IndexedMemPoolTraits::onRecycle):
2950 (folly::IndexedMemPool::maxIndexForCapacity):
2951 (folly::IndexedMemPool::capacityForMaxIndex):
2952 (folly::IndexedMemPool::IndexedMemPool):
2953 (folly::IndexedMemPool::~IndexedMemPool):
2954 (folly::IndexedMemPool::capacity):
2955 (folly::IndexedMemPool::maxAllocatedIndex const):
2956 (folly::IndexedMemPool::allocIndex):
2957 (folly::IndexedMemPool::allocElem):
2958 (folly::IndexedMemPool::recycleIndex):
2959 (folly::IndexedMemPool::operator[]):
2960 (folly::IndexedMemPool::operator[] const):
2961 (folly::IndexedMemPool::locateElem const):
2962 (folly::IndexedMemPool::isAllocated const):
2963 (folly::IndexedMemPool::Slot::Slot):
2964 (folly::IndexedMemPool::TaggedPtr::size const):
2965 (folly::IndexedMemPool::TaggedPtr::withSize const):
2966 (folly::IndexedMemPool::TaggedPtr::withSizeIncr const):
2967 (folly::IndexedMemPool::TaggedPtr::withSizeDecr const):
2968 (folly::IndexedMemPool::TaggedPtr::withIdx const):
2969 (folly::IndexedMemPool::TaggedPtr::withEmpty const):
2970 (folly::IndexedMemPool::slotIndex const):
2971 (folly::IndexedMemPool::slot):
2972 (folly::IndexedMemPool::slot const):
2973 (folly::IndexedMemPool::globalPush):
2974 (folly::IndexedMemPool::localPush):
2975 (folly::IndexedMemPool::globalPop):
2976 (folly::IndexedMemPool::localPop):
2977 (folly::IndexedMemPool::localHead):
2978 (folly::IndexedMemPool::markAllocated):
2979 (folly::detail::IndexedMemPoolRecycler::IndexedMemPoolRecycler):
2980 (folly::detail::IndexedMemPoolRecycler::operator() const):
2981 * StitchMarker/folly/folly/Likely.h: Added.
2982 * StitchMarker/folly/folly/LockTraits.h: Added.
2983 (folly::lock_shared_or_unique):
2984 (folly::try_lock_shared_or_unique_for):
2985 (folly::unlock_shared_or_unique):
2986 (folly::LockPolicyExclusive::lock):
2987 (folly::LockPolicyExclusive::try_lock_for):
2988 (folly::LockPolicyExclusive::unlock):
2989 (folly::LockPolicyShared::lock):
2990 (folly::LockPolicyShared::try_lock_for):
2991 (folly::LockPolicyShared::unlock):
2992 (folly::LockPolicyShareable::lock):
2993 (folly::LockPolicyShareable::try_lock_for):
2994 (folly::LockPolicyShareable::unlock):
2995 (folly::LockPolicyUpgrade::lock):
2996 (folly::LockPolicyUpgrade::try_lock_for):
2997 (folly::LockPolicyUpgrade::unlock):
2998 (folly::LockPolicyFromUpgradeToExclusive::lock):
2999 (folly::LockPolicyFromUpgradeToExclusive::try_lock_for):
3000 (folly::LockPolicyFromExclusiveToUpgrade::lock):
3001 (folly::LockPolicyFromExclusiveToUpgrade::try_lock_for):
3002 (folly::LockPolicyFromUpgradeToShared::lock):
3003 (folly::LockPolicyFromUpgradeToShared::try_lock_for):
3004 (folly::LockPolicyFromExclusiveToShared::lock):
3005 (folly::LockPolicyFromExclusiveToShared::try_lock_for):
3006 * StitchMarker/folly/folly/Malloc.h: Added.
3007 * StitchMarker/folly/folly/Memory.h: Added.
3008 (folly::make_unique):
3009 (folly::f):
3010 (folly::to_shared_ptr):
3011 (folly::to_weak_ptr):
3012 (folly::detail::SysFree):
3013 (folly::allocate_sys_buffer):
3014 (folly::SysAlloc::allocate):
3015 (folly::SysAlloc::deallocate):
3016 (folly::StlAllocator::StlAllocator):
3017 (folly::StlAllocator::allocate):
3018 (folly::StlAllocator::deallocate):
3019 (folly::StlAllocator::max_size const):
3020 (folly::StlAllocator::address const):
3021 (folly::StlAllocator::construct):
3022 (folly::StlAllocator::destroy):
3023 (folly::StlAllocator::alloc const):
3024 (folly::StlAllocator::operator!= const):
3025 (folly::StlAllocator::operator== const):
3026 (folly::rebind_allocator):
3027 (folly::allocator_delete::allocator_delete):
3028 (folly::allocator_delete::get_allocator const):
3029 (folly::allocator_delete::operator() const):
3030 (folly::make_stl_allocator):
3031 (folly::allocate_unique):
3032 (folly::allocate_shared):
3033 * StitchMarker/folly/folly/MicroSpinLock.h: Added.
3034 (folly::MicroSpinLock::init):
3035 (folly::MicroSpinLock::try_lock):
3036 (folly::MicroSpinLock::lock):
3037 (folly::MicroSpinLock::unlock):
3038 (folly::MicroSpinLock::payload):
3039 (folly::MicroSpinLock::cas):
3040 * StitchMarker/folly/folly/Portability.h: Added.
3041 * StitchMarker/folly/folly/Preprocessor.h: Added.
3042 * StitchMarker/folly/folly/ProducerConsumerQueue.h: Added.
3043 (folly::ProducerConsumerQueue::ProducerConsumerQueue):
3044 (folly::ProducerConsumerQueue::~ProducerConsumerQueue):
3045 (folly::ProducerConsumerQueue::write):
3046 (folly::ProducerConsumerQueue::read):
3047 (folly::ProducerConsumerQueue::frontPtr):
3048 (folly::ProducerConsumerQueue::popFront):
3049 (folly::ProducerConsumerQueue::isEmpty const):
3050 (folly::ProducerConsumerQueue::isFull const):
3051 (folly::ProducerConsumerQueue::sizeGuess const):
3052 * StitchMarker/folly/folly/RWSpinLock.h: Added.
3053 (folly::RWSpinLock::RWSpinLock):
3054 (folly::RWSpinLock::lock):
3055 (folly::RWSpinLock::unlock):
3056 (folly::RWSpinLock::lock_shared):
3057 (folly::RWSpinLock::unlock_shared):
3058 (folly::RWSpinLock::unlock_and_lock_shared):
3059 (folly::RWSpinLock::lock_upgrade):
3060 (folly::RWSpinLock::unlock_upgrade):
3061 (folly::RWSpinLock::unlock_upgrade_and_lock):
3062 (folly::RWSpinLock::unlock_upgrade_and_lock_shared):
3063 (folly::RWSpinLock::unlock_and_lock_upgrade):
3064 (folly::RWSpinLock::try_lock):
3065 (folly::RWSpinLock::try_lock_shared):
3066 (folly::RWSpinLock::try_unlock_upgrade_and_lock):
3067 (folly::RWSpinLock::try_lock_upgrade):
3068 (folly::RWSpinLock::bits const):
3069 (folly::RWSpinLock::ReadHolder::ReadHolder):
3070 (folly::RWSpinLock::ReadHolder::operator=):
3071 (folly::RWSpinLock::ReadHolder::~ReadHolder):
3072 (folly::RWSpinLock::ReadHolder::reset):
3073 (folly::RWSpinLock::ReadHolder::swap):
3074 (folly::RWSpinLock::UpgradedHolder::UpgradedHolder):
3075 (folly::RWSpinLock::UpgradedHolder::operator =):
3076 (folly::RWSpinLock::UpgradedHolder::~UpgradedHolder):
3077 (folly::RWSpinLock::UpgradedHolder::reset):
3078 (folly::RWSpinLock::UpgradedHolder::swap):
3079 (folly::RWSpinLock::WriteHolder::WriteHolder):
3080 (folly::RWSpinLock::WriteHolder::operator =):
3081 (folly::RWSpinLock::WriteHolder::~WriteHolder):
3082 (folly::RWSpinLock::WriteHolder::reset):
3083 (folly::RWSpinLock::WriteHolder::swap):
3084 (folly::detail::RWTicketIntTrait<64>::make128):
3085 (folly::detail::RWTicketIntTrait<64>::fromInteger):
3086 (folly::detail::RWTicketIntTrait<64>::toInteger):
3087 (folly::detail::RWTicketIntTrait<64>::addParallel):
3088 (folly::detail::RWTicketIntTrait<32>::make128):
3089 (folly::detail::RWTicketIntTrait<32>::fromInteger):
3090 (folly::detail::RWTicketIntTrait<32>::toInteger):
3091 (folly::detail::RWTicketIntTrait<32>::addParallel):
3092 (folly::RWTicketSpinLockT::load_acquire):
3093 (folly::RWTicketSpinLockT::store_release):
3094 (folly::RWTicketSpinLockT::RWTicketSpinLockT):
3095 (folly::RWTicketSpinLockT::lock):
3096 (folly::RWTicketSpinLockT::try_lock):
3097 (folly::RWTicketSpinLockT::writeLockAggressive):
3098 (folly::RWTicketSpinLockT::writeLockNice):
3099 (folly::RWTicketSpinLockT::unlock_and_lock_shared):
3100 (folly::RWTicketSpinLockT::unlock):
3101 (folly::RWTicketSpinLockT::lock_shared):
3102 (folly::RWTicketSpinLockT::try_lock_shared):
3103 (folly::RWTicketSpinLockT::unlock_shared):
3104 (folly::RWTicketSpinLockT::ReadHolder::ReadHolder):
3105 (folly::RWTicketSpinLockT::ReadHolder::~ReadHolder):
3106 (folly::RWTicketSpinLockT::ReadHolder::reset):
3107 (folly::RWTicketSpinLockT::ReadHolder::swap):
3108 (folly::RWTicketSpinLockT::WriteHolder::WriteHolder):
3109 (folly::RWTicketSpinLockT::WriteHolder::~WriteHolder):
3110 (folly::RWTicketSpinLockT::WriteHolder::reset):
3111 (folly::RWTicketSpinLockT::WriteHolder::swap):
3112 * StitchMarker/folly/folly/Random-inl.h: Added.
3113 (folly::detail::SeedData::SeedData):
3114 * StitchMarker/folly/folly/Random.cpp: Added.
3115 (folly::Random::secureRandom):
3116 (folly::ThreadLocalPRNG::LocalInstancePRNG::LocalInstancePRNG):
3117 (folly::ThreadLocalPRNG::ThreadLocalPRNG):
3118 (folly::ThreadLocalPRNG::getImpl):
3119 * StitchMarker/folly/folly/Random.h: Added.
3120 (folly::ThreadLocalPRNG::operator()):
3121 (folly::ThreadLocalPRNG::min):
3122 (folly::ThreadLocalPRNG::max):
3123 (folly::Random::secureRandom):
3124 (folly::Random::rand32):
3125 (folly::Random::rand64):
3126 (folly::Random::oneIn):
3127 (folly::Random::randDouble01):
3128 (folly::Random::randDouble):
3129 (folly::randomNumberSeed):
3130 * StitchMarker/folly/folly/Range.h: Added.
3131 (folly::detail::value_before):
3132 (folly::Range::Range):
3133 (folly::Range::clear):
3134 (folly::Range::assign):
3135 (folly::Range::reset):
3136 (folly::Range::size const):
3137 (folly::Range::walk_size const):
3138 (folly::Range::empty const):
3139 (folly::Range::data const):
3140 (folly::Range::start const):
3141 (folly::Range::begin const):
3142 (folly::Range::end const):
3143 (folly::Range::cbegin const):
3144 (folly::Range::cend const):
3145 (folly::Range::front):
3146 (folly::Range::back):
3147 (folly::Range::front const):
3148 (folly::Range::back const):
3149 (folly::Range::str const):
3150 (folly::Range::toString const):
3151 (folly::Range::fbstr const):
3152 (folly::Range::toFbstring const):
3153 (folly::Range::castToConst const):
3154 (folly::Range::compare const):
3155 (folly::Range::operator[]):
3156 (folly::Range::operator[] const):
3157 (folly::Range::at):
3158 (folly::Range::at const):
3159 (folly::Range::hash const):
3160 (folly::Range::advance):
3161 (folly::Range::subtract):
3162 (folly::Range::subpiece const):
3163 (folly::Range::uncheckedAdvance):
3164 (folly::Range::uncheckedSubtract):
3165 (folly::Range::uncheckedSubpiece const):
3166 (folly::Range::pop_front):
3167 (folly::Range::pop_back):
3168 (folly::Range::find const):
3169 (folly::Range::rfind const):
3170 (folly::Range::find_first_of const):
3171 (folly::Range::contains const):
3172 (folly::Range::swap):
3173 (folly::Range::startsWith const):
3174 (folly::Range::endsWith const):
3175 (folly::Range::equals const):
3176 (folly::Range::erase):
3177 (folly::Range::removePrefix):
3178 (folly::Range::removeSuffix):
3179 (folly::Range::replaceAt):
3180 (folly::Range::replaceAll):
3181 (folly::Range::split_step):
3182 (folly::swap):
3183 (folly::range):
3184 (folly::operator<<):
3185 (folly::operator==):
3186 (folly::operator<):
3187 (folly::operator>):
3188 (folly::operator<=):
3189 (folly::operator>=):
3190 (folly::qfind):
3191 (folly::detail::qfind_first_byte_of):
3192 (folly::qfind_first_of):
3193 (folly::AsciiCaseSensitive::operator() const):
3194 (folly::AsciiCaseInsensitive::operator() const):
3195 (folly::rfind):
3196 (folly::hasher<folly::Range<T::operator() const):
3197 * StitchMarker/folly/folly/ScopeGuard.cpp: Added.
3198 * StitchMarker/folly/folly/ScopeGuard.h: Added.
3199 (folly::ScopeGuardImpl::noexcept):
3200 (folly::ScopeGuardImpl::ScopeGuardImpl):
3201 (folly::ScopeGuardImpl::function_):
3202 (folly::noexcept):
3203 (folly::detail::ScopeGuardForNewException::ScopeGuardForNewException):
3204 (folly::detail::ScopeGuardForNewException::noexcept):
3205 (folly::detail::operator+):
3206 * StitchMarker/folly/folly/SharedMutex.cpp: Added.
3207 * StitchMarker/folly/folly/SharedMutex.h: Added.
3208 (folly::SharedMutexImpl::~SharedMutexImpl):
3209 (folly::SharedMutexImpl::lock):
3210 (folly::SharedMutexImpl::try_lock):
3211 (folly::SharedMutexImpl::try_lock_for):
3212 (folly::SharedMutexImpl::try_lock_until):
3213 (folly::SharedMutexImpl::unlock):
3214 (folly::SharedMutexImpl::lock_shared):
3215 (folly::SharedMutexImpl::try_lock_shared):
3216 (folly::SharedMutexImpl::try_lock_shared_for):
3217 (folly::SharedMutexImpl::try_lock_shared_until):
3218 (folly::SharedMutexImpl::unlock_shared):
3219 (folly::SharedMutexImpl::unlock_and_lock_shared):
3220 (folly::SharedMutexImpl::lock_upgrade):
3221 (folly::SharedMutexImpl::try_lock_upgrade):
3222 (folly::SharedMutexImpl::try_lock_upgrade_for):
3223 (folly::SharedMutexImpl::try_lock_upgrade_until):
3224 (folly::SharedMutexImpl::unlock_upgrade):
3225 (folly::SharedMutexImpl::unlock_upgrade_and_lock):
3226 (folly::SharedMutexImpl::unlock_upgrade_and_lock_shared):
3227 (folly::SharedMutexImpl::unlock_and_lock_upgrade):
3228 (folly::SharedMutexImpl::WaitForever::canBlock):
3229 (folly::SharedMutexImpl::WaitForever::canTimeOut):
3230 (folly::SharedMutexImpl::WaitForever::shouldTimeOut):
3231 (folly::SharedMutexImpl::WaitForever::doWait):
3232 (folly::SharedMutexImpl::WaitNever::canBlock):
3233 (folly::SharedMutexImpl::WaitNever::canTimeOut):
3234 (folly::SharedMutexImpl::WaitNever::shouldTimeOut):
3235 (folly::SharedMutexImpl::WaitNever::doWait):
3236 (folly::SharedMutexImpl::WaitForDuration::WaitForDuration):
3237 (folly::SharedMutexImpl::WaitForDuration::deadline):
3238 (folly::SharedMutexImpl::WaitForDuration::canBlock):
3239 (folly::SharedMutexImpl::WaitForDuration::canTimeOut):
3240 (folly::SharedMutexImpl::WaitForDuration::shouldTimeOut):
3241 (folly::SharedMutexImpl::WaitForDuration::doWait):
3242 (folly::SharedMutexImpl::WaitUntilDeadline::canBlock):
3243 (folly::SharedMutexImpl::WaitUntilDeadline::canTimeOut):
3244 (folly::SharedMutexImpl::WaitUntilDeadline::shouldTimeOut):
3245 (folly::SharedMutexImpl::WaitUntilDeadline::doWait):
3246 (folly::SharedMutexImpl::lockExclusiveImpl):
3247 (folly::SharedMutexImpl::waitForZeroBits):
3248 (folly::SharedMutexImpl::yieldWaitForZeroBits):
3249 (folly::SharedMutexImpl::futexWaitForZeroBits):
3250 (folly::SharedMutexImpl::wakeRegisteredWaiters):
3251 (folly::SharedMutexImpl::wakeRegisteredWaitersImpl):
3252 (folly::SharedMutexImpl::futexWakeAll):
3253 (folly::SharedMutexImpl::deferredReader):
3254 (folly::SharedMutexImpl::tokenfulSlotValue):
3255 (folly::SharedMutexImpl::tokenlessSlotValue):
3256 (folly::SharedMutexImpl::slotValueIsThis):
3257 (folly::SharedMutexImpl::applyDeferredReaders):
3258 (folly::SharedMutexImpl::lockSharedImpl):
3259 (folly::SharedMutexImpl::cleanupTokenlessSharedDeferred):
3260 (folly::SharedMutexImpl::tryUnlockSharedDeferred):
3261 (folly::SharedMutexImpl::unlockSharedInline):
3262 (folly::SharedMutexImpl::lockUpgradeImpl):
3263 (folly::SharedMutexImpl::ReadHolder::ReadHolder):
3264 (folly::SharedMutexImpl::ReadHolder::~ReadHolder):
3265 (folly::SharedMutexImpl::ReadHolder::unlock):
3266 (folly::SharedMutexImpl::UpgradeHolder::UpgradeHolder):
3267 (folly::SharedMutexImpl::UpgradeHolder::~UpgradeHolder):
3268 (folly::SharedMutexImpl::UpgradeHolder::unlock):
3269 (folly::SharedMutexImpl::WriteHolder::WriteHolder):
3270 (folly::SharedMutexImpl::WriteHolder::~WriteHolder):
3271 (folly::SharedMutexImpl::WriteHolder::unlock):
3272 (folly::SharedMutexImpl::acquireRead):
3273 (folly::SharedMutexImpl::acquireReadWrite):
3274 (folly::SharedMutexImpl::releaseRead):
3275 (folly::SharedMutexImpl::releaseReadWrite):
3276 (folly::tryUnlockTokenlessSharedDeferred):
3277 (folly::lockSharedImpl):
3278 * StitchMarker/folly/folly/Singleton-inl.h: Added.
3279 (folly::detail::SingletonHolder<T>::singleton):
3280 (folly::detail::SingletonHolder<T>::registerSingleton):
3281 (folly::detail::SingletonHolder<T>::registerSingletonMock):
3282 (folly::detail::SingletonHolder<T>::get):
3283 (folly::detail::SingletonHolder<T>::get_weak):
3284 (folly::detail::SingletonHolder<T>::try_get):
3285 (folly::detail::SingletonHolder<T>::try_get_fast):
3286 (folly::detail::SingletonHolder<T>::hasLiveInstance):
3287 (folly::detail::SingletonHolder<T>::preDestroyInstance):
3288 (folly::detail::SingletonHolder<T>::destroyInstance):
3289 (folly::detail::SingletonHolder<T>::SingletonHolder):
3290 (folly::detail::SingletonHolder<T>::creationStarted):
3291 (folly::detail::SingletonHolder<T>::createInstance):
3292 * StitchMarker/folly/folly/Singleton.h: Added.
3293 (folly::detail::TypeDescriptor::TypeDescriptor):
3294 (folly::detail::TypeDescriptor::operator=):
3295 (folly::detail::TypeDescriptor::name const):
3296 (folly::detail::TypeDescriptor::operator== const):
3297 (folly::detail::TypeDescriptorHasher::operator() const):
3298 (folly::detail::SingletonHolderBase::SingletonHolderBase):
3299 (folly::detail::SingletonHolderBase::type const):
3300 (folly::SingletonVault::ScopedExpunger::ScopedExpunger):
3301 (folly::SingletonVault::ScopedExpunger::~ScopedExpunger):
3302 (folly::SingletonVault::ScopedExpunger::expunge):
3303 (folly::SingletonVault::SingletonVault):
3304 (folly::SingletonVault::registeredSingletonCount const):
3305 (folly::SingletonVault::livingSingletonCount const):
3306 (folly::SingletonVault::singleton):
3307 (folly::SingletonVault::stackTraceGetter):
3308 (folly::SingletonVault::setType):
3309 (folly::SingletonVault::stateCheck):
3310 (folly::LeakySingleton::LeakySingleton):
3311 (folly::LeakySingleton::get):
3312 (folly::LeakySingleton::make_mock):
3313 (folly::LeakySingleton::Entry::Entry):
3314 (folly::LeakySingleton::entryInstance):
3315 (folly::LeakySingleton::instance):
3316 (folly::LeakySingleton::createInstance):
3317 * StitchMarker/folly/folly/SingletonThreadLocal.h: Added.
3318 (folly::SingletonThreadLocal::SingletonThreadLocal):
3319 (folly::SingletonThreadLocal::get):
3320 (folly::SingletonThreadLocal::localPtr):
3321 (folly::SingletonThreadLocal::Wrapper::Wrapper):
3322 (folly::SingletonThreadLocal::Wrapper::~Wrapper):
3323 (folly::SingletonThreadLocal::Wrapper::operator*):
3324 * StitchMarker/folly/folly/String-inl.h: Added.
3325 (folly::cEscape):
3326 (folly::cUnescape):
3327 (folly::uriEscape):
3328 (folly::uriUnescape):
3329 (folly::detail::delimSize):
3330 (folly::detail::atDelim):
3331 (folly::detail::delimFront):
3332 (folly::detail::internalSplit):
3333 (folly::detail::prepareDelim):
3334 (folly::detail::splitFixed):
3335 (folly::split):
3336 (folly::splitTo):
3337 (folly::sizeof):
3338 (folly::detail::internalJoinAppend):
3339 (folly::detail::internalJoin):
3340 (folly::join):
3341 (folly::backslashify):
3342 (folly::humanify):
3343 (folly::hexlify):
3344 (folly::unhexlify):
3345 (folly::hexDump):
3346 * StitchMarker/folly/folly/String.cpp: Added.
3347 (folly::is_oddspace):
3348 (folly::ltrimWhitespace):
3349 (folly::rtrimWhitespace):
3350 (folly::stringPrintf):
3351 (folly::stringVPrintf):
3352 (folly::stringAppendf):
3353 (folly::stringVAppendf):
3354 (folly::prettyPrint):
3355 (folly::prettyToDouble):
3356 (folly::hexDump):
3357 (folly::errnoStr):
3358 (folly::toLowerAscii):
3359 (folly::detail::hexDumpLine):
3360 (folly::stripLeftMargin):
3361 * StitchMarker/folly/folly/String.h: Added.
3362 (folly::toStdString):
3363 (folly::cEscape):
3364 (folly::cUnescape):
3365 (folly::uriEscape):
3366 (folly::uriUnescape):
3367 (folly::backslashify):
3368 (folly::humanify):
3369 (folly::hexlify):
3370 (folly::unhexlify):
3371 (folly::decltype):
3372 (folly::join):
3373 (folly::trimWhitespace):
3374 (folly::skipWhitespace):
3375 (folly::toLowerAscii):
3376 (folly::UTF8Range::UTF8Range):
3377 * StitchMarker/folly/folly/Synchronized.h: Added.
3378 (folly::Synchronized::Synchronized):
3379 (folly::Synchronized::noexcept):
3380 (folly::Synchronized::operator=):
3381 (folly::Synchronized::contextualLock):
3382 (folly::Synchronized::contextualLock const):
3383 (folly::Synchronized::contextualRLock const):
3384 (folly::Synchronized::operator->):
3385 (folly::Synchronized::operator-> const):
3386 (folly::Synchronized::timedAcquire):
3387 (folly::Synchronized::timedAcquire const):
3388 (folly::Synchronized::asConst const):
3389 (folly::Synchronized::swap):
3390 (folly::Synchronized::copy const):
3391 (folly::LockedPtrBase::~LockedPtrBase):
3392 (folly::LockedPtrBase::unlock):
3393 (folly::LockedPtrBase::LockedPtrBase):
3394 (folly::LockedPtrBase::getSynchronized):
3395 (folly::LockedPtrBase::releaseLock):
3396 (folly::LockedPtrBase::reacquireLock):
3397 (folly::ScopedUnlocker::ScopedUnlocker):
3398 (folly::ScopedUnlocker::~ScopedUnlocker):
3399 (folly::ScopedUnlocker::getSynchronized const):
3400 (folly::LockedPtr::LockedPtr):
3401 (folly::LockedPtr::~LockedPtr):
3402 (folly::LockedPtr::isNull const):
3403 (folly::LockedPtr::operator bool const):
3404 (folly::LockedPtr::operator-> const):
3405 (folly::LockedPtr::operator* const):
3406 (folly::LockedPtr::scopedUnlock):
3407 (folly::LockedPtr::moveFromUpgradeToWrite):
3408 (folly::LockedPtr::moveFromWriteToUpgrade):
3409 (folly::LockedPtr::moveFromUpgradeToRead):
3410 (folly::LockedPtr::moveFromWriteToRead):
3411 (folly::LockedGuardPtr::LockedGuardPtr):
3412 (folly::LockedGuardPtr::~LockedGuardPtr):
3413 (folly::LockedGuardPtr::operator-> const):
3414 (folly::LockedGuardPtr::operator* const):
3415 (folly::acquireLocked):
3416 (folly::acquireLockedPair):
3417 (folly::swap):
3418 * StitchMarker/folly/folly/ThreadId.h: Added.
3419 (folly::getCurrentThreadID):
3420 (folly::getOSThreadID):
3421 * StitchMarker/folly/folly/ThreadLocal.h: Added.
3422 (folly::ThreadLocal::ThreadLocal):
3423 (folly::ThreadLocal::get const):
3424 (folly::ThreadLocal::operator-> const):
3425 (folly::ThreadLocal::operator* const):
3426 (folly::ThreadLocal::reset):
3427 (folly::ThreadLocal::accessAllThreads const):
3428 (folly::ThreadLocal::makeTlp const):
3429 (folly::ThreadLocalPtr::ThreadLocalPtr):
3430 (folly::ThreadLocalPtr::operator=):
3431 (folly::ThreadLocalPtr::~ThreadLocalPtr):
3432 (folly::ThreadLocalPtr::get const):
3433 (folly::ThreadLocalPtr::operator-> const):
3434 (folly::ThreadLocalPtr::operator* const):
3435 (folly::ThreadLocalPtr::release):
3436 (folly::ThreadLocalPtr::reset):
3437 (folly::ThreadLocalPtr::operator bool const):
3438 (folly::ThreadLocalPtr::Accessor::Iterator::increment):
3439 (folly::ThreadLocalPtr::Accessor::Iterator::decrement):
3440 (folly::ThreadLocalPtr::Accessor::Iterator::dereference const):
3441 (folly::ThreadLocalPtr::Accessor::Iterator::equal const):
3442 (folly::ThreadLocalPtr::Accessor::Iterator::Iterator):
3443 (folly::ThreadLocalPtr::Accessor::Iterator::valid const):
3444 (folly::ThreadLocalPtr::Accessor::Iterator::incrementToValid):
3445 (folly::ThreadLocalPtr::Accessor::Iterator::decrementToValid):
3446 (folly::ThreadLocalPtr::Accessor::~Accessor):
3447 (folly::ThreadLocalPtr::Accessor::begin const):
3448 (folly::ThreadLocalPtr::Accessor::end const):
3449 (folly::ThreadLocalPtr::Accessor::Accessor):
3450 (folly::ThreadLocalPtr::Accessor::release):
3451 (folly::ThreadLocalPtr::accessAllThreads const):
3452 (folly::ThreadLocalPtr::destroy):
3453 * StitchMarker/folly/folly/Traits.h: Added.
3454 (folly::Ignore::Ignore):
3455 (folly::Ignore::operator= const):
3456 (folly::Bools::size):
3457 (folly::detail::is_negative_impl::check):
3458 (folly::detail::less_than_impl):
3459 (folly::detail::greater_than_impl):
3460 (folly::is_negative):
3461 (folly::is_non_positive):
3462 (folly::is_positive):
3463 (folly::is_non_negative):
3464 (folly::less_than):
3465 (folly::greater_than):
3466 * StitchMarker/folly/folly/UncaughtExceptions.h: Added.
3467 * StitchMarker/folly/folly/Unit.h: Added.
3468 (folly::Unit::operator== const):
3469 (folly::Unit::operator!= const):
3470 * StitchMarker/folly/folly/Utility.h: Added.
3471 (folly::noexcept):
3472 (folly::in_place):
3473 (folly::in_place_type):
3474 (folly::in_place_index):
3475 * StitchMarker/folly/folly/concurrency/CacheLocality.cpp: Added.
3476 (folly::getSystemLocalityInfo):
3477 (folly::CacheLocality::system<std::atomic>):
3478 (folly::parseLeadingNumber):
3479 (folly::CacheLocality::readFromSysfsTree):
3480 (folly::CacheLocality::readFromSysfs):
3481 (folly::CacheLocality::uniform):
3482 (folly::Getcpu::resolveVdsoFunc):
3483 (folly::SimpleAllocator::SimpleAllocator):
3484 (folly::sz_):
3485 (folly::SimpleAllocator::~SimpleAllocator):
3486 (folly::SimpleAllocator::allocateHard):
3487 * StitchMarker/folly/folly/concurrency/CacheLocality.h: Added.
3488 (folly::SequentialThreadId::get):
3489 (folly::HashingThreadId::get):
3490 (folly::FallbackGetcpu::getcpu):
3491 (folly::AccessSpreader::current):
3492 (folly::AccessSpreader::pickGetcpuFunc):
3493 (folly::AccessSpreader::degenerateGetcpu):
3494 (folly::AccessSpreader::initialize):
3495 (folly::SimpleAllocator::allocate):
3496 (folly::SimpleAllocator::deallocate):
3497 (folly::CoreAllocator::Allocator::sizeClass):
3498 (folly::CoreAllocator::Allocator::allocate):
3499 (folly::CoreAllocator::Allocator::deallocate):
3500 (folly::CoreAllocator::get):
3501 (folly::getCoreAllocator):
3502 (folly::getCoreAllocatorStl):
3503 * StitchMarker/folly/folly/concurrency/test/CacheLocalityBenchmark.cpp: Added.
3504 (BENCHMARK):
3505 (contentionAtWidth):
3506 (atomicIncrBaseline):
3507 (contentionAtWidthGetcpu):
3508 (contentionAtWidthThreadLocal):
3509 (contentionAtWidthPthreadSelf):
3510 (main):
3511 * StitchMarker/folly/folly/detail/AtomicUtils.h: Added.
3512 (folly::detail::default_failure_memory_order):
3513 * StitchMarker/folly/folly/detail/BitIteratorDetail.h: Added.
3514 (folly::bititerator_detail::BitReference::BitReference):
3515 (folly::bititerator_detail::BitReference::operator bool const):
3516 (folly::bititerator_detail::BitReference::operator=):
3517 (folly::bititerator_detail::BitReference::set):
3518 (folly::bititerator_detail::BitReference::clear):
3519 (folly::bititerator_detail::BitReference::flip):
3520 * StitchMarker/folly/folly/detail/FileUtilDetail.h: Added.
3521 (folly::fileutil_detail::wrapNoInt):
3522 (folly::fileutil_detail::incr):
3523 (folly::fileutil_detail::wrapFull):
3524 (folly::fileutil_detail::wrapvFull):
3525 * StitchMarker/folly/folly/detail/Futex.cpp: Added.
3526 (folly::detail::Futex<std::atomic>::futexWake):
3527 (folly::detail::Futex<EmulatedFutexAtomic>::futexWake):
3528 (folly::detail::Futex<std::atomic>::futexWaitImpl):
3529 (folly::detail::Futex<EmulatedFutexAtomic>::futexWaitImpl):
3530 * StitchMarker/folly/folly/detail/Futex.h: Added.
3531 (folly::detail::Futex::Futex):
3532 (folly::detail::Futex::futexWait):
3533 (folly::detail::Futex::futexWaitUntil):
3534 * StitchMarker/folly/folly/detail/MallocImpl.cpp: Added.
3535 * StitchMarker/folly/folly/detail/MallocImpl.h: Added.
3536 * StitchMarker/folly/folly/detail/MemoryIdler.h: Added.
3537 (folly::detail::MemoryIdler::getVariationTimeout):
3538 (folly::detail::MemoryIdler::futexWait):
3539 * StitchMarker/folly/folly/detail/RangeCommon.h: Added.
3540 (folly::detail::StringPieceLite::StringPieceLite):
3541 (folly::detail::StringPieceLite::data const):
3542 (folly::detail::StringPieceLite::begin const):
3543 (folly::detail::StringPieceLite::end const):
3544 (folly::detail::StringPieceLite::size const):
3545 (folly::detail::StringPieceLite::empty const):
3546 (folly::detail::StringPieceLite::operator[] const):
3547 (folly::detail::StringPieceLite::operator Range const):
3548 (folly::detail::qfind_first_byte_of_std):
3549 (folly::detail::qfind_first_byte_of_nosse):
3550 * StitchMarker/folly/folly/detail/RangeSse42.h: Added.
3551 * StitchMarker/folly/folly/detail/Sleeper.h: Added.
3552 (folly::detail::Sleeper::Sleeper):
3553 (folly::detail::Sleeper::wait):
3554 * StitchMarker/folly/folly/detail/StaticSingletonManager.cpp: Added.
3555 (folly::detail::StaticSingletonManager::instance):
3556 * StitchMarker/folly/folly/detail/StaticSingletonManager.h: Added.
3557 (folly::detail::StaticSingletonManager::create):
3558 (folly::detail::StaticSingletonManager::StaticSingletonManager):
3559 (folly::detail::StaticSingletonManager::EntryIf::~EntryIf):
3560 (folly::detail::createGlobal):
3561 * StitchMarker/folly/folly/detail/ThreadLocalDetail.cpp: Added.
3562 (folly::threadlocal_detail::StaticMetaBase::StaticMetaBase):
3563 (folly::threadlocal_detail::StaticMetaBase::onThreadExit):
3564 (folly::threadlocal_detail::StaticMetaBase::allocate):
3565 (folly::threadlocal_detail::StaticMetaBase::destroy):
3566 (folly::threadlocal_detail::StaticMetaBase::reserve):
3567 (folly::threadlocal_detail::StaticMetaBase::initAtFork):
3568 (folly::threadlocal_detail::StaticMetaBase::registerAtFork):
3569 * StitchMarker/folly/folly/detail/ThreadLocalDetail.h: Added.
3570 (folly::threadlocal_detail::ElementWrapper::dispose):
3571 (folly::threadlocal_detail::ElementWrapper::release):
3572 (folly::threadlocal_detail::ElementWrapper::set):
3573 (folly::threadlocal_detail::ElementWrapper::cleanup):
3574 (folly::threadlocal_detail::PthreadKeyUnregister::~PthreadKeyUnregister):
3575 (folly::threadlocal_detail::PthreadKeyUnregister::registerKey):
3576 (folly::threadlocal_detail::PthreadKeyUnregister::PthreadKeyUnregister):
3577 (folly::threadlocal_detail::PthreadKeyUnregister::registerKeyImpl):
3578 (folly::threadlocal_detail::StaticMetaBase::EntryID::EntryID):
3579 (folly::threadlocal_detail::StaticMetaBase::EntryID::operator=):
3580 (folly::threadlocal_detail::StaticMetaBase::EntryID::getOrInvalid):
3581 (folly::threadlocal_detail::StaticMetaBase::EntryID::getOrAllocate):
3582 (folly::threadlocal_detail::StaticMetaBase::~StaticMetaBase):
3583 (folly::threadlocal_detail::StaticMetaBase::push_back):
3584 (folly::threadlocal_detail::StaticMetaBase::erase):
3585 (folly::threadlocal_detail::StaticMeta::StaticMeta):
3586 (folly::threadlocal_detail::StaticMeta::instance):
3587 (folly::threadlocal_detail::StaticMeta::get):
3588 (folly::threadlocal_detail::StaticMeta::getThreadEntrySlow):
3589 (folly::threadlocal_detail::StaticMeta::getThreadEntry):
3590 (folly::threadlocal_detail::StaticMeta::preFork):
3591 (folly::threadlocal_detail::StaticMeta::onForkParent):
3592 (folly::threadlocal_detail::StaticMeta::onForkChild):
3593 * StitchMarker/folly/folly/detail/UncaughtExceptionCounter.h: Added.
3594 * StitchMarker/folly/folly/experimental/AsymmetricMemoryBarrier.cpp: Added.
3595 (folly::asymmetricHeavyBarrier):
3596 * StitchMarker/folly/folly/experimental/AsymmetricMemoryBarrier.h: Added.
3597 (folly::asymmetricLightBarrier):
3598 * StitchMarker/folly/folly/experimental/ReadMostlySharedPtr.h: Added.
3599 (folly::detail::ReadMostlySharedPtrCore::get):
3600 (folly::detail::ReadMostlySharedPtrCore::getShared):
3601 (folly::detail::ReadMostlySharedPtrCore::incref):
3602 (folly::detail::ReadMostlySharedPtrCore::decref):
3603 (folly::detail::ReadMostlySharedPtrCore::increfWeak):
3604 (folly::detail::ReadMostlySharedPtrCore::decrefWeak):
3605 (folly::detail::ReadMostlySharedPtrCore::useCount const):
3606 (folly::detail::ReadMostlySharedPtrCore::ReadMostlySharedPtrCore):
3607 (folly::ReadMostlyMainPtr::ReadMostlyMainPtr):
3608 (folly::ReadMostlyMainPtr::operator== const):
3609 (folly::ReadMostlyMainPtr::reset):
3610 (folly::ReadMostlyMainPtr::get const):
3611 (folly::ReadMostlyMainPtr::getStdShared const):
3612 (folly::ReadMostlyMainPtr::operator* const):
3613 (folly::ReadMostlyMainPtr::operator-> const):
3614 (folly::ReadMostlyMainPtr::getShared const):
3615 (folly::ReadMostlyMainPtr::operator bool const):
3616 (folly::ReadMostlyWeakPtr::ReadMostlyWeakPtr):
3617 (folly::ReadMostlyWeakPtr::operator=):
3618 (folly::ReadMostlyWeakPtr::lock):
3619 (folly::ReadMostlyWeakPtr::reset):
3620 (folly::ReadMostlySharedPtr::ReadMostlySharedPtr):
3621 (folly::ReadMostlySharedPtr::operator=):
3622 (folly::ReadMostlySharedPtr::operator== const):
3623 (folly::ReadMostlySharedPtr::reset):
3624 (folly::ReadMostlySharedPtr::get const):
3625 (folly::ReadMostlySharedPtr::getStdShared const):
3626 (folly::ReadMostlySharedPtr::operator* const):
3627 (folly::ReadMostlySharedPtr::operator-> const):
3628 (folly::ReadMostlySharedPtr::use_count const):
3629 (folly::ReadMostlySharedPtr::unique const):
3630 (folly::ReadMostlySharedPtr::operator bool const):
3631 (folly::operator==):
3632 (folly::operator!=):
3633 * StitchMarker/folly/folly/experimental/TLRefCount.h: Added.
3634 (folly::TLRefCount::TLRefCount):
3635 (folly::TLRefCount::collectGuard_):
3636 (folly::TLRefCount::operator* const):
3637 (folly::TLRefCount::useGlobal):
3638 (folly::TLRefCount::LocalRefCount::LocalRefCount):
3639 (folly::TLRefCount::LocalRefCount::~LocalRefCount):
3640 (folly::TLRefCount::LocalRefCount::collect):
3641 (folly::TLRefCount::LocalRefCount::operator++):
3642 (folly::TLRefCount::LocalRefCount::operator--):
3643 (folly::TLRefCount::LocalRefCount::update):
3644 * StitchMarker/folly/folly/experimental/flat_combining/FlatCombining.h: Added.
3645 (folly::FlatCombining::Rec::Rec):
3646 (folly::FlatCombining::Rec::setValid):
3647 (folly::FlatCombining::Rec::clearValid):
3648 (folly::FlatCombining::Rec::isValid const):
3649 (folly::FlatCombining::Rec::setDone):
3650 (folly::FlatCombining::Rec::clearDone):
3651 (folly::FlatCombining::Rec::isDone const):
3652 (folly::FlatCombining::Rec::awaitDone):
3653 (folly::FlatCombining::Rec::setDisconnected):
3654 (folly::FlatCombining::Rec::clearDisconnected):
3655 (folly::FlatCombining::Rec::isDisconnected const):
3656 (folly::FlatCombining::Rec::setIndex):
3657 (folly::FlatCombining::Rec::getIndex const):
3658 (folly::FlatCombining::Rec::setNext):
3659 (folly::FlatCombining::Rec::getNext const):
3660 (folly::FlatCombining::Rec::setLast):
3661 (folly::FlatCombining::Rec::getLast const):
3662 (folly::FlatCombining::Rec::getReq):
3663 (folly::FlatCombining::Rec::setFn):
3664 (folly::FlatCombining::Rec::clearFn):
3665 (folly::FlatCombining::Rec::getFn):
3666 (folly::FlatCombining::Rec::complete):
3667 (folly::FlatCombining::FlatCombining):
3668 (folly::FlatCombining::~FlatCombining):
3669 (folly::FlatCombining::drainAll):
3670 (folly::FlatCombining::acquireExclusive):
3671 (folly::FlatCombining::tryExclusive):
3672 (folly::FlatCombining::releaseExclusive):
3673 (folly::FlatCombining::holdLock):
3674 (folly::FlatCombining::requestNoFC):
3675 (folly::FlatCombining::requestFC):
3676 (folly::FlatCombining::allocRec):
3677 (folly::FlatCombining::freeRec):
3678 (folly::FlatCombining::getNumUncombined const):
3679 (folly::FlatCombining::getNumCombined const):
3680 (folly::FlatCombining::getNumPasses const):
3681 (folly::FlatCombining::getNumSessions const):
3682 (folly::FlatCombining::requestOp):
3683 (folly::FlatCombining::pushRec):
3684 (folly::FlatCombining::getRecsHead):
3685 (folly::FlatCombining::nextIndex):
3686 (folly::FlatCombining::clearPending):
3687 (folly::FlatCombining::setPending):
3688 (folly::FlatCombining::isPending const):
3689 (folly::FlatCombining::awaitPending):
3690 (folly::FlatCombining::combiningSession):
3691 (folly::FlatCombining::tryCombining):
3692 (folly::FlatCombining::dedicatedCombining):
3693 (folly::FlatCombining::awaitDone):
3694 (folly::FlatCombining::awaitDoneTryLock):
3695 (folly::FlatCombining::shutdown):
3696 (folly::FlatCombining::combinedOp):
3697 (folly::FlatCombining::processReq):
3698 (folly::FlatCombining::combiningPass):
3699 * StitchMarker/folly/folly/experimental/flat_combining/test/FlatCombiningBenchmark.cpp: Added.
3700 (BENCHMARK_RELATIVE):
3701 (benchmarkSetup):
3702 (TEST):
3703 (test):
3704 * StitchMarker/folly/folly/experimental/flat_combining/test/FlatCombiningExamples.h: Added.
3705 (folly::Data::Data):
3706 (folly::Data::getVal):
3707 (folly::Data::add):
3708 (folly::Data::fetchAdd):
3709 (folly::FcSimpleExample::FcSimpleExample):
3710 (folly::FcSimpleExample::getVal):
3711 (folly::FcSimpleExample::addNoFC):
3712 (folly::FcSimpleExample::add):
3713 (folly::FcSimpleExample::fetchAddNoFC):
3714 (folly::FcSimpleExample::fetchAdd):
3715 (folly::Req::setType):
3716 (folly::Req::getType):
3717 (folly::Req::setVal):
3718 (folly::Req::getVal):
3719 (folly::Req::setRes):
3720 (folly::Req::getRes):
3721 (folly::FcCustomExample::FcCustomExample):
3722 (folly::FcCustomExample::getVal):
3723 (folly::FcCustomExample::addNoFC):
3724 (folly::FcCustomExample::add):
3725 (folly::FcCustomExample::fetchAddNoFC):
3726 (folly::FcCustomExample::fetchAdd):
3727 (folly::FcCustomExample::combinedOp):
3728 * StitchMarker/folly/folly/experimental/flat_combining/test/FlatCombiningTestHelpers.h: Added.
3729 (folly::test::doWork):
3730 (folly::test::fc_test):
3731 (folly::test::run_test):
3732 * StitchMarker/folly/folly/experimental/hazptr/bench/HazptrBench-Amb-Tc.cpp: Added.
3733 (main):
3734 * StitchMarker/folly/folly/experimental/hazptr/bench/HazptrBench-NoAmb-NoTc.cpp: Added.
3735 (main):
3736 * StitchMarker/folly/folly/experimental/hazptr/bench/HazptrBench-NoAmb-Tc.cpp: Added.
3737 (main):
3738 * StitchMarker/folly/folly/experimental/hazptr/bench/HazptrBench-OneDomain.cpp: Added.
3739 (main):
3740 * StitchMarker/folly/folly/experimental/hazptr/bench/HazptrBench.h: Added.
3741 (folly::hazptr::run_once):
3742 (folly::hazptr::bench):
3743 (folly::hazptr::listBench):
3744 (folly::hazptr::holderBench):
3745 (folly::hazptr::retireBench):
3746 (folly::hazptr::benches):
3747 * StitchMarker/folly/folly/experimental/hazptr/debug.h: Added.
3748 * StitchMarker/folly/folly/experimental/hazptr/example/SWMRList.h: Added.
3749 (folly::hazptr::SWMRListSet::Reclaimer::operator()):
3750 (folly::hazptr::SWMRListSet::Node::Node):
3751 (folly::hazptr::SWMRListSet::Node::~Node):
3752 (folly::hazptr::SWMRListSet::locate_lower_bound const):
3753 (folly::hazptr::SWMRListSet::SWMRListSet):
3754 (folly::hazptr::SWMRListSet::~SWMRListSet):
3755 (folly::hazptr::SWMRListSet::add):
3756 (folly::hazptr::SWMRListSet::remove):
3757 (folly::hazptr::SWMRListSet::contains const):
3758 * StitchMarker/folly/folly/experimental/hazptr/hazptr-impl.h: Added.
3759 (folly::hazptr::D>::retire):
3760 (folly::hazptr::hazptr_holder::hazptr_holder):
3761 (folly::hazptr::hazptr_holder::~hazptr_holder):
3762 (folly::hazptr::default_hazptr_domain):
3763 (folly::hazptr::hazptr_obj::getObjPtr const):
3764 (folly::hazptr::hazptr_domain::~hazptr_domain):
3765 (folly::hazptr::hazptr_domain::hazptrAcquire):
3766 (folly::hazptr::hazptr_domain::pushRetired):
3767 (folly::hazptr::hazptr_domain::reachedThreshold):
3768 (folly::hazptr::hazptr_domain::objRetire):
3769 (folly::hazptr::hazptr_domain::tryBulkReclaim):
3770 (folly::hazptr::hazptr_domain::bulkReclaim):
3771 (folly::hazptr::hazptr_stats::~hazptr_stats):
3772 (folly::hazptr::hazptr_stats::light):
3773 (folly::hazptr::hazptr_stats::heavy):
3774 (folly::hazptr::hazptr_stats::seq_cst):
3775 (folly::hazptr::hazptr_stats):
3776 (folly::hazptr::hazptr_mb::light):
3777 (folly::hazptr::hazptr_mb::heavy):
3778 (folly::hazptr::hazptr_tc_entry::fill):
3779 (folly::hazptr::hazptr_tc_entry::get):
3780 (folly::hazptr::hazptr_tc_entry::evict):
3781 (folly::hazptr::hazptr_tc::hazptr_tc):
3782 (folly::hazptr::hazptr_tc::~hazptr_tc):
3783 (folly::hazptr::hazptr_tc::get):
3784 (folly::hazptr::hazptr_tc::put):
3785 (folly::hazptr::hazptr_tc):
3786 (folly::hazptr::hazptr_priv::hazptr_priv):
3787 (folly::hazptr::hazptr_priv::~hazptr_priv):
3788 (folly::hazptr::hazptr_priv::push):
3789 (folly::hazptr::hazptr_priv::pushAllToDomain):
3790 (folly::hazptr::hazptr_priv):
3791 * StitchMarker/folly/folly/experimental/hazptr/hazptr.h: Added.
3792 (folly::hazptr::hazptr_obj_base::retire):
3793 * StitchMarker/folly/folly/experimental/hazptr/memory_resource.h: Added.
3794 (folly::hazptr::default_mr_ptr):
3795 (folly::hazptr::get_default_resource):
3796 (folly::hazptr::set_default_resource):
3797 (folly::hazptr::new_delete_resource):
3798 * StitchMarker/folly/folly/experimental/logging/README.md: Added.
3799 * StitchMarker/folly/folly/experimental/test/ReadMostlySharedPtrBenchmark.cpp: Added.
3800 (benchmark):
3801 (BENCHMARK):
3802 (main):
3803 * StitchMarker/folly/folly/experimental/test/RefCountBenchmark.cpp: Added.
3804 (folly::shutdown):
3805 (folly::benchmark):
3806 (folly::BENCHMARK):
3807 (main):
3808 * StitchMarker/folly/folly/folly-config.h: Added.
3809 * StitchMarker/folly/folly/hash/SpookyHashV1.h: Added.
3810 (folly::hash::SpookyHashV1::Hash64):
3811 (folly::hash::SpookyHashV1::Hash32):
3812 (folly::hash::SpookyHashV1::Rot64):
3813 (folly::hash::SpookyHashV1::Mix):
3814 (folly::hash::SpookyHashV1::EndPartial):
3815 (folly::hash::SpookyHashV1::End):
3816 (folly::hash::SpookyHashV1::ShortMix):
3817 (folly::hash::SpookyHashV1::ShortEnd):
3818 * StitchMarker/folly/folly/hash/SpookyHashV2.h: Added.
3819 (folly::hash::SpookyHashV2::Hash64):
3820 (folly::hash::SpookyHashV2::Hash32):
3821 (folly::hash::SpookyHashV2::Rot64):
3822 (folly::hash::SpookyHashV2::Mix):
3823 (folly::hash::SpookyHashV2::EndPartial):
3824 (folly::hash::SpookyHashV2::End):
3825 (folly::hash::SpookyHashV2::ShortMix):
3826 (folly::hash::SpookyHashV2::ShortEnd):
3827 * StitchMarker/folly/folly/portability/Asm.h: Added.
3828 (folly::asm_volatile_memory):
3829 (folly::asm_volatile_pause):
3830 * StitchMarker/folly/folly/portability/BitsFunctexcept.h: Added.
3831 * StitchMarker/folly/folly/portability/Builtins.h: Added.
3832 (__builtin___clear_cache):
3833 (__builtin_clz):
3834 (__builtin_clzl):
3835 (__builtin_clzll):
3836 (__builtin_ctzll):
3837 (__builtin_ffs):
3838 (__builtin_ffsl):
3839 (__builtin_ffsll):
3840 (__builtin_popcount):
3841 (__builtin_popcountll):
3842 (__builtin_return_address):
3843 * StitchMarker/folly/folly/portability/Config.h: Added.
3844 * StitchMarker/folly/folly/portability/Constexpr.h: Added.
3845 (folly::constexpr_max):
3846 (folly::constexpr_min):
3847 (folly::constexpr_abs):
3848 (folly::detail::constexpr_strlen_internal):
3849 (folly::constexpr_strlen):
3850 * StitchMarker/folly/folly/portability/Fcntl.h: Added.
3851 * StitchMarker/folly/folly/portability/GFlags.h: Added.
3852 * StitchMarker/folly/folly/portability/GTest.h: Added.
3853 * StitchMarker/folly/folly/portability/IOVec.h: Added.
3854 * StitchMarker/folly/folly/portability/Malloc.h: Added.
3855 * StitchMarker/folly/folly/portability/Math.h: Added.
3856 (folly::nextafter):
3857 * StitchMarker/folly/folly/portability/Memory.cpp: Added.
3858 (folly::detail::aligned_malloc):
3859 (folly::detail::aligned_free):
3860 * StitchMarker/folly/folly/portability/Memory.h: Added.
3861 * StitchMarker/folly/folly/portability/PThread.h: Added.
3862 (operator==):
3863 (operator!=):
3864 (operator<):
3865 (operator!):
3866 (pthread_attr_getstack):
3867 (pthread_attr_setstack):
3868 (pthread_attr_getguardsize):
3869 (std::hash<pthread_t>::operator() const):
3870 * StitchMarker/folly/folly/portability/README.md: Added.
3871 * StitchMarker/folly/folly/portability/Semaphore.h: Added.
3872 * StitchMarker/folly/folly/portability/String.h: Added.
3873 * StitchMarker/folly/folly/portability/SysMembarrier.h: Added.
3874 * StitchMarker/folly/folly/portability/SysMman.h: Added.
3875 * StitchMarker/folly/folly/portability/SysResource.h: Added.
3876 * StitchMarker/folly/folly/portability/SysSyscall.h: Added.
3877 * StitchMarker/folly/folly/portability/SysTime.h: Added.
3878 * StitchMarker/folly/folly/portability/SysTypes.h: Added.
3879 * StitchMarker/folly/folly/portability/SysUio.h: Added.
3880 * StitchMarker/folly/folly/portability/Time.h: Added.
3881 * StitchMarker/folly/folly/portability/Unistd.h: Added.
3882 * StitchMarker/folly/folly/portability/Windows.h: Added.
3883 * StitchMarker/folly/folly/stats/Histogram-defs.h: Added.
3884 (folly::detail::BucketT>::HistogramBuckets):
3885 (folly::detail::BucketType>::getBucketIdx const):
3886 (folly::detail::BucketType>::computeTotalCount const):
3887 (folly::detail::BucketType>::getPercentileBucketIdx const):
3888 (folly::detail::BucketType>::getPercentileEstimate const):
3889 (folly::Histogram<T>::debugString const):
3890 (folly::Histogram<T>::toTSV const):
3891 * StitchMarker/folly/folly/stats/Histogram.h: Added.
3892 (folly::detail::HistogramBuckets::getBucketSize const):
3893 (folly::detail::HistogramBuckets::getMin const):
3894 (folly::detail::HistogramBuckets::getMax const):
3895 (folly::detail::HistogramBuckets::getNumBuckets const):
3896 (folly::detail::HistogramBuckets::getByValue):
3897 (folly::detail::HistogramBuckets::getByValue const):
3898 (folly::detail::HistogramBuckets::getByIndex):
3899 (folly::detail::HistogramBuckets::getByIndex const):
3900 (folly::detail::HistogramBuckets::getBucketMin const):
3901 (folly::detail::HistogramBuckets::getBucketMax const):
3902 (folly::detail::HistogramBuckets::begin const):
3903 (folly::detail::HistogramBuckets::begin):
3904 (folly::detail::HistogramBuckets::end const):
3905 (folly::detail::HistogramBuckets::end):
3906 (folly::Histogram::Histogram):
3907 (folly::Histogram::FOLLY_DISABLE_UNDEFINED_BEHAVIOR_SANITIZER):
3908 (folly::Histogram::removeRepeatedValue):
3909 (folly::Histogram::clear):
3910 (folly::Histogram::subtract):
3911 (folly::Histogram::merge):
3912 (folly::Histogram::copy):
3913 (folly::Histogram::getBucketSize const):
3914 (folly::Histogram::getMin const):
3915 (folly::Histogram::getMax const):
3916 (folly::Histogram::getNumBuckets const):
3917 (folly::Histogram::getBucketByIndex const):
3918 (folly::Histogram::getBucketMin const):
3919 (folly::Histogram::getBucketMax const):
3920 (folly::Histogram::computeTotalCount const):
3921 (folly::Histogram::getPercentileBucketIdx const):
3922 (folly::Histogram::getPercentileEstimate const):
3923 (folly::Histogram::CountFromBucket::operator() const):
3924 (folly::Histogram::AvgFromBucket::operator() const):
3925 * StitchMarker/folly/folly/stats/detail/Bucket.h: Added.
3926 (folly::detail::avgHelper):
3927 (folly::detail::rateHelper):
3928 (folly::detail::Bucket::Bucket):
3929 (folly::detail::Bucket::clear):
3930 (folly::detail::Bucket::add):
3931 (folly::detail::Bucket::operator+=):
3932 (folly::detail::Bucket::operator-=):
3933 (folly::detail::Bucket::avg const):
3934 * StitchMarker/folly/folly/test/BatonBenchmark.cpp: Added.
3935 (BENCHMARK):
3936 (main):
3937 * StitchMarker/folly/folly/test/BatonTestHelpers.h: Added.
3938 (folly::test::run_basic_test):
3939 (folly::test::run_pingpong_test):
3940 (folly::test::run_basic_timed_wait_tests):
3941 (folly::test::run_timed_wait_tmo_tests):
3942 (folly::test::run_timed_wait_regular_test):
3943 (folly::test::run_try_wait_tests):
3944 (folly::test::run_multi_producer_tests):
3945 * StitchMarker/folly/folly/test/CallOnceBenchmark.cpp: Added.
3946 (bm_impl):
3947 (BENCHMARK):
3948 (main):
3949 * StitchMarker/folly/folly/test/ConcurrentSkipListBenchmark.cpp: Added.
3950 (main):
3951 * StitchMarker/folly/folly/test/DeterministicSchedule.cpp: Added.
3952 (folly::test::DeterministicSchedule::DeterministicSchedule):
3953 (folly::test::DeterministicSchedule::~DeterministicSchedule):
3954 (folly::test::std::function<size_t):
3955 (folly::test::UniformSubset::UniformSubset):
3956 (folly::test::UniformSubset::operator()):
3957 (folly::test::UniformSubset::adjustPermSize):
3958 (folly::test::UniformSubset::shufflePrefix):
3959 (folly::test::DeterministicSchedule::beforeSharedAccess):
3960 (folly::test::DeterministicSchedule::afterSharedAccess):
3961 (folly::test::DeterministicSchedule::getRandNumber):
3962 (folly::test::DeterministicSchedule::getcpu):
3963 (folly::test::DeterministicSchedule::setAuxAct):
3964 (folly::test::DeterministicSchedule::setAuxChk):
3965 (folly::test::DeterministicSchedule::clearAuxChk):
3966 (folly::test::DeterministicSchedule::beforeThreadCreate):
3967 (folly::test::DeterministicSchedule::afterThreadCreate):
3968 (folly::test::DeterministicSchedule::beforeThreadExit):
3969 (folly::test::DeterministicSchedule::join):
3970 (folly::test::DeterministicSchedule::callAux):
3971 (folly::test::DeterministicSchedule::post):
3972 (folly::test::DeterministicSchedule::tryWait):
3973 (folly::test::DeterministicSchedule::wait):
3974 (folly::detail::Futex<DeterministicAtomic>::futexWaitImpl):
3975 (folly::detail::Futex<DeterministicAtomic>::futexWake):
3976 (folly::CacheLocality::system<test::DeterministicAtomic>):
3977 (folly::AccessSpreader<test::DeterministicAtomic>::pickGetcpuFunc):
3978 * StitchMarker/folly/folly/test/DeterministicSchedule.h: Added.
3979 (folly::test::DeterministicSchedule::thread):
3980 (folly::test::DeterministicMutex::lock):
3981 (folly::test::DeterministicMutex::try_lock):
3982 (folly::test::DeterministicMutex::unlock):
3983 * StitchMarker/folly/folly/test/ProducerConsumerQueueBenchmark.cpp: Added.
3984 (main):
3985 * StitchMarker/folly/folly/test/ThreadLocalBenchmark.cpp: Added.
3986 (PThreadGetSpecific::PThreadGetSpecific):
3987 (PThreadGetSpecific::get const):
3988 (PThreadGetSpecific::reset):
3989 (PThreadGetSpecific::OnThreadExit):
3990 (main):
3991 * StitchMarker/folly/glog/AUTHORS: Added.
3992 * StitchMarker/folly/glog/CONTRIBUTORS: Added.
3993 * StitchMarker/folly/glog/COPYING: Added.
3994 * StitchMarker/folly/glog/README: Added.
3995 * StitchMarker/folly/glog/src/base/commandlineflags.h: Added.
3996 * StitchMarker/folly/glog/src/base/googleinit.h: Added.
3997 (GoogleInitializer::GoogleInitializer):
3998 * StitchMarker/folly/glog/src/base/mutex.h: Added.
3999 (MUTEX_NAMESPACE::Mutex::WriterLock):
4000 (MUTEX_NAMESPACE::Mutex::WriterUnlock):
4001 (MUTEX_NAMESPACE::Mutex::AssertHeld):
4002 (MUTEX_NAMESPACE::Mutex::SetIsSafe):
4003 (MUTEX_NAMESPACE::Mutex::Mutex):
4004 (MUTEX_NAMESPACE::Mutex::~Mutex):
4005 (MUTEX_NAMESPACE::Mutex::Lock):
4006 (MUTEX_NAMESPACE::Mutex::Unlock):
4007 (MUTEX_NAMESPACE::Mutex::TryLock):
4008 (MUTEX_NAMESPACE::Mutex::ReaderLock):
4009 (MUTEX_NAMESPACE::Mutex::ReaderUnlock):
4010 (MUTEX_NAMESPACE::MutexLock::MutexLock):
4011 (MUTEX_NAMESPACE::MutexLock::~MutexLock):
4012 (MUTEX_NAMESPACE::ReaderMutexLock::ReaderMutexLock):
4013 (MUTEX_NAMESPACE::ReaderMutexLock::~ReaderMutexLock):
4014 (MUTEX_NAMESPACE::WriterMutexLock::WriterMutexLock):
4015 (MUTEX_NAMESPACE::WriterMutexLock::~WriterMutexLock):
4016 * StitchMarker/folly/glog/src/config.h: Added.
4017 * StitchMarker/folly/glog/src/config.h.cmake.in: Added.
4018 * StitchMarker/folly/glog/src/config.h.in: Added.
4019 * StitchMarker/folly/glog/src/glog/log_severity.h: Added.
4020 * StitchMarker/folly/glog/src/glog/logging.h: Added.
4021 (google::CheckOpString::CheckOpString):
4022 (google::CheckOpString::operator bool const):
4023 (google::GetReferenceableValue):
4024 (operator<<):
4025 (google::MakeCheckOpValueString):
4026 (google::MakeCheckOpString):
4027 (google::LogAtLevel):
4028 (google::CheckNotNull):
4029 (google::operator<<):
4030 * StitchMarker/folly/glog/src/glog/logging.h.in: Added.
4031 * StitchMarker/folly/glog/src/glog/raw_logging.h: Added.
4032 (google::RawLogStub__):
4033 * StitchMarker/folly/glog/src/glog/raw_logging.h.in: Added.
4034 * StitchMarker/folly/glog/src/glog/vlog_is_on.h: Added.
4035 * StitchMarker/folly/glog/src/glog/vlog_is_on.h.in: Added.
4036 * StitchMarker/folly/glog/src/logging.cc: Added.
4037 * StitchMarker/folly/glog/src/raw_logging.cc: Added.
4038 * StitchMarker/folly/glog/src/utilities.cc: Added.
4039 * StitchMarker/folly/glog/src/utilities.h: Added.
4040 (glog_internal_namespace_::sync_val_compare_and_swap):
4041 (glog_internal_namespace_::CrashReason::CrashReason):
4042 * StitchMarker/folly/glog/src/vlog_is_on.cc: Added.
4043 * StitchMarker/folly/gtest/README.md: Added.
4044 * StitchMarker/folly/gtest/googletest/LICENSE: Added.
4045 * StitchMarker/folly/gtest/googletest/README.md: Added.
4046 * StitchMarker/folly/gtest/googletest/include/gtest/gtest-death-test.h: Added.
4047 * StitchMarker/folly/gtest/googletest/include/gtest/gtest-message.h: Added.
4048 (testing::operator <<):
4049 (testing::internal::StreamableToString):
4050 * StitchMarker/folly/gtest/googletest/include/gtest/gtest-param-test.h: Added.
4051 (TEST_P):
4052 (testing::Range):
4053 (testing::ValuesIn):
4054 (testing::Values):
4055 (testing::Bool):
4056 (testing::Combine):
4057 * StitchMarker/folly/gtest/googletest/include/gtest/gtest-param-test.h.pump: Added.
4058 * StitchMarker/folly/gtest/googletest/include/gtest/gtest-printers.h: Added.
4059 (testing::internal2::TypeWithoutFormatter::PrintValue):
4060 (testing::internal2::operator<<):
4061 (testing_internal::DefaultPrintNonContainerTo):
4062 (testing::internal::FormatForComparison::Format):
4063 (testing::internal::FormatForComparisonFailureMessage):
4064 (testing::internal::DefaultPrintTo):
4065 (testing::internal::PrintTo):
4066 (testing::internal::PrintRawArrayTo):
4067 (testing::internal::UniversalPrinter::Print):
4068 (testing::internal::UniversalPrintArray):
4069 (testing::internal::UniversalPrinter<T::Print):
4070 (testing::internal::UniversalTersePrinter::Print):
4071 (testing::internal::UniversalTersePrinter<T::Print):
4072 (testing::internal::UniversalTersePrinter<char::Print):
4073 (testing::internal::UniversalTersePrinter<wchar_t::Print):
4074 (testing::internal::UniversalTersePrint):
4075 (testing::internal::UniversalPrint):
4076 (testing::internal::TuplePolicy::get):
4077 (testing::internal::TuplePrefixPrinter::PrintPrefixTo):
4078 (testing::internal::TuplePrefixPrinter::TersePrintPrefixToStrings):
4079 (testing::internal::TuplePrefixPrinter<0>::PrintPrefixTo):
4080 (testing::internal::TuplePrefixPrinter<0>::TersePrintPrefixToStrings):
4081 (testing::internal::PrintTupleTo):
4082 (testing::internal::UniversalTersePrintTupleFieldsToStrings):
4083 (testing::PrintToString):
4084 * StitchMarker/folly/gtest/googletest/include/gtest/gtest-spi.h: Added.
4085 * StitchMarker/folly/gtest/googletest/include/gtest/gtest-test-part.h: Added.
4086 (testing::TestPartResultReporterInterface::~TestPartResultReporterInterface):
4087 * StitchMarker/folly/gtest/googletest/include/gtest/gtest-typed-test.h: Added.
4088 (TYPED_TEST):
4089 (TYPED_TEST_P):
4090 * StitchMarker/folly/gtest/googletest/include/gtest/gtest.h: Added.
4091 (testing::TestProperty::TestProperty):
4092 (testing::TestProperty::key const):
4093 (testing::TestProperty::value const):
4094 (testing::TestProperty::SetValue):
4095 (testing::Environment::~Environment):
4096 (testing::Environment::SetUp):
4097 (testing::Environment::TearDown):
4098 (testing::Environment::Setup):
4099 (testing::TestEventListener::~TestEventListener):
4100 (testing::EmptyTestEventListener::OnTestProgramStart):
4101 (testing::EmptyTestEventListener::OnTestIterationStart):
4102 (testing::EmptyTestEventListener::OnEnvironmentsSetUpStart):
4103 (testing::EmptyTestEventListener::OnEnvironmentsSetUpEnd):
4104 (testing::EmptyTestEventListener::OnTestCaseStart):
4105 (testing::EmptyTestEventListener::OnTestStart):
4106 (testing::EmptyTestEventListener::OnTestPartResult):
4107 (testing::EmptyTestEventListener::OnTestEnd):
4108 (testing::EmptyTestEventListener::OnTestCaseEnd):
4109 (testing::EmptyTestEventListener::OnEnvironmentsTearDownStart):
4110 (testing::EmptyTestEventListener::OnEnvironmentsTearDownEnd):
4111 (testing::EmptyTestEventListener::OnTestIterationEnd):
4112 (testing::EmptyTestEventListener::OnTestProgramEnd):
4113 (testing::AddGlobalTestEnvironment):
4114 (testing::internal::CmpHelperEQFailure):
4115 (testing::internal::CmpHelperEQ):
4116 (testing::internal::EqHelper::Compare):
4117 (testing::internal::EqHelper<true>::Compare):
4118 (testing::internal::CmpHelperOpFailure):
4119 (testing::internal::CmpHelperFloatingPointEQ):
4120 (testing::WithParamInterface::~WithParamInterface):
4121 (testing::WithParamInterface::GetParam const):
4122 (testing::WithParamInterface::SetParam):
4123 (testing::StaticAssertTypeEq):
4124 (RUN_ALL_TESTS):
4125 * StitchMarker/folly/gtest/googletest/include/gtest/gtest_pred_impl.h: Added.
4126 (AssertPred1Helper):
4127 (AssertPred2Helper):
4128 (AssertPred3Helper):
4129 (AssertPred4Helper):
4130 (AssertPred5Helper):
4131 * StitchMarker/folly/gtest/googletest/include/gtest/gtest_prod.h: Added.
4132 * StitchMarker/folly/gtest/googletest/include/gtest/internal/custom/gtest-port.h: Added.
4133 * StitchMarker/folly/gtest/googletest/include/gtest/internal/custom/gtest-printers.h: Added.
4134 * StitchMarker/folly/gtest/googletest/include/gtest/internal/custom/gtest.h: Added.
4135 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h: Added.
4136 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-filepath.h: Added.
4137 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-internal.h: Added.
4138 (testing::internal::FloatingPoint::FloatingPoint):
4139 (testing::internal::FloatingPoint::ReinterpretBits):
4140 (testing::internal::FloatingPoint::Infinity):
4141 (testing::internal::FloatingPoint::bits const):
4142 (testing::internal::FloatingPoint::exponent_bits const):
4143 (testing::internal::FloatingPoint::fraction_bits const):
4144 (testing::internal::FloatingPoint::sign_bit const):
4145 (testing::internal::FloatingPoint::is_nan const):
4146 (testing::internal::FloatingPoint::AlmostEquals const):
4147 (testing::internal::FloatingPoint::SignAndMagnitudeToBiased):
4148 (testing::internal::FloatingPoint::DistanceBetweenSignAndMagnitudeNumbers):
4149 (testing::internal::FloatingPoint<float>::Max):
4150 (testing::internal::FloatingPoint<double>::Max):
4151 (testing::internal::GetTypeId):
4152 (testing::internal::TestFactoryBase::~TestFactoryBase):
4153 (testing::internal::TestFactoryBase::TestFactoryBase):
4154 (testing::internal::TestFactoryImpl::CreateTest):
4155 (testing::internal::CodeLocation::CodeLocation):
4156 (testing::internal::SkipComma):
4157 (testing::internal::GetPrefixUntilComma):
4158 (testing::internal::TypeParameterizedTest::Register):
4159 (testing::internal::TypeParameterizedTestCase::Register):
4160 (testing::internal::AlwaysFalse):
4161 (testing::internal::IsContainerTest):
4162 (testing::internal::ArrayEq):
4163 (testing::internal::ArrayAwareFind):
4164 (testing::internal::CopyArray):
4165 (testing::internal::NativeArray::NativeArray):
4166 (testing::internal::NativeArray::~NativeArray):
4167 (testing::internal::NativeArray::size const):
4168 (testing::internal::NativeArray::begin const):
4169 (testing::internal::NativeArray::end const):
4170 (testing::internal::NativeArray::operator== const):
4171 (testing::internal::NativeArray::InitCopy):
4172 (testing::internal::NativeArray::InitRef):
4173 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h: Added.
4174 (testing::internal::linked_ptr_internal::join_new):
4175 (testing::internal::linked_ptr_internal::GTEST_LOCK_EXCLUDED_):
4176 (testing::internal::linked_ptr::linked_ptr):
4177 (testing::internal::linked_ptr::~linked_ptr):
4178 (testing::internal::linked_ptr::operator=):
4179 (testing::internal::linked_ptr::reset):
4180 (testing::internal::linked_ptr::get const):
4181 (testing::internal::linked_ptr::operator-> const):
4182 (testing::internal::linked_ptr::operator* const):
4183 (testing::internal::linked_ptr::operator== const):
4184 (testing::internal::linked_ptr::operator!= const):
4185 (testing::internal::linked_ptr::depart):
4186 (testing::internal::linked_ptr::capture):
4187 (testing::internal::linked_ptr::copy):
4188 (testing::internal::operator==):
4189 (testing::internal::operator!=):
4190 (testing::internal::make_linked_ptr):
4191 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h: Added.
4192 (testing::internal::ValueArray1::ValueArray1):
4193 (testing::internal::ValueArray1::operator ParamGenerator<T> const):
4194 (testing::internal::ValueArray2::ValueArray2):
4195 (testing::internal::ValueArray2::operator ParamGenerator<T> const):
4196 (testing::internal::ValueArray3::ValueArray3):
4197 (testing::internal::ValueArray3::operator ParamGenerator<T> const):
4198 (testing::internal::ValueArray4::ValueArray4):
4199 (testing::internal::ValueArray4::operator ParamGenerator<T> const):
4200 (testing::internal::ValueArray5::ValueArray5):
4201 (testing::internal::ValueArray5::operator ParamGenerator<T> const):
4202 (testing::internal::ValueArray6::ValueArray6):
4203 (testing::internal::ValueArray6::operator ParamGenerator<T> const):
4204 (testing::internal::ValueArray7::ValueArray7):
4205 (testing::internal::ValueArray7::operator ParamGenerator<T> const):
4206 (testing::internal::ValueArray8::ValueArray8):
4207 (testing::internal::ValueArray8::operator ParamGenerator<T> const):
4208 (testing::internal::ValueArray9::ValueArray9):
4209 (testing::internal::ValueArray9::operator ParamGenerator<T> const):
4210 (testing::internal::ValueArray10::ValueArray10):
4211 (testing::internal::ValueArray10::operator ParamGenerator<T> const):
4212 (testing::internal::ValueArray11::ValueArray11):
4213 (testing::internal::ValueArray11::operator ParamGenerator<T> const):
4214 (testing::internal::ValueArray12::ValueArray12):
4215 (testing::internal::ValueArray12::operator ParamGenerator<T> const):
4216 (testing::internal::ValueArray13::ValueArray13):
4217 (testing::internal::ValueArray13::operator ParamGenerator<T> const):
4218 (testing::internal::ValueArray14::ValueArray14):
4219 (testing::internal::ValueArray14::operator ParamGenerator<T> const):
4220 (testing::internal::ValueArray15::ValueArray15):
4221 (testing::internal::ValueArray15::operator ParamGenerator<T> const):
4222 (testing::internal::ValueArray16::ValueArray16):
4223 (testing::internal::ValueArray16::operator ParamGenerator<T> const):
4224 (testing::internal::ValueArray17::ValueArray17):
4225 (testing::internal::ValueArray17::operator ParamGenerator<T> const):
4226 (testing::internal::ValueArray18::ValueArray18):
4227 (testing::internal::ValueArray18::operator ParamGenerator<T> const):
4228 (testing::internal::ValueArray19::ValueArray19):
4229 (testing::internal::ValueArray19::operator ParamGenerator<T> const):
4230 (testing::internal::ValueArray20::ValueArray20):
4231 (testing::internal::ValueArray20::operator ParamGenerator<T> const):
4232 (testing::internal::ValueArray21::ValueArray21):
4233 (testing::internal::ValueArray21::operator ParamGenerator<T> const):
4234 (testing::internal::ValueArray22::ValueArray22):
4235 (testing::internal::ValueArray22::operator ParamGenerator<T> const):
4236 (testing::internal::ValueArray23::ValueArray23):
4237 (testing::internal::ValueArray23::operator ParamGenerator<T> const):
4238 (testing::internal::ValueArray24::ValueArray24):
4239 (testing::internal::ValueArray24::operator ParamGenerator<T> const):
4240 (testing::internal::ValueArray25::ValueArray25):
4241 (testing::internal::ValueArray25::operator ParamGenerator<T> const):
4242 (testing::internal::ValueArray26::ValueArray26):
4243 (testing::internal::ValueArray26::operator ParamGenerator<T> const):
4244 (testing::internal::ValueArray27::ValueArray27):
4245 (testing::internal::ValueArray27::operator ParamGenerator<T> const):
4246 (testing::internal::ValueArray28::ValueArray28):
4247 (testing::internal::ValueArray28::operator ParamGenerator<T> const):
4248 (testing::internal::ValueArray29::ValueArray29):
4249 (testing::internal::ValueArray29::operator ParamGenerator<T> const):
4250 (testing::internal::ValueArray30::ValueArray30):
4251 (testing::internal::ValueArray30::operator ParamGenerator<T> const):
4252 (testing::internal::ValueArray31::ValueArray31):
4253 (testing::internal::ValueArray31::operator ParamGenerator<T> const):
4254 (testing::internal::ValueArray32::ValueArray32):
4255 (testing::internal::ValueArray32::operator ParamGenerator<T> const):
4256 (testing::internal::ValueArray33::ValueArray33):
4257 (testing::internal::ValueArray33::operator ParamGenerator<T> const):
4258 (testing::internal::ValueArray34::ValueArray34):
4259 (testing::internal::ValueArray34::operator ParamGenerator<T> const):
4260 (testing::internal::ValueArray35::ValueArray35):
4261 (testing::internal::ValueArray35::operator ParamGenerator<T> const):
4262 (testing::internal::ValueArray36::ValueArray36):
4263 (testing::internal::ValueArray36::operator ParamGenerator<T> const):
4264 (testing::internal::ValueArray37::ValueArray37):
4265 (testing::internal::ValueArray37::operator ParamGenerator<T> const):
4266 (testing::internal::ValueArray38::ValueArray38):
4267 (testing::internal::ValueArray38::operator ParamGenerator<T> const):
4268 (testing::internal::ValueArray39::ValueArray39):
4269 (testing::internal::ValueArray39::operator ParamGenerator<T> const):
4270 (testing::internal::ValueArray40::ValueArray40):
4271 (testing::internal::ValueArray40::operator ParamGenerator<T> const):
4272 (testing::internal::ValueArray41::ValueArray41):
4273 (testing::internal::ValueArray41::operator ParamGenerator<T> const):
4274 (testing::internal::ValueArray42::ValueArray42):
4275 (testing::internal::ValueArray42::operator ParamGenerator<T> const):
4276 (testing::internal::ValueArray43::ValueArray43):
4277 (testing::internal::ValueArray43::operator ParamGenerator<T> const):
4278 (testing::internal::ValueArray44::ValueArray44):
4279 (testing::internal::ValueArray44::operator ParamGenerator<T> const):
4280 (testing::internal::ValueArray45::ValueArray45):
4281 (testing::internal::ValueArray45::operator ParamGenerator<T> const):
4282 (testing::internal::ValueArray46::ValueArray46):
4283 (testing::internal::ValueArray46::operator ParamGenerator<T> const):
4284 (testing::internal::ValueArray47::ValueArray47):
4285 (testing::internal::ValueArray47::operator ParamGenerator<T> const):
4286 (testing::internal::ValueArray48::ValueArray48):
4287 (testing::internal::ValueArray48::operator ParamGenerator<T> const):
4288 (testing::internal::ValueArray49::ValueArray49):
4289 (testing::internal::ValueArray49::operator ParamGenerator<T> const):
4290 (testing::internal::ValueArray50::ValueArray50):
4291 (testing::internal::ValueArray50::operator ParamGenerator<T> const):
4292 (testing::internal::CartesianProductGenerator2::CartesianProductGenerator2):
4293 (testing::internal::CartesianProductGenerator2::~CartesianProductGenerator2):
4294 (testing::internal::CartesianProductGenerator2::Begin const):
4295 (testing::internal::CartesianProductGenerator2::End const):
4296 (testing::internal::CartesianProductGenerator2::Iterator::Iterator):
4297 (testing::internal::CartesianProductGenerator2::Iterator::~Iterator):
4298 (testing::internal::CartesianProductGenerator2::Iterator::BaseGenerator const):
4299 (testing::internal::CartesianProductGenerator2::Iterator::Advance):
4300 (testing::internal::CartesianProductGenerator2::Iterator::Clone const):
4301 (testing::internal::CartesianProductGenerator2::Iterator::Current const):
4302 (testing::internal::CartesianProductGenerator2::Iterator::Equals const):
4303 (testing::internal::CartesianProductGenerator2::Iterator::ComputeCurrentValue):
4304 (testing::internal::CartesianProductGenerator2::Iterator::AtEnd const):
4305 (testing::internal::CartesianProductGenerator3::CartesianProductGenerator3):
4306 (testing::internal::CartesianProductGenerator3::~CartesianProductGenerator3):
4307 (testing::internal::CartesianProductGenerator3::Begin const):
4308 (testing::internal::CartesianProductGenerator3::End const):
4309 (testing::internal::CartesianProductGenerator3::Iterator::Iterator):
4310 (testing::internal::CartesianProductGenerator3::Iterator::~Iterator):
4311 (testing::internal::CartesianProductGenerator3::Iterator::BaseGenerator const):
4312 (testing::internal::CartesianProductGenerator3::Iterator::Advance):
4313 (testing::internal::CartesianProductGenerator3::Iterator::Clone const):
4314 (testing::internal::CartesianProductGenerator3::Iterator::Current const):
4315 (testing::internal::CartesianProductGenerator3::Iterator::Equals const):
4316 (testing::internal::CartesianProductGenerator3::Iterator::ComputeCurrentValue):
4317 (testing::internal::CartesianProductGenerator3::Iterator::AtEnd const):
4318 (testing::internal::CartesianProductGenerator4::CartesianProductGenerator4):
4319 (testing::internal::CartesianProductGenerator4::~CartesianProductGenerator4):
4320 (testing::internal::CartesianProductGenerator4::Begin const):
4321 (testing::internal::CartesianProductGenerator4::End const):
4322 (testing::internal::CartesianProductGenerator4::Iterator::Iterator):
4323 (testing::internal::CartesianProductGenerator4::Iterator::~Iterator):
4324 (testing::internal::CartesianProductGenerator4::Iterator::BaseGenerator const):
4325 (testing::internal::CartesianProductGenerator4::Iterator::Advance):
4326 (testing::internal::CartesianProductGenerator4::Iterator::Clone const):
4327 (testing::internal::CartesianProductGenerator4::Iterator::Current const):
4328 (testing::internal::CartesianProductGenerator4::Iterator::Equals const):
4329 (testing::internal::CartesianProductGenerator4::Iterator::ComputeCurrentValue):
4330 (testing::internal::CartesianProductGenerator4::Iterator::AtEnd const):
4331 (testing::internal::CartesianProductGenerator5::CartesianProductGenerator5):
4332 (testing::internal::CartesianProductGenerator5::~CartesianProductGenerator5):
4333 (testing::internal::CartesianProductGenerator5::Begin const):
4334 (testing::internal::CartesianProductGenerator5::End const):
4335 (testing::internal::CartesianProductGenerator5::Iterator::Iterator):
4336 (testing::internal::CartesianProductGenerator5::Iterator::~Iterator):
4337 (testing::internal::CartesianProductGenerator5::Iterator::BaseGenerator const):
4338 (testing::internal::CartesianProductGenerator5::Iterator::Advance):
4339 (testing::internal::CartesianProductGenerator5::Iterator::Clone const):
4340 (testing::internal::CartesianProductGenerator5::Iterator::Current const):
4341 (testing::internal::CartesianProductGenerator5::Iterator::Equals const):
4342 (testing::internal::CartesianProductGenerator5::Iterator::ComputeCurrentValue):
4343 (testing::internal::CartesianProductGenerator5::Iterator::AtEnd const):
4344 (testing::internal::CartesianProductGenerator6::CartesianProductGenerator6):
4345 (testing::internal::CartesianProductGenerator6::~CartesianProductGenerator6):
4346 (testing::internal::CartesianProductGenerator6::Begin const):
4347 (testing::internal::CartesianProductGenerator6::End const):
4348 (testing::internal::CartesianProductGenerator6::Iterator::Iterator):
4349 (testing::internal::CartesianProductGenerator6::Iterator::~Iterator):
4350 (testing::internal::CartesianProductGenerator6::Iterator::BaseGenerator const):
4351 (testing::internal::CartesianProductGenerator6::Iterator::Advance):
4352 (testing::internal::CartesianProductGenerator6::Iterator::Clone const):
4353 (testing::internal::CartesianProductGenerator6::Iterator::Current const):
4354 (testing::internal::CartesianProductGenerator6::Iterator::Equals const):
4355 (testing::internal::CartesianProductGenerator6::Iterator::ComputeCurrentValue):
4356 (testing::internal::CartesianProductGenerator6::Iterator::AtEnd const):
4357 (testing::internal::CartesianProductGenerator7::CartesianProductGenerator7):
4358 (testing::internal::CartesianProductGenerator7::~CartesianProductGenerator7):
4359 (testing::internal::CartesianProductGenerator7::Begin const):
4360 (testing::internal::CartesianProductGenerator7::End const):
4361 (testing::internal::CartesianProductGenerator7::Iterator::Iterator):
4362 (testing::internal::CartesianProductGenerator7::Iterator::~Iterator):
4363 (testing::internal::CartesianProductGenerator7::Iterator::BaseGenerator const):
4364 (testing::internal::CartesianProductGenerator7::Iterator::Advance):
4365 (testing::internal::CartesianProductGenerator7::Iterator::Clone const):
4366 (testing::internal::CartesianProductGenerator7::Iterator::Current const):
4367 (testing::internal::CartesianProductGenerator7::Iterator::Equals const):
4368 (testing::internal::CartesianProductGenerator7::Iterator::ComputeCurrentValue):
4369 (testing::internal::CartesianProductGenerator7::Iterator::AtEnd const):
4370 (testing::internal::CartesianProductGenerator8::CartesianProductGenerator8):
4371 (testing::internal::CartesianProductGenerator8::~CartesianProductGenerator8):
4372 (testing::internal::CartesianProductGenerator8::Begin const):
4373 (testing::internal::CartesianProductGenerator8::End const):
4374 (testing::internal::CartesianProductGenerator8::Iterator::Iterator):
4375 (testing::internal::CartesianProductGenerator8::Iterator::~Iterator):
4376 (testing::internal::CartesianProductGenerator8::Iterator::BaseGenerator const):
4377 (testing::internal::CartesianProductGenerator8::Iterator::Advance):
4378 (testing::internal::CartesianProductGenerator8::Iterator::Clone const):
4379 (testing::internal::CartesianProductGenerator8::Iterator::Current const):
4380 (testing::internal::CartesianProductGenerator8::Iterator::Equals const):
4381 (testing::internal::CartesianProductGenerator8::Iterator::ComputeCurrentValue):
4382 (testing::internal::CartesianProductGenerator8::Iterator::AtEnd const):
4383 (testing::internal::CartesianProductGenerator9::CartesianProductGenerator9):
4384 (testing::internal::CartesianProductGenerator9::~CartesianProductGenerator9):
4385 (testing::internal::CartesianProductGenerator9::Begin const):
4386 (testing::internal::CartesianProductGenerator9::End const):
4387 (testing::internal::CartesianProductGenerator9::Iterator::Iterator):
4388 (testing::internal::CartesianProductGenerator9::Iterator::~Iterator):
4389 (testing::internal::CartesianProductGenerator9::Iterator::BaseGenerator const):
4390 (testing::internal::CartesianProductGenerator9::Iterator::Advance):
4391 (testing::internal::CartesianProductGenerator9::Iterator::Clone const):
4392 (testing::internal::CartesianProductGenerator9::Iterator::Current const):
4393 (testing::internal::CartesianProductGenerator9::Iterator::Equals const):
4394 (testing::internal::CartesianProductGenerator9::Iterator::ComputeCurrentValue):
4395 (testing::internal::CartesianProductGenerator9::Iterator::AtEnd const):
4396 (testing::internal::CartesianProductGenerator10::CartesianProductGenerator10):
4397 (testing::internal::CartesianProductGenerator10::~CartesianProductGenerator10):
4398 (testing::internal::CartesianProductGenerator10::Begin const):
4399 (testing::internal::CartesianProductGenerator10::End const):
4400 (testing::internal::CartesianProductGenerator10::Iterator::Iterator):
4401 (testing::internal::CartesianProductGenerator10::Iterator::~Iterator):
4402 (testing::internal::CartesianProductGenerator10::Iterator::BaseGenerator const):
4403 (testing::internal::CartesianProductGenerator10::Iterator::Advance):
4404 (testing::internal::CartesianProductGenerator10::Iterator::Clone const):
4405 (testing::internal::CartesianProductGenerator10::Iterator::Current const):
4406 (testing::internal::CartesianProductGenerator10::Iterator::Equals const):
4407 (testing::internal::CartesianProductGenerator10::Iterator::ComputeCurrentValue):
4408 (testing::internal::CartesianProductGenerator10::Iterator::AtEnd const):
4409 (testing::internal::CartesianProductHolder2::CartesianProductHolder2):
4410 (testing::internal::CartesianProductHolder2::operator ParamGenerator< ::testing::tuple<T1, T2> > const):
4411 (testing::internal::CartesianProductHolder3::CartesianProductHolder3):
4412 (testing::internal::CartesianProductHolder3::operator ParamGenerator< ::testing::tuple<T1, T2, T3> > const):
4413 (testing::internal::CartesianProductHolder4::CartesianProductHolder4):
4414 (testing::internal::CartesianProductHolder4::operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4> > const):
4415 (testing::internal::CartesianProductHolder5::CartesianProductHolder5):
4416 (testing::internal::CartesianProductHolder5::operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5> > const):
4417 (testing::internal::CartesianProductHolder6::CartesianProductHolder6):
4418 (testing::internal::CartesianProductHolder6::operator ParamGenerator< ::testing::tuple<T1, T2, T3, T4, T5, T6> > const):
4419 (testing::internal::CartesianProductHolder7::CartesianProductHolder7):
4420 (testing::internal::CartesianProductHolder7:: const):
4421 (testing::internal::CartesianProductHolder8::CartesianProductHolder8):
4422 (testing::internal::CartesianProductHolder8:: const):
4423 (testing::internal::CartesianProductHolder9::CartesianProductHolder9):
4424 (testing::internal::CartesianProductHolder9:: const):
4425 (testing::internal::CartesianProductHolder10::CartesianProductHolder10):
4426 (testing::internal::CartesianProductHolder10:: const):
4427 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump: Added.
4428 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-param-util.h: Added.
4429 (testing::TestParamInfo::TestParamInfo):
4430 (testing::PrintToStringParamName::operator() const):
4431 (testing::internal::ParamIteratorInterface::~ParamIteratorInterface):
4432 (testing::internal::ParamIterator::ParamIterator):
4433 (testing::internal::ParamIterator::operator=):
4434 (testing::internal::ParamIterator::operator* const):
4435 (testing::internal::ParamIterator::operator-> const):
4436 (testing::internal::ParamIterator::operator++):
4437 (testing::internal::ParamIterator::operator== const):
4438 (testing::internal::ParamIterator::operator!= const):
4439 (testing::internal::ParamGeneratorInterface::~ParamGeneratorInterface):
4440 (testing::internal::ParamGenerator::ParamGenerator):
4441 (testing::internal::ParamGenerator::operator=):
4442 (testing::internal::ParamGenerator::begin const):
4443 (testing::internal::ParamGenerator::end const):
4444 (testing::internal::RangeGenerator::RangeGenerator):
4445 (testing::internal::RangeGenerator::~RangeGenerator):
4446 (testing::internal::RangeGenerator::Begin const):
4447 (testing::internal::RangeGenerator::End const):
4448 (testing::internal::RangeGenerator::Iterator::Iterator):
4449 (testing::internal::RangeGenerator::Iterator::~Iterator):
4450 (testing::internal::RangeGenerator::Iterator::BaseGenerator const):
4451 (testing::internal::RangeGenerator::Iterator::Advance):
4452 (testing::internal::RangeGenerator::Iterator::Clone const):
4453 (testing::internal::RangeGenerator::Iterator::Current const):
4454 (testing::internal::RangeGenerator::Iterator::Equals const):
4455 (testing::internal::RangeGenerator::CalculateEndIndex):
4456 (testing::internal::ValuesInIteratorRangeGenerator::ValuesInIteratorRangeGenerator):
4457 (testing::internal::ValuesInIteratorRangeGenerator::~ValuesInIteratorRangeGenerator):
4458 (testing::internal::ValuesInIteratorRangeGenerator::Begin const):
4459 (testing::internal::ValuesInIteratorRangeGenerator::End const):
4460 (testing::internal::ValuesInIteratorRangeGenerator::Iterator::Iterator):
4461 (testing::internal::ValuesInIteratorRangeGenerator::Iterator::~Iterator):
4462 (testing::internal::ValuesInIteratorRangeGenerator::Iterator::BaseGenerator const):
4463 (testing::internal::ValuesInIteratorRangeGenerator::Iterator::Advance):
4464 (testing::internal::ValuesInIteratorRangeGenerator::Iterator::Clone const):
4465 (testing::internal::ValuesInIteratorRangeGenerator::Iterator::Current const):
4466 (testing::internal::ValuesInIteratorRangeGenerator::Iterator::Equals const):
4467 (testing::internal::DefaultParamName):
4468 (testing::internal::GetParamNameGen):
4469 (testing::internal::ParameterizedTestFactory::ParameterizedTestFactory):
4470 (testing::internal::ParameterizedTestFactory::CreateTest):
4471 (testing::internal::TestMetaFactoryBase::~TestMetaFactoryBase):
4472 (testing::internal::TestMetaFactory::TestMetaFactory):
4473 (testing::internal::TestMetaFactory::CreateTestFactory):
4474 (testing::internal::ParameterizedTestCaseInfoBase::~ParameterizedTestCaseInfoBase):
4475 (testing::internal::ParameterizedTestCaseInfoBase::ParameterizedTestCaseInfoBase):
4476 (testing::internal::ParameterizedTestCaseInfo::ParameterizedTestCaseInfo):
4477 (testing::internal::ParameterizedTestCaseInfo::GetTestCaseName const):
4478 (testing::internal::ParameterizedTestCaseInfo::GetTestCaseTypeId const):
4479 (testing::internal::ParameterizedTestCaseInfo::AddTestPattern):
4480 (testing::internal::ParameterizedTestCaseInfo::AddTestCaseInstantiation):
4481 (testing::internal::ParameterizedTestCaseInfo::RegisterTests):
4482 (testing::internal::ParameterizedTestCaseInfo::TestInfo::TestInfo):
4483 (testing::internal::ParameterizedTestCaseInfo::InstantiationInfo::InstantiationInfo):
4484 (testing::internal::ParameterizedTestCaseInfo::IsValidParamName):
4485 (testing::internal::ParameterizedTestCaseRegistry::ParameterizedTestCaseRegistry):
4486 (testing::internal::ParameterizedTestCaseRegistry::~ParameterizedTestCaseRegistry):
4487 (testing::internal::ParameterizedTestCaseRegistry::GetTestCasePatternHolder):
4488 (testing::internal::ParameterizedTestCaseRegistry::RegisterTests):
4489 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-port-arch.h: Added.
4490 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-port.h: Added.
4491 (testing::internal::scoped_ptr::scoped_ptr):
4492 (testing::internal::scoped_ptr::~scoped_ptr):
4493 (testing::internal::scoped_ptr::operator* const):
4494 (testing::internal::scoped_ptr::operator-> const):
4495 (testing::internal::scoped_ptr::get const):
4496 (testing::internal::scoped_ptr::release):
4497 (testing::internal::scoped_ptr::reset):
4498 (testing::internal::scoped_ptr::swap):
4499 (testing::internal::LogToStderr):
4500 (testing::internal::FlushInfoLog):
4501 (testing::internal::move):
4502 (testing::internal::ImplicitCast_):
4503 (testing::internal::DownCast_):
4504 (testing::internal::CheckedDowncastToActualType):
4505 (testing::internal::SleepMilliseconds):
4506 (testing::internal::Notification::Notification):
4507 (testing::internal::Notification::~Notification):
4508 (testing::internal::Notification::Notify):
4509 (testing::internal::Notification::WaitForNotification):
4510 (testing::internal::ThreadWithParamBase::~ThreadWithParamBase):
4511 (testing::internal::ThreadFuncWithCLinkage):
4512 (testing::internal::ThreadWithParam::ThreadWithParam):
4513 (testing::internal::ThreadWithParam::~ThreadWithParam):
4514 (testing::internal::ThreadWithParam::Join):
4515 (testing::internal::ThreadWithParam::Run):
4516 (testing::internal::GTestMutexLock::GTestMutexLock):
4517 (testing::internal::GTestMutexLock::~GTestMutexLock):
4518 (testing::internal::ThreadLocalValueHolderBase::~ThreadLocalValueHolderBase):
4519 (testing::internal::ThreadLocalBase::ThreadLocalBase):
4520 (testing::internal::ThreadLocalBase::~ThreadLocalBase):
4521 (testing::internal::ThreadWithParam::RunnableImpl::RunnableImpl):
4522 (testing::internal::ThreadWithParam::RunnableImpl::~RunnableImpl):
4523 (testing::internal::ThreadWithParam::RunnableImpl::Run):
4524 (testing::internal::ThreadLocal::ThreadLocal):
4525 (testing::internal::ThreadLocal::~ThreadLocal):
4526 (testing::internal::ThreadLocal::pointer):
4527 (testing::internal::ThreadLocal::pointer const):
4528 (testing::internal::ThreadLocal::get const):
4529 (testing::internal::ThreadLocal::set):
4530 (testing::internal::ThreadLocal::ValueHolder::ValueHolder):
4531 (testing::internal::ThreadLocal::ValueHolder::pointer):
4532 (testing::internal::ThreadLocal::GetOrCreateValue const):
4533 (testing::internal::ThreadLocal::NewValueForCurrentThread const):
4534 (testing::internal::ThreadLocal::ValueHolderFactory::ValueHolderFactory):
4535 (testing::internal::ThreadLocal::ValueHolderFactory::~ValueHolderFactory):
4536 (testing::internal::ThreadLocal::DefaultValueHolderFactory::DefaultValueHolderFactory):
4537 (testing::internal::ThreadLocal::DefaultValueHolderFactory::MakeNewHolder const):
4538 (testing::internal::ThreadLocal::InstanceValueHolderFactory::InstanceValueHolderFactory):
4539 (testing::internal::ThreadLocal::InstanceValueHolderFactory::MakeNewHolder const):
4540 (testing::internal::MutexBase::Lock):
4541 (testing::internal::MutexBase::Unlock):
4542 (testing::internal::MutexBase::AssertHeld const):
4543 (testing::internal::Mutex::Mutex):
4544 (testing::internal::Mutex::~Mutex):
4545 (testing::internal::DeleteThreadLocalValue):
4546 (testing::internal::ThreadLocal::CreateKey):
4547 (testing::internal::Mutex::Lock):
4548 (testing::internal::Mutex::Unlock):
4549 (testing::internal::Mutex::AssertHeld const):
4550 (testing::internal::IsAlpha):
4551 (testing::internal::IsAlNum):
4552 (testing::internal::IsDigit):
4553 (testing::internal::IsLower):
4554 (testing::internal::IsSpace):
4555 (testing::internal::IsUpper):
4556 (testing::internal::IsXDigit):
4557 (testing::internal::ToLower):
4558 (testing::internal::ToUpper):
4559 (testing::internal::StripTrailingSpaces):
4560 (testing::internal::posix::IsATTY):
4561 (testing::internal::posix::StrCaseCmp):
4562 (testing::internal::posix::StrDup):
4563 (testing::internal::posix::FileNo):
4564 (testing::internal::posix::Stat):
4565 (testing::internal::posix::RmDir):
4566 (testing::internal::posix::IsDir):
4567 (testing::internal::posix::StrNCpy):
4568 (testing::internal::posix::ChDir):
4569 (testing::internal::posix::FOpen):
4570 (testing::internal::posix::FReopen):
4571 (testing::internal::posix::FDOpen):
4572 (testing::internal::posix::FClose):
4573 (testing::internal::posix::Read):
4574 (testing::internal::posix::Write):
4575 (testing::internal::posix::Close):
4576 (testing::internal::posix::StrError):
4577 (testing::internal::posix::GetEnv):
4578 (testing::internal::posix::Abort):
4579 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-string.h: Added.
4580 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-type-util.h: Added.
4581 (testing::internal::GetTypeName):
4582 * StitchMarker/folly/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump: Added.
4583 * StitchMarker/folly/gtest/googletest/src/gtest-filepath.cc: Added.
4584 * StitchMarker/folly/gtest/googletest/src/gtest-internal-inl.h: Added.
4585 (testing::internal::GetRandomSeedFromFlag):
4586 (testing::internal::GetNextRandomSeed):
4587 (testing::internal::GTestFlagSaver::GTestFlagSaver):
4588 (testing::internal::GTestFlagSaver::~GTestFlagSaver):
4589 (testing::internal::CountIf):
4590 (testing::internal::ForEach):
4591 (testing::internal::GetElementOr):
4592 (testing::internal::ShuffleRange):
4593 (testing::internal::Shuffle):
4594 (testing::internal::Delete):
4595 (testing::internal::TestPropertyKeyIs::TestPropertyKeyIs):
4596 (testing::internal::TestPropertyKeyIs::operator() const):
4597 (testing::internal::OsStackTraceGetterInterface::OsStackTraceGetterInterface):
4598 (testing::internal::OsStackTraceGetterInterface::~OsStackTraceGetterInterface):
4599 (testing::internal::OsStackTraceGetter::OsStackTraceGetter):
4600 (testing::internal::GetUnitTestImpl):
4601 (testing::internal::TestResultAccessor::RecordProperty):
4602 (testing::internal::TestResultAccessor::ClearTestPartResults):
4603 (testing::internal::TestResultAccessor::test_part_results):
4604 * StitchMarker/folly/gtest/googletest/src/gtest-port.cc: Added.
4605 * StitchMarker/folly/gtest/googletest/src/gtest-printers.cc: Added.
4606 * StitchMarker/folly/gtest/googletest/src/gtest-test-part.cc: Added.
4607 * StitchMarker/folly/gtest/googletest/src/gtest.cc: Added.
4608 * StitchMarker/folly/gtest/googletest/src/gtest_main.cc: Added.
4609 * StitchMarker/ogiroux.sh: Added. Build script.
4610 * StitchMarker/ogiroux/include/details/config.hpp: Added.
4611 * StitchMarker/ogiroux/include/semaphore: Added.
4612 * StitchMarker/ogiroux/lib/semaphore.cpp: Added.
4613 (cuda::std::experimental::v1::details::__semaphore_fixalign):
4614 (cuda::std::experimental::v1::details::__semaphore_readint):
4615 (cuda::std::experimental::v1::details::__semaphore_wait):
4616 (cuda::std::experimental::v1::details::__semaphore_wait_timed):
4617 (cuda::std::experimental::v1::details::__semaphore_wake_one):
4618 (cuda::std::experimental::v1::details::__semaphore_wake_all):
4619 * StitchMarker/ogiroux/test.cpp: Added.
4620 (main):
4621 * StitchMarker/ogiroux/test.hpp: Added.
4622 * StitchMarker/ogiroux/test_defs.cpp: Added.
4623 (start_gpu_threads):
4624 (stop_gpu_threads):
4625 (max_gpu_threads):
4626 (get_cpu_time):
4627 (user_time_consumed):
4628 (system_time_consumed):
4629 (set_affinity):
4630 (unfair_lock::lock):
4631 (unfair_lock::unlock):
4632 (make64):
4633 (work_item_struct::do_it):
4634 (allocate_work_item):
4635 (free_work_item):
4636 (report):
4637 (run_core):
4638 (run_scenario):
4639 (allocate_heap):
4640 (free_heap):
4641 (run_scenario_singlethreaded):
4642 (run_scenario_uncontended):
4643 (run_scenario_shortest):
4644 (run_scenario_short):
4645 (run_scenario_long):
4646 (run_scenario_phaser):
4647 (run_scenarios_inner):
4648 (run_barrier_scenarios):
4649 (run_mutex_scenarios):
4650 (run_and_report_scenarios):
4651 (null_mutex::lock):
4652 (null_mutex::unlock):
4653 (run_calibration):
4654 (print_headers):
4655 * StitchMarker/wtf.sh: Added. Build script.
4656 * StitchMarker/wtf/ASCIICType.h: Added.
4657 (WTF::isASCII):
4658 (WTF::isASCIILower):
4659 (WTF::toASCIILowerUnchecked):
4660 (WTF::isASCIIAlpha):
4661 (WTF::isASCIIDigit):
4662 (WTF::isASCIIAlphanumeric):
4663 (WTF::isASCIIHexDigit):
4664 (WTF::isASCIIBinaryDigit):
4665 (WTF::isASCIIOctalDigit):
4666 (WTF::isASCIIPrintable):
4667 (WTF::isASCIISpace):
4668 (WTF::isASCIIUpper):
4669 (WTF::toASCIILower):
4670 (WTF::toASCIIUpper):
4671 (WTF::toASCIIHexValue):
4672 (WTF::lowerNibbleToASCIIHexDigit):
4673 (WTF::upperNibbleToASCIIHexDigit):
4674 (WTF::lowerNibbleToLowercaseASCIIHexDigit):
4675 (WTF::upperNibbleToLowercaseASCIIHexDigit):
4676 (WTF::isASCIIAlphaCaselessEqual):
4677 * StitchMarker/wtf/Assertions.cpp: Added.
4678 (WTFCrashWithInfo):
4679 (WTF::resetAccumulatedLogs):
4680 (WTF::getAndResetAccumulatedLogs):
4681 * StitchMarker/wtf/Assertions.h: Added.
4682 (UNREACHABLE_FOR_PLATFORM):
4683 (WTF::isIntegralType):
4684 (compilerFenceForCrash):
4685 * StitchMarker/wtf/Atomics.h: Added.
4686 (WTF::hasFence):
4687 (WTF::Atomic::load const):
4688 (WTF::Atomic::loadRelaxed const):
4689 (WTF::Atomic::loadFullyFenced const):
4690 (WTF::Atomic::store):
4691 (WTF::Atomic::storeRelaxed):
4692 (WTF::Atomic::storeFullyFenced):
4693 (WTF::Atomic::compareExchangeWeak):
4694 (WTF::Atomic::compareExchangeWeakRelaxed):
4695 (WTF::Atomic::compareExchangeStrong):
4696 (WTF::Atomic::exchangeAdd):
4697 (WTF::Atomic::exchangeAnd):
4698 (WTF::Atomic::exchangeOr):
4699 (WTF::Atomic::exchangeSub):
4700 (WTF::Atomic::exchangeXor):
4701 (WTF::Atomic::exchange):
4702 (WTF::Atomic::transaction):
4703 (WTF::Atomic::transactionRelaxed):
4704 (WTF::Atomic::Atomic):
4705 (WTF::atomicLoad):
4706 (WTF::atomicLoadFullyFenced):
4707 (WTF::atomicStore):
4708 (WTF::atomicStoreFullyFenced):
4709 (WTF::atomicCompareExchangeWeak):
4710 (WTF::atomicCompareExchangeWeakRelaxed):
4711 (WTF::atomicCompareExchangeStrong):
4712 (WTF::atomicExchangeAdd):
4713 (WTF::atomicExchangeAnd):
4714 (WTF::atomicExchangeOr):
4715 (WTF::atomicExchangeSub):
4716 (WTF::atomicExchangeXor):
4717 (WTF::atomicExchange):
4718 (WTF::compilerFence):
4719 (WTF::arm_dmb):
4720 (WTF::arm_dmb_st):
4721 (WTF::arm_isb):
4722 (WTF::loadLoadFence):
4723 (WTF::loadStoreFence):
4724 (WTF::storeLoadFence):
4725 (WTF::storeStoreFence):
4726 (WTF::memoryBarrierAfterLock):
4727 (WTF::memoryBarrierBeforeUnlock):
4728 (WTF::crossModifyingCodeFence):
4729 (WTF::x86_ortop):
4730 (WTF::x86_cpuid):
4731 (WTF::nullDependency):
4732 (WTF::dependency):
4733 (WTF::DependencyWith::DependencyWith):
4734 (WTF::dependencyWith):
4735 (WTF::consume):
4736 (WTF::ensurePointer):
4737 * StitchMarker/wtf/CheckedArithmetic.h: Added.
4738 (WTF::CrashOnOverflow::overflowed):
4739 (WTF::CrashOnOverflow::clearOverflow):
4740 (WTF::CrashOnOverflow::crash):
4741 (WTF::CrashOnOverflow::hasOverflowed const):
4742 (WTF::RecordOverflow::RecordOverflow):
4743 (WTF::RecordOverflow::overflowed):
4744 (WTF::RecordOverflow::clearOverflow):
4745 (WTF::RecordOverflow::crash):
4746 (WTF::RecordOverflow::hasOverflowed const):
4747 (WTF::isInBounds):
4748 (WTF::convertSafely):
4749 (WTF::safeAdd):
4750 (WTF::safeSub):
4751 (WTF::safeMultiply):
4752 (WTF::safeEquals):
4753 (WTF::Checked::Checked):
4754 (WTF::Checked::operator=):
4755 (WTF::Checked::operator++):
4756 (WTF::Checked::operator--):
4757 (WTF::Checked::operator! const):
4758 (WTF::Checked::operator bool const):
4759 (WTF::Checked::unsafeGet const):
4760 (WTF::Checked::operator+=):
4761 (WTF::Checked::operator-=):
4762 (WTF::Checked::operator*=):
4763 (WTF::Checked::operator==):
4764 (WTF::Checked::operator!=):
4765 (WTF::Checked::operator< const):
4766 (WTF::Checked::operator<= const):
4767 (WTF::Checked::operator> const):
4768 (WTF::Checked::operator>= const):
4769 (WTF::operator+):
4770 (WTF::operator-):
4771 (WTF::operator*):
4772 (WTF::checkedSum):
4773 (WTF::sumOverflows):
4774 (WTF::differenceOverflows):
4775 (WTF::checkedProduct):
4776 (WTF::productOverflows):
4777 * StitchMarker/wtf/ClockType.cpp: Added.
4778 (WTF::printInternal):
4779 * StitchMarker/wtf/ClockType.h: Added.
4780 * StitchMarker/wtf/CommaPrinter.h: Added.
4781 (WTF::CommaPrinter::CommaPrinter):
4782 (WTF::CommaPrinter::dump const):
4783 (WTF::CommaPrinter::didPrint const):
4784 * StitchMarker/wtf/Compiler.h: Added.
4785 * StitchMarker/wtf/Condition.h: Added.
4786 (WTF::ConditionBase::waitUntil):
4787 (WTF::ConditionBase::waitFor):
4788 (WTF::ConditionBase::wait):
4789 (WTF::ConditionBase::notifyOne):
4790 (WTF::ConditionBase::notifyAll):
4791 (WTF::Condition::Condition):
4792 * StitchMarker/wtf/CryptographicallyRandomNumber.h: Added.
4793 * StitchMarker/wtf/CurrentTime.cpp: Added.
4794 (WTF::lowResUTCTime):
4795 (WTF::highResUpTime):
4796 (WTF::qpcAvailable):
4797 (WTF::currentTime):
4798 (WTF::monotonicallyIncreasingTime):
4799 (WTF::currentCPUTime):
4800 (WTF::sleep):
4801 * StitchMarker/wtf/CurrentTime.h: Added.
4802 (WTF::currentTimeMS):
4803 (WTF::monotonicallyIncreasingTimeMS):
4804 (WTF::sleepMS):
4805 * StitchMarker/wtf/DataLog.cpp: Added.
4806 (WTF::initializeLogFileOnce):
4807 (WTF::initializeLogFile):
4808 (WTF::setDataFile):
4809 (WTF::dataFile):
4810 (WTF::dataLogFV):
4811 (WTF::dataLogF):
4812 (WTF::dataLogFString):
4813 * StitchMarker/wtf/DataLog.h: Added.
4814 (WTF::dataLog):
4815 (WTF::dataLogLn):
4816 (WTF::dataLogIf):
4817 (WTF::dataLogLnIf):
4818 * StitchMarker/wtf/DateMath.cpp: Added.
4819 (WTF::startsWithLettersIgnoringASCIICase):
4820 (WTF::getLocalTime):
4821 (WTF::isLeapYear):
4822 (WTF::daysInYear):
4823 (WTF::daysFrom1970ToYear):
4824 (WTF::msToDays):
4825 (WTF::appendTwoDigitNumber):
4826 (WTF::msToYear):
4827 (WTF::dayInYear):
4828 (WTF::msToMilliseconds):
4829 (WTF::msToMinutes):
4830 (WTF::msToHours):
4831 (WTF::monthFromDayInYear):
4832 (WTF::checkMonth):
4833 (WTF::dayInMonthFromDayInYear):
4834 (WTF::dateToDaysFrom1970):
4835 (WTF::maximumYearForDST):
4836 (WTF::minimumYearForDST):
4837 (WTF::equivalentYearForDST):
4838 (WTF::timeZoneInformationForYearFunction):
4839 (WTF::calculateUTCOffset):
4840 (WTF::UnixTimeToFileTime):
4841 (WTF::calculateDSTOffset):
4842 (WTF::calculateLocalTimeOffset):
4843 (WTF::initializeDates):
4844 (WTF::ymdhmsToSeconds):
4845 (WTF::skipSpacesAndComments):
4846 (WTF::findMonth):
4847 (WTF::parseInt):
4848 (WTF::parseLong):
4849 (WTF::parseES5DatePortion):
4850 (WTF::parseES5TimePortion):
4851 (WTF::parseES5DateFromNullTerminatedCharacters):
4852 (WTF::parseDateFromNullTerminatedCharacters):
4853 (WTF::timeClip):
4854 (WTF::makeRFC2822DateString):
4855 * StitchMarker/wtf/DateMath.h: Added.
4856 (WTF::LocalTimeOffset::LocalTimeOffset):
4857 (WTF::LocalTimeOffset::operator==):
4858 (WTF::LocalTimeOffset::operator!=):
4859 (WTF::jsCurrentTime):
4860 * StitchMarker/wtf/Deque.h: Added.
4861 (WTF::Deque::size const):
4862 (WTF::Deque::isEmpty const):
4863 (WTF::Deque::begin):
4864 (WTF::Deque::end):
4865 (WTF::Deque::begin const):
4866 (WTF::Deque::end const):
4867 (WTF::Deque::rbegin):
4868 (WTF::Deque::rend):
4869 (WTF::Deque::rbegin const):
4870 (WTF::Deque::rend const):
4871 (WTF::Deque::first):
4872 (WTF::Deque::first const):
4873 (WTF::Deque::last):
4874 (WTF::Deque::last const):
4875 (WTF::Deque::append):
4876 (WTF::DequeIteratorBase::assign):
4877 (WTF::DequeIterator::DequeIterator):
4878 (WTF::DequeIterator::operator=):
4879 (WTF::DequeIterator::operator* const):
4880 (WTF::DequeIterator::operator-> const):
4881 (WTF::DequeIterator::operator== const):
4882 (WTF::DequeIterator::operator!= const):
4883 (WTF::DequeIterator::operator++):
4884 (WTF::DequeIterator::operator--):
4885 (WTF::DequeConstIterator::DequeConstIterator):
4886 (WTF::DequeConstIterator::operator=):
4887 (WTF::DequeConstIterator::operator* const):
4888 (WTF::DequeConstIterator::operator-> const):
4889 (WTF::DequeConstIterator::operator== const):
4890 (WTF::DequeConstIterator::operator!= const):
4891 (WTF::DequeConstIterator::operator++):
4892 (WTF::DequeConstIterator::operator--):
4893 (WTF::inlineCapacity>::checkValidity const):
4894 (WTF::inlineCapacity>::checkIndexValidity const):
4895 (WTF::inlineCapacity>::invalidateIterators):
4896 (WTF::inlineCapacity>::Deque):
4897 (WTF::=):
4898 (WTF::inlineCapacity>::destroyAll):
4899 (WTF::inlineCapacity>::~Deque):
4900 (WTF::inlineCapacity>::swap):
4901 (WTF::inlineCapacity>::clear):
4902 (WTF::inlineCapacity>::findIf):
4903 (WTF::inlineCapacity>::expandCapacityIfNeeded):
4904 (WTF::inlineCapacity>::expandCapacity):
4905 (WTF::inlineCapacity>::takeFirst):
4906 (WTF::inlineCapacity>::takeLast):
4907 (WTF::inlineCapacity>::append):
4908 (WTF::inlineCapacity>::prepend):
4909 (WTF::inlineCapacity>::removeFirst):
4910 (WTF::inlineCapacity>::removeLast):
4911 (WTF::inlineCapacity>::remove):
4912 (WTF::inlineCapacity>::removeAllMatching):
4913 (WTF::inlineCapacity>::appendAndBubble):
4914 (WTF::inlineCapacity>::addToIteratorsList):
4915 (WTF::inlineCapacity>::removeFromIteratorsList):
4916 (WTF::inlineCapacity>::DequeIteratorBase):
4917 (WTF::inlineCapacity>::~DequeIteratorBase):
4918 (WTF::inlineCapacity>::isEqual const):
4919 (WTF::inlineCapacity>::increment):
4920 (WTF::inlineCapacity>::decrement):
4921 (WTF::inlineCapacity>::after const):
4922 (WTF::inlineCapacity>::before const):
4923 * StitchMarker/wtf/Expected.h: Added.
4924 (WTF::UnexpectedType::UnexpectedType):
4925 (WTF::UnexpectedType::value const):
4926 (WTF::UnexpectedType::value):
4927 (WTF::operator==):
4928 (WTF::operator!=):
4929 (WTF::operator<):
4930 (WTF::operator>):
4931 (WTF::operator<=):
4932 (WTF::operator>=):
4933 (WTF::makeUnexpected):
4934 (WTF::ExpectedDetail::Throw):
4935 (WTF::ExpectedDetail::destroy):
4936 (WTF::ExpectedDetail::std::is_trivially_destructible<T>::value):
4937 (WTF::ExpectedDetail::ConstexprBase::ConstexprBase):
4938 (WTF::ExpectedDetail::Base::Base):
4939 (WTF::ExpectedDetail::Base::~Base):
4940 (WTF::Expected::Expected):
4941 (WTF::Expected::operator=):
4942 (WTF::Expected::swap):
4943 (WTF::Expected::operator-> const):
4944 (WTF::Expected::operator->):
4945 (WTF::Expected::operator* const):
4946 (WTF::Expected::operator*):
4947 (WTF::Expected::operator bool const):
4948 (WTF::Expected::hasValue const):
4949 (WTF::Expected::value const):
4950 (WTF::Expected::value):
4951 (WTF::Expected::error const):
4952 (WTF::Expected::error):
4953 (WTF::Expected::getUnexpected const):
4954 (WTF::Expected::valueOr const):
4955 (WTF::Expected::valueOr):
4956 (WTF::swap):
4957 (WTF::makeExpected):
4958 (WTF::makeExpectedFromError):
4959 * StitchMarker/wtf/ExportMacros.h: Added.
4960 * StitchMarker/wtf/FastMalloc.cpp: Added.
4961 (WTF::fastSetMaxSingleAllocationSize):
4962 (WTF::fastZeroedMalloc):
4963 (WTF::fastStrDup):
4964 (WTF::tryFastZeroedMalloc):
4965 (WTF::isFastMallocEnabled):
4966 (WTF::fastMallocGoodSize):
4967 (WTF::fastAlignedMalloc):
4968 (WTF::tryFastAlignedMalloc):
4969 (WTF::fastAlignedFree):
4970 (WTF::tryFastMalloc):
4971 (WTF::fastMalloc):
4972 (WTF::tryFastCalloc):
4973 (WTF::fastCalloc):
4974 (WTF::fastFree):
4975 (WTF::fastRealloc):
4976 (WTF::releaseFastMallocFreeMemory):
4977 (WTF::releaseFastMallocFreeMemoryForThisThread):
4978 (WTF::fastMallocStatistics):
4979 (WTF::fastMallocSize):
4980 * StitchMarker/wtf/FastMalloc.h: Added.
4981 (WTF::TryMallocReturnValue::TryMallocReturnValue):
4982 (WTF::TryMallocReturnValue::~TryMallocReturnValue):
4983 (WTF::TryMallocReturnValue::getValue):
4984 (WTF::FastAllocator::FastAllocator):
4985 (WTF::FastAllocator::allocate):
4986 (WTF::FastAllocator::deallocate):
4987 (WTF::operator==):
4988 (WTF::operator!=):
4989 * StitchMarker/wtf/FastTLS.h: Added.
4990 (WTF::fastTLSOffsetForKey):
4991 * StitchMarker/wtf/FeatureDefines.h: Added.
4992 * StitchMarker/wtf/FilePrintStream.cpp: Added.
4993 (WTF::FilePrintStream::FilePrintStream):
4994 (WTF::FilePrintStream::~FilePrintStream):
4995 (WTF::FilePrintStream::open):
4996 (WTF::FilePrintStream::vprintf):
4997 (WTF::FilePrintStream::flush):
4998 * StitchMarker/wtf/FilePrintStream.h: Added.
4999 (WTF::FilePrintStream::file):
5000 * StitchMarker/wtf/Forward.h: Added.
5001 * StitchMarker/wtf/Function.h: Added.
5002 (WTF::Function<Out):
5003 * StitchMarker/wtf/FunctionDispatcher.cpp: Added.
5004 (WTF::FunctionDispatcher::FunctionDispatcher):
5005 (WTF::FunctionDispatcher::~FunctionDispatcher):
5006 * StitchMarker/wtf/FunctionDispatcher.h: Added.
5007 * StitchMarker/wtf/GetPtr.h: Added.
5008 (WTF::getPtr):
5009 * StitchMarker/wtf/HashFunctions.h: Added.
5010 (WTF::intHash):
5011 (WTF::pairIntHash):
5012 (WTF::IntHash::hash):
5013 (WTF::IntHash::equal):
5014 (WTF::FloatHash::hash):
5015 (WTF::FloatHash::equal):
5016 (WTF::PairHash::hash):
5017 (WTF::PairHash::equal):
5018 (WTF::IntPairHash::hash):
5019 (WTF::IntPairHash::equal):
5020 (WTF::TupleHash::hash):
5021 (WTF::TupleHash::equal):
5022 (WTF::TupleHash::allTrue):
5023 * StitchMarker/wtf/HashIterators.h: Added.
5024 (WTF:: const const):
5025 (WTF::HashTableConstKeysIterator::HashTableConstKeysIterator):
5026 (WTF::HashTableConstKeysIterator::get const):
5027 (WTF::HashTableConstKeysIterator::operator* const):
5028 (WTF::HashTableConstKeysIterator::operator-> const):
5029 (WTF::HashTableConstKeysIterator::operator++):
5030 (WTF::HashTableConstValuesIterator::HashTableConstValuesIterator):
5031 (WTF::HashTableConstValuesIterator::get const):
5032 (WTF::HashTableConstValuesIterator::operator* const):
5033 (WTF::HashTableConstValuesIterator::operator-> const):
5034 (WTF::HashTableConstValuesIterator::operator++):
5035 (WTF::HashTableKeysIterator::HashTableKeysIterator):
5036 (WTF::HashTableKeysIterator::get const):
5037 (WTF::HashTableKeysIterator::operator* const):
5038 (WTF::HashTableKeysIterator::operator-> const):
5039 (WTF::HashTableKeysIterator::operator++):
5040 (WTF::HashTableKeysIterator::operator HashTableConstKeysIterator<HashTableType, KeyType, MappedType>):
5041 (WTF::HashTableValuesIterator::HashTableValuesIterator):
5042 (WTF::HashTableValuesIterator::get const):
5043 (WTF::HashTableValuesIterator::operator* const):
5044 (WTF::HashTableValuesIterator::operator-> const):
5045 (WTF::HashTableValuesIterator::operator++):
5046 (WTF::HashTableValuesIterator::operator HashTableConstValuesIterator<HashTableType, KeyType, MappedType>):
5047 (WTF::operator==):
5048 (WTF::operator!=):
5049 * StitchMarker/wtf/HashMap.h: Added.
5050 (WTF::KeyValuePairKeyExtractor::extract):
5051 (WTF::HashMapTranslator::hash):
5052 (WTF::HashMapTranslator::equal):
5053 (WTF::HashMapTranslator::translate):
5054 (WTF::HashMapEnsureTranslator::hash):
5055 (WTF::HashMapEnsureTranslator::equal):
5056 (WTF::HashMapEnsureTranslator::translate):
5057 (WTF::HashMapTranslatorAdapter::hash):
5058 (WTF::HashMapTranslatorAdapter::equal):
5059 (WTF::HashMapTranslatorAdapter::translate):
5060 (WTF::X>::swap):
5061 (WTF::X>::size const):
5062 (WTF::X>::capacity const):
5063 (WTF::X>::isEmpty const):
5064 (WTF::X>::begin):
5065 (WTF::X>::end):
5066 (WTF::X>::begin const):
5067 (WTF::X>::end const):
5068 (WTF::X>::find):
5069 (WTF::X>::find const):
5070 (WTF::X>::contains const):
5071 (WTF::X>::get const):
5072 (WTF::MappedTraitsArg>::inlineSet):
5073 (WTF::MappedTraitsArg>::inlineAdd):
5074 (WTF::MappedTraitsArg>::inlineEnsure):
5075 (WTF::MappedTraitsArg>::set):
5076 (WTF::MappedTraitsArg>::add):
5077 (WTF::MappedTraitsArg>::fastAdd):
5078 (WTF::MappedTraitsArg>::ensure):
5079 (WTF::MappedTraits>::get const):
5080 (WTF::MappedTraits>::fastGet const):
5081 (WTF::X>::remove):
5082 (WTF::X>::removeIf):
5083 (WTF::X>::clear):
5084 (WTF::MappedTraits>::take):
5085 (WTF::X>::inlineGet const):
5086 (WTF::X>::take):
5087 (WTF::X>::checkConsistency const):
5088 (WTF::X>::isValidKey):
5089 (WTF::operator==):
5090 (WTF::operator!=):
5091 (WTF::copyToVector):
5092 (WTF::copyKeysToVector):
5093 (WTF::copyValuesToVector):
5094 * StitchMarker/wtf/HashSet.h: Added.
5095 (WTF::IdentityExtractor::extract):
5096 (WTF::HashSetTranslator::hash):
5097 (WTF::HashSetTranslator::equal):
5098 (WTF::HashSetTranslator::translate):
5099 (WTF::HashSetTranslatorAdapter::hash):
5100 (WTF::HashSetTranslatorAdapter::equal):
5101 (WTF::HashSetTranslatorAdapter::translate):
5102 (WTF::V>::swap):
5103 (WTF::V>::size const):
5104 (WTF::V>::capacity const):
5105 (WTF::V>::isEmpty const):
5106 (WTF::V>::begin const):
5107 (WTF::V>::end const):
5108 (WTF::V>::find const):
5109 (WTF::V>::contains const):
5110 (WTF::Traits>::find const):
5111 (WTF::Traits>::contains const):
5112 (WTF::V>::add):
5113 (WTF::V>::addVoid):
5114 (WTF::Traits>::add):
5115 (WTF::V>::remove):
5116 (WTF::V>::removeIf):
5117 (WTF::V>::clear):
5118 (WTF::V>::take):
5119 (WTF::V>::takeAny):
5120 (WTF::Traits>::remove):
5121 (WTF::Traits>::take):
5122 (WTF::V>::isValidValue):
5123 (WTF::copyToVector):
5124 (WTF::= const):
5125 * StitchMarker/wtf/HashTable.h: Added.
5126 (WTF::addIterator):
5127 (WTF::removeIterator):
5128 (WTF::HashTableConstIterator::skipEmptyBuckets):
5129 (WTF::HashTableConstIterator::HashTableConstIterator):
5130 (WTF::HashTableConstIterator::~HashTableConstIterator):
5131 (WTF::HashTableConstIterator::operator=):
5132 (WTF::HashTableConstIterator::get const):
5133 (WTF::HashTableConstIterator::operator* const):
5134 (WTF::HashTableConstIterator::operator-> const):
5135 (WTF::HashTableConstIterator::operator++):
5136 (WTF::HashTableConstIterator::operator== const):
5137 (WTF::HashTableConstIterator::operator!= const):
5138 (WTF::HashTableConstIterator::checkValidity const):
5139 (WTF::HashTableIterator::HashTableIterator):
5140 (WTF::HashTableIterator::get const):
5141 (WTF::HashTableIterator::operator* const):
5142 (WTF::HashTableIterator::operator-> const):
5143 (WTF::HashTableIterator::operator++):
5144 (WTF::HashTableIterator::operator== const):
5145 (WTF::HashTableIterator::operator!= const):
5146 (WTF::HashTableIterator::operator const_iterator const):
5147 (WTF::IdentityHashTranslator::hash):
5148 (WTF::IdentityHashTranslator::equal):
5149 (WTF::IdentityHashTranslator::translate):
5150 (WTF::HashTableAddResult::HashTableAddResult):
5151 (WTF::HashTableAddResult::operator bool const):
5152 (WTF::HashTable::Stats::Stats):
5153 (WTF::HashTable::Stats::recordCollisionAtCount):
5154 (WTF::HashTable::Stats::dumpStats):
5155 (WTF::HashTable::~HashTable):
5156 (WTF::HashTable::begin):
5157 (WTF::HashTable::end):
5158 (WTF::HashTable::begin const):
5159 (WTF::HashTable::end const):
5160 (WTF::HashTable::size const):
5161 (WTF::HashTable::capacity const):
5162 (WTF::HashTable::isEmpty const):
5163 (WTF::HashTable::add):
5164 (WTF::HashTable::find):
5165 (WTF::HashTable::find const):
5166 (WTF::HashTable::contains const):
5167 (WTF::HashTable::isEmptyBucket):
5168 (WTF::HashTable::isDeletedBucket):
5169 (WTF::HashTable::isEmptyOrDeletedBucket):
5170 (WTF::HashTable::lookup):
5171 (WTF::HashTable::checkTableConsistency):
5172 (WTF::HashTable::internalCheckTableConsistency const):
5173 (WTF::HashTable::internalCheckTableConsistencyExceptSize const):
5174 (WTF::HashTable::internalCheckTableConsistencyExceptSize):
5175 (WTF::HashTable::internalCheckTableConsistency):
5176 (WTF::HashTable::lookupForWriting):
5177 (WTF::HashTable::shouldExpand const):
5178 (WTF::HashTable::mustRehashInPlace const):
5179 (WTF::HashTable::shouldShrink const):
5180 (WTF::HashTable::shrink):
5181 (WTF::HashTable::deleteBucket):
5182 (WTF::HashTable::makeLookupResult):
5183 (WTF::HashTable::makeIterator):
5184 (WTF::HashTable::makeConstIterator const):
5185 (WTF::HashTable::makeKnownGoodIterator):
5186 (WTF::HashTable::makeKnownGoodConstIterator const):
5187 (WTF::HashTable::checkTableConsistencyExceptSize):
5188 (WTF::HashTable::invalidateIterators):
5189 (WTF::KeyTraits>::HashTable):
5190 (WTF::doubleHash):
5191 (WTF::KeyTraits>::checkKey):
5192 (WTF::KeyTraits>::lookup):
5193 (WTF::KeyTraits>::inlineLookup):
5194 (WTF::KeyTraits>::lookupForWriting):
5195 (WTF::KeyTraits>::fullLookupForWriting):
5196 (WTF::KeyTraits>::addUniqueForInitialization):
5197 (WTF::HashTableBucketInitializer<false>::initialize):
5198 (WTF::HashTableBucketInitializer<true>::initialize):
5199 (WTF::KeyTraits>::initializeBucket):
5200 (WTF::KeyTraits>::add):
5201 (WTF::KeyTraits>::addPassingHashCode):
5202 (WTF::KeyTraits>::reinsert):
5203 (WTF::KeyTraits>::find):
5204 (WTF::KeyTraits>::find const):
5205 (WTF::KeyTraits>::contains const):
5206 (WTF::KeyTraits>::removeAndInvalidateWithoutEntryConsistencyCheck):
5207 (WTF::KeyTraits>::removeAndInvalidate):
5208 (WTF::KeyTraits>::remove):
5209 (WTF::KeyTraits>::removeWithoutEntryConsistencyCheck):
5210 (WTF::KeyTraits>::removeIf):
5211 (WTF::KeyTraits>::allocateTable):
5212 (WTF::KeyTraits>::deallocateTable):
5213 (WTF::KeyTraits>::expand):
5214 (WTF::KeyTraits>::rehash):
5215 (WTF::KeyTraits>::clear):
5216 (WTF::KeyTraits>::swap):
5217 (WTF::=):
5218 (WTF::KeyTraits>::checkTableConsistency const):
5219 (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
5220 (WTF::KeyTraits>::invalidateIterators):
5221 (WTF::HashTableConstIteratorAdapter::HashTableConstIteratorAdapter):
5222 (WTF::HashTableConstIteratorAdapter::get const):
5223 (WTF::HashTableConstIteratorAdapter::operator* const):
5224 (WTF::HashTableConstIteratorAdapter::operator-> const):
5225 (WTF::HashTableConstIteratorAdapter::operator++):
5226 (WTF::HashTableIteratorAdapter::HashTableIteratorAdapter):
5227 (WTF::HashTableIteratorAdapter::get const):
5228 (WTF::HashTableIteratorAdapter::operator* const):
5229 (WTF::HashTableIteratorAdapter::operator-> const):
5230 (WTF::HashTableIteratorAdapter::operator++):
5231 (WTF::HashTableIteratorAdapter::operator HashTableConstIteratorAdapter<HashTableType, ValueType>):
5232 (WTF::operator==):
5233 (WTF::operator!=):
5234 * StitchMarker/wtf/HashTraits.h: Added.
5235 (WTF::GenericHashTraits::emptyValue):
5236 (WTF::GenericHashTraits::assignToEmpty):
5237 (WTF::GenericHashTraits::peek):
5238 (WTF::GenericHashTraits::take):
5239 (WTF::FloatHashTraits::emptyValue):
5240 (WTF::FloatHashTraits::constructDeletedValue):
5241 (WTF::FloatHashTraits::isDeletedValue):
5242 (WTF::UnsignedWithZeroKeyHashTraits::emptyValue):
5243 (WTF::UnsignedWithZeroKeyHashTraits::constructDeletedValue):
5244 (WTF::UnsignedWithZeroKeyHashTraits::isDeletedValue):
5245 (WTF::SignedWithZeroKeyHashTraits::emptyValue):
5246 (WTF::SignedWithZeroKeyHashTraits::constructDeletedValue):
5247 (WTF::SignedWithZeroKeyHashTraits::isDeletedValue):
5248 (WTF::StrongEnumHashTraits::emptyValue):
5249 (WTF::StrongEnumHashTraits::constructDeletedValue):
5250 (WTF::StrongEnumHashTraits::isDeletedValue):
5251 (WTF::HashTraits<P::constructDeletedValue):
5252 (WTF::HashTraits<P::isDeletedValue):
5253 (WTF::SimpleClassHashTraits::constructDeletedValue):
5254 (WTF::SimpleClassHashTraits::isDeletedValue):
5255 (WTF::HashTraits<RefPtr<P>>::emptyValue):
5256 (WTF::HashTraits<RefPtr<P>>::peek):
5257 (WTF::HashTraits<RefPtr<P>>::customDeleteBucket):
5258 (WTF::HashTraits<Ref<P>>::emptyValue):
5259 (WTF::HashTraits<Ref<P>>::isEmptyValue):
5260 (WTF::HashTraits<Ref<P>>::assignToEmpty):
5261 (WTF::HashTraits<Ref<P>>::peek):
5262 (WTF::HashTraits<Ref<P>>::take):
5263 (WTF::isHashTraitsEmptyValue):
5264 (WTF::hashTraitsDeleteBucket):
5265 (WTF::PairHashTraits::emptyValue):
5266 (WTF::PairHashTraits::constructDeletedValue):
5267 (WTF::PairHashTraits::isDeletedValue):
5268 (WTF::TupleHashTraits::allTrue):
5269 (WTF::TupleHashTraits::emptyValue):
5270 (WTF::TupleHashTraits::constructDeletedValue):
5271 (WTF::TupleHashTraits::isDeletedValue):
5272 (WTF::KeyValuePair::KeyValuePair):
5273 (WTF::KeyValuePairHashTraits::emptyValue):
5274 (WTF::KeyValuePairHashTraits::constructDeletedValue):
5275 (WTF::KeyValuePairHashTraits::isDeletedValue):
5276 (WTF::KeyValuePairHashTraits::customDeleteBucket):
5277 (WTF::NullableHashTraits::emptyValue):
5278 (WTF::CustomHashTraits::constructDeletedValue):
5279 (WTF::CustomHashTraits::isDeletedValue):
5280 (WTF::CustomHashTraits::emptyValue):
5281 (WTF::CustomHashTraits::isEmptyValue):
5282 * StitchMarker/wtf/Hasher.h: Added.
5283 (WTF::StringHasher::StringHasher):
5284 (WTF::StringHasher::addCharactersAssumingAligned):
5285 (WTF::StringHasher::addCharacter):
5286 (WTF::StringHasher::addCharacters):
5287 (WTF::StringHasher::Converter):
5288 (WTF::StringHasher::hashWithTop8BitsMasked const):
5289 (WTF::StringHasher::hash const):
5290 (WTF::StringHasher::computeHashAndMaskTop8Bits):
5291 (WTF::StringHasher::computeHash):
5292 (WTF::StringHasher::hashMemory):
5293 (WTF::StringHasher::finalize):
5294 (WTF::StringHasher::finalizeAndMaskTop8Bits):
5295 (WTF::StringHasher::computeLiteralHash):
5296 (WTF::StringHasher::computeLiteralHashAndMaskTop8Bits):
5297 (WTF::StringHasher::defaultConverter):
5298 (WTF::StringHasher::avalancheBits3):
5299 (WTF::StringHasher::avalancheBits2):
5300 (WTF::StringHasher::avalancheBits1):
5301 (WTF::StringHasher::avalancheBits0):
5302 (WTF::StringHasher::avalancheBits):
5303 (WTF::StringHasher::avoidZero):
5304 (WTF::StringHasher::processPendingCharacter const):
5305 (WTF::StringHasher::calculateWithRemainingLastCharacter1):
5306 (WTF::StringHasher::calculateWithRemainingLastCharacter0):
5307 (WTF::StringHasher::calculateWithRemainingLastCharacter):
5308 (WTF::StringHasher::calculate1):
5309 (WTF::StringHasher::calculate0):
5310 (WTF::StringHasher::calculate):
5311 (WTF::StringHasher::computeLiteralHashImpl):
5312 (WTF::IntegerHasher::add):
5313 (WTF::IntegerHasher::hash const):
5314 * StitchMarker/wtf/HexNumber.h: Added.
5315 (WTF::Internal::hexDigitsForMode):
5316 (WTF::appendByteAsHex):
5317 (WTF::placeByteAsHexCompressIfPossible):
5318 (WTF::placeByteAsHex):
5319 (WTF::appendUnsignedAsHex):
5320 (WTF::appendUnsigned64AsHex):
5321 (WTF::appendUnsignedAsHexFixedSize):
5322 * StitchMarker/wtf/IteratorRange.h: Added.
5323 (WTF::IteratorRange::IteratorRange):
5324 (WTF::IteratorRange::begin const):
5325 (WTF::IteratorRange::end const):
5326 (WTF::makeIteratorRange):
5327 * StitchMarker/wtf/ListHashSet.h: Added.
5328 (WTF::ListHashSet::begin):
5329 (WTF::ListHashSet::end):
5330 (WTF::ListHashSet::begin const):
5331 (WTF::ListHashSet::end const):
5332 (WTF::ListHashSet::rbegin):
5333 (WTF::ListHashSet::rend):
5334 (WTF::ListHashSet::rbegin const):
5335 (WTF::ListHashSet::rend const):
5336 (WTF::ListHashSetNode::ListHashSetNode):
5337 (WTF::ListHashSetNodeHashFunctions::hash):
5338 (WTF::ListHashSetNodeHashFunctions::equal):
5339 (WTF::ListHashSetIterator::ListHashSetIterator):
5340 (WTF::ListHashSetIterator::get const):
5341 (WTF::ListHashSetIterator::operator* const):
5342 (WTF::ListHashSetIterator::operator-> const):
5343 (WTF::ListHashSetIterator::operator++):
5344 (WTF::ListHashSetIterator::operator--):
5345 (WTF::ListHashSetIterator::operator== const):
5346 (WTF::ListHashSetIterator::operator!= const):
5347 (WTF::ListHashSetIterator::operator const_iterator const):
5348 (WTF::ListHashSetIterator::node):
5349 (WTF::ListHashSetConstIterator::ListHashSetConstIterator):
5350 (WTF::ListHashSetConstIterator::get const):
5351 (WTF::ListHashSetConstIterator::operator* const):
5352 (WTF::ListHashSetConstIterator::operator-> const):
5353 (WTF::ListHashSetConstIterator::operator++):
5354 (WTF::ListHashSetConstIterator::operator--):
5355 (WTF::ListHashSetConstIterator::operator== const):
5356 (WTF::ListHashSetConstIterator::operator!= const):
5357 (WTF::ListHashSetConstIterator::node):
5358 (WTF::ListHashSetTranslator::hash):
5359 (WTF::ListHashSetTranslator::equal):
5360 (WTF::ListHashSetTranslator::translate):
5361 (WTF::U>::ListHashSet):
5362 (WTF::=):
5363 (WTF::U>::swap):
5364 (WTF::U>::~ListHashSet):
5365 (WTF::U>::size const):
5366 (WTF::U>::capacity const):
5367 (WTF::U>::isEmpty const):
5368 (WTF::U>::first):
5369 (WTF::U>::removeFirst):
5370 (WTF::U>::takeFirst):
5371 (WTF::U>::first const):
5372 (WTF::U>::last):
5373 (WTF::U>::last const):
5374 (WTF::U>::removeLast):
5375 (WTF::U>::takeLast):
5376 (WTF::U>::find):
5377 (WTF::U>::find const):
5378 (WTF::ListHashSetTranslatorAdapter::hash):
5379 (WTF::ListHashSetTranslatorAdapter::equal):
5380 (WTF::U>::contains const):
5381 (WTF::U>::add):
5382 (WTF::U>::appendOrMoveToLast):
5383 (WTF::U>::prependOrMoveToFirst):
5384 (WTF::U>::insertBefore):
5385 (WTF::U>::remove):
5386 (WTF::U>::clear):
5387 (WTF::U>::unlink):
5388 (WTF::U>::unlinkAndDelete):
5389 (WTF::U>::appendNode):
5390 (WTF::U>::prependNode):
5391 (WTF::U>::insertNodeBefore):
5392 (WTF::U>::deleteAllNodes):
5393 (WTF::U>::makeIterator):
5394 (WTF::U>::makeConstIterator const):
5395 * StitchMarker/wtf/Lock.cpp: Added.
5396 (WTF::LockBase::lockSlow):
5397 (WTF::LockBase::unlockSlow):
5398 (WTF::LockBase::unlockFairlySlow):
5399 (WTF::LockBase::safepointSlow):
5400 * StitchMarker/wtf/Lock.h: Added.
5401 (WTF::LockBase::lock):
5402 (WTF::LockBase::tryLock):
5403 (WTF::LockBase::try_lock):
5404 (WTF::LockBase::unlock):
5405 (WTF::LockBase::unlockFairly):
5406 (WTF::LockBase::safepoint):
5407 (WTF::LockBase::isHeld const):
5408 (WTF::LockBase::isLocked const):
5409 (WTF::LockBase::isFullyReset const):
5410 (WTF::Lock::Lock):
5411 * StitchMarker/wtf/LockAlgorithm.h: Added.
5412 (WTF::LockAlgorithm::lockFastAssumingZero):
5413 (WTF::LockAlgorithm::lockFast):
5414 (WTF::LockAlgorithm::lock):
5415 (WTF::LockAlgorithm::tryLock):
5416 (WTF::LockAlgorithm::unlockFastAssumingZero):
5417 (WTF::LockAlgorithm::unlockFast):
5418 (WTF::LockAlgorithm::unlock):
5419 (WTF::LockAlgorithm::unlockFairly):
5420 (WTF::LockAlgorithm::safepointFast):
5421 (WTF::LockAlgorithm::safepoint):
5422 (WTF::LockAlgorithm::isLocked):
5423 (WTF::LockAlgorithm::safepointSlow):
5424 * StitchMarker/wtf/LockAlgorithmInlines.h: Added.
5425 (WTF::hasParkedBit>::lockSlow):
5426 (WTF::hasParkedBit>::unlockSlow):
5427 * StitchMarker/wtf/LockedPrintStream.cpp: Added.
5428 (WTF::LockedPrintStream::LockedPrintStream):
5429 (WTF::LockedPrintStream::~LockedPrintStream):
5430 (WTF::LockedPrintStream::vprintf):
5431 (WTF::LockedPrintStream::flush):
5432 (WTF::LockedPrintStream::begin):
5433 (WTF::LockedPrintStream::end):
5434 * StitchMarker/wtf/LockedPrintStream.h: Added.
5435 * StitchMarker/wtf/Locker.h: Added.
5436 (WTF::AbstractLocker::AbstractLocker):
5437 (WTF::Locker::Locker):
5438 (WTF::Locker::~Locker):
5439 (WTF::Locker::tryLock):
5440 (WTF::Locker::operator bool const):
5441 (WTF::Locker::unlockEarly):
5442 (WTF::Locker::operator=):
5443 (WTF::Locker::lock):
5444 (WTF::holdLock):
5445 (WTF::tryHoldLock):
5446 * StitchMarker/wtf/LoggingAccumulator.h: Added.
5447 * StitchMarker/wtf/MainThread.cpp: Added.
5448 (WTF::functionQueue):
5449 (WTF::initializeMainThread):
5450 (WTF::isMainThread):
5451 (WTF::initializeMainThreadToProcessMainThread):
5452 (WTF::initializeWebThread):
5453 (WTF::canAccessThreadLocalDataForThread):
5454 (WTF::dispatchFunctionsFromMainThread):
5455 (WTF::callOnMainThread):
5456 (WTF::setMainThreadCallbacksPaused):
5457 (WTF::initializeGCThreads):
5458 (WTF::registerGCThread):
5459 (WTF::isMainThreadOrGCThread):
5460 (WTF::mayBeGCThread):
5461 * StitchMarker/wtf/MainThread.h: Added.
5462 (WTF::isWebThread):
5463 (WTF::isUIThread):
5464 * StitchMarker/wtf/MallocPtr.h: Added.
5465 (WTF::MallocPtr::MallocPtr):
5466 (WTF::MallocPtr::~MallocPtr):
5467 (WTF::MallocPtr::get const):
5468 (WTF::MallocPtr::operator! const):
5469 (WTF::MallocPtr::operator* const):
5470 (WTF::MallocPtr::operator-> const):
5471 (WTF::MallocPtr::operator=):
5472 (WTF::MallocPtr::swap):
5473 (WTF::MallocPtr::malloc):
5474 (WTF::MallocPtr::realloc):
5475 (WTF::adoptMallocPtr):
5476 * StitchMarker/wtf/MathExtras.h: Added.
5477 (std::isfinite):
5478 (std::signbit):
5479 (std::isinf):
5480 (wtf_atan2):
5481 (deg2rad):
5482 (rad2deg):
5483 (deg2grad):
5484 (grad2deg):
5485 (turn2deg):
5486 (deg2turn):
5487 (rad2grad):
5488 (grad2rad):
5489 (defaultMinimumForClamp):
5490 (defaultMaximumForClamp):
5491 (clampTo):
5492 (clampToInteger):
5493 (clampToUnsigned):
5494 (clampToFloat):
5495 (clampToPositiveInteger):
5496 (clampToAccepting64):
5497 (isWithinIntRange):
5498 (normalizedFloat):
5499 (hasOneBitSet):
5500 (hasZeroOrOneBitsSet):
5501 (hasTwoOrMoreBitsSet):
5502 (getLSBSet):
5503 (divideRoundedUp):
5504 (timesThreePlusOneDividedByTwo):
5505 (isNotZeroAndOrdered):
5506 (isZeroOrUnordered):
5507 (isGreaterThanNonZeroPowerOfTwo):
5508 (isLessThan):
5509 (isLessThanEqual):
5510 (isGreaterThan):
5511 (isGreaterThanEqual):
5512 (wtf_pow):
5513 (decomposeDouble):
5514 (doubleToInteger):
5515 (WTF::roundUpToPowerOfTwo):
5516 (WTF::fastLog2):
5517 (WTF::safeFPDivision):
5518 (WTF::areEssentiallyEqual):
5519 (WTF::nanPropagatingMin):
5520 (WTF::nanPropagatingMax):
5521 (WTF::isIntegral):
5522 (WTF::incrementWithSaturation):
5523 (WTF::leftShiftWithSaturation):
5524 (WTF::nonEmptyRangesOverlap):
5525 (WTF::rangesOverlap):
5526 * StitchMarker/wtf/MonotonicTime.cpp: Added.
5527 (WTF::MonotonicTime::now):
5528 (WTF::MonotonicTime::approximateWallTime const):
5529 (WTF::MonotonicTime::dump const):
5530 * StitchMarker/wtf/MonotonicTime.h: Added.
5531 (WTF::MonotonicTime::MonotonicTime):
5532 (WTF::MonotonicTime::fromRawSeconds):
5533 (WTF::MonotonicTime::infinity):
5534 (WTF::MonotonicTime::nan):
5535 (WTF::MonotonicTime::secondsSinceEpoch const):
5536 (WTF::MonotonicTime::approximateMonotonicTime const):
5537 (WTF::MonotonicTime::operator bool const):
5538 (WTF::MonotonicTime::operator+ const):
5539 (WTF::MonotonicTime::operator- const):
5540 (WTF::MonotonicTime::operator% const):
5541 (WTF::MonotonicTime::operator+=):
5542 (WTF::MonotonicTime::operator-=):
5543 (WTF::MonotonicTime::operator== const):
5544 (WTF::MonotonicTime::operator!= const):
5545 (WTF::MonotonicTime::operator< const):
5546 (WTF::MonotonicTime::operator> const):
5547 (WTF::MonotonicTime::operator<= const):
5548 (WTF::MonotonicTime::operator>= const):
5549 (std::isnan):
5550 (std::isinf):
5551 (std::isfinite):
5552 * StitchMarker/wtf/NeverDestroyed.h: Added.
5553 (WTF::NeverDestroyed::NeverDestroyed):
5554 (WTF::NeverDestroyed::operator T&):
5555 (WTF::NeverDestroyed::get):
5556 (WTF::NeverDestroyed::operator const T& const):
5557 (WTF::NeverDestroyed::get const):
5558 (WTF::NeverDestroyed::storagePointer const):
5559 (WTF::NeverDestroyed::MaybeRelax::MaybeRelax):
5560 (WTF::LazyNeverDestroyed::construct):
5561 (WTF::LazyNeverDestroyed::operator T&):
5562 (WTF::LazyNeverDestroyed::get):
5563 (WTF::LazyNeverDestroyed::operator->):
5564 (WTF::LazyNeverDestroyed::operator const T& const):
5565 (WTF::LazyNeverDestroyed::get const):
5566 (WTF::LazyNeverDestroyed::operator-> const):
5567 (WTF::LazyNeverDestroyed::storagePointer const):
5568 (WTF::LazyNeverDestroyed::MaybeRelax::MaybeRelax):
5569 (WTF::makeNeverDestroyed):
5570 * StitchMarker/wtf/Noncopyable.h: Added.
5571 * StitchMarker/wtf/NotFound.h: Added.
5572 * StitchMarker/wtf/Optional.h: Added.
5573 (std::detail_::is_assignable::has_assign):
5574 (std::detail_::is_assignable::sizeof):
5575 (std::detail_::has_overloaded_addressof::has_overload):
5576 (std::detail_::has_overloaded_addressof::sizeof):
5577 (std::detail_::TR2_OPTIONAL_REQUIRES):
5578 (std::detail_::convert):
5579 (std::nullopt_t::nullopt_t):
5580 (std::bad_optional_access::bad_optional_access):
5581 (std::optional_base::optional_base):
5582 (std::optional_base::TR2_OPTIONAL_REQUIRES):
5583 (std::optional_base::~optional_base):
5584 (std::constexpr_optional_base::constexpr_optional_base):
5585 (std::constexpr_optional_base::TR2_OPTIONAL_REQUIRES):
5586 (std::optional::dataptr):
5587 (std::optional::dataptr const):
5588 (std::optional::contained_val const):
5589 (std::optional::contained_val):
5590 (std::optional::__NOEXCEPT_):
5591 (std::optional::optional):
5592 (std::optional::TR2_OPTIONAL_REQUIRES):
5593 (std::optional::operator=):
5594 (std::optional::emplace):
5595 (std::optional::operator -> const):
5596 (std::optional::operator ->):
5597 (std::optional::operator * const):
5598 (std::optional::operator *):
5599 (std::optional::value const):
5600 (std::optional::value):
5601 (std::optional::value_or const):
5602 (std::optional::value_or):
5603 (std::optional<T::operator-> const):
5604 (std::optional<T::operator* const):
5605 (std::optional<T::value const):
5606 (std::optional<T::value_or const):
5607 (std::operator==):
5608 (std::operator!=):
5609 (std::operator<):
5610 (std::operator>):
5611 (std::operator<=):
5612 (std::operator>=):
5613 (std::__NOEXCEPT_):
5614 (std::make_optional):
5615 (WTF::valueOrCompute):
5616 (std::hash<std::optional<T>>::operator() const):
5617 * StitchMarker/wtf/ParkingLot.cpp: Added.
5618 (WTF::ParkingLot::parkConditionallyImpl):
5619 (WTF::ParkingLot::unparkOne):
5620 (WTF::ParkingLot::unparkOneImpl):
5621 (WTF::ParkingLot::unparkCount):
5622 (WTF::ParkingLot::unparkAll):
5623 (WTF::ParkingLot::forEachImpl):
5624 * StitchMarker/wtf/ParkingLot.h: Added.
5625 (WTF::ParkingLot::parkConditionally):
5626 (WTF::ParkingLot::compareAndPark):
5627 (WTF::ParkingLot::unparkOne):
5628 (WTF::ParkingLot::forEach):
5629 * StitchMarker/wtf/Platform.h: Added.
5630 * StitchMarker/wtf/PlatformRegisters.h: Added.
5631 (WTF::registersFromUContext):
5632 * StitchMarker/wtf/PrintStream.cpp: Added.
5633 (WTF::PrintStream::PrintStream):
5634 (WTF::PrintStream::~PrintStream):
5635 (WTF::PrintStream::printf):
5636 (WTF::PrintStream::printfVariableFormat):
5637 (WTF::PrintStream::flush):
5638 (WTF::PrintStream::begin):
5639 (WTF::PrintStream::end):
5640 (WTF::printInternal):
5641 (WTF::dumpCharacter):
5642 * StitchMarker/wtf/PrintStream.h: Added.
5643 (WTF::boolForPrinting):
5644 (WTF::PrintStream::atomically):
5645 (WTF::PrintStream::print):
5646 (WTF::PrintStream::println):
5647 (WTF::PrintStream::printImpl):
5648 (WTF::printInternal):
5649 (WTF::PointerDump::PointerDump):
5650 (WTF::PointerDump::dump const):
5651 (WTF::pointerDump):
5652 (WTF::ValueInContext::ValueInContext):
5653 (WTF::ValueInContext::dump const):
5654 (WTF::inContext):
5655 (WTF::PointerDumpInContext::PointerDumpInContext):
5656 (WTF::PointerDumpInContext::dump const):
5657 (WTF::pointerDumpInContext):
5658 (WTF::ValueIgnoringContext::ValueIgnoringContext):
5659 (WTF::ValueIgnoringContext::dump const):
5660 (WTF::ignoringContext):
5661 (WTF::>::unpack):
5662 (WTF::FormatImpl::FormatImpl):
5663 (WTF::FormatImpl::dump const):
5664 * StitchMarker/wtf/ProcessID.h: Added.
5665 (WTF::getCurrentProcessID):
5666 * StitchMarker/wtf/RandomNumberSeed.h: Added.
5667 (WTF::initializeRandomNumberGenerator):
5668 * StitchMarker/wtf/RawPointer.h: Added.
5669 (WTF::RawPointer::RawPointer):
5670 (WTF::RawPointer::value const):
5671 * StitchMarker/wtf/RecursiveLockAdapter.h: Added.
5672 (WTF::RecursiveLockAdapter::RecursiveLockAdapter):
5673 (WTF::RecursiveLockAdapter::lock):
5674 (WTF::RecursiveLockAdapter::unlock):
5675 (WTF::RecursiveLockAdapter::tryLock):
5676 (WTF::RecursiveLockAdapter::isLocked const):
5677 * StitchMarker/wtf/Ref.h: Added.
5678 (WTF::adopted):
5679 (WTF::Ref::~Ref):
5680 (WTF::Ref::Ref):
5681 (WTF::Ref::isHashTableDeletedValue const):
5682 (WTF::Ref::hashTableDeletedValue):
5683 (WTF::Ref::isHashTableEmptyValue const):
5684 (WTF::Ref::hashTableEmptyValue):
5685 (WTF::Ref::ptrAllowingHashTableEmptyValue const):
5686 (WTF::Ref::ptrAllowingHashTableEmptyValue):
5687 (WTF::Ref::assignToHashTableEmptyValue):
5688 (WTF::Ref::operator-> const):
5689 (WTF::Ref::get const):
5690 (WTF::Ref::operator T& const):
5691 (WTF::Ref::operator! const):
5692 (WTF::=):
5693 (WTF::Ref<T>::swap):
5694 (WTF::swap):
5695 (WTF::Ref<T>::replace):
5696 (WTF::static_reference_cast):
5697 (WTF::GetPtrHelper<Ref<T>>::getPtr):
5698 (WTF::adoptRef):
5699 (WTF::makeRef):
5700 (WTF::is):
5701 * StitchMarker/wtf/RefCounted.h: Added.
5702 (WTF::RefCountedBase::ref const):
5703 (WTF::RefCountedBase::hasOneRef const):
5704 (WTF::RefCountedBase::refCount const):
5705 (WTF::RefCountedBase::relaxAdoptionRequirement):
5706 (WTF::RefCountedBase::RefCountedBase):
5707 (WTF::RefCountedBase::~RefCountedBase):
5708 (WTF::RefCountedBase::derefBase const):
5709 (WTF::RefCountedBase::deletionHasBegun const):
5710 (WTF::adopted):
5711 (WTF::RefCounted::deref const):
5712 (WTF::RefCounted::RefCounted):
5713 (WTF::RefCounted::~RefCounted):
5714 * StitchMarker/wtf/RefPtr.h: Added.
5715 (WTF::refIfNotNull):
5716 (WTF::derefIfNotNull):
5717 (WTF::RefPtr::RefPtr):
5718 (WTF::RefPtr::isHashTableDeletedValue const):
5719 (WTF::RefPtr::~RefPtr):
5720 (WTF::RefPtr::get const):
5721 (WTF::RefPtr::releaseNonNull):
5722 (WTF::RefPtr::releaseConstNonNull):
5723 (WTF::RefPtr::operator* const):
5724 (WTF::RefPtr::operator-> const):
5725 (WTF::RefPtr::operator! const):
5726 (WTF::RefPtr::operator UnspecifiedBoolType const):
5727 (WTF::RefPtr::hashTableDeletedValue):
5728 (WTF::RefPtr<T>::RefPtr):
5729 (WTF::RefPtr<T>::leakRef):
5730 (WTF::=):
5731 (WTF::RefPtr<T>::swap):
5732 (WTF::swap):
5733 (WTF::operator==):
5734 (WTF::operator!=):
5735 (WTF::static_pointer_cast):
5736 (WTF::adoptRef):
5737 (WTF::makeRefPtr):
5738 * StitchMarker/wtf/RetainPtr.h: Added.
5739 (WTF::RetainPtr::RetainPtr):
5740 (WTF::RetainPtr::isHashTableDeletedValue const):
5741 (WTF::RetainPtr::get const):
5742 (WTF::RetainPtr::operator-> const):
5743 (WTF::RetainPtr::operator PtrType const):
5744 (WTF::RetainPtr::operator bool const):
5745 (WTF::RetainPtr::operator! const):
5746 (WTF::RetainPtr::operator UnspecifiedBoolType const):
5747 (WTF::RetainPtr::hashTableDeletedValue):
5748 (WTF::RetainPtr::fromStorageTypeHelper const):
5749 (WTF::RetainPtr::fromStorageType const):
5750 (WTF::RetainPtr::toStorageType const):
5751 (WTF::RetainPtr<T>::~RetainPtr):
5752 (WTF::RetainPtr<T>::RetainPtr):
5753 (WTF::RetainPtr<T>::clear):
5754 (WTF::RetainPtr<T>::leakRef):
5755 (WTF::RetainPtr<T>::autorelease):
5756 (WTF::=):
5757 (WTF::RetainPtr<T>::swap):
5758 (WTF::swap):
5759 (WTF::operator==):
5760 (WTF::operator!=):
5761 (WTF::adoptCF):
5762 (WTF::adoptNS):
5763 (WTF::retainPtr):
5764 (WTF::RetainPtrObjectHashTraits::emptyValue):
5765 (WTF::RetainPtrObjectHash::hash):
5766 (WTF::RetainPtrObjectHash::equal):
5767 (WTF::dynamic_objc_cast):
5768 * StitchMarker/wtf/RunLoop.cpp: Added.
5769 (WTF::RunLoop::Holder::Holder):
5770 (WTF::RunLoop::Holder::runLoop):
5771 (WTF::RunLoop::initializeMainRunLoop):
5772 (WTF::RunLoop::current):
5773 (WTF::RunLoop::main):
5774 (WTF::RunLoop::isMain):
5775 (WTF::RunLoop::performWork):
5776 (WTF::RunLoop::dispatch):
5777 * StitchMarker/wtf/RunLoop.h: Added.
5778 (WTF::RunLoop::mainContext const):
5779 (WTF::RunLoop::TimerBase::startRepeating):
5780 (WTF::RunLoop::TimerBase::startOneShot):
5781 (WTF::RunLoop::TimerBase::startInternal):
5782 (WTF::RunLoop::Timer::Timer):
5783 * StitchMarker/wtf/ScopedLambda.h: Added.
5784 (WTF::ScopedLambda<ResultType):
5785 (WTF::scopedLambda):
5786 (WTF::scopedLambdaRef):
5787 * StitchMarker/wtf/Seconds.cpp: Added.
5788 (WTF::Seconds::operator+ const):
5789 (WTF::Seconds::operator- const):
5790 (WTF::Seconds::dump const):
5791 (WTF::sleep):
5792 * StitchMarker/wtf/Seconds.h: Added.
5793 (WTF::Seconds::Seconds):
5794 (WTF::Seconds::value const):
5795 (WTF::Seconds::minutes const):
5796 (WTF::Seconds::seconds const):
5797 (WTF::Seconds::milliseconds const):
5798 (WTF::Seconds::microseconds const):
5799 (WTF::Seconds::nanoseconds const):
5800 (WTF::Seconds::minutesAs const):
5801 (WTF::Seconds::secondsAs const):
5802 (WTF::Seconds::millisecondsAs const):
5803 (WTF::Seconds::microsecondsAs const):
5804 (WTF::Seconds::nanosecondsAs const):
5805 (WTF::Seconds::fromMinutes):
5806 (WTF::Seconds::fromHours):
5807 (WTF::Seconds::fromMilliseconds):
5808 (WTF::Seconds::fromMicroseconds):
5809 (WTF::Seconds::fromNanoseconds):
5810 (WTF::Seconds::infinity):
5811 (WTF::Seconds::operator bool const):
5812 (WTF::Seconds::operator+ const):
5813 (WTF::Seconds::operator- const):
5814 (WTF::Seconds::operator* const):
5815 (WTF::Seconds::operator/ const):
5816 (WTF::Seconds::operator% const):
5817 (WTF::Seconds::operator+=):
5818 (WTF::Seconds::operator-=):
5819 (WTF::Seconds::operator*=):
5820 (WTF::Seconds::operator/=):
5821 (WTF::Seconds::operator%=):
5822 (WTF::Seconds::operator== const):
5823 (WTF::Seconds::operator!= const):
5824 (WTF::Seconds::operator< const):
5825 (WTF::Seconds::operator> const):
5826 (WTF::Seconds::operator<= const):
5827 (WTF::Seconds::operator>= const):
5828 (WTF::seconds_literals::operator _min):
5829 (WTF::seconds_literals::operator _h):
5830 (WTF::seconds_literals::operator _s):
5831 (WTF::seconds_literals::operator _ms):
5832 (WTF::seconds_literals::operator _us):
5833 (WTF::seconds_literals::operator _ns):
5834 (std::isnan):
5835 (std::isinf):
5836 (std::isfinite):
5837 * StitchMarker/wtf/StackBounds.cpp: Added.
5838 (WTF::StackBounds::newThreadStackBounds):
5839 (WTF::StackBounds::currentThreadStackBoundsInternal):
5840 * StitchMarker/wtf/StackBounds.h: Added.
5841 (WTF::StackBounds::emptyBounds):
5842 (WTF::StackBounds::currentThreadStackBounds):
5843 (WTF::StackBounds::origin const):
5844 (WTF::StackBounds::end const):
5845 (WTF::StackBounds::size const):
5846 (WTF::StackBounds::isEmpty const):
5847 (WTF::StackBounds::contains const):
5848 (WTF::StackBounds::recursionLimit const):
5849 (WTF::StackBounds::isGrowingDownward const):
5850 (WTF::StackBounds::StackBounds):
5851 (WTF::StackBounds::checkConsistency const):
5852 * StitchMarker/wtf/StackStats.h: Added.
5853 (WTF::StackStats::CheckPoint::CheckPoint):
5854 (WTF::StackStats::PerThreadStats::PerThreadStats):
5855 (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
5856 (WTF::StackStats::probe):
5857 * StitchMarker/wtf/StackTrace.cpp: Added.
5858 (WTFGetBacktrace):
5859 (WTF::StackTrace::instanceSize):
5860 (WTF::StackTrace::captureStackTrace):
5861 (WTF::StackTrace::demangle):
5862 (WTF::StackTrace::dump const):
5863 * StitchMarker/wtf/StackTrace.h: Added.
5864 (WTF::StackTrace::StackTrace):
5865 (WTF::StackTrace::size const):
5866 (WTF::StackTrace::stack const):
5867 (WTF::StackTrace::DemangleEntry::mangledName const):
5868 (WTF::StackTrace::DemangleEntry::demangledName const):
5869 (WTF::StackTrace::DemangleEntry::DemangleEntry):
5870 * StitchMarker/wtf/StdLibExtras.h: Added.
5871 (isPointerTypeAlignmentOkay):
5872 (reinterpret_cast_ptr):
5873 (WTF::isPointerAligned):
5874 (WTF::is8ByteAligned):
5875 (WTF::bitwise_cast):
5876 (WTF::safeCast):
5877 (WTF::bitCount):
5878 (WTF::roundUpToMultipleOfImpl0):
5879 (WTF::roundUpToMultipleOfImpl):
5880 (WTF::roundUpToMultipleOf):
5881 (WTF::binarySearchImpl):
5882 (WTF::binarySearch):
5883 (WTF::tryBinarySearch):
5884 (WTF::approximateBinarySearch):
5885 (WTF::insertIntoBoundedVector):
5886 (WTF::isStatelessLambda):
5887 (WTF::callStatelessLambda):
5888 (WTF::checkAndSet):
5889 (WTF::findBitInWord):
5890 (WTF::Visitor::Visitor):
5891 (WTF::Visitor<A>::Visitor):
5892 (WTF::mergeDeduplicatedSorted):
5893 (operator new):
5894 (std::make_unique):
5895 (std::exchange):
5896 (std::move):
5897 * StitchMarker/wtf/StringExtras.h: Added.
5898 (strncasecmp):
5899 (strcasecmp):
5900 (strnstr):
5901 * StitchMarker/wtf/StringPrintStream.h: Added.
5902 (WTF::StringPrintStream::length const):
5903 (WTF::toCString):
5904 (WTF::toString):
5905 * StitchMarker/wtf/SystemFree.h: Added.
5906 (WTF::SystemFree::operator() const):
5907 (WTF::SystemFree<T::operator() const):
5908 * StitchMarker/wtf/ThreadGroup.h: Added.
5909 (WTF::ThreadGroup::create):
5910 (WTF::ThreadGroup::threads const):
5911 (WTF::ThreadGroup::getLock):
5912 (WTF::ThreadGroup::weakFromThis):
5913 * StitchMarker/wtf/ThreadHolder.cpp: Added.
5914 (WTF::ThreadHolder::~ThreadHolder):
5915 * StitchMarker/wtf/ThreadHolder.h: Added.
5916 (WTF::ThreadHolder::thread):
5917 (WTF::ThreadHolder::ThreadHolder):
5918 * StitchMarker/wtf/ThreadHolderPthreads.cpp: Added.
5919 (WTF::ThreadHolder::initializeOnce):
5920 (WTF::ThreadHolder::current):
5921 (WTF::ThreadHolder::initialize):
5922 (WTF::ThreadHolder::destruct):
5923 * StitchMarker/wtf/ThreadMessage.h: Added.
5924 (WTF::sendMessage):
5925 * StitchMarker/wtf/ThreadSafeRefCounted.h: Added.
5926 (WTF::ThreadSafeRefCountedBase::ref const):
5927 (WTF::ThreadSafeRefCountedBase::hasOneRef const):
5928 (WTF::ThreadSafeRefCountedBase::refCount const):
5929 (WTF::ThreadSafeRefCountedBase::derefBase const):
5930 (WTF::ThreadSafeRefCounted::deref const):
5931 * StitchMarker/wtf/ThreadSpecific.h: Added.
5932 (WTF::ThreadSpecific::Data::Data):
5933 (WTF::threadSpecificKeyCreate):
5934 (WTF::threadSpecificKeyDelete):
5935 (WTF::threadSpecificSet):
5936 (WTF::threadSpecificGet):
5937 (WTF::canBeGCThread>::ThreadSpecific):
5938 (WTF::canBeGCThread>::get):
5939 (WTF::canBeGCThread>::set):
5940 (WTF::canBeGCThread>::~ThreadSpecific):
5941 (WTF::canBeGCThread>::destroy):
5942 (WTF::canBeGCThread>::isSet):
5943 (WTF::T):
5944 (WTF::canBeGCThread>::operator):
5945 (WTF::canBeGCThread>::replace):
5946 * StitchMarker/wtf/Threading.cpp: Added.
5947 (WTF::Thread::NewThreadContext::NewThreadContext):
5948 (WTF::Thread::normalizeThreadName):
5949 (WTF::Thread::entryPoint):
5950 (WTF::Thread::create):
5951 (WTF::Thread::currentMayBeNull):
5952 (WTF::shouldRemoveThreadFromThreadGroup):
5953 (WTF::Thread::didExit):
5954 (WTF::Thread::addToThreadGroup):
5955 (WTF::Thread::removeFromThreadGroup):
5956 (WTF::Thread::setCurrentThreadIsUserInteractive):
5957 (WTF::Thread::setCurrentThreadIsUserInitiated):
5958 (WTF::Thread::setGlobalMaxQOSClass):
5959 (WTF::Thread::adjustedQOSClass):
5960 (WTF::Thread::dump const):
5961 (WTF::initializeThreading):
5962 * StitchMarker/wtf/Threading.h: Added.
5963 (WTF::Thread::id const):
5964 (WTF::Thread::operator==):
5965 (WTF::Thread::operator!=):
5966 (WTF::Thread::stack const):
5967 (WTF::Thread::machThread):
5968 (WTF::Thread::joinableState):
5969 (WTF::Thread::didBecomeDetached):
5970 (WTF::Thread::didJoin):
5971 (WTF::Thread::hasExited):
5972 (WTF::currentThread):
5973 * StitchMarker/wtf/ThreadingPrimitives.h: Added.
5974 (WTF::Mutex::impl):
5975 * StitchMarker/wtf/ThreadingPthreads.cpp: Added.
5976 (WTF::Thread::Thread):
5977 (WTF::Thread::~Thread):
5978 (WTF::getApproximateStackPointer):
5979 (WTF::isOnAlternativeSignalStack):
5980 (WTF::Thread::signalHandlerSuspendResume):
5981 (WTF::Thread::initializePlatformThreading):
5982 (WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
5983 (WTF::wtfThreadEntryPoint):
5984 (WTF::Thread::establishHandle):
5985 (WTF::Thread::initializeCurrentThreadInternal):
5986 (WTF::Thread::changePriority):
5987 (WTF::Thread::waitForCompletion):
5988 (WTF::Thread::detach):
5989 (WTF::Thread::current):
5990 (WTF::Thread::currentID):
5991 (WTF::Thread::signal):
5992 (WTF::Thread::suspend):
5993 (WTF::Thread::resume):
5994 (WTF::threadStateMetadata):
5995 (WTF::Thread::getRegisters):
5996 (WTF::Thread::establishPlatformSpecificHandle):
5997 (WTF::Mutex::Mutex):
5998 (WTF::Mutex::~Mutex):
5999 (WTF::Mutex::lock):
6000 (WTF::Mutex::tryLock):
6001 (WTF::Mutex::unlock):
6002 (WTF::ThreadCondition::ThreadCondition):
6003 (WTF::ThreadCondition::~ThreadCondition):
6004 (WTF::ThreadCondition::wait):
6005 (WTF::ThreadCondition::timedWait):
6006 (WTF::ThreadCondition::signal):
6007 (WTF::ThreadCondition::broadcast):
6008 (WTF::Thread::yield):
6009 * StitchMarker/wtf/TimeWithDynamicClockType.cpp: Added.
6010 (WTF::TimeWithDynamicClockType::now):
6011 (WTF::TimeWithDynamicClockType::nowWithSameClock const):
6012 (WTF::TimeWithDynamicClockType::wallTime const):
6013 (WTF::TimeWithDynamicClockType::monotonicTime const):
6014 (WTF::TimeWithDynamicClockType::approximateWallTime const):
6015 (WTF::TimeWithDynamicClockType::approximateMonotonicTime const):
6016 (WTF::TimeWithDynamicClockType::operator- const):
6017 (WTF::TimeWithDynamicClockType::operator< const):
6018 (WTF::TimeWithDynamicClockType::operator> const):
6019 (WTF::TimeWithDynamicClockType::operator<= const):
6020 (WTF::TimeWithDynamicClockType::operator>= const):
6021 (WTF::TimeWithDynamicClockType::dump const):
6022 (WTF::sleep):
6023 (WTF::hasElapsed):
6024 * StitchMarker/wtf/TimeWithDynamicClockType.h: Added.
6025 (WTF::TimeWithDynamicClockType::TimeWithDynamicClockType):
6026 (WTF::TimeWithDynamicClockType::fromRawSeconds):
6027 (WTF::TimeWithDynamicClockType::secondsSinceEpoch const):
6028 (WTF::TimeWithDynamicClockType::clockType const):
6029 (WTF::TimeWithDynamicClockType::withSameClockAndRawSeconds const):
6030 (WTF::TimeWithDynamicClockType::operator bool const):
6031 (WTF::TimeWithDynamicClockType::operator+ const):
6032 (WTF::TimeWithDynamicClockType::operator- const):
6033 (WTF::TimeWithDynamicClockType::operator+=):
6034 (WTF::TimeWithDynamicClockType::operator-=):
6035 (WTF::TimeWithDynamicClockType::operator== const):
6036 (WTF::TimeWithDynamicClockType::operator!= const):
6037 (std::isnan):
6038 (std::isinf):
6039 (std::isfinite):
6040 * StitchMarker/wtf/TypeCasts.h: Added.
6041 (WTF::TypeCastTraits::isOfType):
6042 (WTF::is):
6043 (WTF::downcast):
6044 * StitchMarker/wtf/ValueCheck.h: Added.
6045 (WTF::ValueCheck::checkConsistency):
6046 (WTF::ValueCheck<P::checkConsistency):
6047 * StitchMarker/wtf/Variant.h: Added.
6048 (WTF::in_place):
6049 (WTF::__throw_bad_variant_access):
6050 (WTF::=):
6051 (WTF::__variant_storage::__get):
6052 (WTF::__variant_storage::__get_rref):
6053 (WTF::__variant_storage::__destroy):
6054 (WTF::__storage_wrapper::__construct):
6055 (WTF::__storage_wrapper::__storage_wrapper):
6056 (WTF::__storage_wrapper::__get):
6057 (WTF::__storage_wrapper::__get const):
6058 (WTF::__storage_wrapper::__destroy):
6059 (WTF::__storage_wrapper<_Type::__storage_wrapper):
6060 (WTF::__storage_wrapper<_Type::__get):
6061 (WTF::__storage_wrapper<_Type::__get const):
6062 (WTF::__variant_base::~__variant_base):
6063 (WTF::__backup_storage_ops::__move_construct_func):
6064 (WTF::__backup_storage_ops::__destroy_func):
6065 (WTF::__backup_storage::__backup_storage):
6066 (WTF::__backup_storage::__destroy):
6067 (WTF::__backup_storage::~__backup_storage):
6068 (WTF::Variant<>::swap):
6069 (WTF::__NOEXCEPT_):
6070 (WTF::__variant_accessor::get):
6071 (WTF::get):
6072 (WTF::get_if):
6073 (WTF::__visitor_table::__trampoline_func):
6074 (WTF::visit):
6075 (WTF::__arg_selector):
6076 (WTF::__visit_helper2::__visit):
6077 (WTF::operator==):
6078 (WTF::operator!=):
6079 (WTF::operator<):
6080 (WTF::operator>):
6081 (WTF::operator>=):
6082 (WTF::operator<=):
6083 (WTF::__hash_visitor::operator()):
6084 (WTF::switchOn):
6085 * StitchMarker/wtf/Vector.h: Added.
6086 (WTF::VectorTypeOperations::destruct):
6087 (WTF::VectorTypeOperations::initialize):
6088 (WTF::VectorTypeOperations::move):
6089 (WTF::VectorTypeOperations::moveOverlapping):
6090 (WTF::VectorTypeOperations::uninitializedCopy):
6091 (WTF::VectorTypeOperations::uninitializedFill):
6092 (WTF::VectorTypeOperations::compare):
6093 (WTF::VectorBufferBase::allocateBuffer):
6094 (WTF::VectorBufferBase::tryAllocateBuffer):
6095 (WTF::VectorBufferBase::shouldReallocateBuffer const):
6096 (WTF::VectorBufferBase::reallocateBuffer):
6097 (WTF::VectorBufferBase::deallocateBuffer):
6098 (WTF::VectorBufferBase::buffer):
6099 (WTF::VectorBufferBase::buffer const):
6100 (WTF::VectorBufferBase::bufferMemoryOffset):
6101 (WTF::VectorBufferBase::capacity const):
6102 (WTF::VectorBufferBase::releaseBuffer):
6103 (WTF::VectorBufferBase::VectorBufferBase):
6104 (WTF::VectorBufferBase::~VectorBufferBase):
6105 (WTF::VectorBuffer::VectorBuffer):
6106 (WTF::VectorBuffer::~VectorBuffer):
6107 (WTF::VectorBuffer::allocateBuffer):
6108 (WTF::VectorBuffer::tryAllocateBuffer):
6109 (WTF::VectorBuffer::deallocateBuffer):
6110 (WTF::VectorBuffer::shouldReallocateBuffer const):
6111 (WTF::VectorBuffer::reallocateBuffer):
6112 (WTF::VectorBuffer::swap):
6113 (WTF::VectorBuffer::restoreInlineBufferIfNeeded):
6114 (WTF::VectorBuffer::endOfBuffer):
6115 (WTF::VectorBuffer::releaseBuffer):
6116 (WTF::VectorBuffer::swapInlineBuffer):
6117 (WTF::VectorBuffer::swapInlineBuffers):
6118 (WTF::VectorBuffer::inlineBuffer):
6119 (WTF::VectorBuffer::inlineBuffer const):
6120 (WTF::UnsafeVectorOverflow::overflowed):
6121 (WTF::Vector::Vector):
6122 (WTF::Vector::~Vector):
6123 (WTF::Vector::size const):
6124 (WTF::Vector::sizeMemoryOffset):
6125 (WTF::Vector::capacity const):
6126 (WTF::Vector::isEmpty const):
6127 (WTF::Vector::at):
6128 (WTF::Vector::at const):
6129 (WTF::Vector::operator[]):
6130 (WTF::Vector::operator[] const):
6131 (WTF::Vector::data):
6132 (WTF::Vector::data const):
6133 (WTF::Vector::dataMemoryOffset):
6134 (WTF::Vector::begin):
6135 (WTF::Vector::end):
6136 (WTF::Vector::begin const):
6137 (WTF::Vector::end const):
6138 (WTF::Vector::rbegin):
6139 (WTF::Vector::rend):
6140 (WTF::Vector::rbegin const):
6141 (WTF::Vector::rend const):
6142 (WTF::Vector::first):
6143 (WTF::Vector::first const):
6144 (WTF::Vector::last):
6145 (WTF::Vector::last const):
6146 (WTF::Vector::takeLast):
6147 (WTF::Vector::shrinkToFit):
6148 (WTF::Vector::clear):
6149 (WTF::Vector::append):
6150 (WTF::Vector::uncheckedAppend):
6151 (WTF::Vector::removeLast):
6152 (WTF::Vector::fill):
6153 (WTF::Vector::swap):
6154 (WTF::Vector::asanSetBufferSizeToFullCapacity):
6155 (WTF::minCapacity>::Vector):
6156 (WTF::=):
6157 (WTF::typelessPointersAreEqual):
6158 (WTF::minCapacity>::contains const):
6159 (WTF::minCapacity>::findMatching const):
6160 (WTF::minCapacity>::find const):
6161 (WTF::minCapacity>::reverseFind const):
6162 (WTF::minCapacity>::appendIfNotContains):
6163 (WTF::minCapacity>::fill):
6164 (WTF::minCapacity>::appendRange):
6165 (WTF::minCapacity>::expandCapacity):
6166 (WTF::minCapacity>::tryExpandCapacity):
6167 (WTF::minCapacity>::resize):
6168 (WTF::minCapacity>::resizeToFit):
6169 (WTF::minCapacity>::shrink):
6170 (WTF::minCapacity>::grow):
6171 (WTF::minCapacity>::asanSetInitialBufferSizeTo):
6172 (WTF::minCapacity>::asanSetBufferSizeToFullCapacity):
6173 (WTF::minCapacity>::asanBufferSizeWillChangeTo):
6174 (WTF::minCapacity>::reserveCapacity):
6175 (WTF::minCapacity>::tryReserveCapacity):
6176 (WTF::minCapacity>::reserveInitialCapacity):
6177 (WTF::minCapacity>::shrinkCapacity):
6178 (WTF::minCapacity>::append):
6179 (WTF::minCapacity>::tryAppend):
6180 (WTF::minCapacity>::constructAndAppend):
6181 (WTF::minCapacity>::tryConstructAndAppend):
6182 (WTF::minCapacity>::appendSlowCase):
6183 (WTF::minCapacity>::constructAndAppendSlowCase):
6184 (WTF::minCapacity>::tryConstructAndAppendSlowCase):
6185 (WTF::minCapacity>::uncheckedAppend):
6186 (WTF::minCapacity>::appendVector):
6187 (WTF::minCapacity>::insert):
6188 (WTF::minCapacity>::insertVector):
6189 (WTF::minCapacity>::remove):
6190 (WTF::minCapacity>::removeFirst):
6191 (WTF::minCapacity>::removeFirstMatching):
6192 (WTF::minCapacity>::removeAll):
6193 (WTF::minCapacity>::removeAllMatching):
6194 (WTF::minCapacity>::reverse):
6195 (WTF::minCapacity>::map const):
6196 (WTF::minCapacity>::releaseBuffer):
6197 (WTF::minCapacity>::checkConsistency):
6198 (WTF::swap):
6199 (WTF::operator==):
6200 (WTF::operator!=):
6201 (WTF::ValueCheck<Vector<T>>::checkConsistency):
6202 (WTF::removeRepeatedElements):
6203 * StitchMarker/wtf/VectorTraits.h: Added.
6204 * StitchMarker/wtf/WTFThreadData.cpp: Added.
6205 (WTF::WTFThreadData::WTFThreadData):
6206 (WTF::WTFThreadData::~WTFThreadData):
6207 (WTF::WTFThreadData::createAndRegisterForGetspecificDirect):
6208 * StitchMarker/wtf/WTFThreadData.h: Added.
6209 (WTF::WTFThreadData::atomicStringTable):
6210 (WTF::WTFThreadData::setCurrentAtomicStringTable):
6211 (WTF::WTFThreadData::stack):
6212 (WTF::WTFThreadData::stackStats):
6213 (WTF::WTFThreadData::savedStackPointerAtVMEntry):
6214 (WTF::WTFThreadData::setSavedStackPointerAtVMEntry):
6215 (WTF::WTFThreadData::savedLastStackTop):
6216 (WTF::WTFThreadData::setSavedLastStackTop):
6217 (WTF::wtfThreadData):
6218 * StitchMarker/wtf/WallTime.cpp: Added.
6219 (WTF::WallTime::now):
6220 (WTF::WallTime::approximateMonotonicTime const):
6221 (WTF::WallTime::dump const):
6222 * StitchMarker/wtf/WallTime.h: Added.
6223 (WTF::WallTime::WallTime):
6224 (WTF::WallTime::fromRawSeconds):
6225 (WTF::WallTime::infinity):
6226 (WTF::WallTime::secondsSinceEpoch const):
6227 (WTF::WallTime::approximateWallTime const):
6228 (WTF::WallTime::operator bool const):
6229 (WTF::WallTime::operator+ const):
6230 (WTF::WallTime::operator- const):
6231 (WTF::WallTime::operator+=):
6232 (WTF::WallTime::operator-=):
6233 (WTF::WallTime::operator== const):
6234 (WTF::WallTime::operator!= const):
6235 (WTF::WallTime::operator< const):
6236 (WTF::WallTime::operator> const):
6237 (WTF::WallTime::operator<= const):
6238 (WTF::WallTime::operator>= const):
6239 (std::isnan):
6240 (std::isinf):
6241 (std::isfinite):
6242 * StitchMarker/wtf/WeakRandom.h: Added.
6243 (WTF::WeakRandom::WeakRandom):
6244 (WTF::WeakRandom::setSeed):
6245 (WTF::WeakRandom::seed const):
6246 (WTF::WeakRandom::get):
6247 (WTF::WeakRandom::getUint32):
6248 (WTF::WeakRandom::lowOffset):
6249 (WTF::WeakRandom::highOffset):
6250 (WTF::WeakRandom::advance):
6251 * StitchMarker/wtf/WordLock.cpp: Added.
6252 (WTF::WordLockBase::lockSlow):
6253 (WTF::WordLockBase::unlockSlow):
6254 * StitchMarker/wtf/WordLock.h: Added.
6255 (WTF::WordLockBase::lock):
6256 (WTF::WordLockBase::unlock):
6257 (WTF::WordLockBase::isHeld const):
6258 (WTF::WordLockBase::isLocked const):
6259 (WTF::WordLockBase::isFullyReset const):
6260 (WTF::WordLock::WordLock):
6261 * StitchMarker/wtf/benchmarks/ConditionSpeedTest.cpp: Added.
6262 (main):
6263 * StitchMarker/wtf/benchmarks/LockFairnessTest.cpp: Added.
6264 (main):
6265 * StitchMarker/wtf/benchmarks/LockSpeedTest.cpp: Added.
6266 (main):
6267 * StitchMarker/wtf/benchmarks/ToyLocks.h: Added.
6268 * StitchMarker/wtf/dependencies/bmalloc/Algorithm.h: Added.
6269 (bmalloc::max):
6270 (bmalloc::min):
6271 (bmalloc::mask):
6272 (bmalloc::test):
6273 (bmalloc::isPowerOfTwo):
6274 (bmalloc::roundUpToMultipleOf):
6275 (bmalloc::roundDownToMultipleOf):
6276 (bmalloc::divideRoundingUp):
6277 (bmalloc::roundUpToMultipleOfNonPowerOfTwo):
6278 (bmalloc::sizeOf):
6279 (bmalloc::bitCount):
6280 (bmalloc::clzl):
6281 (bmalloc::clzl<1>):
6282 (bmalloc::__builtin_clzl):
6283 (bmalloc::log2):
6284 * StitchMarker/wtf/dependencies/bmalloc/AllocationKind.h: Added.
6285 * StitchMarker/wtf/dependencies/bmalloc/Allocator.cpp: Added.
6286 (bmalloc::Allocator::Allocator):
6287 (bmalloc::Allocator::~Allocator):
6288 (bmalloc::Allocator::tryAllocate):
6289 (bmalloc::Allocator::allocate):
6290 (bmalloc::Allocator::allocateImpl):
6291 (bmalloc::Allocator::reallocate):
6292 (bmalloc::Allocator::scavenge):
6293 (bmalloc::Allocator::refillAllocatorSlowCase):
6294 (bmalloc::Allocator::refillAllocator):
6295 (bmalloc::Allocator::allocateLarge):
6296 (bmalloc::Allocator::allocateLogSizeClass):
6297 (bmalloc::Allocator::allocateSlowCase):
6298 * StitchMarker/wtf/dependencies/bmalloc/Allocator.h: Added.
6299 (bmalloc::Allocator::allocateFastCase):
6300 (bmalloc::Allocator::allocate):
6301 * StitchMarker/wtf/dependencies/bmalloc/AsyncTask.h: Added.
6302 (bmalloc::AsyncTask::willRun):
6303 (bmalloc::AsyncTask::willRunSoon):
6304 (bmalloc::Function>::AsyncTask):
6305 (bmalloc::Function>::~AsyncTask):
6306 (bmalloc::Function>::run):
6307 (bmalloc::Function>::runSoon):
6308 (bmalloc::Function>::threadEntryPoint):
6309 (bmalloc::Function>::threadRunLoop):
6310 * StitchMarker/wtf/dependencies/bmalloc/AvailableMemory.h: Added.
6311 (bmalloc::MemoryStatus::MemoryStatus):
6312 (bmalloc::memoryFootprint):
6313 (bmalloc::percentAvailableMemoryInUse):
6314 (bmalloc::isUnderMemoryPressure):
6315 * StitchMarker/wtf/dependencies/bmalloc/BAssert.h: Added.
6316 * StitchMarker/wtf/dependencies/bmalloc/BExport.h: Added.
6317 * StitchMarker/wtf/dependencies/bmalloc/BPlatform.h: Added.
6318 * StitchMarker/wtf/dependencies/bmalloc/BumpAllocator.h: Added.
6319 (bmalloc::BumpAllocator::size):
6320 (bmalloc::BumpAllocator::isNull):
6321 (bmalloc::BumpAllocator::canAllocate):
6322 (bmalloc::BumpAllocator::BumpAllocator):
6323 (bmalloc::BumpAllocator::init):
6324 (bmalloc::BumpAllocator::allocate):
6325 (bmalloc::BumpAllocator::refill):
6326 (bmalloc::BumpAllocator::clear):
6327 * StitchMarker/wtf/dependencies/bmalloc/BumpRange.h: Added.
6328 * StitchMarker/wtf/dependencies/bmalloc/Cache.cpp: Added.
6329 (bmalloc::Cache::scavenge):
6330 (bmalloc::Cache::Cache):
6331 (bmalloc::Cache::tryAllocateSlowCaseNullCache):
6332 (bmalloc::Cache::allocateSlowCaseNullCache):
6333 (bmalloc::Cache::deallocateSlowCaseNullCache):
6334 (bmalloc::Cache::reallocateSlowCaseNullCache):
6335 * StitchMarker/wtf/dependencies/bmalloc/Cache.h: Added.
6336 (bmalloc::Cache::allocator):
6337 (bmalloc::Cache::deallocator):
6338 (bmalloc::Cache::tryAllocate):
6339 (bmalloc::Cache::allocate):
6340 (bmalloc::Cache::deallocate):
6341 (bmalloc::Cache::reallocate):
6342 * StitchMarker/wtf/dependencies/bmalloc/Chunk.h: Added.
6343 (bmalloc::Chunk::ref):
6344 (bmalloc::Chunk::deref):
6345 (bmalloc::Chunk::refCount):
6346 (bmalloc::Chunk::bytes):
6347 (bmalloc::Chunk::lines):
6348 (bmalloc::Chunk::pages):
6349 (bmalloc::Chunk::freePages):
6350 (bmalloc::ChunkHash::hash):
6351 (bmalloc::forEachPage):
6352 (bmalloc::Chunk::Chunk):
6353 (bmalloc::Chunk::get):
6354 (bmalloc::Chunk::offset):
6355 (bmalloc::Chunk::address):
6356 (bmalloc::Chunk::page):
6357 (bmalloc::Chunk::line):
6358 (bmalloc::SmallLine::begin):
6359 (bmalloc::SmallLine::end):
6360 (bmalloc::SmallPage::begin):
6361 (bmalloc::Object::Object):
6362 (bmalloc::Object::address):
6363 (bmalloc::Object::line):
6364 (bmalloc::Object::page):
6365 * StitchMarker/wtf/dependencies/bmalloc/Deallocator.cpp: Added.
6366 (bmalloc::Deallocator::Deallocator):
6367 (bmalloc::Deallocator::~Deallocator):
6368 (bmalloc::Deallocator::scavenge):
6369 (bmalloc::Deallocator::processObjectLog):
6370 (bmalloc::Deallocator::deallocateSlowCase):
6371 * StitchMarker/wtf/dependencies/bmalloc/Deallocator.h: Added.
6372 (bmalloc::Deallocator::lineCache):
6373 (bmalloc::Deallocator::deallocateFastCase):
6374 (bmalloc::Deallocator::deallocate):
6375 * StitchMarker/wtf/dependencies/bmalloc/DebugHeap.cpp: Added.
6376 (bmalloc::DebugHeap::DebugHeap):
6377 (bmalloc::DebugHeap::malloc):
6378 (bmalloc::DebugHeap::memalign):
6379 (bmalloc::DebugHeap::realloc):
6380 (bmalloc::DebugHeap::free):
6381 * StitchMarker/wtf/dependencies/bmalloc/DebugHeap.h: Added.
6382 * StitchMarker/wtf/dependencies/bmalloc/Environment.cpp: Added.
6383 (bmalloc::isMallocEnvironmentVariableSet):
6384 (bmalloc::isLibgmallocEnabled):
6385 (bmalloc::isSanitizerEnabled):
6386 (bmalloc::Environment::Environment):
6387 (bmalloc::Environment::computeIsDebugHeapEnabled):
6388 * StitchMarker/wtf/dependencies/bmalloc/Environment.h: Added.
6389 (bmalloc::Environment::isDebugHeapEnabled):
6390 * StitchMarker/wtf/dependencies/bmalloc/FixedVector.h: Added.
6391 (bmalloc::FixedVector::begin const):
6392 (bmalloc::FixedVector::end const):
6393 (bmalloc::FixedVector::size const):
6394 (bmalloc::FixedVector::capacity const):
6395 (bmalloc::FixedVector::clear):
6396 (bmalloc::FixedVector::isEmpty):
6397 (bmalloc::Capacity>::FixedVector):
6398 (bmalloc::Capacity>::operator):
6399 (bmalloc::Capacity>::push):
6400 (bmalloc::Capacity>::pop):
6401 (bmalloc::Capacity>::shrink):
6402 * StitchMarker/wtf/dependencies/bmalloc/Gigacage.cpp: Added.
6403 (Gigacage::Callback::Callback):
6404 (Gigacage::Callback::function):
6405 (Gigacage::Callbacks::Callbacks):
6406 (Gigacage::ensureGigacage):
6407 (Gigacage::disableGigacage):
6408 (Gigacage::addDisableCallback):
6409 (Gigacage::removeDisableCallback):
6410 (Gigacage::shouldBeEnabled):
6411 * StitchMarker/wtf/dependencies/bmalloc/Gigacage.h: Added.
6412 (Gigacage::caged):
6413 (Gigacage::isCaged):
6414 * StitchMarker/wtf/dependencies/bmalloc/Heap.cpp: Added.
6415 (bmalloc::Heap::Heap):
6416 (bmalloc::Heap::usingGigacage):
6417 (bmalloc::Heap::initializeLineMetadata):
6418 (bmalloc::Heap::initializePageMetadata):
6419 (bmalloc::Heap::concurrentScavenge):
6420 (bmalloc::Heap::scavenge):
6421 (bmalloc::Heap::scheduleScavengerIfUnderMemoryPressure):
6422 (bmalloc::Heap::scheduleScavenger):
6423 (bmalloc::Heap::deallocateLineCache):
6424 (bmalloc::Heap::allocateSmallChunk):
6425 (bmalloc::Heap::deallocateSmallChunk):
6426 (bmalloc::Heap::allocateSmallPage):
6427 (bmalloc::Heap::deallocateSmallLine):
6428 (bmalloc::Heap::allocateSmallBumpRangesByMetadata):
6429 (bmalloc::Heap::allocateSmallBumpRangesByObject):
6430 (bmalloc::Heap::splitAndAllocate):
6431 (bmalloc::Heap::tryAllocateLarge):
6432 (bmalloc::Heap::allocateLarge):
6433 (bmalloc::Heap::isLarge):
6434 (bmalloc::Heap::largeSize):
6435 (bmalloc::Heap::shrinkLarge):
6436 (bmalloc::Heap::deallocateLarge):
6437 * StitchMarker/wtf/dependencies/bmalloc/Heap.h: Added.
6438 (bmalloc::Heap::mutex):
6439 (bmalloc::Heap::kind const):
6440 (bmalloc::Heap::debugHeap):
6441 (bmalloc::Heap::LargeObjectHash::hash):
6442 (bmalloc::Heap::allocateSmallBumpRanges):
6443 (bmalloc::Heap::derefSmallLine):
6444 * StitchMarker/wtf/dependencies/bmalloc/HeapKind.h: Added.
6445 * StitchMarker/wtf/dependencies/bmalloc/Inline.h: Added.
6446 * StitchMarker/wtf/dependencies/bmalloc/LargeMap.cpp: Added.
6447 (bmalloc::LargeMap::remove):
6448 (bmalloc::LargeMap::add):
6449 * StitchMarker/wtf/dependencies/bmalloc/LargeMap.h: Added.
6450 (bmalloc::LargeMap::begin):
6451 (bmalloc::LargeMap::end):
6452 (bmalloc::LargeMap::ranges):
6453 * StitchMarker/wtf/dependencies/bmalloc/LargeRange.h: Added.
6454 (bmalloc::LargeRange::LargeRange):
6455 (bmalloc::LargeRange::physicalSize const):
6456 (bmalloc::LargeRange::setPhysicalSize):
6457 (bmalloc::LargeRange::operator< const):
6458 (bmalloc::canMerge):
6459 (bmalloc::merge):
6460 (bmalloc::LargeRange::split const):
6461 * StitchMarker/wtf/dependencies/bmalloc/LineMetadata.h: Added.
6462 * StitchMarker/wtf/dependencies/bmalloc/List.h: Added.
6463 (bmalloc::ListNode::ListNode):
6464 (bmalloc::List::iterator::iterator):
6465 (bmalloc::List::iterator::operator*):
6466 (bmalloc::List::iterator::operator->):
6467 (bmalloc::List::iterator::operator!=):
6468 (bmalloc::List::iterator::operator++):
6469 (bmalloc::List::List):
6470 (bmalloc::List::isEmpty):
6471 (bmalloc::List::head):
6472 (bmalloc::List::tail):
6473 (bmalloc::List::begin):
6474 (bmalloc::List::end):
6475 (bmalloc::List::push):
6476 (bmalloc::List::pushFront):
6477 (bmalloc::List::pop):
6478 (bmalloc::List::popFront):
6479 (bmalloc::List::insertAfter):
6480 (bmalloc::List::remove):
6481 * StitchMarker/wtf/dependencies/bmalloc/Logging.cpp: Added.
6482 (bmalloc::logVMFailure):
6483 (bmalloc::reportAssertionFailureWithMessage):
6484 * StitchMarker/wtf/dependencies/bmalloc/Logging.h: Added.
6485 * StitchMarker/wtf/dependencies/bmalloc/Map.h: Added.
6486 (bmalloc::Map::size):
6487 (bmalloc::Map::capacity):
6488 (bmalloc::Map::get):
6489 (bmalloc::Map::set):
6490 (bmalloc::Map::remove):
6491 (bmalloc::Map::shouldGrow):
6492 (bmalloc::Map::shouldShrink):
6493 (bmalloc::Map::find):
6494 (bmalloc::Hash>::rehash):
6495 * StitchMarker/wtf/dependencies/bmalloc/Mutex.h: Added.
6496 (bmalloc::Mutex::Mutex):
6497 * StitchMarker/wtf/dependencies/bmalloc/Object.h: Added.
6498 (bmalloc::Object::Object):
6499 (bmalloc::Object::chunk):
6500 (bmalloc::Object::offset):
6501 (bmalloc::Object::operator+):
6502 (bmalloc::Object::operator-):
6503 (bmalloc::Object::operator<=):
6504 * StitchMarker/wtf/dependencies/bmalloc/ObjectType.cpp: Added.
6505 (bmalloc::objectType):
6506 * StitchMarker/wtf/dependencies/bmalloc/ObjectType.h: Added.
6507 (bmalloc::mightBeLarge):
6508 * StitchMarker/wtf/dependencies/bmalloc/PerHeapKind.h: Added.
6509 (bmalloc::PerHeapKindBase::PerHeapKindBase):
6510 (bmalloc::PerHeapKindBase::size):
6511 (bmalloc::PerHeapKindBase::at):
6512 (bmalloc::PerHeapKindBase::at const):
6513 (bmalloc::PerHeapKindBase::operator[]):
6514 (bmalloc::PerHeapKindBase::operator[] const):
6515 (bmalloc::StaticPerHeapKind::StaticPerHeapKind):
6516 (bmalloc::PerHeapKind::PerHeapKind):
6517 (bmalloc::PerHeapKind::~PerHeapKind):
6518 * StitchMarker/wtf/dependencies/bmalloc/PerProcess.h: Added.
6519 (bmalloc::PerProcess::mutex):
6520 (bmalloc::PerProcess<T>::getFastCase):
6521 (bmalloc::PerProcess<T>::get):
6522 (bmalloc::PerProcess<T>::getSlowCase):
6523 * StitchMarker/wtf/dependencies/bmalloc/PerThread.h: Added.
6524 (bmalloc::PerThreadStorage<PerHeapKind<Cache>>::get):
6525 (bmalloc::PerThreadStorage<PerHeapKind<Cache>>::init):
6526 (bmalloc::PerThreadStorage::get):
6527 (bmalloc::PerThreadStorage::init):
6528 (bmalloc::PerThread<T>::getFastCase):
6529 (bmalloc::PerThread<T>::get):
6530 (bmalloc::PerThread<T>::destructor):
6531 (bmalloc::PerThread<T>::getSlowCase):
6532 * StitchMarker/wtf/dependencies/bmalloc/Range.h: Added.
6533 (bmalloc::Range::Range):
6534 (bmalloc::Range::begin const):
6535 (bmalloc::Range::end const):
6536 (bmalloc::Range::size const):
6537 (bmalloc::Range::operator! const):
6538 (bmalloc::Range::operator bool const):
6539 (bmalloc::Range::operator< const):
6540 (bmalloc::canMerge):
6541 (bmalloc::merge):
6542 * StitchMarker/wtf/dependencies/bmalloc/Scavenger.cpp: Added.
6543 (bmalloc::Scavenger::Scavenger):
6544 (bmalloc::Scavenger::scavenge):
6545 * StitchMarker/wtf/dependencies/bmalloc/Scavenger.h: Added.
6546 (bmalloc::Scavenger::setScavengerThreadQOSClass):
6547 (bmalloc::Scavenger::requestedScavengerThreadQOSClass const):
6548 * StitchMarker/wtf/dependencies/bmalloc/ScopeExit.h: Added.
6549 (bmalloc::ScopeExit::ScopeExit):
6550 (bmalloc::ScopeExit::~ScopeExit):
6551 (bmalloc::makeScopeExit):
6552 * StitchMarker/wtf/dependencies/bmalloc/Sizes.h: Added.
6553 (bmalloc::Sizes::maskSizeClass):
6554 (bmalloc::Sizes::maskObjectSize):
6555 (bmalloc::Sizes::logSizeClass):
6556 (bmalloc::Sizes::logObjectSize):
6557 (bmalloc::Sizes::sizeClass):
6558 (bmalloc::Sizes::objectSize):
6559 (bmalloc::Sizes::pageSize):
6560 * StitchMarker/wtf/dependencies/bmalloc/SmallLine.h: Added.
6561 (bmalloc::SmallLine::refCount):
6562 (bmalloc::SmallLine::ref):
6563 (bmalloc::SmallLine::deref):
6564 * StitchMarker/wtf/dependencies/bmalloc/SmallPage.h: Added.
6565 (bmalloc::SmallPage::refCount):
6566 (bmalloc::SmallPage::sizeClass):
6567 (bmalloc::SmallPage::setSizeClass):
6568 (bmalloc::SmallPage::hasFreeLines const):
6569 (bmalloc::SmallPage::setHasFreeLines):
6570 (bmalloc::SmallPage::hasPhysicalPages):
6571 (bmalloc::SmallPage::setHasPhysicalPages):
6572 (bmalloc::SmallPage::slide const):
6573 (bmalloc::SmallPage::setSlide):
6574 (bmalloc::SmallPage::ref):
6575 (bmalloc::SmallPage::deref):
6576 * StitchMarker/wtf/dependencies/bmalloc/StaticMutex.cpp: Added.
6577 (bmalloc::StaticMutex::lockSlowCase):
6578 * StitchMarker/wtf/dependencies/bmalloc/StaticMutex.h: Added.
6579 (bmalloc::sleep):
6580 (bmalloc::waitUntilFalse):
6581 (bmalloc::StaticMutex::init):
6582 (bmalloc::StaticMutex::try_lock):
6583 (bmalloc::StaticMutex::lock):
6584 (bmalloc::StaticMutex::unlock):
6585 * StitchMarker/wtf/dependencies/bmalloc/Syscall.h: Added.
6586 * StitchMarker/wtf/dependencies/bmalloc/VMAllocate.h: Added.
6587 (bmalloc::vmPageSize):
6588 (bmalloc::vmPageShift):
6589 (bmalloc::vmSize):
6590 (bmalloc::vmValidate):
6591 (bmalloc::vmPageSizePhysical):
6592 (bmalloc::vmValidatePhysical):
6593 (bmalloc::tryVMAllocate):
6594 (bmalloc::vmAllocate):
6595 (bmalloc::vmDeallocate):
6596 (bmalloc::vmRevokePermissions):
6597 (bmalloc::vmDeallocatePhysicalPages):
6598 (bmalloc::vmAllocatePhysicalPages):
6599 (bmalloc::vmDeallocatePhysicalPagesSloppy):
6600 (bmalloc::vmAllocatePhysicalPagesSloppy):
6601 * StitchMarker/wtf/dependencies/bmalloc/VMHeap.cpp: Added.
6602 (bmalloc::VMHeap::VMHeap):
6603 (bmalloc::VMHeap::tryAllocateLargeChunk):
6604 * StitchMarker/wtf/dependencies/bmalloc/VMHeap.h: Added.
6605 * StitchMarker/wtf/dependencies/bmalloc/Vector.h: Added.
6606 (bmalloc::Vector::begin):
6607 (bmalloc::Vector::end):
6608 (bmalloc::Vector::size):
6609 (bmalloc::Vector::capacity):
6610 (bmalloc::Vector::last):
6611 (bmalloc::Vector::pop):
6612 (bmalloc::Vector::initialCapacity):
6613 (bmalloc::Vector<T>::Vector):
6614 (bmalloc::Vector<T>::~Vector):
6615 (bmalloc::Vector<T>::operator):
6616 (bmalloc::Vector<T>::push):
6617 (bmalloc::Vector<T>::pop):
6618 (bmalloc::Vector<T>::insert):
6619 (bmalloc::Vector<T>::remove):
6620 (bmalloc::Vector<T>::grow):
6621 (bmalloc::Vector<T>::shrink):
6622 (bmalloc::Vector<T>::resize):
6623 (bmalloc::Vector<T>::reallocateBuffer):
6624 (bmalloc::Vector<T>::shrinkCapacity):
6625 (bmalloc::Vector<T>::growCapacity):
6626 (bmalloc::Vector<T>::shrinkToFit):
6627 * StitchMarker/wtf/dependencies/bmalloc/Zone.cpp: Added.
6628 (bmalloc::remoteRead):
6629 (bmalloc::good_size):
6630 (bmalloc::check):
6631 (bmalloc::print):
6632 (bmalloc::log):
6633 (bmalloc::force_lock):
6634 (bmalloc::force_unlock):
6635 (bmalloc::statistics):
6636 (bmalloc::zoneSize):
6637 (bmalloc::enumerator):
6638 (bmalloc::Zone::Zone):
6639 * StitchMarker/wtf/dependencies/bmalloc/Zone.h: Added.
6640 (bmalloc::Zone::ranges):
6641 (bmalloc::Zone::addRange):
6642 * StitchMarker/wtf/dependencies/bmalloc/bmalloc.h: Added.
6643 (bmalloc::api::tryMalloc):
6644 (bmalloc::api::malloc):
6645 (bmalloc::api::tryMemalign):
6646 (bmalloc::api::memalign):
6647 (bmalloc::api::realloc):
6648 (bmalloc::api::tryLargeMemalignVirtual):
6649 (bmalloc::api::free):
6650 (bmalloc::api::freeLargeVirtual):
6651 (bmalloc::api::scavengeThisThread):
6652 (bmalloc::api::scavenge):
6653 (bmalloc::api::isEnabled):
6654 (bmalloc::api::availableMemory):
6655 (bmalloc::api::memoryFootprint):
6656 (bmalloc::api::percentAvailableMemoryInUse):
6657 (bmalloc::api::setScavengerThreadQOSClass):
6658 * StitchMarker/wtf/dependencies/config.h: Added.
6659 * StitchMarker/wtf/dependencies/icu/unicode/bytestream.h: Added.
6660 (StringByteSink::StringByteSink):
6661 (StringByteSink::Append):
6662 * StitchMarker/wtf/dependencies/icu/unicode/chariter.h: Added.
6663 (ForwardCharacterIterator::operator!= const):
6664 (CharacterIterator::setToStart):
6665 (CharacterIterator::setToEnd):
6666 (CharacterIterator::startIndex const):
6667 (CharacterIterator::endIndex const):
6668 (CharacterIterator::getIndex const):
6669 (CharacterIterator::getLength const):
6670 * StitchMarker/wtf/dependencies/icu/unicode/localpointer.h: Added.
6671 (LocalPointerBase::LocalPointerBase):
6672 (LocalPointerBase::~LocalPointerBase):
6673 (LocalPointerBase::isNull const):
6674 (LocalPointerBase::isValid const):
6675 (LocalPointerBase::operator== const):
6676 (LocalPointerBase::operator!= const):
6677 (LocalPointerBase::getAlias const):
6678 (LocalPointerBase::operator* const):
6679 (LocalPointerBase::operator-> const):
6680 (LocalPointerBase::orphan):
6681 (LocalPointerBase::adoptInstead):
6682 (LocalPointer::LocalPointer):
6683 (LocalPointer::~LocalPointer):
6684 (LocalPointer::adoptInstead):
6685 (LocalPointer::adoptInsteadAndCheckErrorCode):
6686 (LocalArray::LocalArray):
6687 (LocalArray::~LocalArray):
6688 (LocalArray::adoptInstead):
6689 (LocalArray::operator[] const):
6690 * StitchMarker/wtf/dependencies/icu/unicode/parseerr.h: Added.
6691 * StitchMarker/wtf/dependencies/icu/unicode/platform.h: Added.
6692 * StitchMarker/wtf/dependencies/icu/unicode/ptypes.h: Added.
6693 * StitchMarker/wtf/dependencies/icu/unicode/putil.h: Added.
6694 * StitchMarker/wtf/dependencies/icu/unicode/rep.h: Added.
6695 (Replaceable::Replaceable):
6696 (Replaceable::length const):
6697 (Replaceable::charAt const):
6698 (Replaceable::char32At const):
6699 * StitchMarker/wtf/dependencies/icu/unicode/std_string.h: Added.
6700 * StitchMarker/wtf/dependencies/icu/unicode/strenum.h: Added.
6701 * StitchMarker/wtf/dependencies/icu/unicode/stringpiece.h: Added.
6702 (operator!=):
6703 * StitchMarker/wtf/dependencies/icu/unicode/ubrk.h: Added.
6704 * StitchMarker/wtf/dependencies/icu/unicode/ucasemap.h: Added.
6705 * StitchMarker/wtf/dependencies/icu/unicode/uchar.h: Added.
6706 * StitchMarker/wtf/dependencies/icu/unicode/uconfig.h: Added.
6707 * StitchMarker/wtf/dependencies/icu/unicode/uenum.h: Added.
6708 * StitchMarker/wtf/dependencies/icu/unicode/uiter.h: Added.
6709 * StitchMarker/wtf/dependencies/icu/unicode/uloc.h: Added.
6710 * StitchMarker/wtf/dependencies/icu/unicode/umachine.h: Added.
6711 * StitchMarker/wtf/dependencies/icu/unicode/unistr.h: Added.
6712 (UnicodeString::pinIndex const):
6713 (UnicodeString::pinIndices const):
6714 (UnicodeString::getArrayStart):
6715 (UnicodeString::getArrayStart const):
6716 (UnicodeString::UnicodeString):
6717 (UnicodeString::hasShortLength const):
6718 (UnicodeString::getShortLength const):
6719 (UnicodeString::length const):
6720 (UnicodeString::getCapacity const):
6721 (UnicodeString::hashCode const):
6722 (UnicodeString::isBogus const):
6723 (UnicodeString::isWritable const):
6724 (UnicodeString::isBufferWritable const):
6725 (UnicodeString::getBuffer const):
6726 (UnicodeString::doCompare const):
6727 (UnicodeString::operator== const):
6728 (UnicodeString::operator!= const):
6729 (UnicodeString::operator> const):
6730 (UnicodeString::operator< const):
6731 (UnicodeString::operator>= const):
6732 (UnicodeString::operator<= const):
6733 (UnicodeString::compare const):
6734 (UnicodeString::compareBetween const):
6735 (UnicodeString::doCompareCodePointOrder const):
6736 (UnicodeString::compareCodePointOrder const):
6737 (UnicodeString::compareCodePointOrderBetween const):
6738 (UnicodeString::doCaseCompare const):
6739 (UnicodeString::caseCompare const):
6740 (UnicodeString::caseCompareBetween const):
6741 (UnicodeString::indexOf const):
6742 (UnicodeString::lastIndexOf const):
6743 (UnicodeString::startsWith const):
6744 (UnicodeString::endsWith const):
6745 (UnicodeString::replace):
6746 (UnicodeString::replaceBetween):
6747 (UnicodeString::findAndReplace):
6748 (UnicodeString::doExtract const):
6749 (UnicodeString::extract const):
6750 (UnicodeString::extractBetween const):
6751 (UnicodeString::tempSubStringBetween const):
6752 (UnicodeString::doCharAt const):
6753 (UnicodeString::charAt const):
6754 (UnicodeString::operator[] const):
6755 (UnicodeString::isEmpty const):
6756 (UnicodeString::setZeroLength):
6757 (UnicodeString::setShortLength):
6758 (UnicodeString::setLength):
6759 (UnicodeString::setToEmpty):
6760 (UnicodeString::setArray):
6761 (UnicodeString::operator= ):
6762 (UnicodeString::setTo):
6763 (UnicodeString::append):
6764 (UnicodeString::operator+= ):
6765 (UnicodeString::insert):
6766 (UnicodeString::remove):
6767 (UnicodeString::removeBetween):
6768 (UnicodeString::retainBetween):
6769 (UnicodeString::truncate):
6770 (UnicodeString::reverse):
6771 * StitchMarker/wtf/dependencies/icu/unicode/uobject.h: Added.
6772 * StitchMarker/wtf/dependencies/icu/unicode/urename.h: Added.
6773 * StitchMarker/wtf/dependencies/icu/unicode/ustring.h: Added.
6774 * StitchMarker/wtf/dependencies/icu/unicode/utext.h: Added.
6775 * StitchMarker/wtf/dependencies/icu/unicode/utf.h: Added.
6776 * StitchMarker/wtf/dependencies/icu/unicode/utf16.h: Added.
6777 * StitchMarker/wtf/dependencies/icu/unicode/utf8.h: Added.
6778 * StitchMarker/wtf/dependencies/icu/unicode/utf_old.h: Added.
6779 * StitchMarker/wtf/dependencies/icu/unicode/utypes.h: Added.
6780 (operator new):
6781 (operator new[]):
6782 (operator delete):
6783 (operator delete[]):
6784 (U_SUCCESS):
6785 (U_FAILURE):
6786 * StitchMarker/wtf/dependencies/icu/unicode/uvernum.h: Added.
6787 * StitchMarker/wtf/dependencies/icu/unicode/uversion.h: Added.
6788 * StitchMarker/wtf/dependencies/unicode.cpp: Added.
6789 * StitchMarker/wtf/dtoa.cpp: Added.
6790 (WTF::storeInc):
6791 (WTF::BigInt::BigInt):
6792 (WTF::BigInt::clear):
6793 (WTF::BigInt::size const):
6794 (WTF::BigInt::resize):
6795 (WTF::BigInt::words):
6796 (WTF::BigInt::words const):
6797 (WTF::BigInt::append):
6798 (WTF::multadd):
6799 (WTF::hi0bits):
6800 (WTF::lo0bits):
6801 (WTF::i2b):
6802 (WTF::mult):
6803 (WTF::P5Node::P5Node):
6804 (WTF::pow5mult):
6805 (WTF::lshift):
6806 (WTF::cmp):
6807 (WTF::diff):
6808 (WTF::d2b):
6809 (WTF::quorem):
6810 (WTF::dtoa):
6811 * StitchMarker/wtf/dtoa.h: Added.
6812 (WTF::parseDouble):
6813 * StitchMarker/wtf/dtoa/COPYING: Added.
6814 * StitchMarker/wtf/dtoa/LICENSE: Added.
6815 * StitchMarker/wtf/dtoa/README: Added.
6816 * StitchMarker/wtf/dtoa/bignum-dtoa.cc: Added.
6817 * StitchMarker/wtf/dtoa/bignum-dtoa.h: Added.
6818 * StitchMarker/wtf/dtoa/bignum.cc: Added.
6819 * StitchMarker/wtf/dtoa/bignum.h: Added.
6820 (WTF::double_conversion::Bignum::Times10):
6821 (WTF::double_conversion::Bignum::Equal):
6822 (WTF::double_conversion::Bignum::LessEqual):
6823 (WTF::double_conversion::Bignum::Less):
6824 (WTF::double_conversion::Bignum::PlusEqual):
6825 (WTF::double_conversion::Bignum::PlusLessEqual):
6826 (WTF::double_conversion::Bignum::PlusLess):
6827 (WTF::double_conversion::Bignum::EnsureCapacity):
6828 (WTF::double_conversion::Bignum::BigitLength const):
6829 * StitchMarker/wtf/dtoa/cached-powers.cc: Added.
6830 * StitchMarker/wtf/dtoa/cached-powers.h: Added.
6831 * StitchMarker/wtf/dtoa/diy-fp.cc: Added.
6832 * StitchMarker/wtf/dtoa/diy-fp.h: Added.
6833 (WTF::double_conversion::DiyFp::DiyFp):
6834 (WTF::double_conversion::DiyFp::Subtract):
6835 (WTF::double_conversion::DiyFp::Minus):
6836 (WTF::double_conversion::DiyFp::Times):
6837 (WTF::double_conversion::DiyFp::Normalize):
6838 (WTF::double_conversion::DiyFp::f const):
6839 (WTF::double_conversion::DiyFp::e const):
6840 (WTF::double_conversion::DiyFp::set_f):
6841 (WTF::double_conversion::DiyFp::set_e):
6842 * StitchMarker/wtf/dtoa/double-conversion.cc: Added.
6843 * StitchMarker/wtf/dtoa/double-conversion.h: Added.
6844 (WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
6845 * StitchMarker/wtf/dtoa/double.h: Added.
6846 (WTF::double_conversion::double_to_uint64):
6847 (WTF::double_conversion::uint64_to_double):
6848 (WTF::double_conversion::Double::Double):
6849 (WTF::double_conversion::Double::AsDiyFp const):
6850 (WTF::double_conversion::Double::AsNormalizedDiyFp const):
6851 (WTF::double_conversion::Double::AsUint64 const):
6852 (WTF::double_conversion::Double::NextDouble const):
6853 (WTF::double_conversion::Double::Exponent const):
6854 (WTF::double_conversion::Double::Significand const):
6855 (WTF::double_conversion::Double::IsDenormal const):
6856 (WTF::double_conversion::Double::IsSpecial const):
6857 (WTF::double_conversion::Double::IsNan const):
6858 (WTF::double_conversion::Double::IsInfinite const):
6859 (WTF::double_conversion::Double::Sign const):
6860 (WTF::double_conversion::Double::UpperBoundary const):
6861 (WTF::double_conversion::Double::NormalizedBoundaries const):
6862 (WTF::double_conversion::Double::value const):
6863 (WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
6864 (WTF::double_conversion::Double::Infinity):
6865 (WTF::double_conversion::Double::NaN):
6866 (WTF::double_conversion::Double::DiyFpToUint64):
6867 * StitchMarker/wtf/dtoa/fast-dtoa.cc: Added.
6868 * StitchMarker/wtf/dtoa/fast-dtoa.h: Added.
6869 * StitchMarker/wtf/dtoa/fixed-dtoa.cc: Added.
6870 * StitchMarker/wtf/dtoa/fixed-dtoa.h: Added.
6871 * StitchMarker/wtf/dtoa/strtod.cc: Added.
6872 * StitchMarker/wtf/dtoa/strtod.h: Added.
6873 * StitchMarker/wtf/dtoa/utils.h: Added.
6874 (WTF::double_conversion::Max):
6875 (WTF::double_conversion::Min):
6876 (WTF::double_conversion::StrLength):
6877 (WTF::double_conversion::BufferReference::BufferReference):
6878 (WTF::double_conversion::BufferReference::SubBufferReference):
6879 (WTF::double_conversion::BufferReference::length const):
6880 (WTF::double_conversion::BufferReference::is_empty const):
6881 (WTF::double_conversion::BufferReference::start const):
6882 (WTF::double_conversion::BufferReference::operator[] const):
6883 (WTF::double_conversion::BufferReference::first):
6884 (WTF::double_conversion::BufferReference::last):
6885 (WTF::double_conversion::StringBuilder::StringBuilder):
6886 (WTF::double_conversion::StringBuilder::~StringBuilder):
6887 (WTF::double_conversion::StringBuilder::size const):
6888 (WTF::double_conversion::StringBuilder::position const):
6889 (WTF::double_conversion::StringBuilder::SetPosition):
6890 (WTF::double_conversion::StringBuilder::Reset):
6891 (WTF::double_conversion::StringBuilder::AddCharacter):
6892 (WTF::double_conversion::StringBuilder::AddString):
6893 (WTF::double_conversion::StringBuilder::AddSubstring):
6894 (WTF::double_conversion::StringBuilder::AddPadding):
6895 (WTF::double_conversion::StringBuilder::Finalize):
6896 (WTF::double_conversion::StringBuilder::is_finalized const):
6897 (WTF::double_conversion::BitCast):
6898 * StitchMarker/wtf/generic/MainThreadGeneric.cpp: Added.
6899 (WTF::MainThreadDispatcher::MainThreadDispatcher):
6900 (WTF::MainThreadDispatcher::schedule):
6901 (WTF::MainThreadDispatcher::fired):
6902 (WTF::initializeMainThreadPlatform):
6903 (WTF::scheduleDispatchFunctionsOnMainThread):
6904 * StitchMarker/wtf/generic/RunLoopGeneric.cpp: Added.
6905 (WTF::RunLoop::TimerBase::ScheduledTask::create):
6906 (WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
6907 (WTF::RunLoop::TimerBase::ScheduledTask::fired):
6908 (WTF::RunLoop::TimerBase::ScheduledTask::scheduledTimePoint const):
6909 (WTF::RunLoop::TimerBase::ScheduledTask::updateReadyTime):
6910 (WTF::RunLoop::TimerBase::ScheduledTask::EarliestSchedule::operator()):
6911 (WTF::RunLoop::TimerBase::ScheduledTask::isActive const):
6912 (WTF::RunLoop::TimerBase::ScheduledTask::deactivate):
6913 (WTF::RunLoop::RunLoop):
6914 (WTF::RunLoop::~RunLoop):
6915 (WTF::RunLoop::populateTasks):
6916 (WTF::RunLoop::runImpl):
6917 (WTF::RunLoop::run):
6918 (WTF::RunLoop::iterate):
6919 (WTF::RunLoop::stop):
6920 (WTF::RunLoop::wakeUp):
6921 (WTF::RunLoop::schedule):
6922 (WTF::RunLoop::scheduleAndWakeUp):
6923 (WTF::RunLoop::dispatchAfter):
6924 (WTF::RunLoop::TimerBase::TimerBase):
6925 (WTF::RunLoop::TimerBase::~TimerBase):
6926 (WTF::RunLoop::TimerBase::start):
6927 (WTF::RunLoop::TimerBase::stop):
6928 (WTF::RunLoop::TimerBase::isActive const):
6929 (WTF::RunLoop::TimerBase::secondsUntilFire const):
6930 * StitchMarker/wtf/text/ASCIIFastPath.h: Added.
6931 (WTF::isAlignedTo):
6932 (WTF::isAlignedToMachineWord):
6933 (WTF::alignToMachineWord):
6934 (WTF::isAllASCII):
6935 (WTF::charactersAreAllASCII):
6936 (WTF::copyLCharsFromUCharSource):
6937 * StitchMarker/wtf/text/AtomicString.cpp: Added.
6938 (WTF::AtomicString::convertASCIICase const):
6939 (WTF::AtomicString::convertToASCIILowercase const):
6940 (WTF::AtomicString::convertToASCIIUppercase const):
6941 (WTF::AtomicString::number):
6942 (WTF::AtomicString::fromUTF8Internal):
6943 (WTF::AtomicString::show const):
6944 (WTF::AtomicString::init):
6945 * StitchMarker/wtf/text/AtomicString.h: Added.
6946 (WTF::AtomicString::AtomicString):
6947 (WTF::AtomicString::operator=):
6948 (WTF::AtomicString::isHashTableDeletedValue const):
6949 (WTF::AtomicString::existingHash const):
6950 (WTF::AtomicString::operator const String& const):
6951 (WTF::AtomicString::string const):
6952 (WTF::AtomicString::impl const):
6953 (WTF::AtomicString::is8Bit const):
6954 (WTF::AtomicString::characters8 const):
6955 (WTF::AtomicString::characters16 const):
6956 (WTF::AtomicString::length const):
6957 (WTF::AtomicString::operator[] const):
6958 (WTF::AtomicString::contains const):
6959 (WTF::AtomicString::containsIgnoringASCIICase const):
6960 (WTF::AtomicString::find const):
6961 (WTF::AtomicString::findIgnoringASCIICase const):
6962 (WTF::AtomicString::startsWith const):
6963 (WTF::AtomicString::startsWithIgnoringASCIICase const):
6964 (WTF::AtomicString::endsWith const):
6965 (WTF::AtomicString::endsWithIgnoringASCIICase const):
6966 (WTF::AtomicString::toInt const):
6967 (WTF::AtomicString::toDouble const):
6968 (WTF::AtomicString::toFloat const):
6969 (WTF::AtomicString::percentage const):
6970 (WTF::AtomicString::isNull const):
6971 (WTF::AtomicString::isEmpty const):
6972 (WTF::AtomicString::operator NSString* const):
6973 (WTF::operator==):
6974 (WTF::operator!=):
6975 (WTF::nullAtom):
6976 (WTF::emptyAtom):
6977 (WTF::starAtom):
6978 (WTF::xmlAtom):
6979 (WTF::xmlnsAtom):
6980 (WTF::AtomicString::fromUTF8):
6981 (WTF::equalLettersIgnoringASCIICase):
6982 (WTF::equalIgnoringASCIICase):
6983 (WTF::IntegerToStringConversionTrait<AtomicString>::flush):
6984 * StitchMarker/wtf/text/AtomicStringImpl.cpp: Added.
6985 (WTF::AtomicStringTableLocker::AtomicStringTableLocker):
6986 (WTF::stringTable):
6987 (WTF::addToStringTable):
6988 (WTF::CStringTranslator::hash):
6989 (WTF::CStringTranslator::equal):
6990 (WTF::CStringTranslator::translate):
6991 (WTF::AtomicStringImpl::add):
6992 (WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer):
6993 (WTF::UCharBufferTranslator::hash):
6994 (WTF::UCharBufferTranslator::equal):
6995 (WTF::UCharBufferTranslator::translate):
6996 (WTF::HashAndUTF8CharactersTranslator::hash):
6997 (WTF::HashAndUTF8CharactersTranslator::equal):
6998 (WTF::HashAndUTF8CharactersTranslator::translate):
6999 (WTF::SubstringTranslator::translate):
7000 (WTF::SubstringTranslator8::hash):
7001 (WTF::SubstringTranslator8::equal):
7002 (WTF::SubstringTranslator16::hash):
7003 (WTF::SubstringTranslator16::equal):
7004 (WTF::LCharBufferTranslator::hash):
7005 (WTF::LCharBufferTranslator::equal):
7006 (WTF::LCharBufferTranslator::translate):
7007 (WTF::BufferFromStaticDataTranslator::hash):
7008 (WTF::BufferFromStaticDataTranslator::equal):
7009 (WTF::BufferFromStaticDataTranslator::translate):
7010 (WTF::AtomicStringImpl::addLiteral):
7011 (WTF::addSymbol):
7012 (WTF::addStatic):
7013 (WTF::AtomicStringImpl::addSlowCase):
7014 (WTF::AtomicStringImpl::remove):
7015 (WTF::AtomicStringImpl::lookUpSlowCase):
7016 (WTF::AtomicStringImpl::addUTF8):
7017 (WTF::AtomicStringImpl::lookUp):
7018 (WTF::AtomicStringImpl::isInAtomicStringTable):
7019 * StitchMarker/wtf/text/AtomicStringImpl.h: Added.
7020 (WTF::AtomicStringImpl::lookUp):
7021 (WTF::AtomicStringImpl::add):
7022 (WTF::AtomicStringImpl::addWithStringTableProvider):
7023 (WTF::ValueCheck<AtomicStringImpl::checkConsistency):
7024 * StitchMarker/wtf/text/AtomicStringTable.cpp: Added.
7025 (WTF::AtomicStringTable::create):
7026 (WTF::AtomicStringTable::~AtomicStringTable):
7027 (WTF::AtomicStringTable::destroy):
7028 * StitchMarker/wtf/text/AtomicStringTable.h: Added.
7029 * StitchMarker/wtf/text/CString.cpp: Added.
7030 (WTF::CStringBuffer::createUninitialized):
7031 (WTF::CString::CString):
7032 (WTF::CString::init):
7033 (WTF::CString::mutableData):
7034 (WTF::CString::newUninitialized):
7035 (WTF::CString::copyBufferIfNeeded):
7036 (WTF::CString::isSafeToSendToAnotherThread const):
7037 (WTF::operator==):
7038 (WTF::CString::hash const):
7039 (WTF::operator<):
7040 (WTF::CStringHash::equal):
7041 * StitchMarker/wtf/text/CString.h: Added.
7042 (WTF::CStringBuffer::data):
7043 (WTF::CStringBuffer::length const):
7044 (WTF::CStringBuffer::CStringBuffer):
7045 (WTF::CStringBuffer::mutableData):
7046 (WTF::CString::CString):
7047 (WTF::CString::data const):
7048 (WTF::CString::length const):
7049 (WTF::CString::isNull const):
7050 (WTF::CString::buffer const):
7051 (WTF::CString::isHashTableDeletedValue const):
7052 (WTF::operator!=):
7053 (WTF::CStringHash::hash):
7054 * StitchMarker/wtf/text/ConversionMode.h: Added.
7055 * StitchMarker/wtf/text/IntegerToStringConversion.h: Added.
7056 (WTF::numberToStringImpl):
7057 (WTF::numberToStringSigned):
7058 (WTF::numberToStringUnsigned):
7059 (WTF::writeNumberToBufferImpl):
7060 (WTF::writeNumberToBufferSigned):
7061 (WTF::writeNumberToBufferUnsigned):
7062 (WTF::lengthOfNumberAsStringImpl):
7063 (WTF::lengthOfNumberAsStringSigned):
7064 (WTF::lengthOfNumberAsStringUnsigned):
7065 * StitchMarker/wtf/text/LChar.h: Added.
7066 * StitchMarker/wtf/text/LineBreakIteratorPoolICU.h: Added.
7067 (WTF::LineBreakIteratorPool::sharedPool):
7068 (WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
7069 (WTF::LineBreakIteratorPool::take):
7070 (WTF::LineBreakIteratorPool::put):
7071 * StitchMarker/wtf/text/NullTextBreakIterator.h: Added.
7072 (WTF::NullTextBreakIterator::preceding const):
7073 (WTF::NullTextBreakIterator::following const):
7074 (WTF::NullTextBreakIterator::isBoundary const):
7075 (WTF::NullTextBreakIterator::setText):
7076 * StitchMarker/wtf/text/StringBuffer.h: Added.
7077 (WTF::StringBuffer::StringBuffer):
7078 (WTF::StringBuffer::~StringBuffer):
7079 (WTF::StringBuffer::shrink):
7080 (WTF::StringBuffer::resize):
7081 (WTF::StringBuffer::length const):
7082 (WTF::StringBuffer::characters):
7083 (WTF::StringBuffer::operator[]):
7084 (WTF::StringBuffer::release):
7085 * StitchMarker/wtf/text/StringBuilder.cpp: Added.
7086 (WTF::expandedCapacity):
7087 (WTF::StringBuilder::reifyString const):
7088 (WTF::StringBuilder::resize):
7089 (WTF::StringBuilder::allocateBuffer):
7090 (WTF::StringBuilder::allocateBufferUpConvert):
7091 (WTF::StringBuilder::reallocateBuffer<LChar>):
7092 (WTF::StringBuilder::reallocateBuffer<UChar>):
7093 (WTF::StringBuilder::reserveCapacity):
7094 (WTF::StringBuilder::appendUninitialized):
7095 (WTF::StringBuilder::appendUninitializedSlow):
7096 (WTF::StringBuilder::append):
7097 (WTF::StringBuilder::appendNumber):
7098 (WTF::StringBuilder::appendECMAScriptNumber):
7099 (WTF::StringBuilder::appendFixedWidthNumber):
7100 (WTF::StringBuilder::canShrink const):
7101 (WTF::StringBuilder::shrinkToFit):
7102 (WTF::appendQuotedJSONStringInternalSlow):
7103 (WTF::appendQuotedJSONStringInternal):
7104 (WTF::StringBuilder::appendQuotedJSONString):
7105 * StitchMarker/wtf/text/StringBuilder.h: Added.
7106 (WTF::StringBuilder::StringBuilder):
7107 (WTF::StringBuilder::append):
7108 (WTF::StringBuilder::appendLiteral):
7109 (WTF::StringBuilder::toString):
7110 (WTF::StringBuilder::toStringPreserveCapacity const):
7111 (WTF::StringBuilder::toAtomicString const):
7112 (WTF::StringBuilder::length const):
7113 (WTF::StringBuilder::isEmpty const):
7114 (WTF::StringBuilder::capacity const):
7115 (WTF::StringBuilder::operator[] const):
7116 (WTF::StringBuilder::characters8 const):
7117 (WTF::StringBuilder::characters16 const):
7118 (WTF::StringBuilder::is8Bit const):
7119 (WTF::StringBuilder::clear):
7120 (WTF::StringBuilder::swap):
7121 (WTF::StringBuilder::getBufferCharacters<LChar>):
7122 (WTF::StringBuilder::getBufferCharacters<UChar>):
7123 (WTF::equal):
7124 (WTF::operator==):
7125 (WTF::operator!=):
7126 (WTF::IntegerToStringConversionTrait<StringBuilder>::flush):
7127 * StitchMarker/wtf/text/StringCommon.h: Added.
7128 (WTF::loadUnaligned):
7129 (WTF::equal):
7130 (WTF::equalCommon):
7131 (WTF::equalIgnoringASCIICase):
7132 (WTF::equalIgnoringASCIICaseCommon):
7133 (WTF::startsWith):
7134 (WTF::startsWithIgnoringASCIICase):
7135 (WTF::endsWith):
7136 (WTF::endsWithIgnoringASCIICase):
7137 (WTF::findIgnoringASCIICase):
7138 (WTF::findInner):
7139 (WTF::find):
7140 (WTF::findCommon):
7141 (WTF::equalLettersIgnoringASCIICase):
7142 (WTF::hasPrefixWithLettersIgnoringASCIICaseCommon):
7143 (WTF::equalLettersIgnoringASCIICaseCommonWithoutLength):
7144 (WTF::startsWithLettersIgnoringASCIICaseCommonWithoutLength):
7145 (WTF::equalLettersIgnoringASCIICaseCommon):
7146 (WTF::startsWithLettersIgnoringASCIICaseCommon):
7147 * StitchMarker/wtf/text/StringConcatenate.h: Added.
7148 (WTF::StringTypeAdapter<char>::StringTypeAdapter<char>):
7149 (WTF::StringTypeAdapter<char>::length):
7150 (WTF::StringTypeAdapter<char>::is8Bit):
7151 (WTF::StringTypeAdapter<char>::writeTo const):
7152 (WTF::StringTypeAdapter<char>::toString const):
7153 (WTF::StringTypeAdapter<UChar>::StringTypeAdapter<UChar>):
7154 (WTF::StringTypeAdapter<UChar>::length const):
7155 (WTF::StringTypeAdapter<UChar>::is8Bit const):
7156 (WTF::StringTypeAdapter<UChar>::writeTo const):
7157 (WTF::StringTypeAdapter<UChar>::toString const):
7158 (WTF::StringTypeAdapter<char::StringTypeAdapter):
7159 (WTF::StringTypeAdapter<ASCIILiteral>::StringTypeAdapter):
7160 (WTF::StringTypeAdapter<Vector<char>>::StringTypeAdapter):
7161 (WTF::StringTypeAdapter<Vector<char>>::length const):
7162 (WTF::StringTypeAdapter<Vector<char>>::is8Bit const):
7163 (WTF::StringTypeAdapter<Vector<char>>::writeTo const):
7164 (WTF::StringTypeAdapter<Vector<char>>::toString const):
7165 (WTF::StringTypeAdapter<String>::StringTypeAdapter<String>):
7166 (WTF::StringTypeAdapter<String>::length const):
7167 (WTF::StringTypeAdapter<String>::is8Bit const):
7168 (WTF::StringTypeAdapter<String>::writeTo const):
7169 (WTF::StringTypeAdapter<String>::toString const):
7170 (WTF::StringTypeAdapter<AtomicString>::StringTypeAdapter):
7171 (WTF::sumWithOverflow):
7172 (WTF::are8Bit):
7173 (WTF::makeStringAccumulator):
7174 (WTF::tryMakeStringFromAdapters):
7175 (WTF::tryMakeString):
7176 (WTF::makeString):
7177 * StitchMarker/wtf/text/StringHash.h: Added.
7178 (WTF::HashTraits<String>::isEmptyValue):
7179 (WTF::HashTraits<String>::customDeleteBucket):
7180 (WTF::StringHash::hash):
7181 (WTF::StringHash::equal):
7182 (WTF::ASCIICaseInsensitiveHash::foldCase):
7183 (WTF::ASCIICaseInsensitiveHash::hash):
7184 (WTF::ASCIICaseInsensitiveHash::equal):
7185 (WTF::AlreadyHashed::hash):
7186 (WTF::AlreadyHashed::avoidDeletedValue):
7187 (WTF::ASCIICaseInsensitiveStringViewHashTranslator::hash):
7188 (WTF::ASCIICaseInsensitiveStringViewHashTranslator::equal):
7189 * StitchMarker/wtf/text/StringImpl.cpp: Added.
7190 (WTF::StringStats::removeString):
7191 (WTF::StringStats::printStats):
7192 (WTF::StringImpl::~StringImpl):
7193 (WTF::StringImpl::destroy):
7194 (WTF::StringImpl::createFromLiteral):
7195 (WTF::StringImpl::createWithoutCopying):
7196 (WTF::StringImpl::createUninitializedInternal):
7197 (WTF::StringImpl::createUninitializedInternalNonEmpty):
7198 (WTF::StringImpl::createUninitialized):
7199 (WTF::StringImpl::reallocateInternal):
7200 (WTF::StringImpl::reallocate):
7201 (WTF::StringImpl::createInternal):
7202 (WTF::StringImpl::create):
7203 (WTF::StringImpl::create8BitIfPossible):
7204 (WTF::StringImpl::containsOnlyWhitespace):
7205 (WTF::StringImpl::substring):
7206 (WTF::StringImpl::characterStartingAt):
7207 (WTF::StringImpl::convertToLowercaseWithoutLocale):
7208 (WTF::StringImpl::convertToLowercaseWithoutLocaleStartingAtFailingIndex8Bit):
7209 (WTF::StringImpl::convertToUppercaseWithoutLocale):
7210 (WTF::needsTurkishCasingRules):
7211 (WTF::StringImpl::convertToLowercaseWithLocale):
7212 (WTF::StringImpl::convertToUppercaseWithLocale):
7213 (WTF::StringImpl::foldCase):
7214 (WTF::StringImpl::convertASCIICase):
7215 (WTF::StringImpl::convertToASCIILowercase):
7216 (WTF::StringImpl::convertToASCIIUppercase):
7217 (WTF::StringImpl::stripMatchedCharacters):
7218 (WTF::UCharPredicate::UCharPredicate):
7219 (WTF::UCharPredicate::operator() const):
7220 (WTF::SpaceOrNewlinePredicate::operator() const):
7221 (WTF::StringImpl::stripWhiteSpace):
7222 (WTF::StringImpl::removeCharacters):
7223 (WTF::StringImpl::simplifyMatchedCharactersToSpace):
7224 (WTF::StringImpl::simplifyWhiteSpace):
7225 (WTF::StringImpl::toIntStrict):
7226 (WTF::StringImpl::toUIntStrict):
7227 (WTF::StringImpl::toInt64Strict):
7228 (WTF::StringImpl::toUInt64Strict):
7229 (WTF::StringImpl::toIntPtrStrict):
7230 (WTF::StringImpl::toInt):
7231 (WTF::StringImpl::toUInt):
7232 (WTF::StringImpl::toInt64):
7233 (WTF::StringImpl::toUInt64):
7234 (WTF::StringImpl::toIntPtr):
7235 (WTF::StringImpl::toDouble):
7236 (WTF::StringImpl::toFloat):
7237 (WTF::equalCompatibilityCaseless):
7238 (WTF::StringImpl::find):
7239 (WTF::StringImpl::findIgnoringCase):
7240 (WTF::findIgnoringCaseInner):
7241 (WTF::StringImpl::findIgnoringASCIICase const):
7242 (WTF::StringImpl::reverseFind):
7243 (WTF::reverseFindInner):
7244 (WTF::reverseFindIgnoringCaseInner):
7245 (WTF::StringImpl::reverseFindIgnoringCase):
7246 (WTF::equalInner):
7247 (WTF::StringImpl::startsWith const):
7248 (WTF::StringImpl::startsWithIgnoringASCIICase const):
7249 (WTF::StringImpl::hasInfixStartingAt const):
7250 (WTF::StringImpl::endsWith):
7251 (WTF::StringImpl::endsWithIgnoringASCIICase const):
7252 (WTF::StringImpl::endsWith const):
7253 (WTF::StringImpl::hasInfixEndingAt const):
7254 (WTF::StringImpl::replace):
7255 (WTF::equal):
7256 (WTF::equalInternal):
7257 (WTF::equalIgnoringNullity):
7258 (WTF::equalIgnoringASCIICase):
7259 (WTF::equalIgnoringASCIICaseNonNull):
7260 (WTF::StringImpl::defaultWritingDirection):
7261 (WTF::StringImpl::adopt):
7262 (WTF::StringImpl::sizeInBytes const):
7263 (WTF::putUTF8Triple):
7264 (WTF::StringImpl::utf8Impl):
7265 (WTF::StringImpl::utf8ForCharacters):
7266 (WTF::StringImpl::utf8ForRange const):
7267 (WTF::StringImpl::utf8 const):
7268 (WTF::StringImpl::hashSlowCase const):
7269 (WTF::StringImpl::concurrentHash const):
7270 * StitchMarker/wtf/text/StringImpl.h: Added.
7271 (WTF::StringStats::add8BitString):
7272 (WTF::StringStats::add16BitString):
7273 (WTF::StringImplShape::StringImplShape):
7274 (WTF::StringImpl::StringImpl):
7275 (WTF::StringImpl::create8BitIfPossible):
7276 (WTF::StringImpl::create):
7277 (WTF::StringImpl::createSubstringSharingImpl):
7278 (WTF::StringImpl::createFromLiteral):
7279 (WTF::StringImpl::tryCreateUninitialized):
7280 (WTF::StringImpl::flagsOffset):
7281 (WTF::StringImpl::flagIs8Bit):
7282 (WTF::StringImpl::flagIsAtomic):
7283 (WTF::StringImpl::flagIsSymbol):
7284 (WTF::StringImpl::maskStringKind):
7285 (WTF::StringImpl::dataOffset):
7286 (WTF::StringImpl::adopt):
7287 (WTF::StringImpl::length const):
7288 (WTF::StringImpl::lengthMemoryOffset):
7289 (WTF::StringImpl::is8Bit const):
7290 (WTF::StringImpl::characters8 const):
7291 (WTF::StringImpl::characters16 const):
7292 (WTF::StringImpl::cost const):
7293 (WTF::StringImpl::costDuringGC):
7294 (WTF::StringImpl::stringKind const):
7295 (WTF::StringImpl::isSymbol const):
7296 (WTF::StringImpl::isAtomic const):
7297 (WTF::StringImpl::setIsAtomic):
7298 (WTF::StringImpl::isSubString const):
7299 (WTF::StringImpl::setHash const):
7300 (WTF::StringImpl::rawHash const):
7301 (WTF::StringImpl::hasHash const):
7302 (WTF::StringImpl::existingHash const):
7303 (WTF::StringImpl::hash const):
7304 (WTF::StringImpl::isStatic const):
7305 (WTF::StringImpl::refCount const):
7306 (WTF::StringImpl::hasOneRef const):
7307 (WTF::StringImpl::hasAtLeastOneRef const):
7308 (WTF::StringImpl::ref):
7309 (WTF::StringImpl::deref):
7310 (WTF::StringImpl::StaticStringImpl::StaticStringImpl):
7311 (WTF::StringImpl::StaticStringImpl::operator StringImpl&):
7312 (WTF::StringImpl::empty):
7313 (WTF::StringImpl::copyChars):
7314 (WTF::StringImpl::at const):
7315 (WTF::StringImpl::operator[] const):
7316 (WTF::StringImpl::find):
7317 (WTF::StringImpl::findIgnoringCase):
7318 (WTF::StringImpl::startsWith):
7319 (WTF::StringImpl::startsWith const):
7320 (WTF::StringImpl::endsWith const):
7321 (WTF::StringImpl::replace):
7322 (WTF::StringImpl::stringStats):
7323 (WTF::StringImpl::allocationSize):
7324 (WTF::StringImpl::tailOffset):
7325 (WTF::StringImpl::requiresCopy const):
7326 (WTF::StringImpl::tailPointer const):
7327 (WTF::StringImpl::tailPointer):
7328 (WTF::StringImpl::substringBuffer const):
7329 (WTF::StringImpl::substringBuffer):
7330 (WTF::StringImpl::bufferOwnership const):
7331 (WTF::StringImpl::assertHashIsCorrect):
7332 (WTF::ValueCheck<StringImpl::checkConsistency):
7333 (WTF::StringImpl::constructInternal<LChar>):
7334 (WTF::StringImpl::constructInternal<UChar>):
7335 (WTF::StringImpl::characters<LChar> const):
7336 (WTF::StringImpl::characters<UChar> const):
7337 (WTF::equal):
7338 (WTF::find):
7339 (WTF::reverseFindLineTerminator):
7340 (WTF::reverseFind):
7341 (WTF::equalIgnoringNullity):
7342 (WTF::codePointCompare):
7343 (WTF::codePointCompare8):
7344 (WTF::codePointCompare16):
7345 (WTF::codePointCompare8To16):
7346 (WTF::isSpaceOrNewline):
7347 (WTF::lengthOfNullTerminatedString):
7348 (WTF::StringImpl::isolatedCopy const):
7349 (WTF::equalIgnoringASCIICase):
7350 (WTF::startsWithLettersIgnoringASCIICase):
7351 (WTF::equalLettersIgnoringASCIICase):
7352 * StitchMarker/wtf/text/StringOperators.h: Added.
7353 (WTF::StringAppend::StringAppend):
7354 (WTF::StringAppend::operator String const):
7355 (WTF::StringAppend::operator AtomicString const):
7356 (WTF::StringAppend::is8Bit):
7357 (WTF::StringAppend::writeTo):
7358 (WTF::StringAppend::length):
7359 (WTF::operator+):
7360 * StitchMarker/wtf/text/StringView.cpp: Added.
7361 (WTF::StringView::containsIgnoringASCIICase const):
7362 (WTF::StringView::findIgnoringASCIICase const):
7363 (WTF::StringView::startsWith const):
7364 (WTF::StringView::startsWithIgnoringASCIICase const):
7365 (WTF::StringView::endsWith const):
7366 (WTF::StringView::endsWithIgnoringASCIICase const):
7367 (WTF::StringView::utf8 const):
7368 (WTF::StringView::find const):
7369 (WTF::StringView::SplitResult::Iterator::findNextSubstring):
7370 (WTF::StringView::SplitResult::Iterator::operator++):
7371 (WTF::StringView::GraphemeClusters::Iterator::Impl::Impl):
7372 (WTF::StringView::GraphemeClusters::Iterator::Impl::operator++):
7373 (WTF::StringView::GraphemeClusters::Iterator::Impl::operator* const):
7374 (WTF::StringView::GraphemeClusters::Iterator::Impl::operator== const):
7375 (WTF::StringView::GraphemeClusters::Iterator::Impl::computeIndexEnd):
7376 (WTF::StringView::GraphemeClusters::Iterator::Iterator):
7377 (WTF::StringView::GraphemeClusters::Iterator::~Iterator):
7378 (WTF::StringView::GraphemeClusters::Iterator::operator++):
7379 (WTF::StringView::GraphemeClusters::Iterator::operator* const):
7380 (WTF::StringView::GraphemeClusters::Iterator::operator== const):
7381 (WTF::StringView::GraphemeClusters::Iterator::operator!= const):
7382 (WTF::StringView::UnderlyingString::UnderlyingString):
7383 (WTF::StringView::invalidate):
7384 (WTF::StringView::underlyingStringIsValid const):
7385 (WTF::StringView::adoptUnderlyingString):
7386 (WTF::StringView::setUnderlyingString):
7387 * StitchMarker/wtf/text/StringView.h: Added.
7388 (WTF::StringView::left const):
7389 (WTF::StringView::right const):
7390 (WTF::StringView::underlyingStringIsValid const):
7391 (WTF::StringView::setUnderlyingString):
7392 (WTF::operator==):
7393 (WTF::operator!=):
7394 (WTF::StringView::StringView):
7395 (WTF::StringView::~StringView):
7396 (WTF::StringView::operator=):
7397 (WTF::StringView::initialize):
7398 (WTF::StringView::clear):
7399 (WTF::StringView::empty):
7400 (WTF::StringView::characters8 const):
7401 (WTF::StringView::characters16 const):
7402 (WTF::StringView::UpconvertedCharacters::operator const UChar* const):
7403 (WTF::StringView::UpconvertedCharacters::get const):
7404 (WTF::StringView::upconvertedCharacters const):
7405 (WTF::StringView::isNull const):
7406 (WTF::StringView::isEmpty const):
7407 (WTF::StringView::length const):
7408 (WTF::StringView::operator bool const):
7409 (WTF::StringView::is8Bit const):
7410 (WTF::StringView::substring const):
7411 (WTF::StringView::operator[] const):
7412 (WTF::StringView::contains const):
7413 (WTF::StringView::getCharactersWithUpconvert const):
7414 (WTF::StringView::UpconvertedCharacters::UpconvertedCharacters):
7415 (WTF::StringView::toString const):
7416 (WTF::StringView::toAtomicString const):
7417 (WTF::StringView::toExistingAtomicString const):
7418 (WTF::StringView::toFloat const):
7419 (WTF::StringView::toInt const):
7420 (WTF::StringView::toIntStrict const):
7421 (WTF::StringView::toStringWithoutCopying const):
7422 (WTF::StringView::find const):
7423 (WTF::StringView::reverseFind const):
7424 (WTF::StringView::invalidate):
7425 (WTF::StringTypeAdapter<StringView>::StringTypeAdapter<StringView>):
7426 (WTF::StringTypeAdapter<StringView>::length):
7427 (WTF::StringTypeAdapter<StringView>::is8Bit):
7428 (WTF::StringTypeAdapter<StringView>::writeTo):
7429 (WTF::StringTypeAdapter<StringView>::toString const):
7430 (WTF::append):
7431 (WTF::equal):
7432 (WTF::equalIgnoringASCIICase):
7433 (WTF::StringView::graphemeClusters const):
7434 (WTF::StringView::codePoints const):
7435 (WTF::StringView::codeUnits const):
7436 (WTF::StringView::GraphemeClusters::GraphemeClusters):
7437 (WTF::StringView::GraphemeClusters::begin const):
7438 (WTF::StringView::GraphemeClusters::end const):
7439 (WTF::StringView::CodePoints::CodePoints):
7440 (WTF::StringView::CodePoints::Iterator::Iterator):
7441 (WTF::StringView::CodePoints::Iterator::operator++):
7442 (WTF::StringView::CodePoints::Iterator::operator=):
7443 (WTF::StringView::CodePoints::Iterator::operator* const):
7444 (WTF::StringView::CodePoints::Iterator::operator== const):
7445 (WTF::StringView::CodePoints::Iterator::operator!= const):
7446 (WTF::StringView::CodePoints::begin const):
7447 (WTF::StringView::CodePoints::end const):
7448 (WTF::StringView::CodeUnits::CodeUnits):
7449 (WTF::StringView::CodeUnits::Iterator::Iterator):
7450 (WTF::StringView::CodeUnits::Iterator::operator++):
7451 (WTF::StringView::CodeUnits::Iterator::operator* const):
7452 (WTF::StringView::CodeUnits::Iterator::operator== const):
7453 (WTF::StringView::CodeUnits::Iterator::operator!= const):
7454 (WTF::StringView::CodeUnits::begin const):
7455 (WTF::StringView::CodeUnits::end const):
7456 (WTF::StringView::split const):
7457 (WTF::StringView::SplitResult::SplitResult):
7458 (WTF::StringView::SplitResult::begin const):
7459 (WTF::StringView::SplitResult::end const):
7460 (WTF::StringView::SplitResult::Iterator::Iterator):
7461 (WTF::StringView::SplitResult::Iterator::operator* const):
7462 (WTF::StringView::SplitResult::Iterator::operator== const):
7463 (WTF::StringView::SplitResult::Iterator::operator!= const):
7464 (WTF::equalLettersIgnoringASCIICase):
7465 * StitchMarker/wtf/text/SymbolImpl.cpp: Added.
7466 (WTF::SymbolImpl::nextHashForSymbol):
7467 (WTF::SymbolImpl::create):
7468 (WTF::SymbolImpl::createNullSymbol):
7469 (WTF::PrivateSymbolImpl::create):
7470 (WTF::PrivateSymbolImpl::createNullSymbol):
7471 (WTF::RegisteredSymbolImpl::create):
7472 * StitchMarker/wtf/text/SymbolImpl.h: Added.
7473 (WTF::SymbolImpl::hashForSymbol const):
7474 (WTF::SymbolImpl::isNullSymbol const):
7475 (WTF::SymbolImpl::isRegistered const):
7476 (WTF::SymbolImpl::isPrivate const):
7477 (WTF::SymbolImpl::StaticSymbolImpl::StaticSymbolImpl):
7478 (WTF::SymbolImpl::StaticSymbolImpl::operator SymbolImpl&):
7479 (WTF::SymbolImpl::SymbolImpl):
7480 (WTF::PrivateSymbolImpl::PrivateSymbolImpl):
7481 (WTF::RegisteredSymbolImpl::symbolRegistry const):
7482 (WTF::RegisteredSymbolImpl::clearSymbolRegistry):
7483 (WTF::RegisteredSymbolImpl::RegisteredSymbolImpl):
7484 (WTF::StringImpl::symbolAwareHash const):
7485 (WTF::StringImpl::existingSymbolAwareHash const):
7486 (WTF::SymbolImpl::symbolRegistry const):
7487 (WTF::SymbolImpl::asRegisteredSymbolImpl):
7488 (WTF::ValueCheck<SymbolImpl::checkConsistency):
7489 * StitchMarker/wtf/text/SymbolRegistry.cpp: Added.
7490 (WTF::SymbolRegistry::~SymbolRegistry):
7491 (WTF::SymbolRegistry::symbolForKey):
7492 (WTF::SymbolRegistry::remove):
7493 * StitchMarker/wtf/text/SymbolRegistry.h: Added.
7494 (WTF::SymbolRegistryKey::hash const):
7495 (WTF::SymbolRegistryKey::impl const):
7496 (WTF::SymbolRegistryKey::isHashTableDeletedValue const):
7497 (WTF::SymbolRegistryKey::hashTableDeletedValue):
7498 (WTF::DefaultHash<SymbolRegistryKey>::Hash::hash):
7499 (WTF::DefaultHash<SymbolRegistryKey>::Hash::equal):
7500 (WTF::HashTraits<SymbolRegistryKey>::isEmptyValue):
7501 (WTF::SymbolRegistryKey::SymbolRegistryKey):
7502 * StitchMarker/wtf/text/TextBreakIterator.cpp: Added.
7503 (WTF::mapModeToBackingIterator):
7504 (WTF::TextBreakIterator::TextBreakIterator):
7505 (WTF::initializeIterator):
7506 (WTF::setTextForIterator):
7507 (WTF::setContextAwareTextForIterator):
7508 (WTF::wordBreakIterator):
7509 (WTF::sentenceBreakIterator):
7510 (WTF::acquireLineBreakIterator):
7511 (WTF::releaseLineBreakIterator):
7512 (WTF::openLineBreakIterator):
7513 (WTF::closeLineBreakIterator):
7514 (WTF::getNonSharedCharacterBreakIterator):
7515 (WTF::cacheNonSharedCharacterBreakIterator):
7516 (WTF::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator):
7517 (WTF::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator):
7518 (WTF::isWordTextBreak):
7519 (WTF::numGraphemeClusters):
7520 (WTF::numCharactersInGraphemeClusters):
7521 * StitchMarker/wtf/text/TextBreakIterator.h: Added.
7522 (WTF::TextBreakIterator::preceding const):
7523 (WTF::TextBreakIterator::following const):
7524 (WTF::TextBreakIterator::isBoundary const):
7525 (WTF::TextBreakIterator::setText):
7526 (WTF::TextBreakIterator::mode const):
7527 (WTF::TextBreakIterator::locale const):
7528 (WTF::TextBreakIteratorCache::singleton):
7529 (WTF::TextBreakIteratorCache::take):
7530 (WTF::TextBreakIteratorCache::put):
7531 (WTF::TextBreakIteratorCache::TextBreakIteratorCache):
7532 (WTF::CachedTextBreakIterator::CachedTextBreakIterator):
7533 (WTF::CachedTextBreakIterator::~CachedTextBreakIterator):
7534 (WTF::CachedTextBreakIterator::preceding const):
7535 (WTF::CachedTextBreakIterator::following const):
7536 (WTF::CachedTextBreakIterator::isBoundary const):
7537 (WTF::LazyLineBreakIterator::LazyLineBreakIterator):
7538 (WTF::LazyLineBreakIterator::~LazyLineBreakIterator):
7539 (WTF::LazyLineBreakIterator::stringView const):
7540 (WTF::LazyLineBreakIterator::mode const):
7541 (WTF::LazyLineBreakIterator::lastCharacter const):
7542 (WTF::LazyLineBreakIterator::secondToLastCharacter const):
7543 (WTF::LazyLineBreakIterator::setPriorContext):
7544 (WTF::LazyLineBreakIterator::updatePriorContext):
7545 (WTF::LazyLineBreakIterator::resetPriorContext):
7546 (WTF::LazyLineBreakIterator::priorContextLength const):
7547 (WTF::LazyLineBreakIterator::get):
7548 (WTF::LazyLineBreakIterator::resetStringAndReleaseIterator):
7549 (WTF::NonSharedCharacterBreakIterator::operator UBreakIterator* const):
7550 * StitchMarker/wtf/text/TextBreakIteratorInternalICU.h: Added.
7551 * StitchMarker/wtf/text/UniquedStringImpl.h: Added.
7552 (WTF::UniquedStringImpl::UniquedStringImpl):
7553 (WTF::ValueCheck<UniquedStringImpl::checkConsistency):
7554 * StitchMarker/wtf/text/WTFString.cpp: Added.
7555 (WTF::String::String):
7556 (WTF::String::append):
7557 (WTF::codePointCompare):
7558 (WTF::String::insert):
7559 (WTF::String::characterStartingAt const):
7560 (WTF::String::truncate):
7561 (WTF::String::removeInternal):
7562 (WTF::String::remove):
7563 (WTF::String::substring const):
7564 (WTF::String::substringSharingImpl const):
7565 (WTF::String::convertToASCIILowercase const):
7566 (WTF::String::convertToASCIIUppercase const):
7567 (WTF::String::convertToLowercaseWithoutLocale const):
7568 (WTF::String::convertToLowercaseWithoutLocaleStartingAtFailingIndex8Bit const):
7569 (WTF::String::convertToUppercaseWithoutLocale const):
7570 (WTF::String::convertToLowercaseWithLocale const):
7571 (WTF::String::convertToUppercaseWithLocale const):
7572 (WTF::String::stripWhiteSpace const):
7573 (WTF::String::simplifyWhiteSpace const):
7574 (WTF::String::removeCharacters const):
7575 (WTF::String::foldCase const):
7576 (WTF::String::percentage const):
7577 (WTF::String::charactersWithNullTermination const):
7578 (WTF::String::format):
7579 (WTF::String::number):
7580 (WTF::String::numberToStringECMAScript):
7581 (WTF::String::numberToStringFixedWidth):
7582 (WTF::String::toIntStrict const):
7583 (WTF::String::toUIntStrict const):
7584 (WTF::String::toInt64Strict const):
7585 (WTF::String::toUInt64Strict const):
7586 (WTF::String::toIntPtrStrict const):
7587 (WTF::String::toInt const):
7588 (WTF::String::toUInt const):
7589 (WTF::String::toInt64 const):
7590 (WTF::String::toUInt64 const):
7591 (WTF::String::toIntPtr const):
7592 (WTF::String::toDouble const):
7593 (WTF::String::toFloat const):
7594 (WTF::String::isolatedCopy const):
7595 (WTF::String::isolatedCopy):
7596 (WTF::String::isSafeToSendToAnotherThread const):
7597 (WTF::String::split const):
7598 (WTF::String::ascii const):
7599 (WTF::String::latin1 const):
7600 (WTF::String::utf8 const):
7601 (WTF::String::make8BitFrom16BitSource):
7602 (WTF::String::make16BitFrom8BitSource):
7603 (WTF::String::fromUTF8):
7604 (WTF::String::fromUTF8WithLatin1Fallback):
7605 (WTF::isCharacterAllowedInBase):
7606 (WTF::toIntegralType):
7607 (WTF::lengthOfCharactersAsInteger):
7608 (WTF::charactersToIntStrict):
7609 (WTF::charactersToUIntStrict):
7610 (WTF::charactersToInt64Strict):
7611 (WTF::charactersToUInt64Strict):
7612 (WTF::charactersToIntPtrStrict):
7613 (WTF::charactersToInt):
7614 (WTF::charactersToUInt):
7615 (WTF::charactersToInt64):
7616 (WTF::charactersToUInt64):
7617 (WTF::charactersToIntPtr):
7618 (WTF::toDoubleType):
7619 (WTF::charactersToDouble):
7620 (WTF::charactersToFloat):
7621 (WTF::emptyString):
7622 (String::show const):
7623 (string):
7624 (asciiDebug):
7625 * StitchMarker/wtf/text/WTFString.h: Added.
7626 (WTF::String::String):
7627 (WTF::String::operator=):
7628 (WTF::String::~String):
7629 (WTF::String::swap):
7630 (WTF::String::adopt):
7631 (WTF::String::isNull const):
7632 (WTF::String::isEmpty const):
7633 (WTF::String::impl const):
7634 (WTF::String::releaseImpl):
7635 (WTF::String::length const):
7636 (WTF::String::characters8 const):
7637 (WTF::String::characters16 const):
7638 (WTF::String::is8Bit const):
7639 (WTF::String::sizeInBytes const):
7640 (WTF::String::at const):
7641 (WTF::String::operator[] const):
7642 (WTF::String::find const):
7643 (WTF::String::findIgnoringASCIICase const):
7644 (WTF::String::reverseFind const):
7645 (WTF::String::findIgnoringCase const):
7646 (WTF::String::reverseFindIgnoringCase const):
7647 (WTF::String::contains const):
7648 (WTF::String::containsIgnoringASCIICase const):
7649 (WTF::String::startsWith const):
7650 (WTF::String::startsWithIgnoringASCIICase const):
7651 (WTF::String::hasInfixStartingAt const):
7652 (WTF::String::endsWith const):
7653 (WTF::String::endsWithIgnoringASCIICase const):
7654 (WTF::String::hasInfixEndingAt const):
7655 (WTF::String::append):
7656 (WTF::String::replace):
7657 (WTF::String::replaceWithLiteral):
7658 (WTF::String::left const):
7659 (WTF::String::right const):
7660 (WTF::String::createUninitialized):
7661 (WTF::String::split const):
7662 (WTF::String::make8BitFrom16BitSource):
7663 (WTF::String::fromUTF8):
7664 (WTF::String::fromUTF8WithLatin1Fallback):
7665 (WTF::String::defaultWritingDirection const):
7666 (WTF::String::containsOnlyWhitespace const):
7667 (WTF::String::isHashTableDeletedValue const):
7668 (WTF::String::existingHash const):
7669 (WTF::String::characterAt const):
7670 (WTF::String::clearImplIfNotShared):
7671 (WTF::operator==):
7672 (WTF::operator!=):
7673 (WTF::equalIgnoringNullity):
7674 (WTF::operator!):
7675 (WTF::swap):
7676 (WTF::String::characters<LChar> const):
7677 (WTF::String::characters<UChar> const):
7678 (WTF::String::containsOnlyLatin1 const):
7679 (WTF::String::operator NSString * const):
7680 (WTF::nsStringNilIfEmpty):
7681 (WTF::String::containsOnlyASCII const):
7682 (WTF::codePointCompareLessThan):
7683 (WTF::appendNumber):
7684 (WTF::isAllSpecialCharacters):
7685 (WTF::isSpecialCharacter const):
7686 (WTF::ASCIILiteral::ASCIILiteral):
7687 (WTF::ASCIILiteral::operator const char*):
7688 (WTF::equalLettersIgnoringASCIICase):
7689 (WTF::equalIgnoringASCIICase):
7690 (WTF::startsWithLettersIgnoringASCIICase):
7691 (WTF::IntegerToStringConversionTrait<String>::flush):
7692 * StitchMarker/wtf/text/icu/TextBreakIteratorICU.h: Added.
7693 (WTF::caretRules):
7694 (WTF::TextBreakIteratorICU::set8BitText):
7695 (WTF::TextBreakIteratorICU::TextBreakIteratorICU):
7696 (WTF::TextBreakIteratorICU::operator=):
7697 (WTF::TextBreakIteratorICU::~TextBreakIteratorICU):
7698 (WTF::TextBreakIteratorICU::setText):
7699 (WTF::TextBreakIteratorICU::preceding const):
7700 (WTF::TextBreakIteratorICU::following const):
7701 (WTF::TextBreakIteratorICU::isBoundary const):
7702 * StitchMarker/wtf/text/icu/UTextProvider.cpp: Added.
7703 (WTF::fixPointer):
7704 (WTF::uTextCloneImpl):
7705 * StitchMarker/wtf/text/icu/UTextProvider.h: Added.
7706 (WTF::uTextProviderContext):
7707 (WTF::initializeContextAwareUTextProvider):
7708 (WTF::uTextAccessPinIndex):
7709 (WTF::uTextAccessInChunkOrOutOfRange):
7710 * StitchMarker/wtf/text/icu/UTextProviderLatin1.cpp: Added.
7711 (WTF::uTextLatin1Clone):
7712 (WTF::uTextLatin1NativeLength):
7713 (WTF::uTextLatin1Access):
7714 (WTF::uTextLatin1Extract):
7715 (WTF::uTextLatin1MapOffsetToNative):
7716 (WTF::uTextLatin1MapNativeIndexToUTF16):
7717 (WTF::uTextLatin1Close):
7718 (WTF::openLatin1UTextProvider):
7719 (WTF::textLatin1ContextAwareGetCurrentContext):
7720 (WTF::textLatin1ContextAwareMoveInPrimaryContext):
7721 (WTF::textLatin1ContextAwareSwitchToPrimaryContext):
7722 (WTF::textLatin1ContextAwareMoveInPriorContext):
7723 (WTF::textLatin1ContextAwareSwitchToPriorContext):
7724 (WTF::uTextLatin1ContextAwareClone):
7725 (WTF::uTextLatin1ContextAwareNativeLength):
7726 (WTF::uTextLatin1ContextAwareAccess):
7727 (WTF::uTextLatin1ContextAwareExtract):
7728 (WTF::uTextLatin1ContextAwareClose):
7729 (WTF::openLatin1ContextAwareUTextProvider):
7730 * StitchMarker/wtf/text/icu/UTextProviderLatin1.h: Added.
7731 * StitchMarker/wtf/text/icu/UTextProviderUTF16.cpp: Added.
7732 (WTF::textUTF16ContextAwareGetCurrentContext):
7733 (WTF::textUTF16ContextAwareMoveInPrimaryContext):
7734 (WTF::textUTF16ContextAwareSwitchToPrimaryContext):
7735 (WTF::textUTF16ContextAwareMoveInPriorContext):
7736 (WTF::textUTF16ContextAwareSwitchToPriorContext):
7737 (WTF::uTextUTF16ContextAwareClone):
7738 (WTF::uTextUTF16ContextAwareNativeLength):
7739 (WTF::uTextUTF16ContextAwareAccess):
7740 (WTF::uTextUTF16ContextAwareExtract):
7741 (WTF::uTextUTF16ContextAwareClose):
7742 (WTF::openUTF16ContextAwareUTextProvider):
7743 * StitchMarker/wtf/text/icu/UTextProviderUTF16.h: Added.
7744 * StitchMarker/wtf/text/unix/TextBreakIteratorInternalICUUnix.cpp: Added.
7745 (WTF::currentSearchLocaleID):
7746 (WTF::currentTextBreakLocaleID):
7747 * StitchMarker/wtf/unicode/CharacterNames.h: Added.
7748 * StitchMarker/wtf/unicode/UTF8.cpp: Added.
7749 (WTF::Unicode::inlineUTF8SequenceLengthNonASCII):
7750 (WTF::Unicode::inlineUTF8SequenceLength):
7751 (WTF::Unicode::UTF8SequenceLength):
7752 (WTF::Unicode::decodeUTF8Sequence):
7753 (WTF::Unicode::convertLatin1ToUTF8):
7754 (WTF::Unicode::convertUTF16ToUTF8):
7755 (WTF::Unicode::isLegalUTF8):
7756 (WTF::Unicode::readUTF8Sequence):
7757 (WTF::Unicode::convertUTF8ToUTF16):
7758 (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
7759 (WTF::Unicode::equalUTF16WithUTF8):
7760 (WTF::Unicode::equalLatin1WithUTF8):
7761 * StitchMarker/wtf/unicode/UTF8.h: Added.
7762
rniwa@webkit.orgb0b70352017-08-22 21:00:49 +000077632017-08-22 Ryosuke Niwa <rniwa@webkit.org>
7764
rniwa@webkit.org1a1d00e2017-08-22 21:03:53 +00007765 Commit the change meant to be included in the previous commit.
7766
7767 * Speedometer/resources/main.js:
7768 (startBenchmark):
7769
77702017-08-22 Ryosuke Niwa <rniwa@webkit.org>
7771
rniwa@webkit.orgb0b70352017-08-22 21:00:49 +00007772 Speedometer 2.0: Make it possible to change the iteration count via query string
7773 https://bugs.webkit.org/show_bug.cgi?id=175811
7774
7775 Reviewed by Saam Barati.
7776
7777 Added the support for specifying the iteration count by "iterationCount" query parameter, and replaced "ms"
7778 query parameter by "unit=ms".
7779
7780 Finally, reduced the number of iterations from 20 to 10 to reduce the time needed to run the benchmark
7781 since Speedometer 2.0 contains more than twice the number of libraries and frameworks than Speedometer 1.0.
7782
7783 * Speedometer/resources/main.js:
7784 (window.benchmarkClient.didFinishLastIteration):
7785 (startBenchmark):
7786
commit-queue@webkit.org09cab072017-08-22 20:53:08 +000077872017-08-22 Mathias Bynens <mathias@qiwi.be>
7788
7789 Speedometer: Add missing stylesheet to Angular example
7790 https://bugs.webkit.org/show_bug.cgi?id=175820
7791
7792 Reviewed by Ryosuke Niwa.
7793
7794 * Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Added.
7795
rniwa@webkit.orgbb4ac532017-08-22 20:42:23 +000077962017-08-22 Ryosuke Niwa <rniwa@webkit.org>
7797
7798 Speedometer 2.0: Add button to select and unselect all tests to InteractiveRunner.html
7799 https://bugs.webkit.org/show_bug.cgi?id=175816
7800
7801 Reviewed by Saam Barati.
7802
7803 Added buttons to select and unselect all subtests to aid debugging.
7804
7805 * Speedometer/InteractiveRunner.html:
7806 (createUIForSuites):
7807
rniwa@webkit.org6049c7c2017-08-19 03:05:57 +000078082017-08-18 Ryosuke Niwa <rniwa@webkit.org>
7809
7810 REGRESSION(r219640): Speedometer no longer runs on Safari 7
7811 https://bugs.webkit.org/show_bug.cgi?id=175749
7812
7813 Reviewed by Joseph Pecoraro.
7814
7815 Use regular string instead of template literal to make the script compatible with older versions of Safari.
7816
7817 * Speedometer/resources/benchmark-runner.js:
7818 (BenchmarkRunner.prototype._runTest):
7819
commit-queue@webkit.org70ec82e2017-08-18 03:51:17 +000078202017-08-17 Mathias Bynens <mathias@qiwi.be>
7821
commit-queue@webkit.org3784c0f2017-08-18 04:03:24 +00007822 Speedometer: Update to modern Vue.js version
7823 https://bugs.webkit.org/show_bug.cgi?id=175660
7824
7825 Reviewed by Ryosuke Niwa.
7826
7827 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: Documented build process.
7828 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/index.js: Forced relative URLs to avoid breaking the interactive runner.
7829 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/*: Updated per build steps.
7830 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package-lock.json: Added to pin dependencies and make builds deterministic.
7831 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package.json: Update to modern Vue.js version.
7832 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue: Fix markup error.
7833
78342017-08-17 Mathias Bynens <mathias@qiwi.be>
7835
commit-queue@webkit.org70ec82e2017-08-18 03:51:17 +00007836 Speedometer: Update to modern React/Redux version
7837 https://bugs.webkit.org/show_bug.cgi?id=175669
7838
7839 Reviewed by Ryosuke Niwa.
7840
7841 * Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: Documented build steps.
7842 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/*: Updated per build instructions.
7843 * Speedometer/resources/todomvc/architecture-examples/react-redux/package-lock.json: Pinned dependencies to make builds deterministic.
7844 * Speedometer/resources/todomvc/architecture-examples/react-redux/package.json: Fixed build command.
7845 * Speedometer/resources/todomvc/architecture-examples/react-redux/public/index.html: Made title consistent.
7846
msaboff@apple.com25f43502017-08-18 00:56:59 +000078472017-08-17 Michael Saboff <msaboff@apple.com>
7848
7849 Add a Unicode test to RexBench that matches non-BMP characters
7850 https://bugs.webkit.org/show_bug.cgi?id=175697
7851
7852 Reviewed by JF Bastien.
7853
7854 Added a new sub test that simulates 5 card stud poker. This test uses the Unicode playing
7855 cards code points, U+1F0A1..U+1F0DE, as the card representation. The scoring of hands is
7856 done using three regular expressions, one to check for a flush, one to check for straights
7857 and one to check for pairs, three of a kind and four of a kind.
7858
7859 * RexBench/UniPoker: Added.
7860 * RexBench/UniPoker/benchmark.js: Added.
7861 (UniPokerBenchmark):
7862 (UniPokerBenchmark.prototype.setup.):
7863 (UniPokerBenchmark.prototype.setup.Math.random):
7864 (UniPokerBenchmark.prototype.setup):
7865 (UniPokerBenchmark.prototype.runOnce):
7866 (UniPokerBenchmark.prototype.validate):
7867 * RexBench/UniPoker/expected.js: Added.
7868 (PlayerExpectation):
7869 (PlayerExpectation.prototype.validate):
7870 * RexBench/UniPoker/poker.js: Added.
7871 (CardDeck):
7872 (CardDeck.prototype.newDeck):
7873 (CardDeck.prototype.shuffle):
7874 (CardDeck.prototype.dealOneCard):
7875 (CardDeck.cardRank):
7876 (CardDeck.cardName):
7877 (Hand):
7878 (Hand.prototype.clear):
7879 (Hand.prototype.takeCard):
7880 (Hand.prototype.score):
7881 (Hand.prototype.get rank):
7882 (Hand.prototype.toString):
7883 (Player):
7884 (Player.prototype.scoreHand):
7885 (Player.prototype.wonHand):
7886 (Player.prototype.get name):
7887 (Player.prototype.get hand):
7888 (Player.prototype.get wins):
7889 (Player.prototype.get handTypeCounts):
7890 (playHands):
7891 * RexBench/about.html:
7892 * RexBench/cli.js:
7893 * RexBench/glue.js:
7894 (driver.reportResult):
7895 * RexBench/index.html:
7896 * RexBench/unipoker_benchmark.js: Added.
7897
commit-queue@webkit.org8c81f462017-08-16 18:59:28 +000078982017-08-16 Mathias Bynens <mathias@qiwi.be>
7899
commit-queue@webkit.orga5dff6d2017-08-16 19:17:33 +00007900 Speedometer: Update Angular 1 TodoMVC example to v1.6.5
7901 https://bugs.webkit.org/show_bug.cgi?id=175623
7902
7903 Reviewed by Ryosuke Niwa.
7904
7905 * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html: Made title consistent.
7906 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js: Added.
7907 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js.map: Added.
7908 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js: Added.
7909 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js.map: Added.
7910 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js: Added.
7911 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js.map: Added.
7912 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Updated per build steps.
7913 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Updated per build steps.
7914 * Speedometer/resources/todomvc/architecture-examples/angularjs/package-lock.json: Added to pin dependencies.
7915 * Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Updated per build steps.
7916 * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md: Document the build process.
7917
79182017-08-16 Mathias Bynens <mathias@qiwi.be>
7919
commit-queue@webkit.org8c81f462017-08-16 18:59:28 +00007920 Speedometer: Document Backbone example
7921 https://bugs.webkit.org/show_bug.cgi?id=175626
7922
7923 Reviewed by Ryosuke Niwa.
7924
7925 * Speedometer/resources/todomvc/architecture-examples/backbone/index.html: Made title consistent.
7926 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.js: Added.
7927 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.map: Added.
7928 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Updated per build steps.
7929 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.js: Added.
7930 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.map: Added.
7931 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Updated per build steps.
7932 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.js: Added.
7933 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.map: Added.
7934 * Speedometer/resources/todomvc/architecture-examples/backbone/package-lock.json: Added.
7935 * Speedometer/resources/todomvc/architecture-examples/backbone/readme.md: Documented build steps.
7936
msaboff@apple.com7232f392017-08-15 20:11:57 +000079372017-08-15 Michael Saboff <msaboff@apple.com>
7938
7939 Add Offline Assembler parsing test to RexBench
7940 https://bugs.webkit.org/show_bug.cgi?id=175581
7941
7942 Reviewed by Saam Barati.
7943
7944 This is a port of the JavaScriptCore offline assmebler's lexer, parser, AST and
7945 supporting code from Ruby to JavaScript turned into a benchmark. The benchmark
7946 timing includes parsing through AST. The validation processing time is not
7947 part of the benchmark measurement.
7948
7949 The input data is the current tip of tree LLInt .asm source files. Those file
7950 were converted to JavaScript using the python script, convert_asm_to_js.py.
7951 There is also a new JavaScript file, generate_expected.js, to create the
7952 expected output JavaScript file.
7953
7954 * RexBench/OfflineAssembler: Added.
7955 * RexBench/OfflineAssembler/ast.js: Added.
7956 * RexBench/OfflineAssembler/instructions.js: Added.
7957 * RexBench/OfflineAssembler/parser.js: Added.
7958 * RexBench/OfflineAssembler/registers.js: Added.
7959 These are JavaScript translation of the Ruby Offline Assembler. Code not
7960 needed for the benchmark was not translated and therefore missing.
7961
7962 * RexBench/OfflineAssembler/InitBytecodes.asm: Added.
7963 * RexBench/OfflineAssembler/InitBytecodes.js: Added.
7964 * RexBench/OfflineAssembler/LowLevelInterpreter.asm: Added.
7965 * RexBench/OfflineAssembler/LowLevelInterpreter.js: Added.
7966 * RexBench/OfflineAssembler/LowLevelInterpreter32_64.asm: Added.
7967 * RexBench/OfflineAssembler/LowLevelInterpreter32_64.js: Added.
7968 * RexBench/OfflineAssembler/LowLevelInterpreter64.asm: Added.
7969 * RexBench/OfflineAssembler/LowLevelInterpreter64.js: Added.
7970 Copies of the current LLInt source and conversion to JavaScript.
7971
7972 * RexBench/OfflineAssembler/file.js: Added.
7973 (File):
7974 (File.open):
7975 (File.prototype.read):
7976 Mock File class used to simulate filesystem access.
7977
7978 * RexBench/OfflineAssembler/expected.js: Added.
7979 Expected output of the AST dumped and split into individual lines.
7980
7981 * RexBench/OfflineAssembler/benchmark.js: Added.
7982 (OfflineAssemblerBenchmark):
7983 (OfflineAssemblerBenchmark.prototype.runOnce):
7984 (OfflineAssemblerBenchmark.prototype.validate):
7985 Benchmark sub class for this test.
7986
7987 * RexBench/OfflineAssembler/convert_asm_to_js.py: Added.
7988 (convertFile):
7989 Converts .asm into .js files compatible to the benchmark.
7990
7991 * RexBench/OfflineAssembler/generate_expected.js: Added.
7992 Converts AST output into the expected file format.
7993
7994 * RexBench/about.html: Added description of this sub-benchmark test.
7995
7996 * RexBench/cli.js:
7997 * RexBench/glue.js:
7998 * RexBench/index.html:
7999 * RexBench/offline_assembler_benchmark.js: Added.
8000 Updates to add this sub-benchmark.
8001
mmaxfield@apple.com7b77ef32017-08-10 01:12:07 +000080022017-08-09 Myles C. Maxfield <mmaxfield@apple.com>
8003
8004 font-fallback-font-family.html is failing on perf bots
8005 https://bugs.webkit.org/show_bug.cgi?id=174989
8006
8007 Unreviewed.
8008
8009 * Layout/resources/font-fallback-font-family.html:
8010
msaboff@apple.com6da5b8d2017-08-09 22:33:27 +000080112017-08-09 Michael Saboff <msaboff@apple.com>
8012
msaboff@apple.com87fc5802017-08-09 22:59:32 +00008013 Unreviewed build fix.
8014
8015 Added missing files.
8016
8017 * RexBench/Octane2/benchmark.js: Added.
8018 (Octane2RegExpBenchmark):
8019 (Octane2RegExpBenchmark.prototype.setup.):
8020 (Octane2RegExpBenchmark.prototype.setup.Math.random):
8021 (Octane2RegExpBenchmark.prototype.setup):
8022 (Octane2RegExpBenchmark.prototype.runOnce):
8023 (Octane2RegExpBenchmark.prototype.tearDown):
8024 * RexBench/SunSpider/benchmark.js: Added.
8025 (RegexDNABenchmark):
8026 (RegexDNABenchmark.prototype.runOnce):
8027 (RegexDNABenchmark.prototype.validate):
8028
80292017-08-09 Michael Saboff <msaboff@apple.com>
8030
msaboff@apple.com6da5b8d2017-08-09 22:33:27 +00008031 Rex Bench doesn't work from the command line
8032 https://bugs.webkit.org/show_bug.cgi?id=175349
8033
8034 Reviewed by Saam Barati.
8035
8036 Fixed cli.js to have the same set of benchmarks and .js files as the web
8037 page driver.
8038
8039 Refactored the way benchmarks are run using a new Benchmark base class. That
8040 class will run the benchmark as well. Eliminated the various runBenchmark()
8041 functions that were used for individual tests. This refactoring was threaded
8042 into the web page driver as well. Changed the iteration counts on many of the
8043 individual benchmarks. Also changed the inner loop count for the flight
8044 planner test.
8045
8046 Eliminated Octane2/base.js as it isn't needed to run Octane2/RegExp with the
8047 new test harness. Eliminated other dead code in Octane2/regexp.js.
8048
8049 * RexBench/Basic/benchmark.js:
8050 (BasicBenchmark):
8051 (BasicBenchmark.prototype.runIteration): Deleted.
8052 (runBenchmark): Deleted.
8053 * RexBench/FlightPlanner/benchmark.js:
8054 (FlightPlannerBenchmark):
8055 (FlightPlannerBenchmark.prototype.runOnce):
8056 (this.performance.performance.now.currentTime): Deleted.
8057 (else.this.preciseTime.currentTime): Deleted.
8058 (else.currentTime): Deleted.
8059 (FlightPlannerBenchmark.prototype.runIteration): Deleted.
8060 (FlightPlannerBenchmark.prototype.checkResults): Deleted.
8061 (runBenchmark): Deleted.
8062 * RexBench/Octane2/base.js: Removed.
8063 * RexBench/Octane2/regexp.js:
8064 * RexBench/basic_benchmark.js:
8065 * RexBench/benchmark.js: Added.
8066 (this.performance.performance.now.currentTime):
8067 (else.this.preciseTime.currentTime):
8068 (else.currentTime):
8069 (Benchmark):
8070 (Benchmark.prototype.runIterations):
8071 (Benchmark.prototype.setup):
8072 (Benchmark.prototype.runOnce):
8073 (Benchmark.prototype.validate):
8074 (Benchmark.prototype.tearDown):
8075 * RexBench/cli.js:
8076 * RexBench/flightplan_benchmark.js:
8077 * RexBench/flightplan_unicode_benchmark.js:
8078 * RexBench/octane2_benchmark.js:
8079 * RexBench/stats.js:
8080 (Stats.prototype.toString.return.span.0.span.span):
8081 * RexBench/sunspider_benchmark.js:
8082
msaboff@apple.com4040d2a2017-08-08 03:20:19 +000080832017-08-07 Michael Saboff <msaboff@apple.com>
8084
8085 Use more accurate Russian keywords for RexBench/FlightPlanner Unicode mode
8086 https://bugs.webkit.org/show_bug.cgi?id=175298
8087
8088 Reviewed by Saam Barati.
8089
8090 With the help of Alexey Proskuryakov updated the Russian keywords.
8091
8092 * RexBench/FlightPlanner/use_unicode.js:
8093
commit-queue@webkit.org46d3cc42017-08-08 00:47:14 +000080942017-08-07 Mathias Bynens <mathias@qiwi.be>
8095
8096 Speedometer: Update to modern production Ember version
8097 https://bugs.webkit.org/show_bug.cgi?id=175278
8098
8099 Reviewed by Ryosuke Niwa.
8100
8101 * Speedometer/resources/todomvc/architecture-examples/emberjs/README.md: Added.
8102 * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html: Made title consistent.
8103 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/README.md: Documented build process.
8104 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/.gitkeep: Added.
8105 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/index.html: Made title consistent.
8106 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Removed.
8107 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/models/.gitkeep: Added.
8108 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/router.js: Update to latest version.
8109 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/.gitkeep: Added.
8110 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js: Update to latest version
8111 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/styles/app.css: Added.
8112 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/.gitkeep: Added.
8113 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/bower.json: Update to latest version.
8114 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/config/environment.js: Update to latest version.
8115 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/dist/*: Added generated files per build instructions.
8116 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package-lock.json: Pinned dependencies.
8117 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package.json: Update to latest version.
8118 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Removed.
8119 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js: Updated to latest version.
8120 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js: Updated to latest version.
8121 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/index.html: Updated to latest version.
8122 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/integration/.gitkeep: Added.
8123 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/unit/.gitkeep: Added.
8124 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/.gitkeep: Added.
8125
msaboff@apple.com71dc0012017-08-07 22:43:24 +000081262017-08-07 Michael Saboff <msaboff@apple.com>
8127
8128 REGRESSION(r220307): Perf bot failure trying to run RexBench tests
8129 https://bugs.webkit.org/show_bug.cgi?id=175289
8130
8131 Reviewed by Filip Pizlo.
8132
8133 Add RexBench to the list of benchmarks we skip on the perf bots.
8134
8135 * Skipped:
8136
msaboff@apple.combb625ba2017-08-05 00:20:23 +000081372017-08-04 Michael Saboff <msaboff@apple.com>
8138
8139 Create a new JavaScript RegExp benchmark
8140 https://bugs.webkit.org/show_bug.cgi?id=175225
8141
8142 Reviewed by JF Bastien.
8143
8144 This is a new benchmark for Regular Expressions. It borrows regex-dna from
8145 SunSpider, the regexp test from Octane2, the BASIC parser from ARES-6/Basic,
8146 and adds a new flight planner benchmark that uses RegExp's for textual parsing.
8147
8148 There needs to be some additions and changes to some of the textual content.
8149 This includes adding more BASIC programs to the Basic test and increasing
8150 keyword usage in the Flight Planner to increase the 16-bit coverage.
8151
8152 The intent is to grow this benchmark by adding a JavaScript implementation of the
8153 offline assembler lexer and parser as well as adding some targeted micro benchmark
8154 tests.
8155
8156 * RexBench: Added.
8157 * RexBench/Basic: Added.
8158 * RexBench/Basic/ast.js: Added.
8159 * RexBench/Basic/basic.js: Added.
8160 * RexBench/Basic/benchmark.js: Added.
8161 * RexBench/Basic/caseless_map.js: Added.
8162 * RexBench/Basic/lexer.js: Added.
8163 * RexBench/Basic/number.js: Added.
8164 * RexBench/Basic/parser.js: Added.
8165 * RexBench/Basic/random.js: Added.
8166 * RexBench/Basic/state.js: Added.
8167 * RexBench/Basic/stress-test.js: Added.
8168 * RexBench/Basic/util.js: Added.
8169 * RexBench/FlightPlanner: Added.
8170 * RexBench/FlightPlanner/airways.js: Added.
8171 * RexBench/FlightPlanner/benchmark.js: Added.
8172 * RexBench/FlightPlanner/convert-nfdc.py: Added.
8173 * RexBench/FlightPlanner/expectations.js: Added.
8174 * RexBench/FlightPlanner/flight_planner.js: Added.
8175 * RexBench/FlightPlanner/use_unicode.js: Added.
8176 * RexBench/FlightPlanner/waypoints.js: Added.
8177 * RexBench/Octane2: Added.
8178 * RexBench/Octane2/base.js: Added.
8179 * RexBench/Octane2/regexp.js: Added.
8180 * RexBench/SunSpider: Added.
8181 * RexBench/SunSpider/regex-dna.js: Added.
8182 * RexBench/about.html: Added.
8183 * RexBench/basic_benchmark.js: Added.
8184 * RexBench/cli.js: Added.
8185 * RexBench/driver.js: Added.
8186 * RexBench/flightplan_benchmark.js: Added.
8187 * RexBench/flightplan_unicode_benchmark.js: Added.
8188 * RexBench/glue.js: Added.
8189 * RexBench/index.html: Added.
8190 * RexBench/octane2_benchmark.js: Added.
8191 * RexBench/results.js: Added.
8192 * RexBench/stats.js: Added.
8193 * RexBench/styles.css: Added.
8194 * RexBench/sunspider_benchmark.js: Added.
8195
commit-queue@webkit.org623dbee2017-08-01 00:39:16 +000081962017-07-31 Mathias Bynens <mathias@qiwi.be>
8197
8198 Speedometer 2.0: Remove <base> from Angular 4 test
8199 https://bugs.webkit.org/show_bug.cgi?id=175004
8200
8201 Reviewed by Ryosuke Niwa.
8202
8203 * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Remove <base>.
8204 * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Remove <base>.
8205
commit-queue@webkit.org43e9eed2017-07-29 11:38:07 +000082062017-07-29 Mathias Bynens <mathias@chromium.org>
8207
8208 Speedometer 2.0: Document vanilla/es2015 build process
8209 https://bugs.webkit.org/show_bug.cgi?id=174894
8210
8211 Reviewed by Ryosuke Niwa.
8212
8213 * Speedometer/resources/todomvc/vanilla-examples/es2015/README.md: Added.
8214 * Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Made title consistent.
8215
commit-queue@webkit.org7c6e7902017-07-28 04:44:45 +000082162017-07-27 Mathias Bynens <mathias@chromium.org>
8217
8218 Speedometer 2.0: Document Angular 4 build process
8219 https://bugs.webkit.org/show_bug.cgi?id=174896
8220
8221 Reviewed by Ryosuke Niwa.
8222
8223 This patch documents the build process for the Angular 4 example, pins the dependencies (so
8224 that builds are deterministic), and updates the generated files accordingly.
8225
8226 * Speedometer/resources/todomvc/architecture-examples/angular/README.md: Added.
8227 * Speedometer/resources/todomvc/architecture-examples/angular/dist/*: Update per build instructions.
8228 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Removed unused file.
8229 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Removed unused file.
8230 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Removed unused file.
8231 * Speedometer/resources/todomvc/architecture-examples/angular/package.json: Remove unneeded scripts.
8232 * Speedometer/resources/todomvc/architecture-examples/angular/package-lock.json: Added to pin dependencies.
8233 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Updated.
8234 * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Updated.
8235 * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Made title consistent.
8236
commit-queue@webkit.org4c19dcd2017-07-26 04:42:19 +000082372017-07-25 Mathias Bynens <mathias@qiwi.be>
8238
8239 Speedometer 2.0: Document es2015-babel-webpack build process
8240 https://bugs.webkit.org/show_bug.cgi?id=174252
8241
8242 Reviewed by Ryosuke Niwa.
8243
8244 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md: Added build docs.
8245 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/*: Update generated build files.
8246 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Remove unused items.
8247 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package-lock.json: Added lockfile.
8248 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Make title consistent.
8249
commit-queue@webkit.org5d38ec92017-07-18 23:22:46 +000082502017-07-18 Matt Kotsenas <mattkot@microsoft.com>
8251
8252 Add performance.mark()s around each test step
8253 https://bugs.webkit.org/show_bug.cgi?id=174530
8254
8255 Reviewed by Ryosuke Niwa.
8256
8257 Add `performance.mark()` around each test step to make analysis
8258 simpler. Now each test step can be investigated via dev tools, ETW, etc.
8259
8260 * Speedometer/resources/benchmark-runner.js:
8261 (BenchmarkRunner.prototype._writeMark):
8262 (BenchmarkRunner.prototype._runTest):
8263 (BenchmarkRunner.prototype._runTestAndRecordResults):
8264
sbarati@apple.com0b6fb6b2017-07-14 17:47:28 +000082652017-07-14 Saam Barati <sbarati@apple.com>
8266
8267 Fix ambiguous description text in ARES-6 about the data the benchmark measures
8268 https://bugs.webkit.org/show_bug.cgi?id=174510
8269
8270 Rubber stamped by Filip Pizlo.
8271
8272 * ARES-6/about.html:
8273
commit-queue@webkit.orgd7c57a42017-07-07 10:25:00 +000082742017-07-07 Mathias Bynens <mathias@qiwi.be>
8275
8276 Speedometer 2.0: Fix vanilla JS example
8277 https://bugs.webkit.org/show_bug.cgi?id=174246
8278
8279 Reviewed by Ryosuke Niwa.
8280
8281 Previously, all TODO items were assigned an ID of `null`. This patch
8282 fixes that bug. Manually deleting items now works again.
8283
8284 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Made title consistent.
8285 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Fixed bug with deleting items.
8286 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Added docs.
8287
mmaxfield@apple.com555fe1f2017-07-06 23:04:18 +000082882017-07-06 Myles C. Maxfield <mmaxfield@apple.com>
8289
8290 [Cocoa] Improve performance of font lookups
8291 https://bugs.webkit.org/show_bug.cgi?id=173960
8292 <rdar://problem/31996891>
8293
8294 Reviewed by Darin Adler.
8295
8296 * Layout/font-fallback-font-family.html: Added.
8297 * Layout/resources/font-fallback-font-family.html: Added.
8298
mitz@apple.come336dea2017-06-10 20:32:57 +000082992017-06-10 Dan Bernstein <mitz@apple.com>
8300
mitz@apple.comd4112532017-06-11 01:37:09 +00008301 Reverted r218056 because it made the IDE reindex constantly.
8302
8303 * MediaTime/Configurations/DebugRelease.xcconfig:
8304
83052017-06-10 Dan Bernstein <mitz@apple.com>
8306
mitz@apple.come336dea2017-06-10 20:32:57 +00008307 [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE
8308 https://bugs.webkit.org/show_bug.cgi?id=173223
8309
8310 Reviewed by Sam Weinig.
8311
8312 The rebuilds were happening due to a difference in the compiler options that the IDE and
8313 xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make
8314 xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and
8315 specify an appropriate path in CLANG_INDEX_STORE_PATH.
8316
8317 * MediaTime/Configurations/DebugRelease.xcconfig:
8318
sbarati@apple.come7c32b82017-06-07 19:13:46 +000083192017-06-07 Saam Barati <sbarati@apple.com>
8320
8321 ARES-6 incorrectly measures Worst 4 Iterations
8322 https://bugs.webkit.org/show_bug.cgi?id=172960
8323
8324 Reviewed by Mark Lam.
8325
8326 Version 1.0 of ARES-6 was accidentally measuring the first
8327 4 iterations, instead of the worst 4. This patch fixes the
8328 bug and bumps the version to 1.0.1.
8329
8330 * ARES-6/glue.js:
8331 (driver.reportResult):
8332 * ARES-6/results.js:
8333 (Results.prototype.reportResult):
8334
sbarati@apple.com02c33592017-06-06 07:57:45 +000083352017-06-06 Saam Barati <sbarati@apple.com>
8336
8337 Add a version number to ARES-6
8338 https://bugs.webkit.org/show_bug.cgi?id=172962
8339
8340 Reviewed by Yusuke Suzuki.
8341
8342 * ARES-6/glue.js:
8343 (driver.reportResult):
8344
sbarati@apple.com28654682017-06-02 05:55:28 +000083452017-06-01 Saam Barati <sbarati@apple.com>
8346
8347 Ensure a good experience for ARES-6 error reporting
8348 https://bugs.webkit.org/show_bug.cgi?id=171699
8349
8350 Reviewed by Filip Pizlo and Jon Davis.
8351
8352 This patch fixes a bug where we would silently fail running ARES-6. The bug
8353 was that we were calling reportError with the wrong |this| value.
8354 I also cleaned up a bit of the code around error reporting. We
8355 now indicate which test failed, and update the status to reflect
8356 that a failure happened.
8357
8358 This patch also modifies the CSS a bit to work better on smaller
8359 screened devices. The CSS prevents the status from having a line
8360 break both when an error is reported and when we're running the
8361 benchmark.
8362
8363 * ARES-6/driver.js:
8364 (Driver):
8365 (Driver.prototype.reportError):
8366 * ARES-6/results.js:
8367 (Results.prototype.reportError):
8368 (Results):
8369 * ARES-6/styles.css:
8370 (.start):
8371 (#status):
8372 (.failed):
8373 (#status.failed):
8374 (.test .failed:before):
8375 (#magic):
8376 (@media only screen and (max-width: 784px)):
8377 (.test):
8378 (p):
8379 (@media only screen and (max-width: 320px)):
8380
rniwa@webkit.orgfd481462017-05-19 22:42:43 +000083812017-05-19 Ryosuke Niwa <rniwa@webkit.org>
8382
8383 REGRESSION(r217118): Speedometer 2.0: Flight.js test is broken
8384 https://bugs.webkit.org/show_bug.cgi?id=172394
8385
8386 Reviewed by Chris Dumez.
8387
8388 Fixed the bug that we were never clearing window.checkLoadedTimeoutId.
8389
8390 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
8391 (newContext.checkLoaded):
8392
utatane.tea@gmail.com01bb64c2017-05-19 13:59:25 +000083932017-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
8394
8395 Add SixSpeed benchmark to PerformanceTests
8396 https://bugs.webkit.org/show_bug.cgi?id=172326
8397
8398 Reviewed by Sam Weinig.
8399
8400 This patch imports SixSpeed benchmark into WebKit tree.
8401 It is a collection of ES6 microbenchmarks. While the scripts are very tiny,
8402 it sometimes hits our missing care for optimization. So including it is useful.
8403
8404 The benchmark is released under MIT license.
8405
8406 * SixSpeed/LICENSE: Added.
8407 * SixSpeed/REVISION: Added.
8408 * SixSpeed/ReadMe.md: Added.
8409 * SixSpeed/tests/.eslintrc: Added.
8410 * SixSpeed/tests/arrow-args/arrow-args.es5: Added.
8411 * SixSpeed/tests/arrow-args/arrow-args.es6: Added.
8412 * SixSpeed/tests/arrow-declare/arrow-declare.es5: Added.
8413 * SixSpeed/tests/arrow-declare/arrow-declare.es6: Added.
8414 * SixSpeed/tests/arrow/arrow.es5: Added.
8415 * SixSpeed/tests/arrow/arrow.es6: Added.
8416 * SixSpeed/tests/bindings-compound/bindings-compound.es5: Added.
8417 * SixSpeed/tests/bindings-compound/bindings-compound.es6: Added.
8418 * SixSpeed/tests/bindings/bindings.es5: Added.
8419 * SixSpeed/tests/bindings/bindings.es6: Added.
8420 * SixSpeed/tests/classes/classes.es5: Added.
8421 * SixSpeed/tests/classes/classes.es6: Added.
8422 * SixSpeed/tests/defaults/defaults.es5: Added.
8423 * SixSpeed/tests/defaults/defaults.es6: Added.
8424 * SixSpeed/tests/destructuring-simple/destructuring-simple.es5: Added.
8425 * SixSpeed/tests/destructuring-simple/destructuring-simple.es6: Added.
8426 * SixSpeed/tests/destructuring/destructuring.es5: Added.
8427 * SixSpeed/tests/destructuring/destructuring.es6: Added.
8428 * SixSpeed/tests/for-of-array/for-of-array.es5: Added.
8429 * SixSpeed/tests/for-of-array/for-of-array.es6: Added.
8430 * SixSpeed/tests/for-of-object/for-of-object.es5: Added.
8431 * SixSpeed/tests/for-of-object/for-of-object.es6: Added.
8432 * SixSpeed/tests/generator/generator.es5: Added.
8433 * SixSpeed/tests/generator/generator.es6: Added.
8434 * SixSpeed/tests/map-set-lookup/map-set-lookup.es5: Added.
8435 * SixSpeed/tests/map-set-lookup/map-set-lookup.es6: Added.
8436 * SixSpeed/tests/map-set-object/map-set-object.es5: Added.
8437 * SixSpeed/tests/map-set-object/map-set-object.es6: Added.
8438 * SixSpeed/tests/map-set/map-set.es5: Added.
8439 * SixSpeed/tests/map-set/map-set.es6: Added.
8440 * SixSpeed/tests/map-string/map-string.es5: Added.
8441 * SixSpeed/tests/map-string/map-string.es6: Added.
8442 * SixSpeed/tests/new-target/defaults.es5: Added.
8443 * SixSpeed/tests/new-target/defaults.es6: Added.
8444 * SixSpeed/tests/object-assign/object-assign.es5: Added.
8445 * SixSpeed/tests/object-assign/object-assign.es6: Added.
8446 * SixSpeed/tests/object-literal-ext/object-literal-ext.es5: Added.
8447 * SixSpeed/tests/object-literal-ext/object-literal-ext.es6: Added.
8448 * SixSpeed/tests/regex-u/regex-u.es5: Added.
8449 * SixSpeed/tests/regex-u/regex-u.es6: Added.
8450 * SixSpeed/tests/rest/rest.es5: Added.
8451 * SixSpeed/tests/rest/rest.es6: Added.
8452 * SixSpeed/tests/spread-generator/spread-generator.es5: Added.
8453 * SixSpeed/tests/spread-generator/spread-generator.es6: Added.
8454 * SixSpeed/tests/spread-literal/spread-literal.es5: Added.
8455 * SixSpeed/tests/spread-literal/spread-literal.es6: Added.
8456 * SixSpeed/tests/spread/spread.es5: Added.
8457 * SixSpeed/tests/spread/spread.es6: Added.
8458 * SixSpeed/tests/super/super.es5: Added.
8459 * SixSpeed/tests/super/super.es6: Added.
8460 * SixSpeed/tests/template_string/template_string.es5: Added.
8461 * SixSpeed/tests/template_string/template_string.es6: Added.
8462 * SixSpeed/tests/template_string_tag/template_string_tag.es5: Added.
8463 * SixSpeed/tests/template_string_tag/template_string_tag.es6: Added.
8464 * SixSpeed/wrappers/wrapper.js:
8465 (test):
8466
rniwa@webkit.org0fcfe722017-05-19 10:09:13 +000084672017-05-19 Ryosuke Niwa <rniwa@webkit.org>
8468
rniwa@webkit.org63a3ff82017-05-19 10:50:38 +00008469 Speedometer 2.0: Angular v1 test only deletes the second item
8470 https://bugs.webkit.org/show_bug.cgi?id=172353
8471
8472 Reviewed by Antti Koivisto.
8473
8474 Like jQuery and Inferno, run querySelector after removing each todo item.
8475
8476 * Speedometer/InteractiveRunner.html: Tweaked CSS again.
8477 * Speedometer/resources/tests.js:
8478
84792017-05-19 Ryosuke Niwa <rniwa@webkit.org>
8480
rniwa@webkit.org0fcfe722017-05-19 10:09:13 +00008481 Speedometer 2.0: Elem test isn't updating DOM during the measurement
8482 https://bugs.webkit.org/show_bug.cgi?id=172343
8483
8484 Reviewed by Antti Koivisto.
8485
8486 Elem test wasn't doing much work because it simply enqueues items into the work queue, which doesn't get
8487 executed until the next requestAnimationFrame or setTimeout callback happens.
8488
8489 Expose elm's work function as contentWindow.elemWork and make the first use of rAF a synchronous callback
8490 just as it would when requestAnimationFrame isn't defined, and make the second use of rAF queue up to
8491 an array of callbacks, and have the test runner manually invoke each callback.
8492
8493 This increases the runtime of the Elm suite from 100ms to 300ms on Safari.
8494
8495 * Speedometer/resources/tests.js:
8496 (processElmWorkQueue): Added. A helper which processes Elm's work queue and manually invokes render callbacks.
8497 * Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
8498
rniwa@webkit.orge212a2f2017-05-19 10:05:13 +000084992017-05-18 Ryosuke Niwa <rniwa@webkit.org>
8500
8501 Speedometer 2.0: Flight.js test is sometime broken
8502 https://bugs.webkit.org/show_bug.cgi?id=172347
8503
8504 Reviewed by Antti Koivisto.
8505
8506 The bug was caused by the test runner only waiting for #new-todo, which happens before all other states are
8507 updated in the Flight.js dependency example. As done in Speedometer v1, insert a dummy element with id set
8508 to appIsReady and wait for this element to appear in the benchmark harness.
8509
8510 * Speedometer/resources/tests.js: Wait for #appIsReady.
8511 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Removed the superflous call
8512 to console.log.
8513 (checkReady): Added. Insert #appIsReady if checkLoaded is no longer running at 50ms interval. Because this
8514 could happen asynchronously, we check the absense of checkLoadedTimeoutId Ωevery 10ms for 5 times for
8515 the total duration of 50ms. If checkLoadedTimeoutId was never present, we call it ready. If we ever observed
8516 the presence of checkLoadedTimeoutId, wait another 50ms and start over.
8517 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
8518 (.newContext.checkLoaded): Expose checkLoadedTimeoutId which is a timer ID used to check the dependency.
8519
rniwa@webkit.org8bb9cfc2017-05-19 09:19:01 +000085202017-05-19 Ryosuke Niwa <rniwa@webkit.org>
8521
rniwa@webkit.org269bed12017-05-19 09:43:40 +00008522 Speedometer 2.0: jQuery and Inferno tests don't delete all ToDo items
8523 https://bugs.webkit.org/show_bug.cgi?id=172341
8524
8525 Reviewed by Antti Koivisto.
8526
8527 The bug was caused by the fact TodoMVC examples for jQuery and Inferno JS create a new button
8528 to delete the todo item each time todo items are rendered.
8529
8530 Fixed the bug by dynamically look for .destroy using querySelector for each item.
8531
8532 Also moved the deletion of the iframe from the end of each test suite to the beginning of each suite.
8533 This will make debugging the issue like this easier on InteractiveRunner.html since the iframe
8534 will stick around after stepping the last item in the suite.
8535
8536 * Speedometer/InteractiveRunner.html: Tweaked the CSS to make buttons to "Step" and "Run" always visible
8537 even if the list of suites and subtests are too long to fit in the viewport.
8538
8539 * Speedometer/resources/benchmark-runner.js:
8540 (BenchmarkRunner.prototype.step):
8541 (BenchmarkRunner.prototype._runTestAndRecordResults):
8542
8543 * Speedometer/resources/tests.js: Fixed the bug for jQuery and Inferno. In the case of jQuery
8544 we also have to fix the code for checking every ToDo item as completed as well.
8545
85462017-05-19 Ryosuke Niwa <rniwa@webkit.org>
8547
rniwa@webkit.org8bb9cfc2017-05-19 09:19:01 +00008548 Speedometer 2.0: Vanilla JS test doesn't mark all todo items as completed
8549 https://bugs.webkit.org/show_bug.cgi?id=172348
8550
8551 Reviewed by Antti Koivisto.
8552
8553 The bug was caused by the in-memory store class using the milisecond precision timestamp as an ID.
8554 Because we inserts 50 items all at once, this can result in multiple data items sharing a single ID.
8555
8556 Fixed the bug by using a mononotically increasing ID instead.
8557
8558 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
8559 (Store.prototype.save):
8560
rniwa@webkit.org7ba5f742017-05-19 03:05:07 +000085612017-05-18 Ryosuke Niwa <rniwa@webkit.org>
8562
8563 REGRESSION (r216694 - 216712): Performance test Speedometer/Full.html is failing
8564 https://bugs.webkit.org/show_bug.cgi?id=172077
8565
8566 Reviewed by Chris Dumez.
8567
8568 Rename Full.html to index.html to match the convention of other benchmarks.
8569
8570 * Speedometer/index.html: Renamed from PerformanceTests/Speedometer/Full.html.
8571
rniwa@webkit.org25f92c02017-05-19 03:03:55 +000085722017-05-18 Addy Osmani <addyosmani@gmail.com>
8573
8574 Speedometer: check-in missing React TodoMVC dependency
8575 https://bugs.webkit.org/show_bug.cgi?id=172213
8576
8577 Reviewed by Ryosuke Niwa.
8578
8579 * Speedometer/resources/todomvc/architecture-examples/react/index.html: fix director.min.js path.
8580 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/director.min.js: Added.
8581
rniwa@webkit.orgda72f592017-05-17 20:52:39 +000085822017-05-17 Addy Osmani <addyosmani@gmail.com>
8583
8584 Speedometer: adjust Ember TodoMVC to use full path
8585 https://bugs.webkit.org/show_bug.cgi?id=172211
8586
8587 Reviewed by Ryosuke Niwa.
8588
8589 * Speedometer/resources/tests.js: use full path to Ember TodoMVC app.
8590
commit-queue@webkit.org3491ca32017-05-16 21:16:51 +000085912017-05-16 Addy Osmani <addyosmani@gmail.com>
8592
8593 Update to Speedometer 2.0 w/updated frameworks + new workloads
8594 https://bugs.webkit.org/show_bug.cgi?id=170513
8595
8596 Reviewed by Ryosuke Niwa.
8597
8598 Refresh test runner and fix apps to work with it.
8599
8600 * Speedometer/InteractiveRunner.html:
8601 (parseQueryString): Adds support for startAutomatically query parameter.
8602 * Speedometer/resources/tests.js:
8603 (triggerEnter): Refactor event triggering behavior for tests.
8604 * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html:
8605 (CSS): Drop reference to extraneous stylesheet in Angular TodoMVC.
8606 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js:
8607 * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
8608 (base): Enable Ember TodoMVC to be run from any directory/level.
8609 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js:
8610 (localStorageMemory): Correct import path and switch to window.localStorageMemory to fix Ember failures.
8611 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js:
8612 * Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html:
8613 * Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
8614 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/LICENSE: Added.
8615 (LICENSE): Add missing metadata and LICENSE files as part of director.js package for jQuery TodoMVC
8616 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/bower.json: Added.
8617 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.js: Add missing
8618 director.js dependency for jQuery TodoMVC implementation.
8619 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.min.js: Added.
8620 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/ender.js: Added.
8621 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/package.json: Added.
8622 * Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Fix path to built Elm TodoMVC scripts.
8623
commit-queue@webkit.orgce625902017-05-12 09:00:44 +000086242017-05-12 Addy Osmani <addyosmani@gmail.com>
8625
8626 Speedometer: Add a React.js TodoMVC implementation
8627 https://bugs.webkit.org/show_bug.cgi?id=171444
8628
8629 Reviewed by Ryosuke Niwa.
8630
8631 Adds a more recent React.js TodoMVC implemenation to Speedometer
8632
8633 * Speedometer/resources/todomvc/architecture-examples/react/build.min.js: Added.
8634 * Speedometer/resources/todomvc/architecture-examples/react/index.html: Added.
8635 * Speedometer/resources/todomvc/architecture-examples/react/js/app.jsx: Added.
8636 * Speedometer/resources/todomvc/architecture-examples/react/license.md: Added.
8637 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/LICENSE: Added.
8638 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bind.js: Added.
8639 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bower.json: Added.
8640 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/dedupe.js: Added.
8641 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/index.js: Added.
8642 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/package.json: Added.
8643 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/LICENSE: Added.
8644 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/bower.json: Added.
8645 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/package.json: Added.
8646 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/LICENSE: Added.
8647 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom-server.min.js: Added.
8648 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom.min.js: Added.
8649 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/index.js: Added.
8650 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/LICENSE: Added.
8651 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/README.md: Added.
8652 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react-with-addons.min.js: Added.
8653 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react.min.js: Added.
8654 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/package.json: Added.
8655 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-app-css/index.css: Added.
8656 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.css: Added.
8657 * Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.js: Added.
8658 * Speedometer/resources/todomvc/architecture-examples/react/npm-shrinkwrap.json: Added.
8659 * Speedometer/resources/todomvc/architecture-examples/react/package.json: Added.
8660 * Speedometer/resources/todomvc/architecture-examples/react/yarn.lock: Added.
8661
commit-queue@webkit.org33542ef2017-05-12 00:12:09 +000086622017-05-11 Addy Osmani <addyosmani@gmail.com>
8663
commit-queue@webkit.org5ec1ee42017-05-12 06:32:48 +00008664 Speedometer: Update the Ember.js TodoMVC to a more recent version
8665 https://bugs.webkit.org/show_bug.cgi?id=171342
8666
8667 Reviewed by Ryosuke Niwa.
8668
8669 Update the Ember TodoMVC app in Speedometer to latest
8670
8671 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.css: Added.
8672 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js: Added.
8673 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.css: Renamed from PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css.
8674 * Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.js: Added.
8675 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Removed.
8676 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Removed.
8677 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
8678 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
8679 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
8680 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
8681 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
8682 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
8683 * Speedometer/resources/todomvc/architecture-examples/emberjs/crossdomain.xml: Added.
8684 * Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
8685 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/app.js: Removed.
8686 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
8687 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
8688 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Removed.
8689 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
8690 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/router.js: Removed.
8691 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
8692 * Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Removed.
8693 * Speedometer/resources/todomvc/architecture-examples/emberjs/readme.md: Removed.
8694 * Speedometer/resources/todomvc/architecture-examples/emberjs/robots.txt: Added.
8695 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.bowerrc: Added.
8696 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.editorconfig: Added.
8697 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.ember-cli: Added.
8698 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.gitignore: Added.
8699 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.jshintrc: Added.
8700 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.travis.yml: Added.
8701 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/.watchmanconfig: Added.
8702 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/README.md: Added.
8703 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/app.js: Added.
8704 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/.gitkeep: Added.
8705 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-item.js: Added.
8706 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-list.js: Added.
8707 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/active.js: Added.
8708 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/application.js: Added.
8709 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/completed.js: Added.
8710 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/gt.js: Added.
8711 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/pluralize.js: Added.
8712 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/index.html: Added.
8713 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Added.
8714 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/models/.gitkeep: Added.
8715 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/resolver.js: Added.
8716 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/router.js: Added.
8717 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/.gitkeep: Added.
8718 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/application.js: Added.
8719 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js: Added.
8720 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js: Added.
8721 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/styles/app.css: Added.
8722 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/active.hbs: Added.
8723 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/application.hbs: Added.
8724 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/completed.hbs: Added.
8725 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/.gitkeep: Added.
8726 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-item.hbs: Added.
8727 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-list.hbs: Added.
8728 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/index.hbs: Added.
8729 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/bower.json: Added.
8730 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/config/environment.js: Added.
8731 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/ember-cli-build.js: Added.
8732 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/package.json: Added.
8733 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/crossdomain.xml: Added.
8734 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/robots.txt: Added.
8735 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/testem.js: Added.
8736 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Added.
8737 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/destroy-app.js: Added.
8738 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js: Added.
8739 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/resolver.js: Added.
8740 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js: Added.
8741 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/index.html: Added.
8742 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/integration/.gitkeep: Added.
8743 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/test-helper.js: Added.
8744 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/unit/.gitkeep: Added.
8745 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/.gitkeep: Added.
8746 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/base.css: Added.
8747 * Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/index.css: Added.
8748 * Speedometer/resources/todomvc/architecture-examples/emberjs/test.html: Removed.
8749 * Speedometer/resources/todomvc/architecture-examples/emberjs/testem.js: Added.
8750 * Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html: Added.
8751
87522017-05-11 Addy Osmani <addyosmani@gmail.com>
8753
commit-queue@webkit.orgfc468252017-05-12 05:50:32 +00008754 Speedometer: Add a React + Redux TodoMVC implementation
8755 https://bugs.webkit.org/show_bug.cgi?id=171329
8756
8757 Reviewed by Ryosuke Niwa.
8758
8759 Adds React and Redux TodoMVC implementation for Speedometer
8760
8761 * Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: Added.
8762 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/index.html: Added.
8763 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.d43d2909.css: Added.
8764 * Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.946269ff.js: Added.
8765 * Speedometer/resources/todomvc/architecture-examples/react-redux/package.json: Added.
8766 * Speedometer/resources/todomvc/architecture-examples/react-redux/public/index.html: Added.
8767 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.js: Added.
8768 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.spec.js: Added.
8769 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.js: Added.
8770 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.spec.js: Added.
8771 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.js: Added.
8772 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.spec.js: Added.
8773 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.js: Added.
8774 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.spec.js: Added.
8775 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.js: Added.
8776 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.spec.js: Added.
8777 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.js: Added.
8778 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.spec.js: Added.
8779 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/ActionTypes.js: Added.
8780 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/TodoFilters.js: Added.
8781 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/containers/App.js: Added.
8782 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/index.js: Added.
8783 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/index.js: Added.
8784 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js: Added.
8785 * Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.spec.js: Added.
8786 * Speedometer/resources/todomvc/architecture-examples/react-redux/yarn.lock: Added.
8787
87882017-05-11 Addy Osmani <addyosmani@gmail.com>
8789
commit-queue@webkit.org90287ba2017-05-12 03:41:09 +00008790 Speedometer: Add an ES2015 (Babel + Webpack) TodoMVC implementation
8791 https://bugs.webkit.org/show_bug.cgi?id=171452
8792
8793 Reviewed by Ryosuke Niwa.
8794
8795 Adds ES2015 Babel + Webpack TodoMVC implem
8796
8797 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.babelrc: Added.
8798 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.eslintignore: Added.
8799 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js: Added.
8800 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js.map: Added.
8801 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js: Added.
8802 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js.map: Added.
8803 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js: Added.
8804 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js.map: Added.
8805 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/index.html: Added.
8806 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css: Added.
8807 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css.map: Added.
8808 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css: Added.
8809 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css.map: Added.
8810 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Added.
8811 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.css: Added.
8812 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.js: Added.
8813 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/bootstrap.js: Added.
8814 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.js: Added.
8815 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.test.js: Added.
8816 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/helpers.js: Added.
8817 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Added.
8818 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/memory.js: Added.
8819 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/model.js: Added.
8820 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js: Added.
8821 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/template.js: Added.
8822 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/todo.js: Added.
8823 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/view.js: Added.
8824 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/webpack.config.babel.js: Added.
8825
88262017-05-11 Addy Osmani <addyosmani@gmail.com>
8827
rniwa@webkit.org6c267dc2017-05-12 03:00:00 +00008828 Speedometer: Add an Inferno TodoMVC implementation
8829 https://bugs.webkit.org/show_bug.cgi?id=171411
8830
8831 Reviewed by Ryosuke Niwa.
8832
8833 Adds a Inferno implem of TodoMVC to Speedometer
8834
8835 * Speedometer/resources/todomvc/architecture-examples/inferno/dist/bundle.js: Added.
8836 * Speedometer/resources/todomvc/architecture-examples/inferno/index.html: Added.
8837 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/index.css: Added.
8838 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/package.json: Added.
8839 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/readme.md: Added.
8840 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.css: Added.
8841 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.js: Added.
8842 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/package.json: Added.
8843 * Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/readme.md: Added.
8844 * Speedometer/resources/todomvc/architecture-examples/inferno/package.json: Added.
8845 * Speedometer/resources/todomvc/architecture-examples/inferno/src/base.js: Added.
8846 * Speedometer/resources/todomvc/architecture-examples/inferno/src/index.js: Added.
8847 * Speedometer/resources/todomvc/architecture-examples/inferno/src/item.js: Added.
8848 * Speedometer/resources/todomvc/architecture-examples/inferno/src/model.js: Added.
8849 * Speedometer/resources/todomvc/architecture-examples/inferno/src/share.js: Added.
8850 * Speedometer/resources/todomvc/architecture-examples/inferno/webpack.config.js: Added.
8851
88522017-05-11 Addy Osmani <addyosmani@gmail.com>
8853
rniwa@webkit.org37b87e92017-05-12 02:55:38 +00008854 Speedometer: Add an Angular 2 (4.x) TodoMVC implementation
8855 https://bugs.webkit.org/show_bug.cgi?id=171343
8856
8857 Reviewed by Ryosuke Niwa.
8858
8859 Add a TodoMVC Angular 2 (4.x) implem for the benchmark
8860
8861 * Speedometer/resources/todomvc/architecture-examples/angular/.angular-cli.json: Added.
8862 * Speedometer/resources/todomvc/architecture-examples/angular/.editorconfig: Added.
8863 * Speedometer/resources/todomvc/architecture-examples/angular/README.md: Added.
8864 * Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-app.css: Added.
8865 * Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-common.css: Added.
8866 * Speedometer/resources/todomvc/architecture-examples/angular/dist/favicon.ico: Added.
8867 * Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Added.
8868 * Speedometer/resources/todomvc/architecture-examples/angular/dist/inline.b342d102ba4a53bf2002.bundle.js: Added.
8869 * Speedometer/resources/todomvc/architecture-examples/angular/dist/main.779eb2f1ddbe23ac61c7.bundle.js: Added.
8870 * Speedometer/resources/todomvc/architecture-examples/angular/dist/polyfills.2d45a4c73c85e24fe474.bundle.js: Added.
8871 * Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Added.
8872 * Speedometer/resources/todomvc/architecture-examples/angular/dist/vendor.b4be818cb6d8028f9192.bundle.js: Added.
8873 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Added.
8874 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Added.
8875 * Speedometer/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Added.
8876 * Speedometer/resources/todomvc/architecture-examples/angular/karma.conf.js: Added.
8877 * Speedometer/resources/todomvc/architecture-examples/angular/package.json: Added.
8878 * Speedometer/resources/todomvc/architecture-examples/angular/protractor.conf.js: Added.
8879 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.css: Added.
8880 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.html: Added.
8881 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.spec.ts: Added.
8882 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Added.
8883 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.module.ts: Added.
8884 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts: Added.
8885 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.ts: Added.
8886 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.spec.ts: Added.
8887 * Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.ts: Added.
8888 * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/.gitkeep: Added.
8889 * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-app.css: Added.
8890 * Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-common.css: Added.
8891 * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.prod.ts: Added.
8892 * Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Added.
8893 * Speedometer/resources/todomvc/architecture-examples/angular/src/favicon.ico: Added.
8894 * Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Added.
8895 * Speedometer/resources/todomvc/architecture-examples/angular/src/main.ts: Added.
8896 * Speedometer/resources/todomvc/architecture-examples/angular/src/polyfills.ts: Added.
8897 * Speedometer/resources/todomvc/architecture-examples/angular/src/styles.css: Added.
8898 * Speedometer/resources/todomvc/architecture-examples/angular/src/test.ts: Added.
8899 * Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.app.json: Added.
8900 * Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.spec.json: Added.
8901 * Speedometer/resources/todomvc/architecture-examples/angular/src/typings.d.ts: Added.
8902 * Speedometer/resources/todomvc/architecture-examples/angular/tsconfig.json: Added.
8903 * Speedometer/resources/todomvc/architecture-examples/angular/tslint.json: Added.
8904
89052017-05-11 Addy Osmani <addyosmani@gmail.com>
8906
rniwa@webkit.org071dbf32017-05-12 02:54:30 +00008907 Speedometer: Add a Vue.js TodoMVC implementation
8908 https://bugs.webkit.org/show_bug.cgi?id=171325
8909
8910 Reviewed by Ryosuke Niwa.
8911
8912 Adds a Vue.js TodoMVC implementation to Speedometer
8913
8914 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.babelrc: Added.
8915 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.editorconfig: Added.
8916 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintignore: Added.
8917 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintrc.js: Added.
8918 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: Added.
8919 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/dev.env.js: Added.
8920 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/index.js: Added.
8921 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/prod.env.js: Added.
8922 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/index.html: Added.
8923 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.677b45842d9f8b96e5b23c18969233b7.css: Added.
8924 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.b0e835874bc8949670d1.js: Added.
8925 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.84b2b4fceb74ab1f91f3.js: Added.
8926 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.a52517c5aa98e7fbea2e.js: Added.
8927 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/index.html: Added.
8928 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package.json: Added.
8929 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/App.vue: Added.
8930 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue: Added.
8931 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/todo.css: Added.
8932 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/main.js: Added.
8933 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/yarn.lock: Added.
8934
89352017-05-11 Addy Osmani <addyosmani@gmail.com>
8936
rniwa@webkit.orgb211ed22017-05-12 02:53:56 +00008937 Speedometer: Update the vanilla JavaScript TodoMVC implem to a more recent version
8938 https://bugs.webkit.org/show_bug.cgi?id=171306
8939
8940 Reviewed by Ryosuke Niwa.
8941
8942 Update vanilla JS TodoMVC implementation to the latest.
8943
8944 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
8945 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
8946 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
8947 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
8948 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html:
8949 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js:
8950 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js:
8951 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js:
8952 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js:
8953 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
8954 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/template.js: Added.
8955 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js:
8956 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-app-css/index.css: Added.
8957 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.css: Added.
8958 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.js: Added.
8959 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/package.json: Added.
8960
89612017-05-11 Addy Osmani <addyosmani@gmail.com>
8962
rniwa@webkit.org51e437f2017-05-12 02:52:45 +00008963 Speedometer: Add an ES2015 TodoMVC implementation
8964 https://bugs.webkit.org/show_bug.cgi?id=171448
8965
8966 Reviewed by Ryosuke Niwa.
8967
8968 Adds ES2015 TodoMVC implementation for Speedometer
8969
8970 * Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Added.
8971 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/index.css: Added.
8972 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/package.json: Added.
8973 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/readme.md: Added.
8974 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.css: Added.
8975 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.js: Added.
8976 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/package.json: Added.
8977 * Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/readme.md: Added.
8978 * Speedometer/resources/todomvc/vanilla-examples/es2015/package.json: Added.
8979 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/.jshintrc: Added.
8980 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/app.js: Added.
8981 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/controller.js: Added.
8982 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/helpers.js: Added.
8983 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/model.js: Added.
8984 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/store.js: Added.
8985 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/template.js: Added.
8986 * Speedometer/resources/todomvc/vanilla-examples/es2015/src/view.js: Added.
8987
89882017-05-11 Addy Osmani <addyosmani@gmail.com>
8989
rniwa@webkit.orgd0614bd2017-05-12 02:50:18 +00008990 Speedometer: Add an Elm TodoMVC implementation
8991 https://bugs.webkit.org/show_bug.cgi?id=171464
8992
8993 Reviewed by Ryosuke Niwa.
8994
8995 Speedometer: Add Elm TodoMVC implementation
8996
8997 * Speedometer/resources/todomvc/functional-prog-examples/elm/Todo.elm: Added.
8998 * Speedometer/resources/todomvc/functional-prog-examples/elm/Todo/Task.elm: Added.
8999 * Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js: Added.
9000 * Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Added.
9001 * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-app-css/index.css: Added.
9002 * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.css: Added.
9003 * Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.js: Added.
9004 * Speedometer/resources/todomvc/functional-prog-examples/elm/package.json: Added.
9005 * Speedometer/resources/todomvc/functional-prog-examples/elm/readme.md: Added.
9006
90072017-05-11 Addy Osmani <addyosmani@gmail.com>
9008
rniwa@webkit.orga9461062017-05-12 02:46:47 +00009009 Speedometer: Update the Backbone.js implementation to a more recent library version
9010 https://bugs.webkit.org/show_bug.cgi?id=171305
9011
9012 Reviewed by Ryosuke Niwa.
9013
9014 Updates the Backbone.js TodoMVC implementation to latest
9015
9016 * Speedometer/resources/todomvc/architecture-examples/backbone/bower.json: Removed.
9017 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
9018 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
9019 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
9020 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
9021 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
9022 * Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
9023 * Speedometer/resources/todomvc/architecture-examples/backbone/index.html:
9024 * Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js:
9025 * Speedometer/resources/todomvc/architecture-examples/backbone/js/backbone.sync.js: Added.
9026 * Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js:
9027 * Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js:
9028 * Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js:
9029 * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js:
9030 * Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js:
9031 * 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.
9032 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Added.
9033 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Added.
9034 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.css: Added.
9035 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.js: Added.
9036 * Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore.js: Added.
9037 * Speedometer/resources/todomvc/architecture-examples/backbone/package.json: Added.
9038
90392017-05-11 Addy Osmani <addyosmani@gmail.com>
9040
rniwa@webkit.org9e8897e2017-05-12 02:45:36 +00009041 Speedometer: Add a Preact.js TodoMVC implementation
9042 https://bugs.webkit.org/show_bug.cgi?id=171323
9043
9044 Reviewed by Ryosuke Niwa.
9045
9046 Adds Preact.js TodoMVC implementation to Speedometer
9047
9048 * Speedometer/resources/todomvc/architecture-examples/preact/.babelrc: Added.
9049 * Speedometer/resources/todomvc/architecture-examples/preact/README.md: Added.
9050 * Speedometer/resources/todomvc/architecture-examples/preact/dist/app.js: Added.
9051 * Speedometer/resources/todomvc/architecture-examples/preact/dist/index.html: Added.
9052 * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.css: Added.
9053 * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.js: Added.
9054 * Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc.css: Added.
9055 * Speedometer/resources/todomvc/architecture-examples/preact/package.json: Added.
9056 * Speedometer/resources/todomvc/architecture-examples/preact/rollup.config.js: Added.
9057 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/footer.js: Added.
9058 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/index.js: Added.
9059 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/item.js: Added.
9060 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/model.js: Added.
9061 * Speedometer/resources/todomvc/architecture-examples/preact/src/app/util.js: Added.
9062 * Speedometer/resources/todomvc/architecture-examples/preact/src/index.html: Added.
9063 * Speedometer/resources/todomvc/architecture-examples/preact/src/index.js: Added.
9064 * Speedometer/resources/todomvc/architecture-examples/preact/webpack.config.babel.js: Added.
9065
90662017-05-11 Addy Osmani <addyosmani@gmail.com>
9067
commit-queue@webkit.org0f39ca82017-05-12 00:55:24 +00009068 Speedometer: Update the jQuery implementation to a more recent library version
9069 https://bugs.webkit.org/show_bug.cgi?id=171308
9070
9071 Reviewed by Ryosuke Niwa.
9072
9073 Updates the jQuery implementation of TodoMVC to a more recent version
9074
9075 * Speedometer/resources/todomvc/architecture-examples/jquery/bower.json: Removed.
9076 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
9077 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
9078 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
9079 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
9080 * Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
9081 * Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
9082 * Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js:
9083 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/handlebars/dist/handlebars.js: Added.
9084 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/jquery/dist/jquery.js: Added.
9085 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/index.css: Added.
9086 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/package.json: Added.
9087 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/readme.md: Added.
9088 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.css: Added.
9089 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.js: Added.
9090 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/package.json: Added.
9091 * Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/readme.md: Added.
9092 * Speedometer/resources/todomvc/architecture-examples/jquery/package.json: Added.
9093 * Speedometer/resources/todomvc/architecture-examples/jquery/readme.md:
9094
90952017-05-11 Addy Osmani <addyosmani@gmail.com>
9096
commit-queue@webkit.org55e75a42017-05-12 00:15:12 +00009097 Speedometer: Update the Flight.js implementation to a more recent library version
9098 https://bugs.webkit.org/show_bug.cgi?id=171471
9099
9100 Reviewed by Ryosuke Niwa.
9101
9102 Speedometer: Update FlightJS TodoMVC implementation
9103
9104 * Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Removed.
9105 * Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Removed.
9106 * Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Removed.
9107 * Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Removed.
9108 * Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Removed.
9109 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Removed.
9110 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Removed.
9111 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Removed.
9112 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Removed.
9113 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Removed.
9114 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Removed.
9115 * Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Removed.
9116 * 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.
9117 * 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.
9118 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Added.
9119 * 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.
9120 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/store.js: Added.
9121 * 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.
9122 * 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.
9123 * 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.
9124 * 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.
9125 * 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.
9126 * 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.
9127 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js.
9128 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/stats.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html.
9129 * Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/todo.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html.
9130 * Speedometer/resources/todomvc/dependency-examples/flight/flight/index.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/index.html.
9131 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/README.md: Added.
9132 * 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.
9133 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.min.js: Added.
9134 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/package.json: Added.
9135 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE: Added.
9136 * 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.
9137 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.min.js: Added.
9138 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.js: Added.
9139 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.min.js: Added.
9140 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE: Added.
9141 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/index.js: Added.
9142 * 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.
9143 * 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.
9144 * 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.
9145 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/compose.js: Added.
9146 * 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.
9147 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/logger.js: Added.
9148 * 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.
9149 * 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.
9150 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/README.md: Added.
9151 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.js: Added.
9152 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.min.js: Added.
9153 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/package.json: Added.
9154 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/memorystorage/memorystorage.js: Added.
9155 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE: Added.
9156 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/README.md: Added.
9157 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/bower.json: Added.
9158 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/package.json: Added.
9159 * 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.
9160 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/README.md: Added.
9161 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/package.json: Added.
9162 * 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.
9163 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/index.css: Added.
9164 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/package.json: Added.
9165 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/readme.md: Added.
9166 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.css: Added.
9167 * 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.
9168 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/package.json: Added.
9169 * Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/readme.md: Added.
9170 * Speedometer/resources/todomvc/dependency-examples/flight/flight/package.json: Added.
9171 * Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Removed.
9172 * Speedometer/resources/todomvc/dependency-examples/flight/package.json: Removed.
9173 * Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Removed.
9174 * Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Removed.
9175 * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Removed.
9176 * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Removed.
9177 * Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Removed.
9178 * Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Removed.
9179 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Removed.
9180 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Removed.
9181 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Removed.
9182 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Removed.
9183 * Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Removed.
9184 * Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Removed.
9185
91862017-05-11 Addy Osmani <addyosmani@gmail.com>
9187
commit-queue@webkit.org33542ef2017-05-12 00:12:09 +00009188 Speedometer: Update the AngularJS implementation to a more recent library version
9189 https://bugs.webkit.org/show_bug.cgi?id=171307
9190
9191 Reviewed by Ryosuke Niwa.
9192
9193 Updates the AngularJS implementation of TodoMVC to 1.4.x
9194
9195 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Removed.
9196 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
9197 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
9198 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
9199 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
9200 * Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
9201 * Speedometer/resources/todomvc/architecture-examples/angularjs/index.html:
9202 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js:
9203 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js:
9204 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
9205 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js:
9206 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js:
9207 * Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js:
9208 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js: Added.
9209 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js: Added.
9210 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js: Added.
9211 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/index.css: Added.
9212 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Added.
9213 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/readme.md: Added.
9214 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.css: Added.
9215 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.js: Added.
9216 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Added.
9217 * Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/readme.md: Added.
9218 * Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Added.
9219 * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md:
9220 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
9221 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Removed.
9222 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
9223 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
9224 * Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
9225 * Speedometer/resources/todomvc/architecture-examples/angularjs/todomvc-index.html: Added.
9226
jond@apple.com13b66822017-05-09 21:01:57 +000092272017-05-09 Jon Davis <jond@apple.com>
9228
9229 [ARES6] Improved the running test indicator
9230 https://bugs.webkit.org/show_bug.cgi?id=171400
9231
9232 Running tests show a triangle before the test title and the titles are white.
9233
9234 Reviewed by Joseph Pecoraro.
9235
9236 * ARES-6/index.html:
9237 * ARES-6/styles.css:
9238 (.test .running):
9239 (.test .running:before):
9240 (.test .indicator): Deleted.
9241 (.test .indicator.running): Deleted.
9242 (@keyframes test-running): Deleted.
9243
commit-queue@webkit.orgb77eab32017-05-04 23:03:52 +000092442017-05-04 Andy VanWagoner <thetalecrafter@gmail.com>
9245
9246 [INTL] Add PerformanceTests for Intl objects
9247 https://bugs.webkit.org/show_bug.cgi?id=171695
9248
9249 Reviewed by Benjamin Poulain.
9250
9251 * Intl/collator-compare-all-options.html: Added.
9252 * Intl/collator-compare-default.html: Added.
9253 * Intl/collator-create-all-options.html: Added.
9254 * Intl/collator-create-default.html: Added.
9255 * Intl/datetimeformat-create-all-options.html: Added.
9256 * Intl/datetimeformat-create-default.html: Added.
9257 * Intl/datetimeformat-format-all-options.html: Added.
9258 * Intl/datetimeformat-format-default.html: Added.
9259 * Intl/numberformat-create-all-options.html: Added.
9260 * Intl/numberformat-create-default.html: Added.
9261 * Intl/numberformat-format-all-options.html: Added.
9262 * Intl/numberformat-format-default.html: Added.
9263
msaboff@apple.com32da4902017-04-28 00:57:26 +000092642017-04-27 Michael Saboff <msaboff@apple.com>
9265
9266 Add back tests inadvertently deleted in r205032.
9267
9268 Rubber stamped by Geoffrey Garen.
9269
9270 * MallocBench/run-malloc-benchmarks:
9271
mmaxfield@apple.comdd145df2017-04-25 16:35:39 +000092722017-04-25 Myles C. Maxfield <mmaxfield@apple.com>
9273
9274 Add performance test for FontCache::systemFallbackForCharacters()
9275 https://bugs.webkit.org/show_bug.cgi?id=170842
9276
9277 Reviewed by Tim Horton.
9278
9279 * Layout/word-joiner.html: Added.
9280
sbarati@apple.com2318ef52017-04-25 00:04:00 +000092812017-04-24 Saam Barati <sbarati@apple.com>
9282
9283 Add ML to ARES6
9284 https://bugs.webkit.org/show_bug.cgi?id=171206
9285
9286 Rubber stamped by Filip Pizlo.
9287
9288 This patch adds a new test to ARES6 called ML. ML is an implementation of
9289 a feedforward neural network: https://github.com/mljs/feedforward-neural-networks.
9290 It makes heavy use of classes, and does non-trivial matrix math using the
9291 ml-matrix library: https://github.com/mljs/matrix
9292
9293 * ARES-6/about.html:
9294 * ARES-6/cli.js:
9295 * ARES-6/glue.js:
9296 * ARES-6/index.html:
9297 * ARES-6/ml: Added.
9298 * ARES-6/ml/benchmark.js: Added.
9299 * ARES-6/ml/index.js: Added.
9300 * ARES-6/ml_benchmark.js: Added.
9301
zalan@apple.come91119f2017-04-21 21:41:41 +000093022017-04-21 Zalan Bujtas <zalan@apple.com>
9303
9304 Simple line layout: Add performance test to measure mid-word line breaking with long text.
9305 https://bugs.webkit.org/show_bug.cgi?id=171136
9306
9307 Reviewed by Ryosuke Niwa.
9308
9309 * Layout/simple-line-layout-word-break-long-text.html: Added.
9310
ryanhaddad@apple.com8900ec32017-04-17 16:37:26 +000093112017-04-17 Ryan Haddad <ryanhaddad@apple.com>
9312
9313 Unreviewed, rolling out r215366.
9314
9315 This test is failing on performance bots.
9316
9317 Reverted changeset:
9318
9319 "Add performance test for asking the platform for a font for
9320 U+2060 WORD JOINER"
9321 https://bugs.webkit.org/show_bug.cgi?id=170842
9322 http://trac.webkit.org/changeset/215366
9323
mmaxfield@apple.com502eb052017-04-14 17:57:26 +000093242017-04-14 Myles C. Maxfield <mmaxfield@apple.com>
9325
9326 Add performance test for asking the platform for a font for U+2060 WORD JOINER
9327 https://bugs.webkit.org/show_bug.cgi?id=170842
9328
9329 Reviewed by Tim Horton.
9330
9331 * Layout/word-joiner.html: Added.
9332
sbarati@apple.coma8fa45b2017-04-03 19:04:16 +000093332017-04-03 Saam Barati <sbarati@apple.com>
9334
9335 Add a new test to ARES6
9336 https://bugs.webkit.org/show_bug.cgi?id=170077
9337
9338 Rubber stamped by Filip Pizlo.
9339
9340 This patch adds a new test to ARES6. The test is called Babylon. Babylon is
9341 the JavaScript parser that is part of the Babel transpiler. The test runs
9342 the parser on 4 different JS scripts.
9343
9344 * ARES-6/Babylon: Added.
9345 * ARES-6/Babylon/AUTHORS: Added.
9346 * ARES-6/Babylon/air-blob.js: Added.
9347 (Reg):
9348 (Reg.fromReg):
9349 (Reg.prototype.get index):
9350 (Reg.prototype.get type):
9351 (Reg.prototype.get name):
9352 (Reg.prototype.get isCalleeSave):
9353 (Reg.prototype.get isReg):
9354 (Reg.prototype.hash):
9355 (Reg.prototype.toString):
9356 (Reg.extract):
9357 (Reg.forEachFast):
9358 (Reg.forEach):
9359 (newGPR):
9360 (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
9361 * ARES-6/Babylon/babylon-blob.js: Added.
9362 (export.default.Parser):
9363 (export.default.Parser.prototype.isReservedWord):
9364 (export.default.Parser.prototype.hasPlugin):
9365 (export.default.Parser.prototype.extend):
9366 (export.default.Parser.prototype.loadPlugins):
9367 (export.default.Parser.prototype.parse):
9368 * ARES-6/Babylon/basic-blob.js: Added.
9369 (Basic.NumberApply):
9370 (Basic.Variable):
9371 (Basic.Const):
9372 (Basic.NumberPow):
9373 (Basic.NumberMul):
9374 (Basic.NumberDiv):
9375 (Basic.NumberNeg):
9376 (Basic.NumberAdd):
9377 (Basic.NumberSub):
9378 (Basic.StringVar):
9379 (Basic.Equals):
9380 (Basic.NotEquals):
9381 (Basic.LessThan):
9382 (Basic.GreaterThan):
9383 (Basic.LessEqual):
9384 (Basic.GreaterEqual):
9385 (Basic.GoTo):
9386 (Basic.GoSub):
9387 (Basic.Def):
9388 (Basic.Let):
9389 (Basic.If):
9390 (Basic.Return):
9391 (Basic.Stop):
9392 (Basic.On):
9393 (sideState.shouldStop):
9394 (Basic.For):
9395 (Basic.Next):
9396 (Basic.Print):
9397 (Basic.Input):
9398 (Basic.Read):
9399 (Basic.Restore):
9400 (Basic.Dim):
9401 (Basic.Randomize):
9402 (Basic.End):
9403 (Basic.Program):
9404 * ARES-6/Babylon/benchmark.js: Added.
9405 (this.performance.performance.now.currentTime):
9406 (else.this.preciseTime.currentTime):
9407 (else.currentTime):
9408 (BabylonBenchmark.appendSource):
9409 (BabylonBenchmark):
9410 (BabylonBenchmark.prototype.runIteration.parse):
9411 (BabylonBenchmark.prototype.runIteration.parseExpression):
9412 (BabylonBenchmark.prototype.runIteration):
9413 (runBenchmark):
9414 * ARES-6/Babylon/index.js: Added.
9415 (isIdentifierStart):
9416 (isIdentifierChar):
9417 (isNewLine):
9418 (Position):
9419 (SourceLocation):
9420 (getLineInfo):
9421 (TokenType):
9422 (KeywordTokenType):
9423 (BinopTokenType):
9424 (TokContext):
9425 (tt.parenR.updateContext.tt.braceR.updateContext):
9426 (tt.name.updateContext):
9427 (tt.braceL.updateContext):
9428 (tt.dollarBraceL.updateContext):
9429 (tt.parenL.updateContext):
9430 (tt.incDec.updateContext):
9431 (tt._function.updateContext):
9432 (tt.backQuote.updateContext):
9433 (State.prototype.init):
9434 (State.prototype.curPosition):
9435 (State.prototype.clone):
9436 (State):
9437 (Token):
9438 (codePointToString):
9439 (Tokenizer):
9440 (Tokenizer.prototype.next):
9441 (Tokenizer.prototype.eat):
9442 (Tokenizer.prototype.match):
9443 (Tokenizer.prototype.isKeyword):
9444 (Tokenizer.prototype.lookahead):
9445 (Tokenizer.prototype.setStrict):
9446 (Tokenizer.prototype.curContext):
9447 (Tokenizer.prototype.nextToken):
9448 (Tokenizer.prototype.readToken):
9449 (Tokenizer.prototype.fullCharCodeAtPos):
9450 (Tokenizer.prototype.pushComment):
9451 (Tokenizer.prototype.skipBlockComment):
9452 (Tokenizer.prototype.skipLineComment):
9453 (Tokenizer.prototype.skipSpace):
9454 (Tokenizer.prototype.finishToken):
9455 (Tokenizer.prototype.readToken_dot):
9456 (Tokenizer.prototype.readToken_slash):
9457 (Tokenizer.prototype.readToken_mult_modulo):
9458 (Tokenizer.prototype.readToken_pipe_amp):
9459 (Tokenizer.prototype.readToken_caret):
9460 (Tokenizer.prototype.readToken_plus_min):
9461 (Tokenizer.prototype.readToken_lt_gt):
9462 (Tokenizer.prototype.readToken_eq_excl):
9463 (Tokenizer.prototype.getTokenFromCode):
9464 (Tokenizer.prototype.finishOp):
9465 (Tokenizer.prototype.readRegexp):
9466 (Tokenizer.prototype.readInt):
9467 (Tokenizer.prototype.readRadixNumber):
9468 (Tokenizer.prototype.readNumber):
9469 (Tokenizer.prototype.readCodePoint):
9470 (Tokenizer.prototype.readString):
9471 (Tokenizer.prototype.readTmplToken):
9472 (Tokenizer.prototype.readEscapedChar):
9473 (Tokenizer.prototype.readHexChar):
9474 (Tokenizer.prototype.readWord1):
9475 (Tokenizer.prototype.readWord):
9476 (Tokenizer.prototype.braceIsBlock):
9477 (Tokenizer.prototype.updateContext):
9478 (getOptions):
9479 (prototype.isReservedWord):
9480 (prototype.hasPlugin):
9481 (prototype.extend):
9482 (prototype.loadPlugins):
9483 (prototype.parse):
9484 (last):
9485 (pp.addComment):
9486 (pp.processComment):
9487 (pp.checkPropClash):
9488 (pp.getExpression):
9489 (pp.parseExpression):
9490 (pp.parseMaybeAssign):
9491 (pos.set i):
9492 * ARES-6/Babylon/inspector-blob.js: Added.
9493 (WebInspector.ScriptSyntaxTree):
9494 (WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
9495 (WebInspector.ScriptSyntaxTree.prototype.forEachNode):
9496 (WebInspector.ScriptSyntaxTree.prototype.filter):
9497 (WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
9498 (WebInspector.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange):
9499 (WebInspector.ScriptSyntaxTree.prototype.filterByRange):
9500 (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
9501 (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
9502 (WebInspector.ScriptSyntaxTree.functionReturnDivot):
9503 (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
9504 (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
9505 (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
9506 (WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
9507 (WebInspector.ScriptSyntaxTree.prototype._recurse):
9508 (WebInspector.ScriptSyntaxTree.prototype._recurseArray):
9509 (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
9510 * ARES-6/about.html:
9511 * ARES-6/babylon_benchmark.js: Added.
9512 * ARES-6/cli.js:
9513 * ARES-6/glue.js:
9514 * ARES-6/index.html:
9515 * ARES-6/results.js:
9516 (Results.prototype.reportResult):
9517 (Results.prototype.reportResult.averageAbovePercentile): Deleted.
9518 * ARES-6/styles.css:
9519 (.test):
9520 (@media only screen and (max-width: 784px)):
9521
zalan@apple.comdd981b92017-03-29 19:31:35 +000095222017-03-29 Zalan Bujtas <zalan@apple.com>
9523
9524 [Arabic text] Add whitespace preserve/word wrap performance test.
9525 https://bugs.webkit.org/show_bug.cgi?id=170243
9526
9527 Reviewed by Simon Fraser.
9528
9529 * Layout/ArabicLineLayout-pre-and-wrap.html: Added.
9530
utatane.tea@gmail.comd563e492017-03-09 05:54:21 +000095312017-03-08 Yusuke Suzuki <utatane.tea@gmail.com>
9532
9533 [JSC] Add helpers to run Six Speed to run-jsc-benchmarks
9534 https://bugs.webkit.org/show_bug.cgi?id=169351
9535
9536 Reviewed by Saam Barati.
9537
9538 * SixSpeed/wrappers/wrapper.js: Added.
9539 (assertEqual):
9540 (test):
9541 (jscRun):
9542
jond@apple.com76a46512017-03-08 16:37:32 +000095432017-03-08 Jon Davis <jond@apple.com>
9544
9545 Fixed ARES-6 animations for other browsers
9546
9547 Rubber stamped by Saam Barati.
9548
9549 * ARES-6/styles.css:
9550 (.swoop):
9551 (.logo):
9552
fpizlo@apple.comaa7370c2017-03-07 19:21:02 +000095532017-03-07 Filip Pizlo <fpizlo@apple.com>
9554
9555 Revise the ARES-6 explainer text
9556 https://bugs.webkit.org/show_bug.cgi?id=169287
9557
9558 Reviewed by Saam Barati.
9559
9560 Just did some copy-editing.
9561
9562 * ARES-6/about.html:
9563
jond@apple.come6589622017-03-06 21:14:31 +000095642017-03-06 Jon Davis <jond@apple.com>
9565
9566 Refined the ARES-6 experience
9567 https://bugs.webkit.org/show_bug.cgi?id=169205
9568
9569 Reviewed by Saam Barati.
9570
9571 * ARES-6/about.html: Copied from PerformanceTests/ARES-6/index.html.
9572 * ARES-6/driver.js:
9573 (Driver.prototype.start):
9574 (Driver.prototype._updateIterations):
9575 (Driver):
9576 * ARES-6/index.html:
9577 * ARES-6/stats.js:
9578 (Stats.prototype.toString.span.span):
9579 * ARES-6/styles.css:
9580 (body):
9581 (.swoop):
9582 (p):
9583 (.logo):
9584 (.start):
9585 (.test):
9586 (.test:nth-child(odd)):
9587 (.overall):
9588 (.about h2):
9589 (.button):
9590 (.button:hover):
9591 (.button.return:before):
9592 (@keyframes fade-in):
9593 (@keyframes scale-in):
9594 (@keyframes flicker-in):
9595 (@keyframes wipe-in):
9596 (.flip): Deleted.
9597 (.testing, .about): Deleted.
9598 (.testing): Deleted.
9599 (.about): Deleted.
9600 (#about:target): Deleted.
9601
commit-queue@webkit.org3c6465f2017-03-06 20:27:21 +000096022017-03-06 Jeremy Jones <jeremyj@apple.com>
9603
9604 StandardCanPlayThrough.html does not work on iOS.
9605 https://bugs.webkit.org/show_bug.cgi?id=169207
9606
9607 Reviewed by Jer Noble.
9608
9609 On iOS only, add muted=true and autoplay=allowed. The loading policy on iOS requires these attributes to load enough
9610 data to trigger canPlayThrough.
9611
9612 * Media/StandardCanPlayThrough.html:
9613
zalan@apple.com059a2212017-02-13 21:55:55 +000096142017-02-13 Zalan Bujtas <zalan@apple.com>
9615
9616 Simple line layout: Add performance test with text-rendering: optimizeSpeed
9617 https://bugs.webkit.org/show_bug.cgi?id=168248
9618
9619 Reviewed by Simon Fraser.
9620
9621 * Layout/simple-line-layout-with-varying-content-and-optimized-speed.html: Added.
9622
zalan@apple.com53862672017-02-10 22:36:12 +000096232017-02-10 Zalan Bujtas <zalan@apple.com>
9624
9625 Mail hangs when removing multiple rows from large table.
9626 https://bugs.webkit.org/show_bug.cgi?id=168103
9627 <rdar://problem/30090186>
9628
9629 Reviewed by Ryosuke Niwa.
9630
9631 * DOM/large-table-edit.html: Added.
9632
fpizlo@apple.com332a7072017-02-10 19:49:55 +000096332017-02-05 Filip Pizlo <fpizlo@apple.com>
9634
9635 Beef up the ARES-6 explainer text
9636 https://bugs.webkit.org/show_bug.cgi?id=167867
9637
9638 Reviewed by Saam Barati.
9639
9640 Added appropriate links.
9641
9642 Added text that explains the subscores.
9643
9644 * ARES-6/index.html:
9645
jer.noble@apple.com3e02e4d2017-02-06 21:49:24 +000096462017-02-06 Jer Noble <jer.noble@apple.com>
9647
9648 Playback stalls when a SourceBuffer append causes frame eviction
9649 https://bugs.webkit.org/show_bug.cgi?id=167834
9650
9651 Reviewed by Eric Carlson.
9652
9653 Add an in-page performance test measuring the amount of time required
9654 to append a large amount of media data to a SourceBuffer, and then to
9655 completely remove that data 30s at a time.
9656
9657 Add a microbenchmark for MediaTime which measures the amount of time
9658 required to create a 1M entry std::map and traverse the map 1M times.
9659
9660 * Media/MSERemoveCodedFrames.html: Added.
9661 * Media/media-source-loader.js:
9662 (MediaSourceLoader.prototype.get duration):
9663 * MediaTime/Configurations/Base.xcconfig: Added.
9664 * MediaTime/Configurations/DebugRelease.xcconfig: Added.
9665 * MediaTime/Makefile: Added.
9666 * MediaTime/MediaTime.xcodeproj/project.pbxproj: Added.
9667 * MediaTime/main.cpp: Added.
9668 (performTest):
9669 (test):
9670 (main):
9671 * Skipped:
9672
sbarati@apple.comd63d7942017-02-06 20:06:52 +000096732017-02-06 Saam Barati <sbarati@apple.com>
9674
9675 Make ARES-6 work from the CLI again
9676 https://bugs.webkit.org/show_bug.cgi?id=167895
9677
9678 Reviewed by Michael Saboff.
9679
9680 * ARES-6/driver.js:
9681 (Driver.prototype.readyTrigger):
9682 (Driver.prototype.disableTrigger):
9683 * ARES-6/stats.js:
9684 (Stats.prototype.toString.span.span):
9685 (Stats.prototype.toString.return.span):
9686 (Stats.prototype.toString):
9687
ryanhaddad@apple.com7b895052017-02-06 17:36:15 +000096882017-02-06 Ryan Haddad <ryanhaddad@apple.com>
9689
9690 Skip ARES-6 on performance bots
9691 https://bugs.webkit.org/show_bug.cgi?id=167863
9692
9693 Unreviewed test gardening.
9694
9695 ES6SampleBench was renamed to ARES-6, so this should be updated in PerformanceTests/Skipped as well.
9696
9697 * Skipped:
9698
fpizlo@apple.com1274ba72017-02-06 04:56:09 +000096992017-02-05 Filip Pizlo <fpizlo@apple.com>
9700
9701 Change ES6SampleBench into ARES-6
9702 https://bugs.webkit.org/show_bug.cgi?id=167863
9703
9704 Rubber stamped by Saam Barati.
9705
9706 This imports changes that Jonathan Davis (jond@apple.com) made to ES6SampleBench to make it look
9707 super awesome. Its now called ARES-6.
9708
9709 * ARES-6: Copied from PerformanceTests/ES6SampleBench.
9710 * ARES-6/ARES-6.svg: Added.
9711 * ARES-6/driver.js:
9712 (Driver):
9713 (Driver.prototype.readyTrigger):
9714 (Driver.prototype.disableTrigger):
9715 (Driver.prototype.start):
9716 (Driver.prototype._updateIterations):
9717 * ARES-6/glue.js:
9718 * ARES-6/index.html:
9719 * ARES-6/results.js:
9720 (Results.prototype.reportRunning):
9721 (Results.prototype.reportDone):
9722 * ARES-6/stats.js:
9723 (Stats.prototype.toString.return.span):
9724 (Stats.prototype.toString.span.span):
9725 (Stats.prototype.toString): Deleted.
9726 * ARES-6/style.css: Removed.
9727 * ARES-6/styles.css: Added.
9728 (html):
9729 (body):
9730 (header,):
9731 (p a):
9732 (p a:hover):
9733 (.flip):
9734 (header):
9735 (h2,):
9736 (p):
9737 (.about h2):
9738 (.logo):
9739 (.start):
9740 (.start.ready):
9741 (.start.ready:hover):
9742 (.start:after):
9743 (.start.ready .testrun):
9744 (.tests):
9745 (.test):
9746 (.overall h2,):
9747 (.test .indicator):
9748 (.test .indicator.running):
9749 (@keyframes test-running):
9750 (100%):
9751 (.score):
9752 (.score label):
9753 (.score .value):
9754 (.score .units):
9755 (.score .margin):
9756 (.overall):
9757 (.overall .score):
9758 (.overall .margin):
9759 (.testing, .about):
9760 (.testing):
9761 (.about):
9762 (#about:target):
9763 (@media only screen and (max-width: 784px)):
9764 * ARES-6/swoop.svg: Added.
9765 * ES6SampleBench: Removed.
9766 * ES6SampleBench/Air: Removed.
9767 * ES6SampleBench/Air/README.md: Removed.
9768 * ES6SampleBench/Air/airjs-tests.yaml: Removed.
9769 * ES6SampleBench/Air/all.js: Removed.
9770 * ES6SampleBench/Air/allocate_stack.js: Removed.
9771 * ES6SampleBench/Air/arg.js: Removed.
9772 * ES6SampleBench/Air/basic_block.js: Removed.
9773 * ES6SampleBench/Air/benchmark.js: Removed.
9774 * ES6SampleBench/Air/code.js: Removed.
9775 * ES6SampleBench/Air/custom.js: Removed.
9776 * ES6SampleBench/Air/frequented_block.js: Removed.
9777 * ES6SampleBench/Air/insertion_set.js: Removed.
9778 * ES6SampleBench/Air/inst.js: Removed.
9779 * ES6SampleBench/Air/liveness.js: Removed.
9780 * ES6SampleBench/Air/make_dist.sh: Removed.
9781 * ES6SampleBench/Air/opcode.js: Removed.
9782 * ES6SampleBench/Air/payload-airjs-ACLj8C.js: Removed.
9783 * ES6SampleBench/Air/payload-gbemu-executeIteration.js: Removed.
9784 * ES6SampleBench/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
9785 * ES6SampleBench/Air/payload-typescript-scanIdentifier.js: Removed.
9786 * ES6SampleBench/Air/reg.js: Removed.
9787 * ES6SampleBench/Air/stack_slot.js: Removed.
9788 * ES6SampleBench/Air/stress-test.js: Removed.
9789 * ES6SampleBench/Air/strip-hash.rb: Removed.
9790 * ES6SampleBench/Air/symbols.js: Removed.
9791 * ES6SampleBench/Air/test.html: Removed.
9792 * ES6SampleBench/Air/test.js: Removed.
9793 * ES6SampleBench/Air/tmp.js: Removed.
9794 * ES6SampleBench/Air/tmp_base.js: Removed.
9795 * ES6SampleBench/Air/util.js: Removed.
9796 * ES6SampleBench/Basic: Removed.
9797 * ES6SampleBench/Basic/ast.js: Removed.
9798 * ES6SampleBench/Basic/basic-tests.yaml: Removed.
9799 * ES6SampleBench/Basic/basic.js: Removed.
9800 * ES6SampleBench/Basic/benchmark.js: Removed.
9801 * ES6SampleBench/Basic/caseless_map.js: Removed.
9802 * ES6SampleBench/Basic/lexer.js: Removed.
9803 * ES6SampleBench/Basic/number.js: Removed.
9804 * ES6SampleBench/Basic/parser.js: Removed.
9805 * ES6SampleBench/Basic/random.js: Removed.
9806 * ES6SampleBench/Basic/state.js: Removed.
9807 * ES6SampleBench/Basic/stress-test.js: Removed.
9808 * ES6SampleBench/Basic/test.html: Removed.
9809 * ES6SampleBench/Basic/test.js: Removed.
9810 * ES6SampleBench/Basic/util.js: Removed.
9811 * ES6SampleBench/air_benchmark.js: Removed.
9812 * ES6SampleBench/basic_benchmark.js: Removed.
9813 * ES6SampleBench/cli.js: Removed.
9814 * ES6SampleBench/driver.js: Removed.
9815 * ES6SampleBench/glue.js: Removed.
9816 * ES6SampleBench/index.html: Removed.
9817 * ES6SampleBench/results.js: Removed.
9818 * ES6SampleBench/stats.js: Removed.
9819 * ES6SampleBench/style.css: Removed.
9820
zalan@apple.com1b71a5c2017-02-05 20:41:56 +000098212017-02-05 Zalan Bujtas <zalan@apple.com>
9822
9823 Simple line layout: Add performance test with varying string and font-size to minimize width-cache hit.
9824 https://bugs.webkit.org/show_bug.cgi?id=167859
9825 <rdar://problem/30368070>
9826
9827 Reviewed by Antti Koivisto.
9828
9829 This is in preparation for webkit.org/b/167843.
9830
9831 * Layout/simple-line-layout-with-varying-content.html: Added.
9832
fpizlo@apple.comf2677d42017-01-31 20:45:45 +000098332017-01-16 Filip Pizlo <fpizlo@apple.com>
9834
9835 Add framerate baselines to the splay-detail test
9836 https://bugs.webkit.org/show_bug.cgi?id=167659
9837
9838 Reviewed by Geoffrey Garen.
9839
9840 * JetStream/Octane2/splay-detail.html:
9841
clopez@igalia.comb24696e2017-01-31 15:33:00 +000098422017-01-31 Carlos Alberto Lopez Perez <clopez@igalia.com>
9843
9844 [EFL][GTK] Skip some IndexedDB tests that time out on the Perf bots.
9845
9846 Unreviewed performance test gardening.
9847
9848 * Skipped:
9849
zalan@apple.comf5ebe212017-01-31 00:17:04 +000098502017-01-30 Zalan Bujtas <zalan@apple.com>
9851
9852 Simple line layout: Small tweaks to improve performance.
9853 https://bugs.webkit.org/show_bug.cgi?id=167611
9854 <rdar://problem/30274294>
9855
9856 Reviewed by Simon Fraser.
9857
9858 * Layout/simple-line-layout-non-repeating-text.html: Added.
9859
commit-queue@webkit.org673c7fb2017-01-14 03:17:54 +000098602017-01-13 Said Abou-Hallawa <sabouhallawa@apple.com>
9861
9862 26 MotionMark performance tests failing
9863 https://bugs.webkit.org/show_bug.cgi?id=166854
9864
9865 Reviewed by Ryosuke Niwa.
9866
9867 Skip running MotionMark on WebKit perf bots.
9868
9869 * Skipped:
9870
commit-queue@webkit.org9d7c0bb2017-01-06 23:38:32 +000098712017-01-06 Said Abou-Hallawa <sabouhallawa@apple.com>
9872
9873 Rename the directory and the files of MotionMark from Animometer to MotionMark
9874 https://bugs.webkit.org/show_bug.cgi?id=166659
9875
9876 Reviewed by Jon Lee.
9877
9878 Rename the directory and the files of the benchmark to its new name.
9879
9880 * MotionMark/developer.html: Renamed from PerformanceTests/Animometer/developer.html.
9881 * MotionMark/index.html: Renamed from PerformanceTests/Animometer/index.html.
9882 * MotionMark/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/d3.min.js.
9883 * MotionMark/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/graph.js.
9884 * MotionMark/resources/debug-runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.css.
9885 * MotionMark/resources/debug-runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/animometer.js.
9886 * MotionMark/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/tests.js.
9887 * MotionMark/resources/extensions.js: Renamed from PerformanceTests/Animometer/resources/extensions.js.
9888 * MotionMark/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/runner/benchmark-runner.js.
9889 * MotionMark/resources/runner/crystal.svg: Renamed from PerformanceTests/Animometer/resources/runner/crystal.svg.
9890 * MotionMark/resources/runner/lines.svg: Renamed from PerformanceTests/Animometer/resources/runner/lines.svg.
9891 * MotionMark/resources/runner/logo.svg: Renamed from PerformanceTests/Animometer/resources/runner/logo.svg.
9892 * MotionMark/resources/runner/motionmark.css: Renamed from PerformanceTests/Animometer/resources/runner/animometer.css.
9893 * MotionMark/resources/runner/motionmark.js: Renamed from PerformanceTests/Animometer/resources/runner/animometer.js.
9894 * MotionMark/resources/runner/tests.js: Renamed from PerformanceTests/Animometer/resources/runner/tests.js.
9895 * MotionMark/resources/statistics.js: Renamed from PerformanceTests/Animometer/resources/statistics.js.
9896 * MotionMark/resources/strings.js: Renamed from PerformanceTests/Animometer/resources/strings.js.
9897 * MotionMark/tests/3d/resources/webgl.js: Renamed from PerformanceTests/Animometer/tests/3d/resources/webgl.js.
9898 * MotionMark/tests/3d/webgl.html: Renamed from PerformanceTests/Animometer/tests/3d/webgl.html.
9899 * MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-images.html.
9900 * MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html.
9901 * MotionMark/tests/bouncing-particles/bouncing-css-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-images.html.
9902 * MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-css-shapes.html.
9903 * MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-images.html.
9904 * MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-svg-shapes.html.
9905 * MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/bouncing-tagged-images.html.
9906 * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js.
9907 * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js.
9908 * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js.
9909 * MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-images.js.
9910 * MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js.
9911 * MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js.
9912 * MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js.
9913 * MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js.
9914 * MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js.
9915 * MotionMark/tests/bouncing-particles/resources/image1.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image1.jpg.
9916 * MotionMark/tests/bouncing-particles/resources/image2.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image2.jpg.
9917 * MotionMark/tests/bouncing-particles/resources/image3.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image3.jpg.
9918 * MotionMark/tests/bouncing-particles/resources/image4.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image4.jpg.
9919 * MotionMark/tests/bouncing-particles/resources/image5.jpg: Renamed from PerformanceTests/Animometer/tests/bouncing-particles/resources/image5.jpg.
9920 * MotionMark/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/dom/compositing-transforms.html.
9921 * MotionMark/tests/dom/focus.html: Renamed from PerformanceTests/Animometer/tests/dom/focus.html.
9922 * MotionMark/tests/dom/leaves.html: Renamed from PerformanceTests/Animometer/tests/dom/leaves.html.
9923 * MotionMark/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/dom/particles.html.
9924 * MotionMark/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/compositing-transforms.js.
9925 * MotionMark/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/dom-particles.js.
9926 * MotionMark/tests/dom/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/focus.js.
9927 * MotionMark/tests/dom/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/dom/resources/leaves.js.
9928 * MotionMark/tests/master/canvas-stage.html: Renamed from PerformanceTests/Animometer/tests/master/canvas-stage.html.
9929 * MotionMark/tests/master/focus.html: Renamed from PerformanceTests/Animometer/tests/master/focus.html.
9930 * MotionMark/tests/master/image-data.html: Renamed from PerformanceTests/Animometer/tests/master/image-data.html.
9931 * MotionMark/tests/master/leaves.html: Renamed from PerformanceTests/Animometer/tests/master/leaves.html.
9932 * MotionMark/tests/master/multiply.html: Renamed from PerformanceTests/Animometer/tests/master/multiply.html.
9933 * MotionMark/tests/master/resources/canvas-stage.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-stage.js.
9934 * MotionMark/tests/master/resources/canvas-tests.js: Renamed from PerformanceTests/Animometer/tests/master/resources/canvas-tests.js.
9935 * MotionMark/tests/master/resources/compass.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/compass.svg.
9936 * MotionMark/tests/master/resources/compass100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/compass100.png.
9937 * MotionMark/tests/master/resources/console.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/console.svg.
9938 * MotionMark/tests/master/resources/console100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/console100.png.
9939 * MotionMark/tests/master/resources/contribute.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute.svg.
9940 * MotionMark/tests/master/resources/contribute100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/contribute100.png.
9941 * MotionMark/tests/master/resources/debugger.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger.svg.
9942 * MotionMark/tests/master/resources/debugger100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/debugger100.png.
9943 * MotionMark/tests/master/resources/focus.js: Renamed from PerformanceTests/Animometer/tests/master/resources/focus.js.
9944 * MotionMark/tests/master/resources/image-data.js: Renamed from PerformanceTests/Animometer/tests/master/resources/image-data.js.
9945 * MotionMark/tests/master/resources/inspector.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector.svg.
9946 * MotionMark/tests/master/resources/inspector100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/inspector100.png.
9947 * MotionMark/tests/master/resources/layout.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/layout.svg.
9948 * MotionMark/tests/master/resources/layout100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/layout100.png.
9949 * MotionMark/tests/master/resources/leaves.js: Renamed from PerformanceTests/Animometer/tests/master/resources/leaves.js.
9950 * MotionMark/tests/master/resources/multiply.js: Renamed from PerformanceTests/Animometer/tests/master/resources/multiply.js.
9951 * MotionMark/tests/master/resources/particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/particles.js.
9952 * MotionMark/tests/master/resources/performance.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/performance.svg.
9953 * MotionMark/tests/master/resources/performance100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/performance100.png.
9954 * MotionMark/tests/master/resources/script.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/script.svg.
9955 * MotionMark/tests/master/resources/script100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/script100.png.
9956 * MotionMark/tests/master/resources/shortcuts.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts.svg.
9957 * MotionMark/tests/master/resources/shortcuts100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/shortcuts100.png.
9958 * MotionMark/tests/master/resources/standards.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/standards.svg.
9959 * MotionMark/tests/master/resources/standards100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/standards100.png.
9960 * MotionMark/tests/master/resources/storage.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/storage.svg.
9961 * MotionMark/tests/master/resources/storage100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/storage100.png.
9962 * MotionMark/tests/master/resources/styles.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/styles.svg.
9963 * MotionMark/tests/master/resources/styles100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/styles100.png.
9964 * MotionMark/tests/master/resources/svg-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/svg-particles.js.
9965 * MotionMark/tests/master/resources/text.js: Renamed from PerformanceTests/Animometer/tests/master/resources/text.js.
9966 * MotionMark/tests/master/resources/timeline.svg: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline.svg.
9967 * MotionMark/tests/master/resources/timeline100.png: Renamed from PerformanceTests/Animometer/tests/master/resources/timeline100.png.
9968 * MotionMark/tests/master/svg-particles.html: Renamed from PerformanceTests/Animometer/tests/master/svg-particles.html.
9969 * MotionMark/tests/master/text.html: Renamed from PerformanceTests/Animometer/tests/master/text.html.
9970 * MotionMark/tests/resources/main.js: Renamed from PerformanceTests/Animometer/tests/resources/main.js.
9971 * MotionMark/tests/resources/math.js: Renamed from PerformanceTests/Animometer/tests/resources/math.js.
9972 * MotionMark/tests/resources/stage.css: Renamed from PerformanceTests/Animometer/tests/resources/stage.css.
9973 * MotionMark/tests/resources/star.svg: Renamed from PerformanceTests/Animometer/tests/resources/star.svg.
9974 * MotionMark/tests/resources/yin-yang.png: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.png.
9975 * MotionMark/tests/resources/yin-yang.svg: Renamed from PerformanceTests/Animometer/tests/resources/yin-yang.svg.
9976 * MotionMark/tests/simple/resources/simple-canvas-paths.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas-paths.js.
9977 * MotionMark/tests/simple/resources/simple-canvas.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/simple-canvas.js.
9978 * MotionMark/tests/simple/resources/tiled-canvas-image.js: Renamed from PerformanceTests/Animometer/tests/simple/resources/tiled-canvas-image.js.
9979 * MotionMark/tests/simple/simple-canvas-paths.html: Renamed from PerformanceTests/Animometer/tests/simple/simple-canvas-paths.html.
9980 * MotionMark/tests/simple/tiled-canvas-image.html: Renamed from PerformanceTests/Animometer/tests/simple/tiled-canvas-image.html.
9981 * MotionMark/tests/template/resources/template-canvas.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-canvas.js.
9982 * MotionMark/tests/template/resources/template-css.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-css.js.
9983 * MotionMark/tests/template/resources/template-svg.js: Renamed from PerformanceTests/Animometer/tests/template/resources/template-svg.js.
9984 * MotionMark/tests/template/template-canvas.html: Renamed from PerformanceTests/Animometer/tests/template/template-canvas.html.
9985 * MotionMark/tests/template/template-css.html: Renamed from PerformanceTests/Animometer/tests/template/template-css.html.
9986 * MotionMark/tests/template/template-svg.html: Renamed from PerformanceTests/Animometer/tests/template/template-svg.html.
9987
beidson@apple.com22fffbf2016-12-13 19:44:06 +000099882016-12-13 Brady Eidson <beidson@apple.com>
9989
beidson@apple.com65bf7472016-12-13 20:41:42 +00009990 Add a PerfTest targeting IDBObjectStore.get().
9991 https://bugs.webkit.org/show_bug.cgi?id=165816
9992
9993 Reviewed by Alex Christensen.
9994
9995 * IndexedDB/objectstore-get.html: Added.
9996
99972016-12-13 Brady Eidson <beidson@apple.com>
9998
beidson@apple.com22fffbf2016-12-13 19:44:06 +00009999 Add a PerfTest targeting IDBIndex.get().
10000 https://bugs.webkit.org/show_bug.cgi?id=165803
10001
10002 Reviewed by Alex Christensen.
10003
10004 * IndexedDB/index-get.html: Added.
10005
beidson@apple.com8b315b12016-12-13 00:12:55 +0000100062016-12-12 Brady Eidson <beidson@apple.com>
10007
10008 More IndexedDB perf tests.
10009 https://bugs.webkit.org/show_bug.cgi?id=165634
10010
10011 Reviewed by Sam Weinig.
10012
10013 * IndexedDB/index-multientry.html:
10014 * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
10015 * IndexedDB/large-number-of-inserts.html: Added.
10016 * IndexedDB/objectstore-cursor.html: Added. Runtime cut in 1/4th compared to r209672.
10017
10018 * resources/runner.js:
10019
commit-queue@webkit.org5a19fe12016-12-12 18:59:39 +0000100202016-12-12 Commit Queue <commit-queue@webkit.org>
10021
10022 Unreviewed, rolling out r209672.
10023 https://bugs.webkit.org/show_bug.cgi?id=165766
10024
10025 IndexedDB/objectstore-cursor.html perf test always times out
10026 (Requested by ap on #webkit).
10027
10028 Reverted changeset:
10029
10030 "More IndexedDB perf tests."
10031 https://bugs.webkit.org/show_bug.cgi?id=165634
10032 http://trac.webkit.org/changeset/209672
10033
beidson@apple.comd5826562016-12-10 20:44:50 +0000100342016-12-10 Brady Eidson <beidson@apple.com>
10035
10036 More IndexedDB perf tests.
10037 https://bugs.webkit.org/show_bug.cgi?id=165634
10038
10039 Reviewed by Sam Weinig.
10040
10041 * IndexedDB/index-multientry.html:
10042 * IndexedDB/large-number-of-inserts-responsiveness.html: Added.
10043 * IndexedDB/large-number-of-inserts.html: Added.
10044 * IndexedDB/objectstore-cursor.html: Added.
10045
10046 * resources/runner.js: Add "track responsiveness" functionality to PerfTestRunner.
10047
fpizlo@apple.com0ef43952016-12-08 22:14:50 +0000100482016-12-06 Filip Pizlo <fpizlo@apple.com>
10049
10050 Concurrent GC should be stable enough to land enabled
10051 https://bugs.webkit.org/show_bug.cgi?id=164990
10052
10053 Reviewed by Geoffrey Garen.
10054
10055 Made CDjs more configurable and refined the "large.js" configuration. I was using that one and
10056 the new "long.js" configuration to tune concurrent eden GCs.
10057
10058 Added a new way of running Splay in browser, which using chartjs to plot the execution times of
10059 2000 iterations. This includes the minified chartjs.
10060
10061 * JetStream/Octane2/splay-detail.html: Added.
10062 * JetStream/cdjs/benchmark.js:
10063 (benchmarkImpl):
10064 (benchmark):
10065 * JetStream/cdjs/long.js: Added.
10066
beidson@apple.comf25ea0c2016-12-08 00:50:17 +0000100672016-12-07 Brady Eidson <beidson@apple.com>
10068
10069 Add IDB perf tests stressing key size.
10070 https://bugs.webkit.org/show_bug.cgi?id=165567
10071
10072 Reviewed by Alex Christensen.
10073
10074 * IndexedDB/large-array-keys.html: Added.
10075 * IndexedDB/large-binary-keys.html: Added.
10076 * IndexedDB/large-string-keys.html: Added.
10077
beidson@apple.com0f77ec9c2016-12-06 00:10:58 +0000100782016-12-05 Brady Eidson <beidson@apple.com>
10079
10080 Add an IndexedDB perf test to PerformanceTests.
10081 https://bugs.webkit.org/show_bug.cgi?id=165430
10082
10083 Reviewed by Alex Christensen.
10084
10085 * IndexedDB/index-multientry.html: Added.
10086
fpizlo@apple.com97fd3e72016-12-02 22:44:38 +0000100872016-12-02 Filip Pizlo <fpizlo@apple.com>
10088
10089 ES6SampleBench should report an average for Steady State so that all of the numbers are comparable
10090 https://bugs.webkit.org/show_bug.cgi?id=165325
10091
10092 Reviewed by Saam Barati.
10093
10094 This makes all of the numbers that ES6SampleBench reports comparable to each other: they all speak of the time
10095 it took to run an iteration of something.
10096
10097 * ES6SampleBench/results.js:
10098 (Results.prototype.reportResult):
10099
jer.noble@apple.com66479de2016-11-28 17:22:30 +0000101002016-11-18 Jer Noble <jer.noble@apple.com>
10101
10102 Add some performance tests for various aspects of media loading and playback.
10103 https://bugs.webkit.org/show_bug.cgi?id=164977
10104
10105 Reviewed by Darin Adler.
10106
10107 Add new tests for a few aspects of media playback; namely: how quickly media elements fire
10108 the "canplaythrough" event when all data is immediately available, how quickly HLS playback
10109 switches resolutions, and at what playback rate MSE-backed video can play without dropping
10110 frames. Skip these tests by default, as they're not runnable on all ports, and they require
10111 a webserver (run-webkit-httpd) to complete on macOS.
10112
10113 * Media/HLSCanPlayThrough.html: Added.
10114 * Media/HLSGearChange.html: Added.
10115 * Media/MSECanPlayThrough.html: Added.
10116 * Media/MSEPlaybackRate.html: Added.
10117 * Media/StandardCanPlayThrough.html: Added.
10118 * Media/hls/1080p/iframe_index.m3u8: Added.
10119 * Media/hls/1080p/prog_index.m3u8: Added.
10120 * Media/hls/1080p/test.ts: Added.
10121 * Media/hls/480p/iframe_index.m3u8: Added.
10122 * Media/hls/480p/prog_index.m3u8: Added.
10123 * Media/hls/480p/test.ts: Added.
10124 * Media/hls/720p/iframe_index.m3u8: Added.
10125 * Media/hls/720p/prog_index.m3u8: Added.
10126 * Media/hls/720p/test.ts: Added.
10127 * Media/hls/720p/test.ts.back: Added.
10128 * Media/hls/index.m3u8: Added.
10129 * Media/media-source-loader.js: Added.
10130 (MediaSourceLoader):
10131 (MediaSourceLoader.prototype.loadManifest):
10132 (MediaSourceLoader.prototype.loadManifestSucceeded):
10133 (MediaSourceLoader.prototype.loadManifestFailed):
10134 (MediaSourceLoader.prototype.loadMediaData):
10135 (MediaSourceLoader.prototype.loadMediaDataSucceeded):
10136 (MediaSourceLoader.prototype.loadMediaDataFailed):
10137 (MediaSourceLoader.prototype.get type):
10138 (MediaSourceLoader.prototype.get duration):
10139 (MediaSourceLoader.prototype.get initSegment):
10140 (MediaSourceLoader.prototype.get mediaSegmentsLength):
10141 (MediaSourceLoader.prototype.mediaSegments):
10142 (MediaSourceLoader.prototype.get everyMediaSegment):
10143 * Media/test-fragmented-video.json: Added.
10144 * Media/test-fragmented-video.mp4: Added.
10145 * Media/test.mp4: Added.
10146 * Skipped:
10147
fpizlo@apple.com71a012b2016-11-18 22:11:51 +0000101482016-11-18 Filip Pizlo <fpizlo@apple.com>
10149
10150 Concurrent GC should be able to run splay in debug mode and earley/raytrace in release mode with no perf regression
10151 https://bugs.webkit.org/show_bug.cgi?id=164282
10152
10153 Reviewed by Geoffrey Garen and Oliver Hunt.
10154
10155 CDjs is a fun benchmark for stressing concurrent GCs, but to really give the GC a good
10156 workout you need to increase the amount of work that the test does. This adds a second
10157 configuration of the benchmark that has more aircraft. It uses much more memory and causes us
10158 to do more GCs and those GCs take longer.
10159
10160 * JetStream/cdjs/benchmark.js:
10161 (benchmarkImpl):
10162 (benchmark):
10163 * JetStream/cdjs/large.js: Added.
10164
fpizlo@apple.coma118a972016-11-15 01:51:17 +0000101652016-11-14 Filip Pizlo <fpizlo@apple.com>
10166
10167 Unreviewed, revert unintended change.
10168
10169 * ES6SampleBench/Air/benchmark.js:
10170
sbarati@apple.comeda65b82016-10-03 20:49:34 +0000101712016-10-03 Saam Barati <sbarati@apple.com>
10172
10173 MapHash should speculate on the type of its child node
10174 https://bugs.webkit.org/show_bug.cgi?id=161922
10175
10176 Reviewed by Filip Pizlo.
10177
10178 I gave the main generator a name so it's easier to see what
10179 it is when using the sampling profiler.
10180
10181 * ES6SampleBench/Basic/ast.js:
10182 (Basic.Program):
10183
svillar@igalia.com8d35cce2016-09-22 07:57:32 +0000101842016-09-19 Sergio Villar Senin <svillar@igalia.com>
10185
10186 [css-grid] Remove the x2 computation of row sizes with indefinite heights
10187 https://bugs.webkit.org/show_bug.cgi?id=162150
10188
10189 Reviewed by Darin Adler.
10190
10191 Added a new test case which checks the layout performance of grids inside other grids, i.e,
10192 grids acting both as grid container and grid item.
10193
10194 * Layout/nested-grid.html: Added.
10195
simon.fraser@apple.comee78e4b2016-09-09 17:46:54 +0000101962016-09-09 Simon Fraser <simon.fraser@apple.com>
10197
10198 Perf test Animation/css-accelerated-animation.html failing
10199 https://bugs.webkit.org/show_bug.cgi?id=161795
10200
10201 Skip Animation/css-accelerated-animation.html since this only works as a MobileSafari
10202 perf test.
10203
10204 * Skipped:
10205
simon.fraser@apple.com099f65f2016-09-09 00:51:06 +0000102062016-09-08 Simon Fraser <simon.fraser@apple.com>
10207
10208 Add a content-animation test with accelerated CSS animations
10209 https://bugs.webkit.org/show_bug.cgi?id=161776
10210
10211 Reviewed by Dean Jackson.
10212
10213 Add a test that measures the frame rate of accelerated CSS animations.
10214
10215 This is like css-animation.html (which animates 'left' and 'top') but animates
10216 transforms instead. In order to get animation in X and Y we make two nested elements
10217 and set transformX() on one, and transformY() on the other.
10218
10219 * Animation/css-accelerated-animation.html: Added.
10220
sbarati@apple.coma54b3fb2016-08-24 03:39:33 +0000102212016-08-23 Saam Barati <sbarati@apple.com>
10222
10223 It should be easy to run ES6SampleBench from the jsc shell
10224 https://bugs.webkit.org/show_bug.cgi?id=161085
10225
10226 Reviewed by Yusuke Suzuki.
10227
10228 This patch makes ES6 sample bench runnable through the `jsc` shell.
10229 To do that, you need to be in the PerformanceTests/ES6SampleBench
10230 directory and run `jsc cli.js`. To make this work, the benchmark
10231 is now aware of being run in two modes: via the browser, and via
10232 the shell. Each entry point will set a variable `isInBrowser`,
10233 and the benchmark will do different things based on if that
10234 variable is true or false.
10235
10236 * ES6SampleBench/Air/benchmark.js:
10237 * ES6SampleBench/Air/stress-test.js:
10238 * ES6SampleBench/Basic/benchmark.js:
10239 (runBenchmark):
10240 * ES6SampleBench/Basic/stress-test.js:
10241 * ES6SampleBench/air_benchmark.js:
10242 * ES6SampleBench/basic_benchmark.js:
10243 * ES6SampleBench/cli.js: Added.
10244 (return.doRun):
10245 (makeBenchmarkRunner):
10246 * ES6SampleBench/driver.js:
10247 (Driver):
10248 (Driver.prototype._recomputeSummary):
10249 (Driver.prototype._iterate.window.setTimeout):
10250 (Driver.prototype._iterate):
10251 (Driver.prototype._updateIterations):
10252 * ES6SampleBench/glue.js:
10253 (reportResult):
10254 * ES6SampleBench/index.html:
10255 * ES6SampleBench/results.js:
10256 (Results):
10257 (Results.prototype.reportRunning):
10258 (Results.prototype.reportDone):
10259 (Results.prototype.reportError):
10260 * ES6SampleBench/stats.js:
10261 (Stats):
10262 (Stats.prototype.toString):
10263 (Stats.prototype._update):
10264
commit-queue@webkit.orgaac94c22016-08-01 18:45:17 +0000102652016-08-01 Said Abou-Hallawa <sabouhallawa@apple.com>
10266
10267 Add an option to run the MotionMark tests with classic tile size (512x512)
10268 https://bugs.webkit.org/show_bug.cgi?id=160371
10269
10270 Reviewed by Darin Adler.
10271
10272 Setting the body to large size (3000x3000) and overflow to scroll forces
10273 the classic tile size (512x512). This option does not affect the canvas
10274 tests because the canvas is displayed on one tile regardless of its size.
10275
10276 * Animometer/developer.html:
10277 * Animometer/resources/debug-runner/animometer.css:
10278 (body.showing-test-container.tiles-big):
10279 (body.showing-test-container.tiles-classic):
10280 * Animometer/resources/debug-runner/animometer.js:
10281 * Animometer/resources/runner/animometer.js:
10282 (window.benchmarkController.startBenchmark):
10283
fpizlo@apple.com0d6aca22016-06-30 18:13:26 +0000102842016-06-29 Filip Pizlo <fpizlo@apple.com>
10285
10286 Generators violate bytecode liveness validation
10287 https://bugs.webkit.org/show_bug.cgi?id=159279
10288
10289 Reviewed by Yusuke Suzuki.
10290
10291 Add Basic to our test harness.
10292
10293 Also made some cosmetic changes to the benchmark harness.
10294
10295 * ES6SampleBench/Basic/basic-tests.yaml: Added.
10296 * ES6SampleBench/Basic/stress-test.js: Added.
10297 (preciseTime):
10298 * ES6SampleBench/driver.js:
10299 (Driver):
10300 (Driver.prototype.start):
10301 (Driver.prototype.reportError):
10302 * ES6SampleBench/glue.js:
10303 * ES6SampleBench/index.html:
10304
fpizlo@apple.com88ff4162016-06-29 05:55:37 +0000103052016-06-28 Filip Pizlo <fpizlo@apple.com>
10306
10307 ES6SampleBench should have a harness
10308 https://bugs.webkit.org/show_bug.cgi?id=159246
10309
10310 Reviewed by Saam Barati.
10311
10312 This adds a simple web harness for ES6SampleBench. It runs Air and Basic 10 times for 200
10313 iterations each and reports three metrics:
10314
10315 First iteration: the time it takes for the first iteration to run. This is the first
10316 iteration after the benchmark is loaded into the iframe, so it's representative of what
10317 would happen if one of these workloads only ran for a short time.
10318
10319 Worst 2%: of the last 199 iterations, the average of the worst 2% iterations. If code like
10320 any of these workloads was used in an important event handler, you'd want that code to run
10321 well in the worst case in addition to having great throughput.
10322
10323 Steady state: the total of the last 199 iterations. This is representative of what would
10324 happen if you ran code like this for a long time.
10325
10326 The total score is the geomean of the firstIteration/worstCase/steadyState numbers of the
10327 two benchmarks.
10328
10329 The harness does statistics using Student's T-distribution confidence intervals.
10330
10331 * ES6SampleBench/Basic/benchmark.js:
10332 (Benchmark):
10333 * ES6SampleBench/air_benchmark.js: Added.
10334 * ES6SampleBench/basic_benchmark.js: Added.
10335 * ES6SampleBench/driver.js: Added.
10336 (Driver):
10337 (Driver.prototype.addBenchmark):
10338 (Driver.prototype.start):
10339 (Driver.prototype.reportResult):
10340 (Driver.prototype.reportError):
10341 (Driver.prototype._recomputeSummary.Geomean):
10342 (Driver.prototype._recomputeSummary.Geomean.prototype.add):
10343 (Driver.prototype._recomputeSummary.Geomean.prototype.get result):
10344 (Driver.prototype._recomputeSummary):
10345 (Driver.prototype._iterate):
10346 (Driver.prototype._updateIterations):
10347 * ES6SampleBench/glue.js: Added.
10348 * ES6SampleBench/index.html: Added.
10349 * ES6SampleBench/results.js: Added.
10350 (Results):
10351 (Results.prototype.get benchmark):
10352 (Results.prototype.reset):
10353 (Results.prototype.reportRunning):
10354 (Results.prototype.reportDone):
10355 (Results.prototype.reportResult.averageAbovePercentile):
10356 (Results.prototype.reportResult):
10357 (Results.prototype.reportError):
10358 * ES6SampleBench/stats.js: Added.
10359 (Stats):
10360 (Stats.prototype.reset):
10361 (Stats.prototype.add):
10362 (Stats.prototype.get numIterations):
10363 (Stats.prototype.valueForIteration):
10364 (Stats.get result.tDist):
10365 (Stats.prototype.get result):
10366 (Stats.prototype.toString):
10367 (Stats.prototype._update):
10368 * ES6SampleBench/style.css: Added.
10369 (body):
10370 (body, th, tr):
10371 (h1, h2, h3, h4):
10372 (h1):
10373 (h2):
10374 (h3):
10375 (hr):
10376 (address):
10377 (img):
10378 (.underline):
10379 (ol.loweralpha):
10380 (ol.upperalpha):
10381 (ol.lowerroman):
10382 (ol.upperroman):
10383 (ol.arabic):
10384 (.banner-link:link, .banner-link:visited):
10385 (:link, :visited):
10386 (h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited):
10387 (.anchor:link, .anchor:visited):
10388 (* > .anchor:link, * > .anchor:visited):
10389 (span:hover .anchor):
10390 (a.forbidden, span.forbidden):
10391 (a.missing:hover):
10392 (a.closed:link, a.closed:visited, span.closed):
10393 (pre):
10394 (div.code):
10395 (div.code pre):
10396 (dt):
10397 (dd):
10398 (dd:last-child):
10399 (.site-logo):
10400 (.site-logo .tagline):
10401 (table):
10402 (#contents):
10403 (p):
10404 (p:last-child):
10405 (th):
10406 (td):
10407
jonlee@apple.comf49fd8a2016-06-29 01:52:14 +0000104082016-06-28 Jon Lee <jonlee@apple.com>
10409
10410 Update focus test
10411 https://bugs.webkit.org/show_bug.cgi?id=159242
10412 rdar://problem/27070007
10413
10414 Reviewed by Dean Jackson.
10415 Provisionally reviewed by Said Abou-Hallawa.
10416
10417 Move previous test to dom suite, and update the test for better reporting of frame rate, although
10418 it uses a different rendering path.
10419
10420 * Animometer/resources/debug-runner/tests.js: Add to dom suite.
10421 * Animometer/tests/dom/focus.html: Copied from PerformanceTests/Animometer/tests/master/focus.html.
10422 * Animometer/tests/dom/resources/focus.js: Copied from PerformanceTests/Animometer/tests/master/resources/focus.js.
10423 * Animometer/tests/master/focus.html: Remove center element.
10424 * Animometer/tests/master/resources/focus.js: Use narrower size range with smaller particles. Remove the
10425 container elements. Inline getBlurValue and getOpacityValue since they are only called once.
10426
fpizlo@apple.comfdda3082016-06-28 22:09:06 +0000104272016-06-28 Filip Pizlo <fpizlo@apple.com>
10428
10429 Move Air.js and Basic into ES6SampleBench
10430
10431 Rubber stamped by Geoffrey Garen.
10432
10433 We want to group our ES6 benchmarks together, and eventually, we want to give them a
10434 common harness.
10435
10436 * Air.js: Removed.
10437 * Air.js/README.md: Removed.
10438 * Air.js/airjs-tests.yaml: Removed.
10439 * Air.js/all.js: Removed.
10440 * Air.js/allocate_stack.js: Removed.
10441 * Air.js/arg.js: Removed.
10442 * Air.js/basic_block.js: Removed.
10443 * Air.js/benchmark.js: Removed.
10444 * Air.js/code.js: Removed.
10445 * Air.js/custom.js: Removed.
10446 * Air.js/frequented_block.js: Removed.
10447 * Air.js/insertion_set.js: Removed.
10448 * Air.js/inst.js: Removed.
10449 * Air.js/liveness.js: Removed.
10450 * Air.js/make_dist.sh: Removed.
10451 * Air.js/opcode.js: Removed.
10452 * Air.js/payload-airjs-ACLj8C.js: Removed.
10453 * Air.js/payload-gbemu-executeIteration.js: Removed.
10454 * Air.js/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
10455 * Air.js/payload-typescript-scanIdentifier.js: Removed.
10456 * Air.js/reg.js: Removed.
10457 * Air.js/stack_slot.js: Removed.
10458 * Air.js/stress-test.js: Removed.
10459 * Air.js/strip-hash.rb: Removed.
10460 * Air.js/symbols.js: Removed.
10461 * Air.js/test.html: Removed.
10462 * Air.js/test.js: Removed.
10463 * Air.js/tmp.js: Removed.
10464 * Air.js/tmp_base.js: Removed.
10465 * Air.js/util.js: Removed.
10466 * Basic: Removed.
10467 * Basic/ast.js: Removed.
10468 * Basic/basic.js: Removed.
10469 * Basic/benchmark.js: Removed.
10470 * Basic/caseless_map.js: Removed.
10471 * Basic/lexer.js: Removed.
10472 * Basic/number.js: Removed.
10473 * Basic/parser.js: Removed.
10474 * Basic/random.js: Removed.
10475 * Basic/state.js: Removed.
10476 * Basic/test.html: Removed.
10477 * Basic/test.js: Removed.
10478 * Basic/util.js: Removed.
10479 * ES6SampleBench: Added.
10480 * ES6SampleBench/Air: Copied from PerformanceTests/Air.js.
10481 * ES6SampleBench/Basic: Copied from PerformanceTests/Basic.
10482 * Skipped:
10483
fpizlo@apple.com2d143452016-06-24 20:59:16 +0000104842016-06-24 Filip Pizlo <fpizlo@apple.com>
10485
10486 Add a ES6 generator benchmark
10487 https://bugs.webkit.org/show_bug.cgi?id=159101
10488
10489 Rubber stamped by Keith Miller.
10490
10491 This adds a Basic interpreter loosely based on ECMA-55:
10492
10493 http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf
10494
10495 It includes a lexer that is a generator, a parser that uses regular expressions, and an AST
10496 walk interpreter where the walking functions for statements are generators that call each
10497 other with yield*. This enables the interpreter to look like an AST walk even though it can
10498 yield at INPUT and PRINT statements.
10499
10500 This also uses for-of, classes, Map, and WeakMap. It also uses deprecated-but-awesome RegExp
10501 features like RegExp.lastMatch and RegExp.rightContext. I did it that way because this is
10502 how I've always written lexers in dynamic languages; see offlineasm's lex() method in
10503 parser.rb for example.
10504
10505 The benchmark runs a handful of simple Basic programs. The longest-running one computes
10506 prime numbers.
10507
10508 Includes a command-line and web harness. On my machine it runs in 2-3 seconds.
10509
10510 * Basic: Added.
10511 * Basic/ast.js: Added.
10512 (Basic.NumberApply):
10513 (Basic.Variable):
10514 (Basic.Const):
10515 (Basic.NumberPow):
10516 (Basic.NumberMul):
10517 (Basic.NumberDiv):
10518 (Basic.NumberNeg):
10519 (Basic.NumberAdd):
10520 (Basic.NumberSub):
10521 (Basic.StringVar):
10522 (Basic.Equals):
10523 (Basic.NotEquals):
10524 (Basic.LessThan):
10525 (Basic.GreaterThan):
10526 (Basic.LessEqual):
10527 (Basic.GreaterEqual):
10528 (Basic.GoTo):
10529 (Basic.GoSub):
10530 (Basic.Def):
10531 (Basic.Let):
10532 (Basic.If):
10533 (Basic.Return):
10534 (Basic.Stop):
10535 (Basic.On):
10536 (sideState.shouldStop):
10537 (Basic.For):
10538 (Basic.Next):
10539 (Basic.Print):
10540 (Basic.Input):
10541 (Basic.Read):
10542 (Basic.Restore):
10543 (Basic.Dim):
10544 (Basic.Randomize):
10545 (Basic.End):
10546 (Basic.Program):
10547 * Basic/basic.js: Added.
10548 (prepare):
10549 (simulate):
10550 * Basic/benchmark.js: Added.
10551 (Benchmark):
10552 (Benchmark.prototype.runIteration.expect):
10553 (Benchmark.prototype.runIteration):
10554 (runBenchmark):
10555 * Basic/caseless_map.js: Added.
10556 (CaselessMap):
10557 * Basic/lexer.js: Added.
10558 (lex.consumeWhitespace):
10559 (lex.consume):
10560 (lex):
10561 * Basic/lexer_test.js: Added.
10562 * Basic/number.js: Added.
10563 (NumberValue):
10564 (NumberValue.prototype.get value):
10565 (NumberValue.prototype.apply):
10566 (NumberValue.prototype.leftApply):
10567 (NumberValue.prototype.assign):
10568 (NumberArray.):
10569 (NumberArray):
10570 (NumberArray.prototype.apply):
10571 (NumberArray.prototype.leftApply):
10572 (NumberFunction):
10573 (NumberFunction.prototype.apply):
10574 (NumberFunction.prototype.leftApply):
10575 (NativeFunction):
10576 (NativeFunction.prototype.apply):
10577 (NativeFunction.prototype.leftApply):
10578 * Basic/parser.js: Added.
10579 (parse):
10580 (parse.pushToken):
10581 (parse.peekToken):
10582 (parse.consumeKind):
10583 (parse.consumeToken):
10584 (parse.parseVariable):
10585 (parse.parseNumericExpression.parsePrimary):
10586 (parse.parseNumericExpression.parseFactor):
10587 (parse.parseNumericExpression.parseTerm):
10588 (parse.parseNumericExpression):
10589 (parse.parseConstant):
10590 (parse.parseStringExpression):
10591 (parse.isStringExpression):
10592 (parse.parseRelationalExpression):
10593 (parse.parseNonNegativeInteger):
10594 (parse.parseGoToStatement):
10595 (parse.parseGoSubStatement):
10596 (parse.parseStatement):
10597 (parse.parseStatements):
10598 * Basic/random.js: Added.
10599 (createRNG):
10600 (createRNGWithFixedSeed):
10601 (createRNGWithRandomSeed):
10602 * Basic/state.js: Added.
10603 (State):
10604 (State.prototype.getValue):
10605 (State.prototype.getSideState):
10606 (State.prototype.abort):
10607 (State.prototype.validate):
10608 * Basic/test.html: Added.
10609 * Basic/test.js: Added.
10610 * Basic/util.js: Added.
10611 (this.performance.performance.now.currentTime):
10612 (else.this.preciseTime.currentTime):
10613 (else.currentTime):
10614 * Skipped: Make sure that we don't run Basic yet.
10615
jonlee@apple.com91a98b32016-06-22 03:11:15 +0000106162016-06-21 Jon Lee <jonlee@apple.com>
10617
jonlee@apple.com2816a532016-06-22 03:26:57 +000010618 Update canvas size when benchmark begins
10619 https://bugs.webkit.org/show_bug.cgi?id=159010
10620
10621 Reviewed by Dean Jackson.
10622
10623 Previously we would evaluate the media queries and assign the canvas size to the test
10624 on body.onload. Instead, do it once the user starts the benchmark.
10625
10626 * Animometer/resources/debug-runner/animometer.js: Move benchmarkController.determineCanvasSize()
10627 to benchmarkController._startBenchmark.
10628 * Animometer/resources/runner/animometer.js: Ditto.
10629
106302016-06-21 Jon Lee <jonlee@apple.com>
10631
jonlee@apple.com09a31fb2016-06-22 03:26:24 +000010632 Add new timestamp option
10633 https://bugs.webkit.org/show_bug.cgi?id=159006
10634
10635 Reviewed by Dean Jackson.
10636
10637 Add a new option to take timestamps from the rAF callback.
10638
10639 * Animometer/developer.html: Added option.
10640 * Animometer/tests/resources/main.js:
10641 (Benchmark): Fall back to using the rAF timestamp if performance.now()
10642 is not available.
10643 (Benchmark._animateLoop): Update how timestamp is set. Prefer to use
10644 local var instead of accessing private var.
10645
106462016-06-21 Jon Lee <jonlee@apple.com>
10647
jonlee@apple.com91a98b32016-06-22 03:11:15 +000010648 Improvements to Animometer benchmark
10649 https://bugs.webkit.org/show_bug.cgi?id=157738
10650
10651 Reviewed by Dean Jackson.
10652 Provisionally reviewed by Said Abou-Hallawa.
10653
jonlee@apple.com01215702016-06-22 03:12:26 +000010654 Update tests.
10655
10656 * Animometer/tests/master/text.html: Ensure only three text sizes for
10657 the three canvases.
10658 * Animometer/tests/master/focus.html: Reduce the text size to fit with smaller
10659 particle sizes.
10660 * Animometer/tests/master/resources/focus.js: Remove the quadratic distribution for
10661 particle sizes, and make it linear. Reduce the size variance. Shuffle the math to
10662 reduce some calculations per frame. Fix the placement of the particles which might
10663 otherwise be culled.
10664 * Animometer/tests/master/resources/image-data.js: Reduce the particle size
10665 to encourage larger scores.
10666
106672016-06-21 Jon Lee <jonlee@apple.com>
10668
10669 Improvements to Animometer benchmark
10670 https://bugs.webkit.org/show_bug.cgi?id=157738
10671
10672 Reviewed by Dean Jackson.
10673 Provisionally reviewed by Said Abou-Hallawa.
10674
jonlee@apple.com91a98b32016-06-22 03:11:15 +000010675 Include confidence interval for the final score, and store the canvas
10676 size in the serialization so that it is accurately shown in results.
10677
10678 * Animometer/developer.html: Add a "confidence" div.
10679 * Animometer/index.html: Ditto. Convert "mean" to "confidence".
10680 * Animometer/resources/debug-runner/animometer.js: Look at options, and
10681 if the configuration is included, update the body class based on it
10682 (similar to what we do when we first load the page). That way, if you
10683 drag-and-drop previous results in, that configuration is reflected in
10684 the dashboard. Show the full confidence interval.
10685
10686 * Animometer/resources/debug-runner/animometer.css:
10687 * Animometer/resources/debug-runner/animometer.js: Style update.
10688 * Animometer/resources/runner/animometer.css:
10689
10690 * Animometer/resources/runner/animometer.js:
10691 (_processData): Propagate the confidence interval values out and calculate
10692 the lower and upper bounds. For now, shortcut the aggregate calculation,
10693 since we only go through one iteration.
10694 (this._processData.calculateScore): Propagate the confidence interval out
10695 to be next to the score. Depending on the controller these values are
10696 calculated differently.
10697 (this._processData._getResultsProperty): Convenience function.
10698 (this._processData.get score): Refactor.
10699 (this._processData.get scoreLowerBound): Get the aggregate lower bound.
10700 (this._processData.get scoreUpperBound): Get the aggregate upper bound.
10701 (window.sectionsManager.setSectionScore):
10702 (window.benchmarkController._startBenchmark): When the benchmark starts, note
10703 the canvas size and add it to options. That way it will be automatically be
10704 serialized.
10705 (window.benchmarkController.showResults): Include the maximum deviation
10706 percentage.
10707 * Animometer/resources/runner/lines.svg: Make the background line up with the
10708 skew.
10709 * Animometer/resources/runner/tests.js:
10710 (Headers.details.text): Refactor.
10711 * Animometer/resources/statistics.js:
10712 (Statistics.largestDeviationPercentage): Convenience function to calculate
10713 the deviation percentage on either end and return the largest deviation.
10714 * Animometer/resources/strings.js:
10715
10716 Allow specifying a regression profile to use instead of taking the one
10717 with the lowest error.
10718
10719 Address an issue in the focus test when the regression calculated ends
10720 up overestimating the change point, causing a cascade of tougher
10721 ramps. The reason behind this is that at max complexity of an initial
10722 ramp, the frame length is very high, and it influences the second
10723 segment of the piecewise regression strongly, causing it to be very
10724 steep. As a result, the first segment, expected to be flat, ends up
10725 covering a higher range of complexity. That makes the change point
10726 much higher than it should be. To avoid this, we will add a sanity
10727 check on the maximum value of the ramp. If the regression's projected
10728 value at the maximum complexity of the current ramp is very slow (less
10729 than 20 fps), 1) reduce the maximum complexity by 20%, and 2) do not
10730 include the regression's change point in the change point estimator.
10731 That estimator is used as the midpoint of the next ramp, and including
10732 the change point from a poor regression can bake in the error. The
10733 controller already knows how to adjust for ramps that are too easy for
10734 the system.
10735
10736 * Animometer/resources/runner/animometer.js:
10737 (this._processData.findRegression): Takes a preferred profile and gives that to
10738 Regression.
10739 (this._processData.calculateScore): With the ramp controller, take the profile
10740 of the ramp that was used the most when calculating the ramp's regression. That
10741 profile is what is used for the test's score.
10742 * Animometer/resources/statistics.js:
10743 (Regression.Utilities.createClass): Update to take an options object which can
10744 specify a profile to calculate with. Otherwise it will continue to use both and
10745 select the one with the lower error.
10746 (_calculateRegression): Fix an issue where we claim 0 error if the regression
10747 calculation fails due to divide-by-zero. Instead reject that regression calculation
10748 by giving it Number.MAX_VALUE.
10749 * Animometer/resources/strings.js: New strings for marking a regression as flat
10750 or slope.
10751 * Animometer/tests/resources/main.js:
10752 (RampController): Rename the thresholds for clarity. Add a threshold that, if
10753 exceeded, will lower the maximum complexity of the next ramp.
10754 (tune): Relax the cdf check to consider whether the interval definitely falls in
10755 the desired frame length threshold.
10756 (processSamples): Include the profile in the ramp.
10757
10758 Update ramp controller test. Increase the length of the test to 30 seconds, and extend
10759 the interval to 120 ms during sampling. Improve the estimation of the ramp parameters.
10760
10761 * Animometer/developer.html: Change default to 30 seconds, and don't show the progress bar
10762 by default.
10763 * Animometer/resources/runner/animometer.js: Change default to 30 seconds.
10764 * Animometer/tests/resources/main.js: A number of improvements to the ramp controller, in
10765 the order in which they appear in the patch:
10766
10767 - With a longer test length use longer ramps with longer intervals to get more data at each
10768 complexity. Keep the 100 ms interval length during the ramp up phase since we don't need to
10769 spend more time there to find the right order of magnitude, but increase it during the
10770 ramps to 120 ms.
10771 - The ramp linearly interpolates the complexity to render based on its timestamp, but it would
10772 never sample the minimum complexity. Instead of lerping max to min complexity from time
10773 0 to t where t is the ramp length, instead lerp from 0 to (t - intervalSampleLength) so that
10774 we can have at least one interval sample at the min complexity for that ramp.
10775 - Some regression calculations only come out with one line segment rather than the two
10776 we expect. This could be due to a noisy ramp or the ramp's range is too narrow. If that's the
10777 case, influence the minimum complexity of the next ramp towards the lowest bound of 1, so that
10778 we ensure that at least part of the ramp is covering a complexity range that the system can
10779 handle at full 60.
10780 - Remove an assignment to interpolatedFrameLength since that is never subsequently used.
10781
10782 Update the format used to serialize the results for analysis.
10783
10784 Each data point used to have named properties for fields like complexity and frame rate.
10785 In addition the serialized numbers had rounding errors that took up many characters.
10786 Update the format by introducing a new data container called SampleData, which contains a
10787 field map. The map maps a string to an array index. Each data point is an array, so, to
10788 get a stat, use the field map to get the array index into the data point. This allows future
10789 versions to track other data, and reduces the size of the output string by two-thirds.
10790
10791 * Animometer/resources/extensions.js:
10792 (Utilities.toFixedNumber): Add convenience function that truncates the number to a fixed
10793 precision, and converts it back to a number.
10794 (SampleData): New class that contains sample data and a field map that maps properties to
10795 an array index.
10796 (get length): Number of data points.
10797 (addField): Add a field to the field map.
10798 (push): Add a data point.
10799 (sort): Sort the data.
10800 (slice): Return new SampleData object with sliced data.
10801 (forEach): Iterate over the data with provided function.
10802 (createDatum):
10803 (getFieldInDatum): Returns the data point associated with the field name by looking it up
10804 in the field map in the datum provided, which can be the datum object itself (an array) or
10805 an index into the data member variable.
10806 (setFieldInDatum): Sets the data point associated with the field name.
10807 (at): Returns the data point at the provided index.
10808 (toArray): Serializes the data where the field map serves as property names for each point.
10809
10810 * Animometer/resources/debug-runner/graph.js:
10811 (updateGraphData): Remove unused _testData. Convert the data to the old array format for the
10812 graph to use, since the old format was much easier to work with when displaying the graphs.
10813 (onGraphTypeChanged): For some controllers, no alternative score or mean is provided.
10814 * Animometer/resources/runner/animometer.css:
10815 * Animometer/resources/runner/animometer.js: Refactor to use SampleData. Update JSON output
10816 to only go to 3 digits of precision for purposes of reducing the data size.
10817 * Animometer/resources/strings.js: Add new strings to put into the field maps.
10818 * Animometer/tests/resources/main.js: Refactor to use SampleData.
10819
10820 * Animometer/developer.html:
10821 * Animometer/index.html: Restructure results table for both pages. Add charset attribute to
10822 tests.js include.
10823 * Animometer/resources/debug-runner/animometer.css: Clear out styles from release runner.
10824 * Animometer/resources/debug-runner/graph.js:
10825 (onGraphTypeChanged): Update score and mean if bootstrap results are available from the
10826 controller, since not all controllers do bootstrapping.
10827 * Animometer/resources/debug-runner/tests.js: Update header text.
10828 * Animometer/resources/runner/animometer.css: Include confidence interval in results.
10829 * Animometer/resources/runner/animometer.js:
10830 (ResultsTable._addHeader): Header contents can be HTML, so use innerHTML instead.
10831 (ResultsTable._addBody): Add tbody element.
10832 (ResultsTable._addTest): Allow a data cell to invoke a JS function to get its contents.
10833 (window.benchmarkController.showResults): Add table that includes tests' confidence intervals.
10834 * Animometer/resources/runner/tests.js:
10835 (Headers.details.text): Add new details table that includes bootstrap confidence interval.
10836 The interval can be asymmetric, but for simplicity, report the maximum deviation percentage
10837 on either side of the bootstrap median.
10838 * Animometer/resources/statistics.js:
10839 (bootstrap): Include the confidence percentage in the return object.
10840
10841 Report canvas size in results.
10842
10843 * Animometer/developer.html: Add markup to indicate whether a small, medium, or large
10844 canvas was used.
10845 * Animometer/index.html: Ditto.
10846 * Animometer/resources/debug-runner/animometer.js: Call determineCanvasSize().
10847 * Animometer/resources/runner/animometer.css: Update styles to set the canvas based on the
10848 body class size.
10849 * Animometer/resources/runner/animometer.js:
10850 (window.benchmarkController.initialize): Update styles to set the canvas based on the
10851 body class size.
10852 (window.benchmarkController.determineCanvasSize): Run various media queries and set the body
10853 class based on the size of the device.
10854
10855 * Animometer/developer.html: Refactor to include the main CSS file, and redo
10856 the layout so that it doesn't rely on flexbox.
10857 * Animometer/resources/debug-runner/animometer.css:
10858 * Animometer/resources/debug-runner/animometer.js:
10859 (updateDisplay): Since various parts of the script alter the body class, we can't
10860 replace the className directly. Instead, remove all display-based values and then add
10861 the one that was selected.
10862 * Animometer/resources/debug-runner/graph.js:
10863 (updateGraphData): To set the size of the graph, use window.innerHeight.
10864 * Animometer/resources/runner/animometer.js:
10865 (window.sectionsManager.showSection): Since various parts of the script alter the body
10866 class, we can't replace the className directly. Remove all of the section classes
10867 individually and then add the one desired.
10868 * Animometer/tests/resources/stage.css: Remove -apple-system as a font to use in the
10869 stage.
10870
fpizlo@apple.com0e6cd4f2016-06-13 18:08:36 +0000108712016-06-12 Filip Pizlo <fpizlo@apple.com>
10872
10873 Fix round-down goof in Air.js's ShuffleCustom.forEachArg
10874 https://bugs.webkit.org/show_bug.cgi?id=158674
10875
10876 Reviewed by Michael Saboff.
10877
10878 x / 3 * 3 is not how you round down to multiples of 3 in JavaScript. You need to do
10879 Math.floor(x / 3) * 3 instead.
10880
10881 This is a benign change, because having extra arguments to a Shuffle is not something we
10882 actually take advantage of yet. But I think it's best to match the original C++ code's
10883 intent.
10884
10885 * Air.js/custom.js:
10886 (const.ShuffleCustom.forEachArg):
10887
fpizlo@apple.com171df722016-06-11 19:48:48 +0000108882016-06-11 Filip Pizlo <fpizlo@apple.com>
10889
10890 Unreviewed, skip Air.js. It got unskipped when I renamed it from JSAir.
10891
10892 * Skipped:
10893
fpizlo@apple.com11956bf2016-06-10 22:55:01 +0000108942016-06-10 Filip Pizlo <fpizlo@apple.com>
10895
fpizlo@apple.com7150d6b2016-06-11 01:52:58 +000010896 Make it easy to package Air.js
10897 https://bugs.webkit.org/show_bug.cgi?id=158652
10898
10899 Reviewed by Benjamin Poulain.
10900
10901 If you want to give Air.js to someone, you can now do:
10902
10903 cd PerformanceTests/Air.js
10904 ./make_dist.sh
10905
10906 This will create Air.js.tar.gz and a directory called Air.js. If you want to send someone
10907 the benchmark, just send either of those things and tell them to look at index.html.
10908
10909 You may have to edit make_dist.sh for wherever you have Markdown.pl. You can get that from
10910 https://daringfireball.net/projects/markdown/
10911
10912 * Air.js/make_dist.sh: Added.
10913 * Air.js/test.html:
10914
109152016-06-10 Filip Pizlo <fpizlo@apple.com>
10916
fpizlo@apple.com9d9b9322016-06-11 01:32:47 +000010917 Unreviewed, make the link to test.html into an actual link.
10918
10919 * Air.js/README.md:
10920
109212016-06-10 Filip Pizlo <fpizlo@apple.com>
10922
fpizlo@apple.com43599fe2016-06-11 01:20:21 +000010923 Fix some text in Air.js/README.md
10924 https://bugs.webkit.org/show_bug.cgi?id=158650
10925
10926 Reviewed by Benjamin Poulain.
10927
10928 I read the text again and found bugs:
10929
10930 - We never actually say how to run the benchmark. This change adds a blurb about how to run
10931 it.
10932
10933 - We both say that allocateStack is responsible for the bulk of the running time and that
10934 we haven't measured where the bulk of the time is spent. This changes the text to say that
10935 it was a goal to make allocateStack be the hottest part of the benchmark, but that we did
10936 not measure this.
10937
10938 * Air.js/README.md:
10939
109402016-06-10 Filip Pizlo <fpizlo@apple.com>
10941
fpizlo@apple.com87ea1092016-06-11 00:48:43 +000010942 Air.js should have some documentation
10943 https://bugs.webkit.org/show_bug.cgi?id=158648
10944
10945 Reviewed by Keith Miller.
10946
10947 I want to be able to point people at a document if they want to know more about this
10948 benchmark.
10949
10950 * Air.js/README.md: Added.
10951
109522016-06-10 Filip Pizlo <fpizlo@apple.com>
10953
fpizlo@apple.com054fbf02016-06-10 23:54:33 +000010954 Rename JSAir to Air.js.
10955
10956 Rubber stamped by Mark Lam.
10957
10958 * Air.js: Copied from PerformanceTests/JSAir.
10959 * Air.js/airjs-tests.yaml: Copied from PerformanceTests/JSAir/jsair-tests.yaml.
10960 * Air.js/benchmark.js: Copied from PerformanceTests/JSAir/benchmark.js.
10961 (Benchmark):
10962 * Air.js/jsair-tests.yaml: Removed.
10963 * Air.js/payload-airjs-ACLj8C.js: Copied from PerformanceTests/JSAir/payload-jsair-ACLj8C.js.
10964 * Air.js/payload-jsair-ACLj8C.js: Removed.
10965 * Air.js/stress-test.js: Copied from PerformanceTests/JSAir/stress-test.js.
10966 * Air.js/test.html: Copied from PerformanceTests/JSAir/test.html.
10967 * Air.js/test.js: Copied from PerformanceTests/JSAir/test.js.
10968 * JSAir: Removed.
10969 * JSAir/all.js: Removed.
10970 * JSAir/allocate_stack.js: Removed.
10971 * JSAir/arg.js: Removed.
10972 * JSAir/basic_block.js: Removed.
10973 * JSAir/benchmark.js: Removed.
10974 * JSAir/code.js: Removed.
10975 * JSAir/custom.js: Removed.
10976 * JSAir/frequented_block.js: Removed.
10977 * JSAir/insertion_set.js: Removed.
10978 * JSAir/inst.js: Removed.
10979 * JSAir/jsair-tests.yaml: Removed.
10980 * JSAir/liveness.js: Removed.
10981 * JSAir/opcode.js: Removed.
10982 * JSAir/payload-gbemu-executeIteration.js: Removed.
10983 * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
10984 * JSAir/payload-jsair-ACLj8C.js: Removed.
10985 * JSAir/payload-typescript-scanIdentifier.js: Removed.
10986 * JSAir/reg.js: Removed.
10987 * JSAir/stack_slot.js: Removed.
10988 * JSAir/stress-test.js: Removed.
10989 * JSAir/strip-hash.rb: Removed.
10990 * JSAir/symbols.js: Removed.
10991 * JSAir/test.html: Removed.
10992 * JSAir/test.js: Removed.
10993 * JSAir/tmp.js: Removed.
10994 * JSAir/tmp_base.js: Removed.
10995 * JSAir/util.js: Removed.
10996
109972016-06-10 Filip Pizlo <fpizlo@apple.com>
10998
fpizlo@apple.com11956bf2016-06-10 22:55:01 +000010999 JSC Stress Test failing: jsair-tests.yaml/test.js.ftl-eager-no-cjit
11000 https://bugs.webkit.org/show_bug.cgi?id=158571
11001
11002 Reviewed by Keith Miller.
11003
11004 Introduce a different harness for run-jsc-stress-tests, which runs for a minimum of 10
11005 iterations and then tries to do any number of "bonus" iterations until it's been running for
11006 two seconds. Since this is the sort of test that isn't really meant to stress anything in
11007 particular, I think it's OK if it is time-limited in this way. The worst case is that some
11008 of its failures will be flaky, but I think that they would have been flaky anyway given the
11009 complexity of the test.
11010
11011 * JSAir/benchmark.js:
11012 (Benchmark):
11013 (Benchmark.prototype.runIteration):
11014 (benchmark): Deleted.
11015 * JSAir/jsair-tests.yaml:
11016 * JSAir/stress-test.js: Added.
11017 (preciseTime):
11018 * JSAir/test.html:
11019 * JSAir/test.js:
11020
fpizlo@apple.com658d0512016-06-09 19:24:22 +0000110212016-06-09 Filip Pizlo <fpizlo@apple.com>
11022
11023 Unreviewed, teach the perf bots not to run JSAir.
11024
11025 * Skipped:
11026
fpizlo@apple.com737cc142016-06-08 18:13:20 +0000110272016-06-08 Filip Pizlo <fpizlo@apple.com>
11028
11029 Use more ES6 features in JSAir
11030 https://bugs.webkit.org/show_bug.cgi?id=158497
11031
11032 Reviewed by Keith Miller.
11033
11034 This improves JSAir with the following ES6 features suggested by JoePeck:
11035
11036 - String interpolation.
11037 - Destructuring inside PatchCustom.
11038 - Default arguments.
11039
11040 All of these things are on hot paths.
11041
11042 Note that I didn't use string interpolation everywhere that I could, only in those places
11043 where it made the code more readable. In Ruby, I used the style that if the interpolation
11044 expression has any non-trivial stuff (like a ternary operator, a chain of calls, or embedded
11045 strings) then it's better to use regular strcat. I think that's what I carried over to here.
11046
11047 Note that the previous change (Add result validation to JSAir) also made the Proxy code not
11048 dead, though it's not necessarily on the hot path. The Proxy isn't called into frequently
11049 but it's used from a function that is otherwise hot, so if calling into the Proxy prevents
11050 that function from being optimized then it will hurt so good.
11051
11052 I also reenabled tail calls in a few places.
11053
11054 This change doesn't seem to change the performance of the benchmark for us. That's expected
11055 since these ES6 features are cheap. Note that this claim doesn't include Proxy, which was
11056 added in a separate change and that change did make the benchmark overall more expensive.
11057
11058 * JSAir/allocate_stack.js:
11059 (allocateStack):
11060 * JSAir/arg.js:
11061 (Arg.createBitImm64):
11062 (Arg.createAddr):
11063 (Arg.createStack):
11064 (Arg.logScale):
11065 (Arg.createIndex):
11066 * JSAir/basic_block.js:
11067 (BasicBlock.get headerString):
11068 (BasicBlock.prototype.get if):
11069 (BasicBlock):
11070 * JSAir/benchmark.js:
11071 (benchmark):
11072 * JSAir/code.js:
11073 (Code):
11074 (Code.prototype.addBlock):
11075 (Code.prototype.addStackSlot):
11076 (Code.prototype.newTmp):
11077 (Code.prototype.get size):
11078 (Code.prototype.get blocks):
11079 (Code.prototype.get stackSlots):
11080 (Code.prototype.tmps):
11081 (Code.prototype.get callArgAreaSize):
11082 (Code.prototype.toString):
11083 * JSAir/custom.js:
11084 (const.PatchCustom.forEachArg):
11085 * JSAir/inst.js:
11086 (Inst):
11087 * JSAir/reg.js:
11088 (Reg.prototype.toString):
11089 * JSAir/util.js:
11090 (symbolName):
11091 (lowerSymbolName):
11092
fpizlo@apple.comc2eaae62016-06-08 01:43:35 +0000110932016-06-07 Filip Pizlo <fpizlo@apple.com>
11094
fpizlo@apple.com7f8b5492016-06-08 17:21:52 +000011095 Add result validation to JSAir
11096 https://bugs.webkit.org/show_bug.cgi?id=158493
11097
11098 Reviewed by Saam Barati.
11099
11100 This adds the ability to hash a Code in a way that matches the C++ code's hashing of Code.
11101 This allows us to check if the Code that JSAir sees is the code that C++ saw. We use this to
11102 check the Code before and after allocateStack, and compare against hashes we got from C++.
11103
11104 Doing this uncovered bugs. roundUpToMultipleOf wasn't doing anything. allocateStack was not
11105 allocating things correctly because I was concatting a Set to an Array, which doesn't really
11106 work. Now these bugs are fixed.
11107
11108 The checking step adds to the running time so I reduced the number of iterations. The
11109 benchmark spends a decent amount of its time computing Code hashes; I think it's around 1/3
11110 total. This is probably OK. It's better to verify the results even if the running time is
11111 not all in the "core" of the algorithm.
11112
11113 Also add a run-jsc-stress-tests yaml file to allow this to run as a test.
11114
11115 * JSAir/allocate_stack.js:
11116 * JSAir/arg.js:
11117 (Arg.createImm):
11118 (Arg.createBigImm):
11119 (Arg.createBitImm):
11120 (Arg.createBitImm64):
11121 (Arg.createWidth):
11122 (Arg.createSpecial):
11123 (Arg.prototype.get kind):
11124 (Arg.prototype.get isTmp):
11125 (Arg.prototype.get isImm):
11126 (Arg.prototype.get isSomeImm):
11127 (Arg.prototype.get isSomeBigImm):
11128 (Arg.prototype.get isCondition):
11129 (Arg.prototype.get isWidth):
11130 (Arg.prototype.get isSpecial):
11131 (Arg.prototype.get isAlive):
11132 (Arg.prototype.get tmp):
11133 (Arg.prototype.get value):
11134 (Arg.prototype.get lowValue):
11135 (Arg.prototype.get highValue):
11136 (Arg.prototype.get base):
11137 (Arg.prototype.get isGP):
11138 (Arg.prototype.get isFP):
11139 (Arg.prototype.isValidForm):
11140 (Arg.prototype.get isInvertible):
11141 (Arg.kindCode):
11142 (Arg.prototype.hash):
11143 (Arg.prototype.toString):
11144 (Arg):
11145 * JSAir/basic_block.js:
11146 (BasicBlock.get successorBlocks):
11147 * JSAir/benchmark.js:
11148 (benchmark):
11149 * JSAir/code.js:
11150 (Code.prototype.setFrameSize):
11151 (Code.prototype.hash):
11152 (Code.prototype.toString):
11153 (Code):
11154 * JSAir/inst.js:
11155 (Inst.prototype.get hasNonArgEffects):
11156 (Inst.prototype.hash):
11157 (Inst.prototype.toString):
11158 (Inst):
11159 * JSAir/jsair-tests.yaml: Added.
11160 * JSAir/opcode.js:
11161 (Inst_forEachArg):
11162 (Inst_hasNonArgEffects):
11163 (opcodeCode):
11164 * JSAir/payload-gbemu-executeIteration.js:
11165 (createPayloadGbemuExecuteIteration):
11166 * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js:
11167 (createPayloadImagingGaussianBlurGaussianBlur):
11168 * JSAir/payload-jsair-ACLj8C.js:
11169 (createPayloadJSAirACLj8C):
11170 * JSAir/payload-typescript-scanIdentifier.js:
11171 (createPayloadTypescriptScanIdentifier):
11172 * JSAir/reg.js:
11173 (Reg.prototype.get isReg):
11174 (Reg.prototype.hash):
11175 (Reg.prototype.toString):
11176 * JSAir/stack_slot.js:
11177 (StackSlot.prototype.setOffsetFromFP):
11178 (StackSlot.prototype.hash):
11179 (StackSlot.prototype.toString):
11180 * JSAir/symbols.js:
11181 (relCondCode):
11182 (resCondCode):
11183 (doubleCondCode):
11184 * JSAir/test.html:
11185 * JSAir/tmp.js:
11186 (Tmp.prototype.get isReg):
11187 (Tmp.prototype.hash):
11188 (Tmp.prototype.toString):
11189 * JSAir/util.js:
11190 (roundUpToMultipleOf):
11191 (symbolName):
11192
111932016-06-07 Filip Pizlo <fpizlo@apple.com>
11194
fpizlo@apple.comc2eaae62016-06-08 01:43:35 +000011195 Implement Air::allocateStack() in ES6 to see how much of a bad idea that is
11196 https://bugs.webkit.org/show_bug.cgi?id=158318
11197
11198 Reviewed by Saam Barati.
11199
11200 This adds a new benchmark for us to play with called JSAir. It's a complete ES6
11201 implementation of Air's allocateStack() phase along with all of Air needed to run that
11202 phase. This includes things like stack slots, registers, temporaries, basic blocks,
11203 instructions, and all of the code for iterating over, inspecting, and modifying those
11204 things.
11205
11206 To make this work, JSC can now dump Air just before allocateStack() in the form of JS code
11207 that creates a Code object that matches exactly what C++ Air saw. This benchmark comprises
11208 four Air IRs:
11209
11210 - Octane/gbemu's largest function, executeIteration.
11211 - Kraken/imaging-gaussian-blur's largest function in OSR entry mode, gaussuanBlur.
11212 - Octane/typescript's largest function that is actually hot, scanIdentifier.
11213 - JSAir's largest hot function, which is anonymous, so we call it by its hash (ACLj8C).
11214
11215 This runs in about 2 seconds on my machine in JSC trunk. It includes both a commandline
11216 harness and a web harness. JSAir is almost exactly 100x slower in ES6 in WebKit than the
11217 C++ Air::allocateStack() phase on which it is based.
11218
11219 JSAir uses the following ES6 features:
11220
11221 - Symbol.
11222 - for-of.
11223 - arrow functions.
11224 - Map/Set.
11225 - let/const.
11226 - classes.
11227
11228 All of these things are used in anger and should end up on the hot path. There is also code
11229 that uses Proxies, but it ends up being dead.
11230
11231 We can improve this even more:
11232 I still need to add result validation: https://bugs.webkit.org/show_bug.cgi?id=158493
11233 I want to make it use more ES6 features: https://bugs.webkit.org/show_bug.cgi?id=158497
11234
11235 * JSAir: Added.
11236 * JSAir/all.js: Added.
11237 * JSAir/allocate_stack.js: Added.
11238 (allocateStack.attemptAssignment):
11239 (allocateStack.assign):
11240 (allocateStack.interfere):
11241 (allocateStack.):
11242 (allocateStack):
11243 * JSAir/arg.js: Added.
11244 (Arg):
11245 (Arg.isAnyUse):
11246 (Arg.isColdUse):
11247 (Arg.isWarmUse):
11248 (Arg.cooled):
11249 (Arg.isEarlyUse):
11250 (Arg.isLateUse):
11251 (Arg.isAnyDef):
11252 (Arg.isEarlyDef):
11253 (Arg.isLateDef):
11254 (Arg.isZDef):
11255 (Arg.typeForB3Type):
11256 (Arg.widthForB3Type):
11257 (Arg.conservativeWidth):
11258 (Arg.minimumWidth):
11259 (Arg.bytes):
11260 (Arg.widthForBytes):
11261 (Arg.createTmp):
11262 (Arg.fromReg):
11263 (Arg.createImm):
11264 (Arg.createBigImm):
11265 (Arg.createBitImm):
11266 (Arg.createBitImm64):
11267 (Arg.createAddr):
11268 (Arg.createStack):
11269 (Arg.createCallArg):
11270 (Arg.createStackAddr):
11271 (Arg.isValidScale):
11272 (Arg.logScale):
11273 (Arg.createIndex):
11274 (Arg.createRelCond):
11275 (Arg.createResCond):
11276 (Arg.createDoubleCond):
11277 (Arg.createWidth):
11278 (Arg.prototype.get kind):
11279 (Arg.prototype.get isTmp):
11280 (Arg.prototype.get isImm):
11281 (Arg.prototype.get isBigImm):
11282 (Arg.prototype.get isBitImm):
11283 (Arg.prototype.get isBitImm64):
11284 (Arg.prototype.get isSomeImm):
11285 (Arg.prototype.get isAddr):
11286 (Arg.prototype.get isStack):
11287 (Arg.prototype.get isCallArg):
11288 (Arg.prototype.get isIndex):
11289 (Arg.prototype.get isMemory):
11290 (Arg.prototype.get isStackMemory):
11291 (Arg.prototype.get isRelCond):
11292 (Arg.prototype.get isResCond):
11293 (Arg.prototype.get isDoubleCond):
11294 (Arg.prototype.get isCondition):
11295 (Arg.prototype.get isWidth):
11296 (Arg.prototype.get isAlive):
11297 (Arg.prototype.get tmp):
11298 (Arg.prototype.get value):
11299 (Arg.prototype.get base):
11300 (Arg.prototype.get hasOffset):
11301 (Arg.prototype.get offset):
11302 (Arg.prototype.get stackSlot):
11303 (Arg.prototype.get index):
11304 (Arg.prototype.get scale):
11305 (Arg.prototype.get logScale):
11306 (Arg.prototype.get width):
11307 (Arg.prototype.get isGPTmp):
11308 (Arg.prototype.get isFPTmp):
11309 (Arg.prototype.get isGP):
11310 (Arg.prototype.get isFP):
11311 (Arg.prototype.get hasType):
11312 (Arg.prototype.get type):
11313 (Arg.prototype.isType):
11314 (Arg.prototype.isCompatibleType):
11315 (Arg.prototype.get isGPR):
11316 (Arg.prototype.get gpr):
11317 (Arg.prototype.get isFPR):
11318 (Arg.prototype.get fpr):
11319 (Arg.prototype.get isReg):
11320 (Arg.prototype.get reg):
11321 (Arg.isValidImmForm):
11322 (Arg.isValidBitImmForm):
11323 (Arg.isValidBitImm64Form):
11324 (Arg.isValidAddrForm):
11325 (Arg.isValidIndexForm):
11326 (Arg.prototype.isValidForm):
11327 (Arg.prototype.forEachTmpFast):
11328 (Arg.prototype.usesTmp):
11329 (Arg.prototype.forEachTmp):
11330 (Arg.prototype.is):
11331 (Arg.prototype.as):
11332 (Arg.prototype.forEachFast):
11333 (Arg.prototype.forEach):
11334 (Arg.extract):
11335 (Arg.forEachFast):
11336 (Arg.forEach):
11337 (Arg.prototype.get condition):
11338 (Arg.prototype.get isInvertible):
11339 (Arg.prototype.toString):
11340 * JSAir/basic_block.js: Added.
11341 (BasicBlock):
11342 (BasicBlock.prototype.get index):
11343 (BasicBlock.prototype.get size):
11344 (BasicBlock.prototype.Symbol.iterator):
11345 (BasicBlock.prototype.at):
11346 (BasicBlock.get last):
11347 (BasicBlock.get insts):
11348 (BasicBlock.get numSuccessors):
11349 (BasicBlock.get successors):
11350 (BasicBlock.get successorBlocks.):
11351 (BasicBlock.get successorBlocks):
11352 (BasicBlock.set get numPredecessors):
11353 (BasicBlock.get predecessors):
11354 (BasicBlock.get frequency):
11355 (BasicBlock.get headerString):
11356 (BasicBlock.get footerString):
11357 * JSAir/benchmark.js: Added.
11358 (benchmark):
11359 * JSAir/code.js: Added.
11360 (Code):
11361 (Code.prototype.addBlock):
11362 (Code.prototype.addStackSlot):
11363 (Code.prototype.newTmp):
11364 (Code.prototype.get size):
11365 (Code.prototype.at):
11366 (Code.prototype.Symbol.iterator):
11367 (Code.prototype.get blocks):
11368 (Code.prototype.get stackSlots):
11369 (Code.prototype.tmps):
11370 (Code.prototype.get callArgAreaSize):
11371 (Code.prototype.requestCallArgAreaSize):
11372 (Code.prototype.get frameSize):
11373 (Code.prototype.setFrameSize):
11374 (Code.prototype.toString):
11375 * JSAir/custom.js: Added.
11376 (const.ShuffleCustom.forEachArg):
11377 (const.ShuffleCustom.hasNonArgNonControlEffects):
11378 (const.PatchCustom.forEachArg):
11379 (const.PatchCustom.hasNonArgNonControlEffects):
11380 (const.CCallCustom.forEachArg):
11381 (const.CCallCustom.hasNonArgNonControlEffects):
11382 (const.ColdCCallCustom.forEachArg):
11383 (const.ColdCCallCustom.hasNonArgNonControlEffects):
11384 * JSAir/frequented_block.js: Added.
11385 (FrequentedBlock):
11386 (FrequentedBlock.prototype.toString):
11387 * JSAir/insertion_set.js: Added.
11388 (Insertion):
11389 (Insertion.prototype.get index):
11390 (Insertion.prototype.get element):
11391 (Insertion.prototype.lessThan):
11392 (InsertionSet):
11393 (InsertionSet.prototype.appendInsertion):
11394 (InsertionSet.prototype.append):
11395 (InsertionSet.prototype.execute):
11396 * JSAir/inst.js: Added.
11397 (Inst):
11398 (Inst.prototype.append):
11399 (Inst.prototype.clear):
11400 (Inst.prototype.get opcode):
11401 (Inst.prototype.get args):
11402 (Inst.prototype.visitArg):
11403 (Inst.prototype.forEachTmpFast):
11404 (Inst.prototype.forEachArg):
11405 (Inst.prototype.forEachTmp):
11406 (Inst.prototype.forEach):
11407 (Inst.forEachDef):
11408 (Inst.forEachDefWithExtraClobberedRegs):
11409 (Inst.prototype.get hasNonArgEffects):
11410 (Inst.prototype.toString):
11411 * JSAir/liveness.js: Added.
11412 (Liveness):
11413 (Liveness.prototype.get thing):
11414 (Liveness.prototype.get code):
11415 (Liveness.prototype.get liveAtHead):
11416 (Liveness.prototype.get liveAtTail):
11417 (Liveness.prototype.localCalc.LocalCalc):
11418 (Liveness.prototype.localCalc.LocalCalc.prototype.get liveSet):
11419 (Liveness.prototype.localCalc.LocalCalc.prototype.execute):
11420 (Liveness.prototype.localCalc):
11421 * JSAir/opcode.js: Added.
11422 (Inst_forEachArg):
11423 (Inst_hasNonArgEffects):
11424 * JSAir/payload-gbemu-executeIteration.js: Added.
11425 (createPayloadGbemuExecuteIteration):
11426 * JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Added.
11427 (createPayloadImagingGaussianBlurGaussianBlur):
11428 * JSAir/payload-jsair-ACLj8C.js: Added.
11429 (createPayloadJSAirACLj8C):
11430 * JSAir/payload-typescript-scanIdentifier.js: Added.
11431 (createPayloadTypescriptScanIdentifier):
11432 * JSAir/reg.js: Added.
11433 (Reg):
11434 (Reg.fromReg):
11435 (Reg.prototype.get index):
11436 (Reg.prototype.get type):
11437 (Reg.prototype.get name):
11438 (Reg.prototype.get isCalleeSave):
11439 (Reg.prototype.get isReg):
11440 (Reg.prototype.toString):
11441 (Reg.extract):
11442 (Reg.forEachFast):
11443 (Reg.forEach):
11444 (newGPR):
11445 (Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
11446 * JSAir/stack_slot.js: Added.
11447 (StackSlot):
11448 (StackSlot.prototype.get byteSize):
11449 (StackSlot.prototype.get kind):
11450 (StackSlot.prototype.get isLocked):
11451 (StackSlot.prototype.get isSpill):
11452 (StackSlot.prototype.get index):
11453 (StackSlot.prototype.ensureSize):
11454 (StackSlot.prototype.get alignment):
11455 (StackSlot.prototype.get offsetFromFP):
11456 (StackSlot.prototype.setOffsetFromFP):
11457 (StackSlot.prototype.toString):
11458 (StackSlot.extract):
11459 (StackSlot.forEachFast):
11460 (StackSlot.forEach):
11461 * JSAir/symbols.js: Added.
11462 * JSAir/test.html: Added.
11463 * JSAir/test.js: Added.
11464 * JSAir/tmp.js: Added.
11465 (Tmp):
11466 (Tmp.fromReg):
11467 (Tmp.prototype.get index):
11468 (Tmp.prototype.get type):
11469 (Tmp.prototype.get isReg):
11470 (Tmp.prototype.toString):
11471 (Tmp.extract):
11472 (Tmp.forEachFast):
11473 (Tmp.forEach):
11474 * JSAir/tmp_base.js: Added.
11475 (TmpBase.prototype.get isGP):
11476 (TmpBase.prototype.get isFP):
11477 (TmpBase.prototype.get isGPR):
11478 (TmpBase.prototype.get isFPR):
11479 (TmpBase.prototype.get reg):
11480 (TmpBase.prototype.get gpr):
11481 (TmpBase.prototype.get fpr):
11482 (TmpBase):
11483 * JSAir/util.js: Added.
11484 (isRepresentableAsInt32):
11485 (addIndexed):
11486 (roundUpToMultipleOf):
11487 (symbolName):
11488 (mergeIntoSet):
11489 (nonEmptyRangesOverlap):
11490 (rangesOverlap):
11491 (removeAllMatching):
11492 (swap):
11493 (bubble):
11494 (bubbleSort):
11495 (currentTime):
11496 (else.currentTime):
11497
utatane.tea@gmail.com4d41c982016-05-27 00:40:09 +0000114982016-05-26 Yusuke Suzuki <utatane.tea@gmail.com>
11499
11500 [JSC] Allow JSBench to use precise time
11501 https://bugs.webkit.org/show_bug.cgi?id=158050
11502
11503 Reviewed by Geoffrey Garen.
11504
11505 * JSBench/amazon-chrome-win/urem.js:
11506 (else.window.performance.window.performance.now.currentTimeInMS):
11507 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11508 (else.else.currentTimeInMS):
11509 (onload.cb):
11510 (onload):
11511 * JSBench/amazon-chrome/urem.js:
11512 (else.window.performance.window.performance.now.currentTimeInMS):
11513 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11514 (else.else.currentTimeInMS):
11515 (onload.cb):
11516 (onload):
11517 * JSBench/amazon-firefox-win/urm.js:
11518 (else.window.performance.window.performance.now.currentTimeInMS):
11519 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11520 (else.else.currentTimeInMS):
11521 (onload.cb):
11522 (onload):
11523 * JSBench/amazon-firefox/urm.js:
11524 (else.window.performance.window.performance.now.currentTimeInMS):
11525 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11526 (else.else.currentTimeInMS):
11527 (onload.cb):
11528 (onload):
11529 * JSBench/amazon-safari/urem.js:
11530 (else.window.performance.window.performance.now.currentTimeInMS):
11531 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11532 (else.else.currentTimeInMS):
11533 (onload.cb):
11534 (onload):
11535 * JSBench/facebook-chrome-win/urem.js:
11536 (else.window.performance.window.performance.now.currentTimeInMS):
11537 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11538 (else.else.currentTimeInMS):
11539 (onload.cb):
11540 (onload):
11541 * JSBench/facebook-chrome/urem.js:
11542 (else.window.performance.window.performance.now.currentTimeInMS):
11543 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11544 (else.else.currentTimeInMS):
11545 (onload.cb):
11546 (onload):
11547 * JSBench/facebook-firefox-win/urem.js:
11548 (else.window.performance.window.performance.now.currentTimeInMS):
11549 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11550 (else.else.currentTimeInMS):
11551 (onload.cb):
11552 (onload):
11553 * JSBench/facebook-firefox/urem.js:
11554 (else.window.performance.window.performance.now.currentTimeInMS):
11555 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11556 (else.else.currentTimeInMS):
11557 (onload.cb):
11558 (onload):
11559 * JSBench/facebook-safari/urem.js:
11560 (else.window.performance.window.performance.now.currentTimeInMS):
11561 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11562 (else.else.currentTimeInMS):
11563 (onload.cb):
11564 (onload):
11565 * JSBench/google-chrome-win/urem.js:
11566 (else.window.performance.window.performance.now.currentTimeInMS):
11567 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11568 (else.else.currentTimeInMS):
11569 (onload.cb):
11570 (onload):
11571 * JSBench/google-chrome/urem.js:
11572 (else.window.performance.window.performance.now.currentTimeInMS):
11573 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11574 (else.else.currentTimeInMS):
11575 (onload.cb):
11576 (onload):
11577 * JSBench/google-firefox-win/urem.js:
11578 (else.window.performance.window.performance.now.currentTimeInMS):
11579 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11580 (else.else.currentTimeInMS):
11581 (onload.cb):
11582 (onload):
11583 * JSBench/google-firefox/uem.js:
11584 (else.window.performance.window.performance.now.currentTimeInMS):
11585 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11586 (else.else.currentTimeInMS):
11587 (onload.cb):
11588 (onload):
11589 * JSBench/google-safari/urem.js:
11590 (else.window.performance.window.performance.now.currentTimeInMS):
11591 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11592 (else.else.currentTimeInMS):
11593 (onload.cb):
11594 (onload):
11595 * JSBench/harness.js:
11596 (runBenchmark.window.currentTimeInMS):
11597 (runBenchmark.else.window.currentTimeInMS):
11598 * JSBench/twitter-chrome-win/rem.js:
11599 (else.window.performance.window.performance.now.currentTimeInMS):
11600 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11601 (else.else.currentTimeInMS):
11602 (onload.cb):
11603 (onload):
11604 * JSBench/twitter-chrome/urem.js:
11605 (else.window.performance.window.performance.now.currentTimeInMS):
11606 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11607 (else.else.currentTimeInMS):
11608 (onload.cb):
11609 (onload):
11610 * JSBench/twitter-firefox-win/urem.js:
11611 (else.window.performance.window.performance.now.currentTimeInMS):
11612 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11613 (else.else.currentTimeInMS):
11614 (onload.cb):
11615 (onload):
11616 * JSBench/twitter-firefox/urem.js:
11617 (else.window.performance.window.performance.now.currentTimeInMS):
11618 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11619 (else.else.currentTimeInMS):
11620 (onload.cb):
11621 (onload):
11622 * JSBench/twitter-safari/urem.js:
11623 (else.window.performance.window.performance.now.currentTimeInMS):
11624 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11625 (else.else.currentTimeInMS):
11626 (onload.cb):
11627 (onload):
11628 * JSBench/yahoo-chrome-win/urem.js:
11629 (else.window.performance.window.performance.now.currentTimeInMS):
11630 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11631 (else.else.currentTimeInMS):
11632 (onload.cb):
11633 (onload):
11634 * JSBench/yahoo-chrome/urem.js:
11635 (else.window.performance.window.performance.now.currentTimeInMS):
11636 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11637 (else.else.currentTimeInMS):
11638 (onload.cb):
11639 (onload):
11640 * JSBench/yahoo-firefox-win/urem.js:
11641 (else.window.performance.window.performance.now.currentTimeInMS):
11642 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11643 (else.else.currentTimeInMS):
11644 (onload.cb):
11645 (onload):
11646 * JSBench/yahoo-firefox/urem.js:
11647 (else.window.performance.window.performance.now.currentTimeInMS):
11648 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11649 (else.else.currentTimeInMS):
11650 (onload.cb):
11651 (onload):
11652 * JSBench/yahoo-safari/urem.js:
11653 (else.window.performance.window.performance.now.currentTimeInMS):
11654 (else.else.typeof.preciseTime.string_appeared_here.currentTimeInMS):
11655 (else.else.currentTimeInMS):
11656 (onload.cb):
11657 (onload):
11658
ggaren@apple.comc5b8de62016-05-26 19:51:26 +0000116592016-05-25 Geoffrey Garen <ggaren@apple.com>
11660
11661 replaceable own properties seem to ignore replacement after property caching
11662 https://bugs.webkit.org/show_bug.cgi?id=158091
11663
11664 Reviewed by Darin Adler.
11665
11666 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
11667 * MallocBench/MallocBench/Benchmark.cpp:
11668 * MallocBench/MallocBench/Interpreter.cpp:
11669 (Interpreter::doMallocOp):
11670 * MallocBench/MallocBench/Interpreter.h:
11671 * MallocBench/MallocBench/fastMallocLog.63316.ops: Added.
11672 * MallocBench/MallocBench/jetstream.cpp: Added.
11673 (benchmark_jetstream):
11674 * MallocBench/MallocBench/jetstream.h: Added.
11675
keith_miller@apple.coma04c82e2016-05-25 09:05:26 +0000116762016-05-25 Keith Miller <keith_miller@apple.com>
11677
11678 Unreviewed, add JSBench to the skipped list for now since it doesn't
11679 work currently.
11680
11681 * Skipped:
11682
keith_miller@apple.coma8f138f2016-05-24 19:00:51 +0000116832016-05-17 Keith Miller <keith_miller@apple.com>
11684 We should have JSBench in PerformanceTests
11685 https://bugs.webkit.org/show_bug.cgi?id=157952
11686
11687 Rubber-stamped by Saam Barati.
11688
11689 There are some slight changes to the layout of the test directory
11690 to make it work nicely with run-jsc-benchmarks. Before JSBench
11691 had each of the browser specific sub-tests in a sub-directory.
11692 These have been flattened e.g. amazon/safari/ has become
11693 amazon-safari/.
11694
11695 * JSBench/amazon-chrome-win/urem.html: Added.
11696 * JSBench/amazon-chrome-win/urem.js: Added.
11697 * JSBench/amazon-chrome/urem.html: Added.
11698 * JSBench/amazon-chrome/urem.js: Added.
11699 * JSBench/amazon-firefox-win/urm.html: Added.
11700 * JSBench/amazon-firefox-win/urm.js: Added.
11701 * JSBench/amazon-firefox/urm.html: Added.
11702 * JSBench/amazon-firefox/urm.js: Added.
11703 * JSBench/amazon-safari/urem.html: Added.
11704 * JSBench/amazon-safari/urem.js: Added.
11705 * JSBench/browsercheck.js: Added.
11706 * JSBench/facebook-chrome-win/urem.html: Added.
11707 * JSBench/facebook-chrome-win/urem.js: Added.
11708 * JSBench/facebook-chrome/urem.html: Added.
11709 * JSBench/facebook-chrome/urem.js: Added.
11710 * JSBench/facebook-firefox-win/urem.html: Added.
11711 * JSBench/facebook-firefox-win/urem.js: Added.
11712 * JSBench/facebook-firefox/urem.html: Added.
11713 * JSBench/facebook-firefox/urem.js: Added.
11714 * JSBench/facebook-safari/urem.html: Added.
11715 * JSBench/facebook-safari/urem.js: Added.
11716 * JSBench/google-chrome-win/urem.html: Added.
11717 * JSBench/google-chrome-win/urem.js: Added.
11718 * JSBench/google-chrome/urem.html: Added.
11719 * JSBench/google-chrome/urem.js: Added.
11720 * JSBench/google-firefox-win/urem.html: Added.
11721 * JSBench/google-firefox-win/urem.js: Added.
11722 * JSBench/google-firefox/uem.html: Added.
11723 * JSBench/google-firefox/uem.js: Added.
11724 * JSBench/google-safari/urem.html: Added.
11725 * JSBench/google-safari/urem.js: Added.
11726 * JSBench/harness.html: Added.
11727 * JSBench/harness.js: Added.
11728 * JSBench/harness.py: Added.
11729 * JSBench/index.html: Added.
11730 * JSBench/reload.html: Added.
11731 * JSBench/twitter-chrome-win/rem.html: Added.
11732 * JSBench/twitter-chrome-win/rem.js: Added.
11733 * JSBench/twitter-chrome/urem.html: Added.
11734 * JSBench/twitter-chrome/urem.js: Added.
11735 * JSBench/twitter-firefox-win/urem.html: Added.
11736 * JSBench/twitter-firefox-win/urem.js: Added.
11737 * JSBench/twitter-firefox/urem.html: Added.
11738 * JSBench/twitter-firefox/urem.js: Added.
11739 * JSBench/twitter-safari/urem.html: Added.
11740 * JSBench/twitter-safari/urem.js: Added.
11741 * JSBench/yahoo-chrome-win/urem.html: Added.
11742 * JSBench/yahoo-chrome-win/urem.js: Added.
11743 * JSBench/yahoo-chrome/urem.html: Added.
11744 * JSBench/yahoo-chrome/urem.js: Added.
11745 * JSBench/yahoo-firefox-win/urem.html: Added.
11746 * JSBench/yahoo-firefox-win/urem.js: Added.
11747 * JSBench/yahoo-firefox/urem.html: Added.
11748 * JSBench/yahoo-firefox/urem.js: Added.
11749 * JSBench/yahoo-safari/urem.html: Added.
11750 * JSBench/yahoo-safari/urem.js: Added.
11751
rniwa@webkit.orga1da2a92016-05-21 03:57:34 +0000117522016-05-20 Ryosuke Niwa <rniwa@webkit.org>
11753
11754 run-benchmark's results should contain Animometer's debug output
11755 https://bugs.webkit.org/show_bug.cgi?id=157941
11756
11757 Reviewed by Stephanie Lewis.
11758
11759 Made developer.html support the JSON generated by run-benchmark which stores everything under debugOutput.
11760
11761 * Animometer/resources/debug-runner/animometer.js:
11762 (Utilities.initialize): Unwrap debugOutput in the case run-benchmark's result JSON is used.
11763
timothy@apple.come3415422016-05-18 19:32:55 +0000117642016-05-18 Timothy Hatcher <timothy@apple.com>
11765
11766 Make Animometer work in all browsers
11767 https://bugs.webkit.org/show_bug.cgi?id=157855
11768 rdar://problem/26338521
11769
11770 Reviewed by Jon Lee.
11771
11772 * Animometer/resources/runner/logo.svg: Use a symbol instead
11773 of putting the id on the root svg. This works in all browsers.
11774
timothy@apple.com046a06e2016-05-07 16:51:58 +0000117752016-05-07 Timothy Hatcher <timothy@apple.com>
11776
11777 Update Animometer design
11778 https://bugs.webkit.org/show_bug.cgi?id=157449
11779
11780 Reviewed by Darin Adler.
11781
11782 * Animometer/developer.html: Stop including runner/animometer.css.
11783 * Animometer/index.html: Udpated elements to fit new styles.
11784
11785 * Animometer/resources/debug-runner/animometer.css:
11786 Copy the old runner/animometer.css to here so the debug runner is unaffected.
11787
11788 * Animometer/resources/runner/animometer.css:
11789 New styles for the design. Drop flex box for broad browser support.
11790
11791 * Animometer/resources/runner/animometer.js:
11792 (ResultsTable.clear): Use textContent.
11793 (window.sectionsManager.showSection): Add class to the body.
11794 (window.sectionsManager.setSectionScore): Use textContent, not innerHTML.
11795
11796 * Animometer/resources/runner/crystal.svg: Added.
11797 * Animometer/resources/runner/lines.svg: Added.
11798 * Animometer/resources/runner/logo.svg: Added.
11799
11800 * Animometer/resources/runner/tests.js: Shorten test name and title case them.
11801
rego@igalia.com92508232016-05-06 08:17:12 +0000118022016-05-06 Manuel Rego Casasnovas <rego@igalia.com>
11803
11804 [css-grid] Unprefix CSS Grid Layout properties
11805 https://bugs.webkit.org/show_bug.cgi?id=157137
11806
11807 Reviewed by Simon Fraser.
11808
11809 Remove "-webkit" prefix from all the grid layout properties,
11810 including the display value.
11811 Update the source code to remove the prefix where it was used too.
11812
11813 * Layout/auto-grid-lots-of-data.html:
11814 * Layout/fixed-grid-lots-of-data.html:
11815 * Layout/fixed-grid-lots-of-stretched-data.html:
11816
ggaren@apple.com18017a52016-04-25 23:50:25 +0000118172016-04-25 Geoffrey Garen <ggaren@apple.com>
11818
11819 bmalloc: Misc improvements to MallocBench
11820 https://bugs.webkit.org/show_bug.cgi?id=157004
11821
11822 Reviewed by Darin Adler.
11823
11824 * MallocBench/run-malloc-benchmarks: Added --memory and --memory_warning
11825 modes for focused memory testing.
11826
11827 * MallocBench/MallocBench/Benchmark.cpp:
11828 (Benchmark::printReport): Clarified output.
11829
11830 (Benchmark::currentMemoryBytes): Added compressed memory because top
11831 does the same. (It always happens to zero in the benchmarks we run. But
11832 this is good for sanity.)
11833
11834 * MallocBench/MallocBench/CommandLine.cpp: Moved up to 8 runs to reduce
11835 variance.
11836
11837 * MallocBench/MallocBench/alloc_free.cpp:
11838 (benchmark_alloc_free): Cycle a single allocation in order to stress
11839 the effect of merging on calls to madvise.
11840
11841 * MallocBench/MallocBench/big.cpp:
11842 (benchmark_big): Graduated to 8kB-128kB because medium tests up to 8 and
11843 our large allocator doesn't kick in until 64kB.
11844
11845 * MallocBench/MallocBench/medium.cpp:
11846 (benchmark_medium): Test all the way down to 1kB because our large
11847 allocator used to service 1kB allocations and 1kB is an interesting
11848 middle size where memory is unusually large but allocation throughput
11849 still matters.
11850
11851 * MallocBench/MallocBench/stress.cpp:
11852 (benchmark_stress): Reduced the churn count to match stress_aligned
11853 because this test was taking too long to complete.
11854
11855 * MallocBench/MallocBench/stress_aligned.cpp:
11856 (benchmark_stress_aligned): Our new large allocator can handle even
11857 more absurdly large values.
11858
simon.fraser@apple.com58b852b2016-04-25 21:07:32 +0000118592016-04-25 Simon Fraser <simon.fraser@apple.com>
11860
11861 Add a content animation test that uses SVG animation.
11862 https://bugs.webkit.org/show_bug.cgi?id=156827
11863
11864 * Animation/svg-animation.html: Added.
11865 * Skipped:
11866
simon.fraser@apple.com1f7bb932016-04-22 21:25:37 +0000118672016-04-22 Simon Fraser <simon.fraser@apple.com>
11868
11869 Skip two content animation tests which are only meant for iOS testing.
11870
11871 * Animation/css-animation.html: Added.
11872 * Animation/raf-animation.html: Added.
11873
11874 * Skipped:
11875
simon.fraser@apple.com046ac7d2016-04-21 04:56:57 +0000118762016-04-20 Simon Fraser <simon.fraser@apple.com>
11877
11878 Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
11879 https://bugs.webkit.org/show_bug.cgi?id=156827
11880
simon.fraser@apple.combb726962016-04-21 05:01:42 +000011881 Add two files missing from the previous commit.
11882
11883 * Animation/css-animation.html: Added.
11884 * Animation/raf-animation.html: Added.
11885
118862016-04-20 Simon Fraser <simon.fraser@apple.com>
11887
11888 Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
11889 https://bugs.webkit.org/show_bug.cgi?id=156827
11890
simon.fraser@apple.com046ac7d2016-04-21 04:56:57 +000011891 Reviewed by Stephanie Lewis.
11892
11893 Two new files for the content-animation suite.
11894
11895 After patching for use in the benchmark, these tests are a little different to other benchmarks.
11896 The test content itself does not collect performance data; the tests spit out a boilerplate JSON
11897 result with a placeholder for framerate, which is collected in native code.
11898
11899 When run as a benchmark, test completion involves a couple of bounces between the test and MobileSafari.
11900 Test completion is initiated by a setTimeout() in the test, at which point location.hash is set to "#done".
11901 MobileSafari detects that, and asynchronously dumps performance data. Once this is complete, MobileSafari
11902 changes the URL has to "#submit", which triggers the XHR to the test relay that indicates the test is
11903 complete.
11904
11905 * Animation/css-animation.html: Added.
11906 * Animation/raf-animation.html: Added.
11907
jonlee@apple.comae588922016-04-16 01:02:59 +0000119082016-04-15 Jon Lee <jonlee@apple.com>
11909
11910 Animometer test could report a NaN
11911 https://bugs.webkit.org/show_bug.cgi?id=156646
11912
11913 Reviewed by Darin Adler.
11914 Provisionally reviewed by Said Abou-Hallawa.
11915
11916 * Animometer/tests/resources/main.js:
11917 (didFinishInterval): The ramp controller has a first phase where it ramps up the complexity and
11918 reacts based on how well the system handles the load. The assumption was that it would handle at least
11919 1 particle easily. That is not always the case. As a result, an interpolation calculation could
11920 end up setting an upper bound of NaN.
11921
11922 This occurs because we never get out of the first tier, so this._lastTierComplexity is undefined.
11923 Now that we guarantee a minimum complexity of 1, modify the conditional to check for this._lastTierComplexity
11924 before interpolating the upper bound of the first ramp. In the case where the system struggles with
11925 1 particle, set it to currentComplexity.
11926
jonlee@apple.come4b587e2016-04-12 02:12:23 +0000119272016-04-09 Jon Lee <jonlee@apple.com>
11928
11929 Update Animometer to accommodate different screens
11930 https://bugs.webkit.org/show_bug.cgi?id=156449
11931
11932 Reviewed by Darin Adler.
11933 Provisionally reviewed by Said Abou-Hallawa.
11934
11935 * Animometer/index.html: Wrap button in a container to add padding at the bottom.
11936 * Animometer/resources/debug-runner/animometer.css:
11937 (@media screen and (min-device-width: 1800px)): Deleted.
11938 (@media screen and (min-width: 1800px)): Cannot use min-device-width since it may match incorrectly.
11939 (screen and (max-device-height: 414px) and (orientation: landscape)): Some devices swap device width
11940 and height with orientation change.
11941 * Animometer/resources/runner/animometer.css: Similar.
11942 (screen and (min-device-width: 1024px) and (orientation: landscape)):
11943 (screen and (max-device-height: 414px) and (orientation: landscape)):
11944 (.frame-container): On smaller iPhones, adding 1px prevents the navigation bars from appearing.
11945 (@media screen and (min-device-width: 768px) and (max-device-width: 1024px)): Deleted.
11946 (@media (min-device-height: 768px) and (max-device-height: 1024px)): Target iPad Airs and similar.
11947 (@media screen and (min-device-width: 1024px) and (max-device-width: 1366px)): Deleted.
11948 (@media screen and (max-device-width: 1024px) and (min-device-height: 1366px)): Target iPad Pro.
11949 (#results footer): Add padding below the button for testing again.
11950 * Animometer/tests/master/multiply.html: Remove the center text.
11951 * Animometer/tests/master/resources/text.js: Update the test so that in every frame the text moves.
11952 * Animometer/tests/master/text.html: Update the text sizing depending on the size of the device.
11953
jonlee@apple.com11a48542016-04-08 20:19:26 +0000119542016-04-08 Jon Lee <jonlee@apple.com>
11955
jonlee@apple.com96284f52016-04-09 05:16:59 +000011956 Have Animometer benchmark always start with complexity of 1
11957 https://bugs.webkit.org/show_bug.cgi?id=156432
11958
11959 Reviewed by Ryosuke Niwa.
11960
11961 * Animometer/tests/resources/main.js: Update the default Controller and RampController to
11962 set its minimum complexities to 1 instead of 0.
11963
119642016-04-08 Jon Lee <jonlee@apple.com>
11965
jonlee@apple.com11a48542016-04-08 20:19:26 +000011966 Fix SVG benchmark test
11967 https://bugs.webkit.org/show_bug.cgi?id=156410
11968
11969 Reviewed by Dean Jackson.
11970
11971 * Animometer/resources/extensions.js: Update Point.zero to be a static Point.
11972 * Animometer/tests/simple/resources/tiled-canvas-image.js:
11973 (Stage.call._setupTiles): Refactor.
11974 * Animometer/tests/master/resources/particles.js:
11975 (Particle.prototype.reset): Use Point.center.
11976 (complexity): We are not using a gradient background anymore, so remove the +1.
11977 * Animometer/tests/master/resources/svg-particles.js: Update to use SVG transform
11978 instead of CSS transform.
11979
jonlee@apple.com1e7e9a72016-04-07 01:47:53 +0000119802016-04-06 Jon Lee <jonlee@apple.com>
11981
11982 Update master benchmark with SVG test
11983 https://bugs.webkit.org/show_bug.cgi?id=156273
11984
11985 Reviewed by Dean Jackson.
11986 Provisionally reviewed by Said Abou-Hallawa.
11987
11988 Switch masks tests for SVG path test.
11989
11990 * Animometer/resources/debug-runner/tests.js: Move mask test here.
11991 * Animometer/resources/runner/tests.js: Add SVG test here.
11992 * Animometer/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/master/particles.html.
11993 * Animometer/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/dom-particles.js.
11994
11995 * Animometer/tests/master/resources/particles.js: Add minPosition for bounds checking. Prevents particle from being
11996 partially obscured.
11997 * Animometer/tests/master/resources/svg-particles.js: Added.
11998 (Particle): The particle is either a path object or a rect using a path as a clip. The
11999 same path is used either way. For each particle create a linear gradient with a random
12000 rotation.
12001 (SVGParticlesStage): Look in #shapes to see how many different kinds of paths are available.
12002 This makes the test more generic in case other shapes need to be tested.
12003 * Animometer/tests/master/svg-particles.html: Added. Have two defs, one that houses each
12004 particle's gradient, and one that holds the shape templates.
12005
hs85.jeong@samsung.comce35e882016-03-28 05:59:51 +0000120062016-03-27 Hunseop Jeong <hs85.jeong@samsung.com>
12007
12008 [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
12009 https://bugs.webkit.org/show_bug.cgi?id=148470
12010
12011 Reviewed by Darin Adler.
12012
12013 * Skipped: Unskip the Bindings/event-target-wrapper test.
12014
jonlee@apple.com0b5ab452016-03-24 02:08:13 +0000120152016-03-23 Jon Lee <jonlee@apple.com>
12016
jonlee@apple.com9a5c61f2016-03-24 02:40:36 +000012017 Update focus and leaves tests
12018 https://bugs.webkit.org/show_bug.cgi?id=155825
12019
12020 Reviewed by Simon Fraser.
12021
12022 Particles would improperly disappear, before they were fully off stage. Update the calculation.
12023 * Animometer/tests/dom/resources/leaves.js:
12024 * Animometer/tests/master/resources/leaves.js:
12025
12026 * Animometer/tests/master/focus.html: Update the center element styling.
12027 * Animometer/tests/master/resources/focus.js:
12028 (FocusElement.Utilities.createClass): Give enough space in the container for each particle for the blur
12029 to spread. It should be about 3x more space than the blur radius on each side.
12030 (Stage.call.initialize): Ditto for the center element.
12031
120322016-03-23 Jon Lee <jonlee@apple.com>
12033
jonlee@apple.com3b3b05e2016-03-24 02:40:03 +000012034 Update support for other platforms
12035 https://bugs.webkit.org/show_bug.cgi?id=155824
12036
12037 Reviewed by Simon Fraser.
12038
12039 * Animometer/resources/debug-runner/animometer.css: Remove extraneous media query. All of it should
12040 be handled in the release stylesheet.
12041 * Animometer/resources/debug-runner/animometer.js: Add support for browsers that return an HTMLCollection
12042 when retrieving radio elements with a name, instead of the selected value.
12043 * Animometer/resources/runner/animometer.css: Adjust the queries for devices of varying widths.
12044 (.frame-container): Move overflow:hidden to #stage.
12045 * Animometer/tests/master/resources/stage.css: Consolidate into tests/resources/stage.css.
12046 * Animometer/tests/resources/stage.css:
12047 (body): Remove overflow:hidden.
12048 (#stage): Set overflow:hidden here.
12049 (#center-text): Moved from master/resources/stage.css.
12050
12051 Update stylesheet hrefs.
12052 * Animometer/tests/master/canvas-stage.html:
12053 * Animometer/tests/master/focus.html:
12054 * Animometer/tests/master/leaves.html:
12055 * Animometer/tests/master/multiply.html:
12056 * Animometer/tests/master/particles.html:
12057 * Animometer/tests/master/text.html: Adjust text size to fit in the device screen.
12058
120592016-03-23 Jon Lee <jonlee@apple.com>
12060
jonlee@apple.com0b5ab452016-03-24 02:08:13 +000012061 Make the benchmark require device to be in landscape orientation
12062 https://bugs.webkit.org/show_bug.cgi?id=155822
12063 rdar://problem/25258650
12064
12065 Reviewed by Ryosuke Niwa.
12066
12067 Check that the device is in landscape orientation. If not, disable the button to start it,
12068 and show a warning message.
12069
12070 * Animometer/developer.html: Add a message about how the browser should be set up. Include a
12071 warning message that appears if the orientation is incorrect on mobile devices.
12072 * Animometer/index.html: Ditto.
12073
12074 * Animometer/resources/debug-runner/animometer.css: Migrate the .hidden rule into the release
12075 stylesheet. Update the style to accommodate the new UI.
12076 * Animometer/resources/runner/animometer.css:
12077
12078 * Animometer/resources/runner/animometer.js:
12079 (window.benchmarkController.initialize): Add the orientation listener is needed.
12080 (window.benchmarkController.addOrientationListenerIfNecessary): Only mobile devices need this. Check
12081 to see for support of window.orientation.
12082 (window.benchmarkController._orientationChanged): Toggle the warning based on whether we match the
12083 landscape query. Set a state variable, which is needed for the debug harness. Call updateStartButtonState.
12084 (window.benchmarkController.updateStartButtonState):
12085 * Animometer/resources/debug-runner/animometer.js: Change _updateStartButtonState to return
12086 a boolean about whether at least one test is selected. That will be used in
12087 benchmarkController.updateStartButtonState(). Move the load event listener to the release version.
12088 (window.benchmarkController.updateStartButtonState): Override the release version, and also check
12089 that at least one test is selected.
12090
ggaren@apple.comb93bd0d2016-03-22 19:39:38 +0000120912016-03-22 Geoffrey Garen <ggaren@apple.com>
12092
12093 MallocBench: consolidate regression testing for aligned allocation
12094 https://bugs.webkit.org/show_bug.cgi?id=155762
12095
12096 Reviewed by Michael Saboff.
12097
12098 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
12099 * MallocBench/MallocBench/Benchmark.cpp:
12100 * MallocBench/MallocBench/memalign.cpp: Removed.
12101 * MallocBench/MallocBench/memalign.h: Removed. The stress_aligned test
12102 covers this and much more.
12103
12104 * MallocBench/MallocBench/stress_aligned.cpp:
12105 (benchmark_stress_aligned): Include specific tests for extreme sizes
12106 and alignments.
12107
jonlee@apple.com07fa418162016-03-22 00:30:44 +0000121082016-03-21 Jon Lee <jonlee@apple.com>
12109
12110 Update benchmark tests
12111 https://bugs.webkit.org/show_bug.cgi?id=155723
12112
12113 Reviewed by Darin Adler.
12114 Provisionally reviewed by Said Abou-Hallawa.
12115
12116 Add quadratic and bezier segments to the canvas path test.
12117
12118 * Animometer/resources/runner/tests.js: Some of the query strings are unnecessary.
12119 Rename the test.
12120 * Animometer/tests/master/resources/canvas-stage.js:
12121 (tune): Update to be able to take an array of possible constructors. Choose one randomly.
12122 * Animometer/tests/master/resources/canvas-tests.js:
12123 (CanvasLinePoint.Utilities.createClass): Move the point selection out to a separate
12124 function called randomPoint() for reuse. Move X_LOOPS, Y_LOOPS, and offsets into the
12125 class definition.
12126 (randomPoint): Scale the grid down a little bit so that the lines along the edge of the
12127 canvas are not cut off when the stroke size is thick.
12128 (CanvasQuadraticSegment): Added.
12129 (CanvasBezierSegment): Added.
12130 (SimpleCanvasStage): Pass in an array of the different segment types. Since line segments
12131 are short compared to the curved ones, make it twice as likely to render a line segment.
12132 (SimpleCanvasStage.animate): Update the drawing code so that we render all line segments.
12133
12134 Add a helper method that selects a random element from an array.
12135
12136 * Animometer/tests/resources/main.js:
12137 (Stage.randomElementInArray): Select a random element from the provided array.
12138
12139 * Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js: Refactor.
12140 * Animometer/tests/dom/resources/leaves.js: Ditto.
12141 * Animometer/tests/master/resources/dom-particles.js: Ditto.
12142 * Animometer/tests/master/resources/image-data.js: Ditto.
12143 * Animometer/tests/master/resources/leaves.js: Ditto.
12144 * Animometer/tests/simple/resources/simple-canvas-paths.js: Ditto.
12145
12146 Add canvas tests that includes all stroke and fill paths. This makes it possible to avoid having to
12147 include the full simple canvas suite for perf testing.
12148
12149 * Animometer/resources/debug-runner/tests.js: Add new tests. Move the canvas test into the Canvas
12150 suite.
12151 * Animometer/tests/simple/resources/simple-canvas-paths.js: Add a CanvasStroke and CanvasFill particle
12152 that random selects an object to render.
12153
12154 * Animometer/resources/debug-runner/tests.js: Move 3D suite before basic canvas suite.
12155 When updating the perf bot script, we will include the suites up to this one, but exclude
12156 the basic canvas suite.
12157
12158 Move compositing transforms test to HTML suite and remove the empty Miscellaneous suite.
12159
12160 * Animometer/resources/debug-runner/tests.js:
12161 * Animometer/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/misc/compositing-transforms.html.
12162 * Animometer/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/misc/resources/compositing-transforms.js.
12163
12164 Clean up miscellaneous test suite. Add a canvas ellipse test, and remove the other
12165 canvas tests.
12166
12167 * Animometer/resources/debug-runner/tests.js: Add ellipse tests to the simple suite.
12168 * Animometer/tests/misc/canvas-electrons.html: Removed.
12169 * Animometer/tests/misc/canvas-stars.html: Removed.
12170 * Animometer/tests/misc/resources/canvas-electrons.js: Removed.
12171 * Animometer/tests/misc/resources/canvas-stars.js: Removed.
12172 * Animometer/tests/simple/resources/simple-canvas-paths.js: Add ellipse primitives.
12173
12174 Merge text tests together into one.
12175
12176 * Animometer/resources/runner/tests.js: Remove international.html.
12177 * Animometer/tests/master/international.html: Removed.
12178 * Animometer/tests/master/resources/text.js:
12179 (animate): Update styling. Manually calculate gradients for the shadow particles.
12180 Reduce the step size for y direction to avoid cutting text off at the margins. Increase
12181 step for x since there will be a little more room.
12182 * Animometer/tests/master/text.html: Add more translations and lay it out in a table.
12183
jonlee@apple.com8b6ff292016-03-21 18:09:12 +0000121842016-03-20 Jon Lee <jonlee@apple.com>
12185
12186 Add a link to show debug data
12187 https://bugs.webkit.org/show_bug.cgi?id=155724
12188
12189 Reviewed by Simon Fraser.
12190
12191 * Animometer/developer.html: Attach the onclick handler to the score.
12192 * Animometer/index.html: Ditto.
12193
dino@apple.come11dc932016-03-18 20:48:39 +0000121942016-03-18 Dean Jackson <dino@apple.com>
12195
12196 Add a basic WebGL test to Animometer
12197 https://bugs.webkit.org/show_bug.cgi?id=155475
12198 <rdar://problem/25156860>
12199
12200 Reviewed by Simon Fraser and Jon Lee.
12201
12202 Add a pretty simple WebGL test to Animometer
12203 which tries to draw a number of animated triangles.
12204 The result still needs a bit of tuning.
12205
12206 * Animometer/resources/debug-runner/tests.js: Add a new
12207 Suite for "3D" tests.
12208 * Animometer/tests/3d/resources/webgl.js: Added.
12209 * Animometer/tests/3d/webgl.html: Added.
12210
jonlee@apple.com5d3a27e2016-03-18 17:58:11 +0000122112016-03-18 Jon Lee <jonlee@apple.com>
12212
12213 Add support for statically linking to a specific test
12214 https://bugs.webkit.org/show_bug.cgi?id=155631
12215
12216 Rubber-stamped by Darin Adler.
12217
12218 * Animometer/developer.html: Update to call restartBenchmark instead so that it works for
12219 both the preset and the manually set test sessions.
12220 * Animometer/resources/debug-runner/animometer.css:
12221 (.tree .link): Style the "link" UI.
12222 * Animometer/resources/debug-runner/animometer.js: Move updateDisplay from suitesManager
12223 to optionsManager since this is a visual option and has nothing to do with the suites
12224 settings. Update the construction of the test UI by including a "link" after each test.
12225 Clicking on that link brings up a JS prompt with a URL and a query string with the current
12226 parameters of the controller, and selected test. Pasting this URL into the location bar will
12227 automatically start running the selected test.
12228 (suitesManager.suitesFromQueryString): Iterate through the Suites and tests and find the one
12229 that matches the provided parameters. Returns an object similar to the form in
12230 suitesManager.updateLocalStorageFromUI.
12231 (benchmarkController.initialize): After settings up the events and options, try parsing the
12232 query string and running the benchmark immediately. Otherwise, fall back to the form.
12233 (benchmarkController.startBenchmark): Store the options and suites into member variables for
12234 reuse in restartBenchmark.
12235 (benchmarkController.startBenchmarkImmediatelyIfEncoded): Convert the query string to an object.
12236 If that's successful, find the suite and test referenced in the query string. Start the benchmark if
12237 the search for the test succeeded.
12238 * Animometer/resources/extensions.js:
12239 (Utilities.stripNonASCIICharacters): Helper method to convert the name of the suite and test
12240 into a query-string-friendly version.
12241 (Utilities.convertObjectToQueryString): Helper method to convert an object to query string
12242 format.
12243 (Utilities.convertQueryStringToObject): Helper method to convert query string into an object
12244 with properties and values.
12245
jonlee@apple.com96891ed2016-03-17 02:49:16 +0000122462016-03-16 Jon Lee <jonlee@apple.com>
12247
12248 Add a new benchmark test
12249 https://bugs.webkit.org/show_bug.cgi?id=155570
12250
12251 Reviewed by Simon Fraser.
12252
12253 New Leaves test includes various image sizes and opacity.
12254
12255 * Animometer/resources/debug-runner/tests.js: Add it to the HTML test suite.
12256 * Animometer/tests/dom/leaves.html: Added.
12257 * Animometer/tests/dom/resources/leaves.js: Added. Override the
12258 (Particle.call.reset): Uses a range of sizes, and opacity.
12259 (Particle.call.animate): Opacity goes up then down. When it hits 0, reset the particle.
12260 (Particle.call.move): Set transform and opacity.
12261 * Animometer/tests/master/resources/leaves.js: Get rid of the closure so that it
12262 can be used in this test. Update the relative path so that it works in both the master
12263 and dom test suite.
12264
simon.fraser@apple.com95847912016-03-15 22:46:58 +0000122652016-03-15 Simon Fraser <simon.fraser@apple.com>
12266
12267 Add developer Animometer test that bounces P3-tagged images
12268 https://bugs.webkit.org/show_bug.cgi?id=155511
12269
12270 Reviewed by Tim Horton.
12271
12272 Add a test for rendering performance of tagged images. The 5 images are tagged
12273 with the Display P3 colorspace.
12274
12275 * Animometer/resources/debug-runner/tests.js:
12276 * Animometer/tests/bouncing-particles/bouncing-tagged-images.html: Added.
12277 * Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
12278 * Animometer/tests/bouncing-particles/resources/image1.jpg: Added.
12279 * Animometer/tests/bouncing-particles/resources/image2.jpg: Added.
12280 * Animometer/tests/bouncing-particles/resources/image3.jpg: Added.
12281 * Animometer/tests/bouncing-particles/resources/image4.jpg: Added.
12282 * Animometer/tests/bouncing-particles/resources/image5.jpg: Added.
12283
jonlee@apple.com37b97e02016-03-10 01:35:18 +0000122842016-03-09 Jon Lee <jonlee@apple.com>
12285
jonlee@apple.come7680da2016-03-10 01:38:50 +000012286 Enhance existing Animometer tests
12287 https://bugs.webkit.org/show_bug.cgi?id=155261
12288
12289 Reviewed by Simon Fraser.
12290
12291 * Animometer/tests/master/resources/canvas-tests.js: Add a gradient to
12292 the filled circles. To expose more of the gradient, add another circle.
12293 (SimpleCanvasStage.call.animate): For each frame, create a gradient with
12294 undulating stop points and colors. Fill the circles twice; once with
12295 the solid color, and once with the gradient.
12296
12297 * Animometer/tests/master/resources/dom-particles.js: Refactor the
12298 emission variables into a separate stage for this test. Add a colorOffset
12299 variable to make the colors of each particle slightly different, since
12300 the ramp controller can add large numbers of particles all at once, which
12301 would otherwise get all the same color.
12302 * Animometer/tests/master/resources/particles.js:
12303 (initialize): Remove the code specific to the SVG mask test.
12304
12305 * Animometer/tests/master/resources/image-data.js:
12306 (initialize): Remove unused local variable.
12307 * Animometer/tests/master/resources/multiply.js:
12308 (initialize): Make the test harder by adding more total particles.
12309
123102016-03-09 Jon Lee <jonlee@apple.com>
12311
jonlee@apple.come0a4af02016-03-10 01:37:35 +000012312 Add text tests
12313 https://bugs.webkit.org/show_bug.cgi?id=155257
12314
12315 Reviewed by Simon Fraser.
12316
12317 * Animometer/resources/extensions.js:
12318 (UnitBezier.Utilities.createClass): Add a class that computes Bezier points
12319 assuming that two of the control points are at (0,0) and (1,1). Taken from
12320 WebCore/platform/graphics/UnitBezier.h
12321 * Animometer/resources/runner/tests.js: Add a test for English text and one
12322 for international text.
12323 * Animometer/tests/master/international.html: Added.
12324 * Animometer/tests/master/resources/text.js: Added. The test assumes there is
12325 #template div which it will copy. The copies are placed behind the template, and
12326 are set with different colors each frame. They are moved around with CSS transform.
12327 * Animometer/tests/master/text.html: Added.
12328
12329 Remove the other text tests, since these ones cover the same techniques.
12330 * Animometer/tests/text/layering-text.html: Removed.
12331 * Animometer/tests/text/resources/layering-text.js: Removed.
12332 * Animometer/tests/text/resources/text-boxes.js: Removed.
12333 * Animometer/tests/text/text-boxes.html: Removed.
12334 * Animometer/resources/debug-runner/tests.js:
12335
123362016-03-09 Jon Lee <jonlee@apple.com>
12337
jonlee@apple.com37b97e02016-03-10 01:35:18 +000012338 Add a new image test
12339 https://bugs.webkit.org/show_bug.cgi?id=155232
12340
12341 Reviewed by Dean Jackson.
12342 Provisionally reviewed by Said Abou-Hallawa.
12343
12344 The image test renders PNGs and moves them with translate and rotate
12345 transforms. Each particle has a lifetime, and when the lifetime ends or
12346 the particle goes offscreen, it resets itself somewhere on the stage.
12347
12348 * Animometer/resources/debug-runner/tests.js: Remove the CSS bouncing PNG
12349 images test, because this one tests the same technique.
12350 * Animometer/resources/runner/tests.js: Added here as "Leaves".
12351 * Animometer/tests/master/leaves.html: Added.
12352 * Animometer/tests/master/resources/particles.js: Refactor out the parts
12353 specific to the DOM particles test. Consequently make velocity a public
12354 member.
12355 (initialize): The options parameter is never used, so remove it.
12356 (animate): Remove unused local variable.
12357 * Animometer/tests/master/resources/leaves.js: Maintains a focal point that
12358 moves back and forth across the canvas. That point affects the velocity
12359 of the particles. When the focal point is on the leftmost side, it is
12360 between [-6, -2], and set in reset(). When the focal point is on the rightmost
12361 side, it will be from [2, 6].
12362 * Animometer/tests/master/resources/dom-particles.js: Move JS specific to
12363 this test here from particles.js.
12364
12365 New images.
12366 * Animometer/tests/master/resources/compass100.png: Added.
12367 * Animometer/tests/master/resources/console100.png: Added.
12368 * Animometer/tests/master/resources/contribute100.png: Added.
12369 * Animometer/tests/master/resources/debugger100.png: Added.
12370 * Animometer/tests/master/resources/inspector100.png: Added.
12371 * Animometer/tests/master/resources/layout100.png: Added.
12372 * Animometer/tests/master/resources/performance100.png: Added.
12373 * Animometer/tests/master/resources/script100.png: Added.
12374 * Animometer/tests/master/resources/shortcuts100.png: Added.
12375 * Animometer/tests/master/resources/standards100.png: Added.
12376 * Animometer/tests/master/resources/storage100.png: Added.
12377 * Animometer/tests/master/resources/styles100.png: Added.
12378 * Animometer/tests/master/resources/timeline100.png: Added.
12379
jonlee@apple.com8a7b6052016-03-03 20:26:46 +0000123802016-03-03 Jon Lee <jonlee@apple.com>
12381
jonlee@apple.comb4b0bd42016-03-08 03:45:49 +000012382 Add ability to retrieve raw data from release harness
12383 https://bugs.webkit.org/show_bug.cgi?id=155026
12384
12385 Reviewed by Simon Fraser.
12386
12387 * Animometer/developer.html: Remove the special UI in the debug
12388 harness.
12389 * Animometer/resources/runner/animometer.css: Add styles for the
12390 overlay.
12391 * Animometer/resources/runner/animometer.js: Let 'j' show the JSON
12392 results, but only if the overlay doesn't exist. Add 'esc' key to dismiss
12393 the overlay.
12394 (window.benchmarkController.selectResults): Cycle the cases around
12395 so that the first 's' press selects both the benchmark score and
12396 the individual test scores.
12397 * Animometer/resources/debug-runner/animometer.css: Remove
12398 unneeded rules.
12399 * Animometer/resources/debug-runner/animometer.js: Make the same
12400 call to handleKeyPress.
12401
124022016-03-03 Jon Lee <jonlee@apple.com>
12403
jonlee@apple.comcf661882016-03-07 02:40:16 +000012404 Make sure multiply test particles have at least some opacity
12405 https://bugs.webkit.org/show_bug.cgi?id=155027
12406
12407 Reviewed by Simon Fraser.
12408
12409 * Animometer/tests/master/resources/multiply.js:
12410 (initialize): Have the elements spin a little faster to make it
12411 more obvious when the system is being stressed.
12412 (_addTile):
12413 (animate): Make sure each element being animated has at least 1%
12414 opacity.
12415
124162016-03-03 Jon Lee <jonlee@apple.com>
12417
jonlee@apple.com8a7b6052016-03-03 20:26:46 +000012418 Update image test
12419 https://bugs.webkit.org/show_bug.cgi?id=154962
12420
12421 Rubber-stamped by Darin Adler.
12422
12423 * Animometer/tests/master/image-data.html: Make each canvas have a compositing layer.
12424 * Animometer/tests/master/resources/image-data.js:
12425 (initialize): Update to load multiple images serially.
12426 (_loadImage):
12427 (tune): Use display instead of visibility. When showing an element anew, move it somewhere else.
12428 (_createTestElement): Set up the element, refactor out placement of element to _refreshElement.
12429 (_refreshElement): Place element in a tile grid.
12430 (animate):
12431 (_getRandomNeighboringPixelIndex): Use a more conservative distribution to make the effect last a little longer.
12432 * Animometer/tests/master/resources/compass.svg: Added.
12433 * Animometer/tests/master/resources/console.svg: Added.
12434 * Animometer/tests/master/resources/contribute.svg: Added.
12435 * Animometer/tests/master/resources/debugger.svg: Added.
12436 * Animometer/tests/master/resources/inspector.svg: Added.
12437 * Animometer/tests/master/resources/layout.svg: Added.
12438 * Animometer/tests/master/resources/performance.svg: Added.
12439 * Animometer/tests/master/resources/script.svg: Added.
12440 * Animometer/tests/master/resources/shortcuts.svg: Added.
12441 * Animometer/tests/master/resources/standards.svg: Added.
12442 * Animometer/tests/master/resources/storage.svg: Added.
12443 * Animometer/tests/master/resources/styles.svg: Added.
12444 * Animometer/tests/master/resources/timeline.svg: Added.
12445
jonlee@apple.com04493df2016-03-03 08:15:35 +0000124462016-03-02 Jon Lee <jonlee@apple.com>
12447
12448 Add some new controllers, and refine tests
12449 https://bugs.webkit.org/show_bug.cgi?id=154914
12450
12451 Reviewed by Simon Fraser.
12452
jonlee@apple.com0871a282016-03-03 08:22:32 +000012453 Improve tests.
12454
12455 * Animometer/tests/master/focus.html: Move each particle into a layer. Put the particle
12456 in a container element. Expand the container element by the max blur radius, and clip
12457 overflow. This way, when the blur is applied, it avoids causing layer resizes.
12458 * Animometer/tests/master/resources/focus.js:
12459 (FocusElement.Utilities.createClass): Create a container element, and put the particle
12460 inside.
12461 (hide): Set display:none.
12462 (show): Set display:block.
12463 (animate): Apply filters to the container element.
12464 (FocusStage.call.initialize): Instead of inserting and removing elements from the DOM,
12465 keep them in the stage, but set the display style instead. Use this._offsetIndex to
12466 keep track of which elements are displayed.
12467 (FocusStage.call.animate): Move some calculations around to avoid doing unneeded math.
12468 (FocusStage.call.getBlurValue): Make sure elements are always blurred.
12469 (FocusStage.call.getOpacityValue): Make sure elements have some opacity.
12470 * Animometer/tests/master/resources/multiply.js: Have the particles on the edge of the
12471 stage appear less black when the complexity gets large enough.
12472 (tune): Have this._distanceFactor calculate the factor. Avoid calculating square root each
12473 frame.
12474
124752016-03-02 Jon Lee <jonlee@apple.com>
12476
12477 Add some new controllers, and refine tests
12478 https://bugs.webkit.org/show_bug.cgi?id=154914
12479
12480 Reviewed by Simon Fraser.
12481
jonlee@apple.com04493df2016-03-03 08:15:35 +000012482 Add a controller that centers around 30 fps instead of 60 fps.
12483
12484 * Animometer/developer.html: Add a new option.
12485 * Animometer/resources/debug-runner/animometer.js:
12486 * Animometer/resources/runner/animometer.js:
12487 (this._processData.findRegression): When calculating the complexity-frameLength regression,
12488 check the controller, and use a 30 fps baseline if needed.
12489 * Animometer/resources/statistics.js:
12490 (Regression.Utilities.createClass): Update to allow clients to specify the baseline
12491 frame length.
12492 * Animometer/tests/resources/main.js:
12493 (tune): Override some of the constants in RampController. Move those constants out for
12494 easier reading.
12495
12496 Add a fixed controller, with no step.
12497
12498 * Animometer/developer.html: Add a controller that takes no step.
12499 * Animometer/resources/debug-runner/animometer.js:
12500 * Animometer/tests/resources/main.js:
12501 (Rotater.Utilities.createClass):
12502
12503 Switch to ramp controller as default.
12504
12505 * Animometer/developer.html: Increase the test length to 20 seconds.
12506 * Animometer/resources/debug-runner/animometer.js: Rename the "adjustment" field to "controller"
12507 since that is a more accurate description.
12508 * Animometer/resources/debug-runner/graph.js:
12509 * Animometer/resources/runner/animometer.js: Update preferences for release suite.
12510
jonlee@apple.comc7156432016-02-27 04:43:57 +0000125112016-02-26 Jon Lee <jonlee@apple.com>
12512
12513 Address Dean's comments in 154673.
12514
12515 * Animometer/developer.html:
12516 * Animometer/resources/debug-runner/animometer.js:
12517 * Animometer/resources/debug-runner/graph.js:
12518
jonlee@apple.com1ca6bae2016-02-27 04:33:30 +0000125192016-02-25 Jon Lee <jonlee@apple.com>
12520
12521 Update animation benchmark and tests
12522 https://bugs.webkit.org/show_bug.cgi?id=154673
12523
12524 Reviewed by Dean Jackson.
12525
12526 Update test visuals.
12527
12528 * Animometer/tests/master/resources/canvas-tests.js:
12529 (CanvasLineSegment.Utilities.createClass): Line segments near the edge of the stage get clipped.
12530 Update circle position and radius to minimize impact.
12531 * Animometer/tests/master/resources/particles.js: Get rid of rotating gradient background, and
12532 have 3 locations for emitting particles.
12533 * Animometer/tests/master/resources/multiply.js: Update distance metric so that fringe tiles get
12534 more color.
12535 (initialize): Fix some of the math for laying out the tiles.
12536 (animate): When a tile isn't used, set visibility: hidden.
12537
jonlee@apple.com164a15b2016-02-27 04:32:09 +0000125382016-02-24 Jon Lee <jonlee@apple.com>
12539
12540 Update animation benchmark and tests
12541 https://bugs.webkit.org/show_bug.cgi?id=154673
12542
12543 Reviewed by Dean Jackson.
12544
12545 Update the ramp controller.
12546
12547 The controller refines the complexity interval to test across.
12548
12549 * Animometer/resources/statistics.js: Add functions that estimate cumulative distribution function.
12550 (Regression): For the flat regression, force the first segment to be at 60 fps.
12551 (valueAt): Add convenience function to return interpolated value based on the regression used.
12552 (_calculateRegression): Include the number of points included for both segments, and the piecewise
12553 errors.
12554 * Animometer/tests/resources/math.js: Make the Kalman estimator subclass Experiment, and allow it
12555 to be reset.
12556
12557 * Animometer/tests/resources/main.js: Initialize the tier such that it starts at 10^0 = 1.
12558 Increase the number of ramps. Maintain three FPS thresholds-- the frame rate of interest, a limit
12559 on the lowest FPS we care to go for later interpolation, and a minimum FPS threshold we want to
12560 aim for each ramp. Also keep three estimators: a running average of the change point, a minimum
12561 boundary for each ramp, and an estimator for all the frames within an interval. The first two
12562 are used to determine the parameters of the next ramp, and the latter allows us to refine the
12563 parameters.
12564 (update): During the tier phase, it is possible that the highest complexity possible for a test
12565 won't stress the system enough to trigger stopping the tier phase and transitioning to the ramps.
12566 If the complexity doesn't change when going to the next tier, we've maxed the test out, and move
12567 on. When the tier phase completed, turn off Controller.frameLengthEstimator, which estimates the
12568 FPS at each tier.
12569 (tune): At each interval, look at the confidence distribution of being on the 60 FPS side or the
12570 slow side. If the slowest FPS we achieve at the ramp's maximum complexity is not at least
12571 _fpsRampSlowThreshold, then increase the maximum complexity. If we ever achieve 60 FPS, increase
12572 the ramp's minimum complexity to that level. If, at an even lower complexity, a glitch causes the
12573 FPS to drop, we reset the minimum complexity.
12574
12575 Have the bootstrap calculation occur between tests. Clean up harness.
12576
12577 * Animometer/resources/debug-runner/animometer.js: Run bootstrap after a test has
12578 completed to avoid doing all of it at the end before showing the results. Clean up
12579 parameters being passed around.
12580 * Animometer/resources/debug-runner/tests.js:
12581 (text):
12582 * Animometer/resources/runner/animometer.js:
12583 (this._processData.calculateScore): Save the results to the same object holding the data.
12584 (this._processData._processData): In the case where a file is dragged, calculate the score
12585 serially. Grab the results object and move it to the results variable and remove it from
12586 the data object. This avoids serializing the results into the JSON.
12587 (this._processData.findRegression): Include the samples used for bootstrapping. Reduce the
12588 resample size to shorten the wait.
12589 * Animometer/resources/runner/benchmark-runner.js:
12590 * Animometer/resources/statistics.js:
12591 (bootstrap): Update how bootstrapData is sorted. In some regression results the mix of
12592 floats and integers causes an alphabetical sort to occur.
12593 * Animometer/resources/strings.js:
12594
12595 Add meta charset so that encodings between harness and test match.
12596
12597 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
12598 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
12599 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
12600 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
12601 * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
12602 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
12603 * Animometer/tests/master/canvas-stage.html:
12604 * Animometer/tests/master/focus.html:
12605 * Animometer/tests/master/image-data.html:
12606 * Animometer/tests/master/multiply.html:
12607 * Animometer/tests/master/particles.html:
12608 * Animometer/tests/misc/canvas-electrons.html:
12609 * Animometer/tests/misc/canvas-stars.html:
12610 * Animometer/tests/misc/compositing-transforms.html:
12611 * Animometer/tests/simple/simple-canvas-paths.html:
12612 * Animometer/tests/simple/tiled-canvas-image.html:
12613 * Animometer/tests/template/template-canvas.html:
12614 * Animometer/tests/template/template-css.html:
12615 * Animometer/tests/template/template-svg.html:
12616 * Animometer/tests/text/layering-text.html:
12617 * Animometer/tests/text/text-boxes.html:
12618
12619 Update test harness reporting.
12620
12621 * Animometer/developer.html: Add missing meta charset.
12622 * Animometer/index.html: Remove unnecessary utf-8 declaration.
12623 * Animometer/resources/debug-runner/animometer.css: Add convenience classes for
12624 formatting the results table.
12625 * Animometer/resources/debug-runner/animometer.js: Adjust which stats are shown.
12626 * Animometer/resources/debug-runner/tests.js: Display bootstrapping statistics.
12627 * Animometer/resources/strings.js: Move strings not used by the release harness.
12628
12629 Switch to a pseudo-random number generator.
12630
12631 * Animometer/resources/statistics.js: Add a Pseudo class, with a simple
12632 pseudo-random number generator.
12633 (_calculateRegression): Reset the generator before running bootstrap.
12634 (bootstrap): Deleted.
12635
12636 Replace Math.random with Pseudo.random.
12637 * Animometer/tests/master/resources/canvas-tests.js:
12638 * Animometer/tests/master/resources/focus.js:
12639 * Animometer/tests/master/resources/particles.js:
12640 * Animometer/tests/resources/main.js:
12641
12642 Use bootstrapping to get confidence interval in the breakpoint.
12643
12644 For the ramp controller, calculate the piecewise regression, and then use
12645 bootstrapping in order to find the 95% confidence interval. Use the raw data.
12646
12647 * Animometer/developer.html: Default to the complexity graph. Add a legend
12648 checkbox to toggle visibility of the bootstrap score and histogram.
12649 * Animometer/resources/debug-runner/animometer.css: Make some more space to show
12650 the old raw and average scores in the legend. Add new styles for the data.
12651 * Animometer/resources/debug-runner/graph.js:
12652 (_addRegressionLine): Allow passing an array for the variance bar tied to the
12653 regression line. Now |stdev| is |range|.
12654 (createComplexityGraph): Add bootstrap median, and overlay a histogram of
12655 the bootstrap samples. Switch raw samples from circles to X's.
12656 (onComplexityGraphOptionsChanged): Allow toggling of the bootstrap data.
12657 (onGraphTypeChanged): Move the regressions for the raw and average samples to the
12658 legend. In the subtitle use the bootstrap median, and include the 95% confidence
12659 interval.
12660 * Animometer/resources/runner/animometer.js:
12661 (this._processData.findRegression): Factor out the code that determines which
12662 samples to include when calculating the piecewise regression. For series that have
12663 many samples, or a wider range of recorded complexities, throw away the 2.5%
12664 lowest and highest samples before calculating the regression. Keep all samples
12665 if the number of samples to regress is small or the range of complexities is
12666 narrow.
12667 (this._processData._calculateScore): Factor out regression calculation to
12668 findRegression(). Bootstrap the change point of the regression. The score is the
12669 median.
12670 * Animometer/resources/statistics.js:
12671 (_calculateRegression): Correct an issue in the calculation of the regression, where
12672 the denominator can be 0.
12673 (bootstrap): Template for bootstrapping. Create a bootstrap sample array, Create
12674 re-samples by random selection with replacement. Return the 95% confidence samples,
12675 the bootstrap median, mean, and the data itself.
12676 * Animometer/resources/strings.js: Add bootstrap.
12677 * Animometer/tests/resources/main.js:
12678 (processSamples): Don't prematurely cut the sample data.
12679
12680 Fix graph drawing.
12681
12682 * Animometer/resources/debug-runner/animometer.js: Add spacing in the JSON output.
12683 Multiple tests output a lot of JSON and can hang when selecting JSON with no whitespace.
12684 * Animometer/resources/debug-runner/animometer.css:
12685 (#complexity-graph .series.raw circle): Update the color.
12686 * Animometer/resources/debug-runner/graph.js: Use the FPS axis instead of the
12687 complexity axis, which can vary in domain. For determining the complexity domain,
12688 only use samples after samplingTimeOffset.
12689
12690 Allow dropping results JSON.
12691
12692 * Animometer/developer.html: Add a button.
12693 * Animometer/resources/debug-runner/animometer.css:
12694 * Animometer/resources/debug-runner/animometer.js: Read the data and go straight
12695 to the dashboard. With JSON output, write out only the options and the raw data.
12696
12697 Teach the harness to evaluate the samples and determine the test score.
12698
12699 This will allow us to update how the score is calculated separately from the samples recorded.
12700 This also prepares the harness to be able to accept JSON of prior runs.
12701
12702 * Animometer/resources/strings.js: Clean up and remove unneeded strings and reduce some of the
12703 hierarchy.
12704 * Animometer/resources/debug-runner/tests.js: Update to use the new strings.
12705
12706 * Animometer/tests/resources/main.js: Allow all controllers to show a complexity-FPS graph.
12707 (_processComplexitySamples): Factor out some of the sample processing done in the ramp
12708 controller for the benefit of the other controllers. |complexitySamples| contains a list of
12709 samples. Sort the samples by complexity. Optionally remove the top x% of samples.
12710 Group them, and calculate distribution of samples within the same complexity, and add those as
12711 new entries into |complexityAverageSamples|.
12712 (Controller.processSamples): Move the code responsible for determining the complexity and FPS
12713 scores out to ResultsDashboard. The structure of the data returned by the controller is:
12714
12715 {
12716 controller: [time-regression, time-regression, ...], // optional, data specific to controller
12717 marks: [...],
12718 samples: { // all of the sample data
12719 controller: [...],
12720 complexity: [...], // processed from controller samples
12721 complexityAverage: [...], // processed from complexity samples
12722 }
12723 }
12724
12725 (AdaptiveController.processSamples): Adding the target frame length is no longer necessary; we
12726 now pass the test options to the graph.
12727 (Regression): Move to statistics.js.
12728 * Animometer/resources/statistics.js: Move Regression to here. Add a check if the sampling range
12729 only contains one sample, since we cannot calculate a regression from one sample point.
12730
12731 Teach the test harness to evaluate the data.
12732 * Animometer/resources/runner/animometer.js:
12733 (ResultsDashboard): Store the options used to run the test and the computed results/score separately
12734 from the data. The results are stored as:
12735
12736 {
12737 score: /* geomean of iteration score */,
12738 iterationsResults: [
12739 {
12740 score: /* geomean of tests */,
12741 testsResults: {
12742 suiteName: {
12743 testName: {
12744 controller: {
12745 average:
12746 concern:
12747 stdev:
12748 percent:
12749 },
12750 frameLength: { ... },
12751 complexity: {
12752 complexity:
12753 stdev:
12754 segment1:
12755 segment2:
12756 },
12757 complexityAverage: { ... }
12758 },
12759 testName: { ... },
12760 },
12761 ... next suite ...
12762 }
12763 },
12764 { ...next iteration... }
12765 ]
12766 }
12767
12768 * Animometer/resources/debug-runner/animometer.js: Pass options around instead of relying
12769 on what was selected in the form. This will later allow for dropping previous results, and
12770 using those runs' options when calculating scores.
12771 (ResultsTable._addGraphButton): Simplify button action by using attached test data.
12772 * Animometer/resources/debug-runner/graph.js: Refactor to use the data.
12773
12774 Consolidate JS files, and move statistics out to a separate JS.
12775
12776 Preparation for having the Controller only handle recording and storage of the samples,
12777 and leave the evaluation of the test score out to the harness. Move Experiment to
12778 a new statistics.js, where Regression will also eventually go. Get rid of algorithm.js
12779 and move it to utilities.js since the Heap is used only for Experiments.
12780
12781 * Animometer/tests/resources/algorithm.js: Removed. Heap is in utilities.js.
12782 * Animometer/tests/resources/sampler.js: Removed. Experiment is in statistics.js,
12783 Sampler in main.js.
12784 * Animometer/tests/resources/main.js: Move Sampler here.
12785 * Animometer/resources/statistics.js: Added. Move Statistics and Experiment here.
12786 * Animometer/resources/extensions.js: Move Heap here. Attach static method to create
12787 a max or min heap to Heap, instead of a new Algorithm object.
12788
12789 Update JS files.
12790 * Animometer/developer.html:
12791 * Animometer/index.html:
12792 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
12793 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
12794 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
12795 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
12796 * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
12797 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
12798 * Animometer/tests/master/canvas-stage.html:
12799 * Animometer/tests/master/focus.html:
12800 * Animometer/tests/master/image-data.html:
12801 * Animometer/tests/master/multiply.html:
12802 * Animometer/tests/master/particles.html:
12803 * Animometer/tests/misc/canvas-electrons.html:
12804 * Animometer/tests/misc/canvas-stars.html:
12805 * Animometer/tests/misc/compositing-transforms.html:
12806 * Animometer/tests/simple/simple-canvas-paths.html:
12807 * Animometer/tests/simple/tiled-canvas-image.html:
12808 * Animometer/tests/template/template-canvas.html:
12809 * Animometer/tests/template/template-css.html:
12810 * Animometer/tests/template/template-svg.html:
12811 * Animometer/tests/text/layering-text.html:
12812 * Animometer/tests/text/text-boxes.html:
12813
12814 Fix the cursor in the graph analysis when the min
12815 complexity is not 0.
12816
12817 * Animometer/resources/debug-runner/graph.js:
12818 (_addRegression):
12819 (createComplexityGraph):
12820
ggaren@apple.com66d5c662016-02-26 17:58:58 +0000128212016-02-23 Geoffrey Garen <ggaren@apple.com>
12822
12823 Fix some issues in MallocBench
12824 https://bugs.webkit.org/show_bug.cgi?id=154600
12825
12826 Reviewed by Oliver Hunt.
12827
12828 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Make nimlang.ops
12829 a part of the build so that it copies to the right place for execution.
12830
12831 * MallocBench/MallocBench/Interpreter.cpp:
12832 (Interpreter::Interpreter): Don't try to open .ops files for writing
12833 because we're only going to read and we might need extra permissions to
12834 write.
12835
12836 (Interpreter::~Interpreter): Give more context when opening a file fails
12837 to help with debugging.
12838
12839 * MallocBench/MallocBench/stress.cpp:
12840 (benchmark_stress): Reduce iterations to complete in less than 10 seconds.
12841
msaboff@apple.comf304e452016-02-23 17:42:12 +0000128422016-02-23 Michael Saboff <msaboff@apple.com>
12843
12844 Unreviewed change to revert extraneous changes made part of change set 196955.
12845
12846 * MallocBench/MallocBench/Interpreter.cpp:
12847 (Interpreter::doMallocOp):
12848 (Interpreter::Thread::switchTo):
12849 (writeData): Deleted.
12850
msaboff@apple.com6a075dd2016-02-22 22:02:24 +0000128512016-02-19 Michael Saboff <msaboff@apple.com>
12852
12853 MallocBench: Added recording for nimlang website, new recording details and added new options
12854 https://bugs.webkit.org/show_bug.cgi?id=154485
12855
12856 Reviewed by Geoff Garen.
12857
12858 Added new capabilities to MallocBench. These include:
12859 Added a recording of http://nim-lang.org/docs/lib.html.
12860 Added thread id to the recording and the ability to playback switching threads in MallocBench
jonlee@apple.com164a15b2016-02-27 04:32:09 +000012861 Added aligned allocations to recordings and the ability to playback
msaboff@apple.com6a075dd2016-02-22 22:02:24 +000012862 Added --use-thread-id option to honor recorded thread ids
12863 Added --detailed-report to output remaining allocations by size after playback
12864 Added --no-warmup to not run the warm up iteration
12865
12866 Changed the way that options are passed down to the benchmarks. Instead of passing individual
12867 boolean or numeric option values, just pass a reference the CommandLine itself. Each benchmark
12868 can access the options that are appropriate. The Benchmark class also uses the options for
12869 is parallel, run counts and warm up.
12870
12871 Added thread id and aligned malloc to the Op by noticing that structure padding and Opcode allowed
12872 for another 32 bits of data. Breaking that unused 32 bits into a 16 bit thread id value and a
12873 16 bit log base 2 of the alignment for aligned malloc allowed for existing recordings to playback
12874 without any incompatibilities.
12875
12876 Threaded operation is simulated by creating threads as needed. As long as the next Op's thread id
12877 is the same as the last, operation continues as normal. When the next Op has a different thread id,
12878 we switch to that thread using the shared Op stream to continue playing back. There is a mutex to
12879 assure that only one thread is really running at a time and a condition variable used to wait
12880 that the current thread id matches each block thread's thread id. This doesn't simulate true
12881 concurrent threading, but is instead plays back Ops recorded for multiple thread faithfully.
12882
12883 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
12884 * MallocBench/MallocBench/Benchmark.cpp:
12885 (deallocateHeap):
12886 (Benchmark::Benchmark):
12887 (Benchmark::runOnce):
12888 (Benchmark::run):
12889 * MallocBench/MallocBench/Benchmark.h:
12890 (Benchmark::isValid):
12891 * MallocBench/MallocBench/CommandLine.cpp:
12892 (CommandLine::printUsage):
12893 * MallocBench/MallocBench/CommandLine.h:
12894 (CommandLine::isValid):
12895 (CommandLine::benchmarkName):
12896 (CommandLine::isParallel):
12897 (CommandLine::useThreadID):
12898 (CommandLine::detailedReport):
12899 (CommandLine::warmUp):
12900 (CommandLine::heapSize):
12901 (CommandLine::runs):
12902 * MallocBench/MallocBench/Interpreter.cpp:
12903 (Interpreter::Interpreter):
12904 (Interpreter::run):
12905 (Interpreter::readOps):
12906 (Interpreter::doOnSameThread):
12907 (Interpreter::switchToThread):
12908 (Interpreter::detailedReport):
12909 (compute2toPower):
12910 (writeData):
12911 (Interpreter::doMallocOp):
12912 (Interpreter::Thread::Thread):
12913 (Interpreter::Thread::stop):
12914 (Interpreter::Thread::~Thread):
12915 (Interpreter::Thread::runThread):
12916 (Interpreter::Thread::waitToRun):
12917 (Interpreter::Thread::switchTo):
12918 * MallocBench/MallocBench/Interpreter.h:
12919 (Interpreter::Thread::isMainThread):
12920 * MallocBench/MallocBench/alloc_free.cpp: Added.
12921 (benchmark_alloc_free):
12922 * MallocBench/MallocBench/alloc_free.h: Added.
12923 * MallocBench/MallocBench/balloon.cpp:
12924 (benchmark_balloon):
12925 * MallocBench/MallocBench/balloon.h:
12926 * MallocBench/MallocBench/big.cpp:
12927 (benchmark_big):
12928 * MallocBench/MallocBench/big.h:
12929 * MallocBench/MallocBench/churn.cpp:
12930 (benchmark_churn):
12931 * MallocBench/MallocBench/churn.h:
12932 * MallocBench/MallocBench/facebook.cpp:
12933 (benchmark_facebook):
12934 * MallocBench/MallocBench/facebook.h:
12935 * MallocBench/MallocBench/flickr.cpp:
12936 (benchmark_flickr):
12937 (benchmark_flickr_memory_warning):
12938 * MallocBench/MallocBench/flickr.h:
12939 * MallocBench/MallocBench/fragment.cpp:
12940 (validate):
12941 (benchmark_fragment):
12942 (benchmark_fragment_iterate):
12943 * MallocBench/MallocBench/fragment.h:
12944 * MallocBench/MallocBench/list.cpp:
12945 (benchmark_list_allocate):
12946 (benchmark_list_traverse):
12947 * MallocBench/MallocBench/list.h:
12948 * MallocBench/MallocBench/main.cpp:
12949 (main):
12950 * MallocBench/MallocBench/medium.cpp:
12951 (benchmark_medium):
12952 * MallocBench/MallocBench/medium.h:
12953 * MallocBench/MallocBench/memalign.cpp:
12954 (test):
12955 (benchmark_memalign):
12956 * MallocBench/MallocBench/memalign.h:
12957 * MallocBench/MallocBench/message.cpp:
12958 (benchmark_message_one):
12959 (benchmark_message_many):
12960 * MallocBench/MallocBench/message.h:
12961 * MallocBench/MallocBench/nimlang.cpp: Added.
12962 (benchmark_nimlang):
12963 * MallocBench/MallocBench/nimlang.h: Added.
12964 * MallocBench/MallocBench/nimlang.ops: Added.
12965 * MallocBench/MallocBench/realloc.cpp:
12966 (benchmark_realloc):
12967 * MallocBench/MallocBench/realloc.h:
12968 * MallocBench/MallocBench/reddit.cpp:
12969 (benchmark_reddit):
12970 (benchmark_reddit_memory_warning):
12971 * MallocBench/MallocBench/reddit.h:
12972 * MallocBench/MallocBench/stress.cpp:
12973 (deallocate):
12974 (benchmark_stress):
12975 * MallocBench/MallocBench/stress.h:
12976 * MallocBench/MallocBench/stress_aligned.cpp:
12977 (benchmark_stress_aligned):
12978 * MallocBench/MallocBench/stress_aligned.h:
12979 * MallocBench/MallocBench/theverge.cpp:
12980 (benchmark_theverge):
12981 (benchmark_theverge_memory_warning):
12982 * MallocBench/MallocBench/theverge.h:
12983 * MallocBench/MallocBench/tree.cpp:
12984 (benchmark_tree_allocate):
12985 (benchmark_tree_traverse):
12986 (benchmark_tree_churn):
12987 * MallocBench/MallocBench/tree.h:
12988 * MallocBench/run-malloc-benchmarks:
12989
jonlee@apple.com7d855e92016-02-11 08:11:35 +0000129902016-02-11 Jon Lee <jonlee@apple.com>
12991
12992 Fix a missing refactoring.
12993
12994 * Animometer/tests/master/resources/multiply.js:
12995 (animate): Move to Utilities.lerp.
12996 (_lerp): Deleted.
12997
jonlee@apple.com706bc1b2016-02-11 07:42:00 +0000129982016-02-10 Jon Lee <jonlee@apple.com>
12999
13000 Add new benchmark tests.
13001 https://bugs.webkit.org/show_bug.cgi?id=154063
13002
13003 Provisionally reviewed by Said Abou-Hallawa.
13004
13005 Add tests for get/put image data, filters, opacity, and css transforms.
13006
13007 * Animometer/resources/runner/benchmark-runner.js:
13008 (_runBenchmarkAndRecordResults): Update the body background color to match that of
13009 the stage.
13010 (this._runNextIteration): Clear the background color style for the results page.
13011 * Animometer/resources/runner/tests.js:
13012 * Animometer/tests/master/focus.html: Added.
13013 * Animometer/tests/master/image-data.html: Added.
13014 * Animometer/tests/master/multiply.html: Added.
13015 * Animometer/tests/master/resources/focus.js: Added.
13016 * Animometer/tests/master/resources/image-data.js: Added.
13017 * Animometer/tests/master/resources/multiply.js: Added.
13018 * Animometer/tests/master/resources/stage.css: Move common styles out.
13019 * Animometer/tests/resources/main.js: Update Stage.randomBool to use Math.random.
13020 Add Stage.randomSign for randomly setting a direction. Add the notion of the
13021 current timestamp of the test to Benchmark, since some animations cycle through
13022 colors and rely on an incremental counter like the time.
13023
said@apple.comf6562062016-02-10 20:45:01 +0000130242016-02-09 Said Abou-Hallawa <sabouhallawa@apple.com>
13025
13026 Add internal benchmark tests for CSS mix-blend-modes and filters
13027 https://bugs.webkit.org/show_bug.cgi?id=154058
13028
13029 Provisionally reviewed by Jon Lee.
13030
13031 * Animometer/resources/debug-runner/tests.js: Include the new tests in the
13032 "HTML suite" of the debug runner.
jonlee@apple.com706bc1b2016-02-11 07:42:00 +000013033
said@apple.comf6562062016-02-10 20:45:01 +000013034 * Animometer/resources/extensions.js:
13035 (Utilities.browserPrefix):
13036 (Utilities.setElementPrefixedProperty): Utility functions to allow setting
13037 prefixed style properties.
jonlee@apple.com706bc1b2016-02-11 07:42:00 +000013038
said@apple.comf6562062016-02-10 20:45:01 +000013039 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
13040 Set the mix-blend-mode and the filter to some random values if the options
13041 of the test requested that.
jonlee@apple.com706bc1b2016-02-11 07:42:00 +000013042
said@apple.comf6562062016-02-10 20:45:01 +000013043 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
13044 (parseShapeParameters): Parse the url options "blend" and "filter" and set
13045 the corresponding flags.
jonlee@apple.com706bc1b2016-02-11 07:42:00 +000013046
said@apple.comf6562062016-02-10 20:45:01 +000013047 * Animometer/tests/resources/main.js:
13048 (randomStyleMixBlendMode):
13049 (randomStyleFilter): Return random mix-blend-mode and filter.
13050
jonlee@apple.com7603a0b2016-02-09 05:26:20 +0000130512016-02-08 Jon Lee <jonlee@apple.com>
13052
jonlee@apple.combae2ad12016-02-10 19:22:08 +000013053 Add a ramp controller
13054 https://bugs.webkit.org/show_bug.cgi?id=154028
13055
13056 Provisionally reviewed by Said Abou-Hallawa.
13057
13058 Enhance the graph to include a complexity-fps graph, in addition
13059 to the time graph.
13060
13061 * Animometer/developer.html: Add a ramp option.
13062 * Animometer/resources/debug-runner/animometer.css: Update the style.
13063 * Animometer/resources/strings.js: Flatten the Strings.text constants.
13064 * Animometer/resources/debug-runner/animometer.js:
13065 (ResultsTable.call._addGraphButton): Refactor.
13066 (ResultsTable.call._addTest): Add regression data.
13067 (benchmarkController): Add a form that allows the user to switch between the two forms,
13068 Add a form that allows the user to toggle different data. Hide certain header columns
13069 depending on the selected controller.
13070 * Animometer/resources/debug-runner/graph.js: Add the complexity regressions.
13071 * Animometer/resources/debug-runner/tests.js: Add headers for the ramp results.
13072 * Animometer/resources/runner/animometer.js:
13073 (ResultsTable): If a header is disabled don't include them in _flattenedHeaders.
13074 * Animometer/tests/resources/main.js:
13075 (Controller): Allow options to specify the capacity for sample arrays.
13076 (Regression): A piecewise regression that tries to fit a slope and a flat profile.
13077 (_calculateRegression): Options can fix the slope and bias when calculating the minimal
13078 error. Sweep across the samples in time (which could be backward depending on the controller)
13079 and calculate the intersection point.
13080 (RampController): This controller assumes that the target frame rate is below
13081 58 FPS. It runs in two stages. The first stage quickly determines the order of
13082 magnitude of objects needed to stress the system by the setting the complexity
13083 to increasingly difficult tiers. Perform a series of ramps descending from a
13084 high-water mark of complexity. The complexity needed to reach the target frame
13085 length is done by performing a piecewise regression on each ramp, and track a
13086 running average of these values. For the next ramp, make that running average
13087 the center of the ramp. With a minimum complexity of 0, the high-water mark is
13088 twice that average. The score is based on the highest complexity that can
13089 reach 60 fps.
13090
130912016-02-08 Jon Lee <jonlee@apple.com>
13092
jonlee@apple.com7603a0b2016-02-09 05:26:20 +000013093 Address Said's comments on the benchmark, and do some clean up.
13094
13095 * Animometer/developer.html:
13096 * Animometer/resources/debug-runner/animometer.css: Add styles for averages.
13097 * Animometer/resources/debug-runner/animometer.js: Use the right
13098 Strings constants.
13099 * Animometer/resources/debug-runner/graph.js:
13100 (_addRegressionLine): Add missing code to draw the line and standard
13101 deviation highlight.
13102 (onGraphTypeChanged): Remove unneeded variables
13103 (onTimeGraphOptionsChanged):
13104 * Animometer/resources/runner/benchmark-runner.js:
13105 (_runBenchmarkAndRecordResults): Rename samplers to suiteResults and
13106 _suitesSamplers to _suitesResults.
13107 * Animometer/tests/resources/main.js:
13108 (results): Call processSamples().
13109 (update): Change sampling timestamp comparison.
13110 (_animateLoop): Move shouldStop call to before the update.
13111 * Animometer/tests/resources/sampler.js:
13112 (process): Rename to processSamples().
13113
jonlee@apple.comfc13e232016-02-09 03:25:39 +0000131142016-02-07 Jon Lee <jonlee@apple.com>
13115
jonlee@apple.com59100a42016-02-09 03:30:52 +000013116 Teach Controller to measure intervals, and turn off the frame length estimator.
13117
13118 * Animometer/tests/resources/main.js: Default interval length is 100 ms.
13119 (start): Set the first interval.
13120 (_measureAndResetInterval): Reports the average frame length of the interval that just
13121 completed, and sets up the next interval.
13122 (update): If there is no length, then just use the estimator per frame, otherwise the
13123 estimator measures per interval. Add a didFinishInterval for subclasses to process
13124 prior to recording the sample. Update tune() to include whether an interval had
13125 finished.
13126 (StepController): Step controllers don't measure on an interval basis.
13127
131282016-02-07 Jon Lee <jonlee@apple.com>
13129
jonlee@apple.com8d075592016-02-09 03:30:49 +000013130 Minor refactoring. Rename Controller._estimator to Controller._frameLengthEstimator
13131 and switch the parameters for start(), update(), and tune(), so that the timestamp
13132 is first and stage is second.
13133
13134 * Animometer/tests/resources/main.js:
13135
131362016-02-07 Jon Lee <jonlee@apple.com>
13137
jonlee@apple.come5847b72016-02-09 03:30:47 +000013138 Move ResultsTable functionality not needed for release tests out.
13139 Move reporting of score and mean to selection of the time-based graph.
13140
13141 * Animometer/developer.html: Rename graph-options to time-graph-options.
13142 * Animometer/resources/debug-runner/animometer.js:
13143 (DeveloperResultsTable): Moved from runner/animometer.js. Switch from mean
13144 values to "average" objects which can hold stdev. Move graph button and
13145 calculation of noisy measurements here. Sophisticated header processing
13146 is not needed in release suite.
13147 (populateTable): Use DeveloperResultsTable.
13148 * Animometer/resources/debug-runner/graph.js: Pull time graph creation to
13149 its own function, and add a new onGraphTypeChanged handler in preparation
13150 of a complexity graph to be added later.
13151 * Animometer/resources/runner/animometer.js:
13152 (ResultsTable): Simplify to just handle test names and scores.
13153
131542016-02-07 Jon Lee <jonlee@apple.com>
13155
jonlee@apple.com89903bc2016-02-09 03:30:44 +000013156 Tests: reuse objects already made.
13157
13158 Avoid thrash of object creation and removal by maintaining an index that
13159 moves along the array as the adjust values change. If the tune value
13160 requires more objects than the maximum size of the object array, then create
13161 new objects. This means that the object array size never decreases.
13162
13163 * Animometer/tests/master/resources/canvas-stage.js: Maintain a separate
13164 offsetIndex. For these tests, we want to avoid drawing the oldest objects,
13165 so the scene will draw the object at offsetIndex to the end of the array.
13166 (tune): Reverse the logic since "removal" of objects is much simpler and
13167 involves simply changing the offsetIndex.
13168 (animate): Update the for loop to draw from offsetIndex to the end.
13169 (complexity): Update the definition.
13170 * Animometer/tests/master/resources/canvas-tests.js: Maintain a separate
13171 offsetIndex. For these tests, we want to avoid drawing the newest objects,
13172 so the scene will draw the object at index 0 to the object at offsetIndex.
13173 (SimpleCanvasStage.animate): Fly-by removal of local stage variable,
13174 which is unneeded. Update the for loop to draw from offsetIndex to the end.
13175 * Animometer/tests/simple/resources/simple-canvas-paths.js:
13176 (SimpleCanvasStage.animate): Update the for loop to draw from 0 to
13177 offsetIndex.
13178 * Animometer/tests/simple/resources/simple-canvas.js:
13179 (tune): Update logic. Here, offsetIndex represents the boundary of the last
13180 index to render.
13181 (animate): Update the for loop to draw from 0 to offsetIndex.
13182 (complexity): Update the definition.
13183
131842016-02-07 Jon Lee <jonlee@apple.com>
13185
jonlee@apple.combf3569e2016-02-09 03:30:42 +000013186 Tests: refactor and update styles.
13187
13188 * Animometer/tests/resources/main.js: Add helper methods that return
13189 a color that hue rotates based on the date, and a counter value that
13190 increases based on the date. Fix randomInt() to not bias against the min and
13191 max values.
13192
13193 * Animometer/tests/master/resources/canvas-tests.js: Use new helper methods.
13194 * Animometer/tests/master/resources/dom-particles.js: Ditto.
13195 * Animometer/tests/master/resources/particles.js: Ditto.
13196 * Animometer/tests/simple/resources/simple-canvas-paths.js: Refactor to
13197 use a rotating color instead of a random color. The fast switching of color
13198 is too vivid to watch.
13199
13200 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
13201 (BouncingSvgParticlesStage.call.createGradient): Fix the gradient so
13202 that the last stop is located at the end.
13203
132042016-02-07 Jon Lee <jonlee@apple.com>
13205
jonlee@apple.com2512c5d2016-02-09 03:30:38 +000013206 Refactor tune() to not return the complexity of the scene.
13207
13208 We have stage.complexity() now, so returning the complexity through tune
13209 is unnecessary.
13210
13211 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
13212 * Animometer/tests/master/resources/canvas-stage.js:
13213 * Animometer/tests/master/resources/particles.js:
13214 * Animometer/tests/misc/resources/canvas-electrons.js:
13215 * Animometer/tests/misc/resources/canvas-stars.js:
13216 * Animometer/tests/resources/main.js:
13217 * Animometer/tests/simple/resources/simple-canvas.js:
13218 * Animometer/tests/simple/resources/tiled-canvas-image.js:
13219 * Animometer/tests/template/resources/template-canvas.js:
13220 * Animometer/tests/template/resources/template-css.js:
13221 * Animometer/tests/template/resources/template-svg.js:
13222 * Animometer/tests/text/resources/layering-text.js:
13223
132242016-02-07 Jon Lee <jonlee@apple.com>
13225
jonlee@apple.com2e3f9f12016-02-09 03:30:32 +000013226 Make the fixed controller a step controller instead. Halfway through the test
13227 it will bump up the complexity 4-fold. Calculate the step timestamp using options
13228 instead of a separate parameter to the Controller constructor.
13229
13230 * Animometer/developer.html: Change value to "step"
13231 * Animometer/resources/debug-runner/animometer.js:
13232 (window.suitesManager.updateEditsElementsState): Show number inputs when set to "step".
13233 * Animometer/tests/resources/main.js:
13234 (update): Provide a hook for subclasses to tune.
13235 (StepController): Maintain a flag determining whether we've stepped, and the time
13236 we should step.
13237 (Benchmark): Use the new StepController.
13238
132392016-02-07 Jon Lee <jonlee@apple.com>
13240
jonlee@apple.com51e4a6a2016-02-09 03:30:29 +000013241 Adjust the FPS graph scale.
13242
13243 Instead of making the FPS graph linearly scale, scale it based on the frame length,
13244 but show the data in terms of FPS. Because it is inversely proportional, and most
13245 of the data never gets below 20, concentrate the axis from 20-60 FPS, since otherwise
13246 over half of the available graph space ends up blank.
13247
13248 This means we should convert all of the FPS data to frame length data.
13249
13250 * Animometer/resources/debug-runner/graph.js: Update the domain to be based on
13251 frame length in milliseconds instead of FPS. Update the cursor to consider all of the
13252 values being shown, and then pick the min and max values to represent the length of the
13253 cursor.
13254 * Animometer/resources/runner/animometer.js:
13255 * Animometer/resources/strings.js:
13256 * Animometer/tests/resources/main.js:
13257 (processSamples): Add the ability to only sample a range of the data instead of everything
13258 after an offset index. Update sampler to record the frame lengths instead of the frame
13259 rate.
13260
132612016-02-07 Jon Lee <jonlee@apple.com>
13262
jonlee@apple.com5d6969e2016-02-09 03:30:26 +000013263 Add option to use different methods for retrieving a timestamp.
13264
13265 * Animometer/developer.html: Add performance.now and Date.now options.
13266 * Animometer/resources/runner/animometer.js: Default to performance.now.
13267 (window.benchmarkController.startBenchmark):
13268 * Animometer/tests/resources/main.js: Tie the desired method to _getTimestamp.
13269 (run): Use _getTimestamp.
13270 (_animateLoop): Ditto.
13271
132722016-02-07 Jon Lee <jonlee@apple.com>
13273
jonlee@apple.comaaf479e2016-02-09 03:30:23 +000013274 Allow adding any number of markers to the graph. The markers can be labeled
13275 and contain timestamp and sample index data. Make it a part of the controller
13276 rather than keeping it in the sampler.
13277
13278 * Animometer/resources/debug-runner/animometer.css: Add styles for markers
13279 * Animometer/resources/debug-runner/graph.js: Create the markers and add
13280 text labels.
13281 * Animometer/resources/runner/animometer.js: Assume the samplingTimeOffset
13282 is just one of the marks provided.
13283 * Animometer/resources/strings.js: Add Strings.json.marks.
13284 * Animometer/tests/resources/main.js:
13285 (Controller): Keep marks here. They are keyed by the marker name, so no two
13286 markers should have the same name.
13287 (recordFirstSample): Refactor to use mark.
13288 (mark): Allows for arbitrary data if needed later. The timestamp maintained
13289 is relative to the absolute start timestamp.
13290 (containsMark): Checks whether a mark with a specific comment exists.
13291 (processSamples): Removes the _startTimestamp offset from the marks before
13292 setting it in results.
13293 * Animometer/tests/resources/sampler.js: Remove marks.
13294
132952016-02-07 Jon Lee <jonlee@apple.com>
13296
jonlee@apple.comd5713812016-02-09 03:30:18 +000013297 Get rid of options member variable in Benchmark.
13298
13299 Options are only needed when initializing the stage or benchmark, so there's no
13300 need to also keep a reference to it.
13301
13302 * Animometer/tests/resources/main.js: Get rid of options variable in Benchmark.
13303 Pass options to Controllers and Stages.
13304 (Controller.Utilities.createClass):
13305 (Benchmark.Utilities.createClass):
13306 (get options): Deleted.
13307
13308 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
13309 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
13310 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
13311 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
13312 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
13313 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
13314 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
13315 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
13316 * Animometer/tests/master/resources/canvas-stage.js:
13317 * Animometer/tests/master/resources/canvas-tests.js:
13318 * Animometer/tests/master/resources/particles.js:
13319 * Animometer/tests/misc/resources/canvas-electrons.js:
13320 * Animometer/tests/misc/resources/canvas-stars.js:
13321 * Animometer/tests/misc/resources/compositing-transforms.js:
13322 * Animometer/tests/simple/resources/simple-canvas-paths.js:
13323 * Animometer/tests/simple/resources/tiled-canvas-image.js:
13324 * Animometer/tests/template/resources/template-canvas.js:
13325 * Animometer/tests/template/resources/template-css.js:
13326 * Animometer/tests/template/resources/template-svg.js:
13327 * Animometer/tests/text/resources/layering-text.js:
13328
133292016-02-07 Jon Lee <jonlee@apple.com>
13330
jonlee@apple.comfc13e232016-02-09 03:25:39 +000013331 Update how the benchmark is run
13332 https://bugs.webkit.org/show_bug.cgi?id=153960
13333
13334 Provisionally reviewed by Said Abou-Hallawa.
13335
13336 Introduce the notion of a Controller. It is responsible for recording, updating,
13337 and processing the statistics and complexity of the benchmark. This allows
13338 plugging in different Controllers.
13339
13340 This strips most of the functionality from Animator and BenchmarkState, so fold
13341 what's left into Benchmark. Now, Benchmarks only own a stage and a controller, but
13342 are responsible for driving the animation loop.
13343
13344 Rewrite Animator._shouldRequestAnotherFrame into two different Controllers. One
13345 maintains a fixed complexity, and the other adapts the complexity to meet a
13346 fixed FPS.
13347
13348 Fix the Kalman estimator to be modeled on a scalar variable with no model.
13349
13350 * Animometer/tests/resources/main.js: Remove BenchmarkState and Animator, and
13351 replace it with a Controller. Add a FixedController and refactor the previous controller
13352 to an AdaptiveController.
13353
13354 (Controller): Controllers own the estimator and the sampler. When a new frame is
13355 displayed, the animation loop calls update(). The estimator and sampler record
13356 stats, then tune. Samplers can track multiple series of data. The basic controller
13357 tracks timestamp, complexity, and estimated frame rate.
13358 The Kalman estimation is based on the frame length rather than the frame
13359 rate. Because FPS is inverse proportional to frame length, in the case where the measured
13360 frame length is very small, the FPS ends up being a wildly large number (in the order of
13361 600-1000 "FPS"), and it pulls the estimator up drastically enough that it takes a while
13362 for it to settle back down. Using frame length reduces the impact of these spikes.
13363 Converging the estimation takes enough time to avoid initializing it immediately
13364 when the benchmark starts. Instead, the benchmark runs for a brief period of time (100ms)
13365 before running it in earnest. Allow controllers an opportunity to set the complexity
13366 before starting recording.
13367 When the benchmark is complete, the controller has an opportunity to process
13368 the samples. The default implementation calculates the raw FPS based on the time
13369 difference of the samples, and calculates the complexity score. This is moved from
13370 Benchmark.processSamples.
13371
13372 (Controller): Initialize timestamps. These are at first relative to the start of the
13373 benchmark, but are offset by the absolute start time during start(). By default maintain
13374 3 data series, but subclasses can override.
13375 (start): Calls recordFirstSample() for subclasses to override if needed.
13376 (recordFirstSample): For basic controller, start sampling at the beginning.
13377 (update): Update the frame length estimator and sample.
13378 (shouldStop): Checks that the time is before _endTimestamp.
13379 (results): Returns the processed samples.
13380 (processSamples): Iterate through the sample data and collate them. Include scores.
13381
13382 (FixedComplexityController): Controller that tunes the stage to the desired complexity
13383 prior to starting, and keeps it at that complexity.
13384
13385 (AdaptiveController): Have the estimator estimate the interval frame rate instead of the
13386 raw frame rate.
13387 The previous version of this controller ignored the frame that came after the
13388 adjustment. The raw FPS show that whatever noise the scene change adds is negligible
13389 compared to the noise of the system overall. Stop ignoring that frame and include all
13390 frames in the measurements.
13391
13392 (Benchmark): Remove dependency on animator, and instantiate a runner based on what is
13393 selected. Most of the loop's functionality is in Controller, so remove here.
13394 (Benchmark.run): Remove start() since it is only called from run(), and fold it in here.
13395 (Benchmark._animateLoop): Fold in from Animator.animateLoop. Let the benchmark run for
13396 a brief period before calling Controller.start().
13397
13398 * Animometer/tests/resources/math.js: Fix the Kalman estimator. The filter estimates
13399 a scalar variable, and makes basic assumptions regarding the model. As a result
13400 none of the linear algebra classes are needed, so remove Matrix, Vector3, and Matrix3.
13401 (SimpleKalmanEstimator): Calculate the gain based on the provided process and
13402 measurement errors.
13403 (KalmanEstimator): Deleted.
13404 (IdentityEstimator): Deleted.
13405 (PIDController): Refactor to use the Utilities.createClass() helper.
13406
13407 The Kalman filter algorithm is explained here http://greg.czerniak.info/guides/kalman1/.
13408 The state, represented by a scalar, is the estimated frame length. There is no user
13409 transition of the state, and the state is the same as the measurement. With this model,
13410 the estimation error converges, so calculate the gain ahead of time.
13411
13412 * Animometer/developer.html: Remove fixed-after-warmup since it is not useful.
13413 Replace the option to toggle the estimator, and make it possible to customize the
13414 estimator's error parameters. Show raw FPS by default, and remove interval FPS,
13415 which will be shown instead of the filtered raw FPS.
13416 * Animometer/resources/debug-runner/animometer.css: Put the header behind the graph.
13417 Remove #intervalFPS rules; move the color to #filteredFPS.
13418 * Animometer/resources/debug-runner/graph.js:
13419 (updateGraphData): Update the hr style to force the layout to be calculated
13420 correctly. Change the tick format to be in terms of seconds, since the timestamps
13421 are in milliseconds. Remove interval data.
13422 * Animometer/resources/runner/animometer.js:
13423 (window.benchmarkController.startBenchmark): Set Kalman parameters.
13424 * Animometer/resources/runner/benchmark-runner.js:
13425 (_runBenchmarkAndRecordResults): When a benchmark completes, expect it to return
13426 the final data, rather than passing a sampler from the controller. This avoids
13427 needing to expose the sampler variable in the benchmark.
13428 * Animometer/tests/resources/sampler.js:
13429 (process): Move the setting of the target frame rate to AdaptiveController.
13430
jonlee@apple.com192e02e2016-02-06 23:31:51 +0000134312016-02-06 Jon Lee <jonlee@apple.com>
13432
jonlee@apple.com69bfacd2016-02-07 00:45:43 +000013433 Code clean up: Move Rotater function closer to Stage static methods.
13434 The Rotater is used together with those methods; keep them close.
13435
13436 * Animometer/tests/resources/main.js:
13437
134382016-02-06 Jon Lee <jonlee@apple.com>
13439
jonlee@apple.com08283832016-02-07 00:39:20 +000013440 Update the JS includes due to ResultsTable move.
13441
13442 * Animometer/developer.html:
13443 * Animometer/index.html:
13444
134452016-02-06 Jon Lee <jonlee@apple.com>
13446
jonlee@apple.com96152f92016-02-07 00:34:31 +000013447 Move createElement and createSVGElement to Utilities.
13448
13449 * Animometer/resources/extensions.js:
13450 (Utilities.createElement): Added.
13451 (Utilities.createSVGElement): Added.
13452 (DocumentExtension.createElement): Deleted.
13453 (DocumentExtension.createSvgElement): Deleted.
13454
13455 * Animometer/resources/debug-runner/animometer.js:
13456 * Animometer/resources/runner/animometer.js:
13457 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
13458 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
13459 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
13460
134612016-02-06 Jon Lee <jonlee@apple.com>
13462
jonlee@apple.com67090172016-02-07 00:27:12 +000013463 Add a convenience function for creating a class.
13464
13465 The pattern for creating a class is common enough to add as a Utilities
13466 helper function. It also makes it easy to collapse class definitions when
13467 editing.
13468
13469 * Animometer/resources/debug-runner/animometer.js: Move ProgressBar definition,
13470 since it is only used here.
13471 * Animometer/resources/runner/animometer.js: Move ResultsDashboard and
13472 ResultsTable definition, since it is only used here.
13473 * Animometer/resources/extensions.js: Move Utilities definition to the top. Convert
13474 Point, Insets, SimplePromise.
13475 (ProgressBar): Moved to animometer.js.
13476 (ResultsDashboard): Moved to animometer.js.
13477 (ResultsTable): Moved to animometer.js.
13478 * Animometer/resources/runner/benchmark-runner.js: Convert BenchmarkRunnerState,
13479 BenchmarkRunner.
13480 * Animometer/tests/resources/main.js: Convert Rotater, Stage, Animator, Benchmark.
13481 * Animometer/tests/resources/sampler.js: Convert Experiment, Sampler.
13482
13483 Convert test primitives.
13484 * Animometer/tests/master/resources/canvas-tests.js: Convert CanvasLineSegment,
13485 CanvasArc, CanvasLinePoint.
13486 * Animometer/tests/simple/resources/simple-canvas-paths.js: Convert CanvasLineSegment,
13487 CanvasLinePoint, CanvasQuadraticSegment, CanvasQuadraticPoint, CanvasBezierSegment,
13488 CanvasBezierPoint, CanvasArcToSegment, CanvasArcToSegmentFill, CanvasArcSegment,
13489 CanvasArcSegmentFill, CanvasRect, CanvasRectFill.
13490 * Animometer/tests/simple/resources/tiled-canvas-image.js: Convert CanvasImageTile.
13491
134922016-02-06 Jon Lee <jonlee@apple.com>
13493
jonlee@apple.comd5baafd2016-02-06 23:36:27 +000013494 Minor improvements to debug harness.
13495
13496 * Animometer/developer.html:
13497 * Animometer/resources/debug-runner/animometer.css:
13498 (#suites): Put the complexity text boxes closer to the test names.
13499 (#options):
13500 (#rawFPS circle): Make the interval FPS appear as a separate data series, with a line.
13501 (#intervalFPS path):
13502 (#intervalFPS circle):
13503 * Animometer/resources/debug-runner/animometer.js:
13504 (window.optionsManager.updateLocalStorageFromUI): Convert number inputs from text.
13505 (window.suitesManager._onChangeTestCheckbox): Refactor to take a checkbox.
13506 (window.suitesManager._createTestElement): Enhance such that typing into the complexity
13507 input will automatically select that test for running.
13508 (window.suitesManager.updateLocalStorageFromJSON): Make the harness work for private
13509 browsing.
13510 * Animometer/resources/debug-runner/graph.js: Separate the intervalFPS data, and show
13511 more accuracy in timestamps.
13512
135132016-02-06 Jon Lee <jonlee@apple.com>
13514
jonlee@apple.com192e02e2016-02-06 23:31:51 +000013515 Refactor helper methods for getting random values for a stage.
13516
13517 Instead of requiring a Stage instance, just attach it to the Stage object.
13518
13519 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
13520 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
13521 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
13522 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
13523 * Animometer/tests/master/resources/canvas-tests.js:
13524 * Animometer/tests/master/resources/particles.js:
13525 * Animometer/tests/misc/resources/canvas-electrons.js:
13526 * Animometer/tests/misc/resources/canvas-stars.js:
13527 * Animometer/tests/misc/resources/compositing-transforms.js:
13528 * Animometer/tests/resources/main.js:
13529 * Animometer/tests/simple/resources/simple-canvas-paths.js:
13530
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +0000135312016-02-05 Said Abou-Hallawa <sabouhallawa@apple.com>
13532
13533 Add a new graphics test for CanvasRenderingContext2D functions: getImageData and putImageData
13534 https://bugs.webkit.org/show_bug.cgi?id=151716
13535
13536 Reviewed by Darin Adler.
13537
13538 The purpose of this test is to measure the performance of getImageData
13539 and putImageData functions. This test draws a background on the canvas
13540 and then gets some random tiles from this background and draw them in
13541 destinations different from their original sources.
jonlee@apple.com67090172016-02-07 00:27:12 +000013542
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +000013543 * Animometer/resources/debug-runner/tests.js: Adding the new test to the canvas simple tests suite.
jonlee@apple.com67090172016-02-07 00:27:12 +000013544
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +000013545 * Animometer/resources/extensions.js:
13546 (Array.prototype.shuffle): Shuffles the elements of an array.
jonlee@apple.com67090172016-02-07 00:27:12 +000013547
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +000013548 (Point.zero): Returns a new Point object whose x and y are equal zero.
13549 (Point.prototype.str): Used for debugging the Point object.
jonlee@apple.com67090172016-02-07 00:27:12 +000013550
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +000013551 * Animometer/tests/simple/resources/tiled-canvas-image.js: Added.
13552 (CanvasImageTile):
13553 (CanvasImageTile.prototype.getImageData):
13554 (CanvasImageTile.prototype.putImageData):
13555 (Stage.call.initialize):
13556 (Stage.call._createTiles):
13557 (Stage.call._nextTilePosition):
13558 (Stage.call.tune):
13559 (Stage.call._drawBackground):
13560 (Stage.call.animate):
13561 (Stage.call.complexity):
13562 (Stage.call):
13563 * Animometer/tests/simple/tiled-canvas-image.html: Added.
13564
jonlee@apple.com93f76e82016-01-08 04:28:12 +0000135652016-01-07 Jon Lee <jonlee@apple.com>
13566
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000013567 Fix new test.
13568
13569 * Animometer/resources/runner/tests.js: Wrong URL from an
13570 old patch.
13571 * Animometer/tests/master/particles.html:
13572 * Animometer/tests/master/resources/dom-particles.js:
13573 (Particle.call.reset): Figured out a simpler way to set up
13574 the particles.
13575 (this.move.reset): Deleted.
13576 (this.move._applyAttributes): Deleted.
13577 * Animometer/tests/master/resources/particles.js:
13578 (Particle): Call move() after reset().
13579
135802016-01-07 Jon Lee <jonlee@apple.com>
13581
jonlee@apple.com93f76e82016-01-08 04:28:12 +000013582 Update benchmark test suite
13583 https://bugs.webkit.org/show_bug.cgi?id=152679
13584
13585 Reviewed by Simon Fraser.
13586
13587 Add a new test. The test has a rotating background
13588 gradient, and does a better job physically simulating
13589 particles.
13590
13591 * Animometer/resources/extensions.js: Teach Point to take constants as well as other Points.
13592 (Point.prototype.length): Added.
13593 (Point.prototype.normalize): Added.
13594 * Animometer/resources/runner/tests.js: Add the test to the master suite.
13595 * Animometer/tests/master/particles.html: Added.
13596 * Animometer/tests/master/resources/particles.js: Added. Parent class for different kinds of particles.
13597 (Particle):
13598 (Particle.prototype.reset): If the particle starts slowing down in terms of its animation,
13599 reset it.
13600 (Particle.prototype.animate): Bounce off the walls elastically, and include gravity.
13601 (Particle.prototype.move): Subclasses should override.
13602 (ParticlesStage): Stage includes a rotating gradient background.
13603 * Animometer/tests/master/resources/dom-particles.js: Added. Creates a <div> and adds it to
13604 the stage.
13605 * Animometer/tests/resources/star.svg: Added.
13606
jonlee@apple.comc2ac0a92016-01-08 03:58:33 +0000136072016-01-03 Jon Lee <jonlee@apple.com>
13608
13609 Update benchmark test suite
13610 https://bugs.webkit.org/show_bug.cgi?id=152679
13611
13612 Reviewed by Simon Fraser.
13613
13614 Move algorithm.js and sampler.js to tests/ and benchmark-runner.js to runner/.
13615
13616 Needed by both harnesses.
13617 * Animometer/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/benchmark-runner.js.
13618 * Animometer/developer.html:
13619 * Animometer/index.html:
13620
13621 Needed only by the tests. Move to tests/. Statistics, in sampler.js, is used by ResultsDashboard, so move that
13622 into extensions.js.
13623 * Animometer/resources/extensions.js:
13624 * Animometer/tests/resources/algorithm.js: Renamed from PerformanceTests/Animometer/resources/algorithm.js.
13625 * Animometer/tests/resources/sampler.js: Renamed from PerformanceTests/Animometer/resources/sampler.js.
13626 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
13627 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
13628 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
13629 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
13630 * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
13631 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
13632 * Animometer/tests/master/canvas-stage.html:
13633 * Animometer/tests/misc/canvas-electrons.html:
13634 * Animometer/tests/misc/canvas-stars.html:
13635 * Animometer/tests/misc/compositing-transforms.html:
13636 * Animometer/tests/simple/simple-canvas-paths.html:
13637 * Animometer/tests/template/template-canvas.html:
13638 * Animometer/tests/template/template-css.html:
13639 * Animometer/tests/template/template-svg.html:
13640 * Animometer/tests/text/layering-text.html:
13641 * Animometer/tests/text/text-boxes.html:
13642
jonlee@apple.comf5cbdd92016-01-08 00:10:01 +0000136432016-01-07 Jon Lee <jonlee@apple.com>
13644
jonlee@apple.comec8f66f2016-01-08 03:54:36 +000013645 Update benchmark test suite
13646 https://bugs.webkit.org/show_bug.cgi?id=152679
13647
13648 Reviewed by Simon Fraser.
13649
13650 Fix tests for other browsers.
13651
13652 * Animometer/resources/extensions.js:
13653 (Point.elementClientSize): Some browsers return 0 for SVG clientWidth and clientHeight.
13654 Use getBoundingClientRect() instead.
13655 * Animometer/tests/misc/resources/canvas-electrons.js:
13656 (CanvasElectron.prototype._draw): Some browsers don't support ellipse.
13657
136582016-01-07 Jon Lee <jonlee@apple.com>
13659
jonlee@apple.comf5cbdd92016-01-08 00:10:01 +000013660 Add a waitUntilReady() step
13661 https://bugs.webkit.org/show_bug.cgi?id=152862
13662
13663 Reviewed by Simon Fraser.
13664
13665 Add a waitUntilReady() callback that lets the benchmark complete
13666 its setup before running the benchmark.
13667
13668 * Animometer/tests/resources/main.js:
13669 (Benchmark.prototype.run): First call waitUntilReady, which returns
13670 a promise. When the promise resolves, run everything that was in this
13671 function.
13672 (Benchmark.prototype.waitUntilReady): Default implementation returns
13673 a resolved promise.
13674 (Benchmark.prototype.resolveWhenFinished): Deleted.
13675 * Animometer/tests/template/resources/template-canvas.js:
13676 (new.TemplateCanvasStage.waitUntilReady): Example on how to override.
13677
jonlee@apple.com255da372016-01-04 02:36:57 +0000136782016-01-03 Jon Lee <jonlee@apple.com>
13679
13680 Update data reporting and analysis
13681 https://bugs.webkit.org/show_bug.cgi?id=152670
13682
13683 Reviewed by Simon Fraser.
13684
13685 Show new graph data. Provide controls to show different series data. Provide an
13686 interactive cursor that shows the data at a given sample.
13687
13688 * Animometer/developer.html: Add a nav section in #results. Each part of the graph
13689 has a checkbox for visual toggling, as well as companion spans to contain the data.
13690 The numbers will always be shown even if the SVG isn't.
13691 * Animometer/resources/debug-runner/animometer.css:
13692 (#suites): Adjust spacing when doing fixed complexity.
13693 (#test-graph nav): Place the nav in the upper right corner.
13694 (#test-graph-data > svg): Fix the FPS scale from 0-60. It makes the raw FPS goes past
13695 that scale. Allow it to show.
13696 (.target-fps): Add a dotted line for where the benchmark is supposed to settle for FPS.
13697 (#cursor line): The cursor contains a line and highlight circles for the data being shown.
13698 (#cursor circle):
13699 (#complexity path): This and rules afterward are named by series type.
13700 (#complexity circle):
13701 (#filteredFPS path):
13702 (#filteredFPS circle):
13703 (#rawFPS path):
13704 (#intervalFPS circle):
13705 (.left-samples): Deleted.
13706 (.right-samples): Deleted.
13707 * Animometer/resources/debug-runner/animometer.js:
13708 (initialize): Add a "changed" listener when the checkboxes change in the nav.
13709 (onBenchmarkOptionsChanged): Renamed.
13710 (showTestGraph): All graph data is passed in as graphData instead of as arguments.
13711 * Animometer/resources/debug-runner/graph.js: Extend BenchmarkController. When showing
13712 a new graph, call updateGraphData(). It creates all of the d3 graphs. onGraphOptionsChanged()
13713 toggles the data on and off.
13714 (updateGraphData): Add the axes. Add the average lines and markers for sample time and
13715 target FPS. Add the cursor group. Use helper function addData() to add the data. On top of
13716 everything add a transparent area which will catch all of the mouse events. When the mouse
13717 moves in the graph, find the closest data point, show the data in the nav area, and highlight
13718 the data points.
13719 (addData): Adds a line and circle for each data point. Also adds a highlight cursor with a
13720 size a little larger than the circle radius for the data points.
13721 (onGraphOptionsChanged): Called when data is visually toggled.
13722 (showOrHideNodes): Helper function to toggle the .hidden class.
13723 * Animometer/resources/extensions.js:
13724 (ResultsDashboard.prototype.get data): Get rid of the arguments for _processData.
13725 (ResultsTable.prototype._addGraphButton): Shove all of the graph data into a singular object.
13726
13727 Producing the JSON can take a while with all of the data. Make it on-demand with a
13728 button.
13729
13730 * Animometer/resources/debug-runner/animometer.js:
13731 (showResults): When showing the results, don't serialize the JSON data. Move that to...
13732 (showJSONResults): ...here. Remove the button.
13733
13734 * Animometer/developer.html: Add a button. The button will remove itself and populate
13735 the textarea with the JSON data.
13736 * Animometer/resources/debug-runner/animometer.css:
13737 (.hidden): Add a universal hidden class.
13738 (#results button.small-button): Promote the small-button styles to the whole results
13739 section for use in the JSON button.
13740 (#results button.small-button:active):
13741 (#results-data button.small-button): Deleted.
13742 (#results-data button.small-button:active): Deleted.
13743
13744 Refactor how Animator does its recording.
13745
13746 * Animometer/tests/resources/math.js: Create a new, simple estimator that just returns
13747 the same interval frame rate for adjustment.
13748 * Animometer/tests/resources/main.js:
13749 (Animator): Remove _dropFrameCount, and make variables more accurate described.
13750 (Animator.prototype.initialize): Use the identity estimator instead of using a bool.
13751 (Animator.prototype._intervalTimeDelta): Rename, only used internally.
13752 (Animator.prototype._shouldRequestAnotherFrame): Assume we drop one frame for adjustment
13753 of the scene. If we are within the number of frames to measure for the interval, just
13754 record the timestamp. Otherwise we are ready to evaluate and adjust the scene. Record
13755 the interval frame rate and the estimator's frame rate.
13756
13757 Avoid processing the data through the Experiment while the test is running. Reconfigure
13758 the sampler to just record the raw samples. After the test is done, run the samples through
13759 the Experiment to get the score.
13760
13761 * Animometer/resources/sampler.js:
13762 (Experiment): Fold _init() into the constructor since nobody else will call it. This is not
13763 needed until the test concludes, so remove startSampling(). Clients should just call sample().
13764 (Sampler): Pre-allocate arrays given the number of data points being recorded, and a capacity
13765 of how many samples will be used. The processor is a called when it's time to process the data
13766 since that is the client also telling the Sampler what to record.
13767 Introduce the notion of marks as well, which allows the client to mark when an
13768 event occurs. When we mark sample start, we can attach the timestamp there, instead of storing
13769 it separately.
13770 (Sampler.prototype.startSampling): Deleted. Clients should just call record().
13771 (Sampler.prototype.record): The data to record is passed in as variable arguments.
13772 (Sampler.prototype.mark): When adding a mark, a client needs to provide a unique string, and
13773 can provide extra data object for later retrieval.
13774 (Sampler.prototype.process): Renamed from toJSON. Trim the sampling arrays to what was used.
13775 Call the processor to process the samples.
13776 * Animometer/resources/debug-runner/benchmark-runner.js:
13777 (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Call process().
13778
13779 * Animometer/resources/strings.js: Add some new strings, remove the graph ones since they are
13780 not used.
13781 * Animometer/tests/resources/main.js:
13782 (Benchmark): Create a sampler with 4 series. The maximum number of points expected is the
13783 number of seconds multiplied by 60 fps. Benchmark, as a client of the Sampler, knows about all
13784 of the data being added to the Sampler. It is added through record(), and processed through
13785 processSamples().
13786 (Benchmark.prototype.update): Mark when we've passed warmup and are starting to sample. Include
13787 the timestamp in the custom data for the mark. This avoids the need to store is separately in
13788 the Sampler. Fold what was in record() here, since nothing else needs this functionality.
13789 record() now just relays the information to the sampler.
13790 (Benchmark.prototype.record): Called by Animator, which provides the data to the sampler.
13791 Animator's calls to this is part of a later patch. Requires each stage to return its complexity.
13792 (Benchmark.prototype.processSamples): If the sampling mark exists, add it to the results.
13793 Go through all of the samples. All samples contain a timestamp and complexity. We
13794 calculate "raw FPS" which is the time differential from the previous sample. At regular intervals
13795 the Kalman-filtered FPS and the interval average FPS are also recorded. We also create two
13796 experiments, to get the scores for the complexity and smoothed FPS, and add those samples to
13797 the experiments. Grab those scores and add them into results also.
13798
13799 Add complexity() to the tests for Benchmark.record().
13800 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
13801 * Animometer/tests/misc/resources/canvas-electrons.js:
13802 * Animometer/tests/misc/resources/canvas-stars.js:
13803 * Animometer/tests/text/resources/layering-text.js:
13804
jonlee@apple.com0b563e62016-01-03 23:02:56 +0000138052015-12-27 Jon Lee <jonlee@apple.com>
13806
13807 Simplify the test harness
13808 https://bugs.webkit.org/show_bug.cgi?id=152562
13809
13810 Reviewed by Simon Fraser.
13811
jonlee@apple.com33fb1d72016-01-03 23:05:41 +000013812 Update the simple canvas tests. For the paths, start from the center instead of the
13813 top-left corner. Instead of using a coordinate limit, use a canonized factor, and
13814 use that along both the x and y axes, so that more capable tests use more of the
13815 canvas.
13816
13817 * Animometer/tests/simple/resources/simple-canvas-paths.js:
13818 (CanvasLinePoint): Rewrite to use the coordinate maximum factor.
13819 (CanvasQuadraticPoint): Ditto.
13820 (CanvasBezierPoint): Ditto.
13821 * Animometer/tests/simple/resources/simple-canvas.js:
13822 (tune): Calculate a factor instead of a maximum coordinate.
13823
138242015-12-27 Jon Lee <jonlee@apple.com>
13825
13826 Simplify the test harness
13827 https://bugs.webkit.org/show_bug.cgi?id=152562
13828
13829 Reviewed by Simon Fraser.
13830
jonlee@apple.com0b563e62016-01-03 23:02:56 +000013831 All of the benchmarks use the default Animator(). Don't require new tests
13832 to pass a new instance, and instead just make one in the Benchmark constructor.
13833
13834 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
13835 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
13836 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
13837 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
13838 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
13839 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
13840 * Animometer/tests/master/resources/canvas-tests.js:
13841 * Animometer/tests/misc/resources/canvas-electrons.js:
13842 * Animometer/tests/misc/resources/canvas-stars.js:
13843 * Animometer/tests/misc/resources/compositing-transforms.js:
13844 * Animometer/tests/resources/main.js:
13845 * Animometer/tests/simple/resources/simple-canvas-paths.js:
13846 * Animometer/tests/template/resources/template-canvas.js:
13847 * Animometer/tests/template/resources/template-css.js:
13848 * Animometer/tests/template/resources/template-svg.js:
13849 * Animometer/tests/text/resources/layering-text.js:
13850 * Animometer/tests/text/resources/text-boxes.js:
13851
13852 Refactor the template.
13853
13854 * Animometer/tests/template/resources/template-canvas.js:
13855 * Animometer/tests/template/resources/template-css.js:
13856 * Animometer/tests/template/resources/template-svg.js:
13857 * Animometer/tests/template/template-canvas.html:
13858 * Animometer/tests/template/template-css.html:
13859 * Animometer/tests/template/template-svg.html:
13860
13861 Refactor the SVG suite.
13862
13863 * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Move scripts to the end.
13864 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Ditto.
13865
13866 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Remove extraneous includes
13867 to stage.js.
13868 * Animometer/tests/text/text-boxes.html: Ditto.
13869
13870 BouncingCanvasParticlesBenchmark is not necessary. Use Benchmark directly when subclassing.
13871 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Remove
13872 BouncingCanvasParticlesBenchmark.
13873 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Use Benchmark.
13874 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Ditto.
13875
13876 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Require the shape
13877 in the constructor instead of having subclasses set the private variable.
13878
13879 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Refactor.
13880 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
13881
13882 Refactor the HTML suite.
13883
13884 Move scripts to the end.
13885 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
13886 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
13887 * Animometer/tests/text/layering-text.html:
13888 * Animometer/tests/text/text-boxes.html:
13889
13890 Refactor to use the new variables.
13891 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
13892 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
13893 * Animometer/tests/text/resources/layering-text.js:
13894 * Animometer/tests/text/resources/text-boxes.js:
13895
13896 Refactor the bouncing canvas tests.
13897
13898 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Move scripts to the end.
13899 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Move scripts to the end.
13900
13901 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Promote a few
13902 properties to "public" since they are used by subclasses.
13903 (BouncingParticlesStage): Fix the constructor, which was missing "this". Make particles
13904 "public" for subclasses.
13905 (BouncingParticlesStage.initialize): Fix the max velocity, which was accidentally changed.
13906 * Animometer/tests/misc/resources/compositing-transforms.js: Refactor.
13907
13908 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
13909 BouncingCanvasParticlesAnimator is no longer needed.
13910 (BouncingCanvasParticle): Change constructor to take a shape as a parameter instead of
13911 having subclasses set the variable.
13912
13913 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Refactor.
13914 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Refactor.
13915
13916 Move example/ files into misc/.
13917
13918 * Animometer/tests/misc/canvas-electrons.html: Renamed from PerformanceTests/Animometer/tests/examples/canvas-electrons.html.
13919 * Animometer/tests/misc/canvas-stars.html: Renamed from PerformanceTests/Animometer/tests/examples/canvas-stars.html.
13920 * Animometer/tests/misc/resources/canvas-electrons.js: Renamed from PerformanceTests/Animometer/tests/examples/resources/canvas-electrons.js.
13921 * Animometer/tests/misc/resources/canvas-stars.js: Renamed from PerformanceTests/Animometer/tests/examples/resources/canvas-stars.js.
13922
13923 * Animometer/resources/debug-runner/tests.js: Update test URLs.
13924
13925 Refactor miscellaneous suite.
13926
13927 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
13928 Remove BouncingParticlesAnimator and BouncingParticleBenchmark, which are
13929 not needed.
13930 (tune): Remove console assert.
13931 * Animometer/tests/resources/main.js: Add Rotater back in from stage.js.
13932
13933 * Animometer/tests/examples/resources/canvas-electrons.js: Remove CanvasElectronsAnimator.
13934 * Animometer/tests/examples/resources/canvas-stars.js: Remove CanvasStarsAnimator.
13935 * Animometer/tests/misc/resources/compositing-transforms.js:
13936 * Animometer/tests/examples/canvas-electrons.html: Move scripts to the end.
13937 * Animometer/tests/examples/canvas-stars.html: Ditto.
13938 * Animometer/tests/misc/compositing-transforms.html: Ditto.
13939
13940 Refactor the simple suite.
13941
13942 * Animometer/tests/master/resources/canvas-stage.js:
13943 (tune): Remove coordinateMaximum since it is not needed in any
13944 of the master tests.
13945 * Animometer/tests/simple/resources/simple-canvas.js:
13946 SimpleCanvasAnimator and SimpleCanvasBenchmark are no longer
13947 needed.
13948 (tune): Manage the objects differently, but instead of duplicating
13949 all of SimpleCanvasStage here, just replace tune(). Include
13950 coordinateMaximum, and remove items from the end of the list
13951 instead of the beginning.
13952 (StageBenchmark.call.createAnimator): Deleted.
13953 (StageBenchmark.call): Deleted.
13954 * Animometer/tests/simple/resources/simple-canvas-paths.js:
13955 * Animometer/tests/simple/simple-canvas-paths.html: Move
13956 scripts to the end.
13957
13958 Get rid of stage.js, StageAnimator, and StageBenchmark. Don't have the progress bar update during the test.
13959
13960 * Animometer/resources/debug-runner/animometer.js:
13961 (initialize): Move the setting of testsCount to the debug runner.
13962 (didRunTest): Nicer name.
13963 * Animometer/resources/debug-runner/benchmark-runner.js:
13964 (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Don't pass in the progress bar to benchmarks.
13965 * Animometer/resources/extensions.js:
13966 (ProgressBar): Refactor. Make variables "private". Resetting the progress when instantiating.
13967 (ProgressBar.prototype.incrementRange): This is called every time a benchmark completes.
13968 * Animometer/resources/runner/animometer.js:
13969 (window.benchmarkRunnerClient.initialize): Remove unneeded setting of testsCount.
13970 * Animometer/resources/strings.js: These are no longer needed.
13971 * Animometer/tests/master/canvas-stage.html: Remove script inclusion. Other tests will follow.
13972 * Animometer/tests/master/resources/canvas-tests.js: Use Benchmark instead of StageBenchmark.
13973 * Animometer/tests/resources/main.js: Messages are no longer needed
13974 (Animator.prototype._shouldRequestAnotherFrame): Rename from animate(), since this method returns a boolean
13975 indicating whether another frame should be requested. Collapse the logic from StageAnimator into animateLoop.
13976 (BenchmarkState.prototype.currentStage): Deleted.
13977 (BenchmarkState.prototype.currentMessage): Deleted.
13978 (BenchmarkState.prototype.currentProgress): Deleted.
13979 (Animator.prototype.animate): Deleted.
13980 (Animator.prototype.animateLoop): The stage is animated only when we have another frame to draw.
13981 (Benchmark.prototype.record): No need to update the progress bar.
13982 * Animometer/tests/resources/stage.js: Removed. Rotater will appear in a later patch, in main.js.
13983
13984 * Animometer/resources/debug-runner/benchmark-runner.js:
13985 (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Each test is run as a benchmark.
13986 Remove the call to runBenchmark by merging the options here, and calling benchmark.run()
13987 directly.
13988
13989 Make the class relationships more easily understandable. The benchmark owns the stage,
13990 animator, and options. Make the stage and animator no longer have their own references to
13991 the options. Make Stage a first-class citizen by promoting it to main.js. Later patches
13992 will try to get rid of stage.js altogether.
13993 * Animometer/tests/resources/main.js:
13994 (Stage): Moved from stage.js.
13995 (Animator): Don't pass in benchmark and options in its constructor. It will get initialized
13996 by benchmark-related parameters in initialize().
13997 (Animator.prototype.initialize): Add a back-reference to benchmark and cache an option.
13998 (Animator.prototype.get benchmark):
13999 (Animator.prototype.animate): Refactor to use the cached option, to remove its dependency on
14000 the options dictionary.
14001 (Benchmark): Require all benchmarks to have a stage and animator. The instance will initialize
14002 them.
14003 (Benchmark.prototype.get options):
14004 (Benchmark.prototype.get stage): BenchmarkStates.stages will need to be renamed to avoid confusion.
14005 (Benchmark.prototype.get animator):
14006 (Benchmark.prototype.start):
14007 (Benchmark.prototype.update): Ask the stage directly to tune or clear instead of adding another
14008 level of indirection.
14009 (window.runBenchmark): Deleted. Remove the need for a benchmarkClient. Also remove the standalone
14010 path, since tests can be individually selected, and remove the need for runBenchmark since that is
14011 handled in BenchmarkRunner._runBenchmarkAndRecordResults.
14012 * Animometer/tests/resources/stage.js:
14013 (Stage): Deleted. Moved to main.js.
14014 (StageBenchmark): What's left is updating the progress bar; to be removed.
14015 (StageAnimator): What's left can be folded in Animator.
14016
14017 Refactor master suite.
14018 * Animometer/tests/master/resources/canvas-stage.js: This now only has SimpleCanvasStage.
14019 (animate): Push the clearRect() into each stage.
14020 (complexity):
14021 (StageBenchmark.call.createAnimator): Deleted.
14022 (StageBenchmark.call): Deleted.
14023 * Animometer/tests/master/resources/canvas-tests.js: SimpleCanvasPathStrokeStage is no longer needed.
14024 (CanvasLineSegment.prototype.draw):
14025 (CanvasArc):
14026 (CanvasLinePoint): Remove the draw call because depending on its index it either needs to be moveTo
14027 or lineTo, and it is otherwise a very small draw operation that doesn't need the overhead of the
14028 function call. Do all of the drawing through the stage.
14029
14030 Refactor the subclass pattern. Introduce Utilities.createSubclass().
14031
14032 * Animometer/resources/debug-runner/benchmark-runner.js:
14033 * Animometer/resources/extensions.js:
14034 (window.Utilities.createSubclass): Takes the super class, a function representing
14035 the class's constructor, and additional methods to attach to the new class's
14036 prototype object.
14037 * Animometer/tests/text/text-boxes.html: Remove unneeded reference to utilities.js.
14038
14039 Refactor tests.
14040 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
14041 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
14042 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
14043 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
14044 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
14045 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
14046 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
14047 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
14048 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
14049 * Animometer/tests/examples/resources/canvas-electrons.js:
14050 * Animometer/tests/examples/resources/canvas-stars.js:
14051 * Animometer/tests/master/resources/canvas-stage.js:
14052 * Animometer/tests/master/resources/canvas-tests.js:
14053 * Animometer/tests/misc/resources/compositing-transforms.js:
14054 * Animometer/tests/resources/stage.js:
14055 * Animometer/tests/simple/resources/simple-canvas-paths.js:
14056 * Animometer/tests/simple/resources/simple-canvas.js:
14057 * Animometer/tests/template/resources/template-canvas.js:
14058 * Animometer/tests/template/resources/template-css.js:
14059 * Animometer/tests/template/resources/template-svg.js:
14060 * Animometer/tests/text/resources/layering-text.js: Reorder some of the methods
14061 and properties since they rely on each other.
14062 * Animometer/tests/text/resources/text-boxes.js:
14063
14064 * Animometer/resources/debug-runner/animometer.js: Arrange calls
14065 in the order they are evoked.
14066 * Animometer/resources/debug-runner/benchmark-runner.js:
14067 (BenchmarkRunnerState.prototype.next): Get rid of return value since
14068 no caller to next() uses it.
14069 (BenchmarkRunnerState.prototype.prepareCurrentTest): Refactor the
14070 promise to resolve simply when onload() is called instead of
14071 looking for #stage.
14072 (BenchmarkRunner.prototype._runTestAndRecordResults): Suite.run
14073 simply calls runBenchmark(). Call it directly rather than through
14074 the Suite.
14075 (BenchmarkRunner.prototype.step): Remove unused parameter in
14076 resolve callback.
14077 (BenchmarkRunner.prototype.runMultipleIterations): Use this instead
14078 of self since it is outside of the closure which needed the self
14079 variable.
14080 (resolveIfReady): Deleted.
14081 (BenchmarkRunner.prototype.waitForElement): Deleted.
14082 * Animometer/resources/runner/tests.js: prepare() and run() are
14083 no longer needed.
14084 (Suite.prototype.prepare): Deleted.
14085 (Suite.prototype.run): Deleted.
14086 * Animometer/tests/master/canvas-stage.html: Move all scripts to
14087 the end of the page.
14088
simon.fraser@apple.com2dec3a32015-12-24 04:26:36 +0000140892015-12-23 Simon Fraser <simon.fraser@apple.com>
14090
14091 Add an Animometer developer test which animates text-rich boxes
14092 https://bugs.webkit.org/show_bug.cgi?id=152544
14093
14094 Reviewed by Zalan Bujtas.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014095
simon.fraser@apple.com2dec3a32015-12-24 04:26:36 +000014096 Add a test that draws lots of international text. This is a particle test,
14097 moving the boxes around with absolution positioning.
14098
14099 * Animometer/resources/debug-runner/tests.js:
14100 * Animometer/tests/text/resources/text-boxes.js: Added.
14101 (BouncingTextBox):
14102 (BouncingTextBox.prototype._move):
14103 (BouncingTextBox.prototype.animate):
14104 (BouncingTextBoxStage):
14105 (BouncingTextBoxStage.prototype.createParticle):
14106 (BouncingTextBoxStage.prototype.particleWillBeRemoved):
14107 (BouncingTextBoxsBenchmark):
14108 (BouncingTextBoxsBenchmark.prototype.createStage):
14109 (window.benchmarkClient.create):
14110 * Animometer/tests/text/text-boxes.html: Added.
14111
jonlee@apple.come4704a72015-12-24 01:31:47 +0000141122015-12-23 Jon Lee <jonlee@apple.com>
14113
14114 Split benchmark into two different pages
14115 https://bugs.webkit.org/show_bug.cgi?id=152458
14116
14117 Reviewed by Simon Fraser.
14118
jonlee@apple.com49f57db2015-12-24 01:36:43 +000014119 Add tests to 'animometer' suite.
14120
14121 * Animometer/resources/runner/tests.js:
14122 * Animometer/tests/master/canvas-stage.html: Added.
14123 * Animometer/tests/master/resources/canvas-stage.js: Added.
14124 * Animometer/tests/master/resources/canvas-tests.js: Added.
14125 * Animometer/tests/master/resources/stage.css: Added.
14126
141272015-12-23 Jon Lee <jonlee@apple.com>
14128
14129 Split benchmark into two different pages
14130 https://bugs.webkit.org/show_bug.cgi?id=152458
14131
14132 Reviewed by Simon Fraser.
14133
jonlee@apple.come4704a72015-12-24 01:31:47 +000014134 Address comments.
14135
14136 * Animometer/resources/debug-runner/benchmark-runner.js:
14137 (BenchmarkRunner.prototype._runTestAndRecordResults): When the testing is complete the frame owning the
14138 sampler goes away, and a later call to get the JSON data is no longer available. Process the data
14139 right here, instead, and just reference it when displaying the results in ResultsDashboard.prototype._processData.
14140 * Animometer/resources/extensions.js:
14141 (Array.prototype.fill.Array.prototype.fill): Add a null check. Remove braces around single-line clause.
14142 (Array.prototype.find.Array.prototype.find): Update the null check.
14143 (ResultsDashboard.prototype._processData): Use the already-processed data.
14144 * Animometer/resources/runner/animometer.css:
14145 (.frame-container > iframe): Remove calc().
14146
14147 Move Array functions to extensions.js since that is included by the harness.
14148 Add ES6 Array polyfills.
14149
14150 * Animometer/resources/algorithm.js:
14151 (Array.prototype.swap): Moved to extensions.js.
14152 * Animometer/resources/extensions.js:
14153 (Array.prototype.swap):
14154 (Array.prototype.fill): Added.
14155 (Array.prototype.find): Added.
14156
14157 Adjust styles for iPad.
14158
14159 * Animometer/resources/runner/animometer.css:
14160 (@media screen and (min-device-width: 768px)): Apply to iPad as well.
14161 (@media screen and (max-device-width: 1024px)): Update width for iPads.
14162
14163 Adjustment styles for iOS.
14164
14165 * Animometer/developer.html: Different divs contain the iframe, so use a class instead and
14166 update the style rules.
14167 * Animometer/index.html:
14168 * Animometer/resources/debug-runner/animometer.css: Remove extraneous rules.
14169 (@media screen and (min-device-width: 1800px)): Move this up.
14170 * Animometer/resources/runner/animometer.css: Add rules to accomodate iOS.
14171
14172 Get rid of prefixed flex properties for now.
14173
14174 * Animometer/resources/debug-runner/animometer.css:
14175 * Animometer/resources/runner/animometer.css:
14176
14177 Update the structure of the harness. Remove the JSON-per-test but keep
14178 the JSON of the whole test run. Use the full page in order to display
14179 the graph.
14180
14181 * Animometer/developer.html: Update several of the JS file includes to UTF-8. Remove header and footer. Test results screen includes score,
14182 average, and worst 5% statistics.
14183 * Animometer/index.html: Make structure similar to developer.html.
14184 * Animometer/resources/debug-runner/animometer.css: Remove most of the
14185 button rules since they are superfluous. Move the progress bar to the
14186 top, fixed. Update the results page rules.
14187 * Animometer/resources/debug-runner/animometer.js: Remove most of the
14188 additions to sectionsManager since they are no longer needed.
14189 (setSectionHeader): Updates header of the section.
14190 (window.suitesManager._updateStartButtonState): Update selector.
14191 (showResults): Add keypress event for selecting different data for
14192 copy/paste. Update how the results are populated. Include full test
14193 JSON in a textarea, rather than requiring a button press.
14194 (showTestGraph):
14195 * Animometer/resources/debug-runner/tests.js: Update structure of Headers. Define different kinds of headers. Headers can control their
14196 title, and the text used as the cell contents, including class name.
14197 * Animometer/resources/extensions.js:
14198 (ResultsTable): Update to include a flattened version of the headers,
14199 used while populating table contents. Remove unneeded helper functions
14200 for creating the table. Rename "show" to "add".
14201 * Animometer/resources/runner/animometer.css: Update rules to
14202 accommodate the new structure.
14203 * Animometer/resources/runner/animometer.js:
14204 (window.sectionsManager.setSectionScore): Helper function to set the
14205 score and mean for a section.
14206 (window.sectionsManager.populateTable): Helper function to set the table.
14207 (window.benchmarkController.showResults): Refactor.
14208 (window.benchmarkController.selectResults): Update selectors.
14209 * Animometer/resources/runner/tests.js: Set Headers. Debug harness
14210 extends it.
14211
14212 Update debug runner to have similar names to the basic runner. Include
14213 that page's CSS and remove extraneous CSS rules.
14214
14215 Get rid of the statistics table #record.
14216
14217 * Animometer/developer.html: Rename #home to #intro. Rename .spacer to hr.
14218 * Animometer/resources/debug-runner/animometer.css: Set to flexbox when selected.
14219 * Animometer/resources/debug-runner/animometer.js: Remove recordTable.
14220 (window.suitesManager._updateStartButtonState): Update selector to #intro.
14221 (setupRunningSectionStyle): Deleted.
14222
14223 * Animometer/resources/runner/animometer.css:
14224 (#test-container.selected): Change to flex-box only when visible.
14225
14226 Remove recordTable.
14227 * Animometer/resources/debug-runner/benchmark-runner.js:
14228 (BenchmarkRunner.prototype._runTestAndRecordResults):
14229 * Animometer/resources/runner/tests.js:
14230 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
14231 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
14232 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
14233 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
14234 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
14235 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
14236 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
14237 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
14238 * Animometer/tests/examples/resources/canvas-electrons.js:
14239 * Animometer/tests/examples/resources/canvas-stars.js:
14240 * Animometer/tests/misc/resources/compositing-transforms.js:
14241 * Animometer/tests/resources/main.js:
14242 * Animometer/tests/resources/stage.js:
14243 (StageBenchmark): Remove _recordTable.
14244 * Animometer/tests/simple/resources/simple-canvas-paths.js:
14245 * Animometer/tests/simple/resources/simple-canvas.js:
14246 * Animometer/tests/template/resources/template-canvas.js:
14247 * Animometer/tests/template/resources/template-css.js:
14248 * Animometer/tests/template/resources/template-svg.js:
14249 * Animometer/tests/text/resources/layering-text.js:
14250
14251 * Animometer/resources/debug-runner/animometer.js:
14252 (willStartFirstIteration): Fix selector, since results-table is used
14253 in multiple places, so it cannot be an id.
14254
14255 Make it possible to select the scores, or the whole table data,
14256 by cycling through different selections through key press of 's'.
14257
14258 * Animometer/resources/runner/animometer.js:
14259 (window.benchmarkController.showResults): Attach a keypress handler
14260 if it hasn't been added already.
14261 (window.benchmarkController.selectResults):
14262 * Animometer/resources/runner/tests.js: Cycle through different
14263 ranges.
14264
14265 Fix a few fly-by errors.
14266
14267 * Animometer/resources/debug-runner/benchmark-runner.js:
14268 (BenchmarkRunnerState.prototype.prepareCurrentTest): Update the frame relative path
14269 since the files are now in the top directory instead of inside runner/.
14270 (BenchmarkRunner.prototype._runTestAndRecordResults): Incorrect reference to function.
14271 (BenchmarkRunner.prototype.step): Member variable is never used.
14272
14273 A little stylistic cleanup.
14274
14275 * Animometer/resources/debug-runner/benchmark-runner.js:
14276 * Animometer/resources/extensions.js:
14277 (window.DocumentExtension.createElement):
14278 * Animometer/tests/resources/main.js:
14279 (Benchmark.prototype.record):
14280 * Animometer/tests/resources/stage.js:
14281 (StageBenchmark.prototype.showResults): Reverse progress and message.
14282 The message appears less frequently than the progress.
14283 * Animometer/tests/simple/resources/simple-canvas.js:
14284 (SimpleCanvasBenchmark): Remove unused options.
14285
14286 Add newer version of harness in a new page. Consolidate differences between the two
14287 pages.
14288
14289 * Animometer/developer.html: Include runner/animometer.js. Rename the JS function
14290 to run the benchmark to startBenchmark() instead of startTest(). Rename #running to
14291 #test-container.
14292 * Animometer/index.html: Added. Similarly calls startBenchmark() and has #test-container.
14293 * Animometer/resources/debug-runner/animometer.css: Make the canvas 2:1 (1200px x 800px)
14294 instead of 4:3.
14295
14296 Split out benchmarkRunnerClient and benchmarkController.
14297
14298 * Animometer/resources/debug-runner/animometer.js: Move needed functions out of
14299 benchmarkRunnerClient, and leave the rest here to extend that object. Get rid of _resultsTable
14300 and move populating the results table into benchmarkController. Rename _resultsDashboard
14301 to results and make it accessible for other objects to use.
14302 (willAddTestFrame): This is unnecessary. Remove.
14303
14304 (window.sectionsManager.showScore): Grab it from the results object instead of
14305 benchmarkRunnerClient.
14306 (window.sectionsManager.showSection): Deleted. Moved to runner/animometer.js.
14307
14308 (window.benchmarkController._runBenchmark): Deleted. Mostly moved into _startBenchmark.
14309 (window.benchmarkController.startBenchmark): Refactor to call _startBenchmark.
14310 (window.benchmarkController.showResults): Include most of benchmarkRunnerClient.didFinishLastIteration()
14311 here.
14312
14313 * Animometer/resources/debug-runner/benchmark-runner.js:
14314 (BenchmarkRunner.prototype._appendFrame): Remove unneeded call to willAddTestFrame.
14315 * Animometer/resources/extensions.js:
14316 (ResultsDashboard): Change the class to process the sampler data on-demand and hold onto that data
14317 for later referencing.
14318 (ResultsDashboard.prototype.toJSON): Deleted.
14319 (ResultsDashboard.prototype._processData): Rename toJSON to _processData since it's not really
14320 outputting JSON. Store the processed data into a member variable that can be referenced later.
14321 (ResultsDashboard.prototype.get data): Process the data if it hasn't already.
14322 (ResultsDashboard.prototype.get score): Process the data if it hasn't already, then return the
14323 aggregate score.
14324 (ResultsTable.prototype._showHeader): When outputting the results to a table, don't force the
14325 need for an empty children array. This was to allow for a header row in the table that spanned
14326 multiple columns. In the simpler harness, this is not needed.
14327 (ResultsTable.prototype._showEmptyCells):
14328 (ResultsTable.prototype._showTest): This hardcoded the columns. At least for the name and score,
14329 which is the bare minimum needed for the simpler harness, key off of the header name provided.
14330 * Animometer/resources/runner/animometer.css: Added. Use a similar 2:1 ratio. The score tables are
14331 split into the data and the headers, and are also displayed RTL so that a later patch allows a
14332 user to copy-paste the data easily.
14333 * Animometer/resources/runner/animometer.js: Added. Use a simpler version of benchmarkRunnerClient.
14334 The debug harness will extend these classes.
14335 (window.benchmarkController._startBenchmark): Used by both harnesses.
14336 (window.benchmarkController.startBenchmark): Set hard-coded options.
14337 (window.benchmarkController.showResults): Includes most of benchmarkRunnerClient.didFinishLastIteration()
14338 here.
14339
14340 Get rid of utilities.js. Move it all into extensions.js.
14341
14342 * Animometer/resources/extensions.js:
14343 * Animometer/tests/resources/utilities.js: Removed.
14344
14345 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Remove script link.
14346 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Ditto.
14347 * Animometer/tests/bouncing-particles/bouncing-css-images.html: Ditto.
14348 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Ditto.
14349 * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Ditto.
14350 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Ditto.
14351 * Animometer/tests/examples/canvas-electrons.html: Ditto.
14352 * Animometer/tests/examples/canvas-stars.html: Ditto.
14353 * Animometer/tests/misc/compositing-transforms.html: Ditto.
14354 * Animometer/tests/simple/simple-canvas-paths.html: Ditto.
14355 * Animometer/tests/template/template-canvas.html: Ditto.
14356 * Animometer/tests/template/template-css.html: Ditto.
14357 * Animometer/tests/template/template-svg.html: Ditto.
14358 * Animometer/tests/text/layering-text.html: Ditto.
14359
14360 Split tests.js into two. Add a new suite to runner/tests.js.
14361
14362 * Animometer/developer.html: Update the script order. Scripts from
14363 debug-runner/ will always build on those from runner/, and have the
14364 same name.
14365 * Animometer/resources/debug-runner/tests.js: Move "complex examples"
14366 suite into "miscellaneous tests".
14367 (Suite): Deleted.
14368 (Suite.prototype.prepare): Deleted.
14369 (Suite.prototype.run): Deleted.
14370 (suiteFromName): Deleted.
14371 * Animometer/resources/runner/tests.js: Added. Take definitions and
14372 functions needed by the test harness. Leave the test suites behind.
14373 (Suite): Moved from debug script.
14374 (Suite.prototype.prepare): Ditto.
14375 (Suite.prototype.run): Ditto.
14376 (suiteFromName): Ditto.
14377 (testFromName): Ditto.
14378
14379 Move benchmark resources out into resources/debug-runner, and update URLs.
14380
14381 * Animometer/developer.html: Renamed from PerformanceTests/Animometer/runner/animometer.html.
14382 * Animometer/resources/debug-runner/animometer.css: Renamed from PerformanceTests/Animometer/runner/resources/animometer.css.
14383 * Animometer/resources/debug-runner/animometer.js: Renamed from PerformanceTests/Animometer/runner/resources/animometer.js.
14384 * Animometer/resources/debug-runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/runner/resources/benchmark-runner.js.
14385 * Animometer/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/runner/resources/d3.min.js.
14386 * Animometer/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/runner/resources/graph.js.
14387 * Animometer/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/runner/resources/tests.js.
14388
jonlee@apple.com247eb932015-12-11 21:47:31 +0000143892015-12-11 Jon Lee <jonlee@apple.com>
14390
14391 Improve Animometer on iOS
14392 https://bugs.webkit.org/show_bug.cgi?id=152180
14393
14394 Reviewed by Simon Fraser.
14395
14396 Improve experience on phones. Make the canvas take
14397 up the whole screen.
14398
14399 * Animometer/runner/animometer.html: Add meta viewport.
14400 Remove the container div.
14401 * Animometer/runner/resources/animometer.css: Have buttons lay
14402 out vertically. Update detail arrow glyph. Make the suites and
14403 options section lay out vertically. Remove the top spacers since
14404 we want the canvas to take over the whole screen. Minimal display
14405 is recommended for use.
14406
jonlee@apple.coma0fc0812015-12-07 22:14:25 +0000144072015-12-07 Jon Lee <jonlee@apple.com>
14408
jonlee@apple.comb0eb9462015-12-08 03:23:42 +000014409 Update suites for benchmark
14410 https://bugs.webkit.org/show_bug.cgi?id=151957
14411
14412 Reviewed by Simon Fraser.
14413
14414 * Animometer/runner/animometer.html: Use spacers instead of relying on
14415 justify-content center to center the content. That allows the opening screen
14416 to grow downward when expanding the list of choices, otherwise it expands
14417 from the center, and off the top edge of the screen.
14418 * Animometer/runner/resources/animometer.css:
14419 (.tree): Don't overflow scroll.
14420 (.tree > li > label.tree-label:before): Use better glyphs.
14421 (.tree > li > :checked ~ label.tree-label:before):
14422 (main): Using flex-start for justify-content so that if the section grows too
14423 big it gets pinned to the top edge of the document instead of growing past it.
14424 (.spacer): Make the spacers have a minimum 20px and grow evenly.
14425 (section#home): Add a min-height so that the border will expand if the suite
14426 tests shown make the section grow past the height.
14427 * Animometer/runner/resources/animometer.js: Update the selectors.
14428 (window.suitesManager._treeElement):
14429 (window.suitesManager._suitesElements):
14430 (window.suitesManager._editsElements):
14431
144322015-12-07 Jon Lee <jonlee@apple.com>
14433
jonlee@apple.coma0fc0812015-12-07 22:14:25 +000014434 Update options for benchmark
14435 https://bugs.webkit.org/show_bug.cgi?id=151956
14436
14437 Reviewed by Simon Fraser.
14438
14439 Move "Fix test complexity" and "Adaptive" checkboxes into a radio group.
14440
14441 Move "Show running results" into a radio group, and add options to remove the HUD.
14442
14443 * Animometer/runner/animometer.html: Get rid of the preamble. Wrap the options
14444 in a form for easier referencing in JS.
14445 * Animometer/runner/resources/animometer.css: Show the surrounding border if the
14446 body's display-minimal class name is set.
14447 * Animometer/runner/resources/animometer.js:
14448
14449 Update the way optionsManager gets and sets default values. Include support for
14450 radio groups.
14451 (window.optionsManager.valueForOption):
14452 (window.optionsManager.updateUIFromLocalStorage):
14453 (window.optionsManager.updateLocalStorageFromUI):
14454
14455 (window.benchmarkRunnerClient.willStartFirstIteration):
14456 (window.sectionsManager.setupRunningSectionStyle):
14457 (window.suitesManager._treeElement): Fly-by whitespace fix.
14458 (window.suitesManager._suitesElements): Ditto.
14459 (window.suitesManager.updateEditsElementsState): Update options check.
14460 (window.suitesManager.updateDisplay): Add a new update function for the HUD.
14461 Attach a class to the body depending on the user's choice.
14462 (window.benchmarkController.initialize): Add an event listener when the form
14463 radio buttons update.
14464 (window.benchmarkController.onFormChanged):
14465 (window.optionsManager._optionsElements): Deleted.
14466 (window.optionsManager._adaptiveTestElement): Deleted.
14467 (window.benchmarkController.onChangeAdaptiveTestCheckbox): Deleted.
14468 * Animometer/tests/resources/main.js:
14469 (Benchmark.prototype.update): Update options checks.
14470 * Animometer/tests/resources/stage.js: Update option check.
14471 (StageBenchmark.prototype.showResults):
14472
simon.fraser@apple.com4774de32015-12-03 19:34:21 +0000144732015-12-01 Simon Fraser <simon.fraser@apple.com>
14474
14475 Add a basic compositing Animometer test
14476 https://bugs.webkit.org/show_bug.cgi?id=151724
14477
14478 Reviewed by Dean Jackson.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014479
simon.fraser@apple.com4774de32015-12-03 19:34:21 +000014480 Add a "bouncing particles" test that moves composited layers around, optionally with a filter.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014481
simon.fraser@apple.com4774de32015-12-03 19:34:21 +000014482 This is added under a new "Miscellaneous" category.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014483
simon.fraser@apple.com4774de32015-12-03 19:34:21 +000014484 Remove the test templates category from the UI.
14485
14486 * Animometer/runner/resources/tests.js:
14487 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
14488 (BouncingCssShape.prototype.animate):
14489 * Animometer/tests/misc/compositing-transforms.html: Added.
14490 * Animometer/tests/misc/resources/compositing-transforms.js: Added.
14491 (BouncingCompositedImage):
14492 (BouncingCompositedImage.prototype._move):
14493 (BouncingCompositedImage.prototype.animate):
14494 (CompositingTransformsStage):
14495 (CompositingTransformsStage.prototype.createParticle):
14496 (CompositingTransformsStage.prototype.particleWillBeRemoved):
14497 (CompositedTransformsBenchmark):
14498 (CompositedTransformsBenchmark.prototype.createStage):
14499 (window.benchmarkClient.create):
14500
commit-queue@webkit.orga55f3412015-11-30 22:15:27 +0000145012015-11-30 Said Abou-Hallawa <sabouhallawa@apple.com>
14502
commit-queue@webkit.orge921bb72015-11-30 23:06:27 +000014503 Fix the graphics benchmark complexity bounds adjustment
14504 https://bugs.webkit.org/show_bug.cgi?id=151670
14505
14506 Reviewed by Simon Fraser.
14507
14508 Make sure the graphics benchmark complexity bounds adjustment is applied
14509 to the absolute lower bound.
14510
14511 * Animometer/tests/resources/math.js:
14512 (PIDController.prototype._saturate):
14513
145142015-11-30 Said Abou-Hallawa <sabouhallawa@apple.com>
14515
commit-queue@webkit.orga55f3412015-11-30 22:15:27 +000014516 Add an option to select the results form the graphics benchmark
14517 https://bugs.webkit.org/show_bug.cgi?id=151666
14518
14519 Reviewed by Ryosuke Niwa.
14520
14521 We need an easy way to select the graphics benchmark results table such
14522 that when it is copied to the clipboard, rich text format is set to the
14523 clipboard.
14524
14525 * Animometer/runner/animometer.html: Add a new button to select the results table or JSON.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014526
commit-queue@webkit.orga55f3412015-11-30 22:15:27 +000014527 * Animometer/runner/resources/animometer.js:
14528 (window.sectionsManager._sectionDataElement): Selects the container <data> element.
14529 (window.sectionsManager._sectionDataDivElement): Replace a literal string with a string table entry.
14530 (window.sectionsManager.showTestName): Replace a literal string with a string table entry.
14531 (window.sectionsManager.selectData): Selects the container <data> element in a selection.
14532 (window.sectionsManager.selectDataContents): Select the contents of container <data> element in a selection.
14533 (window.benchmarkController.selectResults): Selects the results table.
14534 (window.benchmarkController.showJSON): Function rename.
14535 (window.benchmarkController.selectJSON): Selects the contents of the results JSON.
14536 (window.benchmarkController.showJson): Deleted.
14537
simon.fraser@apple.com88ec81b2015-11-21 03:05:50 +0000145382015-11-20 Simon Fraser <simon.fraser@apple.com>
14539
14540 Animometer: graphs should not do interpolation
14541 https://bugs.webkit.org/show_bug.cgi?id=151526
14542
14543 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014544
simon.fraser@apple.com88ec81b2015-11-21 03:05:50 +000014545 Having the graphs do interpolation is misleading, because you can't see the actual data.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014546
simon.fraser@apple.com88ec81b2015-11-21 03:05:50 +000014547 Also remove "shape-rendering: crispEdges;" so the lines get antialiased.
14548
14549 * Animometer/runner/resources/animometer.css:
14550 (section#test-graph > data > svg): Deleted.
14551 * Animometer/runner/resources/graph.js:
14552 (graph): Deleted.
14553
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +0000145542015-11-19 Said Abou-Hallawa <sabouhallawa@apple.com>
14555
14556 Calculate the graphics benchmark test gain adaptively
14557 https://bugs.webkit.org/show_bug.cgi?id=151208
14558
14559 Reviewed by Darin Adler.
14560
14561 We need to calculate the gain of the graphics benchmark tests adaptively
14562 and get rid of the gain and limits parameters we have to choose manually
14563 for every test. We are going to use the classic Ziegler–Nichols method for
14564 calculating the gain and integral and derivative times. We are going to
14565 try moving on a cubic curve during the manual stage from y0 to reach ysp.
14566 We also going to use a saturation actuator to ensure the system does not
14567 fluctuate.
14568
14569 * Animometer/resources/extensions.js:
14570 (ResultsTable.prototype._isNoisyMeasurement): Fix a parameter name.
14571 (ResultsTable.prototype._isNoisyTest): Since score is a member of testResults, we need to limit our search to frame rate and complexity.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014572 (ResultsTable.prototype._showTest): Pass the correct parameter to _isNoisyMeasurement().
14573
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +000014574 * Animometer/resources/strings.js: Fix the indentation and name and value of a string.
14575
14576 * Animometer/runner/resources/tests.js: Remove all the manual gains and limits parameters which had to be passed to every test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014577
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +000014578 * Animometer/tests/resources/main.js:
14579 (BenchmarkState.prototype.currentStage): Fix an enum name.
14580 (Benchmark): Get rid of manual gain and limits.
14581 (Benchmark.prototype.update): Simplify the calculation by having all the times in ms.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014582
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +000014583 * Animometer/tests/resources/math.js:
14584 (PIDController): Get rid of the manual gain and limits and the magic numbers for Ti and Td.
14585 (PIDController.prototype._yPosition): Tells whether the test current output is moving towards the set-point or away from it.
14586 (PIDController.prototype._distanceUltimate): Calculates the ultimate distance from y0 after time t using a cubic formula.
14587 (PIDController.prototype._distance): Calculates the distance of y relative to y0.
14588 (PIDController.prototype._gainIncrement): Decides how much the proportional gain should be increased during the manual gain stage.
14589 (PIDController.prototype._updateStage): Updates the stage of the controller based on its current stage and the system output.
14590 (PIDController.prototype._tuneP): Tunes the system before calculating the PID controller gains.
14591 (PIDController.prototype._tunePID): PID tuning function.
14592 (PIDController.prototype._tune):
14593 (PIDController.prototype._saturate):
14594 (PIDController.prototype.tune): Manages calculating the controller parameters. It then returns a PID tuning value.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014595 (PIDController.prototype._sat): Deleted. We may need to return it back but the limits have to be calculated adaptively not manually.
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +000014596
commit-queue@webkit.org708e0ec2015-11-18 00:08:38 +0000145972015-11-17 Said Abou-Hallawa <sabouhallawa@apple.com>
14598
commit-queue@webkit.org2fc25f22015-11-18 01:29:15 +000014599 Reorganize the graphics benchmark string table
14600 https://bugs.webkit.org/show_bug.cgi?id=151334
14601
14602 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014603
commit-queue@webkit.org2fc25f22015-11-18 01:29:15 +000014604 Make the graphics benchmark string table be an object of sub-objects. Each
14605 sub-object represents an associative array, the key is the string name and
14606 the value is the string data.
14607
14608 * Animometer/resources/extensions.js:
14609 (ResultsDashboard.prototype.toJSON):
14610 (ResultsTable.prototype._showGraph):
14611 (ResultsTable.prototype._showJSON):
14612 (ResultsTable.prototype._isNoisyMeasurement):
14613 (ResultsTable.prototype._isNoisyTest):
14614 (ResultsTable.prototype._showTest):
14615 (ResultsTable.prototype._showSuite):
14616 (ResultsTable.prototype._showIteration):
14617 * Animometer/resources/sampler.js:
14618 (Sampler.prototype.toJSON):
14619 * Animometer/resources/strings.js:
14620 * Animometer/runner/resources/animometer.js:
14621 (window.benchmarkRunnerClient.didFinishLastIteration):
14622 (window.suitesManager.updateLocalStorageFromJSON):
14623 (window.benchmarkController.showResults):
14624 (window.benchmarkController.showJson):
14625 (window.benchmarkController.showTestGraph):
14626 (window.benchmarkController.showTestJSON):
14627 * Animometer/runner/resources/tests.js:
14628 * Animometer/tests/resources/main.js:
14629
146302015-11-17 Said Abou-Hallawa <sabouhallawa@apple.com>
14631
said@apple.com9667f332015-11-18 00:16:56 +000014632 Disable flattening the stage iframe of the graphics benchmark when running on iOS
14633 https://bugs.webkit.org/show_bug.cgi?id=151361
14634
14635 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014636
said@apple.com9667f332015-11-18 00:16:56 +000014637 Use fixed size for stage iframe of the graphics benchmark to disable
14638 flattening the iframe while animating the particles. Also ensure the
14639 bouncing particles do not go outside the iframe's boundaries.
14640
14641 * Animometer/runner/resources/animometer.css:
14642 (section#running > #running-test > iframe):
14643 (@media screen and (min-device-width: 1800px)):
14644 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
14645 (BouncingParticle.prototype.animate):
14646
146472015-11-17 Said Abou-Hallawa <sabouhallawa@apple.com>
14648
commit-queue@webkit.org708e0ec2015-11-18 00:08:38 +000014649 Use the media queries to dynamically set the stage for the graphics benchmark
14650 https://bugs.webkit.org/show_bug.cgi?id=151327
14651
14652 Reviewed by Simon Fraser.
14653
14654 Clean setting the benchmark css rules by using the media queries. Accessing
14655 document.stylesheets.cssRules seems to be unreliable. Fix the test harness
14656 load event listener invocation. And also remove the options for normalizing
14657 the stage resolution for retina display.
14658
14659 * Animometer/resources/extensions.js:
14660 (window.DocumentExtension.insertCssRuleAfter): Deleted.
14661 * Animometer/runner/animometer.html:
14662 * Animometer/runner/resources/animometer.css:
14663 (@media screen and (min-device-width: 1800px)):
14664 * Animometer/runner/resources/animometer.js:
14665 (window.sectionsManager.setupRunningSectionStyle):
14666 (window.benchmarkController.initialize):
14667 (window.sectionsManager.setupSectionStyle): Deleted.
14668 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
14669 (BouncingParticlesStage):
14670 * Animometer/tests/text/layering-text.html:
14671 * Animometer/tests/text/resources/layering-text.js:
14672 (LayeringTextStage):
14673 (LayeringTextStage.prototype._setFontSize): Deleted.
14674
commit-queue@webkit.org4ac83a22015-11-16 23:22:16 +0000146752015-11-16 Said Abou-Hallawa <sabouhallawa@apple.com>
14676
commit-queue@webkit.orgb8ffff72015-11-17 03:29:43 +000014677 Remove the option for animating using setInterval from the graphics benchmark
14678 https://bugs.webkit.org/show_bug.cgi?id=151283
14679
14680 Reviewed by Darin Adler.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014681
commit-queue@webkit.orgb8ffff72015-11-17 03:29:43 +000014682 Get rid of the option to run animation using setInterval().
14683
14684 * Animometer/tests/resources/main.js:
14685 (Animator.prototype.animate):
14686 (Benchmark):
14687 (Benchmark.prototype.start):
14688 (Animator.prototype.start): Deleted.
14689
146902015-11-16 Said Abou-Hallawa <sabouhallawa@apple.com>
14691
commit-queue@webkit.orgdb7a98b2015-11-16 23:52:46 +000014692 Highlight the alarming test results in the graphics benchmark results page
14693 https://bugs.webkit.org/show_bug.cgi?id=151286
14694
14695 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014696
commit-queue@webkit.orgdb7a98b2015-11-16 23:52:46 +000014697 When showing the results of a test in the graphics benchmark the following
14698 criteria is going to be applied:
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014699
commit-queue@webkit.orgdb7a98b2015-11-16 23:52:46 +000014700 1. If the standard deviation of the test complexity or the frame rate is
14701 equal to or more than 10%, the standard deviation and the test name
14702 will be displayed in red.
14703 2. If the average frame rate is not in the range = [(desired_frame_rate - 2)
14704 .. (desired_frame_rate + 2)], the average frame rate and the test name will
14705 be displayed in red.
14706
14707 * Animometer/resources/extensions.js:
14708 (ResultsTable.prototype._showHeaderRow):
14709 (ResultsTable.prototype._showHeader):
14710 (ResultsTable.prototype._showEmptyCell):
14711 (ResultsTable.prototype._showText):
14712 (ResultsTable.prototype._showFixedNumber):
14713 (ResultsTable.prototype.):
14714 (ResultsTable.prototype._showGraph):
14715 (ResultsTable.prototype._showJSON):
14716 (ResultsTable.prototype._isAlarmingMeasurement):
14717 (ResultsTable.prototype._isAlarmingTestResults):
14718 (ResultsTable.prototype._showEmptyCells):
14719 (ResultsTable.prototype._showEmptyRow):
14720 (ResultsTable.prototype._showTest):
14721 (ResultsTable.prototype._showSuite):
14722 (ResultsTable.prototype._showIteration):
14723 (ResultsTable.prototype.showRecord):
14724 (ResultsTable.prototype.showIterations):
14725 (ResultsTable.prototype._showEmpty): Deleted.
14726 * Animometer/runner/resources/animometer.js:
14727 (window.benchmarkRunnerClient.didFinishLastIteration):
14728 * Animometer/tests/resources/stage.js:
14729 (StageBenchmark.prototype.showResults):
14730
147312015-11-16 Said Abou-Hallawa <sabouhallawa@apple.com>
14732
commit-queue@webkit.org4ac83a22015-11-16 23:22:16 +000014733 Clean referencing the options object in the graphics benchmark
14734 https://bugs.webkit.org/show_bug.cgi?id=151284
14735
14736 Reviewed by Simon Fraser.
14737
14738 Get rid of the Benchmark.options member and rely only on the private member
14739 Benchmark._options. The animator need to have its own options member instead
14740 of accessing it from its reference to Benchmark object.
14741
14742 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
14743 (BouncingCanvasParticlesAnimator):
14744 (BouncingCanvasParticlesBenchmark.prototype.createAnimator):
14745 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
14746 (BouncingParticle.prototype.animate):
14747 (BouncingParticlesAnimator):
14748 (BouncingParticlesBenchmark.prototype.createAnimator):
14749 * Animometer/tests/examples/resources/canvas-electrons.js:
14750 (CanvasElectronsStage.prototype.animate):
14751 (CanvasElectronsAnimator):
14752 (CanvasElectronsBenchmark.prototype.createAnimator):
14753 (window.benchmarkClient.create):
14754 * Animometer/tests/examples/resources/canvas-stars.js:
14755 (CanvasStarsStage.prototype.animate):
14756 (CanvasStarsAnimator):
14757 (CanvasStarsBenchmark.prototype.createAnimator):
14758 (window.benchmarkClient.create):
14759 * Animometer/tests/resources/main.js:
14760 (BenchmarkState.prototype.currentProgress):
14761 (Animator):
14762 (Animator.prototype.animate):
14763 (Benchmark):
14764 (Benchmark.prototype.update):
14765 * Animometer/tests/resources/stage.js:
14766 (Stage.prototype.clear):
14767 (StageAnimator):
14768 (StageBenchmark.prototype.createAnimator):
14769 (StageBenchmark.prototype.tune):
14770 (StageBenchmark.prototype.showResults):
14771 * Animometer/tests/simple/resources/simple-canvas.js:
14772 (SimpleCanvasStage.prototype.animate):
14773 (SimpleCanvasAnimator):
14774 (SimpleCanvasAnimator.prototype.animate):
14775 (SimpleCanvasBenchmark.prototype.createAnimator):
14776 * Animometer/tests/template/resources/template-canvas.js:
14777 (TemplateCanvasStage.prototype.animate):
14778 (TemplateCanvasBenchmark.prototype.createAnimator):
14779 (window.benchmarkClient.create):
14780
commit-queue@webkit.orgceefdd02015-11-14 05:51:27 +0000147812015-11-13 Said Abou-Hallawa <sabouhallawa@apple.com>
14782
14783 Eliminate a request for layout every time an item is added to the stage of the graphics benchmark
14784 https://bugs.webkit.org/show_bug.cgi?id=151289
14785
14786 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014787
commit-queue@webkit.orgceefdd02015-11-14 05:51:27 +000014788 Cache the stage size when it is created instead of requesting every time
14789 an object is added via clientWidth and clientHeight.
14790
14791 * Animometer/resources/extensions.js:
14792 (Insets.elementPadding):
14793 * Animometer/tests/resources/stage.js:
14794 (Stage):
14795 (Stage.prototype.get size):
14796
commit-queue@webkit.org11703642015-11-06 17:55:08 +0000147972015-11-06 Said Abou-Hallawa <sabouhallawa@apple.com>
14798
14799 Initialize the graphics benchmark's Kalman filter with estimated 60 FPS
14800 https://bugs.webkit.org/show_bug.cgi?id=150965
14801
14802 Reviewed by Darin Adler.
14803
14804 This should give the benchmark more accurate reading at warmup time. And
14805 hence we can safely reduce the test running time to be 10 seconds.
14806
14807 * Animometer/runner/animometer.html:
14808 Add "defer" back when loading resources/animometer.js since this script
14809 depends on many other scripts and we need to wait till the page is parsed.
14810 Also change the default test interval to be 10 seconds.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014811
commit-queue@webkit.org11703642015-11-06 17:55:08 +000014812 * Animometer/runner/resources/graph.js:
14813 (graph): Make the test results curves smoother.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014814
commit-queue@webkit.org11703642015-11-06 17:55:08 +000014815 * Animometer/tests/resources/main.js:
14816 (Animator): Initialize the Kalman filter with 60 FPS which should be true
14817 if the test page is empty.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014818
commit-queue@webkit.org11703642015-11-06 17:55:08 +000014819 (Animator.prototype.animate):
14820 * Animometer/tests/resources/math.js:
14821 (KalmanEstimator): Fix the initial value of _vecX_est.
14822 _vecX_est[0] = current FPS (= 60FPS when the test page is empty)
14823 _vecX_est[1] = first time derivative of FPS (=0; FPS has been constant).
14824 _vecX_est[2] = second time derivative of FPS (=0; since _vecX_est[1]=0).
14825 (KalmanEstimator.prototype.estimate): Add some comments.
14826
commit-queue@webkit.orge6e859a2015-11-05 03:16:07 +0000148272015-11-04 Said Abou-Hallawa <sabouhallawa@apple.com>
14828
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014829 Remove "defer" from the scripts' references in the graphics benchmark home page
commit-queue@webkit.orge6e859a2015-11-05 03:16:07 +000014830 https://bugs.webkit.org/show_bug.cgi?id=150915
14831
14832 Reviewed by Simon Fraser.
14833
14834 It causes the benchmark to be very flakey.
14835
14836 * Animometer/runner/animometer.html:
14837
commit-queue@webkit.org72302f02015-11-01 08:26:46 +0000148382015-11-01 Said Abou-Hallawa <sabouhallawa@apple,com>
14839
commit-queue@webkit.orgcea98722015-11-02 02:31:02 +000014840 Add an option to make the graphics benchmark runs a specific test with fixed complexity
14841 https://bugs.webkit.org/show_bug.cgi?id=150529
14842
14843 Reviewed by Darin Adler.
14844
14845 Beside each test in the suites tree, we are going to show the complexity
14846 arithmetic mean of the of the last run in an edit control. Based on a
14847 new option these edit controls will all be visible or hidden. If they are
14848 visible their values can be changed. The benchmark runner if it run in
14849 the non-adaptive mode will set the complexity of the test to the passed
14850 value and will not change it ever. The animator will animate the test and
14851 frame rate will also be measured.
14852
14853 * Animometer/runner/animometer.html: Add a new option for the non-adaptive mode.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014854
commit-queue@webkit.orgcea98722015-11-02 02:31:02 +000014855 * Animometer/runner/resources/animometer.css:
14856 (section#home input[type="number"]): Define the width of all the edit control in the <home> section.
14857 (section#home > suites input[type="number"]): The edit controls in the <suites> box will be right aligned and hidden by default.
14858 (section#home > suites input[type="number"].selected): When the class "selected" is added, the edit controls will be visible.
14859 (section#home > options > label > input[type="number"]): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014860
commit-queue@webkit.orgcea98722015-11-02 02:31:02 +000014861 * Animometer/runner/resources/animometer.js:
14862 (window.benchmarkRunnerClient.didFinishLastIteration): Update the local storage with the results of each test.
14863 (window.optionsManager._adaptiveTestElement): Returns the checkbox for setting the adaptive test option.
14864 (window.suitesManager._editElement): Returns the edit element associated with each test element in the suites tree.
14865 (window.suitesManager._editsElements): Returns a list of all the elements in the <suites> box.
14866 (window.suitesManager._localStorageNameForTest): Change this function to take strings.
14867 (window.suitesManager._createTestElement): Adds an edit control beside each test.
14868 (window.suitesManager.updateEditsElementsState): Adds/Removes the 'selected' class to/from all the tests edit elements.
14869 (window.suitesManager.updateUIFromLocalStorage): Reads the edit control value from the local storage.
14870 (window.suitesManager.updateLocalStorageFromUI): Saves the edit control value to the local storage.
14871 (window.suitesManager.updateLocalStorageFromJSON): Saves the last run results to the local storage.
14872 (window.benchmarkController.initialize): Shows/Hides the test edit controls based on the adaptive test option.
14873 (window.benchmarkController.onChangeAdaptiveTestCheckbox): An onchange event handler for the adaptive test checkbox.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014874
14875 * Animometer/tests/resources/main.js:
commit-queue@webkit.orgcea98722015-11-02 02:31:02 +000014876 (Benchmark.prototype.update): Fix the complexity of the test if the running mode is non-adaptive test and desired complexity is not zero.
14877 (window.runBenchmark): Add the test complexity as a new benchmark option.
14878
148792015-11-01 Said Abou-Hallawa <sabouhallawa@apple,com>
14880
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014881 Make the size of the benchmark canvas adaptive to the screen size and screen resolution
14882 https://bugs.webkit.org/show_bug.cgi?id=150530
14883
14884 Reviewed by Darin Adler.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014885
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014886 We want to set the size of the benchmark stage dynamically such that it
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014887 depends on the screen resolution and the device scale factor. This patch
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014888 does more than that because the home page css was not done properly. To
14889 use the flex box layout, the animometer.css has to be rewritten almost from
14890 scratch. The suites tree has to be rewritten also because it was not collapsing
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014891 and with the flex box layout it was going outside of the window area. The
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014892 options handling and the local storage handling had to be rewritten to
14893 allow more flexibility with this patch and the future patches. The code
14894 in animometer.js was reorganized into objects to allow distributing the code
14895 nicely among separate entities.
14896
14897 * Animometer/resources/extensions.js:
14898 (Point.elementClientSize): Returns the client size of an HTMLElement as a Point object.
14899 (Insets.prototype.get width): Follow the function opening brace style guidelines.
14900 (Insets.prototype.get height):
14901 (Insets.prototype.get size): Returns the size of an Insets as a Point object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014902
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014903 (window.DocumentExtension): Provides document helper functions. It should be assailable from the runner and the tests.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014904 (window.DocumentExtension.createElement): Creates an HTMLElement given its name, attributes and parentElement.
14905 (window.DocumentExtension.createSvgElement): Creates an SVGElement given its name, attributes and parentElement (moved from utilities.js).
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014906 (window.DocumentExtension.insertCssRuleAfter): Inserts a CSS rule after an exiting rule given its text.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014907
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014908 (ResultsTable.prototype._showHeader): Use DocumentExtension functions.
14909 (ResultsTable.prototype._showGraph): Use DocumentExtension functions and create a real button for "Graph..." option.
14910 (ResultsTable.prototype._showJSON): Use DocumentExtension functions and create a real button for "JSON..." option.
14911 (Options): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014912
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014913 * Animometer/runner/animometer.html: Restructure the page to use the flex box layout.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014914
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014915 * Animometer/runner/resources/animometer.css:
14916 (html,body):
14917 (button):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014918
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014919 (button.large-button):The large button appears in the animometer.html.
14920 (button.large-button:active):
14921 (button.large-button:disabled):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014922
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014923 (button.small-button): The small button appears in the results table.
14924 (button.small-button:active):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014925
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014926 (.tree): The tree class is used to list the suites and their tests.
14927 (.tree .expand-button): This button expands a tree element.
14928 (.tree .expand-button ~ ul): Hide the children (<ul>...</ul>) of a parent node by default.
14929 (.tree .expand-button:checked ~ ul): Show the children of a parent node only when checked.
14930 (.tree ul): Hide the list bullets.
14931 (.tree li): Indent every node in the tree relative to its parent.
14932 (.tree ul li): Indent all the non top level nodes only (the tests nodes in our case).
14933 (.tree > li:last-child): Do not indent the bottom of the last child node.
14934 (.tree-label): Style for all the labels in the tree.
14935 (label.tree-label): Style for the labels in the top level only (the suites nodes in our case).
14936 (label.tree-label:before): Style the unchecked case of the expand-button.
14937 (:checked ~ label.tree-label:before): Style the checked case of the expand-button.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014938
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014939 (table.results-table): The results table appears while running the test and at the end.
14940 (.results-table td):
14941 (.results-table th):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014942
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014943 (div.results-json): The JSON div appears per test or for the whole run.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014944
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014945 (main): This is the flex box container.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014946
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014947 (section): A section is displayed exclusively inside the <main>. It is hidden by default.
14948 (section.selected): When it is selected, its layout is flex layout.
14949 (section > footer): The header or the footer of a section should not take more than 15% of the container.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014950
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014951 (section#home): The home section has <suites> and <options> parts to be laid out in the middle.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014952 (section#home > options):
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014953 (section#home > suites): The <suites> should not take more than 40% of the width.
14954 (section#home > options > label): The benchmark title.
14955 (section#home > header > h2): The benchmark title.
14956 (section#home > options > label > input[type="number"]): Sets the width of the option edit control.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014957
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014958 (section#running): The running section contain the runner <iframe> which takes the whole area of the <main>.
14959 (section#running > #running-test): This is the <iframe> container.
14960 (section#running > #running-test > iframe): The <iframe> is created by the runner for each test.
14961 (section#running > #progress): This is the progress bar.
14962 (section#running > #progress > #progress-completed): This is another element which grows while the runner is progressing.
14963 (section#running > #record): This the container of the record results table which is shown while running a test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014964
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014965 (section#results):
14966 (section#json):
14967 (section#test-json):
14968 (section#test-graph): All these sections have the same layout. A <data> element is laid out between <header> and <footer>.
14969
14970 (section#results > data):
14971 (section#json > data):
14972 (section#test-json > data):
14973 (section#test-graph > data): The <data> element should take 70% of the <section>.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014974
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014975 (section#test-graph > data > svg):
14976 (.axis line):
14977 (.left-samples): These styles are for the d3 graph.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014978
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014979 (section#test-json > data): This is the style of the JSON <data> element.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000014980
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000014981 (iframe): Deleted.
14982 (label, p): Deleted.
14983 (section > p): Deleted.
14984 (section#home > p): Deleted.
14985 (section#home > p:first-child): Deleted.
14986 (#testContainer): Deleted.
14987 (section#running #progress-completed): Deleted.
14988 (section#results > table): Deleted.
14989 (section#results > table td, th): Deleted.
14990 (section#results > table tr.alt, td): Deleted.
14991 (section#results > table th): Deleted.
14992 (section#json > textarea): Deleted.
14993 (.options): Deleted.
14994 (.options p): Deleted.
14995 (#suites ul): Deleted.
14996 (#suites ul ul): Deleted.
14997 (#suites ul ul input, #suites ul ul label): Deleted.
14998 (#suites.showTests ul ul): Deleted.
14999 (.column): Deleted.
15000 (input[type="number"]): Deleted.
15001 (.buttons): Deleted.
15002 (.small-button): Deleted.
15003 (#graphContainer): Deleted.
15004 (.right-samples): Deleted.
15005 (.sample-time): Deleted.
15006 (.left-mean): Deleted.
15007 (.right-mean): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015008
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015009 * Animometer/runner/resources/animometer.js:
15010 (window.benchmarkRunnerClient.initialize): Initialize the client object with the options and the suites.
15011 (window.benchmarkRunnerClient.willStartFirstIteration): Use new css selectors for results and the record table.
15012 (window.benchmarkRunnerClient.didFinishLastIteration): Move the code which sets the JSON text to sectionsManager.showJSON().
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015013
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015014 (window.sectionsManager): Responsible of managing the <section>s elements inside animometer.html.
15015 (window.sectionsManager._sectionHeaderH1Element): Return the <h1> inside the <header> of a given section.
15016 (window.sectionsManager._sectionDataDivElement): Return the <div> inside the <data> of a given section.
15017 (window.sectionsManager.showScore): Show the score of the last benchmark run.
15018 (window.sectionsManager.showTestName): Show the test name for detailed results <section>.
15019 (window.sectionsManager.showJSON): Shows the JSON text of the last benchmark or for a specific test.
15020 (window.sectionsManager.showSection): Shows a specific <section> in the <main> container.
15021 (window.sectionsManager.setupSectionStyle): Sets css attributes for all the <section>s.
15022 (window.sectionsManager.setupRunningSectionStyle): Sets the css attributes for the running <section> only.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015023
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015024 (window.optionsManager): Responsible of managing the user options and streaming them to/form the localStorage.
15025 (window.optionsManager._optionsElements): Returns the children <input> elements of the <options>.
15026 (window.optionsManager.updateUIFromLocalStorage): Restore the values of the <options> UI elements from the local storage.
15027 (window.optionsManager.updateLocalStorageFromUI): Saves the values of the <options> UI elements to the local storage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015028
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015029 (window.suitesManager): Responsible of managing the user suites and streaming them to/form the localStorage.
15030 (window.suitesManager._treeElement): Returns the suites tree container element.
15031 (window.suitesManager._suitesElements): Returns a list of the suites elements.
15032 (window.suitesManager._checkboxElement): Returns the checkbox element of a given suite.
15033 (window.suitesManager._localStorageNameForTest): Generates a string for the tuple <suite, test> to be saved in the localStorage.
15034 (window.suitesManager._updateSuiteCheckboxState): Updates the state of a suite checkbox from the state of its tests' checkboxes.
15035 (window.suitesManager._updateStartButtonState): Updates the state of the start button from the state of the suites' checkboxes.
15036 (window.suitesManager._onChangeSuiteCheckbox): Called when a suite checkbox is clicked.
15037 (window.suitesManager._onChangeTestCheckbox): Called when a test checkbox is clicked.
15038 (window.suitesManager._createSuiteElement): Creates suite node in the suites tree.
15039 (window.suitesManager._createTestElement): Creates test node in the suites tree.
15040 (window.suitesManager.createElements): Creates the suites tree dynamically from the array Suites.
15041 (window.suitesManager.updateUIFromLocalStorage): Restore the values of the <suites> UI elements from the local storage.
15042 (window.suitesManager.updateLocalStorageFromUI): aves the values of the <suites> UI elements to the local storage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015043
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015044 (window.benchmarkController): This is the UI controller of the animometer.html page.
15045 (window.benchmarkController.initialize): Called when the animometer.html page is loaded.
15046 (window.benchmarkController._runBenchmark): Starts a benchmark run.
15047 (window.benchmarkController.startTest): Called when the "Start Test" button is clicked.
15048 (window.benchmarkController.showResults): Called at the end of the test to show the final results.
15049 (window.benchmarkController.showJson): Called from the results page to show the JSON of the last benchmark run.
15050 (window.benchmarkController.showTestGraph): Called from the results the table to show a graph for the samples of a specific test.
15051 (window.benchmarkController.showTestJSON): Called from the results the table to show a JSON for the samples of a specific test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015052
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015053 (showSection): Deleted.
15054 (startTest): Deleted.
15055 (showResults): Deleted.
15056 (showJson): Deleted.
15057 (showTestGraph): Deleted.
15058 (showTestJSON): Deleted.
15059 (initialize.toggleTestsCheckbox.onchange): Deleted.
15060 (initialize): Deleted.
15061 (updateSuiteSelection): Deleted.
15062 (updateTestSelection): Deleted.
15063 (updateSuiteCheckbox): Deleted.
15064 (localStorageNameForTest): Deleted.
15065 (populateSettings.): Deleted.
15066 (populateSettings): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015067
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015068 * Animometer/runner/resources/benchmark-runner.js:
15069 (BenchmarkRunner): Pass the frameContainer element to the BenchmarkRunner.
15070 (BenchmarkRunner.prototype._appendFrame): Remove unused parameter unwanted styling code.
15071 (BenchmarkRunner.prototype.runMultipleIterations): Use the this._client.iterationCount instead of passing it as a parameter also.
15072
15073 * Animometer/runner/resources/graph.js:
15074 (graph): Calculate the size of the chart from the container element.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015075
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015076 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
15077 (BouncingSvgImage):
15078 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
15079 (BouncingSvgParticlesStage.prototype._createDefs):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015080 (BouncingSvgParticlesStage.prototype._createClipStar):
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015081 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
15082 (BouncingSvgShape.prototype._createShape):
15083 (BouncingSvgShapesStage.prototype.createGradient):
15084 Call DocumentExtension.createSvgElement() instead of calling Utilities.createSvgElement().
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015085
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015086 * Animometer/tests/resources/main.js:
15087 (Animator.prototype.animate):
15088 (Benchmark):
15089 (Benchmark.prototype.update):
15090 * Animometer/tests/resources/stage.js:
15091 (StageBenchmark.prototype.showResults):
15092 Rename the options to match the <input> ids in animometer.html.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015093
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015094 * Animometer/tests/resources/utilities.js:
15095 (window.Utilities.createSvgElement): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015096
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000015097 * Animometer/tests/text/layering-text.html:
15098 * Animometer/tests/text/resources/layering-text.js:
15099 (LayeringTextStage):
15100 (LayeringTextStage.prototype._setFontSize): Sets the size of the text dynamically such that they all fit in one stage.
15101
simon.fraser@apple.com3fa9ae72015-10-30 01:28:23 +0000151022015-10-29 Simon Fraser <simon.fraser@apple.com>
15103
15104 Animometer computes frame rate incorrectly
15105 https://bugs.webkit.org/show_bug.cgi?id=150698
15106
15107 Reviewed by Tim Horton.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015108
simon.fraser@apple.com3fa9ae72015-10-30 01:28:23 +000015109 The existing code incremented this._frameCount after checking against this._dropFrameCount.
15110 This has the effect of setting this._measureTimeOffset one frame too late, so
15111 we were measuring only two frames, not three, and thus computing an incorrect fps.
15112
15113 * Animometer/tests/resources/main.js:
15114 (Animator.prototype.animate):
15115
jonlee@apple.come21b6f52015-10-28 23:11:37 +0000151162015-10-27 Jon Lee <jonlee@apple.com>
15117
15118 Add an option to make the graphics benchmark runs a specific test
15119 https://bugs.webkit.org/show_bug.cgi?id=150528
15120 rdar://problem/23246614
15121
15122 Reviewed by Zalan Bujtas.
15123
15124 Add a checkbox that lets the user list all of the available tests, and select
15125 the ones to run repeatedly. The test checkboxes will update the state of the suite
15126 checkbox. The selected tests are stored in localStorage to make it easy to do
15127 repeated runs.
15128
15129 * Animometer/runner/animometer.html: Add a checkbox to show individual tests.
15130 Update other markup.
15131 * Animometer/runner/resources/animometer.css: Make the settings area a little wider
15132 to accommodate the longer names of the tests
15133 * Animometer/runner/resources/animometer.js:
15134 (startBenchmark): Change the way that the suites are fed into the benchmark
15135 runner. Go through each of the suites and their tests, and create a new Suite
15136 with just the enabled tests. While enumerating store the enabled tests into
15137 localStorage.
15138 (initialize): Initialization routine (taking over populateSettings). When the
15139 checkbox for showing tests is toggled, add or remove a class on #suites to show
15140 the individual tests.
15141 (updateSuiteSelection): Called whenever the user toggles the checkbox for a suite.
15142 Either select all or none of the tests.
15143 (updateTestSelection): Called whenever the user toggles the checkbox for a test.
15144 (updateSuiteCheckbox): Update the state of the test's suite's checkbox to
15145 indeterminate if there is at least one enabled test, unchecked if none are selected,
15146 and checked if all are selected.
15147 (localStorageNameForTest): Helper function to get the name of the test to use as
15148 a key to localStorage.
15149 (populateSettings): Add the tests for each suite into an inner list.
15150
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +0000151512015-10-26 Said Abou-Hallawa <sabouhallawa@apple.com>
15152
15153 Add an option to output the results of the graphics benchmark in JSON format
15154 https://bugs.webkit.org/show_bug.cgi?id=150484
15155 <rdar://problem/23243721>
15156
15157 Reviewed by Darin Adler.
15158
15159 * Animometer/resources/extensions.js:
15160 (ResultsDashboard): A new class to hold the iterations results.
15161 (ResultsDashboard.prototype.push): Appends an iteration results;
15162 (ResultsDashboard.prototype.toJSON): Converts the iterations results to JSON format.
15163
15164 (RecordTable.prototype.clear): Clears the results table.
15165 (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
15166 (RecordTable.prototype._showHeader): Shows the table header titles.
15167 (RecordTable.prototype._showEmpty): Shows an empty table cell.
15168 (RecordTable.prototype._showValue): Shows a number value in the results table.
15169 (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
15170 (RecordTable.prototype._showTest): Shows the results of a single test.
15171 (RecordTable.prototype._showSuite): Shows the results of a single suite.
15172 (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015173 (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations.
15174
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000015175 (ResultsTable): RecordTable was renamed to ResultsTable.
15176 (ResultsTable.prototype.clear): Clears the table element.
15177 (ResultsTable.prototype._showHeaderRow): Shows a row in the results table header.
15178 (ResultsTable.prototype._showHeader): Shows the results table header.
15179 (ResultsTable.prototype._showEmpty): Shows an empty table cell.
15180 (ResultsTable.prototype._showText): Shows a string in a new table cell.
15181 (ResultsTable.prototype._showFixedNumber): Shows a number in a new table cell.
15182 (ResultsTable.prototype._showGraph): Shows a button for the sampled data graph.
15183 (ResultsTable.prototype._showJSON): Shows a button for the sampled data JSON.
15184 (ResultsTable.prototype._showTest): Shows the results of a single test.
15185 (ResultsTable.prototype._showSuite): Shows the results of a single suite.
15186 (ResultsTable.prototype._showIteration): Shows the results of a single iteration.
15187 (ResultsTable.prototype.showRecord): Shows a single iteration for a single test.
15188 (ResultsTable.prototype.showIterations): Shows all the results.
15189 (RecordTable): Deleted.
15190 (RecordTable.prototype.clear): Deleted.
15191 (RecordTable.prototype._showTitles): Deleted.
15192 (RecordTable.prototype._showHeader): Deleted.
15193 (RecordTable.prototype._showEmpty): Deleted.
15194 (RecordTable.prototype._showValue): Deleted.
15195 (RecordTable.prototype._showSamples): Deleted.
15196 (RecordTable.prototype._showTest): Deleted.
15197 (RecordTable.prototype._showSuite): Deleted.
15198 (RecordTable.prototype.showRecord): Deleted.
15199 (RecordTable.prototype.showIterations): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015200
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000015201 * Animometer/resources/sampler.js:
15202 (Sampler.prototype.startSampling): Use forEach.
15203 (Sampler.prototype.sample): Use forEach.
15204 (Sampler.prototype.toJSON): Converts the sampler data to JSON format.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015205
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000015206 * Animometer/resources/strings.js: Added.
15207 This new file will be used to associate the strings used by the benchmark
15208 with IDs. A string can be changed in one place without having to change
15209 all the instances of this string in multiple files. There two groups of
15210 strings in this file. The first one is used by the UI elements and the second
15211 group is used when constructing the results JSON.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015212
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000015213 * Animometer/runner/animometer.html:
15214 * Animometer/runner/resources/animometer.css:
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015215
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000015216 * Animometer/runner/resources/animometer.js:
15217 (window.benchmarkRunnerClient.willAddTestFrame):
15218 (window.benchmarkRunnerClient.willStartFirstIteration):
15219 (window.benchmarkRunnerClient.didRunSuites):
15220 (window.benchmarkRunnerClient.didFinishLastIteration):
15221 Make benchmarkRunnerClient uses ResultsDashboard instead of _iterationsSamplers
15222 Get the JSON from ResultsDashboard.toJSON() and pass it to ResultsTable.showIterations().
15223 Also set the textContent of the "#json" textarea with the results JSON.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015224
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000015225 (showResults): Delete unneeded code.
15226 (showJson): Shows the "json" section.
15227 (showTestGraph): Rename showGraph() to be showTestGraph().
15228 (showTestJSON): Shows the JSON of a single testResults.
15229 (showGraph): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015230
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000015231 * Animometer/runner/resources/tests.js:
15232 Use the string table instead of putting literal strings.
15233
15234 * Animometer/tests/resources/stage.js:
15235 (StageBenchmark.prototype.showResults):
15236 Fix the parameters which are passed to RecordTable.showRecord().
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015237
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000015238 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
15239 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
15240 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
15241 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
15242 * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
15243 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
15244 * Animometer/tests/examples/canvas-electrons.html:
15245 * Animometer/tests/examples/canvas-stars.html:
15246 * Animometer/tests/simple/simple-canvas-paths.html:
15247 * Animometer/tests/template/template-canvas.html:
15248 * Animometer/tests/template/template-css.html:
15249 * Animometer/tests/template/template-svg.html:
15250 * Animometer/tests/text/layering-text.html:
15251 Include the new strings.js file in all the test files.
15252
jonlee@apple.comcc54f1a2015-10-12 23:20:24 +0000152532015-10-12 Jon Lee <jonlee@apple.com>
15254
jonlee@apple.coma1b9f3c2015-10-13 02:12:11 +000015255 Add canvas line dash test
15256 https://bugs.webkit.org/show_bug.cgi?id=150078
15257 <rdar://problem/23082347>
15258
15259 Reviewed by Dean Jackson.
15260
15261 * Animometer/runner/resources/tests.js: Add line dash test.
15262 * Animometer/tests/simple/resources/simple-canvas-paths.js:
15263 (CanvasLineDashStage): Create a new stage with a default dash pattern and stroke style.
15264 Maintain a step which will animate the dash.
15265 (CanvasLineDashStage.prototype.animate): Render the line path with the dash. Increment
15266 the dash offset to animate.
15267 (CanvasPathBenchmark.prototype.createStage): Add the test.
15268
152692015-10-12 Jon Lee <jonlee@apple.com>
15270
jonlee@apple.com74c63922015-10-13 02:11:44 +000015271 Add canvas line path tests
15272 https://bugs.webkit.org/show_bug.cgi?id=150076
15273 <rdar://problem/23082285>
15274
15275 Reviewed by Dean Jackson.
15276
15277 * Animometer/runner/resources/tests.js: Add new line path tests, with different
15278 line joins.
15279 * Animometer/tests/simple/resources/simple-canvas-paths.js:
15280 (CanvasLinePathStage): The stage is the same as the SimpleCanvasPathStrokeStage
15281 but sets the lineJoin on the context.
15282 (CanvasPathBenchmark.prototype.createStage): Add the tests.
15283
152842015-10-12 Jon Lee <jonlee@apple.com>
15285
jonlee@apple.comead6eee2015-10-13 02:11:06 +000015286 Add missing paint objects for arc and arcTo fills
15287 https://bugs.webkit.org/show_bug.cgi?id=150075
15288 <rdar://problem/23082233>
15289
15290 Reviewed by Dean Jackson.
15291
15292 * Animometer/tests/simple/resources/simple-canvas-paths.js: Add missing paint objects
15293 for arcTo and arc segment fills.
15294 (CanvasArcToSegmentFill):
15295 (CanvasArcToSegmentFill.prototype.draw):
15296 (CanvasArcSegmentFill):
15297 (CanvasArcSegmentFill.prototype.draw):
15298
152992015-10-12 Jon Lee <jonlee@apple.com>
15300
jonlee@apple.com709fa182015-10-13 02:10:42 +000015301 Add canvas line segment tests
15302 https://bugs.webkit.org/show_bug.cgi?id=150073
15303 <rdar://problem/23082138>
15304
15305 Reviewed by Dean Jackson.
15306
15307 * Animometer/runner/resources/tests.js: Add new line segment tests, with different
15308 line caps.
15309 * Animometer/tests/simple/resources/simple-canvas-paths.js:
15310 (CanvasLineSegment): Add new line segment paint object.
15311 (CanvasLineSegmentStage): Create a new stage that sets the lineCap.
15312
153132015-10-12 Jon Lee <jonlee@apple.com>
15314
jonlee@apple.com0a1fe602015-10-13 02:10:08 +000015315 Add canvas path fill tests
15316 https://bugs.webkit.org/show_bug.cgi?id=150071
15317 <rdar://problem/23082001>
15318
15319 Reviewed by Dean Jackson.
15320
15321 * Animometer/runner/resources/tests.js: Add new pathTypes for path fills.
15322 * Animometer/tests/simple/resources/simple-canvas-paths.js:
15323 (CanvasLinePoint): Add basic point for a line, and call lineTo.
15324 (SimpleCanvasPathFillStage): Add a new stage similar to SimpleCanvasPathStrokeStage.
15325 (CanvasPathBenchmark.prototype.createStage): Add the tests.
15326
153272015-10-12 Jon Lee <jonlee@apple.com>
15328
jonlee@apple.comecfc09b2015-10-13 01:18:03 +000015329 Add canvas path tests
15330 https://bugs.webkit.org/show_bug.cgi?id=150067
15331 rdar://problem/23081463
15332
15333 Reviewed by Dean Jackson.
15334
15335 * Animometer/runner/resources/tests.js: Add a quadratic and bezier path test.
15336
15337 * Animometer/tests/simple/resources/simple-canvas.js:
15338 (SimpleCanvasStage.prototype.tune): This kind of test joins all of the segments
15339 into one long path, and tries to render that one path. Random points make it
15340 difficult to tell what is going on, so add a parameter to the constructor to
15341 confine the area where the random coordinates can land. The more complicated the
15342 case is, the larger an area the path will cover. Add an artificial minimum so
15343 that the first 200 points aren't confined to a space that is too small.
15344
15345 * Animometer/tests/simple/resources/simple-canvas-paths.js:
15346 (SimpleCanvasPathStrokeStage): Add a new kind of stage that inherits from
15347 SimpleCanvasStage. Each time the frame animates a random line width and stroke
15348 color are chosen. The path setup is done outside of each paint object.
15349 (CanvasQuadraticPoint): This point just calls quadraticCurveTo.
15350 (CanvasPathBenchmark.prototype.createStage): Add the tests.
15351
153522015-10-12 Jon Lee <jonlee@apple.com>
15353
jonlee@apple.com93112af2015-10-13 01:11:45 +000015354 Add basic canvas tests
15355 https://bugs.webkit.org/show_bug.cgi?id=150066
15356 rdar://problem/23081143
15357
15358 Reviewed by Dean Jackson.
15359
15360 This adds a new test suite that will cover all of the path-based canvas calls.
15361 The patch will be divided up to cover tests with similar techniques.
15362
15363 The simplest version uses a SimpleCanvasStage.
15364
15365 * Animometer/runner/resources/tests.js: Add tests for quadratic, bezier, arcTo,
15366 arc, and rect segments. Also include arcTo, arc, and rect fills.
15367 * Animometer/tests/resources/stage.js:
15368 (Stage.prototype.randomBool): Added for counterclockwise property for arc segments.
15369 (Stage.prototype.randomInt): Fix how values are rounded, used by randomBool. It should
15370 round instead of flooring everything.
15371 * Animometer/tests/simple/resources/simple-canvas.js: Added. Defines common classes
15372 used by all simple canvas tests. The page reads best bottom to top.
15373 (SimpleCanvasStage): Basic stage. Pass a canvasObject which will be used to create new
15374 objects as needed in tune().
15375 (SimpleCanvasStage.prototype.tune): Modeled on other tests. Adds and removed objects
15376 as specified by the provided |count|.
15377 (SimpleCanvasStage.prototype.animate): Iterate over all the objects and ask them to draw.
15378 There is no "animating" of the objects; they will just paint statically on the canvas.
15379 (SimpleCanvasAnimator): Basic animator clears the canvas prior to painting.
15380 (SimpleCanvasBenchmark): Hard-code the feedback loop parameters instead of including
15381 them in the query parameters to the test URLs.
15382 (SimpleCanvasBenchmark.prototype.createAnimator):
15383 * Animometer/tests/simple/simple-canvas-paths.html: Added.
15384
15385 * Animometer/tests/simple/resources/simple-canvas-paths.js: Added. There is no "animating"
15386 of these objects--they just paint statically on the canvas.
15387 (CanvasQuadraticSegment): Paint a quadratic segment stroke.
15388 (CanvasBezierSegment): Paint a bezier segment stroke.
15389 (CanvasArcToSegment): Paint an arcTo stroke.
15390 (CanvasArcSegment): Paint an arc stroke.
15391 (CanvasRect): Paint a rect.
15392 (CanvasRectFill): Paint a filled rect.
15393
15394 (CanvasPathBenchmark):
15395 (CanvasPathBenchmark.prototype.createStage): Look for the pathType and create the
15396 stage using the right paint object.
15397 (window.benchmarkClient.create):
15398
153992015-10-12 Jon Lee <jonlee@apple.com>
15400
jonlee@apple.com468526c2015-10-13 00:11:16 +000015401 Refactor tune() to pass in an integer-based count
15402 https://bugs.webkit.org/show_bug.cgi?id=150060
15403 <rdar://problem/23079425>
15404
15405 Reviewed by Dean Jackson.
15406
15407 All of the tune functions do an initial step of flooring the
15408 # of painting objects to add or remove. Factor that out since
15409 the complexity of all of these tests is always expressed in terms
15410 of countable items.
15411
15412 * Animometer/tests/resources/main.js:
15413 (Benchmark.prototype.update): Update the tuneValue.
15414
15415 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
15416 (BouncingParticlesStage.prototype.tune): Remove the count adjustment.
15417 * Animometer/tests/examples/resources/canvas-electrons.js:
15418 (CanvasElectronsStage.prototype.tune): Ditto.
15419 * Animometer/tests/examples/resources/canvas-stars.js:
15420 (CanvasStarsStage.prototype.tune): Ditto.
15421 * Animometer/tests/text/resources/layering-text.js:
15422 (LayeringTextStage.prototype.tune): Ditto.
15423
154242015-10-12 Jon Lee <jonlee@apple.com>
15425
jonlee@apple.combf0aa9e2015-10-13 00:03:31 +000015426 Store test-interval in localStorage
15427 https://bugs.webkit.org/show_bug.cgi?id=150055
15428 <rdar://problem/23078879>
15429
15430 Reviewed by Dean Jackson.
15431
15432 * Animometer/runner/resources/animometer.js:
15433 (populateSettings): Keep track of the specified test interval in localStorage
15434 to make it easy to repeat a test suite.
15435
154362015-10-12 Jon Lee <jonlee@apple.com>
15437
jonlee@apple.com36ff07b2015-10-12 23:25:41 +000015438 Remove "../tests/" from the URLs of all tests
15439 https://bugs.webkit.org/show_bug.cgi?id=150054
15440 <rdar://problem/23078784>
15441
15442 Reviewed by Dean Jackson.
15443
15444 Presumably all tests will be running from the tests/ directory,
15445 so we don't have to specify it in all of the test URLs.
15446
15447 * Animometer/runner/resources/benchmark-runner.js:
15448 (BenchmarkRunnerState.prototype.prepareCurrentTest): Prepend
15449 "../tests/" to all tests.
15450 * Animometer/runner/resources/tests.js: Remove "../tests/" from
15451 all URLs.
15452
154532015-10-12 Jon Lee <jonlee@apple.com>
15454
jonlee@apple.comdded8212015-10-12 23:22:23 +000015455 Refactor test suites to a separate class.
15456 https://bugs.webkit.org/show_bug.cgi?id=150053
15457 <rdar://problem/23078645>
15458
15459 Reviewed by Dean Jackson.
15460
15461 Create a Suite class to refactor out prepare() and run().
15462 Generate the checkboxes representing the suites using Suites
15463 instead of maintaining a separate list. Also, save the
15464 selections out to localStorage.
15465
15466 * Animometer/runner/animometer.html: Remove the explicitly listed
15467 suites. These will be generated from Suites instead.
15468 * Animometer/runner/resources/animometer.js:
15469 (populateSettings): Iterate through Suites, and create the
15470 label and checkbox. Attach the Suite object to the checkbox so
15471 when the benchmark is started, we get direct access. Initialize
15472 the checkmark based on its value in localStorage. Set this to
15473 run when DOMContentLoaded is dispatched.
15474 (startBenchmark): Grab all of the checkboxes, inspect their
15475 values, add it to enabledSuites if selected. Remember whether
15476 the suite was enabled in localStorage, so that it's easy to do
15477 repeated runs.
15478 * Animometer/runner/resources/tests.js:
15479 (Suite): Create a new Suite class. Refactor out prepare() and
15480 run(), since all of them have the same implementation. Populate
15481 Suites with Suite instances instead of generic objects.
15482
154832015-10-12 Jon Lee <jonlee@apple.com>
15484
15485 Update graph styles for legibility.
15486 https://bugs.webkit.org/show_bug.cgi?id=150052
15487 <rdar://problem/23078503>
15488
15489 Reviewed by Dean Jackson.
15490
15491 * Animometer/runner/resources/animometer.css: Update colors and
15492 stroke thicknesses to make the graphs easier to read.
15493 (.smaple-time): Correct to .sample-time
15494 * Animometer/runner/resources/graph.js:
15495 (graph): Ditto.
15496
154972015-10-12 Jon Lee <jonlee@apple.com>
15498
jonlee@apple.comcc54f1a2015-10-12 23:20:24 +000015499 Update graph styles for legibility.
15500 https://bugs.webkit.org/show_bug.cgi?id=150052
15501 <rdar://problem/23078503>
15502
15503 Reviewed by Dean Jackson.
15504
15505 * Animometer/runner/resources/animometer.css: Update colors and
15506 stroke thicknesses to make the graphs easier to read.
15507 (.smaple-time): Correct to .sample-time
15508 * Animometer/runner/resources/graph.js:
15509 (graph): Ditto.
15510
fpizlo@apple.comd98aa432015-10-12 22:42:21 +0000155112015-10-12 Filip Pizlo <fpizlo@apple.com>
15512
15513 Unreviewed, revert an unintended commit.
15514
15515 * JetStream/Octane2/crypto.js:
15516 (montRevert):
15517 (montReduce):
15518
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +0000155192015-10-05 Said Abou-Hallawa <sabouhallawa@apple.com>
15520
15521 Add a graphics benchmark
15522 https://bugs.webkit.org/show_bug.cgi?id=149053
15523 <rdar://problem/18984169>
15524
15525 Reviewed by Dean Jackson.
15526
15527 Instead of measuring the FPS of the animation, this benchmark measures the
15528 test complexity when rendering at a set-point FPS which should be lower
15529 than 60 FPS. This benchmark tries to stay at the set-point FPS by using
15530 a closed loop control system PID function. The gain of the system is passed
15531 as a parameter when running the test. Measuring the FPS faithfully results
15532 very fluctuating values. A Kalman filter is used to give a better estimate
15533 for the current FPS.
15534
15535 The animation of the tests is done manually. requestAnimationFrame() is
15536 called with a callback. Inside this callback, the test is animating by
15537 changing the positions of the elements inside the page. The test complexity
15538 may change also if the current FPS is not equal to the desired FPS.
15539
15540 In this patch, the benchmark and the tests are included. The shared code
15541 and the tests runner are included in separate patches.
15542
15543 * Animometer/runner/animometer.html:
15544 * Animometer/runner/resources/animometer.js:
15545 Add two new examples for more complex animation techniques.
15546 Add an option to show/hide the test running results which is off by default.
15547
15548 * Animometer/runner/resources/tests.js: Added.
15549 (suiteFromName): Returns a suite given its name.
15550 (testFromName): Returns a test given its suite and name.
15551
15552 * Animometer/tests: Added.
15553 This directory includes all the test suites to be run by the benchmark.
15554 runner. All the tests should try to run on three stages: CSS, canvas and
15555 SVG.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015556
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015557 * Animometer/tests/bouncing-particles: Added.
15558 * Animometer/tests/bouncing-particles/resources: Added.
15559 The bouncing particles test is an example of a simple animation technique.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015560
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015561 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Added.
15562 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
15563 * Animometer/tests/bouncing-particles/bouncing-css-images.html: Added.
15564 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Added.
15565 * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Added.
15566 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
15567 Bouncing particles test pages.
15568
15569 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Added.
15570 (BouncingParticle): Base class for a bouncing particle.
15571 (BouncingParticle.prototype.center): Returns the center point or the particle.
15572 (BouncingParticle.prototype.animate): Moves the particle based on its current position, angle and velocity.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015573
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015574 (BouncingParticlesAnimator): A sub class of Animator.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015575
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015576 (BouncingParticlesStage): Represents the container of all the bouncing particles.
15577 (BouncingParticlesStage.prototype.parseShapeParamters): Gets the shape parameters for shape animating tests.
15578 (BouncingParticlesStage.prototype.randomRotater): Creates a rotater for the particles.
15579 (BouncingParticlesStage.prototype.animate): Animates all the particles.
15580 (BouncingParticlesStage.prototype.tune): Changes the test by adding or removing particles.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015581
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015582 (BouncingParticlesBenchmark): Runs the benchmark for bouncing particles test.
15583 (BouncingParticlesBenchmark.prototype.createAnimator): Creates an animator of type BouncingParticlesAnimator.
15584
15585 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
15586 (BouncingCssShape): A sub class of BouncingParticle for animating CSS shapes.
15587 (BouncingCssShape.prototype._createSpan): Creates a <span> element and takes the shape and clipping classes into consideration.
15588 (BouncingCssShape.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
15589 (BouncingCssShape.prototype.animate): Rotates and moves the shape to a new location.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015590
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015591 (BouncingCssShapesStage): A sub class of BouncingParticlesStage for animating CSS shapes.
15592 (BouncingCssShapesStage.prototype.createParticle): Creates a particle of type BouncingCssShape.
15593 (BouncingCssShapesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015594
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015595 (BouncingCssShapesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS shapes.
15596 (BouncingCssShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCssShapesStage.
15597 (window.benchmarkClient.create): Creates a benchmark of type BouncingCssShapesBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015598
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015599 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
15600 (BouncingCssImage): A sub class of BouncingParticle for animating CSS images.
15601 (BouncingCssImage.prototype._move): Move the particle to a new location. Apply transform since it does not require layout.
15602 (BouncingCssImage.prototype.animate): Rotates and moves the shape to a new location.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015603
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015604 (BouncingCssImagesStage): A sub class of BouncingParticlesStage for animating CSS images.
15605 (BouncingCssImagesStage.prototype.createParticle): Creates a particle of type BouncingCssImage.
15606 (BouncingCssImagesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015607
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015608 (BouncingCssImagesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS images.
15609 (BouncingCssImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCssImagesStage.
15610 (window.benchmarkClient.create): Creates a benchmark of type BouncingCssImagesBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015611
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015612 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
15613 (BouncingCanvasParticle): A base sub-class of BouncingParticle for animating canvas particles.
15614 (BouncingCanvasParticle.prototype._applyRotation): Apply the particle rotation-around-center transform to the canvas context.
15615 (BouncingCanvasParticle.prototype._applyClipping): Apply the particle clipping to the canvas context.
15616 (BouncingCanvasParticle.prototype._draw): A non-implemented version of the drawing function.
15617 (BouncingCanvasParticle.prototype.animate): Carries out all the steps to redraw the canvas particle.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015618
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015619 (BouncingCanvasParticlesStage): A base sub-class of BouncingParticlesStage for animating canvas particles.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015620
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015621 (BouncingCanvasParticlesAnimator): A concrete sub-class of BouncingParticlesAnimator for animating canvas particles.
15622 (BouncingCanvasParticlesAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015623
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015624 (BouncingCanvasParticlesBenchmark): A base sub-class of StageBenchmark for animating canvas particles.
15625 (BouncingCanvasParticlesBenchmark.prototype.createAnimator): Creates the canvas particles animator.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015626
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015627 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
15628 (BouncingCanvasShape): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
15629 (BouncingCanvasShape.prototype._applyFill): Sets the fillStyle in the canvas context.
15630 (BouncingCanvasShape.prototype._drawShape): Carries out the actual drawing.
15631 (BouncingCanvasShape.prototype._draw): Carries out all the steps to draw the shape.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015632
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015633 (BouncingCanvasShapesStage): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
15634 (BouncingCanvasShapesStage.prototype.createParticle): Creates a particle of type BouncingCanvasShape.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015635
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015636 (BouncingCanvasShapesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas shapes.
15637 (BouncingCanvasShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasShapesStage.
15638 (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasShapesBenchmark.
15639
15640 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
15641 (BouncingCanvasImage): A concrete sub-class of BouncingCanvasParticle for animating canvas images.
15642 (BouncingCanvasImage.prototype._draw): Draws an image on the context of a canvas.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015643
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015644 (BouncingCanvasImagesStage): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
15645 (BouncingCanvasImagesStage.prototype.createParticle): Creates a particle of type BouncingCanvasImage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015646
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015647 (BouncingCanvasImagesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
15648 (BouncingCanvasImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasImagesStage.
15649 (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasImagesBenchmark.
15650
15651 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
15652 (BouncingSvgParticle): A base sub-class of BouncingParticle for animating SVG particles.
15653 (BouncingSvgParticle.prototype._applyClipping): Apply the particle clipping by setting the 'clip-path' attribute of the SVGElement.
15654 (BouncingSvgParticle.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
15655 (BouncingSvgParticle.prototype.animate): Rotates and moves the shape to a new location.
15656 (BouncingSvgParticlesStage): A sub class of BouncingParticlesStage for animating SVGElements.
15657 (BouncingSvgParticlesStage.prototype._createDefs): Creates an SVGDefsElement.
15658 (BouncingSvgParticlesStage.prototype._ensureDefsIsCreated): Ensures there is only one SVGDefsElement is created.
15659 (BouncingSvgParticlesStage.prototype._createClipStar): Creates an SVGClipPathElement and sets its 'd' attribute to a star like shape.
15660 (BouncingSvgParticlesStage.prototype.ensureClipStarIsCreated): Ensure there is only one star SVGClipPathElement is created.
15661 (BouncingSvgParticlesStage.prototype.particleWillBeRemoved): Remove the corresponding element form the parent children list.
15662
15663 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
15664 (BouncingSvgShape): A concrete sub-class of BouncingSVGParticle for animating SVG shapes.
15665 (BouncingSvgShape.prototype._createShape): Creates an SVG shape.
15666 (BouncingSvgShape.prototype._applyFill): Applies the selected fill style to the SVG shape.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015667
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015668 (BouncingSvgShapesStage): A concrete sub-class of BouncingSvgParticlesStage for animating SVG shapes.
15669 (BouncingSvgShapesStage.prototype.createGradient): Creates an SVGLinearGradientElement.
15670 (BouncingSvgShapesStage.prototype.createParticle): Creates a particle of type BouncingSvgShape.
15671 (BouncingSvgShapesStage.prototype.particleWillBeRemoved): Ensures the attached SVGLinearGradientElement is removed from the SVGDefsElement.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015672
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015673 (BouncingSvgShapesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
15674 (BouncingSvgShapesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgShapesStage.
15675 (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgShapesBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015676
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015677 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
15678 (BouncingSvgImage): A concrete sub-class of BouncingSVGParticle for animating SVG images.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015679
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015680 (BouncingSvgImagesStage): A concrete sub-class of BouncingSVGParticlesBenchmark for animating SVG images.
15681 (BouncingSvgImagesStage.prototype.createParticle): Creates a particle of type BouncingSvgImage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015682
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015683 (BouncingSvgImagesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
15684 (BouncingSvgImagesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgImagesStage.
15685 (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgImagesBenchmark.
15686
15687 * Animometer/tests/examples: Added.
15688 * Animometer/tests/examples/canvas-electrons.html: Added.
15689 * Animometer/tests/examples/canvas-stars.html: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015690 Examples test pages.
15691
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015692 * Animometer/tests/examples/resources: Added.
15693 * Animometer/tests/examples/resources/canvas-electrons.js: Added.
15694 (CanvasElectron): An object which draws and animate a electron object on a canvas stage.
15695 (CanvasElectron.prototype._draw): Draws the electron object.
15696 (CanvasElectron.prototype.animate): Animates the electron object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015697
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015698 (CanvasElectronsStage): A concrete sub-class of Stage for animating electrons.
15699 (CanvasElectronsStage.prototype.tune): Changes the test by adding or removing elements.
15700 (CanvasElectronsStage.prototype.animate): Animates the test elements.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015701
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015702 (CanvasElectronsAnimator): A concrete sub-class of StageAnimator for animating canvas electrons.
15703 (CanvasElectronsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015704
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015705 (CanvasElectronsBenchmark): A concrete sub-class of StageBenchmark for animating electrons.
15706 (CanvasElectronsBenchmark.prototype.createStage): Creates a stage of CanvasElectronsStage.
15707 (CanvasElectronsBenchmark.prototype.createAnimator): Creates an animator of type CanvasElectronsAnimator.
15708 (window.benchmarkClient.create): Creates a benchmark of type CanvasElectronsBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015709
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015710 * Animometer/tests/examples/resources/canvas-stars.js: Added.
15711 (CanvasStar): An object which draws and animate a star object on a canvas stage.
15712 (CanvasStar.prototype._draw): Draws the star object.
15713 (CanvasStar.prototype.animate): Animates the star object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015714
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015715 (CanvasStarsStage): A concrete sub-class of Stage for animating stars.
15716 (CanvasStarsStage.prototype.tune): Changes the test by adding or removing elements.
15717 (CanvasStarsStage.prototype.animate): Animates the test elements.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015718
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015719 (CanvasStarsAnimator): A concrete sub-class of StageAnimator for animating canvas stars.
15720 (CanvasStarsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015721
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015722 (CanvasStarsBenchmark): A concrete sub-class of Benchmark for animating stars.
15723 (CanvasStarsBenchmark.prototype.createStage): Creates a stage of CanvasStarsStage.
15724 (CanvasStarsBenchmark.prototype.createAnimator): Creates an animator of type CanvasStarsAnimator.
15725 (window.benchmarkClient.create): Creates a benchmark of type CanvasStarsBenchmark.
15726
15727 * Animometer/tests/resources: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015728 This directory includes the script which is required to run an adaptive
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015729 graphics benchmark. From an empty test page, the set of classes in this
15730 directory are responsible for measuring the current frame rate and
15731 changing the test to reach a desired FPS. It keeps asking the test page
15732 to tune itself by a certain value to increase or decrease the frame rate.
15733 It's also responsible for sampling the test state and the corresponding
15734 frame rate.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015735
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015736 * Animometer/tests/resources/main.js: Added.
15737 (BenchmarkState): Tracks the state of the benchmark test.
15738 (BenchmarkState.prototype._timeOffset): Returns the timeOffset of a stage.
15739 (BenchmarkState.prototype._message): Returns the message of a stage.
15740 (BenchmarkState.prototype.update): Sets the currentTimeOffset to a new value.
15741 (BenchmarkState.prototype.samplingTimeOffset): Returns the timeOffset of the sampling stage.
15742 (BenchmarkState.prototype.currentStage): Returns the current stage of the benchmark.
15743 (BenchmarkState.prototype.currentMessage): Returns the message of the current stage and timeOffset.
15744 (BenchmarkState.prototype.currentProgress): Returns a percentage of how much the benchmark is running.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015745
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015746 (Animator): Manages animating the test.
15747 (Animator.prototype.start): Called if animating using setInterval is requested.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015748 (Animator.prototype.timeDelta): Returns the current timeDelta
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015749 (Animator.prototype.animate): Manages the test animation.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015750 (Animator.prototype.animateLoop): Called if animating using requestAnimationFrame is requested.
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015751
15752 (Benchmark): Manages running the test benchmark and recording the sampled data.
15753 (Benchmark.prototype.start): Starts the benchmark.
15754 (Benchmark.prototype.update): Called from the animator.animate() to change the complexity of the test.
15755 (Benchmark.prototype.record): Shows the current (not final) results of the benchmark.
15756 (Benchmark.prototype.resolveWhenFinished): Spins until the benchmark is finished and returns its results.
15757 (Benchmark.prototype.run): Starts the test, runs it, waits until it is finished and return its results.
15758 (window.runBenchmark): Called from the benchmark runner through the suite controller run-callback.
15759
15760 * Animometer/tests/resources/math.js: Added.
15761 (Matrix): A matrix object.
15762 (Vector3): A vector of size 3 object.
15763 (Matrix3): A matrix of size 3x3 object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015764
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015765 (PIDController): Closed-loop controller for a set-point y.
15766 (PIDController.prototype._sat): Limits the output to a certain range.
15767 (PIDController.prototype.tune): Given the current output of a system, it produces a new pid value for tuning it.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015768
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015769 (KalmanEstimator): Implement Kalman filter to get an estimate for a sampled data point.
15770 (KalmanEstimator.prototype.estimate): Returns an estimate for for a sampled data point.
15771
15772 * Animometer/tests/resources/utilities.js: Added.
15773 (window.Utilities._parse): Given a separator character, it pareses a string to a set of <key, value> pairs.
15774 (window.Utilities.parseParameters): Parses a test parameters.
15775 (window.Utilities.parseArguments): Parses a tag arguments.
15776 (window.Utilities.extendObject): Adds the attributes and their values of an object to another object.
15777 (window.Utilities.copyObject): Copies the attributes and their values of an object to a new object.
15778 (window.Utilities.mergeObjects): Copies the attributes and their values of two objects to a new object.
15779 (window.Utilities.createSvgElement): Creates an SVGElement given its name and its attributes.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015780
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015781 * Animometer/tests/resources/stage.css: Added.
15782 * Animometer/tests/resources/stage.js: Added.
15783 (Rotater): Manages rotating an angle within a fixed time interval.
15784 (Rotater.prototype.get interval): Returns the time interval which is required to rotate 360 degrees.
15785 (Rotater.prototype.next): Moves the current time by a delta.
15786 (Rotater.prototype.degree): Returns the current rotating degree.
15787 (Rotater.prototype.rotateZ): Returns CSS formatted transform rotateZ() string for the current degree.
15788 (Rotater.prototype.rotate): Returns SVG formatted transform rotate() string for the current degree.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015789
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015790 (Stage): A base class for managing the test complexity and test animation.
15791 (Stage.prototype.get size): Returns the size of the stage excluding the CSS padding.
15792 (Stage.prototype.random): Returns a random float.
15793 (Stage.prototype.randomInt): Returns a random integer.
15794 (Stage.prototype.randomPosition): Returns a random position.
15795 (Stage.prototype.randomSquareSize): Returns a square size.
15796 (Stage.prototype.randomVelocity): Returns a random velocity.
15797 (Stage.prototype.randomAngle): Returns a random angle.
15798 (Stage.prototype.randomColor): Returns a random color not too dark and not too light.
15799 (Stage.prototype.randomRotater): Creates a random rotater. Its velocity depends on choosing a random rotation time interval.
15800 (Stage.prototype.tune): A not-implemented version of this function.
15801 (Stage.prototype.animate): A not-implemented version of this function.
15802 (Stage.prototype.clear): Clears the stage from all its animation elements.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015803
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015804 (StageAnimator): A base class for the stage-based animators.
15805 (StageAnimator.prototype.animate): Calls Animator.animate() which updates the test page and then calls Stage.animate() to force redraw.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015806
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015807 (StageBenchmark): A base class for the stage-based benchmarks.
15808 (StageBenchmark.prototype.createStage): Creates the default stage.
15809 (StageBenchmark.prototype.createAnimator): Creates the default animator.
15810 (StageBenchmark.prototype.tune): Delegates the call to stage.
15811 (StageBenchmark.prototype.clear): Delegates the call to stage.
15812 (StageBenchmark.prototype.showResults): Shows the results/progress through its recordTable and progressBar.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015813
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015814 * Animometer/tests/resources/yin-yang.png: Added.
15815 * Animometer/tests/resources/yin-yang.svg: Added.
15816 These images are shared among all the tests.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015817
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015818 * Animometer/tests/template: Added.
15819 * Animometer/tests/template/resources: Added.
15820 This directory includes template tests which do nothing. They can be used
15821 to author new tests. Animated items can be created, moved and redrawn by
15822 removing the TODO comments in the script files and writing actual code.
15823
15824 * Animometer/tests/template/template-css.html: Added.
15825 * Animometer/tests/template/template-canvas.html: Added.
15826 * Animometer/tests/template/template-svg.html: Added.
15827 Template test pages. They can be used as they are. CSS attributes or hidden
15828 elements can be added to these derived test pages if needed.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015829
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015830 * Animometer/tests/template/resources/template-css.js: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015831
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015832 (TemplateCssStage): A stage to create and animate HTMLElements.
15833 (TemplateCssStage.prototype.tune): Changes the test by adding or removing elements.
15834 (TemplateCssStage.prototype.animate): Animates the test elements.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015835 (TemplateCssBenchmark):
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015836 (TemplateCssBenchmark.prototype.createStage): Creates the test stage.
15837 (window.benchmarkClient.create): Creates a benchmark of type TemplateCssBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015838
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015839 * Animometer/tests/template/resources/template-canvas.js: Added.
15840 (TemplateCanvasObject):
15841 (TemplateCanvasObject.prototype._draw): Draws the objects on the canvas context.
15842 (TemplateCanvasObject.prototype.animate): Moves and redraws the object.
15843 (TemplateCanvasStage): A stage to create and animate drawing elements.
15844 (TemplateCanvasStage.prototype.tune): hanges the test by adding or removing elements.
15845 (TemplateCanvasStage.prototype.animate): Animates the test elements.
15846 (TemplateCanvasAnimator.prototype.animate): Starts the animation every frame.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015847 (TemplateCanvasBenchmark):
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015848 (TemplateCanvasBenchmark.prototype.createStage): Creates a stage of type TemplateCanvasStage.
15849 (TemplateCanvasBenchmark.prototype.createAnimator): Creates a animator of type TemplateCanvasAnimator.
15850 (window.benchmarkClient.create): Creates a benchmark of type TemplateCanvasBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015851
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015852 * Animometer/tests/template/resources/template-svg.js: Added.
15853 (TemplateSvgStage): A stage to create and animate SVGElements.
15854 (TemplateSvgStage.prototype.tune): Changes the test by adding or removing elements.
15855 (TemplateSvgStage.prototype.animate): Animates the test elements.
15856 (TemplateSvgBenchmark.prototype.createStage): Creates a stage of type TemplateSvgStage.
15857 (window.benchmarkClient.create): Creates a benchmark of type TemplateSvgBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015858
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015859 * Animometer/tests/text: Added.
15860 * Animometer/tests/text/resources: Added.
15861 This directory includes the text animating tests which currently runs
15862 on CSS stage only.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015863
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015864 * Animometer/tests/text/layering-text.html: Added.
15865 Text test page.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015866
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000015867 * Animometer/tests/text/resources/layering-text.js: Added.
15868 (LayeringTextStage): Represents the container of all the stacked text layers.
15869 (LayeringTextStage.parseTextItem): Parses a textItem which may be an opening tag, a closing tag or a self-closing tag.
15870 (LayeringTextStage.isOpeningTextItem): Returns true if the textItem is an opening tag e.g. '<ol>'.
15871 (LayeringTextStage.isClosingTextItem): Returns true if the textItem is an closing tag e.g. '</ol>.
15872 (LayeringTextStage.textItemsFlags.LayeringTextStage.textItems.map): Calculates and stores isOpening and isClosing flags for each textItem.
15873 (LayeringTextStage.isColorableTextItem): Returns true if the textItem is self-closing tag e.g. '<p>...</p>'.
15874 (LayeringTextStage.isInsertableTextItem): Returns true if the textItems causes a new element to be added to the text layers.
15875 (LayeringTextStage.colorableTextItems.LayeringTextStage.textItemsFlags.filter): Number of colorable textItems.
15876 (LayeringTextStage.insertableTextItems.LayeringTextStage.textItemsFlags.filter): Number of insertable textItems.
15877 (LayeringTextStage.colorIndexToTextElementIndex): Maps from colorIndex [0..colorableTextItems-1] to textElementIndex [0..insertableTextItems-1].
15878 (LayeringTextStage.prototype._nextTextItem): Moves the _textItemIndex one step forward in a loop [0..LayeringTextStage.textItems.length-1].
15879 (LayeringTextStage.prototype._previousTextItem): Moves the _textItemIndex one step backward in a loop.
15880 (LayeringTextStage.prototype._pushTextElement): Creates a new textItemElement and adds it to the topmost container <div>.
15881 (LayeringTextStage.prototype._popTextElement): Removes the last textItemElement from the topmost container <div>.
15882 (LayeringTextStage.prototype._colorTextItem): Changes the background color of a single colorable textElement. The index advances in a circle [0..colorableTextItems-1].
15883 (LayeringTextStage.prototype.animate): Changes the background color and the text color of the textElements such that a redraw is enforced.
15884 (LayeringTextStage.prototype.tune): Adds or removes textElements to the stage.
15885
15886 (LayeringTextBenchmark): Runs the benchmark for the layering text test.
15887 (LayeringTextBenchmark.prototype.createStage): Creates a stage of type LayeringTextStage.
15888 (window.benchmarkClient.create): Creates a benchmark of type LayeringTextBenchmark.
15889
commit-queue@webkit.org85135692015-10-02 22:15:22 +0000158902015-10-02 Said Abou-Hallawa <sabouhallawa@apple.com>
15891
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +000015892 Add shared code for a new a graphics benchmark
15893 https://bugs.webkit.org/show_bug.cgi?id=149691
15894
15895 Reviewed by Ryosuke Niwa.
15896
15897 This set of classes will be shared and used by the tests and the runner
15898 of a new graphics benchmark.
15899
15900 * Animometer/resources: Added.
15901 * Animometer/resources/algorithm.js: Added.
15902 (Array.prototype.swap): Swaps two elements in an array.
15903 (Heap): Binary Min/Max Heap object
15904 (Heap.prototype._parentIndex): Given the child node index, it returns the parent index.
15905 (Heap.prototype._leftIndex): Given the parent node index, it returns the left node index.
15906 (Heap.prototype._rightIndex): Given the parent node index, it returns the right node index.
15907 (Heap.prototype._childIndex): Given the parent node index, it returns the child index that may violate the heap property.
15908 (Heap.prototype.init): Initializes the heap state.
15909 (Heap.prototype.top): Returns the value stored at the top of the heap.
15910 (Heap.prototype.push): Pushes a new node at the top of the heap.
15911 (Heap.prototype.pop): Extracts the top node of the heap.
15912 (Heap.prototype._bubble): Fixes the heap property by moving upward.
15913 (Heap.prototype._sink): Fixes the heap property by moving downward.
15914 (Heap.prototype.str): Prints the nodes of the heap to a string.
15915 (Heap.prototype.values): Returns the last "size" heap elements values.
15916
15917 (Algorithm.createMinHeap): Creates a size-bounded min-heap object.
15918 (Algorithm.createMaxHeap): Creates a size-bounded max-heap object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015919
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +000015920 * Animometer/resources/extensions.js: Added.
15921 (Point): Point object but can be used as size also.
15922 (Point.pointOnCircle): Given, the radius of the circle and the angle of the point, it returns a point object.
15923 (Point.pointOnEllipse): Given, the radiuses of the ellipse and the angle of the point, it returns a point object.
15924 (Point.prototype.get width): Should be called when the point is used as size.
15925 (Point.prototype.get height): Should be called when the point is used as size.
15926 (Point.prototype.get center): Should be called when the point is used as size.
15927 (Point.prototype.add): Returns a new point = this + other.
15928 (Point.prototype.subtract): Returns a new point = this - other.
15929 (Point.prototype.multiply): Returns a new point = this * other.
15930 (Point.prototype.move): Moves the point in a given direction, velocity, time period.
15931
15932 (Insets): Represents borders of a container.
15933 (Insets.prototype.get width): Returns left + right.
15934 (Insets.prototype.get height): Returns top + bottom.
15935
15936 (SimplePromise):
15937 (SimplePromise.prototype.then):
15938 (SimplePromise.prototype.resolve):
15939 Moved from Animometer/runner/resources/benchmark-runner.js since tests also need it.
15940
15941 (Options): Benchmark running options as they are set by the user.
15942
15943 (ProgressBar): Manages a progress bar element. The progress bar is divided into equal length ranges.
15944 (ProgressBar.prototype._progressToPercent): Converts the progress into a percentage.
15945 (ProgressBar.prototype.incRange): Moves to the next range (a range is the running time of a single test).
15946 (ProgressBar.prototype.setPos): Draws the current progress in the current range.
15947
15948 (RecordTable): Shows the results of running a benchmark in a tabular form.
15949 (RecordTable.prototype.clear): Clears the results table.
15950 (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
15951 (RecordTable.prototype._showHeader): Shows the table header titles.
15952 (RecordTable.prototype._showEmpty): Shows an empty table cell.
15953 (RecordTable.prototype._showValue): Shows a number value in the results table.
15954 (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
15955 (RecordTable.prototype._showTest): Shows the results of a single test.
15956 (RecordTable.prototype._showSuite): Shows the results of a single suite.
15957 (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015958 (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations.
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +000015959
15960 * Animometer/resources/sampler.js: Added.
15961 (Statistics.sampleMean): Returns the sample mean.
15962 (Statistics.unbiasedSampleStandardDeviation): Returns the unbiased sample variance (i.e. with Bessel's correction)
15963 (Statistics.geometricMean): Returns the geometric mean.
15964
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015965 (Experiment): Represents a sampling experiment.
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +000015966 (Experiment.prototype._init): Called when the object is created and when startSampling() is called.
15967 (Experiment.prototype.startSampling): Called after warmup period. Restarts collecting sampled data points.
15968 (Experiment.prototype.sample): Add a new data point.
15969 (Experiment.prototype.mean): Returns the sample mean for the current sampled data points.
15970 (Experiment.prototype.standardDeviation): Returns the sample standard deviation for the current sampled data points.
15971 (Experiment.prototype.percentage): Returns the percentage of the standard deviation divided to the mean.
15972 (Experiment.prototype.confidenceIntervalDelta): Calculates the confidence delta for the current sampled data given a confidence level.
15973 (Experiment.prototype.concern): Returns the average of the worst given percentage from the sampled data.
15974 (Experiment.prototype.score): Returns a score for the sampled data. It is the geometric mean of sampleMean and concern.
15975
15976 (Sampler): Represents a compound experiment. It manages sampling multiple data points at the same time offset.
15977 (Sampler.prototype.startSampling): Called after warming up period. Restarts collecting sampled data points.
15978 (Sampler.prototype.sample): Add a new data vector at a given time offset.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015979
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +0000159802015-10-02 Said Abou-Hallawa <sabouhallawa@apple.com>
15981
commit-queue@webkit.org85135692015-10-02 22:15:22 +000015982 Add the test runner for a new a graphics benchmark
15983 https://bugs.webkit.org/show_bug.cgi?id=149683
15984
15985 Reviewed by Ryosuke Niwa.
15986
15987 The test runner collects the selected test suites and the running options
15988 from its home page. It loops through all the tests, runs them and collects
15989 their running results. At the end, it shows summary results and a final
15990 score. It can also show a chart for a test sampled data.
15991
15992 * Animometer: Added.
15993 * Animometer/runner: Added.
15994 * Animometer/runner/resources: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000015995
commit-queue@webkit.org85135692015-10-02 22:15:22 +000015996 * Animometer/runner/animometer.html: Added.
15997 * Animometer/runner/resources/animometer.css: Added.
15998 The benchmark runner page and css.
15999
16000 * Animometer/runner/resources/animometer.js: Added.
16001 (window.benchmarkRunnerClient.willAddTestFrame): Called after the test <iframe> is created.
16002 (window.benchmarkRunnerClient.didRunTest): Called after running a test is finished.
16003 (window.benchmarkRunnerClient.willStartFirstIteration): Called at the beginning before running any test.
16004 (window.benchmarkRunnerClient.didRunSuites): Called after running all tests of a suite.
16005 (window.benchmarkRunnerClient.didFinishLastIteration): Called after running the last test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016006
commit-queue@webkit.org85135692015-10-02 22:15:22 +000016007 (showSection): Shows a section in the animometer.html page.
16008 (startTest): Called when the "Start Test" button is clicked.
16009 (showResults): Called after finishing all the tests.
16010 (showGraph): Called when "Click..." button in the "Samples" column of the results table is clicked
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016011
commit-queue@webkit.org85135692015-10-02 22:15:22 +000016012 * Animometer/runner/resources/benchmark-runner.js: Copied from PerformanceTests/Speedometer/resources/benchmark-runner.js.
16013 (BenchmarkRunnerState): Tracks the current running <suite, test>
16014 (BenchmarkRunnerState.prototype.currentSuite): Returns the current running suite.
16015 (BenchmarkRunnerState.prototype.currentTest): Returns the current running test.
16016 (BenchmarkRunnerState.prototype.isFirstTest): Returns true if we are running the first test in the current suite.
16017 (BenchmarkRunnerState.prototype.next): Advances to the next test.
16018 (BenchmarkRunnerState.prototype.prepareCurrentTest): Creates a new <iframe> and waits for it to load a test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016019
commit-queue@webkit.org85135692015-10-02 22:15:22 +000016020 (BenchmarkRunner): Manages running the tests and communicating with the benchmarkRunnerClient.
16021 (BenchmarkRunner.prototype.waitForElement): Waits for an element to be created.
16022 (BenchmarkRunner.prototype._appendFrame): Creates a new <iframe> element.
16023 (BenchmarkRunner.prototype._removeFrame): Removed the current <iframe> element.
16024 (BenchmarkRunner.prototype._runTestAndRecordResults): Runs the current test and saves its results.
16025 (BenchmarkRunner.prototype.step): Either runs the current test if there is or start a new iteration.
16026 (BenchmarkRunner.prototype.runAllSteps): Loops to run all the tests and move to the next iteration.
16027 (this._runNextIteration): Starts a new iteration or show the results.
16028 (BenchmarkRunner.prototype.runMultipleIterations): Loops to run all the iterations and show the results
16029 (BenchmarkRunner.prototype._finalize): Finalizes the current iteration and starts a new one.
16030
16031 (SimplePromise): Deleted.
16032 (SimplePromise.prototype.then): Deleted.
16033 (SimplePromise.prototype.resolve): Deleted.
16034 (BenchmarkTestStep): Deleted.
16035 (Fibonacci): Deleted.
16036 SimplePromise was moved t Animometer/resources/extensions.js because it is used by the runner and the tests.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016037
commit-queue@webkit.org85135692015-10-02 22:15:22 +000016038 (BenchmarkRunner.prototype._waitAndWarmUp): Deleted.
16039 (BenchmarkRunner.prototype._runTest): Deleted.
16040 (BenchmarkState.prototype.currentSuite): Deleted.
16041 (BenchmarkState.prototype.currentTest): Deleted.
16042 (BenchmarkState.prototype.next): Deleted.
16043 (BenchmarkState.prototype.isFirstTest): Deleted.
16044 (BenchmarkState.prototype.prepareCurrentSuite): Deleted.
16045 BenchmarkState was renamed to BenchmarkRunnerState to not be confused with the tests BenchmarkState.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016046
commit-queue@webkit.org85135692015-10-02 22:15:22 +000016047 * Animometer/runner/resources/d3.min.js: Copied from Websites/perf.webkit.org/public/v2/js/d3/d3.min.js.
16048 Needed for drawing charts for the sampled scores and frame rates.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016049
commit-queue@webkit.org85135692015-10-02 22:15:22 +000016050 * Animometer/runner/resources/graph.js: Added.
16051 (graph): Draws a chart for a test sampled data. It shows two y-axes: one for the animated items and the second for FPS.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016052
commit-queue@webkit.org85135692015-10-02 22:15:22 +000016053 * Skipped: Skip the Animometer benchmark for now.
16054
ossy@webkit.orgebd496e2015-08-27 16:33:43 +0000160552015-08-27 Csaba Osztrogonác <ossy@webkit.org>
16056
16057 [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
16058 https://bugs.webkit.org/show_bug.cgi?id=148470
16059
16060 Unreviewed gardening, skip the hanging test to make the performance bot work.
16061
16062 * Skipped:
16063
cdumez@apple.com29a5c9a2015-08-17 22:27:56 +0000160642015-08-17 Chris Dumez <cdumez@apple.com>
16065
16066 Add performance tests for traversal of collections returned by getElementsByClassName() / getElementsByTagName()
16067 https://bugs.webkit.org/show_bug.cgi?id=148080
16068
16069 Reviewed by Antti Koivisto.
16070
16071 Add performance tests for traversal of *uncached* collections returned
16072 by getElementsByClassName() / getElementsByTagName(). These methods
16073 will soon be updated to return an HTMLCollection instead of a
16074 NodeList and we need to make sure we don't regress performance in the
16075 process.
16076
16077 * DOM/get-elements-by-class-name-traversal-uncached.html: Added.
16078 * DOM/get-elements-by-tag-name-traversal-uncached.html: Added.
16079
cdumez@apple.com9cb09222015-08-14 22:11:22 +0000160802015-08-14 Chris Dumez <cdumez@apple.com>
16081
16082 Add performance tests for NodeList and HTMLCollection traversal
16083 https://bugs.webkit.org/show_bug.cgi?id=148043
16084
16085 Reviewed by Gavin Barraclough.
16086
16087 Add performance tests for NodeList and HTMLCollection traversal.
16088 Ideally, those 2 tests should be as fast. However, due to inefficiencies
16089 in our HTMLCollection bindings code, the HTMLCollection tests is ~30%
16090 slower. This will be addressed in the near future.
16091
16092 * Bindings/childNodes-traversal.html: Added.
16093 * Bindings/children-traversal.html: Added.
16094
mmaxfield@apple.comd5b854c2015-08-05 22:57:52 +0000160952015-08-05 Myles C. Maxfield <mmaxfield@apple.com>
16096
16097 Add a second font-fallback performance test
16098 https://bugs.webkit.org/show_bug.cgi?id=147692
16099
16100 Reviewed by Ryosuke Niwa.
16101
16102 This test is smaller, but has more realistic content. Also, it uses the "lang" attribute.
16103
16104 * Layout/font-fallback-2.html: Added.
16105 * Layout/resources/font-fallback-2.html: Added.
16106
fpizlo@apple.com43e65d12015-07-13 22:09:48 +0000161072015-07-13 Filip Pizlo <fpizlo@apple.com>
16108
16109 Update JetStream version number to 1.1.
16110
16111 Rubber stamped by Ryosuke Niwa.
16112
16113 * JetStream/create.rb:
16114
fpizlo@apple.com99c83da2015-06-30 22:58:13 +0000161152015-06-30 Filip Pizlo <fpizlo@apple.com>
16116
16117 Update the JetStream documentation to reflect the recent changes
16118 https://bugs.webkit.org/show_bug.cgi?id=146474
16119
16120 Reviewed by Geoffrey Garen.
16121
16122 * JetStream/create.rb: Bump the version.
16123 * JetStream/in-depth-TEMPLATE.html: Add cdjs documentation. Remove cordic documentation. Change documentation for splay and mandreel.
16124
fpizlo@apple.com8b4e4522015-06-28 03:47:00 +0000161252015-06-26 Filip Pizlo <fpizlo@apple.com>
16126
16127 [JetStream] Raise the percentile of mandreel-latency and splay-latency
16128 https://bugs.webkit.org/show_bug.cgi?id=146378
16129
16130 Reviewed by Mark Lam.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016131
fpizlo@apple.com8b4e4522015-06-28 03:47:00 +000016132 The current percentile is 95%. When I looked at the sample lists in our GC, it was
16133 clear that the worst 5% samples completely amortize our GC pauses. Our GC pauses can
16134 be quite bad. Clearly, splay-latency is meant to test whether we have an incremental
16135 GC that ensures that you don't have bad worst-case pauses. But 95% is too small,
16136 because it doesn't really capture those pauses. Raising the percentile to above 99%
16137 appears to do the trick. 99.5% or more seems like a good bet. The trade-off there is
16138 just that if we set it too high, then we won't have enough statistics. Doing this very
16139 clearly rewards GCs that are incremental, and punishes GCs that aren't (like ours).
16140 That's what we want, since in the future we want to use this test to guide any
16141 improvements to the worst-case performance of our GC.
16142
16143 The way that the percentile is selected will also affect mandreel-latency. That's a
16144 good thing, because 95% is probably too low for that test as well. That test ends up
16145 with >10k samples. The goal of using 95% in the first place was to get enough samples
16146 to have a stable average. But if we have >10k samples, we can push that percentile up
16147 much higher and still get good statistics while achieving the effect we want - i.e.
16148 getting the worst case.
16149
16150 I don't think that we need to do the same thing for cdjs. That test only takes 200
16151 samples, so 95% means we report the average of the worst 10 samples. That's probably
16152 good enough.
16153
16154 * JetStream/Octane2/base.js: Raise the percentile as described above.
16155 (BenchmarkSuite.prototype.RunSingleBenchmark):
16156 * JetStream/Reference.js: Tweak the reference times to bring the latency tests closer to 100ish on my machine.
16157 * JetStream/create.rb: Bump the version.
16158
fpizlo@apple.com21d545d2015-06-19 23:49:38 +0000161592015-06-19 Filip Pizlo <fpizlo@apple.com>
16160
fpizlo@apple.com59ddb4e2015-06-22 17:11:54 +000016161 Run CDjs as part of JSC stress testing
16162 https://bugs.webkit.org/show_bug.cgi?id=146174
16163
16164 Reviewed by Geoffrey Garen.
16165
16166 * JetStream/cdjs/cdjs-tests.yaml: Added. This tells JSC stress tests what tests to run. It uses new syntax ("tests" being a list) that I add in this change.
16167 * JetStream/cdjs/main.js: Mark this as a slow test.
16168 * JetStream/create.rb: Don't copy the JSC stress tests artifacts into the JetStream bundle.
16169
161702015-06-19 Filip Pizlo <fpizlo@apple.com>
16171
fpizlo@apple.com29a94692015-06-19 23:55:25 +000016172 Unreviewed, fix a small indentation goof.
16173
16174 * JetStream/cdjs/motion.js:
16175 (Motion.prototype.findIntersection):
16176
161772015-06-19 Filip Pizlo <fpizlo@apple.com>
16178
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016179 JetStream should include a JavaScript version of the CDx real-time benchmark
16180 https://bugs.webkit.org/show_bug.cgi?id=146156
16181
16182 Reviewed by Geoffrey Garen.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016183
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016184 This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
16185 the cordic test because it was previously the smallest and probably least interesting.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016186
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016187 The new test, "cdjs", is mostly a faithful rewrite of the Java code into JavaScript.
16188 I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016189
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016190 There are some differences:
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016191
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016192 - It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly
16193 more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees
16194 and I don't know why that changed in the latest version.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016195
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016196 - CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version.
16197 I wrote the code that I wanted to write for aesthetics, rather than the code that I
16198 would have written if I tried to write the fastest code possible. Again, I believe
16199 that this is in the spirit of CDj - it's meant to test what would happen if you wrote
16200 real-timey stuff in a high level language and actually took advantage of that
16201 language to be more productive.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016202
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016203 The test score reflects the average latency of the worst 10 samples out of 200 samples.
16204 The simulation uses 1000 aircraft, flying along paths that result in some detected
16205 collisions every once in a while. The benchmark validates its results by checking the
16206 total number of collisions detected.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016207
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016208 Apart from the integration into the JetStream harness, the CDjs directory contains a
16209 fully self-contained benchmark that could be run either in the jsc shell or in browser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016210
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000016211 This new code uses the same 3-clause BSD license as the Purdue code, and gives
16212 attribution to Purdue in almost all files. I believe that is appropriate since I wrote
16213 most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
16214 In some cases, I even copy-pasted the Java code, like the complicated math for
16215 four-dimensional intersections and voxel hashing.
16216
16217 * JetStream/CDjsSetup.js: Added.
16218 * JetStream/Octane2Setup.js:
16219 * JetStream/Reference.js:
16220 * JetStream/cdjs: Added.
16221 * JetStream/cdjs/benchmark.js: Added.
16222 (benchmark):
16223 * JetStream/cdjs/call_sign.js: Added.
16224 (CallSign):
16225 (CallSign.prototype.compareTo):
16226 (CallSign.prototype.toString):
16227 * JetStream/cdjs/collision.js: Added.
16228 (Collision):
16229 (Collision.prototype.toString):
16230 * JetStream/cdjs/collision_detector.js: Added.
16231 (CollisionDetector):
16232 (CollisionDetector.prototype.handleNewFrame.get for):
16233 (CollisionDetector.prototype.handleNewFrame):
16234 * JetStream/cdjs/constants.js: Added.
16235 * JetStream/cdjs/main.html: Added.
16236 * JetStream/cdjs/main.js: Added.
16237 * JetStream/cdjs/motion.js: Added.
16238 (Motion):
16239 (Motion.prototype.toString):
16240 (Motion.prototype.delta):
16241 (Motion.prototype.findIntersection):
16242 * JetStream/cdjs/motion_test.js: Added.
16243 (checkDoesIntersect):
16244 (checkDoesNotIntersect):
16245 (makeMotion):
16246 * JetStream/cdjs/red_black_tree.js: Added.
16247 (RedBlackTree):
16248 (RedBlackTree.):
16249 * JetStream/cdjs/red_black_tree_test.js: Added.
16250 (test):
16251 (test.):
16252 * JetStream/cdjs/reduce_collision_set.js: Added.
16253 (drawMotionOnVoxelMap):
16254 (drawMotionOnVoxelMap.):
16255 (.get reduceCollisionSet):
16256 * JetStream/cdjs/reduce_collision_set_test.js: Added.
16257 (makeMotion):
16258 (keys):
16259 (test):
16260 * JetStream/cdjs/simulator.js: Added.
16261 (Simulator):
16262 (Simulator.prototype.simulate):
16263 * JetStream/cdjs/util.js: Added.
16264 (compareNumbers):
16265 (averageAbovePercentile):
16266 (currentTime):
16267 (else.currentTime):
16268 * JetStream/cdjs/vector_2d.js: Added.
16269 (Vector2D):
16270 (Vector2D.prototype.plus):
16271 (Vector2D.prototype.minus):
16272 (Vector2D.prototype.toString):
16273 (Vector2D.prototype.compareTo):
16274 * JetStream/cdjs/vector_3d.js: Added.
16275 (Vector3D):
16276 (Vector3D.prototype.plus):
16277 (Vector3D.prototype.minus):
16278 (Vector3D.prototype.dot):
16279 (Vector3D.prototype.squaredMagnitude):
16280 (Vector3D.prototype.magnitude):
16281 (Vector3D.prototype.times):
16282 (Vector3D.prototype.as2D):
16283 (Vector3D.prototype.toString):
16284 * JetStream/create.rb:
16285 * JetStream/index-TEMPLATE.html:
16286 * JetStream/sunspider/cordic.js: Removed.
16287
jfernandez@igalia.coma84f2912015-06-17 16:13:49 +0000162882015-06-17 Javier Fernandez <jfernandez@igalia.com>
16289
jfernandez@igalia.com7b417482015-06-17 16:45:07 +000016290 [CSS Grid Layout] We should add performance tests for stretching logic
16291 https://bugs.webkit.org/show_bug.cgi?id=146063
16292
16293 Reviewed by Sergio Villar Senin.
16294
16295 Added a new performance test for Grid Layout to ensure there are no
16296 regressions in the stretching alignment logic.
16297
16298 * Layout/fixed-grid-lots-of-stretched-data.html: Added.
16299
163002015-06-17 Javier Fernandez <jfernandez@igalia.com>
16301
jfernandez@igalia.coma84f2912015-06-17 16:13:49 +000016302 [CSS Grid Layout] Performance tests are using the old syntax
16303 https://bugs.webkit.org/show_bug.cgi?id=146061
16304
16305 Reviewed by Sergio Villar Senin.
16306
16307 Adapted tests to the new grid tracks definition syntax.
16308
16309 * Layout/auto-grid-lots-of-data.html:
16310 * Layout/fixed-grid-lots-of-data.html:
16311
fpizlo@apple.com42c56da2015-06-10 18:44:50 +0000163122015-06-08 Filip Pizlo <fpizlo@apple.com>
16313
16314 JetStream should have a more rational story for jitter-oriented latency tests
16315 https://bugs.webkit.org/show_bug.cgi?id=145762
16316
16317 Reviewed by Geoffrey Garen.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016318
fpizlo@apple.com42c56da2015-06-10 18:44:50 +000016319 JetStream has some latency tests that are meant to measure jitter. Prior to this change, they
16320 did this by computing the RMS. But the RMS is a pretty bad metric. The thing that it rewards
16321 isn't really the thing that you'd want your browser to do. These RMS-based tests involve taking
16322 the geomean of the RMS of some samples and the sample average. The lower the geomean, the better
16323 (in the JetStream harness we then invert the scores so that higher is better, but let's ignore
16324 that for this discussion and assume that lower is better). Here's an example of how this can go
16325 bad. A browser that always computes a task in some horribly long time (say, 1000ms) but never
16326 varies that time will perform better than a browser that usually computes the task super quickly
16327 (say, 10ms) and sometimes just a little bit less quickly (say, 15ms). The former browser will
16328 have an RMS of 0 and an average of 1000. The latter will have a RMS somewhere around 3.5 and an
16329 average of 12.5 (assuming equal probability of 10ms and 15ms). The geomean of (0, 1000) is 0.
16330 The geomean of (3.5, 12.5) is 6.6. Lower is better, so the former browser scores higher - even
16331 though it's obviously never better to have a browser always complete a task in 1000ms when a
16332 different browser can do it in 15ms in the worst case.
16333
16334 JetStream should not have this pathology. The right way of avoiding it is to replace RMS with
16335 some other metric of how bad things get. A good metric is the average of the worst percentile.
16336 The worst 1% or the worst 5% would be good things to average. This will catch cases where the VM
16337 jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
16338 to a VM whose best case is worst than another VM's worst case.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016339
fpizlo@apple.com42c56da2015-06-10 18:44:50 +000016340 For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
16341 is the best thing - it might include too many scores that are around the best-case performance -
16342 but it's certainly better than RMS and it might be good enough to keep. But because of that
16343 uncertainty, I'm setting the version to be "1.1-alpha1" to indicate that we aren't ready to
16344 release this yet.
16345
16346 * JetStream/Octane2/base.js:
16347 (.this.Setup.setup.setup):
16348 (.this.TearDown.tearDown.tearDown):
16349 (BenchmarkSuite.GeometricMeanTime):
16350 (BenchmarkSuite.AverageAbovePercentile):
16351 (BenchmarkSuite.GeometricMeanLatency):
16352 (BenchmarkSuite.prototype.NotifyStep):
16353 (BenchmarkSuite.prototype.RunSingleBenchmark):
16354 * JetStream/Octane2/mandreel.js:
16355 (setupMandreel):
16356 (updateMandreelStats):
16357 (startMandreelTimer):
16358 (latencyMandreel):
16359 (tearDownMandreel):
16360 (RMSMandreel): Deleted.
16361 * JetStream/Octane2/splay.js:
16362 (GenerateKey):
16363 (SplayUpdateStats):
16364 (InsertNewNode):
16365 (SplayTearDown):
16366 (SplayRMS): Deleted.
16367 * JetStream/create.rb:
16368
zalan@apple.com66654b22015-06-03 20:34:00 +0000163692015-06-03 Zalan Bujtas <zalan@apple.com>
16370
16371 Skip Dromaeo/jslib-modify-prototype.html for now.
16372
16373 Unreviewed gardening.
16374
16375 * Skipped:
16376
fpizlo@apple.comc8f36872015-05-05 02:40:28 +0000163772015-05-04 Filip Pizlo <fpizlo@apple.com>
16378
16379 Large array shouldn't be slow
16380 https://bugs.webkit.org/show_bug.cgi?id=144617
16381
16382 Reviewed by Geoffrey Garen.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016383
fpizlo@apple.comc8f36872015-05-05 02:40:28 +000016384 Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
16385 SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
16386 long-running. So, hash-map sort of belongs here.
16387
16388 * LongSpider/hash-map.js: Added.
16389 (HashMap):
16390 (HashMap.):
16391 (.get var):
16392
commit-queue@webkit.orgb82598a2015-05-01 22:53:09 +0000163932015-05-01 Dewei Zhu <dewei_zhu@apple.com>
16394
16395 Fix typo bug in Speedometer/resources/main.js
16396 https://bugs.webkit.org/show_bug.cgi?id=144504
16397
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016398 Reviewed by Ryosuke Niwa.
commit-queue@webkit.orgb82598a2015-05-01 22:53:09 +000016399
16400 * Speedometer/resources/main.js: Fix typo.
16401 (window.benchmarkClient.totalTimeInDisplayUnit):
16402
rniwa@webkit.org7481af82015-04-22 02:30:22 +0000164032015-04-21 Ryosuke Niwa <rniwa@webkit.org>
16404
16405 Add JetStream to PerformanceTests
16406 https://bugs.webkit.org/show_bug.cgi?id=144024
16407
16408 Rubber-stamped by Filip Pizlo.
16409
16410 * JetStream: Added.
16411 * JetStream/JetStream-Logo.png: Added.
16412 * JetStream/JetStream-Logo@2x.png: Added.
16413 * JetStream/JetStream.css: Added.
16414 * JetStream/JetStreamDriver.js: Added.
16415 * JetStream/LICENSE.txt: Added.
16416 * JetStream/LLVM-test-suite-LICENSE.txt: Added.
16417 * JetStream/Octane: Added.
16418 * JetStream/Octane/base.js: Added.
16419 * JetStream/Octane/code-load.js: Added.
16420 * JetStream/Octane2: Added.
16421 * JetStream/Octane2/base.js: Added.
16422 * JetStream/Octane2/box2d.js: Added.
16423 * JetStream/Octane2/code-load.js: Added.
16424 * JetStream/Octane2/crypto.js: Added.
16425 * JetStream/Octane2/deltablue.js: Added.
16426 * JetStream/Octane2/earley-boyer.js: Added.
16427 * JetStream/Octane2/gbemu-part1.js: Added.
16428 * JetStream/Octane2/gbemu-part2.js: Added.
16429 * JetStream/Octane2/mandreel.js: Added.
16430 * JetStream/Octane2/navier-stokes.js: Added.
16431 * JetStream/Octane2/pdfjs.js: Added.
16432 * JetStream/Octane2/raytrace.js: Added.
16433 * JetStream/Octane2/regexp.js: Added.
16434 * JetStream/Octane2/richards.js: Added.
16435 * JetStream/Octane2/run.js: Added.
16436 * JetStream/Octane2/splay.js: Added.
16437 * JetStream/Octane2/typescript-compiler.js: Added.
16438 * JetStream/Octane2/typescript-input.js: Added.
16439 * JetStream/Octane2/typescript.js: Added.
16440 * JetStream/Octane2/zlib-data.js: Added.
16441 * JetStream/Octane2/zlib.js: Added.
16442 * JetStream/Octane2Setup.js: Added.
16443 * JetStream/OctaneSetup.js: Added.
16444 * JetStream/README: Added.
16445 * JetStream/Reference.js: Added.
16446 * JetStream/SimpleSetup.js: Added.
16447 * JetStream/SunSpiderSetup.js: Added.
16448 * JetStream/Swoosh.png: Added.
16449 * JetStream/Swoosh@2x.png: Added.
16450 * JetStream/TestingSetup.js: Added.
16451 * JetStream/create.rb: Added.
16452 * JetStream/docs: Added.
16453 * JetStream/docs/JetStreamBlogPost.html: Added.
16454 * JetStream/in-depth-TEMPLATE.html: Added.
16455 * JetStream/index-TEMPLATE.html: Added.
16456 * JetStream/simple: Added.
16457 * JetStream/simple/bigfib.cpp: Added.
16458 * JetStream/simple/bigfib.cpp.js: Added.
16459 * JetStream/simple/container.cpp: Added.
16460 * JetStream/simple/container.cpp.js: Added.
16461 * JetStream/simple/dry.c: Added.
16462 * JetStream/simple/dry.c.js: Added.
16463 * JetStream/simple/float-mm.c: Added.
16464 * JetStream/simple/float-mm.c.js: Added.
16465 * JetStream/simple/gcc-loops.cpp: Added.
16466 * JetStream/simple/gcc-loops.cpp.js: Added.
16467 * JetStream/simple/hash-map.js: Added.
16468 * JetStream/simple/n-body.c: Added.
16469 * JetStream/simple/n-body.c.js: Added.
16470 * JetStream/simple/quicksort.c: Added.
16471 * JetStream/simple/quicksort.c.js: Added.
16472 * JetStream/simple/towers.c: Added.
16473 * JetStream/simple/towers.c.js: Added.
16474 * JetStream/sunspider: Added.
16475 * JetStream/sunspider/3d-cube.js: Added.
16476 * JetStream/sunspider/3d-raytrace.js: Added.
16477 * JetStream/sunspider/base64.js: Added.
16478 * JetStream/sunspider/cordic.js: Added.
16479 * JetStream/sunspider/crypto-aes.js: Added.
16480 * JetStream/sunspider/crypto-md5.js: Added.
16481 * JetStream/sunspider/crypto-sha1.js: Added.
16482 * JetStream/sunspider/date-format-tofte.js: Added.
16483 * JetStream/sunspider/date-format-xparb.js: Added.
16484 * JetStream/sunspider/n-body.js: Added.
16485 * JetStream/sunspider/regex-dna.js: Added.
16486 * JetStream/sunspider/tagcloud.js: Added.
16487
commit-queue@webkit.org5156d3a2015-04-15 01:34:25 +0000164882015-04-14 Said Abou-Hallawa <sabouhallawa@apple.com>
16489
16490 textPath layout performance improvement.
16491 https://bugs.webkit.org/show_bug.cgi?id=141570.
16492
16493 Reviewed by Darin Adler.
16494
16495 Cut down the time spent in traversing the path for text by 50%. Instead
16496 of traversing the path twice at a certain length: one time for the position
16497 and the second time for the angle, we can merge these two passes into one.
16498
16499 * SVG/TextOnPathSimple.html: Added.
16500 * SVG/resources/TextOnPathSimple.svg: Added.
16501
zalan@apple.com35112352015-04-13 18:04:55 +0000165022015-04-13 Zalan Bujtas <zalan@apple.com>
16503
16504 Clear up the test content when test is done.
16505
16506 Unreviewed fix.
16507
16508 * Layout/simple-line-layout-innertext.html:
16509
zalan@apple.comc461d3e2015-04-09 18:57:33 +0000165102015-04-09 Zalan Bujtas <zalan@apple.com>
16511
16512 Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
16513 https://bugs.webkit.org/show_bug.cgi?id=143554
16514
16515 Reviewed by Antti Koivisto.
16516
16517 Initialize render flow's segments only when the render flow changes in TextIterator.
16518 The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)
16519
16520 * Layout/simple-line-layout-innertext.html: Added.
16521
cdumez@apple.comff36da62015-03-10 01:24:14 +0000165222015-03-09 Chris Dumez <cdumez@apple.com>
16523
16524 [CG] Have Canvas use the IOSurfacePool
16525 https://bugs.webkit.org/show_bug.cgi?id=142417
16526 <rdar://problem/20044440>
16527
16528 Reviewed by Darin Adler.
16529
16530 Lower the number of different canvas sizes from 1000 to 100 so that
16531 the test does not require such a huge cache size. With 100, we now
16532 get over 90% cache hit rate with the default IOSurfacePool size.
16533
16534 * Canvas/reuse.html:
16535
commit-queue@webkit.org1c660672015-01-29 05:23:28 +0000165362015-01-28 Said Abou-Hallawa <sabouhallawa@apple.com>
16537
16538 Poor performance on IE's Chalkboard benchmark.
16539 https://bugs.webkit.org/show_bug.cgi?id=140753.
16540
16541 Reviewed by Zalan Bujtas.
16542
16543 * SVG/UnderTheSeeBenchmark.html: Added
16544 * SVG/WorldcupBenchmark.html: Added.
16545 * SVG/resources/RenderAnimator.css: Added.
16546 * SVG/resources/RenderAnimator.js: Added.
16547 These are benchmarks for the SVG rendering. Mainly we want to measure how fast
16548 the SVG rendering will be when only a small part of it is drawn.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016549
ggaren@apple.com59604642015-01-21 22:49:45 +0000165502015-01-21 Geoffrey Garen <ggaren@apple.com>
16551
16552 bmalloc: support aligned allocation
16553 https://bugs.webkit.org/show_bug.cgi?id=140732
16554
16555 Reviewed by Andreas Kling.
16556
16557 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
16558 * MallocBench/MallocBench/Benchmark.cpp:
16559 * MallocBench/MallocBench/memalign.cpp:
16560 (test):
16561 (benchmark_memalign): Added a test for specific interesting memalign values.
16562
16563 * MallocBench/MallocBench/stress_aligned.cpp: Added.
16564 (benchmark_stress_aligned):
16565 * MallocBench/MallocBench/stress_aligned.h: Added. Added a stress test
16566 for arbitrary memalign values.
16567
ggaren@apple.com0cd1f462015-01-17 00:10:59 +0000165682015-01-16 Geoffrey Garen <ggaren@apple.com>
16569
16570 bmalloc: added the tiniest bit of testing for aligned allocation
16571 https://bugs.webkit.org/show_bug.cgi?id=140573
16572
16573 Reviewed by Andreas Kling.
16574
16575 Just good enoug to catch two bugs in a preliminary implementation.
16576
16577 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
16578 * MallocBench/MallocBench/Benchmark.cpp:
16579 * MallocBench/MallocBench/mbmalloc.cpp:
16580 * MallocBench/MallocBench/mbmalloc.h:
16581 * MallocBench/MallocBench/memalign.cpp: Added.
16582 (benchmark_memalign):
16583 * MallocBench/MallocBench/memalign.h: Added.
16584
mmaxfield@apple.comebb43812014-12-10 02:19:48 +0000165852014-12-09 Myles C. Maxfield <mmaxfield@apple.com>
16586
16587 Add performance test related to font fallback
16588 https://bugs.webkit.org/show_bug.cgi?id=139332
16589
16590 Reviewed by Simon Fraser.
16591
16592 * Layout/font-fallback.html: Added.
16593 * Layout/resources/font-fallback.html: Added.
16594
dino@apple.com52b62212014-12-09 01:31:37 +0000165952014-12-08 Dean Jackson <dino@apple.com>
16596
16597 [Apple] Use Accelerate framework to speed-up FEGaussianBlur
16598 https://bugs.webkit.org/show_bug.cgi?id=139310
16599
16600 Reviewed by Simon Fraser.
16601
16602 Add an interactive performance test that measures the speed of a set
16603 of blur operations on a generated images.
16604
16605 * Interactive/blur-filter-timing.html: Added.
16606
zalan@apple.com37e73212014-11-13 18:52:55 +0000166072014-11-13 Zalan Bujtas <zalan@apple.com>
16608
16609 Simple line layout: Add performance test case to measure line layout speed of monolithic text content.
16610 https://bugs.webkit.org/show_bug.cgi?id=138699
16611
16612 Reviewed by Antti Koivisto.
16613
16614 * Layout/line-layout-long-long-text.html: Added.
16615
zalan@apple.come09fc0e2014-10-22 14:59:00 +0000166162014-10-22 Zalan Bujtas <zalan@apple.com>
16617
16618 Speed up line parsing for simple line layout (part I)
16619 https://bugs.webkit.org/show_bug.cgi?id=137275
16620
16621 Reviewed by Antti Koivisto.
16622
16623 Extend simple line layout performance test with a few more cases.
16624 Now we've got:
16625 <div center
16626 <div right
16627 <div justify
16628 <div white-space: pre (new)
16629 <div overflow-wrap: break-word (new)
16630 <pre
16631 <pre white-space: pre-wrap
16632 <pre white-space: pre-line (new)
16633 <pre white-space: nowrap (new)
16634 <pre white-space: pre-wrap overflow-wrap: break-word
16635 <div + embedded <span etc.
16636 <div + br
16637
16638 * Layout/line-layout-simple.html:
16639
abucur@adobe.comb72c9e32014-10-15 13:37:16 +0000166402014-10-15 Andrei Bucur <abucur@adobe.com>
16641
16642 [Multicol] Start adding performance tests for the multi-column implementation
16643 https://bugs.webkit.org/show_bug.cgi?id=137687
16644
16645 Reviewed by Mihnea Ovidenie.
16646
16647 This patch creates a Multicol folder inside the Layout performance tests suite. It adds only two tests
16648 as described below.
16649
16650 The tests are skipped until the implementation stabilizes.
16651
16652 * Layout/Multicol/MulticolManyColumns.html: Added.
16653 This test verifies the performance of the multi-column implementation with two nested multi-column
16654 containers, the first having 20 columns and the second 10 columns.
16655
16656 * Layout/Multicol/MulticolNested.html: Added.
16657 This test verifies the performance of nesting multi-column containers in the presence
16658 of floats.
16659
16660 * Layout/Multicol/resources/multicol-content-many-columns.html: Added.
16661 * Layout/Multicol/resources/multicol-content-nested.html: Added.
16662 * Skipped: Skip the Multicol folder for now.
16663
fpizlo@apple.comcaf97612014-09-30 21:11:57 +0000166642014-09-29 Filip Pizlo <fpizlo@apple.com>
16665
16666 It should be fun and easy to run every possible JavaScript benchmark from the command line
16667 https://bugs.webkit.org/show_bug.cgi?id=137245
16668
16669 Reviewed by Oliver Hunt.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000016670
fpizlo@apple.comcaf97612014-09-30 21:11:57 +000016671 This adds the scaffolding for running Octane version 2 inside run-jsc-benchmarks.
16672 In the future we should just land Octane2 in this directory, and run-jsc-benchmarks
16673 should be changed to point directly at this directory instead of requiring the
16674 Octane path to be configured as part of the configuration file.
16675
16676 * Octane: Added.
16677 * Octane/wrappers: Added.
16678 * Octane/wrappers/jsc-box2d.js: Added.
16679 (jscSetUp):
16680 (jscTearDown):
16681 (jscRun):
16682 * Octane/wrappers/jsc-boyer.js: Added.
16683 (jscSetUp):
16684 (jscTearDown):
16685 (jscRun):
16686 * Octane/wrappers/jsc-closure.js: Added.
16687 (jscSetUp):
16688 (jscTearDown):
16689 (jscRun):
16690 * Octane/wrappers/jsc-decrypt.js: Added.
16691 (jscSetUp):
16692 (jscTearDown):
16693 (jscRun):
16694 * Octane/wrappers/jsc-deltablue.js: Added.
16695 (jscSetUp):
16696 (jscTearDown):
16697 (jscRun):
16698 * Octane/wrappers/jsc-earley.js: Added.
16699 (jscSetUp):
16700 (jscTearDown):
16701 (jscRun):
16702 * Octane/wrappers/jsc-encrypt.js: Added.
16703 (jscSetUp):
16704 (jscTearDown):
16705 (jscRun):
16706 * Octane/wrappers/jsc-gbemu.js: Added.
16707 (jscSetUp):
16708 (jscTearDown):
16709 (jscRun):
16710 * Octane/wrappers/jsc-jquery.js: Added.
16711 (jscSetUp):
16712 (jscTearDown):
16713 (jscRun):
16714 * Octane/wrappers/jsc-mandreel.js: Added.
16715 (jscSetUp):
16716 (jscTearDown):
16717 (jscRun):
16718 * Octane/wrappers/jsc-navier-stokes.js: Added.
16719 (jscSetUp):
16720 (jscTearDown):
16721 (jscRun):
16722 * Octane/wrappers/jsc-pdfjs.js: Added.
16723 (jscSetUp.PdfJS_window.console.log):
16724 (jscSetUp):
16725 (jscTearDown):
16726 (jscRun):
16727 * Octane/wrappers/jsc-raytrace.js: Added.
16728 (jscSetUp):
16729 (jscTearDown):
16730 (jscRun):
16731 * Octane/wrappers/jsc-regexp.js: Added.
16732 (jscSetUp):
16733 (jscTearDown):
16734 (jscRun):
16735 * Octane/wrappers/jsc-richards.js: Added.
16736 (jscSetUp):
16737 (jscTearDown):
16738 (jscRun):
16739 * Octane/wrappers/jsc-splay.js: Added.
16740 (jscSetUp):
16741 (jscTearDown):
16742 (jscRun):
16743 * Octane/wrappers/jsc-typescript.js: Added.
16744 (jscSetUp):
16745 (jscTearDown):
16746 (jscRun):
16747 * Octane/wrappers/jsc-zlib.js: Added.
16748 (jscSetUp):
16749 (jscTearDown):
16750 (jscRun):
16751
commit-queue@webkit.org903436d2014-09-28 23:18:25 +0000167522014-09-28 Sungmann Cho <sungmann.cho@navercorp.com>
16753
16754 Fix some minor typos: psuedo -> pseudo
16755 https://bugs.webkit.org/show_bug.cgi?id=137192
16756
16757 Reviewed by Alexey Proskuryakov.
16758
16759 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
16760
ggaren@apple.comc685adc2014-09-11 19:33:47 +0000167612014-09-11 Geoffrey Garen <ggaren@apple.com>
16762
16763 Some MallocBench refinements
16764 https://bugs.webkit.org/show_bug.cgi?id=136750
16765
16766 Reviewed by Sam Weinig.
16767
16768 * MallocBench/MallocBench/Interpreter.cpp:
16769 (Interpreter::run): Allow for null entries in the object list so that
16770 we can test in modes that exclude large or small allocations.
16771
16772 * MallocBench/MallocBench/churn.cpp:
16773 (benchmark_churn):
16774 * MallocBench/MallocBench/flickr.cpp:
16775 (benchmark_flickr):
16776 * MallocBench/MallocBench/fragment.cpp:
16777 (benchmark_fragment_iterate):
16778 * MallocBench/MallocBench/list.cpp:
16779 (benchmark_list_allocate):
16780 * MallocBench/MallocBench/reddit.cpp:
16781 (benchmark_reddit): Updated test runtimes to weight them more equally,
16782 for the sake of arithmetic mean.
16783
16784 * MallocBench/MallocBench/stress.cpp:
16785 (Object::Object):
16786 (allocate):
16787 (deallocate):
16788 (benchmark_stress): Verify the contents of memory as we go. Also,
16789 force scavenging each time through the loop to test the scavenging path.
16790
16791 * MallocBench/MallocBench/theverge.cpp:
16792 (benchmark_theverge):
16793 * MallocBench/MallocBench/tree.cpp:
16794 (benchmark_tree_churn): Re-weighted, as above.
16795
mmaxfield@apple.com42dddcc2014-09-09 02:31:21 +0000167962014-09-08 Myles C. Maxfield <mmaxfield@apple.com>
16797
16798 PerformanceTests/SVG/SVG-Text.html has unparsable output
16799 https://bugs.webkit.org/show_bug.cgi?id=136648
16800
16801 Reviewed by Gavin Barraclough.
16802
16803 I need to clean up the arbitrary text on the page before telling
16804 the test runner infrastructure that the test is complete.
16805
16806 * SVG/SVG-Text.html:
16807
mmaxfield@apple.combf1bae42014-09-06 04:14:15 +0000168082014-09-05 Myles C. Maxfield <mmaxfield@apple.com>
16809
16810 Laying out a TextRun using an SVG font is O(n^2)
16811 https://bugs.webkit.org/show_bug.cgi?id=136584
16812
16813 Reviewed by Andreas Kling.
16814
16815 Time how long it takes to lay out and render some text using an SVG font.
16816
16817 * SVG/SVG-Text.html: Added.
16818 * SVG/resources/graffiti.svg: Added.
16819
ggaren@apple.com0814f372014-09-03 20:59:58 +0000168202014-09-02 Geoffrey Garen <ggaren@apple.com>
16821
16822 MallocBench should have a stress test for correctness
16823 https://bugs.webkit.org/show_bug.cgi?id=136468
16824
16825 Reviewed by Andreas Kling.
16826
16827 Added a stress test that allocates randomized sizes of randomized
16828 lifetimes in randomized order.
16829
16830 This version of the test reproduces the EWS crash seen in bmalloc
16831 (<https://bugs.webkit.org/show_bug.cgi?id=132629>).
16832
16833 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
16834 * MallocBench/MallocBench/Benchmark.cpp: Sort!
16835 * MallocBench/MallocBench/stress.cpp: Added.
16836 (Object::Object):
16837 (SizeStream::SizeStream):
16838 (SizeStream::next):
16839 (benchmark_stress): Usually, we random(0). Surprisingly, though, only
16840 random(1) reproduces the bug I was looking for.
16841 * MallocBench/MallocBench/stress.h: Added.
16842
rniwa@webkit.orgfc5f0252014-06-02 19:57:39 +0000168432014-06-02 Ryosuke Niwa <rniwa@webkit.org>
16844
16845 Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
16846 https://bugs.webkit.org/show_bug.cgi?id=133455
16847
16848 Reviewed by Timothy Hatcher.
16849
rniwa@webkit.orgb452da52014-06-02 20:08:52 +000016850 * Speedometer/: Renamed from DoYouEvenBench.
16851 * Skipped: Updated the path for InteractiveRunner.html
16852
168532014-06-02 Ryosuke Niwa <rniwa@webkit.org>
16854
16855 Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
16856 https://bugs.webkit.org/show_bug.cgi?id=133455
16857
16858 Reviewed by Timothy Hatcher.
16859
rniwa@webkit.orgfc5f0252014-06-02 19:57:39 +000016860 Renamed the benchmark to Speedometer and added the new look designed by Timothy Hatcher.
16861
16862 Also changed the unit of measurements from milliseconds to runs-per-minute averaged over the number
16863 of the benchmark suites (7 for 1.0). You can divide 420000 by the old benchmark score (in milliseconds)
16864 to get the new value for the set of tests that are enabled by default in 1.0. You can continue to see
16865 results in milliseconds on Full.html#ms.
16866
16867 * DoYouEvenBench/Full.html: Added a bunch of sections and the description of the benchmark.
16868
16869 * DoYouEvenBench/resources/benchmark-report.js: Remove the newly added content when ran inside a DRT or
16870 WTR so that run-perf-tests wouldn't error.
16871 * DoYouEvenBench/resources/benchmark-runner.js:
16872 (BenchmarkRunner.prototype._appendFrame): Call a newly added willAddTestFrame callback when it exists.
16873
16874 * DoYouEvenBench/resources/gauge.png: Added.
16875 * DoYouEvenBench/resources/gauge@2x.png: Added.
16876 * DoYouEvenBench/resources/logo.png: Added.
16877 * DoYouEvenBench/resources/logo@2x.png: Added.
16878 * DoYouEvenBench/resources/main.css: Replaced the style.
16879
16880 * DoYouEvenBench/resources/main.js:
16881 (window.benchmarkClient.willAddTestFrame): Place the iframe right where #testContainer is shown.
16882 (window.benchmarkClient.willRunTest): Show the name of the suite (e.g. EmberJS-TodoMVC) to run next.
16883 (window.benchmarkClient.didRunSuites):
16884 (window.benchmarkClient.willStartFirstIteration): Initialize _timeValues and _finishedTestCount now that
16885 we have an UI to run the benchmark multiple times without reloading the page.
16886 (window.benchmarkClient.didFinishLastIteration): Split into smaller pieces.
16887 (window.benchmarkClient._computeResults): Computes the mean and the statistics for the given time values,
16888 and also format them in a human readable form.
16889 (window.benchmarkClient._computeResults.totalTimeInDisplayUnit): Converts ms to runs/min.
16890 (window.benchmarkClient._computeResults.sigFigFromPercentDelta): Given a percentage error (e.g. 1%),
16891 returns the number of significant digits required for the mean.
16892 (window.benchmarkClient._computeResults.toSigFigPrecision): Calls toPrecision with the specified precision
16893 constrained to be at least the number of non-decimal digits and at most 6.
16894 (window.benchmarkClient._addDetailedResultsRow): Renamed from _addResult. It now takes the table to which
16895 to add a row and the iteration number.
16896 (window.benchmarkClient._updateGaugeNeedle): Added. Controls the angle of the speed indicator.
16897 (window.benchmarkClient._populateDetailedResults): Added.
16898 (window.benchmarkClient.prepareUI): Added. It adds an event listener to show a specified section when
16899 the push state of the document changes, and shows a warning sign when the view port size is too small.
16900 We do this inside a callback to avoid running it inside DRT / WTR.
16901 (startBenchmark):
16902 (showSection): Added.
16903 (startTest): Added.
16904 (showResultsSummary): Added.
16905 (showResultDetails): Added.
16906 (showAbout): Added.
16907
rniwa@webkit.org64516062014-06-01 13:44:32 +0000169082014-06-01 Ryosuke Niwa <rniwa@webkit.org>
16909
rniwa@webkit.org424e09b2014-06-01 21:12:00 +000016910 DYEBench: Move test states into benchmarkClient and remove the closure
16911 https://bugs.webkit.org/show_bug.cgi?id=133438
16912
16913 Reviewed by Benjamin Poulain.
16914
16915 Moved all local variables in the closure wrapping benchmarkClient onto the object itself
16916 and removed the closure to improve the readability of the code.
16917
16918 * DoYouEvenBench/Full.html:
16919 * DoYouEvenBench/resources/main.js:
16920 (window.benchmarkClient.willRunTest):
16921 (window.benchmarkClient.didRunTest):
16922 (window.benchmarkClient.didRunSuites):
16923 (window.benchmarkClient.willStartFirstIteration):
16924 (window.benchmarkClient.didFinishLastIteration):
16925 (window.benchmarkClient._addResult): Moved.
16926 (.): Deleted.
16927
169282014-06-01 Ryosuke Niwa <rniwa@webkit.org>
16929
rniwa@webkit.org960e5eb2014-06-01 20:38:55 +000016930 DYEBench: Split stylesheets and scripts in Full.html into separate files
16931 https://bugs.webkit.org/show_bug.cgi?id=133437
16932
16933 Reviewed by Benjamin Poulain.
16934
16935 Extracted main.js and main.css.
16936
16937 Also fixed a bug in startBenchmark that disabled suites were counted towards the total number of tests.
16938
16939 * DoYouEvenBench/Full.html:
16940 * DoYouEvenBench/resources/main.css: Added.
16941 * DoYouEvenBench/resources/main.js: Added.
16942 (.addResult):
16943 (window.benchmarkClient):
16944 (startBenchmark): Renamed from startTest.
16945
169462014-06-01 Ryosuke Niwa <rniwa@webkit.org>
16947
rniwa@webkit.org64516062014-06-01 13:44:32 +000016948 DYEBench: CSS parser warning at line 106 of base.css
16949 https://bugs.webkit.org/show_bug.cgi?id=133433
16950
16951 Reviewed by Maciej Stachowiak.
16952
16953 Removed the old filter CSS property for Internet Explorer. The latest Internet Explorer supports -ms-linear-gradient
16954 on background CSS property anyways.
16955
16956 It's interesting that some of the tests only have -webkit- prefixes. Perhaps we should update those subtests.
16957
16958 * DoYouEvenBench/Full.html:
16959 * DoYouEvenBench/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css:
16960 (#header:before):
16961 * DoYouEvenBench/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css:
16962 (#header:before):
16963 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
16964 (#header:before):
16965 * DoYouEvenBench/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css:
16966 (#header:before):
16967 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css:
16968 (#header:before):
16969 * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css:
16970 (#header:before):
16971 * DoYouEvenBench/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css:
16972 (#header:before):
16973
rniwa@webkit.org629202f2014-06-01 03:04:10 +0000169742014-05-31 Ryosuke Niwa <rniwa@webkit.org>
16975
rniwa@webkit.org29afd0e2014-06-01 07:01:52 +000016976 DYEBench: Ember.js assertion hit at line 20593
16977 https://bugs.webkit.org/show_bug.cgi?id=133431
16978
16979 Reviewed by Darin Adler.
16980
16981 The assertion was hit because ToDoMVC includes jQuery 2.1 and Ember.js 1.3.1 only recognizes jQuery 2.0.
16982 Port the assertion from Ember.js 1.5.1 to suppress the assertion.
16983
16984 We should update the entire Ember.js at some point but this would do the job for now.
16985
16986 * DoYouEvenBench/Full.html:
16987 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
16988
169892014-05-31 Ryosuke Niwa <rniwa@webkit.org>
16990
rniwa@webkit.org629202f2014-06-01 03:04:10 +000016991 DYEBench: Prevent frame flattening on iOS
16992 https://bugs.webkit.org/show_bug.cgi?id=133428
16993
16994 Reviewed by Andreas Kling.
16995
16996 Prevent frame flattening on iOS by setting scrolling=no.
16997
16998 * DoYouEvenBench/Full.html:
16999 * DoYouEvenBench/resources/benchmark-runner.js:
17000 (BenchmarkRunner.prototype._appendFrame):
17001
rniwa@webkit.org5431f972014-05-31 05:12:21 +0000170022014-05-30 Ryosuke Niwa <rniwa@webkit.org>
17003
17004 DYEBench spits out 404 errors for learn.json
17005 https://bugs.webkit.org/show_bug.cgi?id=133416
17006
17007 Reviewed by Oliver Hunt.
17008
17009 Add an empty learn.json file so that it won't cause a 404 error when hosted on a http server.
17010
17011 Bumped the version number to 0.12.
17012
17013 * DoYouEvenBench/Full.html:
17014 * DoYouEvenBench/resources/todomvc/learn.json:
17015
ggaren@apple.com11f9a642014-05-23 22:37:30 +0000170162014-05-23 Geoffrey Garen <ggaren@apple.com>
17017
17018 Performance testing, diamond-square terrain generation + canvas
17019 https://bugs.webkit.org/show_bug.cgi?id=133054
17020
17021 Reviewed by Ryosuke Niwa.
17022
17023 This test was written by Hunter Loftis. It originally appeared on his
17024 blog @ <http://www.playfuljs.com/realistic-terrain-in-130-lines/>.
17025
17026 I did a bit of editing for format and benchmark suitability.
17027
17028 * Canvas/terrain.html: Added.
17029
rniwa@webkit.org25e02ad2014-05-13 21:08:10 +0000170302014-05-13 Ryosuke Niwa <rniwa@webkit.org>
17031
17032 DYEBench should run 20 iterations in browser
17033 https://bugs.webkit.org/show_bug.cgi?id=132795
17034
17035 Reviewed by Gavin Barraclough.
17036
17037 Right now, run-perf-tests runs BYEBench 4 times with different instances of DRT/WTR to get
17038 a more stable time and account for differences in the runtime environment, particularly,
17039 ASLR (Address Space Layout Randomization).
17040
17041 While we can't account for the latter effect when the benchmark is ran inside a browser,
17042 we can at least run 20 iterations to get a more stable (but perhaps biased by ALSR) number.
17043
17044 While the sample size of 20 is statistically unsound to compute the arithmetic mean from,
17045 it's MUCH better than the current sample size of 5.
17046
17047 * DoYouEvenBench/Full.html:
17048 (benchmarkClient.iterationCount): Set the default iteration count to 20.
17049 (startTest): Use benchmarkClient.iterationCount as the iteration count.
17050 * DoYouEvenBench/resources/benchmark-report.js:
17051 (benchmarkClient.iterationCount): Continue to use the old iteration count of 5 when ran
17052 inside run-perf-tests.
17053
rniwa@webkit.org7ba8b502014-05-10 01:23:43 +0000170542014-05-09 Ryosuke Niwa <rniwa@webkit.org>
17055
17056 DYEBench should show 95th percentile right next to the mean with ±
17057 https://bugs.webkit.org/show_bug.cgi?id=132729
17058
17059 Reviewed by Darin Adler.
17060
17061 Before this patch, Full.html showed the 95th percentile delta for the arthemtic mean in a separate row
17062 but this was confusing for some people. Show it right next to mean in the same row separated by ±.
17063
17064 * DoYouEvenBench/Full.html:
17065
rniwa@webkit.org581a97b2014-05-09 06:01:06 +0000170662014-05-08 Ryosuke Niwa <rniwa@webkit.org>
17067
17068 DYEBench should use TodoMVC to test FlightJS for consistency
17069 https://bugs.webkit.org/show_bug.cgi?id=132727
17070
17071 Reviewed by Andreas Kling.
17072
17073 Add a test suite for the FlightJS version of TodoMVC, and disable FlightJS-MailClient by default.
17074
17075 I initially intended to include a wider variety of demo apps in DYEBench
17076 but that's not happening any time soon so let us use TodoMVC for all frameworks for now.
17077
17078 We can add more demo apps in v2.
17079
17080 * DoYouEvenBench/Full.html: Increment the version to 0.10.
17081 * DoYouEvenBench/InteractiveRunner.html: Don't check disabled suites by default.
17082 * DoYouEvenBench/resources/tests.js:
17083 * DoYouEvenBench/resources/todomvc/dependency-examples: Added.
17084 * DoYouEvenBench/resources/todomvc/dependency-examples/flight: Added.
17085 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.gitignore: Added.
17086 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
17087 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app: Added.
17088 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js: Added.
17089 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
17090 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data: Added.
17091 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
17092 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
17093 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
17094 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
17095 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui: Added.
17096 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
17097 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
17098 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
17099 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
17100 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
17101 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
17102 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
17103 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates: Added.
17104 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
17105 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
17106 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower.json: Added.
17107 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components: Added.
17108 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot: Added.
17109 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
17110 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim: Added.
17111 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
17112 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
17113 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight: Added.
17114 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib: Added.
17115 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
17116 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
17117 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
17118 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
17119 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
17120 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
17121 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
17122 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
17123 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
17124 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery: Added.
17125 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
17126 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs: Added.
17127 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text: Added.
17128 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
17129 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
17130 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common: Added.
17131 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
17132 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
17133 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
17134 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/index.html: Added.
17135 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
17136 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/package.json: Added.
17137 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/readme.md: Added.
17138 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test: Added.
17139 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
17140 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture: Added.
17141 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
17142 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
17143 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
17144 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock: Added.
17145 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
17146 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec: Added.
17147 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data: Added.
17148 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
17149 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
17150 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui: Added.
17151 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
17152 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
17153 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
17154 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.
17155
rego@igalia.comabf22d22014-05-07 09:56:14 +0000171562014-05-07 Manuel Rego Casasnovas <rego@igalia.com>
17157
17158 [CSS Grid Layout] Remove runtime feature
17159 https://bugs.webkit.org/show_bug.cgi?id=132382
17160
17161 Reviewed by Benjamin Poulain.
17162
17163 Remove set of WebKitCSSGridLayoutEnabled preference.
17164
17165 * Layout/auto-grid-lots-of-data.html:
17166 * Layout/fixed-grid-lots-of-data.html:
17167
stavila@adobe.comb0854422014-05-06 19:48:53 +0000171682014-05-06 Radu Stavila <stavila@adobe.com>
17169
17170 [CSSRegions] Enabled regions performance tests by default
17171 https://bugs.webkit.org/show_bug.cgi?id=128244
17172
17173 Reviewed by Andreas Kling.
17174
17175 Enabled regions performance tests.
17176
17177 * Skipped:
17178
akling@apple.comb14c4c92014-04-26 03:30:52 +0000171792014-04-25 Andreas Kling <akling@apple.com>
17180
17181 Bump jQuery to same version that dromaeo.com uses.
17182
17183 Rubber-stamped by Ryosuke Niwa.
17184
17185 * Dromaeo/resources/dromaeo/web/lib/jquery-1.10.2.min.js: Added.
17186 * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
17187 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
17188 * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
17189 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
17190 * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
17191 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
17192
ggaren@apple.come1e0cdf2014-04-18 20:46:18 +0000171932014-04-18 Geoffrey Garen <ggaren@apple.com>
17194
ggaren@apple.comcfd146b2014-04-18 22:31:34 +000017195 Added some more Membuster recordings to MallocBench
17196 https://bugs.webkit.org/show_bug.cgi?id=131862
17197
17198 Reviewed by Sam Weinig.
17199
17200 * MallocBench/MallocBench/Benchmark.cpp:
17201 (Benchmark::Benchmark):
17202 (Benchmark::run):
17203 * MallocBench/MallocBench/Benchmark.h:
17204 * MallocBench/MallocBench/CommandLine.cpp:
17205 * MallocBench/MallocBench/CommandLine.h:
17206 (CommandLine::runs): Added a --runs option, so we can specify zero runs
17207 for memory warning benchmarks. Those benchmarks want zero runs so that
17208 they can perform a single warmup, which does not free all allocated
17209 objects, and then see how far back to 0MB they can get. Running multiple
17210 times would accumulate leaks, which is not representative of the
17211 simulated scenario.
17212
17213 * MallocBench/MallocBench/Interpreter.cpp:
17214 (Interpreter::Interpreter):
17215 (Interpreter::run):
17216 * MallocBench/MallocBench/Interpreter.h: Support not deallocating all
17217 objects allocated during the recording, so we can do low memory warning
17218 memory use measurements, as above.
17219
17220 * MallocBench/MallocBench/flickr.cpp:
17221 (benchmark_flickr_memory_warning):
17222 * MallocBench/MallocBench/main.cpp:
17223 (main):
17224 * MallocBench/MallocBench/reddit.cpp:
17225 (benchmark_reddit_memory_warning):
17226 * MallocBench/MallocBench/theverge.cpp:
17227 (benchmark_theverge_memory_warning): Adopt the API above.
17228
17229 * MallocBench/run-malloc-benchmarks: I took a first pass at listing all
17230 available benchmarks here. Then I commented out the benchmarks that
17231 probably aren't reasonable to run by default.
17232
172332014-04-18 Geoffrey Garen <ggaren@apple.com>
17234
ggaren@apple.come1e0cdf2014-04-18 20:46:18 +000017235 MallocBench: removed the --measure-heap option
17236 https://bugs.webkit.org/show_bug.cgi?id=131854
17237
17238 Reviewed by Sam Weinig.
17239
17240 As of <https://bugs.webkit.org/show_bug.cgi?id=131661>, measuring the
17241 heap is fast, so there's no reason to disable it.
17242
17243 * MallocBench/MallocBench/Benchmark.cpp:
17244 (Benchmark::Benchmark):
17245 (Benchmark::run):
17246 (Benchmark::printReport):
17247 * MallocBench/MallocBench/Benchmark.h:
17248 * MallocBench/MallocBench/CommandLine.cpp:
17249 (CommandLine::printUsage):
17250 * MallocBench/MallocBench/CommandLine.h:
17251 (CommandLine::heapSize):
17252 (CommandLine::measureHeap): Deleted.
17253 * MallocBench/MallocBench/main.cpp:
17254 (main):
17255
achicu@adobe.com020d6eb2014-04-17 01:00:26 +0000172562014-04-16 Alexandru Chiculita <achicu@adobe.com>
17257
17258 Improve performance of the RenderLayerCompositor::OverlapMap
17259 https://bugs.webkit.org/show_bug.cgi?id=115063
17260
17261 Reviewed by Simon Fraser.
17262
17263 Testing the performance of computing the overlap of 5000 layers.
17264
17265 * Layout/layers_overlap_2d.html: Added. Using non-composited layers, to check
17266 that the performance on the non-composited path is not changing with this patch.
17267 * Layout/layers_overlap_3d.html: Added. Records the time to do the layout of 5000
17268 non-overlapping 3D layers.
17269
zoltan@webkit.org79556942014-04-15 17:52:10 +0000172702014-04-15 Zoltan Horvath <zoltan@webkit.org>
17271
17272 [CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesRegions test
17273 https://bugs.webkit.org/show_bug.cgi?id=131572
17274
17275 Reviewed by Rob Buis.
17276
17277 In r167022 I moved the common CSS selectors into RegionsShapes.css, then I linked it into the perf test
17278 files, but the measurement results dropped down from about 400ms to 10ms. I realized it's caused by the
17279 linked css rule, so I've put the selectors back into every test case, which fixes the test measurements.
17280
17281 * Layout/Shapes/resources/RegionsShapes.css: Removed.
17282 * Layout/Shapes/resources/RegionsShapesContent.html:
17283 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html:
17284 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html:
17285 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html:
17286 * Layout/Shapes/resources/RegionsShapesContentNoShapes.html:
17287
ggaren@apple.com79011012014-04-14 19:11:50 +0000172882014-04-14 Geoffrey Garen <ggaren@apple.com>
17289
ggaren@apple.comc1086e42014-04-15 03:52:39 +000017290 MallocBench should scavenge explicitly instead of waiting
17291 https://bugs.webkit.org/show_bug.cgi?id=131661
17292
17293 Reviewed by Andreas Kling.
17294
17295 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Don't build mbmalloc
17296 by default because it will overwrite any other mbmalloc you're working
17297 with in the WebKitBuild directory.
17298
17299 * MallocBench/MallocBench/Benchmark.cpp:
17300 (Benchmark::run): Scavenge explicitly instead of waiting. This is faster,
17301 and it's the only way to get FastMalloc to scavenge. (That's a bug in
17302 FastMalloc, but we don't want it to interfere with broader testing.)
17303
17304 * MallocBench/MallocBench/mbmalloc.cpp:
17305 * MallocBench/MallocBench/mbmalloc.h: Added a scavenge implementation
17306 for system malloc.
17307
173082014-04-14 Geoffrey Garen <ggaren@apple.com>
17309
ggaren@apple.com79011012014-04-14 19:11:50 +000017310 A few MallocBench record/replay fixes
17311 https://bugs.webkit.org/show_bug.cgi?id=131627
17312
17313 Reviewed by Andreas Kling.
17314
17315 * MallocBench/MallocBench/Interpreter.cpp:
17316 (Interpreter::run): Accept 0-sized allocations without asserting because
17317 WebKit does that sometimes.
17318
17319 * MallocBench/MallocBench/flickr.ops:
17320 * MallocBench/MallocBench/flickr_memory_warning.ops:
17321 * MallocBench/MallocBench/reddit.ops:
17322 * MallocBench/MallocBench/reddit_memory_warning.ops:
17323 * MallocBench/MallocBench/theverge.ops:
17324 * MallocBench/MallocBench/theverge_memory_warning.ops: Updated these
17325 recordings because a bug in the recording mechanism caused one out of
17326 every few thousand slot values to be bogus.
17327
ggaren@apple.comf4bc1dc2014-04-13 23:21:20 +0000173282014-04-13 Geoffrey Garen <ggaren@apple.com>
17329
ggaren@apple.com58eb40e2014-04-14 00:02:08 +000017330 Added some website recordings to MallocBench -- taken from Membuster
17331 https://bugs.webkit.org/show_bug.cgi?id=131601
17332
17333 Reviewed by Ryosuke Niwa.
17334
17335 Added flickr, reddit, and theverge -- each recorded from Membuster's
17336 cache, with and without sending Safari a low memory warning.
17337
17338 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
17339 * MallocBench/MallocBench/Benchmark.cpp:
17340 * MallocBench/MallocBench/flickr.cpp: Added.
17341 (benchmark_flickr):
17342 (benchmark_flickr_memory_warning):
17343 * MallocBench/MallocBench/flickr.h: Added.
17344 * MallocBench/MallocBench/flickr.ops: Added.
17345 * MallocBench/MallocBench/flickr_memory_warning.ops: Added.
17346 * MallocBench/MallocBench/reddit.cpp: Added.
17347 (benchmark_reddit):
17348 (benchmark_reddit_memory_warning):
17349 * MallocBench/MallocBench/reddit.h: Added.
17350 * MallocBench/MallocBench/reddit.ops: Added.
17351 * MallocBench/MallocBench/reddit_memory_warning.ops: Added.
17352 * MallocBench/MallocBench/theverge.cpp: Added.
17353 (benchmark_theverge):
17354 (benchmark_theverge_memory_warning):
17355 * MallocBench/MallocBench/theverge.h: Added.
17356 * MallocBench/MallocBench/theverge.ops: Added.
17357 * MallocBench/MallocBench/theverge_memory_warning.ops: Added.
17358
173592014-04-13 Geoffrey Garen <ggaren@apple.com>
17360
ggaren@apple.comf4bc1dc2014-04-13 23:21:20 +000017361 MallocBench record/replay should support realloc
17362 https://bugs.webkit.org/show_bug.cgi?id=131598
17363
17364 Reviewed by Ryosuke Niwa.
17365
17366 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Fixed some linkage
17367 issues that caused us not to fully link to system malloc in the default
17368 case. Also marked mbmalloc.dylib as required so the error message will
17369 be clearer if we mess up.
17370
17371 * MallocBench/MallocBench/Interpreter.cpp:
17372 (Interpreter::run):
17373 * MallocBench/MallocBench/Interpreter.h: Added the realloc case, and
17374 upgraded one-letter names to full words.
17375
krit@webkit.org7c663702014-04-11 12:37:26 +0000173762014-04-11 Dirk Schulze <krit@webkit.org>
17377
17378 Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
17379 https://bugs.webkit.org/show_bug.cgi?id=79659
17380
17381 Reviewed by Andreas Kling.
17382
krit@webkit.org9d81f8a2014-04-11 12:44:58 +000017383 Add performance tests for real this time.
17384
17385 * Canvas/compositing-drawimage.html: Added.
17386 * Canvas/compositing-fillRect.html: Added.
17387
17388
173892014-04-11 Dirk Schulze <krit@webkit.org>
17390
17391 Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
17392 https://bugs.webkit.org/show_bug.cgi?id=79659
17393
17394 Reviewed by Andreas Kling.
17395
krit@webkit.org7c663702014-04-11 12:37:26 +000017396 Add performance tests for fillRect() and drawImage() on composited contexts.
17397
17398 * Canvas/compositing-drawimage.html: Added.
17399 * Canvas/compositing-fillRect.html: Added.
17400
zoltan@webkit.org50242c92014-04-09 18:19:52 +0000174012014-04-09 Zoltan Horvath <zoltan@webkit.org>
17402
zoltan@webkit.orgc52a85f2014-04-09 22:31:34 +000017403 [CSS Shapes] Add no shapes version of RegionsShapes performance test
17404 https://bugs.webkit.org/show_bug.cgi?id=131455
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000017405
zoltan@webkit.orgc52a85f2014-04-09 22:31:34 +000017406 Reviewed by Ryosuke Niwa.
17407
17408 This is a no shapes version of the RegionsShapes performance test. All the content
17409 will wrap around the floating containers. This way we can compare the runtime/memory
17410 usage of the RegionsShapes test with/without shapes. The test is skipped by default.
17411
17412 * Layout/Shapes/RegionsShapesNoShapes.html: Added.
17413 * Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Added.
17414
174152014-04-09 Zoltan Horvath <zoltan@webkit.org>
17416
zoltan@webkit.org50242c92014-04-09 18:19:52 +000017417 [CSS Shapes] Add no regions version of RegionsShapes performance test
17418 https://bugs.webkit.org/show_bug.cgi?id=131442
17419
17420 Reviewed by Ryosuke Niwa.
17421
17422 We would like have a no regions version for RegionsShapes performance test. The new
17423 test produces similar layout to RegionsShapes.html without using regions. It is helpful
17424 for us to do further comparisons when necessary. This test is skipped by default.
17425
17426 * Layout/Shapes/RegionsShapesNoRegions.html: Added.
17427 * Layout/Shapes/resources/RegionsShapes.css: Added.
17428 (html, body):
17429 (.shape):
17430 (#circleShape):
17431 (#imageShape):
17432 (#insetShape):
17433 (#roundedInsetShape):
17434 (#triangleLeft):
17435 (#triangleRight):
17436 (#selfIntersectingStar):
17437 (#region1):
17438 (#region2):
17439 (#region3):
17440 * Layout/Shapes/resources/RegionsShapesContent.html:
17441 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html: Added.
17442 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html: Added.
17443 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html: Added.
17444
ggaren@apple.comf9d87382014-04-02 21:38:49 +0000174452014-04-02 Geoffrey Garen <ggaren@apple.com>
17446
ggaren@apple.comcaddb3a2014-04-02 21:50:52 +000017447 Unreviewed.
17448
17449 Try to ignore some Xcode shmutz in MallocBench.
17450
17451 * MallocBench/MallocBench.xcodeproj: Added property svn:ignore.
17452
174532014-04-02 Geoffrey Garen <ggaren@apple.com>
17454
ggaren@apple.comf9d87382014-04-02 21:38:49 +000017455 Let's benchmark malloc
17456 https://bugs.webkit.org/show_bug.cgi?id=131118
17457
17458 Reviewed by Mark Hahnenberg.
17459
17460 I want to replace fastMalloc with something faster (fasterMalloc?).
17461 I wrote these benchmarks to test / drive development.
17462
17463 * MallocBench: Added.
17464 * MallocBench/MallocBench: Added.
17465 * MallocBench/MallocBench.xcodeproj: Added.
17466 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Added.
17467 * MallocBench/MallocBench/Benchmark.cpp: Added.
17468 (allocateHeap):
17469 (deallocateHeap):
17470 (Benchmark::Benchmark):
17471 (Benchmark::printBenchmarks):
17472 (Benchmark::runOnce):
17473 (Benchmark::run):
17474 (Benchmark::printReport):
17475 (Benchmark::currentTimeMS):
17476 (Benchmark::currentMemoryBytes):
17477 * MallocBench/MallocBench/Benchmark.h: Added.
17478 (Benchmark::Memory::Memory):
17479 (Benchmark::Memory::operator-):
17480 (Benchmark::isValid):
17481 * MallocBench/MallocBench/CPUCount.cpp: Added.
17482 (cpuCount):
17483 * MallocBench/MallocBench/CPUCount.h: Added.
17484 * MallocBench/MallocBench/CommandLine.cpp: Added.
17485 (CommandLine::printUsage):
17486 * MallocBench/MallocBench/CommandLine.h: Added.
17487 (CommandLine::isValid):
17488 (CommandLine::benchmarkName):
17489 (CommandLine::isParallel):
17490 (CommandLine::heapSize):
17491 (CommandLine::measureHeap):
17492 * MallocBench/MallocBench/Interpreter.cpp: Added.
17493 (Interpreter::Interpreter):
17494 (Interpreter::~Interpreter):
17495 (Interpreter::run):
17496 * MallocBench/MallocBench/Interpreter.h: Added.
17497 * MallocBench/MallocBench/balloon.cpp: Added.
17498 (benchmark_balloon):
17499 * MallocBench/MallocBench/balloon.h: Added.
17500 * MallocBench/MallocBench/big.cpp: Added.
17501 (benchmark_big):
17502 * MallocBench/MallocBench/big.h: Added.
17503 * MallocBench/MallocBench/churn.cpp: Added.
17504 (HeapDouble::operator new):
17505 (HeapDouble::operator delete):
17506 (HeapDouble::HeapDouble):
17507 (HeapDouble::operator+=):
17508 (benchmark_churn):
17509 * MallocBench/MallocBench/churn.h: Added.
17510 * MallocBench/MallocBench/crash.ops: Added.
17511 * MallocBench/MallocBench/facebook.cpp: Added.
17512 (benchmark_facebook):
17513 * MallocBench/MallocBench/facebook.h: Added.
17514 * MallocBench/MallocBench/facebook.ops: Added.
17515 * MallocBench/MallocBench/fragment.cpp: Added.
17516 (validate):
17517 (benchmark_fragment):
17518 (benchmark_fragment_iterate):
17519 * MallocBench/MallocBench/fragment.h: Added.
17520 * MallocBench/MallocBench/list.cpp: Added.
17521 (benchmark_list_allocate):
17522 (benchmark_list_traverse):
17523 * MallocBench/MallocBench/list.h: Added.
17524 * MallocBench/MallocBench/main.cpp: Added.
17525 (main):
17526 * MallocBench/MallocBench/mbmalloc.cpp: Added.
17527 * MallocBench/MallocBench/mbmalloc.h: Added.
17528 * MallocBench/MallocBench/medium.cpp: Added.
17529 (benchmark_medium):
17530 * MallocBench/MallocBench/medium.h: Added.
17531 * MallocBench/MallocBench/message.cpp: Added.
17532 (benchmark_message_one):
17533 (benchmark_message_many):
17534 * MallocBench/MallocBench/message.h: Added.
17535 * MallocBench/MallocBench/realloc.cpp: Added.
17536 (benchmark_realloc):
17537 * MallocBench/MallocBench/realloc.h: Added.
17538 * MallocBench/MallocBench/tree.cpp: Added.
17539 (benchmark_tree_allocate):
17540 (benchmark_tree_traverse):
17541 (benchmark_tree_churn):
17542 * MallocBench/MallocBench/tree.h: Added.
17543 * MallocBench/run-malloc-benchmarks: Added.
17544
mark.lam@apple.comfccecaa2014-03-30 16:53:53 +0000175452014-03-29 Mark Lam <mark.lam@apple.com>
17546
17547 LongSpider 3d-morph result check is inappropriate.
17548 <https://webkit.org/b/130928>
17549
17550 Reviewed by Filip Pizlo.
17551
17552 The LongSpider 3d-morph component expected result check is incorrect.
17553 The existing test checks if the leading digit of a sum starts with "-1".
17554 However, it turned out that the expected sum is in the order of
17555 -1.8735013540549517e-16 (i.e. very close to 0). With small errors in
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000017556 the terms of the sum adding up, it is very easy for the resultant sum
mark.lam@apple.comfccecaa2014-03-30 16:53:53 +000017557 to fluctuate. There is no guarantee that the resultant sum's most
17558 significant digit will start with -1 either.
17559
17560 The fix is to do a tolerance check on all the terms of the sum as well
17561 as the total sum value instead. The tolerance should be more lenient
17562 for the sum which accumulates error from the individual terms, then for
17563 individual terms.
17564
17565 * LongSpider/3d-morph.js:
17566 (expect):
17567
zoltan@webkit.org31b9d432014-03-28 18:18:09 +0000175682014-03-28 Zoltan Horvath <zoltan@webkit.org>
17569
17570 [CSS Shapes] Add performance tests for Shapes with Regions
17571 https://bugs.webkit.org/show_bug.cgi?id=129624
17572
17573 Reviewed by Ryosuke Niwa.
17574
17575 This tests introduces a real-life like page, which contains different types of shapes within
17576 shape-outsides. The content flows through regions, which use media queries. The performance test
17577 loads the actual Shapes-Regions test case into iframes with different page sizes (thus the layout
17578 triggers the media queries as well), and measures its load time.
17579
17580 * Layout/RegionsShapes.html: Added.
17581 * Layout/Shapes/resources/RegionsShapesContent.html: Added.
17582
zoltan@webkit.org0a592932014-03-21 04:05:05 +0000175832014-03-20 Zoltan Horvath <zoltan@webkit.org>
17584
17585 Add option for hiding Confidence Interval Delta on the performance tests results page
17586 https://bugs.webkit.org/show_bug.cgi?id=130483
17587
17588 Reviewed by Ryosuke Niwa.
17589
17590 I've found it useful to hide the confidence interval delta from the results table
17591 sometimes, for example on copying data, or for a clearer look. This patch introduces
17592 a new button for it on the local results page.
17593
17594 * resources/results-template.html:
17595
lvidacs.u-szeged@partner.samsung.com8e34e632014-03-20 23:16:28 +0000175962014-03-20 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
17597
17598 Optimize RenderTable::colToEffCol() for tables without colspans
17599 https://bugs.webkit.org/show_bug.cgi?id=129298
17600
17601 Reviewed by Simon Fraser.
17602
17603 Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
17604 when there is no colspan or colspan does not exceed the width of table.
17605 Blink merge https://codereview.chromium.org/154243002 by rhogan
17606
17607 * Layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html: Added.
17608 * Layout/large-table-with-collapsed-borders-and-colspans.html: Added.
17609 * Layout/large-table-with-collapsed-borders-and-no-colspans.html: Added.
17610 * Layout/resources/large-table-with-collapsed-borders.css: Added.
17611 * Layout/resources/large-table-with-collapsed-borders.js: Added.
17612
mjs@apple.com92047332014-03-15 04:08:27 +0000176132014-03-14 Maciej Stachowiak <mjs@apple.com>
17614
17615 Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
17616 https://bugs.webkit.org/show_bug.cgi?id=130276
17617 <rdar://problem/16266927>
17618
17619 Reviewed by Simon Fraser.
17620
17621 * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html:
17622 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html:
17623 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html:
17624 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html:
17625 * LongSpider/3d-morph.js:
17626 * LongSpider/3d-raytrace.js:
17627 * LongSpider/math-cordic.js:
17628 * LongSpider/string-tagcloud.js:
17629 * Parser/resources/html5-8266.html:
17630 * Parser/resources/html5.html:
17631
zoltan@webkit.orgfe4a0512014-03-10 22:32:15 +0000176322014-03-10 Zoltan Horvath <zoltan@webkit.org>
17633
17634 [CSS Shapes] Add performance tests for SVG shape with shape-margin
17635 https://bugs.webkit.org/show_bug.cgi?id=129930
17636
17637 Reviewed by Ryosuke Niwa.
17638
17639 The test is skipped by default.
17640
17641 * Layout/Shapes/ShapeOutsideSVGWithMargin.html: Added.
17642 * Layout/Shapes/resources/shape.svg: Added.
17643
zoltan@webkit.orgecae5392014-02-19 23:22:47 +0000176442014-02-19 Zoltan Horvath <zoltan@webkit.org>
17645
17646 [CSS Shapes] Add performance test for stacked floats with shape-outsides
17647 https://bugs.webkit.org/show_bug.cgi?id=128821
17648
17649 Reviewed by Brent Fulgham.
17650
17651 This tests generate stacked floats content with shape-outsides.
17652 The test is skipped by default.
17653
17654 * Layout/Shapes/ShapeOutsideStackedPolygons.html: Added.
17655
zoltan@webkit.orgd81a0782014-02-15 08:27:16 +0000176562014-02-15 Zoltan Horvath <zoltan@webkit.org>
17657
17658 [CSS Shapes] Add performance test for raster shape with shape-margin
17659 https://bugs.webkit.org/show_bug.cgi?id=128770
17660
17661 Reviewed by Ryosuke Niwa.
17662
17663 This patch introduces a new performance test for image valued shapes,
17664 where shape-margin is applied on the shape.
17665 The test is skipped by default.
17666
17667 * Layout/Shapes/ShapeOutsideRasterWithMargin.html: Added.
17668
rniwa@webkit.orgf0ed9ec2014-02-15 05:45:26 +0000176692014-02-14 Ryosuke Niwa <rniwa@webkit.org>
17670
17671 Improve the appearance of DYEBench
17672 https://bugs.webkit.org/show_bug.cgi?id=128866
17673
17674 Reviewed by Antti Koivisto.
17675
17676 Add a div that shows progress during the test. Also show 95th percentile,
17677 and use a table instead of pre to show results.
17678
17679 * DoYouEvenBench/Full.html:
17680 (.addResult): Added. Shows results in a table.
17681 (benchmarkClient.willRunTest): Added to show the progress bar.
17682 (benchmarkClient.didRunTest):
17683 (benchmarkClient.didRunSuites):
17684 (benchmarkClient.didFinishLastIteration): Compute 95th percentile using Statistics.js
17685
17686 * DoYouEvenBench/resources/benchmark-runner.js:
17687 (BenchmarkRunner.prototype._appendFrame): Fix the bug where marginLeft and marginTop
17688 weren't correctly parsed. We were treating top as left and bottom as top somehow.
17689 (BenchmarkRunner.prototype._runTestAndRecordResults): Fixed a typo.
17690
zoltan@webkit.org351b2b72014-02-13 23:28:50 +0000176912014-02-13 Zoltan Horvath <zoltan@webkit.org>
17692
zoltan@webkit.orge783f9e2014-02-14 01:17:14 +000017693 [CSS Shapes] Add performance test for complex polygon with shape-margin
17694 https://bugs.webkit.org/show_bug.cgi?id=128769
17695
17696 Reviewed by Ryosuke Niwa.
17697
17698 This patch modifies the logic of createShapeOutsideTest to accept multiple
17699 CSS properties from the test. The patch adds performance test for complex
17700 polygon shape (self intersecting at multiple places) case, moreover we
17701 apply shape-margin on the polygon also.
17702
17703 * Layout/Shapes/ShapeOutsideContentBox.html:
17704 * Layout/Shapes/ShapeOutsideInset.html:
17705 * Layout/Shapes/ShapeOutsidePolygonWithMargin.html: Added.
17706 * Layout/Shapes/ShapeOutsideRaster.html:
17707 * Layout/Shapes/ShapeOutsideSimplePolygon.html:
17708 * Layout/Shapes/resources/shapes.js:
17709
177102014-02-13 Zoltan Horvath <zoltan@webkit.org>
17711
zoltan@webkit.org351b2b72014-02-13 23:28:50 +000017712 [CSS Shapes] Add performance test for raster shape
17713 https://bugs.webkit.org/show_bug.cgi?id=128746
17714
17715 Reviewed by Ryosuke Niwa.
17716
17717 This patch adds performance testing for image valued shape-outside.
17718 The test is skipped by default for now.
17719
17720 * Layout/Shapes/ShapeOutsideRaster.html: Added.
17721 * Layout/Shapes/resources/shape.gif: Added.
17722
zoltan@webkit.org847b5ea2014-02-11 00:19:58 +0000177232014-02-10 Zoltan Horvath <zoltan@webkit.org>
17724
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000017725 [CSS Shapes] Add initial performance tests for polygon shape
zoltan@webkit.org847b5ea2014-02-11 00:19:58 +000017726 https://bugs.webkit.org/show_bug.cgi?id=128554
17727
17728 Reviewed by Ryosuke Niwa.
17729
17730 This patch adds performance testing for simple polygon shape-outside.
17731 The Shapes performance tests directory is skipped by default.
17732
17733 * Layout/Shapes/ShapeOutsideSimplePolygon.html: Added.
17734
zoltan@webkit.orgde8db452014-02-08 02:39:12 +0000177352014-02-07 Zoltan Horvath <zoltan@webkit.org>
17736
17737 [CSS Shapes] Add initial performance tests for inset shape
17738 https://bugs.webkit.org/show_bug.cgi?id=128378
17739
17740 Reviewed by Ryosuke Niwa.
17741
17742 * Layout/Shapes/ShapeOutsideContentBox.html: Move js to shapes.js.
17743 * Layout/Shapes/ShapeOutsideInset.html: Added.
17744 * Layout/Shapes/resources/shapes.js: Added.
17745 (.):
17746
rniwa@webkit.orge138fe42014-02-05 05:36:04 +0000177472014-02-04 Ryosuke Niwa <rniwa@webkit.org>
17748
rniwa@webkit.org52f20d42014-02-05 07:11:57 +000017749 Undelete the "build" directory erroneously removed in r163427.
17750
17751 * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/director/build:
17752
177532014-02-04 Ryosuke Niwa <rniwa@webkit.org>
17754
rniwa@webkit.orge78f9d22014-02-05 07:00:45 +000017755 Revert the change made in r162216 as it broke the benchmark on shipping Safari.
17756
17757 * DoYouEvenBench/resources/benchmark-runner.js:
17758
177592014-02-04 Ryosuke Niwa <rniwa@webkit.org>
17760
rniwa@webkit.orge138fe42014-02-05 05:36:04 +000017761 DoYouEvenBench: Update Ember.js test case
17762 https://bugs.webkit.org/show_bug.cgi?id=128227
17763
17764 Reviewed by Benjamin Poulain.
17765
17766 Updated the Ember.js TodoMVC implementation.
17767
17768 * DoYouEvenBench/resources/tests.js:
17769 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower.json:
17770 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.
17771 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js:
17772 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
17773 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
17774 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js:
17775 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
17776 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js:
17777 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/index.html:
17778 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/app.js:
17779 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js:
17780 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js:
17781 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.
17782 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
17783 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
17784 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/todo.js:
17785 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/router.js:
17786 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js:
17787 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.
17788 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/readme.md:
17789 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/test.html:
17790
zoltan@webkit.orgdca0cf72014-02-05 04:10:43 +0000177912014-02-04 Zoltan Horvath <zoltan@webkit.org>
17792
17793 [CSS Shapes] Add initial performance test for shape-outside: content-box
17794 https://bugs.webkit.org/show_bug.cgi?id=128190
17795
17796 Reviewed by Ryosuke Niwa.
17797
17798 I've introduced Shapes subdirectory in Layout, every CSS Shapes related performance tests should
17799 go there in the future. The initial performance tests uses 'shape-outside: content-box' in order
17800 to tests the code paths of the Shapes implementation. I also introduced shapes.js, which allows us
17801 to easily add new, simple performance tests for shape-outside.
17802
17803 The entire progress is tracked under #128188 meta bug.
17804
17805 * Layout/Shapes/ShapeOutsideContentBox.html: Added.
17806 * Layout/Shapes/resources/shapes.css: Added.
17807 * Layout/Shapes/resources/shapes.js: Added.
17808 * Skipped: We skip running the tests by default for now.
17809
rego@igalia.comd5c81a62014-01-17 22:22:13 +0000178102014-01-17 Manuel Rego Casasnovas <rego@igalia.com>
17811
17812 [CSS Regions] Minor fixes in regions performance tests
17813 https://bugs.webkit.org/show_bug.cgi?id=127041
17814
17815 Reviewed by Ryosuke Niwa.
17816
17817 Fix minor issues in CSS Regions performance tests.
17818
17819 * Layout/RegionsAuto.html: Change type to lower case.
17820 * Layout/RegionsAutoMaxHeight.html: Ditto.
17821 * Layout/RegionsFixed.html: Ditto.
17822 * Layout/RegionsFixedShort.html: Ditto.
17823 * Layout/RegionsSelection.html: Ditto. Move test methods from regions.js.
17824 * Layout/resources/regions.js: Remove moved methods.
17825
rniwa@webkit.orgb6da4f62014-01-17 09:23:59 +0000178262014-01-17 Ryosuke Niwa <rniwa@webkit.org>
17827
rniwa@webkit.org8efbd3e2014-01-17 21:10:37 +000017828 Host DoYouEvenBench on webkit.org
17829 https://bugs.webkit.org/show_bug.cgi?id=127185
17830
17831 Reviewed by Benjamin Poulain.
17832
17833 Compute the resources directory relative to the benchmark-runner's location
17834 so that we can load tests even if the runner HTML was located elsewhere.
17835
17836 * DoYouEvenBench/Full.html:
17837 * DoYouEvenBench/resources/benchmark-runner.js:
17838 (BenchmarkState._containingDirectory):
17839
178402014-01-17 Ryosuke Niwa <rniwa@webkit.org>
17841
rniwa@webkit.org580d25e2014-01-17 20:43:26 +000017842 DoYouEvenBench: Move flightjs-example-app and todomvc into resources
17843 https://bugs.webkit.org/show_bug.cgi?id=127183
17844
17845 Rubber-stamped by Anders Carlsson.
17846
17847 * DoYouEvenBench/InteractiveRunner.html: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
17848 * DoYouEvenBench/benchmark.html: Removed.
17849 * DoYouEvenBench/flightjs-example-app: Removed.
17850 * DoYouEvenBench/flightjs-example-app/LICENSE.md: Removed.
17851 * DoYouEvenBench/flightjs-example-app/README.md: Removed.
17852 * DoYouEvenBench/flightjs-example-app/app: Removed.
17853 * DoYouEvenBench/flightjs-example-app/app/boot: Removed.
17854 * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Removed.
17855 * DoYouEvenBench/flightjs-example-app/app/component_data: Removed.
17856 * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Removed.
17857 * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Removed.
17858 * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Removed.
17859 * DoYouEvenBench/flightjs-example-app/app/component_ui: Removed.
17860 * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Removed.
17861 * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Removed.
17862 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Removed.
17863 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Removed.
17864 * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Removed.
17865 * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Removed.
17866 * DoYouEvenBench/flightjs-example-app/app/css: Removed.
17867 * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Removed.
17868 * DoYouEvenBench/flightjs-example-app/app/data.js: Removed.
17869 * DoYouEvenBench/flightjs-example-app/app/templates.js: Removed.
17870 * DoYouEvenBench/flightjs-example-app/components: Removed.
17871 * DoYouEvenBench/flightjs-example-app/components/bootstrap: Removed.
17872 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Removed.
17873 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Removed.
17874 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Removed.
17875 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Removed.
17876 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Removed.
17877 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Removed.
17878 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Removed.
17879 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Removed.
17880 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Removed.
17881 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Removed.
17882 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Removed.
17883 * DoYouEvenBench/flightjs-example-app/components/es5-shim: Removed.
17884 * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Removed.
17885 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Removed.
17886 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Removed.
17887 * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Removed.
17888 * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Removed.
17889 * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Removed.
17890 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Removed.
17891 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Removed.
17892 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Removed.
17893 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Removed.
17894 * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Removed.
17895 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Removed.
17896 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Removed.
17897 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Removed.
17898 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Removed.
17899 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Removed.
17900 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Removed.
17901 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Removed.
17902 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Removed.
17903 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Removed.
17904 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Removed.
17905 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Removed.
17906 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Removed.
17907 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Removed.
17908 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Removed.
17909 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Removed.
17910 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Removed.
17911 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Removed.
17912 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Removed.
17913 * DoYouEvenBench/flightjs-example-app/components/flight: Removed.
17914 * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Removed.
17915 * DoYouEvenBench/flightjs-example-app/components/flight/lib: Removed.
17916 * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Removed.
17917 * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Removed.
17918 * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Removed.
17919 * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Removed.
17920 * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Removed.
17921 * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Removed.
17922 * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Removed.
17923 * DoYouEvenBench/flightjs-example-app/components/flight/tools: Removed.
17924 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Removed.
17925 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Removed.
17926 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Removed.
17927 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Removed.
17928 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Removed.
17929 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Removed.
17930 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Removed.
17931 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Removed.
17932 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Removed.
17933 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Removed.
17934 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Removed.
17935 * DoYouEvenBench/flightjs-example-app/components/jquery: Removed.
17936 * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Removed.
17937 * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Removed.
17938 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Removed.
17939 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Removed.
17940 * DoYouEvenBench/flightjs-example-app/components/mustache: Removed.
17941 * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Removed.
17942 * DoYouEvenBench/flightjs-example-app/components/requirejs: Removed.
17943 * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Removed.
17944 * DoYouEvenBench/flightjs-example-app/index.html: Removed.
17945 * DoYouEvenBench/flightjs-example-app/karma.conf.js: Removed.
17946 * DoYouEvenBench/flightjs-example-app/package.json: Removed.
17947 * DoYouEvenBench/flightjs-example-app/requireMain.js: Removed.
17948 * DoYouEvenBench/resources/benchmark-runner.js:
17949 * DoYouEvenBench/resources/flightjs-example-app: Copied from PerformanceTests/DoYouEvenBench/flightjs-example-app.
17950 * DoYouEvenBench/resources/todomvc: Copied from PerformanceTests/DoYouEvenBench/todomvc.
17951 * DoYouEvenBench/todomvc: Removed.
17952 * DoYouEvenBench/todomvc/architecture-examples: Removed.
17953 * DoYouEvenBench/todomvc/architecture-examples/angularjs: Removed.
17954 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Removed.
17955 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Removed.
17956 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Removed.
17957 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Removed.
17958 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
17959 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
17960 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Removed.
17961 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
17962 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
17963 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
17964 * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Removed.
17965 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Removed.
17966 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Removed.
17967 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Removed.
17968 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Removed.
17969 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Removed.
17970 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
17971 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Removed.
17972 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Removed.
17973 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Removed.
17974 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Removed.
17975 * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Removed.
17976 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Removed.
17977 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Removed.
17978 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
17979 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Removed.
17980 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
17981 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Removed.
17982 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
17983 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
17984 * DoYouEvenBench/todomvc/architecture-examples/backbone: Removed.
17985 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Removed.
17986 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Removed.
17987 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Removed.
17988 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Removed.
17989 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
17990 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Removed.
17991 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Removed.
17992 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
17993 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Removed.
17994 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
17995 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
17996 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
17997 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Removed.
17998 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
17999 * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Removed.
18000 * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Removed.
18001 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Removed.
18002 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Removed.
18003 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Removed.
18004 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Removed.
18005 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Removed.
18006 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Removed.
18007 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Removed.
18008 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Removed.
18009 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Removed.
18010 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Removed.
18011 * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Removed.
18012 * DoYouEvenBench/todomvc/architecture-examples/emberjs: Removed.
18013 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Removed.
18014 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Removed.
18015 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Removed.
18016 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Removed.
18017 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
18018 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
18019 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Removed.
18020 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
18021 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Removed.
18022 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
18023 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Removed.
18024 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Removed.
18025 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
18026 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
18027 * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Removed.
18028 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Removed.
18029 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Removed.
18030 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Removed.
18031 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
18032 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
18033 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Removed.
18034 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
18035 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Removed.
18036 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
18037 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
18038 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/router.js: Removed.
18039 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Removed.
18040 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
18041 * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Removed.
18042 * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Removed.
18043 * DoYouEvenBench/todomvc/architecture-examples/jquery: Removed.
18044 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Removed.
18045 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Removed.
18046 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Removed.
18047 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
18048 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Removed.
18049 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
18050 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Removed.
18051 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
18052 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
18053 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
18054 * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Removed.
18055 * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Removed.
18056 * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Removed.
18057 * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Removed.
18058 * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Removed.
18059 * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Removed.
18060 * DoYouEvenBench/todomvc/labs: Removed.
18061 * DoYouEvenBench/todomvc/labs/architecture-examples: Removed.
18062 * DoYouEvenBench/todomvc/labs/architecture-examples/react: Removed.
18063 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Removed.
18064 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Removed.
18065 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Removed.
18066 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Removed.
18067 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Removed.
18068 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Removed.
18069 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Removed.
18070 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Removed.
18071 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Removed.
18072 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Removed.
18073 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Removed.
18074 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Removed.
18075 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Removed.
18076 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Removed.
18077 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Removed.
18078 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Removed.
18079 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Removed.
18080 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Removed.
18081 * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Removed.
18082 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Removed.
18083 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Removed.
18084 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Removed.
18085 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Removed.
18086 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Removed.
18087 * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Removed.
18088 * DoYouEvenBench/todomvc/license.md: Removed.
18089 * DoYouEvenBench/todomvc/readme.md: Removed.
18090 * DoYouEvenBench/todomvc/vanilla-examples: Removed.
18091 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Removed.
18092 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
18093 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Removed.
18094 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Removed.
18095 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
18096 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
18097 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
18098 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Removed.
18099 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Removed.
18100 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Removed.
18101 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Removed.
18102 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Removed.
18103 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Removed.
18104 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Removed.
18105 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Removed.
18106 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Removed.
18107 * Skipped:
18108
181092014-01-17 Ryosuke Niwa <rniwa@webkit.org>
18110
rniwa@webkit.orgb6da4f62014-01-17 09:23:59 +000018111 Build fix. Skip HTML files that are not tests.
18112
18113 * Skipped:
18114
rniwa@webkit.orga8a32212014-01-17 06:06:36 +0000181152014-01-16 Ryosuke Niwa <rniwa@webkit.org>
18116
18117 Automate DoYouEvenBench
18118 https://bugs.webkit.org/show_bug.cgi?id=124497
18119
18120 Reviewed by Geoffrey Garen.
18121
18122 Enable DoYouEvenBench/Full.html on perf bots by default.
18123
18124 Put a space between the time and ms, and fixed a typo in runner.js so that the aggregator name will be reported.
18125
18126 * DoYouEvenBench/Full.html:
18127 * Skipped:
18128 * resources/runner.js:
18129
rego@igalia.comd0fdff42014-01-15 11:26:33 +0000181302014-01-15 Manuel Rego Casasnovas <rego@igalia.com>
18131
18132 [CSS Regions] Add performance tests for selection with mixed content
18133 https://bugs.webkit.org/show_bug.cgi?id=126427
18134
18135 Reviewed by Ryosuke Niwa.
18136
18137 Add new performance tests for selection in CSS Regions mixing regular
18138 content with regions. 2 new tests are added, one checking select all
18139 command and another simulating a user selection passing through all the
18140 paragraphs (similar to Layout/RegionsSelection.html).
18141
18142 Test are skipped for now while implementation of selection in CSS
18143 Regions is still evolving.
18144
18145 * Layout/RegionsExtendingSelectionMixedContent.html: Added.
18146 * Layout/RegionsSelectAllMixedContent.html: Added.
18147 * Layout/resources/regions.css:
18148 (.regular):
18149 * Layout/resources/regions.js:
18150 * Skipped:
18151
rniwa@webkit.org879e1d72014-01-15 08:01:52 +0000181522014-01-14 Ryosuke Niwa <rniwa@webkit.org>
18153
18154 Make DoYouEvenBench runnable by run-perf-tests
18155 https://bugs.webkit.org/show_bug.cgi?id=127030
18156
18157 Reviewed by Andreas Kling.
18158
18159 Added Full.html that runs 5 iterations of DoYouEvenBench. This is the canonical DoYouEvenBench,
18160 which is also runnable by run-perf-tests.
18161
18162 * DoYouEvenBench/Full.html: Added.
18163
18164 * DoYouEvenBench/benchmark.html:
18165 (startTest): Updated the code to account for the fact old measuredValues is pushed down to tests
18166 property and we now have total property so that we don't have to manually compute the total.
18167
18168 * DoYouEvenBench/resources/benchmark-report.js: Added. When we're inside a DRT/WTR, use
18169 PerfTestRunner to output that can be parsed by run-perf-tests. Do the same when the query part
18170 or the fragment part of the current URL is "webkit" for debugging purposes.
18171
18172 * DoYouEvenBench/resources/benchmark-runner.js:
18173 (BenchmarkRunner):
18174 (BenchmarkRunner.prototype._appendFrame): Position the frame at (0, 0) inside DRT and WTR since
18175 we have exactly 800px by 600px inside those two test runners. Also always insert the iframe as
18176 the first child of body to avoid inserting it after the pre inserted by the test runner.
18177 (BenchmarkRunner.prototype.step): Initializes _measuredValues.
18178 (BenchmarkRunner.prototype.runAllSteps): Merged callNextStep in benchmark.html.
18179 (BenchmarkRunner.prototype.runMultipleIterations): Added.
18180 (BenchmarkRunner.prototype._runTestAndRecordResults): Compute the grand total among suites.
18181 Also push down the sync and async time into tests property for consistency.
18182 (BenchmarkRunner.prototype._finalize):
18183
18184 * Dromaeo/resources/dromaeorunner.js:
18185 (DRT.testObject): Renamed dromaeoIterationCount to customIterationCount as this option is also
18186 used by DoYouEvenBench.
18187
18188 * resources/runner.js: Ditto.
18189 (.finish): Spit out the aggregator name.
18190
rniwa@webkit.org98471c52014-01-07 23:22:22 +0000181912014-01-07 Ryosuke Niwa <rniwa@webkit.org>
18192
rniwa@webkit.org4f872c22014-01-08 03:58:16 +000018193 DoYouEvenBench: Turn BenchmarkRunner into a real class
18194 https://bugs.webkit.org/show_bug.cgi?id=126613
18195
18196 Reviewed by Stephanie Lewis.
18197
18198 Made BenchmarkRunner an instantiatable class. Made tests.js simply create an array of suite objects
18199 instead of calling BenchmarkRunner.Suite now that we can have mulitple instances of BenchmarkRunner.
18200
18201 * DoYouEvenBench/benchmark.html:
18202 (formatTestName): Moved and renamed from BenchmarkRunner._testName.
18203 (createUIForSuites): Extracted from a giant blob of code.
18204 (startTest): Ditto.
18205 * DoYouEvenBench/resources/benchmark-runner.js:
18206 (BenchmarkRunner): Added.
18207 (BenchmarkRunner.prototype.waitForElement):
18208 (BenchmarkRunner.prototype._removeFrame):
18209 (BenchmarkRunner.prototype._appendFrame):
18210 (BenchmarkRunner.prototype._waitAndWarmUp):
18211 (BenchmarkRunner.prototype._runTest):
18212 (BenchmarkState.prototype.prepareCurrentSuite):
18213 (BenchmarkRunner.prototype.step):
18214 (BenchmarkRunner.prototype._runTestAndRecordResults):
18215 (BenchmarkRunner.prototype._finalize):
18216 * DoYouEvenBench/resources/tests.js:
18217
182182014-01-07 Ryosuke Niwa <rniwa@webkit.org>
18219
rniwa@webkit.org98471c52014-01-07 23:22:22 +000018220 DoYouEvenBench: Extract tests and runner code from benchmark.js/html
18221 https://bugs.webkit.org/show_bug.cgi?id=126596
18222
18223 Reviewed by Stephanie Lewis.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000018224
rniwa@webkit.org98471c52014-01-07 23:22:22 +000018225 Extracted benchmark-runner.js and tests.js out of benchmark.js and benchmark.html.
18226
18227 Added a "client" interface to BenchmarkRunner so that benchmark.html could register necessary hooks to
18228 update its UI. Also made BenchmarkRunner store a tree of results so that the serialization of test names
18229 could be isolated from BenchmarkRunner itself in the future.
18230
18231 * DoYouEvenBench/benchmark.html:
18232 Moved the code to instantiate and update UI here from benchmark.js. The test code was moved out of this
18233 file into resources/tests.js.
18234
18235 * DoYouEvenBench/resources/benchmark-runner.js: Renamed from PerformanceTests/DoYouEvenBench/benchmark.js.
18236 (SimplePromise): Moved from benchmark.js
18237 (SimplePromise.prototype.then): Ditto.
18238 (SimplePromise.prototype.resolve): Ditto.
18239 (BenchmarkTestStep): Added. Wraps each test step.
18240 (BenchmarkRunner.suite): Moved from benchmark.js.
18241 (BenchmarkRunner.setClient): Added.
18242 (BenchmarkRunner.waitForElement): Moved.
18243 (BenchmarkRunner._removeFrame): Ditto.
18244 (BenchmarkRunner._appendFrame): Ditto. Set the width and the height of the iframe as they're more than
18245 presentational as they affect performance.
18246 (BenchmarkRunner._waitAndWarmUp): Ditto.
18247 (BenchmarkRunner._runTest): Ditto.
18248 (BenchmarkRunner._testName): Ditto.
18249 (BenchmarkState): Ditto.
18250 (BenchmarkState.prototype.currentSuite): Ditto.
18251 (BenchmarkState.prototype.currentTest): Ditto.
18252 (BenchmarkState.prototype.next): Ditto.
18253 (BenchmarkState.prototype.isFirstTest): Ditto.
18254 (BenchmarkState.prototype.prepareCurrentSuite): Ditto.
18255 (BenchmarkRunner.step): Ditto.
18256 (BenchmarkRunner._runTestAndRecordResults): Ditto. Note the code to update the UI has been move to
18257 benchmark.html. Also moved the code to accumulate the totals here from _finalize.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000018258 (BenchmarkRunner._finalize): Moved.
rniwa@webkit.org98471c52014-01-07 23:22:22 +000018259
18260 * DoYouEvenBench/resources/tests.js: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
18261 Uses BenchmarkTestStep instead of an array for each test step.
18262
mmaxfield@apple.com22d3d432014-01-02 23:32:47 +0000182632014-01-02 Myles C. Maxfield <mmaxfield@apple.com>
18264
18265 Allow ImageBuffer to re-use IOSurfaces
18266 https://bugs.webkit.org/show_bug.cgi?id=125477
18267
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000018268 Reviewed by Geoff Garen.
mmaxfield@apple.com22d3d432014-01-02 23:32:47 +000018269
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000018270 This test times creating a variety of different sizes of canvases
18271 once some have already been created. The second creation of the
18272 canvases should re-use the existing IOSurfaces.
18273
mmaxfield@apple.com22d3d432014-01-02 23:32:47 +000018274 * Canvas/reuse.html: Added.
18275
commit-queue@webkit.org82d99102013-12-23 18:27:20 +0000182762013-12-23 Commit Queue <commit-queue@webkit.org>
18277
18278 Unreviewed, rolling out r160945.
18279 http://trac.webkit.org/changeset/160945
18280 https://bugs.webkit.org/show_bug.cgi?id=126164
18281
18282 Seems to have broken multiple canvas tests (Requested by ap on
18283 #webkit).
18284
18285 * Canvas/reuse.html: Removed.
18286
mmaxfield@apple.com056ce852013-12-21 00:43:27 +0000182872013-12-09 Myles C. Maxfield <mmaxfield@apple.com>
18288
18289 Allow ImageBuffer to re-use IOSurfaces
18290 https://bugs.webkit.org/show_bug.cgi?id=125477
18291
18292 Reviewed by Geoff Garen.
18293
18294 This test times creating a variety of different sizes of canvases
18295 once some have already been created. The second creation of the
18296 canvases should re-use the existing IOSurfaces.
18297
18298 * Canvas/reuse.html: Added.
18299
rniwa@webkit.org12932952013-12-16 05:56:25 +0000183002013-12-15 Ryosuke Niwa <rniwa@webkit.org>
18301
18302 REGRESSION: 2x regression on Dromaeo DOM query tests
18303 https://bugs.webkit.org/show_bug.cgi?id=125377
18304
18305 Reviewed by Filip Pizlo.
18306
18307 Added a micro-benchmark for updating a named property on document.
18308
18309 * Bindings/update-name-getter.html: Added.
18310 * Skipped:
18311
rego@igalia.com98e9a582013-12-03 22:35:19 +0000183122013-12-03 Manuel Rego Casasnovas <rego@igalia.com>
18313
18314 [CSS Regions] Fix Layout/RegionsSelection.html in Mac platform
18315 https://bugs.webkit.org/show_bug.cgi?id=124963
18316
18317 Reviewed by Ryosuke Niwa.
18318
18319 Layout/RegionsSelection.html introduced in r159488 was not working in
18320 Mac platform because of it was trying to use mouse events out of the
18321 window dimensions. Use collapse() and extend() methods from Selection
18322 object to solve the issue.
18323
18324 * Layout/resources/regions.js: Use collapse() and extend() instead of
18325 mouse events.
18326
rniwa@webkit.org2bf3ec52013-11-27 16:12:34 +0000183272013-11-27 Ryosuke Niwa <rniwa@webkit.org>
18328
18329 Build fix after r159805.
18330
18331 * resources/runner.js:
18332
svillar@igalia.com93acf8f2013-11-27 08:31:14 +0000183332013-11-26 Sergio Villar Senin <svillar@igalia.com>
18334
18335 [CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
18336 https://bugs.webkit.org/show_bug.cgi?id=103312
18337
18338 Reviewed by Andreas Kling.
18339
18340 Use the repeat() syntax to build the huge grids used by the
18341 performance tests.
18342
18343 * Layout/auto-grid-lots-of-data.html:
18344 * Layout/fixed-grid-lots-of-data.html:
18345
rniwa@webkit.org7a4f0952013-11-27 04:36:18 +0000183462013-11-26 Ryosuke Niwa <rniwa@webkit.org>
18347
rniwa@webkit.org081e85f2013-11-27 05:33:17 +000018348 Record subtest values in Dromaeo tests
18349 https://bugs.webkit.org/show_bug.cgi?id=124498
18350
18351 Reviewed by Andreas Kling.
18352
18353 Made Dromaeo's test runner report values in DRT.progress via newly added PerfTestRunner.reportValues.
18354
18355 * Dromaeo/resources/dromaeorunner.js:
18356 (.): Moved the definition out of DRT.setup.
18357 (DRT.setup): Ditto.
18358 (DRT.testObject): Extracted from DRT.setup. Set the subtest name and continueTesting.
18359 continueTesting is set true for subtests; i.e. when name is specified.
18360 (DRT.progress): Call PerfTestRunner.reportValues to report subtest results.
18361 (DRT.teardown): Call PerfTestRunner.reportValues instead of measureValueAsync.
18362
18363 * resources/runner.js: Made various changes for newly added PerfTestRunner.reportValues.
18364 (.): Moved the initialization of completedIterations, results, jsHeapResults, and mallocHeapResults into
18365 start since they need to be initialized before running each subtest. Initialize logLines here since we
18366 need to use the same logger for all subtests.
18367 (.start): Initialize the variables mentioned above here. Also respect doNotLogStart used by reportValues.
18368 (ignoreWarmUpAndLog): Added doNotLogProgress. Used by reportValues since it reports all values at once.
18369 (finish): Compute the metric name such as FrameFrame and Runs from unit. Also don't log or notify done
18370 when continueTesting is set on the test object.
18371 (PerfTestRunner.reportValues): Added. Reports all values for the main/sub test.
18372
183732013-11-26 Ryosuke Niwa <rniwa@webkit.org>
18374
rniwa@webkit.org7a4f0952013-11-27 04:36:18 +000018375 Remove replay performance tests as it's not actively maintained
18376 https://bugs.webkit.org/show_bug.cgi?id=124764
18377
18378 Reviewed by Andreas Kling.
18379
18380 Removed the replay performance tests. We can add them back when time comes.
18381
18382 * Replay/Chinese/chinaz.com.replay: Removed.
18383 * Replay/Chinese/www.163.com.replay: Removed.
18384 * Replay/Chinese/www.alipay.com.replay: Removed.
18385 * Replay/Chinese/www.baidu.com.replay: Removed.
18386 * Replay/Chinese/www.csdn.net.replay: Removed.
18387 * Replay/Chinese/www.douban.com.replay: Removed.
18388 * Replay/Chinese/www.hao123.com.replay: Removed.
18389 * Replay/Chinese/www.xinhuanet.com.replay: Removed.
18390 * Replay/Chinese/www.xunlei.com.replay: Removed.
18391 * Replay/Chinese/www.youku.com.replay: Removed.
18392 * Replay/English/beatonna.livejournal.com.replay: Removed.
18393 * Replay/English/cakewrecks.blogspot.com.replay: Removed.
18394 * Replay/English/chemistry.about.com.replay: Removed.
18395 * Replay/English/digg.com.replay: Removed.
18396 * Replay/English/en.wikipedia.org-rorschach_test.replay: Removed.
18397 * Replay/English/icanhascheezburger.com.replay: Removed.
18398 * Replay/English/imgur.com-gallery.replay: Removed.
18399 * Replay/English/online.wsj.com.replay: Removed.
18400 * Replay/English/stockoverflow.com-best-comment.replay: Removed.
18401 * Replay/English/www.alibaba.com.replay: Removed.
18402 * Replay/English/www.amazon.com-kindle.replay: Removed.
18403 * Replay/English/www.apple.com.replay: Removed.
18404 * Replay/English/www.cnet.com.replay: Removed.
18405 * Replay/English/www.dailymotion.com.replay: Removed.
18406 * Replay/English/www.ehow.com-prevent-fire.replay: Removed.
18407 * Replay/English/www.filestube.com-amy-adams.replay: Removed.
18408 * Replay/English/www.foxnews.replay: Removed.
18409 * Replay/English/www.huffingtonpost.com.replay: Removed.
18410 * Replay/English/www.imdb.com-twilight.replay: Removed.
18411 * Replay/English/www.mozilla.com-all-order.replay: Removed.
18412 * Replay/English/www.php.net.replay: Removed.
18413 * Replay/English/www.reddit.com.replay: Removed.
18414 * Replay/English/www.telegraph.co.uk.replay: Removed.
18415 * Replay/English/www.w3.org-htmlcss.replay: Removed.
18416 * Replay/English/www.w3schools.com-html.replay: Removed.
18417 * Replay/English/www.youtube.com-music.replay: Removed.
18418 * Replay/French/www.orange.fr.replay: Removed.
18419 * Replay/Italian/www.repubblica.it.replay: Removed.
18420 * Replay/Japanese/2ch.net-newsplus.replay: Removed.
18421 * Replay/Japanese/entameblog.seesaa.net.replay: Removed.
18422 * Replay/Japanese/ja.wikipedia.org.replay: Removed.
18423 * Replay/Japanese/www.hatena.ne.jp.replay: Removed.
18424 * Replay/Japanese/www.livedoor.com.replay: Removed.
18425 * Replay/Japanese/www.nicovideo.jp.replay: Removed.
18426 * Replay/Japanese/www.rakuten.co.jp.replay: Removed.
18427 * Replay/Japanese/www.yahoo.co.jp.replay: Removed.
18428 * Replay/Korean/www.naver.com.replay: Removed.
18429 * Replay/Persian/blogfa.com.replay: Removed.
18430 * Replay/Polish/www.wp.pl.replay: Removed.
18431 * Replay/Portuguese/www.uol.com.br.replay: Removed.
18432 * Replay/Russian/lenta.ru.replay: Removed.
18433 * Replay/Russian/vkontakte.ru-help.replay: Removed.
18434 * Replay/Russian/www.ixbt.com.replay: Removed.
18435 * Replay/Russian/www.kp.ru.replay: Removed.
18436 * Replay/Russian/www.liveinternet.ru.replay: Removed.
18437 * Replay/Russian/www.pravda.ru.replay: Removed.
18438 * Replay/Russian/www.rambler.ru.replay: Removed.
18439 * Replay/Russian/www.ucoz.ru.replay: Removed.
18440 * Replay/Russian/www.yandex.ru.replay: Removed.
18441 * Replay/Spanish/www.taringa.net.replay: Removed.
18442 * Replay/Swedish/www.flashback.se.replay: Removed.
18443 * Replay/Swedish/www.tradera.com.replay: Removed.
18444 * Replay/www.google.com.replay: Removed.
18445 * Replay/www.techcrunch.com.replay: Removed.
18446 * Replay/www.youtube.com.replay: Removed.
18447
rniwa@webkit.orgb252a9d2013-11-23 04:50:45 +0000184482013-11-22 Ryosuke Niwa <rniwa@webkit.org>
18449
18450 Layout Test editing/deleting/password-delete-performance.html is failing
18451 https://bugs.webkit.org/show_bug.cgi?id=124781
18452
18453 Reviewed by Alexey Proskuryakov.
18454
18455 Add a new performance test to replace editing/deleting/password-delete-performance.html.
18456 We skip this test by default since it's a micro benchmark.
18457
18458 * Interactive/DeletingInPasswordField.html: Added.
18459 * Skipped:
18460
svillar@igalia.combec27322013-11-22 11:03:32 +0000184612013-11-18 Sergio Villar Senin <svillar@igalia.com>
18462
18463 [CSS Grid Layout] Improve content-sized track layout
18464 https://bugs.webkit.org/show_bug.cgi?id=124408
18465
18466 Reviewed by Dean Jackson.
18467
18468 From Blink r156122 by <jchaffraix@chromium.org>
18469
18470 New test to check the performance of layouting grids with content sized tracks.
18471
18472 * Layout/auto-grid-lots-of-data.html: Added.
18473
svillar@igalia.com261d4342013-11-22 09:25:01 +0000184742013-11-08 Sergio Villar Senin <svillar@igalia.com>
18475
18476 [CSS Grid Layout] Run the content-sized tracks sizing algorithm only when required
18477 https://bugs.webkit.org/show_bug.cgi?id=124039
18478
18479 Reviewed by Dean Jackson.
18480
18481 From Blink r156028 and r156168 by <jchaffraix@chromium.org>.
18482
18483 New performance tests for layouts in grids with fixed size tracks.
18484
18485 * Layout/fixed-grid-lots-of-data.html: Added.
18486
rego@igalia.comec186002013-11-19 09:28:38 +0000184872013-11-19 Manuel Rego Casasnovas <rego@igalia.com>
18488
18489 [CSS Regions] Add performance test for selection
18490 https://bugs.webkit.org/show_bug.cgi?id=119230
18491
18492 Reviewed by Ryosuke Niwa.
18493
18494 Add new performance test for selection in CSS Regions. It checks a
18495 selection from the first region to the last one, passing through all the
18496 regions.
18497
18498 Test is skipped for now while implementation of selection in CSS Regions
18499 is still evolving.
18500
18501 * Layout/RegionsSelection.html: Added.
18502 * Layout/resources/regions.js:
18503 (.):
18504 * Skipped:
18505
rniwa@webkit.org2d9dd882013-11-18 15:28:47 +0000185062013-11-18 Ryosuke Niwa <rniwa@webkit.org>
18507
rniwa@webkit.org22892652013-11-18 23:40:36 +000018508 Simplify and reformat the output of performance tests inside test runners
18509 https://bugs.webkit.org/show_bug.cgi?id=124496
18510
18511 Reviewed by Antti Koivisto.
18512
18513 As a preparation to support subtests for Dromaeo and DoYouEvenBench, simplify the output performance tests generate.
18514 Also modernize the output to better support "metric" concept we introduced a while ago.
18515
18516 New output on Dromaeo/dom-attr looks like this:
18517 -----------------------------------------------
18518 Running 5 times
18519 getAttribute -> [1105, 1108, 1134, 1137, 1154]
18520 element.property -> [1634, 1655, 1685, 1696, 1723]
18521 setAttribute -> [646.3536463536464, 651, 651, 656.3436563436563, 658]
18522 element.property = value -> [934, 949, 963, 964, 974]
18523 element.expando = value -> [419, 419.5804195804196, 421.57842157842157, 425.57442557442556, 429]
18524 element.expando -> [501, 517, 519.4805194805194, 521.4785214785214, 525]
18525
18526 1: 117.40644785571585 runs/s
18527 2: 118.84720469666297 runs/s
18528 3: 119.80547640905021 runs/s
18529 4: 120.51886194758805 runs/s
18530 5: 121.51924380569295 runs/s
18531
18532 :Time -> [117.40644785571585, 118.84720469666297, 119.80547640905021, 120.51886194758805, 121.51924380569295] runs/s
18533 mean: 119.619446942942 runs/s
18534 median: 119.80547640905021 runs/s
18535 stdev: 1.5769040458730506 runs/s
18536 min: 117.40644785571585 runs/s
18537 max: 121.51924380569295 runs/s
18538 -----------------------------------------------
18539
18540 * Dromaeo/resources/dromaeorunner.js:
18541 (DRT.progress): Use the new format for subtest reports.
18542 * resources/runner.js:
18543 (.): Declare verboseLogging, which is set to true outside of test runners.
18544 (PerfTestRunner.logInfo): Use verboseLogging instead of directly checking window.testRunner.
18545 (PerfTestRunner.logDetail): Added. Logs informative text with a label such as "mean: 123 s" with 4-space indentation.
18546 (PerfTestRunner.logStatistics): Use logDetail.
18547 (.start): Initialize verboseLogging. Also log "Running 20 times" as an informative log using logDetail.
18548 (.ignoreWarmUpAndLog): Use logDetail for showing the progress. These logs were useless inside test runners anyway
18549 because perftest didn't get to see any output until the test finished running.
18550 (.finish): Call logStatistics with metric name as opposed to a label. Each metric name is now prefixed with ':' to be
18551 distinguishable from subtests, making the new format forward compatible.
18552
185532013-11-18 Ryosuke Niwa <rniwa@webkit.org>
18554
rniwa@webkit.org2d9dd882013-11-18 15:28:47 +000018555 [Performance tests] Interactive/SelectAll.html throws an exception
18556 https://bugs.webkit.org/show_bug.cgi?id=124495
18557
18558 Reviewed by Antti Koivisto
18559
18560 Return a boolean indicating whether more values are needed or not in
18561 PerfTestRunner.measureValueAsync so that runTest can terminate gracefully.
18562
18563 * Interactive/SelectAll.html:
18564 (runTest): Don't schedule a timer for runTest if we've got enough values.
18565 * resources/runner.js:
18566 (PerfTestRunner.measureValueAsync): Returns true iff more values are needed.
18567
antti@apple.com67e53962013-11-13 12:26:55 +0000185682013-11-13 Antti Koivisto <antti@apple.com>
18569
18570 This was supposed to test overflow-wrap:break-word instead of word-break:break-all.
18571
18572 Rubber-stamped by Andreas Kling.
18573
18574 * Layout/line-layout-simple.html:
18575
akling@apple.com9b6223e2013-11-12 09:44:27 +0000185762013-11-12 Andreas Kling <akling@apple.com>
18577
akling@apple.com31b95722013-11-12 18:19:11 +000018578 Remove body onload handler from html5-8266.html that was causing
18579 the test to sometimes finish before doing anything interesting.
18580
18581 Unskip Parser/HTML5-8266-FullRender.html now that it's stable.
18582
18583 Rubber-stamped by Antti Koivisto.
18584
18585 * Parser/resources/html5-8266.html:
18586 * Skipped:
18587
185882013-11-12 Andreas Kling <akling@apple.com>
18589
akling@apple.com0a0c12d2013-11-12 14:03:06 +000018590 Neutralize external resource loads in the new HTML5 spec copy.
18591
18592 Skip Parser/HTML5-8266-FullRender.html until I can make it less flaky.
18593
18594 * Parser/resources/html5-8266.html:
18595 * Skipped:
18596
185972013-11-12 Andreas Kling <akling@apple.com>
18598
akling@apple.com9b6223e2013-11-12 09:44:27 +000018599 Import a fresh version of the full HTML5 spec for perf testing.
18600
18601 Rubber-stamped by Antti Koivisto.
18602
18603 * Parser/HTML5-8266-FullRender.html: Added.
18604 * Parser/HTML5-8266-ParseOnly.html: Added.
18605 * Parser/resources/html5-8266.html: Added.
18606
antti@apple.coma8052e12013-11-09 11:14:37 +0000186072013-11-09 Antti Koivisto <antti@apple.com>
18608
18609 Add subtest for word-break:break-all to Layout/line-layout-simple.html
18610 https://bugs.webkit.org/show_bug.cgi?id=124103
18611
18612 Reviewed by Andreas Kling.
18613
18614 * Layout/line-layout-simple.html:
18615
18616 Combination "white-space:pre-wrap; word-break:break-all" is common for pure text.
18617
antti@apple.comc3a1d122013-11-08 14:57:51 +0000186182013-11-08 Antti Koivisto <antti@apple.com>
18619
18620 Add line layout performance test that exercises more cases
18621 https://bugs.webkit.org/show_bug.cgi?id=124041
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000018622
antti@apple.comc3a1d122013-11-08 14:57:51 +000018623 Reviewed by Anders Carlsson.
18624
18625 The existing line-layout.html covers the most basic left-aligned case only.
18626 Add a test with more coverage for things that are mostly not yet supported by the simple
18627 line layout path:
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000018628
antti@apple.comc3a1d122013-11-08 14:57:51 +000018629 - centered text
18630 - right aligned text
18631 - justified text
18632 - pre
18633 - white-space:pre-wrap
18634 - text with simple inlines
18635 - text with br
18636
18637 * Layout/line-layout-simple.html: Added.
18638
svillar@igalia.comcb4d1572013-10-25 10:31:56 +0000186392013-10-25 Sergio Villar Senin <svillar@igalia.com>
18640
18641 Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
18642 https://bugs.webkit.org/show_bug.cgi?id=118620
18643
18644 Reviewed by Antti Koivisto.
18645
18646 From Blink r152960 by <ojan@chromium.org>
18647
18648 New performance test for layouts in flexboxes.
18649
18650 * Layout/flexbox-lots-of-data.html: Added.
18651
commit-queue@webkit.org0165fb42013-10-24 16:35:44 +0000186522013-10-24 Commit Queue <commit-queue@webkit.org>
18653
18654 Unreviewed, rolling out r157916.
18655 http://trac.webkit.org/changeset/157916
18656 https://bugs.webkit.org/show_bug.cgi?id=123274
18657
18658 Broke Layout/flexbox-lots-of-data.html on perfbot (Requested
18659 by ap on #webkit).
18660
18661 * Layout/flexbox-lots-of-data.html: Removed.
18662
svillar@igalia.coma4099802013-10-24 06:53:10 +0000186632013-10-14 Sergio Villar Senin <svillar@igalia.com>
18664
18665 Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
18666 https://bugs.webkit.org/show_bug.cgi?id=118620
18667
18668 Reviewed by Antti Koivisto.
18669
18670 From Blink r152960 by <ojan@chromium.org>
18671
18672 New performance test for layouts in flexboxes.
18673
18674 * Layout/flexbox-lots-of-data.html: Added.
18675
rniwa@webkit.org3a43ae32013-10-06 22:07:48 +0000186762013-10-06 Ryosuke Niwa <rniwa@webkit.org>
18677
18678 DoYouEvenBench: Make it work on Internet Explorer 11 Release Preview
18679 https://bugs.webkit.org/show_bug.cgi?id=122406
18680
18681 Reviewed by Darin Adler.
18682
18683 On Internet Explorer 11, $(elem).closest('li').data('id') fails to find the containig li of elem once
18684 the first item is marked complete or deleted until we get back to the event loop in the jQuery/TodoMVC.
18685 Worked around this limitation by overriding app.getTodo to use each item's id computed in advance.
18686
18687 Also use $.text instead of execCommand('InsertText') in FlightJS/MailClient since Internet Explorer
18688 doesn't support execCommand('InsertText'). Also select the recipient to avoid exceptions.
18689
18690 * DoYouEvenBench/benchmark.html:
18691
rniwa@webkit.org32439c52013-10-05 09:41:19 +0000186922013-10-05 Ryosuke Niwa <rniwa@webkit.org>
18693
18694 DoYouEvenBench: Add Facebook's React TodoMVC test case
18695 https://bugs.webkit.org/show_bug.cgi?id=122379
18696
18697 Reviewed by Andreas Kling.
18698
18699 Add React/TodoMVC as a new test case. Somehow we beat Firefox on this one as well.
18700
18701 * DoYouEvenBench/benchmark.html:
18702 * DoYouEvenBench/todomvc/labs: Added.
18703 * DoYouEvenBench/todomvc/labs/architecture-examples: Added.
18704 * DoYouEvenBench/todomvc/labs/architecture-examples/react: Added.
18705 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Added.
18706 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Added.
18707 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Added.
18708 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Added.
18709 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Added.
18710 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Added.
18711 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Added.
18712 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Added.
18713 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Added.
18714 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Added.
18715 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Added.
18716 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Added.
18717 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Added.
18718 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Added.
18719 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Added.
18720 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Added.
18721 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Added.
18722 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Added.
18723 * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Added.
18724 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Added.
18725 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Added.
18726 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Added.
18727 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Added.
18728 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Added.
18729 * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Added.
18730
rniwa@webkit.org0ee4d6f2013-09-25 22:18:52 +0000187312013-09-25 Ryosuke Niwa <rniwa@webkit.org>
18732
18733 DoYouEvenBench: Add a test case for FlightJS
18734 https://bugs.webkit.org/show_bug.cgi?id=121926
18735
18736 Reviewed by Antti Koivisto.
18737
18738 Add a FlightJS test case.
18739
18740 * DoYouEvenBench/benchmark.html:
18741 * DoYouEvenBench/benchmark.js:
18742 * DoYouEvenBench/flightjs-example-app: Added.
18743 * DoYouEvenBench/flightjs-example-app/LICENSE.md: Added.
18744 * DoYouEvenBench/flightjs-example-app/README.md: Added.
18745 * DoYouEvenBench/flightjs-example-app/app: Added.
18746 * DoYouEvenBench/flightjs-example-app/app/boot: Added.
18747 * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Added.
18748 * DoYouEvenBench/flightjs-example-app/app/component_data: Added.
18749 * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Added.
18750 * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Added.
18751 * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Added.
18752 * DoYouEvenBench/flightjs-example-app/app/component_ui: Added.
18753 * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Added.
18754 * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Added.
18755 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Added.
18756 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Added.
18757 * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Added.
18758 * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Added.
18759 * DoYouEvenBench/flightjs-example-app/app/css: Added.
18760 * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Added.
18761 * DoYouEvenBench/flightjs-example-app/app/data.js: Added.
18762 * DoYouEvenBench/flightjs-example-app/app/templates.js: Added.
18763 * DoYouEvenBench/flightjs-example-app/components: Added.
18764 * DoYouEvenBench/flightjs-example-app/components/bootstrap: Added.
18765 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Added.
18766 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Added.
18767 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Added.
18768 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Added.
18769 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Added.
18770 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Added.
18771 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Added.
18772 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Added.
18773 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Added.
18774 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Added.
18775 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Added.
18776 * DoYouEvenBench/flightjs-example-app/components/es5-shim: Added.
18777 * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Added.
18778 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Added.
18779 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Added.
18780 * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Added.
18781 * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Added.
18782 * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Added.
18783 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Added.
18784 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Added.
18785 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Added.
18786 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Added.
18787 * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Added.
18788 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Added.
18789 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Added.
18790 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Added.
18791 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Added.
18792 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Added.
18793 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Added.
18794 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Added.
18795 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Added.
18796 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Added.
18797 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Added.
18798 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Added.
18799 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Added.
18800 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Added.
18801 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Added.
18802 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Added.
18803 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Added.
18804 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Added.
18805 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Added.
18806 * DoYouEvenBench/flightjs-example-app/components/flight: Added.
18807 * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Added.
18808 * DoYouEvenBench/flightjs-example-app/components/flight/lib: Added.
18809 * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Added.
18810 * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Added.
18811 * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Added.
18812 * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Added.
18813 * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Added.
18814 * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Added.
18815 * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Added.
18816 * DoYouEvenBench/flightjs-example-app/components/flight/tools: Added.
18817 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Added.
18818 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Added.
18819 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Added.
18820 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Added.
18821 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Added.
18822 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Added.
18823 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Added.
18824 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Added.
18825 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Added.
18826 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Added.
18827 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Added.
18828 * DoYouEvenBench/flightjs-example-app/components/jquery: Added.
18829 * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Added.
18830 * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Added.
18831 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Added.
18832 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Added.
18833 * DoYouEvenBench/flightjs-example-app/components/mustache: Added.
18834 * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Added.
18835 * DoYouEvenBench/flightjs-example-app/components/requirejs: Added.
18836 * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Added.
18837 * DoYouEvenBench/flightjs-example-app/index.html: Added.
18838 * DoYouEvenBench/flightjs-example-app/karma.conf.js: Added.
18839 * DoYouEvenBench/flightjs-example-app/package.json: Added.
18840 * DoYouEvenBench/flightjs-example-app/requireMain.js: Added.
18841
rniwa@webkit.orgc239f9f2013-09-19 08:07:48 +0000188422013-09-19 Ryosuke Niwa <rniwa@webkit.org>
18843
rniwa@webkit.org47d051a2013-09-19 17:57:47 +000018844 DoYouEvenBench: Indentations in benchmark.js and benchmark.html are all messed up
18845 https://bugs.webkit.org/show_bug.cgi?id=121597
18846
18847 Reviewed by Anders Carlsson.
18848
18849 Fixed indentations.
18850
18851 * DoYouEvenBench/benchmark.html:
18852 * DoYouEvenBench/benchmark.js:
18853 (SimplePromise.prototype.resolve.else):
18854 (SimplePromise.prototype.resolve):
18855 (BenchmarkRunner.waitForElement.resolveIfReady):
18856 (BenchmarkRunner.waitForElement):
18857 (BenchmarkRunner._waitAndWarmUp.Fibonacci):
18858 (BenchmarkRunner._finalize):
18859
188602013-09-19 Ryosuke Niwa <rniwa@webkit.org>
18861
rniwa@webkit.orgc239f9f2013-09-19 08:07:48 +000018862 Add an AngularJS test to DoYouEvenBench
18863 https://bugs.webkit.org/show_bug.cgi?id=121595
18864
18865 Reviewed by Antti Koivisto.
18866
18867 * DoYouEvenBench/benchmark.html:
18868 * DoYouEvenBench/todomvc/architecture-examples/angularjs: Added.
18869 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Added.
18870 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Added.
18871 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Added.
18872 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Added.
18873 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.
18874 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.
18875 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Added.
18876 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.
18877 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.
18878 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.
18879 * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Added.
18880 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Added.
18881 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Added.
18882 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Added.
18883 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.
18884 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Added.
18885 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.
18886 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.
18887 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.
18888 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Added.
18889 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.
18890 * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Added.
18891 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Added.
18892 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Added.
18893 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.
18894 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Added.
18895 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Added.
18896 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Added.
18897 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.
18898 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.
18899
rniwa@webkit.org41ae1952013-09-19 00:15:35 +0000189002013-09-17 Ryosuke Niwa <rniwa@webkit.org>
18901
18902 Add a not completely unrealistic DOM Benchmark
18903 https://bugs.webkit.org/show_bug.cgi?id=121361
18904
18905 Reviewed by Filip Pizlo.
18906
18907 Add a DOM benchmark based on TodoMVC for vanilla JS, Ember.js, Backbone.js, and jQuery.
18908 We'll add more frameworks and demo apps as we go.
18909
18910 * DoYouEvenBench: Added.
18911 * DoYouEvenBench/benchmark.html: Added.
18912 * DoYouEvenBench/benchmark.js: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000018913 (SimplePromise):
rniwa@webkit.org41ae1952013-09-19 00:15:35 +000018914 (SimplePromise.prototype.then):
18915 (SimplePromise.prototype.resolve.else):
18916 (SimplePromise.prototype.resolve):
18917 (BenchmarkRunner.suite):
18918 (BenchmarkRunner.waitForElement.resolveIfReady):
18919 (BenchmarkRunner.waitForElement):
18920 (BenchmarkRunner._removeFrame):
18921 (BenchmarkRunner._appendFrame):
18922 (BenchmarkRunner._waitAndWarmUp.Fibonacci):
18923 (BenchmarkRunner._testName):
18924 (BenchmarkRunner._testItemId):
18925 (BenchmarkRunner.listSuites.button.onclick):
18926 (BenchmarkRunner.listSuites.callNextStep):
18927 (BenchmarkRunner.listSuites):
18928 (BenchmarkState):
18929 (BenchmarkState.prototype.currentSuite):
18930 (BenchmarkState.prototype.currentTest):
18931 (BenchmarkState.prototype.next):
18932 (BenchmarkState.prototype.isFirstTest):
18933 (BenchmarkState.prototype.prepareCurrentSuite.frame.onload):
18934 (BenchmarkRunner.step):
18935 (BenchmarkRunner._runTestAndRecordResults):
18936 (BenchmarkRunner._finalize):
18937 * DoYouEvenBench/todomvc: Added.
18938 * DoYouEvenBench/todomvc/architecture-examples: Added.
18939 * DoYouEvenBench/todomvc/architecture-examples/backbone: Added.
18940 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Added.
18941 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Added.
18942 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Added.
18943 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Added.
18944 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Added.
18945 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Added.
18946 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Added.
18947 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Added.
18948 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Added.
18949 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Added.
18950 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Added.
18951 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Added.
18952 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Added.
18953 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Added.
18954 * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Added.
18955 * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Added.
18956 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Added.
18957 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Added.
18958 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Added.
18959 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Added.
18960 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Added.
18961 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Added.
18962 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Added.
18963 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Added.
18964 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Added.
18965 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Added.
18966 * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Added.
18967 * DoYouEvenBench/todomvc/architecture-examples/emberjs: Added.
18968 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Added.
18969 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Added.
18970 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Added.
18971 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Added.
18972 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Added.
18973 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Added.
18974 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Added.
18975 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Added.
18976 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Added.
18977 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Added.
18978 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Added.
18979 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Added.
18980 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Added.
18981 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Added.
18982 * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Added.
18983 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Added.
18984 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Added.
18985 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Added.
18986 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Added.
18987 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Added.
18988 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Added.
18989 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Added.
18990 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Added.
18991 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Added.
18992 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Added.
18993 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Added.
18994 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Added.
18995 * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Added.
18996 * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Added.
18997 * DoYouEvenBench/todomvc/architecture-examples/jquery: Added.
18998 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Added.
18999 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Added.
19000 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Added.
19001 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Added.
19002 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Added.
19003 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Added.
19004 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Added.
19005 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Added.
19006 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Added.
19007 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Added.
19008 * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Added.
19009 * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Added.
19010 * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Added.
19011 * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Added.
19012 * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Added.
19013 * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Added.
19014 * DoYouEvenBench/todomvc/license.md: Added.
19015 * DoYouEvenBench/todomvc/readme.md: Added.
19016 * DoYouEvenBench/todomvc/vanilla-examples: Added.
19017 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Added.
19018 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Added.
19019 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Added.
19020 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Added.
19021 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Added.
19022 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Added.
19023 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Added.
19024 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Added.
19025 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Added.
19026 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Added.
19027 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Added.
19028 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Added.
19029 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Added.
19030 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Added.
19031 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Added.
19032 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Added.
19033 * Skipped:
19034
fpizlo@apple.comb144d212013-09-05 02:53:16 +0000190352013-09-04 Filip Pizlo <fpizlo@apple.com>
19036
19037 Introduce a version of SunSpider that runs for a really long time (about 1 sec on my machine)
19038
19039 Rubber stamped by Mark Hahnenberg.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000019040
fpizlo@apple.comb144d212013-09-05 02:53:16 +000019041 This isn't meant for serious VM-to-VM performance comparisons, but it is useful
19042 to see how these benchmarks behave when they're completely warmed up.
19043
19044 * LongSpider: Added.
19045 * LongSpider/3d-cube.js: Added.
19046 (DrawLine):
19047 (CalcCross):
19048 (CalcNormal):
19049 (CreateP):
19050 (MMulti):
19051 (VMulti):
19052 (VMulti2):
19053 (MAdd):
19054 (Translate):
19055 (RotateX):
19056 (RotateY):
19057 (RotateZ):
19058 (DrawQube):
19059 (Loop):
19060 (Init):
19061 * LongSpider/3d-morph.js: Added.
19062 (loops.3500.nx.120.nz.120.morph):
19063 * LongSpider/3d-raytrace.js: Added.
19064 (createVector):
19065 (sqrLengthVector):
19066 (lengthVector):
19067 (addVector):
19068 (subVector):
19069 (scaleVector):
19070 (normaliseVector):
19071 (add):
19072 (sub):
19073 (scalev):
19074 (dot):
19075 (scale):
19076 (cross):
19077 (normalise):
19078 (transformMatrix):
19079 (invertMatrix):
19080 (Triangle):
19081 (Triangle.prototype.intersect):
19082 (Scene):
19083 (Scene.prototype.intersect):
19084 (Scene.prototype.blocked):
19085 (Camera):
19086 (Camera.prototype.generateRayPair):
19087 (renderRows):
19088 (Camera.prototype.render):
19089 (raytraceScene.floorShader):
19090 (raytraceScene):
19091 (arrayToCanvasCommands):
19092 * LongSpider/access-binary-trees.js: Added.
19093 (TreeNode):
19094 (TreeNode.prototype.itemCheck):
19095 (bottomUpTree):
19096 * LongSpider/access-fannkuch.js: Added.
19097 (fannkuch):
19098 * LongSpider/access-nbody.js: Added.
19099 (Body):
19100 (Body.prototype.offsetMomentum):
19101 (Jupiter):
19102 (Saturn):
19103 (Uranus):
19104 (Neptune):
19105 (Sun):
19106 (NBodySystem):
19107 (NBodySystem.prototype.advance):
19108 (NBodySystem.prototype.energy):
19109 * LongSpider/access-nsieve.js: Added.
19110 (pad):
19111 (nsieve):
19112 (sieve):
19113 * LongSpider/bitops-3bit-bits-in-byte.js: Added.
19114 (fast3bitlookup):
19115 (TimeFunc):
19116 * LongSpider/bitops-bits-in-byte.js: Added.
19117 (bitsinbyte):
19118 (TimeFunc):
19119 * LongSpider/bitops-nsieve-bits.js: Added.
19120 (pad):
19121 (primes):
19122 (sieve):
19123 * LongSpider/controlflow-recursive.js: Added.
19124 (ack):
19125 (fib):
19126 (tak):
19127 * LongSpider/crypto-aes.js: Added.
19128 (Cipher):
19129 (SubBytes):
19130 (ShiftRows):
19131 (MixColumns):
19132 (AddRoundKey):
19133 (KeyExpansion):
19134 (SubWord):
19135 (RotWord):
19136 (AESEncryptCtr):
19137 (AESDecryptCtr):
19138 (escCtrlChars):
19139 * LongSpider/crypto-md5.js: Added.
19140 (hex_md5):
19141 (b64_md5):
19142 (str_md5):
19143 (hex_hmac_md5):
19144 (b64_hmac_md5):
19145 (str_hmac_md5):
19146 (md5_vm_test):
19147 (core_md5):
19148 (md5_cmn):
19149 (md5_ff):
19150 (md5_gg):
19151 (md5_hh):
19152 (md5_ii):
19153 (core_hmac_md5):
19154 (safe_add):
19155 (bit_rol):
19156 (str2binl):
19157 (binl2str):
19158 (binl2hex):
19159 (binl2b64):
19160 * LongSpider/crypto-sha1.js: Added.
19161 (hex_sha1):
19162 (b64_sha1):
19163 (str_sha1):
19164 (hex_hmac_sha1):
19165 (b64_hmac_sha1):
19166 (str_hmac_sha1):
19167 (sha1_vm_test):
19168 (core_sha1):
19169 (sha1_ft):
19170 (sha1_kt):
19171 (core_hmac_sha1):
19172 (safe_add):
19173 (rol):
19174 (str2binb):
19175 (binb2str):
19176 (binb2hex):
19177 (binb2b64):
19178 * LongSpider/date-format-tofte.js: Added.
19179 (arrayExists):
19180 (.a):
19181 (.A):
19182 (.B):
19183 (.d):
19184 (.D):
19185 (.F):
19186 (.g):
19187 (.G):
19188 (.h):
19189 (.H):
19190 (.i):
19191 (.j):
19192 (.l):
19193 (.L):
19194 (.m):
19195 (.M):
19196 (.n):
19197 (.O):
19198 (.r):
19199 (.S):
19200 (.s):
19201 (.t):
19202 (.U):
19203 (.W):
19204 (.w):
19205 (.Y):
19206 (.y):
19207 (.z):
19208 (Date.prototype.formatDate):
19209 * LongSpider/date-format-xparb.js: Added.
19210 (Date.prototype.dateFormat):
19211 (Date.createNewFormat):
19212 (Date.getFormatCode):
19213 (Date.parseDate):
19214 (Date.createParser):
19215 (Date.formatCodeToRegex):
19216 (Date.prototype.getTimezone):
19217 (Date.prototype.getGMTOffset):
19218 (Date.prototype.getDayOfYear):
19219 (Date.prototype.getWeekOfYear):
19220 (Date.prototype.isLeapYear):
19221 (Date.prototype.getFirstDayOfMonth):
19222 (Date.prototype.getLastDayOfMonth):
19223 (Date.prototype.getDaysInMonth):
19224 (Date.prototype.getSuffix):
19225 (String.escape):
19226 * LongSpider/math-cordic.js: Added.
19227 (FIXED):
19228 (FLOAT):
19229 (DEG2RAD):
19230 (cordicsincos):
19231 (cordic):
19232 * LongSpider/math-partial-sums.js: Added.
19233 (partial):
19234 * LongSpider/math-spectral-norm.js: Added.
19235 (A):
19236 (Au):
19237 (Atu):
19238 (AtAu):
19239 (spectralnorm):
19240 * LongSpider/string-base64.js: Added.
19241 (toBase64):
19242 (base64ToString):
19243 * LongSpider/string-fasta.js: Added.
19244 (rand):
19245 (makeCumulative):
19246 (fastaRepeat):
19247 (fastaRandom):
19248 * LongSpider/string-tagcloud.js: Added.
19249 (.Array.prototype.toJSONString):
19250 (.Boolean.prototype.toJSONString):
19251 (.Date.prototype.toJSONString):
19252 (.Number.prototype.toJSONString):
19253 (.Object.prototype.toJSONString):
19254 (.):
19255
commit-queue@webkit.orgafd67192013-06-10 14:19:13 +0000192562013-06-10 Radu Stavila <stavila@adobe.com>
19257
19258 [CSS Regions] Rename region-overflow to region-fragment
19259 https://bugs.webkit.org/show_bug.cgi?id=117397
19260
19261 Renamed -webkit-region-overflow to -webkit-region-fragment according to the new working draft
19262 at http://www.w3.org/TR/2013/WD-css3-regions-20130528/#the-region-fragment-property
19263
19264 Reviewed by Alexander Pavlov.
19265
19266 * Layout/resources/regions.css:
19267
zandobersek@gmail.com43a80132013-06-05 07:08:40 +0000192682013-06-05 Zan Dobersek <zdobersek@igalia.com>
19269
19270 Move MemoryInfo under window.internals
19271 https://bugs.webkit.org/show_bug.cgi?id=117197
19272
19273 Reviewed by Ryosuke Niwa.
19274
19275 * resources/runner.js: Remove the setMemoryEnabled call, it's not required anymore as the memory
19276 info is now accessed through window.internals and doesn't need the setting to be enabled to work.
19277
rniwa@webkit.orgce185592013-05-30 10:43:06 +0000192782013-05-30 Ryosuke Niwa <rniwa@webkit.org>
19279
19280 Web Inspector: tests in PerformanceTests/inspector/ are timing out
19281 https://bugs.webkit.org/show_bug.cgi?id=77024
19282
19283 Reviewed by Andreas Kling.
19284
19285 These tests have been disabled for ages and don't conform to the standard format.
19286
19287 * Skipped:
19288 * inspector: Removed.
19289 * inspector/console-300-lines.html: Removed.
19290 * inspector/first-open-elements.html: Removed.
19291 * inspector/first-open-resources.html: Removed.
19292 * inspector/first-open-scripts.html.broken: Removed.
19293 * inspector/heap-snapshot-advanced.html: Removed.
19294 * inspector/heap-snapshot-performance-test.js: Removed.
19295 * inspector/heap-snapshot.html: Removed.
19296 * inspector/inspector-startup-time.html: Removed.
19297 * inspector/network-append-30-requests.html.broken: Removed.
19298 * inspector/performance-test.js: Removed.
19299 * inspector/show-panel.html.broken: Removed.
19300
benjamin@webkit.org6943fd32013-05-27 22:31:02 +0000193012013-05-27 Benjamin Poulain <benjamin@webkit.org>
19302
19303 Add a balanced benchmark for QuerySelector
19304 https://bugs.webkit.org/show_bug.cgi?id=116811
19305
19306 Reviewed by Sam Weinig.
19307
19308 The goal of this benchmark is to have an overview of querySelector as typically used
19309 by webpages.
19310
19311 It uses queries similar to what is used by popular websites and applies somewhat
19312 similar weighting for each type of query.
19313
19314 The tree used for the queries is intentionally kept simple to ensure we measure QuerySelector
19315 a not purely the overhead of traversal.
19316
19317 * CSS/QuerySelector.html: Added.
19318 * CSS/resources/query-selector.html: Added.
19319
rniwa@webkit.orgd5113052013-05-18 19:27:29 +0000193202013-05-18 Ryosuke Niwa <rniwa@webkit.org>
19321
19322 Add a performance test for copying
19323 https://bugs.webkit.org/show_bug.cgi?id=116394
19324
19325 Reviewed by Andreas Kling.
19326
19327 Added. We're going to skip this test by default since it's such a microbenchmark, and also because
19328 it currently takes 30 minutes to run. As insane as it sounds, each copy takes rouhgly 57 seconds.
19329
19330 Running Interactive/CopyAll.html (1 of 1)
19331 RESULT Interactive: CopyAll: Time= 57618.05 ms
19332 median= 57135.0 ms, stdev= 1542.07271571 ms, min= 55095.0 ms, max= 60913.0 ms
19333 RESULT Interactive: CopyAll: JSHeap= 102811.2 bytes
19334 median= 103272.0 bytes, stdev= 1115.28148913 bytes, min= 100648.0 bytes, max= 103504.0 bytes
19335 RESULT Interactive: CopyAll: Malloc= 446408712.0 bytes
19336 median= 459156772.0 bytes, stdev= 20007346.3266 bytes, min= 415564040.0 bytes, max= 462011928.0 bytes
19337 Finished: 1766.883236 s
19338
19339 * Interactive/CopyAll.html: Added.
19340 * Skipped:
19341
commit-queue@webkit.org9a0524c2013-05-13 14:03:57 +0000193422013-05-13 Seokju Kwon <seokju.kwon@gmail.com>
19343
19344 Web Inspector: Get rid of native-memory-snapshot in performance test
19345 https://bugs.webkit.org/show_bug.cgi?id=116013
19346
19347 Reviewed by Andreas Kling.
19348
19349 Remove native-memory-snapshot.html from PerformanceTests.
19350
19351 * inspector/native-memory-snapshot.html: Removed.
19352 * inspector/performance-test.js:
19353 (initialize_TimeTracker.Timer):
19354 (initialize_TimeTracker.Timer.prototype._dump):
19355 (initialize_TimeTracker.InspectorTest.runPerformanceTest):
19356
benjamin@webkit.org8cee4972013-04-11 00:20:36 +0000193572013-04-10 Benjamin Poulain <bpoulain@apple.com>
19358
19359 Mass remove all the empty directories
19360
19361 Rubberstamped by Ryosuke Niwa.
19362
19363 * Bindings/resources: Removed.
19364
glenn@skynav.com5e4d7e02013-04-02 23:31:18 +0000193652013-04-02 Glenn Adams <glenn@skynav.com>
19366
19367 Need japanese line layout performance test
19368 https://bugs.webkit.org/show_bug.cgi?id=113811
19369
19370 Reviewed by Ryosuke Niwa.
19371
19372 Will be used by https://bugs.webkit.org/show_bug.cgi?id=105692 to test potential performance regression
19373 for Japanese (and other CJK) line break changes.
19374
19375 * Layout/LineLayoutJapanese.html: Added.
19376 * Skipped: Skip this test by default.
19377
abucur@adobe.combfe3d622013-03-29 14:14:23 +0000193782013-03-29 Andrei Bucur <abucur@adobe.com>
19379
19380 [CSS Regions] Add performance tests
19381 https://bugs.webkit.org/show_bug.cgi?id=113303
19382
19383 Reviewed by Antti Koivisto.
19384
19385 Add simple performance tests for regions, without nested named flows: a region chain and a flow article.
19386 The regions.js script is used to generate the tests and can set the following parameters: the number of regions,
19387 the number of paragraphs, the regions width, height, max-height and the propability of a forced break after a paragraph.
19388
19389 The tests are skipped for now. They should be enabled once the regions performance is stable enough to create a baseline.
19390
19391 * Layout/RegionsAuto.html: Added. A few regions with a short article. The regions have auto-height and some
19392 paragraphs (80%) have forced breaks after. Stress test for the auto-height algorithm.
19393 * Layout/RegionsAutoMaxHeight.html: Added. A lot of regions with auto-height and max-height. Tests the impact of
19394 max-height on the auto-height algorithm.
19395 * Layout/RegionsFixed.html: Added. A lot of regions with a long article. Some paragraphs (50%) have forced breaks after.
19396 Stress test for the regions layout algorithm.
19397 * Layout/RegionsFixedShort.html: Added. A lot of short regions with a long content. Tests the impact of unforced breaks
19398 on the layout speed.
19399 * Layout/resources/regions.css: Added.
19400 (.articleInFlow):
19401 (.articleNone):
19402 (.region):
19403 (.contentParagraph):
19404 (.breakAfter):
19405 (.regionContainer):
19406 * Layout/resources/regions.js: Added.
19407 (.):
19408 * Skipped:
19409
rniwa@webkit.org4fffc652013-03-27 17:54:52 +0000194102013-03-26 Ryosuke Niwa <rniwa@webkit.org>
19411
19412 Add a performance tests for selecting all content in a document
19413 https://bugs.webkit.org/show_bug.cgi?id=113358
19414
19415 Reviewed by Levi Weintraub.
19416
19417 Add a performance test for selecting all. We wait for paint to happen by setTimeout(~, 0).
19418
19419 Example outputs:
19420 RESULT Interactive: SelectAll: Time= 652.6 ms
19421 median= 644.5 ms, stdev= 54.6177144967 ms, min= 599.0 ms, max= 773.0 ms
19422
19423 RESULT Interactive: SelectAll: Time= 654.4 ms
19424 median= 633.5 ms, stdev= 55.9223145368 ms, min= 600.0 ms, max= 769.0 ms
19425
19426 RESULT Interactive: SelectAll: Time= 657.9 ms
19427 median= 640.0 ms, stdev= 54.1420159833 ms, min= 604.0 ms, max= 774.0 ms
19428
19429 * Interactive/SelectAll.html: Added.
19430 * Skipped:
19431
commit-queue@webkit.orgebcd28d2013-03-19 16:06:42 +0000194322013-03-19 Alexei Filippov <alph@chromium.org>
19433
19434 Web Inspector: Fix heap profiler performance tests.
19435 https://bugs.webkit.org/show_bug.cgi?id=112701
19436
19437 Reviewed by Yury Semikhatsky.
19438
19439 The tests were broken by profile types refactoring.
19440
19441 * inspector/heap-snapshot-performance-test.js:
19442 (test.performanceTest.step0):
19443 (test.performanceTest.step1):
19444
eric@webkit.orgc037fd22013-03-05 19:07:26 +0000194452013-03-05 Eric Seidel <eric@webkit.org>
19446
19447 Add html-parser-threaded perf test now that the threaded parser is enabled by default
19448 https://bugs.webkit.org/show_bug.cgi?id=111200
19449
19450 Reviewed by Ryosuke Niwa.
19451
19452 The old srcdoc test no longer triggers the threaded parser due to compatibility fixes.
19453
19454 * Parser/html-parser-threaded.html: Renamed from PerformanceTests/Parser/html-parser-srcdoc.html.
19455 * Skipped: Unfortunately this new test is still skipped too.
19456
eric@webkit.org3303e622013-03-05 01:58:41 +0000194572013-03-04 Eric Seidel <eric@webkit.org>
19458
19459 Add PerformanceTest for document startup via iframe append/remove
19460 https://bugs.webkit.org/show_bug.cgi?id=111389
19461
19462 Reviewed by Kentaro Hara.
19463
19464 We'd like pages with lots of iframes to be fast.
19465 This test shows that at least for V8/Chromium we spend
19466 all our time booting v8.
19467
19468 On my 32-core linux machine I see about 70 runs/sec in
19469 Release and 5 runs/sec in Debug.
19470
19471 * DOM/iframe-append-remove.html: Added.
19472
rniwa@webkit.org855a7722013-03-03 23:19:31 +0000194732013-03-03 Ryosuke Niwa <rniwa@webkit.org>
19474
19475 Some perf. tests have variances that differ greatly between runs
19476 https://bugs.webkit.org/show_bug.cgi?id=97510
19477
19478 Reviewed by Benjamin Poulain.
19479
19480 In order to control the number of iterations and processes to use from run-perf-tests, always use 20
19481 iterations on all tests except Dromaeo, where even doing 5 iterations is prohibitively slow, by default.
19482 Without this change, it'll become extremely hard for us to tweak the number of iterations and processes
19483 to use from run-perf-tests.
19484
19485 * Animation/balls.html:
19486 * DOM/DOMTable.html:
19487 * DOM/resources/dom-perf.js:
19488 (runBenchmarkSuite.PerfTestRunner.measureTime):
19489 * Dromaeo/resources/dromaeorunner.js:
19490 * Layout/floats_100_100.html:
19491 * Layout/floats_100_100_nested.html:
19492 * Layout/floats_20_100.html:
19493 * Layout/floats_20_100_nested.html:
19494 * Layout/floats_2_100.html:
19495 * Layout/floats_2_100_nested.html:
19496 * Layout/floats_50_100.html:
19497 * Layout/floats_50_100_nested.html:
19498 * Layout/subtree-detaching.html:
19499 * Parser/html5-full-render.html:
19500 * SVG/SvgHitTesting.html:
19501 * resources/runner.js:
19502 * resources/results-template.html:
19503
rniwa@webkit.org2069f252013-02-27 05:02:14 +0000195042013-02-25 Ryosuke Niwa <rniwa@webkit.org>
19505
19506 Use perf.webkit.org JSON format in results page
19507 https://bugs.webkit.org/show_bug.cgi?id=110842
19508
19509 Reviewed by Benjamin Poulain.
19510
19511 Updated the results page template to use the new JSON format.
19512
19513 Since new JSON format doesn't contain statistics such as stdev and min, added statistics.js to compute
19514 these values. Also use 95% percentile confidence interval instead of standard deviation in various places.
19515
19516 * resources/results-template.html: Added statistics.js as dependency.
19517 (TestResult): Updated to take a metric instead of its test. Replaced stdev() with confidenceIntervalDelta()
19518 now that we have a fancy Statistics class.
19519
19520 (TestRun.webkitRevision):
19521 (PerfTestMetric): Renamed from PerfTest since this object now encapsulates each measurement (such as time,
19522 JS heap, and malloc) in test. Also added a conversion table from a metric name to a unit since new format
19523 doesn't contain units.
19524 (PerfTestMetric.name): Updated to compute the full metric name from test name and metric name, matching
19525 the old behavior.
19526 (PerfTestMetric.isMemoryTest): Explicitly look for 'JSHeap' and 'Malloc' tests.
19527 (PerfTestMetric.smallerIsBetter):
19528
19529 (attachPlot): Deleted the code to deal with tests that don't provide individual iteration measurement
19530 since such tests no longer exist. Also fixed up the code compute y-axis range.
19531
19532 (createTableRow.markupForRun): Updated to use confidenceIntervalDelta() instead of stdev().
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000019533
rniwa@webkit.org2069f252013-02-27 05:02:14 +000019534 (init.addTests): Added. Recursively add metrics.
19535
19536 * resources/statistics.js: Added. Imported from perf.webkit.org.
19537 (Statistics.max):
19538 (Statistics.min):
19539 (Statistics.sum):
19540 (Statistics.squareSum):
19541 (Statistics.sampleStandardDeviation):
19542 (Statistics.supportedConfidenceLevels):
19543 (Statistics.confidenceIntervalDelta):
19544 (Statistics.confidenceInterval):
19545
commit-queue@webkit.org616b3d62013-02-11 13:54:01 +0000195462013-02-11 Alexei Filippov <alph@chromium.org>
19547
19548 Web Inspector: Split Profiler domain in protocol into Profiler and HeapProfiler
19549 https://bugs.webkit.org/show_bug.cgi?id=108653
19550
19551 Reviewed by Yury Semikhatsky.
19552
19553 Currently CPU and heap profilers share the same domain 'Profiler' in the protocol.
19554 In fact these two profile types have not too much in common. So put each into its own domain.
19555 It should also help when Profiles panel gets split into several tools.
19556 This is the phase 1 which adds InspectorHeapProfilerAgent but doesn't
19557 change the original InspectorProfilerAgent.
19558
19559 * inspector/heap-snapshot-performance-test.js:
19560 (test.performanceTest.cleanup):
19561
dominik.rottsches@intel.com711fbce2013-02-05 19:15:57 +0000195622013-02-05 Dominik Röttsches <dominik.rottsches@intel.com>
19563
19564 Add a performance test for arabic line breaking
19565 https://bugs.webkit.org/show_bug.cgi?id=108948
19566
19567 Reviewed by Eric Seidel.
19568
19569 Adding a perfomance test based to exercise the complex
19570 font path used in rendering arabic script.
19571
19572 * Layout/ArabicLineLayout.html: Added.
19573 * Skipped: New test skipped by default as per Ryosuke's request.
19574
yurys@chromium.org0d1a0842013-01-23 14:58:44 +0000195752013-01-23 Yury Semikhatsky <yurys@chromium.org>
19576
19577 Web Inspector: some measurements are missing in PerformanceTests/inspector/heap-*.html
19578 https://bugs.webkit.org/show_bug.cgi?id=107687
19579
19580 Reviewed by Pavel Feldman.
19581
19582 * inspector/heap-snapshot-performance-test.js: override methods on JSHeapSnapshot instead
19583 of HeapSnapshot, otherwise overrides from JSHeapSnapshot will rule.
19584
rniwa@webkit.org63c6e252013-01-18 09:47:36 +0000195852013-01-18 Ryosuke Niwa <rniwa@webkit.org>
19586
19587 Skip DOM/TraverseChildNodes.html as intended in r140070.
19588
19589 * Skipped:
19590
dominicc@chromium.org215464f2013-01-18 03:00:50 +0000195912013-01-17 Dominic Cooney <dominicc@chromium.org>
19592
19593 Unreviewed, re-land r140051.
19594
19595 I overzealously rolled this out; the test was intended to be
19596 skipped, but was not skipped because of a typo in Skipped. See
19597 <https://bugs.webkit.org/show_bug.cgi?id=107210>
19598
19599 * Parser/html-parser-srcdoc.html: Added.
19600 * Skipped: Big-P Parser.
19601
dominicc@chromium.org5c1567f2013-01-18 01:58:12 +0000196022013-01-17 Sheriff Bot <webkit.review.bot@gmail.com>
19603
19604 Unreviewed, rolling out r140051.
19605 http://trac.webkit.org/changeset/140051
19606 https://bugs.webkit.org/show_bug.cgi?id=107210
19607
19608 html-parser-srcdoc.html failing on Chromium Linux Perf and
19609 Chromium Mac Perf with a lot of error spew about blocked
19610 script execution in 'about:srcdoc' (Requested by dominicc on
19611 #webkit).
19612
19613 * Parser/html-parser-srcdoc.html: Removed.
19614 * Skipped:
19615
rniwa@webkit.orge6ab3252013-01-18 00:35:57 +0000196162013-01-16 Ryosuke Niwa <rniwa@webkit.org>
19617
19618 Remove NodeListsNodeData when it's no longer needed
19619 https://bugs.webkit.org/show_bug.cgi?id=107074
19620
19621 Reviewed by Darin Adler.
19622
19623 Added a micro benchmark to see the benefit of removing NodeListsNodeData.
19624 The test traverses all elements in the html5 specification page and accesses childNodes.
19625
19626 Don't enable this test for now since it's really a micro benchmark specifically
19627 designed to test this patch.
19628
19629 * DOM/TraverseChildNodes.html: Added.
19630 * Skipped: Don't enable newly added test by default.
19631 * resources/results-template.html: Compare against the unscaled unit (e.g. "bytes") as
19632 opposed to scaled units such as "K bytes".
19633 * resources/runner.js:
19634 (.start): Moved the code to call currentTest.setup from measureRunsPerSecondOnce so that
19635 it'll be ran for all test types, namely of PerfTestRunner.measureTime.
19636 (.measureRunsPerSecondOnce):
19637
eric@webkit.orgd6c45992013-01-17 22:53:14 +0000196382013-01-17 Eric Seidel <eric@webkit.org>
19639
19640 Add a version of the html-parser benchmark which uses srcdoc instead of document.write so it tests the threaded parser
19641 https://bugs.webkit.org/show_bug.cgi?id=107158
19642
19643 Reviewed by Ryosuke Niwa.
19644
19645 Currently this test even opts-in to the threaded parser if available.
19646 We'll remove that line when the threaded parser becomes default or goes away.
19647
19648 * Parser/html-parser-srcdoc.html: Added.
19649
commit-queue@webkit.org6cfbe232013-01-16 20:25:06 +0000196502013-01-16 Arnaud Renevier <a.renevier@sisa.samsung.com>
19651
19652 inconsistency in drawImage with target rect negative dimensions.
19653 https://bugs.webkit.org/show_bug.cgi?id=100026
19654
19655 Reviewed by Dean Jackson.
19656
19657 Create a drawImage performance test. There is no significative change
19658 in performance: 27144.6851528 runs/s without the patch; 27153.517612
19659 runs/s with the patch. Test is currently skipped.
19660
19661 * Canvas/drawimage.html: Added.
19662 * Skipped:
19663
dominicc@chromium.org60fa1002013-01-15 09:42:25 +0000196642013-01-15 Dominic Cooney <dominicc@chromium.org>
19665
19666 Allow zero values as results from the runFunction.
19667 https://bugs.webkit.org/show_bug.cgi?id=102500
19668
19669 Reviewed by Kentaro Hara.
19670
19671 DOM/DOMWalk.js fails on the Chromium Win perf bot because one or
19672 more parts of the test usually return zero at some point.
19673
19674 * resources/runner.js: Accept merely non-negative results.
19675
yurys@chromium.orga002c112012-12-28 09:26:02 +0000196762012-12-28 Yury Semikhatsky <yurys@chromium.org>
19677
19678 Web Inspector: rename distanceToWindow to distance
19679 https://bugs.webkit.org/show_bug.cgi?id=105823
19680
19681 Reviewed by Pavel Feldman.
19682
19683 Updated heap profiler performance test after renaming distanceToWindow to distance.
19684
19685 * inspector/heap-snapshot-performance-test.js:
19686
hayato@chromium.org8c5a5502012-12-19 04:18:43 +0000196872012-12-18 Hayato Ito <hayato@chromium.org>
19688
19689 Use element.webkitCreateShadowRoot instead of WebKitShadowRoot in PerformanceTests.
19690 https://bugs.webkit.org/show_bug.cgi?id=105256
19691
19692 Reviewed by Dimitri Glazkov.
19693
19694 WebKitShadowRoot constructor was deleted in favor of element.webkitCreateShadowRoot().
19695
19696 * ShadowDOM/ChangingClassNameShadowDOM.html:
19697 * ShadowDOM/ChangingSelect.html:
19698 * ShadowDOM/ContentReprojection.html:
19699 * ShadowDOM/DistributionWithMultipleShadowRoots.html:
19700 * ShadowDOM/LargeDistributionWithLayout.html:
19701 * ShadowDOM/MultipleInsertionPoints.html:
19702 * ShadowDOM/ShadowReprojection.html:
19703 * ShadowDOM/SmallDistributionWithLayout.html:
19704
shinyak@chromium.org5eb25112012-12-18 07:28:52 +0000197052012-12-17 Shinya Kawanaka <shinyak@chromium.org>
19706
19707 [Shadow] LargeDistributionWithLayout.html should be updated
19708 https://bugs.webkit.org/show_bug.cgi?id=105242
19709
19710 Reviewed by Ryosuke Niwa.
19711
19712 Since this test was written when distribution took O(N^2). However, now it's almost O(N), so this test finishes
19713 in very short time. We should convert it unit to runs/s.
19714
19715 This test contains a some error to cause test failure, e.g. using obsolete API, so they also should be fixed.
19716
19717 * ShadowDOM/LargeDistributionWithLayout.html:
19718
rniwa@webkit.org420b2dc2012-12-13 19:11:16 +0000197192012-12-13 Ryosuke Niwa <rniwa@webkit.org>
19720
19721 [chromium perf] DOM/DOMWalk.html failures
19722 https://bugs.webkit.org/show_bug.cgi?id=104866
19723
19724 Reviewed by Eric Seidel.
19725
19726 Use PerfTestRunner.now which in turn uses window.performance.now() when it's available.
19727
19728 * DOM/resources/dom-perf.js:
19729 (Interval.start):
19730 (Interval.stop):
19731 (BenchmarkSuite.prototype.RunSingle):
19732
shinyak@chromium.orgb8601222012-12-06 06:08:19 +0000197332012-12-05 Shinya Kawanaka <shinyak@chromium.org>
19734
shinyak@chromium.org96206852012-12-06 06:31:22 +000019735 [Shadow] Performance tests for ShadowDOM distribution
19736 https://bugs.webkit.org/show_bug.cgi?id=103617
19737
19738 Reviewed by Dimitri Glazkov.
19739
19740 We would like to measure ShadowDOM distribution performance in various cases.
19741 In this patch, we add performance tests for several distribution patterns.
19742
19743 * ShadowDOM/ContentReprojection.html: Added.
19744 * ShadowDOM/DistributionWithMultipleShadowRoots.html: Added.
19745 * ShadowDOM/LargeDistributionWithLayout.html: Added.
19746 * ShadowDOM/MultipleInsertionPoints.html: Added.
19747 * ShadowDOM/ShadowReprojection.html: Added.
19748 * ShadowDOM/SmallDistributionWithLayout.html: Added.
19749
197502012-12-05 Shinya Kawanaka <shinyak@chromium.org>
19751
shinyak@chromium.orgb8601222012-12-06 06:08:19 +000019752 [Shadow] Performance tests of distribution for changing className
19753 https://bugs.webkit.org/show_bug.cgi?id=103612
19754
19755 Reviewed by Dimitri Glazkov.
19756
19757 We would like to measure ShadowDOM performance and compare it to the similar functional HTML without using ShadowDOM.
19758 In this patch, we add a case when classNames of distributed elemeents are changed.
19759
19760 * ShadowDOM/ChangingClassName.html: Added.
19761 * ShadowDOM/ChangingClassNameShadowDOM.html: Added.
19762
rniwa@webkit.org96514be2012-12-04 10:00:54 +0000197632012-12-03 Ryosuke Niwa <rniwa@webkit.org>
19764
19765 Dromaeo should report individual test result
19766 https://bugs.webkit.org/show_bug.cgi?id=99800
19767
19768 Reviewed by Eric Seidel.
19769
19770 Made one small modification to Droameo's webrunner.js so that it reports individual runs/s values
19771 for each subtest. This allows us to compute the aggregated run/s for each iteration like other
19772 performance tests.
19773
19774 Also stop measuring memory usage in Dromaeo tests because some Dromaeo tests (e.g. jslib-modify-jquery)
19775 have unrealistic memory usage, and measuring them at the time of teardown doesn't make much sense.
19776
19777 * Animation/balls.html: Fixed typo: measureValueAync.
19778 * Dromaeo/resources/dromaeo/web/webrunner.js:
19779
19780 * Dromaeo/resources/dromaeorunner.js:
19781 (DRT.setup): Call prepareToMeasureValuesAsync so that DRT.teardown can use meausreValueAsync, and log
19782 "Running 5 times". Since the log container will be inserted before iframe, we need to explicitly insert
19783 the iframe as the first child of the body element to avoid logs from affecting the iframe's position.
19784 Also specify the number of iterations by calling PerfTestRunner.iterationCount() so that we may adjust
19785 the number of iterations in PerfTestRunner.
19786
19787 (DRT.progress): Log individual measurement for each subtest.
19788 (DRT.teardown): Compute the aggregated result for each iteration, and log them using measureValueAsync.
19789
19790 * resources/runner.js:
19791 (PerfTestRunner.logStatistics): Merged printStatistics since it's no longer needed after r131638.
19792 (PerfTestRunner): Removed getAndPrintMemoryStatistics since it was used only in Dromaeo tests but
19793 we no longer measure memory usage in Dromaeo tests.
19794
19795 (start): Increment completedRuns from -1 to 0 for Dromaeo tests where we don't want to ignore the initial
19796 measurement. Note that ignoreWarmUpAndLog ignores the measurements for which completedRuns is negative.
19797
19798 (ignoreWarmUpAndLog): We don't measure memory usage in Dromaeo tests. See above.
19799 (PerfTestRunner.iterationCount): Added. This abstraction allows us to auto-adjust the number of iterations from
19800 run-perf-tests in near future.
19801 (PerfTestRunner.measureValueAsync): Renamed from measureValueAync.
19802
shinyak@chromium.org0240c792012-11-29 11:26:33 +0000198032012-11-29 Shinya Kawanaka <shinyak@chromium.org>
19804
19805 [Shadow] Performance tests of distribution for changing select attribute
19806 https://bugs.webkit.org/show_bug.cgi?id=103611
19807
19808 Reviewed by Hajime Morita.
19809
19810 We would like to measure ShadowDOM performance and compare it to the similar functional HTML without using ShadowDOM.
19811 In this patch, we add a case when select attribute of HTMLContentElement is changed.
19812
19813 * ShadowDOM/ChangingSelect.html: Added.
19814 * ShadowDOM/ChangingSelectWithoutShadow.html: Added.
19815 * Skipped:
19816
shinyak@chromium.org81d17782012-11-19 18:14:04 +0000198172012-11-19 Shinya Kawanaka <shinyak@chromium.org>
19818
19819 Changing id, className, or attribute should invalidate distribution
19820 https://bugs.webkit.org/show_bug.cgi?id=100738
19821
19822 Reviewed by Dimitri Glazkov.
19823
19824 Added test code to modify id/class/attribute.
19825
19826 * DOM/ModifyAttribute.html: Added.
19827 * DOM/resources/dom-perf/modify-attribute.js: Added.
19828 (ModifyAttribute.CreateElementToSetUp):
19829 (ModifyAttribute.ModifyId):
19830 (ModifyAttribute.ModifyClass):
19831 (ModifyAttribute.ModifyTitle):
19832
rniwa@webkit.org6853f482012-11-14 19:34:49 +0000198332012-11-14 Ryosuke Niwa <rniwa@webkit.org>
19834
19835 runCount in runner.js should be renamed to iterationCount
19836 https://bugs.webkit.org/show_bug.cgi?id=102208
19837
19838 Reviewed by Tony Chang.
19839
19840 Prior to this patch, there were terminology confusions between "runs" and "iterations".
19841 The term "run" should refer to running a performance test once, and "iteration" should
19842 refer to one measurement in the test. i.e. Executing run-perf-should once will result in
19843 a single "run" of performance tests and each test may execute multiple "iterations"
19844 to complete the run.
19845
19846 Unfortunately, we still overload the meaning of "runs" in "runs/s" (is "function calls/s")
19847 but that could be addressed in a separate patch.
19848
19849 * Animation/balls.html:
19850 * DOM/DOMTable.html:
19851 * DOM/resources/dom-perf.js:
19852 * Layout/floats_100_100.html:
19853 * Layout/floats_100_100_nested.html:
19854 * Layout/floats_20_100.html:
19855 * Layout/floats_20_100_nested.html:
19856 * Layout/floats_2_100.html:
19857 * Layout/floats_2_100_nested.html:
19858 * Layout/floats_50_100.html:
19859 * Layout/floats_50_100_nested.html:
19860 * Layout/subtree-detaching.html:
19861 * Parser/html5-full-render.html:
19862 * SVG/SvgHitTesting.html:
19863 * resources/runner.js:
19864
dglazkov@chromium.org503331b2012-11-13 18:53:36 +0000198652012-11-13 Dimitri Glazkov <dglazkov@chromium.org>
19866
19867 Unreviewed, rolling out r134367.
19868 http://trac.webkit.org/changeset/134367
19869 https://bugs.webkit.org/show_bug.cgi?id=100738
19870
19871 Speculative rollout, could have cause Dromaeo setAttribute
19872 perf regression.
19873
19874 * DOM/ModifyAttribute.html: Removed.
19875 * DOM/resources/dom-perf/modify-attribute.js: Removed.
19876
shinyak@chromium.orgf2bd9cb2012-11-13 06:50:15 +0000198772012-11-12 Shinya Kawanaka <shinyak@chromium.org>
19878
19879 Changing id, className, or attribute should invalidate distribution
19880 https://bugs.webkit.org/show_bug.cgi?id=100738
19881
19882 Reviewed by Dimitri Glazkov.
19883
19884 Added test code to modify id/class/attribute.
19885
19886 * DOM/ModifyAttribute.html: Added.
19887 * DOM/resources/dom-perf/modify-attribute.js: Added.
19888 (ModifyAttribute.CreateElementToSetUp):
19889 (ModifyAttribute.ModifyId):
19890 (ModifyAttribute.ModifyClass):
19891 (ModifyAttribute.ModifyTitle):
19892
abarth@webkit.orge0439722012-11-06 20:25:52 +0000198932012-11-06 Adam Barth <abarth@webkit.org>
19894
19895 DOMImplementation should use ScriptWrappable
19896 https://bugs.webkit.org/show_bug.cgi?id=101279
19897
19898 Reviewed by Eric Seidel.
19899
19900 This simple PerformanceTest measure how quickly we can access
19901 document.implementation. The goal of this performance test is just to
19902 validate that using ScriptWrappable actually makes the bindings faster.
19903
19904 * Bindings/document-implementation.html: Added.
19905
ggaren@apple.com87827fd2012-11-06 00:14:52 +0000199062012-11-05 Geoffrey Garen <ggaren@apple.com>
19907
19908 WebKit should have performance tests for book chapter reflow
19909 https://bugs.webkit.org/show_bug.cgi?id=101271
19910
19911 Reviewed by Dan Bernstein.
19912
19913 I grabbed a book chapter from the Project Gutenberg front page:
19914
19915 * Layout/chapter-reflow-once.html: Added.
19916 * Layout/chapter-reflow-thrice.html: Added.
19917 * Layout/chapter-reflow-twice.html: Added.
19918 * Layout/chapter-reflow.html: Added.
19919
19920 I also created a torture-test random text generator:
19921
19922 * Layout/chapter-reflow-once-random.html: Added.
19923
zoltan@webkit.org18f61b32012-10-29 17:30:56 +0000199242012-10-29 Zoltan Horvath <zoltan@webkit.org>
19925
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000019926 Turn PageLoad tests into simple performancetests, commit #7 (last)
zoltan@webkit.org18f61b32012-10-29 17:30:56 +000019927 https://bugs.webkit.org/show_bug.cgi?id=99899
19928
19929 Reviewed by Ryosuke Niwa.
19930
19931 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
19932 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
19933 to their new location and adds html/js wrappers for them.
19934
19935 This is the #7 (last) commit of the whole patch.
19936
19937 * PageLoad: Removed.
19938 * PageLoad/svg: Removed.
19939 * PageLoad/svg/LICENSES: Removed.
19940 * PageLoad/svg/files: Removed.
19941 * PageLoad/svg/files/33041-Samurai.svg: Removed.
19942 * PageLoad/svg/files/42450-under the see.svg: Removed.
19943 * PageLoad/svg/files/world-iso.svg: Removed.
19944 * PageLoad/svg/svg.pltsuite: Removed.
19945 * SVG/Samurai.html: Added.
19946 * SVG/UnderTheSee.html: Added.
19947 * SVG/WorldIso.html: Added.
19948 * SVG/resources/LICENSES: Copied from PerformanceTests/PageLoad/svg/LICENSES.
19949 * SVG/resources/Samurai.svg: Copied from PerformanceTests/PageLoad/svg/files/33041-Samurai.svg.
19950 * SVG/resources/UnderTheSee.svg: Copied from PerformanceTests/PageLoad/svg/files/42450-under%20the%20see.svg.
19951 * SVG/resources/WorldIso.svg: Copied from PerformanceTests/PageLoad/svg/files/world-iso.svg.
19952 * SVG/resources/svg.pltsuite: Copied from PerformanceTests/PageLoad/svg/svg.pltsuite.
19953 * Skipped: Rename the files on the skipped list also.
19954
eric@webkit.org41bf6742012-10-27 01:37:12 +0000199552012-10-26 Eric Seidel <eric@webkit.org>
19956
19957 Add a microbenchmark for Hindi (complex-text) line-layout
19958 https://bugs.webkit.org/show_bug.cgi?id=100024
19959
19960 Reviewed by Ryosuke Niwa.
19961
19962 I wrote this to make sure that we don't regress line-breaking performance
19963 for the complex-text codepath. This test has shown me that TOT is
19964 already 5% slower than Safari 6.0.1 here. :(
19965
19966 * Layout/hindi-line-layout.html: Added.
19967
zoltan@webkit.org529fb012012-10-26 16:31:33 +0000199682012-10-26 Zoltan Horvath <zoltan@webkit.org>
19969
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000019970 Turn PageLoad tests into simple performancetests, commit #6
zoltan@webkit.orgdafba0f2012-10-26 21:20:33 +000019971 https://bugs.webkit.org/show_bug.cgi?id=99899
19972
19973 Reviewed by Ryosuke Niwa.
19974
19975 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
19976 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
19977 to their new location and adds html/js wrappers for them.
19978
19979 This is the #6 commit of the whole patch.
19980
19981 * PageLoad/svg/files/gearflowers.svg: Removed.
19982 * PageLoad/svg/files/hereGear4.svg: Removed.
19983 * PageLoad/svg/files/worldcup.svg: Removed.
19984 * SVG/GearFlowers.html: Added.
19985 * SVG/HereGear.html: Added.
19986 * SVG/Worldcup.html: Added.
19987 * SVG/resources/GearFlowers.svg: Copied from PerformanceTests/PageLoad/svg/files/gearflowers.svg.
19988 * SVG/resources/HereGear.svg: Copied from PerformanceTests/PageLoad/svg/files/hereGear4.svg.
19989 * SVG/resources/Worldcup.svg: Copied from PerformanceTests/PageLoad/svg/files/worldcup.svg.
19990 * Skipped: Rename the files on the skipped list also.
19991
199922012-10-26 Zoltan Horvath <zoltan@webkit.org>
19993
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000019994 Turn PageLoad tests into simple performancetests, commit #5
zoltan@webkit.org529fb012012-10-26 16:31:33 +000019995 https://bugs.webkit.org/show_bug.cgi?id=99899
19996
19997 Reviewed by Ryosuke Niwa.
19998
19999 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
20000 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
20001 to their new location and adds html/js wrappers for them.
20002
20003 This is the #5 commit of the whole patch.
20004
20005 * PageLoad/svg/files/Harvey_Rayner.svg: Removed.
20006 * PageLoad/svg/files/Sierpinski_carpet_6.svg: Removed.
20007 * PageLoad/svg/files/mtsthelens.svg: Removed.
20008 * PageLoad/svg/files/mtsthelens0.jpg: Removed.
20009 * SVG/HarveyRayner.html: Added.
20010 * SVG/MtSaintHelens.html: Added.
20011 * SVG/SierpinskiCarpet.html: Added.
20012 * SVG/resources/HarveyRayner.svg: Copied from PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg.
20013 * SVG/resources/MtSaintHelens.svg: Copied from PerformanceTests/PageLoad/svg/files/mtsthelens.svg.
20014 * SVG/resources/SierpinskiCarpet.svg: Copied from PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg.
20015 * SVG/resources/mtsthelens0.jpg: Copied from PerformanceTests/PageLoad/svg/files/mtsthelens0.jpg.
20016 * Skipped: Rename the files on the skipped list also.
20017
zoltan@webkit.org9760f812012-10-25 21:00:40 +0000200182012-10-25 Zoltan Horvath <zoltan@webkit.org>
20019
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000020020 Turn PageLoad tests into simple performancetests, commit #4
zoltan@webkit.orgee168c72012-10-25 23:32:09 +000020021 https://bugs.webkit.org/show_bug.cgi?id=99899
20022
20023 Reviewed by Ryosuke Niwa.
20024
20025 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
20026 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
20027 to their new location and adds html/js wrappers for them.
20028
20029 This is the #4 commit of the whole patch.
20030
20031 * PageLoad/svg/files/france.svg: Removed.
20032 * PageLoad/svg/files/francobollo_gnome_ezechi_02.svg: Removed.
20033 * SVG/France.html: Added.
20034 * SVG/FrancoBolloGnomeEzechi.html: Added.
20035 * SVG/resources/France.svg: Copied from PerformanceTests/PageLoad/svg/files/france.svg.
20036 * SVG/resources/FrancoBolloGnomeEzechi.svg: Copied from PerformanceTests/PageLoad/svg/files/francobollo_gnome_ezechi_02.svg.
20037 * Skipped: Rename the files on the skipped list also.
20038
200392012-10-25 Zoltan Horvath <zoltan@webkit.org>
20040
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000020041 Turn PageLoad tests into simple performancetests, commit #3
zoltan@webkit.org9760f812012-10-25 21:00:40 +000020042 https://bugs.webkit.org/show_bug.cgi?id=99899
20043
20044 Reviewed by Ryosuke Niwa.
20045
20046 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
20047 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
20048 to their new location and adds html/js wrappers for them.
20049
20050 This is the #3 commit of the whole patch.
20051
20052 * PageLoad/svg/files/42470-flower_from_my_garden_v2.svg: Removed.
20053 * PageLoad/svg/files/44057-drops on a blade.svg: Removed.
20054 * PageLoad/svg/files/deb9frac1.svg: Removed.
20055 * PageLoad/svg/files/food_leif_lodahl_01.svg: Removed.
20056 * SVG/Debian.html: Added.
20057 * SVG/DropsOnABlade.html: Added.
20058 * SVG/FlowerFromMyGarden.html: Added.
20059 * SVG/FoodLeifLodahl.html: Added.
20060 * SVG/resources/Debian.svg: Copied from PerformanceTests/PageLoad/svg/files/deb9frac1.svg.
20061 * SVG/resources/DropsOnABlade.svg: Copied from PerformanceTests/PageLoad/svg/files/44057-drops%20on%20a%20blade.svg.
20062 * SVG/resources/FlowerFromMyGarden.svg: Copied from PerformanceTests/PageLoad/svg/files/42470-flower_from_my_garden_v2.svg.
20063 * SVG/resources/FoodLeifLodahl.svg: Copied from PerformanceTests/PageLoad/svg/files/food_leif_lodahl_01.svg.
20064
zoltan@webkit.orga01a8c72012-10-24 16:23:22 +0000200652012-10-24 Zoltan Horvath <zoltan@webkit.org>
20066
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000020067 Turn PageLoad tests into simple performancetests, commit #2
zoltan@webkit.org870ac012012-10-25 18:20:17 +000020068 https://bugs.webkit.org/show_bug.cgi?id=99899
20069
20070 Reviewed by Ryosuke Niwa.
20071
20072 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
20073 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
20074 to their new location and adds html/js wrappers for them.
20075
20076 This is the #2 commit of the whole patch.
20077
20078 * PageLoad/svg/files/cacuts_01.svg: Removed.
20079 * PageLoad/svg/files/cowboy.svg: Removed.
20080 * PageLoad/svg/files/crawfish2_ganson.svg: Removed.
20081 * SVG/Cactus.html: Added.
20082 * SVG/Cowboy.html: Added.
20083 * SVG/CrawFishGanson.html: Added.
20084 * SVG/resources/Cactus.svg: Copied from PerformanceTests/PageLoad/svg/files/cacuts_01.svg.
20085 * SVG/resources/Cowboy.svg: Copied from PerformanceTests/PageLoad/svg/files/cowboy.svg.
20086 * SVG/resources/CrawFishGanson.svg: Copied from PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg.
20087 * Skipped: Remove az-lizard_benji_park_01.svg from the skipped list.
20088
200892012-10-24 Zoltan Horvath <zoltan@webkit.org>
20090
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000020091 Turn PageLoad tests into simple performancetests, commit #1
zoltan@webkit.orga0040bb2012-10-24 18:48:08 +000020092 https://bugs.webkit.org/show_bug.cgi?id=99899
20093
20094 Reviewed by Ryosuke Niwa.
20095
20096 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
20097 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
20098 to their new location and adds html/js wrappers for them.
20099
20100 This is the #1 commit of the whole patch.
20101
20102 * PageLoad/svg/files/az-lizard_benji_park_01.svg: Removed.
20103 * PageLoad/svg/files/bamboo_01.svg: Removed.
20104 * SVG/AzLizardBenjiPark.html: Added.
20105 * SVG/Bamboo.html: Added.
20106 * SVG/resources: Added.
20107 * SVG/resources/AzLizardBenjiPark.svg: Copied from PerformanceTests/PageLoad/svg/files/az-lizard_benji_park_01.svg.
20108 * SVG/resources/Bamboo.svg: Copied from PerformanceTests/PageLoad/svg/files/bamboo_01.svg.
20109
201102012-10-24 Zoltan Horvath <zoltan@webkit.org>
20111
zoltan@webkit.orga01a8c72012-10-24 16:23:22 +000020112 REGRESSION(r131982): Skip SVG/SvgNestedUse.html performancetest since it is crashing
20113 https://bugs.webkit.org/show_bug.cgi?id=100262
20114
20115 Unreviewed.
20116
20117 Skip until proper fix.
20118
20119 * Skipped: Add SVG/SvgNestedUse.html
20120
zoltan@webkit.orgb9cfa8e2012-10-23 22:03:55 +0000201212012-10-23 Zoltan Horvath <zoltan@webkit.org>
20122
zoltan@webkit.orgc140a7302012-10-24 06:43:28 +000020123 Store the loaded file locally in measurePageLoadTime
20124 https://bugs.webkit.org/show_bug.cgi?id=100172
20125
20126 Reviewed by Csaba Osztrogonác.
20127
20128 Store the loaded file as a local variable instead of attaching it to the test object.
20129 Handle chunkSize inside test.run.
20130
20131 * resources/runner.js:
20132 (.):
20133
201342012-10-23 Zoltan Horvath <zoltan@webkit.org>
20135
zoltan@webkit.orgb9cfa8e2012-10-23 22:03:55 +000020136 Add measurePageLoadTime function to PerfTestRunner
20137 https://bugs.webkit.org/show_bug.cgi?id=100029
20138
20139 Reviewed by Ryosuke Niwa.
20140
20141 Adopt chunk based loading logic from html5-full-render.html into measurePageLoadTime function,
20142 this is needed to measure the performance and the memory consumption of the PageLoadTests as
20143 we do it for all other performancetests.
20144
20145 * Parser/html5-full-render.html: Move the behavior to runner.js.
20146 * resources/runner.js:
20147 (.): Add measurePageLoadTime function.
20148
abarth@webkit.orgee7102d2012-10-22 18:50:11 +0000201492012-10-22 Adam Barth <abarth@webkit.org>
20150
20151 [V8] Vastly simplify V8GCController's NodeVisitor
20152 https://bugs.webkit.org/show_bug.cgi?id=99884
20153
20154 Reviewed by Kentaro Hara.
20155
20156 Adds some performance tests for the garbage collector.
20157
20158 * Bindings/gc-forest.html: Added.
20159 * Bindings/gc-mini-tree.html: Added.
20160 * Bindings/gc-tree.html: Added.
20161
rniwa@webkit.org667af5d2012-10-17 20:57:46 +0000201622012-10-17 Ryosuke Niwa <rniwa@webkit.org>
20163
rniwa@webkit.orge75a1302012-10-18 01:33:56 +000020164 Bump up the number of iterations of html5-full-render to 5
20165 https://bugs.webkit.org/show_bug.cgi?id=99657
20166
20167 Reviewed by Andreas Kling.
20168
20169 Now that html5-full-render.html runs in less than 15 seconds after r131553,
20170 we can afford to get 5 instead of 2 samples.
20171
20172 * Parser/html5-full-render.html:
20173
201742012-10-17 Ryosuke Niwa <rniwa@webkit.org>
20175
rniwa@webkit.orgbf61dcd2012-10-17 22:06:52 +000020176 Rename PerfTestRunner.runPerSecond to PerfTestRunner.measureRunsPerSecond for consistency
20177 https://bugs.webkit.org/show_bug.cgi?id=99642
20178
20179 Reviewed by Dirk Pranke.
20180
20181 Renamed the method.
20182
20183 * Bindings/append-child.html:
20184 * Bindings/create-element.html:
20185 * Bindings/event-target-wrapper.html:
20186 * Bindings/first-child.html:
20187 * Bindings/get-attribute.html:
20188 * Bindings/get-element-by-id.html:
20189 * Bindings/get-elements-by-tag-name.html:
20190 * Bindings/id-getter.html:
20191 * Bindings/id-setter.html:
20192 * Bindings/insert-before.html:
20193 * Bindings/node-list-access.html:
20194 * Bindings/scroll-top.html:
20195 * Bindings/set-attribute.html:
20196 * Bindings/typed-array-construct-from-array.html:
20197 * Bindings/typed-array-construct-from-same-type.html:
20198 * Bindings/typed-array-construct-from-typed.html:
20199 * Bindings/typed-array-set-from-typed.html:
20200 * Bindings/undefined-first-child.html:
20201 * Bindings/undefined-get-element-by-id.html:
20202 * Bindings/undefined-id-getter.html:
20203 * CSS/CSSPropertySetterGetter.html:
20204 * CSS/CSSPropertyUpdateValue.html:
20205 * CSS/PseudoClassSelectors.html:
20206 * DOM/textarea-dom.html:
20207 * DOM/textarea-edit.html:
20208 * Interactive/resources/window-resize.js:
20209 * Layout/flexbox-column-nowrap.html:
20210 * Layout/flexbox-column-wrap.html:
20211 * Layout/flexbox-row-nowrap.html:
20212 * Layout/flexbox-row-wrap.html:
20213 * Layout/line-layout.html:
20214 * Parser/css-parser-yui.html:
20215 * Parser/innerHTML-setter.html:
20216 * Parser/query-selector-deep.html:
20217 * Parser/query-selector-first.html:
20218 * Parser/query-selector-last.html:
20219 * Parser/simple-url.html:
20220 * Parser/textarea-parsing.html:
20221 * Parser/tiny-innerHTML.html:
20222 * Parser/url-parser.html:
20223 * Parser/xml-parser.html:
20224 * SVG/SvgNestedUse.html:
20225 * resources/runner.js:
20226
202272012-10-17 Ryosuke Niwa <rniwa@webkit.org>
20228
rniwa@webkit.org667af5d2012-10-17 20:57:46 +000020229 Performance test should support asynchronous tests
20230 https://bugs.webkit.org/show_bug.cgi?id=95668
20231
20232 Reviewed by Dirk Pranke.
20233
20234 Added PerfTestRunner.prepareToMeasureValuesAsync and PerfTestRunner.measureValueAsync,
20235 and deployed it in Animation/balls.
20236
20237 * Animation/balls.html:
20238 * resources/runner.js:
20239
commit-queue@webkit.org1e475f02012-10-17 06:50:45 +0000202402012-10-16 Elliott Sprehn <esprehn@chromium.org>
20241
20242 html5-full-render.html test uses substring but meant substr
20243 https://bugs.webkit.org/show_bug.cgi?id=99495
20244
20245 Reviewed by Adam Barth.
20246
20247 This test intended to chunk up the HTML5 spec into chunks of 500k chars, but used
20248 substring(to,from) instead of substr(from,length) so it actually loaded 5x more
20249 content than was in the HTML5 spec.
20250
20251 * Parser/html5-full-render.html:
20252
simonjam@chromium.org29630d32012-10-11 23:08:13 +0000202532012-10-11 James Simonsen <simonjam@chromium.org>
20254
20255 unprefix window.performance.webkitNow()
20256 https://bugs.webkit.org/show_bug.cgi?id=88278
20257
20258 Reviewed by Tony Gentilcore.
20259
20260 * resources/runner.js: Bind to proper object to avoid invalid invocation errors.
20261
rniwa@webkit.orgb679bb12012-10-08 19:02:06 +0000202622012-10-08 Ryosuke Niwa <rniwa@webkit.org>
20263
rniwa@webkit.orgc61349e2012-10-09 01:48:12 +000020264 Skip Layout/subtree-detaching.html temporarily as it's very noisy and
20265 takes 112s to run on Chromium Mac. This is tracked by the bug 98708.
20266
20267 * Skipped:
20268
202692012-10-08 Ryosuke Niwa <rniwa@webkit.org>
20270
rniwa@webkit.org92c0a862012-10-09 01:43:08 +000020271 Perf. test results page is broken when runs have different sets of tests
20272 https://bugs.webkit.org/show_bug.cgi?id=98691
20273
20274 Reviewed by Daniel Bates.
20275
20276 Add "missing" columns for tests that are missing some runs.
20277
20278 Also fix regressions from the previous patch:
20279 - Make reference run switch work again
20280 - Load jquery plugins from the remote server when the jquery is loaded from the remote server.
20281
20282 * resources/results-template.html:
20283
202842012-10-08 Ryosuke Niwa <rniwa@webkit.org>
20285
rniwa@webkit.orgb679bb12012-10-08 19:02:06 +000020286 Perf test pesults page takes forever to load on a machine with a slow Internet connection
20287 https://bugs.webkit.org/show_bug.cgi?id=98561
20288
20289 Reviewed by Ojan Vafai.
20290
20291 Try loading jquery both locally and remotely, and use the same method to load the remaining
20292 jquery plugins when either one succeeds.
20293
20294 * resources/results-template.html:
20295
hayato@chromium.orgcbf6b632012-10-05 04:47:21 +0000202962012-10-04 Hayato Ito <hayato@chromium.org>
20297
20298 [Refactoring] Introduce a traversal strategy in SelectorChecker
20299 https://bugs.webkit.org/show_bug.cgi?id=97298
20300
20301 Reviewed by Antti Koivisto.
20302
20303 Introduces querySelector() performance tests to check SelectorChecker performance.
20304
20305 * CSS/PseudoClassSelectors.html: Added.
20306
pdr@google.com04234e32012-10-04 06:29:45 +0000203072012-10-03 Philip Rogers <pdr@google.com>
20308
20309 Force GC between PageLoad tests.
20310 https://bugs.webkit.org/show_bug.cgi?id=98203
20311
20312 Reviewed by Ryosuke Niwa.
20313
20314 Previously, our PageLoad PerfTests had multi-modal distributions,
20315 typically with a small cluster at 1-2x the median. This turned out
20316 to be caused by not garbage collecting between tests!
20317
20318 This patch adds a new file, force-gc.html, and loads this file between
20319 PageLoad tests to force a GC. I manually verified that this cleans up
20320 our perf test outliers.
20321
20322 * resources/force-gc.html: Added.
20323
jchaffraix@webkit.org74ac0732012-10-03 23:28:46 +0000203242012-10-03 Julien Chaffraix <jchaffraix@webkit.org>
20325
20326 Add a performance test for subtree detaching
20327 https://bugs.webkit.org/show_bug.cgi?id=98281
20328
20329 Reviewed by Eric Seidel.
20330
20331 The new test tries to stress detaching on a heavy subtree (2 levels deep but with 1,000 nodes per level).
20332 We set display: none on the root and measure the time it takes to update the tree. Note that we will also
20333 measure the time taken by recalcStyle and relayout but I don't think we can avoid that.
20334
20335 * Layout/subtree-detaching.html: Added.
20336
rniwa@webkit.orgdf79b202012-10-02 16:52:09 +0000203372012-10-02 Ryosuke Niwa <rniwa@webkit.org>
20338
20339 Build fix after r130135. Dromaeo tests only report single memory value,
20340 and computeStatistics should report variance as 0 in such cases.
20341
20342 * resources/runner.js:
20343
pdr@google.com70539192012-10-02 08:10:47 +0000203442012-10-02 Philip Rogers <pdr@google.com>
20345
20346 Fix PerfTest standard deviation calculation.
20347 https://bugs.webkit.org/show_bug.cgi?id=98115
20348
20349 Reviewed by Ryosuke Niwa.
20350
20351 Previously our standard deviation calculation was incorrect. This patch
20352 updates perftest.py's algorithm to calculate the sample standard deviation
20353 (with Bessel's correction) using Knuth's online algorithm:
20354 http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm
20355 An existing test has been modified to prove our new results.
20356
20357 This patch also updates runner.js to use Bessel's correction in
20358 its sample standard deviation calculation, which is more accurate
20359 for small sample sizes.
20360
20361 Additionally, runner.js has been modified to not calculate
20362 the 'sum' statistic, which was not very useful.
20363
20364 * resources/runner.js:
20365 (PerfTestRunner.computeStatistics):
20366
rniwa@webkit.org3fe74f42012-10-01 23:48:17 +0000203672012-10-01 Ryosuke Niwa <rniwa@webkit.org>
20368
rniwa@webkit.orgca89e212012-10-02 04:57:33 +000020369 PerfTestRunner: Move all functions into the closure and always use double quotation for string literals
20370 https://bugs.webkit.org/show_bug.cgi?id=98093
20371
20372 Reviewed by Ojan Vafai.
20373
20374 Move all methods of PerfTestRunner into the closure that defines it.
20375 Also always use double quotations for string literals for consistency.
20376
20377 * resources/runner.js:
20378
203792012-10-01 Ryosuke Niwa <rniwa@webkit.org>
20380
rniwa@webkit.org3fe74f42012-10-01 23:48:17 +000020381 Encapsulate private properties in PerfTestRunner better
20382 https://bugs.webkit.org/show_bug.cgi?id=97833
20383
20384 Reviewed by Ojan Vafai.
20385
20386 This patch moves "private" methods and properties of PerfTestRunner into a closure so that they're
20387 inaccssible from outside. Also catch exceptions from test.run, test.done, and other runner code
20388 to ensure we call notifyDone() even if we broke tests. Otherwise DRT will timeout and we end up
20389 waiting for 10 minutes per each broken test on bots.
20390
20391 * resources/runner.js:
20392 (PerfTestRunner.gc):
20393 (logInDocument): Extracted from PerfTestRunner.log.
20394 (PerfTestRunner.log): Moved.
20395 (logFatalError): Added.
20396 (start): Renamed from PerfTestRunner._start.
20397 (scheduleNextRun): Extracted from PerfTestRunner._runLoop. Also catch any exceptions that happen
20398 in the runner and ignoreWarmUpAndLog so that we don't end up timing out. We call logFatalError in
20399 such cases, which in turn ensures notifyDone() is called.
20400 (ignoreWarmUpAndLog): Renamed from PerfTestRunner._ignoreWarmUpAndLog.
20401 (finish): Extracted from PerfTestRunner._runLoop.
20402 (PerfTestRunner.measureTime): Moved. The initialization of runCount is moved into start().
20403 (measureTimeOnce): Renamed from PerfTestRunner._measureTimeOnce.
20404 (PerfTestRunner.runPerSecond): Moved. Ditto about runCount.
20405 (measureRunsPerSecondOnce): Renamed from PerfTestRunner._measureRunsPerSecondOnce.
20406 (callRunAndMeasureTime): Renamed from PerfTestRunner._perSecondRunnerIterator.
20407
fmalita@chromium.orgf72ad702012-10-01 20:53:45 +0000204082012-10-01 Florin Malita <fmalita@chromium.org>
20409
20410 Add a performance test for nested <use> elements
20411 https://bugs.webkit.org/show_bug.cgi?id=98047
20412
20413 Reviewed by Ryosuke Niwa.
20414
20415 Currently at ~5 runs per second on my workstation, but should go up significantly (100+)
20416 after landing a fix for https://bugs.webkit.org/show_bug.cgi?id=97905.
20417
20418 * SVG/SvgNestedUse.html: Added.
20419
rniwa@webkit.orgf7c1c4e2012-09-28 07:36:47 +0000204202012-09-28 Ryosuke Niwa <rniwa@webkit.org>
20421
20422 Add back test.runCount for runPerSecond as it's used by tests in fast/harness/perftests.
20423
20424 * resources/runner.js:
20425 (PerfTestRunner.runPerSecond):
20426
rniwa@webkit.orgd93297a2012-09-27 23:23:53 +0000204272012-09-27 Ryosuke Niwa <rniwa@webkit.org>
20428
rniwa@webkit.org8d02be52012-09-28 04:18:04 +000020429 Build fix after r129824.
20430
20431 * DOM/resources/dom-perf.js:
20432 (runBenchmarkSuite):
20433
204342012-09-27 Ryosuke Niwa <rniwa@webkit.org>
20435
rniwa@webkit.orgd879f112012-09-28 04:16:48 +000020436 Remove unused features and reduce code duplications in PerfTestRunner
20437 https://bugs.webkit.org/show_bug.cgi?id=97852
20438
20439 Reviewed by Kentaro Hara.
20440
20441 Made the following refactoring changes:
20442 - Remove PerfTestRunner.info since it's never used.
20443 - Moved the js heap/malloc related functions up to where they belong.
20444 - Moved the initialization of _callsPerIteration, _test, and -description into _start,
20445 and stopped initializing _runFunction and _doneFunction since both test times now
20446 use _test object.
20447 - Made _measureTimeOnce and _measureRunsPerSecondOnce return the measured value
20448 instead of calling ignoreWarmUpAndLog and _runLoop to share the code; they're now
20449 called in _measureRunsPerSecondOnce.
20450
20451 * resources/runner.js:
20452 (PerfTestRunner.storeHeapResults): Moved.
20453 (PerfTestRunner.getUsedMallocHeap): Moved.
20454 (PerfTestRunner.getUsedJSHeap): Moved.
20455 (PerfTestRunner.getAndPrintMemoryStatistics): Moved.
20456 (PerfTestRunner._scheduleNextMeasurementOrNotifyDone): Renamed from _runLoop. Calls
20457 ignoreWarmUpAndLog and schedules the next call.
20458 (PerfTestRunner._measureTimeOnce): Renamed from _runner.
20459 (PerfTestRunner._start): Renamed from initAndStartLoop.
20460 (PerfTestRunner.measureTime):
20461 (PerfTestRunner.runPerSecond):
20462 (PerfTestRunner._measureRunsPerSecondOnce): Renamed from _measureRunsPerSecondOnce.
20463 (PerfTestRunner._perSecondRunnerIterator):
20464
204652012-09-27 Ryosuke Niwa <rniwa@webkit.org>
20466
rniwa@webkit.org8e72d08d2012-09-28 00:26:14 +000020467 PerfTestRunner.run should take an object
20468 https://bugs.webkit.org/show_bug.cgi?id=97743
20469
20470 Reviewed by Kentaro Hara.
20471
20472 Rename PerfTestRunner.run to PerfTestRunner.measureTime and make it take an object instead of
20473 5 arguments. Also get rid of PerfTestRunner._loopsPerRun since it's no longer used (it's always 1).
20474
20475 * CSS/StyleSheetInsert.html:
20476 * DOM/resources/dom-perf.js:
20477 * Layout/floats_100_100.html:
20478 * Layout/floats_100_100_nested.html:
20479 * Layout/floats_20_100.html:
20480 * Layout/floats_20_100_nested.html:
20481 * Layout/floats_2_100.html:
20482 * Layout/floats_2_100_nested.html:
20483 * Layout/floats_50_100.html:
20484 * Layout/floats_50_100_nested.html:
20485 * Parser/html-parser.html:
20486 * Parser/html5-full-render.html:
20487 * SVG/SvgCubics.html:
20488 * SVG/SvgHitTesting.html:
20489 * resources/runner.js:
20490
204912012-09-27 Ryosuke Niwa <rniwa@webkit.org>
20492
rniwa@webkit.org73c6e212012-09-27 23:39:09 +000020493 PerformanceTests/CSS/StyleSheetInsert.html has a time-dependent non-Gaussian distribution
20494 https://bugs.webkit.org/show_bug.cgi?id=97741
20495
20496 Reviewed by Antti Koivisto.
20497
20498 Reset the content in the iframe in each run so that the runtime from each run follows a normal distribution.
20499 We can cleanup this code once my patch to replace the argument list of run by an object is landed.
20500
20501 * CSS/StyleSheetInsert.html:
20502
205032012-09-27 Ryosuke Niwa <rniwa@webkit.org>
20504
rniwa@webkit.org5dbbcea2012-09-27 23:35:44 +000020505 Unreviewed. Minor appearance tweaks after r129813.
20506
20507 * resources/results-template.html:
20508
205092012-09-27 Ryosuke Niwa <rniwa@webkit.org>
20510
rniwa@webkit.orgd93297a2012-09-27 23:23:53 +000020511 Results page should warn about time-dependent distributions
20512 https://bugs.webkit.org/show_bug.cgi?id=97818
20513
20514 Reviewed by Ojan Vafai.
20515
20516 Add a simple linear regression analysis on results page to detect time-dependent distributions.
20517 We add a warning sign (inline SVG) when the regression gave us a slope of at least 0.01 and a R^2 of at least 0.6.
20518 Also added time-series graphs per run under the bar graphs so that humans can manually inspect them.
20519
20520 A nice follow up would be to add some normality test (e.g. Shapiro-Wilk) to detect bi-modal distributions
20521 but we probably need to restructure the code to run it asynchronously since normality tests are slow.
20522
20523 * resources/results-template.html:
20524
rniwa@webkit.org69bb9ed2012-09-26 17:51:42 +0000205252012-09-26 Ryosuke Niwa <rniwa@webkit.org>
20526
20527 Use runPerSecond in PerformanceTests/Bindings/typed-array* and event-target-wrapper
20528 https://bugs.webkit.org/show_bug.cgi?id=97625
20529
20530 Reviewed by Eric Seidel.
20531
20532 Use PerfTestRunner.runPerSecond instead of PerfTestRunner.run. Also reduce the fixed number of
20533 elements and iterations in these tests by a factor of 10 since runPerSecond can dynamically
20534 adjust the number of function calls.
20535
20536 * Bindings/event-target-wrapper.html:
20537 * Bindings/typed-array-construct-from-array.html:
20538 * Bindings/typed-array-construct-from-same-type.html:
20539 * Bindings/typed-array-construct-from-typed.html:
20540 * Bindings/typed-array-set-from-typed.html:
20541
antti@apple.com0517bdf2012-09-26 14:52:19 +0000205422012-09-25 Antti Koivisto <antti@apple.com>
20543
20544 Optimize stylesheet insertions
20545 https://bugs.webkit.org/show_bug.cgi?id=97627
20546
20547 Reviewed by Andreas Kling.
20548
20549 Add synthetic performance test for avoiding style recalcs on stylesheet inserts.
20550
20551 * CSS/StyleSheetInsert.html: Added.
20552
rniwa@webkit.org32631812012-09-25 22:52:34 +0000205532012-09-25 Ryosuke Niwa <rniwa@webkit.org>
20554
20555 Skip Dromaeo/jslib-modify-jquery.html per bug 95376.
20556 It runs out of memory on Chromium port, and it takes unreasonably long time (~5 minutes)
20557 to run on other ports.
20558
20559 * Skipped:
20560
rniwa@webkit.orgd50e4122012-09-20 20:04:31 +0000205612012-09-20 Ryosuke Niwa <rniwa@webkit.org>
20562
rniwa@webkit.org77342952012-09-20 20:35:28 +000020563 Results page should show indivisual value
20564 https://bugs.webkit.org/show_bug.cgi?id=97178
20565
20566 Reviewed by Tony Chang.
20567
20568 Show indivisual values instead of statistics (min, max, stdev).
20569
20570 * resources/results-template.html:
20571
205722012-09-20 Ryosuke Niwa <rniwa@webkit.org>
20573
rniwa@webkit.orgd50e4122012-09-20 20:04:31 +000020574 run-perf-tests should record individual value instead of statistics
20575 https://bugs.webkit.org/show_bug.cgi?id=97155
20576
20577 Reviewed by Hajime Morita.
20578
20579 Report the list of values as "values" so that run-perf-tests can parse them.
20580
20581 * resources/runner.js:
20582 (PerfTestRunner.computeStatistics):
20583 (PerfTestRunner.printStatistics):
20584
ossy@webkit.org179faf42012-09-20 13:11:50 +0000205852012-09-20 Sheriff Bot <webkit.review.bot@gmail.com>
20586
20587 Unreviewed, rolling out r129091.
20588 http://trac.webkit.org/changeset/129091
20589 https://bugs.webkit.org/show_bug.cgi?id=97205
20590
20591 It broke perf tests everywhere (Requested by Ossy on #webkit).
20592
20593 * resources/runner.js:
20594 (PerfTestRunner.computeStatistics):
20595 (PerfTestRunner.printStatistics):
20596
rniwa@webkit.org12f3ed02012-09-20 05:14:16 +0000205972012-09-19 Ryosuke Niwa <rniwa@webkit.org>
20598
20599 run-perf-tests should record indivisual value instead of statistics
20600 https://bugs.webkit.org/show_bug.cgi?id=97155
20601
20602 Reviewed by Hajime Morita.
20603
20604 Report the list of values as "values" so that run-perf-tests can parse them.
20605
20606 * resources/runner.js:
20607 (PerfTestRunner.computeStatistics):
20608 (PerfTestRunner.printStatistics):
20609
rniwa@webkit.org3b6a0d82012-09-17 18:17:10 +0000206102012-09-17 Ryosuke Niwa <rniwa@webkit.org>
20611
20612 Perf test results is incomprehensive
20613 https://bugs.webkit.org/show_bug.cgi?id=94668
20614
20615 Reviewed by Eric Seidel.
20616
20617 Overhauled the results page to have a tabular view. Clicking on each row shows a flot graph we used to have.
20618 For each run and test, we show the mean value with the standard deviation along with the percent difference
20619 against the reference run chosen by the user if the difference is statistically significant; it also indicates
20620 whether the new value is progression or not.
20621
20622 The unit of each test is adjusted automatically using SI prefixes (Kilo, Mega, Milli), and rows can be sorted
20623 by each column. Time and memory results are separated into two tabs.
20624
20625 * resources/jquery.tablesorter.min.js: Added.
20626 * resources/results-template.html:
20627
rniwa@webkit.orge688af02012-09-14 20:51:13 +0000206282012-09-14 Ryosuke Niwa <rniwa@webkit.org>
20629
20630 Use performance.webkitNow in PerfTestRunner
20631 https://bugs.webkit.org/show_bug.cgi?id=92826
20632
20633 Reviewed by Eric Seidel.
20634
20635 Use performance.webkitNow with Date.now as a fallback for more accurate time measurements.
20636
20637 * resources/runner.js:
20638 (PerfTestRunner._runner):
20639 (PerfTestRunner._perSecondRunnerIterator):
20640
ossy@webkit.org96b5d172012-09-14 10:40:40 +0000206412012-09-14 Sheriff Bot <webkit.review.bot@gmail.com>
20642
20643 Unreviewed, rolling out r128562.
20644 http://trac.webkit.org/changeset/128562
20645 https://bugs.webkit.org/show_bug.cgi?id=96747
20646
20647 It broke perf tests on Qt and Chromium (Requested by Ossy on
20648 #webkit).
20649
20650 * resources/runner.js:
20651 (PerfTestRunner._runner):
20652 (PerfTestRunner._perSecondRunnerIterator):
20653
rniwa@webkit.org2338b742012-09-14 07:03:28 +0000206542012-09-14 Ryosuke Niwa <rniwa@webkit.org>
20655
20656 Use performance.webkitNow in PerfTestRunner
20657 https://bugs.webkit.org/show_bug.cgi?id=92826
20658
20659 Reviewed by Eric Seidel.
20660
20661 Use performance.webkitNow with Date.now as a fallback for more acurate time measurements.
20662
20663 * resources/runner.js:
20664 (PerfTestRunner._runner):
20665 (PerfTestRunner._perSecondRunnerIterator):
20666
loislo@chromium.orgad761772012-08-23 10:46:56 +0000206672012-08-23 Ilya Tikhonovsky <loislo@chromium.org>
20668
20669 WebInspector: unreviewed single line test fix.
20670
20671 The test has to open profiles panel explicitly because it is creating lazily.
20672
20673 * inspector/heap-snapshot-performance-test.js:
20674
commit-queue@webkit.org4ba6cdb2012-08-15 19:08:06 +0000206752012-08-15 Scott Graham <scottmg@chromium.org>
20676
20677 Rename window.internals.fastMallocStatistics to mallocStatistics
20678 https://bugs.webkit.org/show_bug.cgi?id=94033
20679
20680 Reviewed by Adam Barth.
20681
20682 * resources/runner.js:
20683 (PerfTestRunner.storeHeapResults):
20684 (PerfTestRunner.getUsedMallocHeap):
20685 (PerfTestRunner.getAndPrintMemoryStatistics):
20686 (PerfTestRunner.initAndStartLoop):
20687
rniwa@webkit.orgd6813772012-08-10 20:10:57 +0000206882012-08-10 Ryosuke Niwa <rniwa@webkit.org>
20689
20690 Unreviewed; fix an insanely silly typo.
20691
20692 * resources/results-template.html:
20693
rniwa@webkit.org0120caa2012-08-09 20:01:04 +0000206942012-08-09 Ryosuke Niwa <rniwa@webkit.org>
20695
20696 Another build fix after r125178.
20697
20698 * resources/runner.js:
20699
zoltan@webkit.orgc95c19f2012-08-09 16:21:09 +0000207002012-08-09 Zoltan Horvath <zoltan@webkit.org>
20701
zoltan@webkit.orgf092a302012-08-09 16:22:05 +000020702 Add memory measurement to balls.html and dromaeorunner.js
20703 https://bugs.webkit.org/show_bug.cgi?id=93617
20704
20705 Reviewed by Adam Barth.
20706
20707 Since we added memory measurement support to performance tests we need to modify these tests.
20708
20709 * Animation/balls.html:
20710 * Dromaeo/resources/dromaeorunner.js:
20711
207122012-08-09 Zoltan Horvath <zoltan@webkit.org>
20713
zoltan@webkit.orgc95c19f2012-08-09 16:21:09 +000020714 JSHeap and FastMallocStatistics based memory measurement for performance-tests
20715 https://bugs.webkit.org/show_bug.cgi?id=90858
20716
20717 Reviewed Ryosuke Niwa.
20718
20719 Measure the memory usage of the performancetests with the help of the windows.memory.usedJSHeapSize
20720 object and the window.internals.fastMallocStatistics() function call.
20721
20722 * resources/runner.js:
20723 (PerfTestRunner.logStatistics):
20724 (PerfTestRunner.printStatistics):
20725 (PerfTestRunner.storeHeapResults):
20726 (PerfTestRunner.getUsedFastMallocHeap):
20727 (PerfTestRunner.getUsedJSHeap):
20728 (PerfTestRunner.getAndPrintMemoryStatistics):
20729 (PerfTestRunner.ignoreWarmUpAndLog):
20730 (PerfTestRunner.initAndStartLoop):
20731
benjamin@webkit.orgbe9e5012012-08-08 21:48:38 +0000207322012-08-08 Benjamin Poulain <benjamin@webkit.org>
20733
20734 Calling internals from the performance test runner prevents manual running
20735 https://bugs.webkit.org/show_bug.cgi?id=93527
20736
20737 Reviewed by Ryosuke Niwa.
20738
20739 Since r125065, it is impossible to run the Performance tests manually. The problem is
20740 "internals" is not defined when running outside the test runner, so the whole script
20741 evaluation fails.
20742
20743 * resources/runner.js: Verify is window.internals is available before invoking something on it.
20744
zoltan@webkit.org00e90982012-08-08 19:09:07 +0000207452012-08-08 Zoltan Horvath <zoltan@webkit.org>
20746
20747 Set access to MemoryInfo enabled for the performance tests
20748 https://bugs.webkit.org/show_bug.cgi?id=92498
20749
20750 Reviewed by Ryosuke Niwa.
20751
20752 We need access to console.memory for the memory measurements.
20753
20754 * resources/runner.js:
20755
rniwa@webkit.org80e60362012-08-08 00:08:42 +0000207562012-08-07 Ryosuke Niwa <rniwa@webkit.org>
20757
20758 run-perf-tests should support --no-show-results
20759 https://bugs.webkit.org/show_bug.cgi?id=93409
20760
20761 Reviewed by Dirk Pranke.
20762
20763 Add a flot as a separate file and load it as an external resource.
20764
20765 Also include scripts as external resources from both local filesystem and webkit.org
20766 so that it continues to work regardless of where you put it.
20767
20768 It breaks when someone else receives the file and save it somewhere and doesn't have
20769 a network connection but that seems like a scenario we don't care that much.
20770
20771 * resources/jquery.flot.min.js: Added.
20772 * resources/results-template.html:
20773
rniwa@webkit.org532509b2012-08-06 21:59:06 +0000207742012-08-06 Ryosuke Niwa <rniwa@webkit.org>
20775
20776 run-webkit-tests should have ability to add description to its JSON output
20777 https://bugs.webkit.org/show_bug.cgi?id=93296
20778
20779 Reviewed by Dirk Pranke.
20780
20781 Parse description and show it with the WebKit revision on the results page. Also use bar graphs
20782 instead of line graphs since we're not depicting the time series here per arv's suggestion.
20783 Finally, add the ability to adjust y-axis between the adjusted value and 0 (plot even doesn't adjust
20784 y-axis automatically now) by a mouse click.
20785
20786 * resources/results-template.html:
20787
rniwa@webkit.org74fd5212012-08-04 21:12:36 +0000207882012-08-04 Ryosuke Niwa <rniwa@webkit.org>
20789
20790 Use testRunner instead of layoutTestController in performance tests
20791 https://bugs.webkit.org/show_bug.cgi?id=93184
20792
20793 Reviewed by Adam Barth.
20794
20795 * Animation/balls.html:
20796 * Dromaeo/resources/dromaeorunner.js:
20797 * inspector/console-300-lines.html:
20798 * inspector/inspector-startup-time.html:
20799 * inspector/network-append-30-requests.html.broken:
20800 * inspector/show-panel.html.broken:
20801 * resources/runner.js:
20802 (PerfTestRunner.logInfo):
20803 (PerfTestRunner.initAndStartLoop):
20804
commit-queue@webkit.org18fabe92012-08-02 19:20:33 +0000208052012-08-02 Arnaud Renevier <a.renevier@sisa.samsung.com>
20806
20807 TypedArray set method is slow when called with another typed array
20808 https://bugs.webkit.org/show_bug.cgi?id=92556
20809
20810 Reviewed by Kenneth Russell.
20811
20812 * Bindings/typed-array-set-from-typed.html: Added.
20813
rniwa@webkit.org87736d82012-07-29 22:03:35 +0000208142012-07-28 Ryosuke Niwa <rniwa@webkit.org>
20815
20816 run-perf-tests should generate a results page
20817 https://bugs.webkit.org/show_bug.cgi?id=92575
20818
20819 Reviewed by Eric Seidel.
20820
20821 Add a results page template. This page includes flot and flot.fillbetween.
20822 jQuery and the json that contains test results are injected by run-perf-tests.
20823
20824 * resources/results-template.html: Added.
20825
commit-queue@webkit.org108c43a2012-07-27 23:32:19 +0000208262012-07-27 Arnaud Renevier <a.renevier@sisa.samsung.com>
20827
20828 use createUninitialized when creating TypedArray from another array
20829 https://bugs.webkit.org/show_bug.cgi?id=92518
20830
20831 Reviewed by Kenneth Russell.
20832
20833 * Bindings/typed-array-construct-from-array.html: Added.
20834
commit-queue@webkit.orgc64bd0b2012-07-27 18:25:53 +0000208352012-07-27 Ryosuke Niwa <rniwa@webkit.org>
20836
20837 Add more Russian replay performance tests
20838 https://bugs.webkit.org/show_bug.cgi?id=92462
20839
20840 Reviewed by Tony Chang.
20841
20842 Add more Russian sites as suggested by loislo.
20843
20844 * Replay/Russian/lenta.ru.replay: Added.
20845 * Replay/Russian/www.ixbt.com.replay: Added.
20846 * Replay/Russian/www.kp.ru.replay: Added.
20847 * Replay/Russian/www.liveinternet.ru.replay: Added.
20848 * Replay/Russian/www.pravda.ru.replay: Added.
20849
commit-queue@webkit.orgd8d6c692012-07-27 00:25:04 +0000208502012-07-26 Arnaud Renevier <a.renevier@sisa.samsung.com>
20851
20852 constructing TypedArray from another TypedArray is slow
20853 https://bugs.webkit.org/show_bug.cgi?id=90838
20854
20855 Reviewed by Kenneth Russell.
20856
20857 * Bindings/typed-array-construct-from-same-type.html: Added.
20858 * Bindings/typed-array-construct-from-typed.html: Added.
20859
rniwa@webkit.orgd8c99952012-07-25 20:52:22 +0000208602012-07-25 Ryosuke Niwa <rniwa@webkit.org>
20861
20862 Import more replay performance tests from Mozilla's Tp5 test suite
20863 https://bugs.webkit.org/show_bug.cgi?id=92229
20864
20865 Reviewed by Andreas Kling.
20866
20867 Add more replay tests based on Mozilla's Tp5 test suite [1]. Unfortunately,
20868 we cannot import all URLs because some of them are not archived on archive.org
20869 and others do not replay well on web-page-replay. Nonethless, we're still adding
20870 60+ URLs in this patch.
20871
20872 [1] http://people.mozilla.org/~jmaher/tp5.manifest
20873
20874 * Replay/Chinese: Added.
20875 * Replay/Chinese/chinaz.com.replay: Added.
20876 * Replay/Chinese/www.163.com.replay: Added.
20877 * Replay/Chinese/www.alipay.com.replay: Added.
20878 * Replay/Chinese/www.baidu.com.replay: Added.
20879 * Replay/Chinese/www.csdn.net.replay: Added.
20880 * Replay/Chinese/www.douban.com.replay: Added.
20881 * Replay/Chinese/www.hao123.com.replay: Added.
20882 * Replay/Chinese/www.xinhuanet.com.replay: Added.
20883 * Replay/Chinese/www.xunlei.com.replay: Added.
20884 * Replay/Chinese/www.youku.com.replay: Added.
20885 * Replay/English: Added.
20886 * Replay/English/beatonna.livejournal.com.replay: Added.
20887 * Replay/English/cakewrecks.blogspot.com.replay: Added.
20888 * Replay/English/chemistry.about.com.replay: Added.
20889 * Replay/English/digg.com.replay: Added.
20890 * Replay/English/en.wikipedia.org-rorschach_test.replay: Added.
20891 * Replay/English/icanhascheezburger.com.replay: Added.
20892 * Replay/English/imgur.com-gallery.replay: Added.
20893 * Replay/English/online.wsj.com.replay: Added.
20894 * Replay/English/stockoverflow.com-best-comment.replay: Added.
20895 * Replay/English/www.alibaba.com.replay: Added.
20896 * Replay/English/www.amazon.com-kindle.replay: Added.
20897 * Replay/English/www.apple.com.replay: Added.
20898 * Replay/English/www.cnet.com.replay: Added.
20899 * Replay/English/www.dailymotion.com.replay: Added.
20900 * Replay/English/www.ehow.com-prevent-fire.replay: Added.
20901 * Replay/English/www.filestube.com-amy-adams.replay: Added.
20902 * Replay/English/www.foxnews.replay: Added.
20903 * Replay/English/www.huffingtonpost.com.replay: Added.
20904 * Replay/English/www.imdb.com-twilight.replay: Added.
20905 * Replay/English/www.mozilla.com-all-order.replay: Added.
20906 * Replay/English/www.php.net.replay: Added.
20907 * Replay/English/www.reddit.com.replay: Added.
20908 * Replay/English/www.telegraph.co.uk.replay: Added.
20909 * Replay/English/www.w3.org-htmlcss.replay: Added.
20910 * Replay/English/www.w3schools.com-html.replay: Added.
20911 * Replay/English/www.youtube.com-music.replay: Added.
20912 * Replay/French: Added.
20913 * Replay/French/www.orange.fr.replay: Added.
20914 * Replay/German: Added.
20915 * Replay/Italian: Added.
20916 * Replay/Italian/www.repubblica.it.replay: Added.
20917 * Replay/Japanese/entameblog.seesaa.net.replay: Added.
20918 * Replay/Japanese/www.hatena.ne.jp.replay: Added.
20919 * Replay/Japanese/www.nicovideo.jp.replay: Added.
20920 * Replay/Korean: Added.
20921 * Replay/Korean/www.naver.com.replay: Added.
20922 * Replay/Persian: Added.
20923 * Replay/Persian/blogfa.com.replay: Added.
20924 * Replay/Polish: Added.
20925 * Replay/Polish/www.wp.pl.replay: Added.
20926 * Replay/Portuguese: Added.
20927 * Replay/Portuguese/www.uol.com.br.replay: Added.
20928 * Replay/Russian: Added.
20929 * Replay/Russian/vkontakte.ru-help.replay: Added.
20930 * Replay/Russian/www.rambler.ru.replay: Added.
20931 * Replay/Russian/www.ucoz.ru.replay: Added.
20932 * Replay/Russian/www.yandex.ru.replay: Added.
20933 * Replay/Spanish: Added.
20934 * Replay/Spanish/www.taringa.net.replay: Added.
20935
rniwa@webkit.org7d8707b2012-07-24 13:40:52 +0000209362012-07-24 Ryosuke Niwa <rniwa@webkit.org>
20937
20938 Add some Japanese and Swedish websites to replay tests
20939 https://bugs.webkit.org/show_bug.cgi?id=92076
20940
20941 Reviewed by Andreas Kling.
20942
20943 Added new replay tests as follows.
20944
20945 * Replay/Japanese: Added.
20946 * Replay/Japanese/2ch.net-newsplus.replay: Added.
20947 * Replay/Japanese/ja.wikipedia.org.replay: Added.
20948 * Replay/Japanese/www.livedoor.com.replay: Added.
20949 * Replay/Japanese/www.rakuten.co.jp.replay: Added.
20950 * Replay/Japanese/www.yahoo.co.jp.replay: Added.
20951 * Replay/Swedish: Added.
20952 * Replay/Swedish/www.flashback.se.replay: Added.
20953 * Replay/Swedish/www.tradera.com.replay: Added.
20954 * Replay/www.techcrunch.com.replay: Added.
20955
morrita@google.comc9688402012-07-19 02:29:12 +0000209562012-07-18 MORITA Hajime <morrita@google.com>
20957
20958 Add window resize benchmark
20959 https://bugs.webkit.org/show_bug.cgi?id=91070
20960
20961 Reviewed by Ryosuke Niwa.
20962
20963 Added window-resize.html which exercise html5.html. This test
20964 resizes the window and forces re-layout repeatedly.
20965
20966 * Interactive/resources/window-resize.js: Added.
20967 * Interactive/window-resize.html: Added.
20968 * Parser/resources/html5.html: Modified to inject driver scripts.
20969
pdr@google.com257156e2012-07-11 18:45:32 +0000209702012-07-11 Philip Rogers <pdr@google.com>
20971
20972 Add a performance test for hit testing in SVG
20973 https://bugs.webkit.org/show_bug.cgi?id=90811
20974
20975 Reviewed by Ryosuke Niwa.
20976
20977 The shape rendering code is changing a lot and I'd like a performance test to
20978 make sure we don't regress, and to track our improvements.
20979
20980 Performance results in my Linux desktop:
20981 RESULT SVG: SvgHitTesting= 105.0 ms
20982 median= 103.5 ms, stdev= 4.60434577329 ms, min= 101.0 ms, max= 116.0 ms
20983
20984 RESULT SVG: SvgHitTesting= 97.8 ms
20985 median= 96.5 ms, stdev= 2.67581763205 ms, min= 95.0 ms, max= 102.0 ms
20986
20987 RESULT SVG: SvgHitTesting= 104.3 ms
20988 median= 104.0 ms, stdev= 1.41774468788 ms, min= 102.0 ms, max= 107.0 ms
20989
20990 RESULT SVG: SvgHitTesting= 103.6 ms
20991 median= 103.5 ms, stdev= 1.2 ms, min= 102.0 ms, max= 106.0 ms
20992
20993 * SVG/SvgHitTesting.html: Added.
20994
vsevik@chromium.orgc725dd42012-07-03 08:45:08 +0000209952012-07-03 Jan Keromnes <janx@linux.com>
20996
20997 Web Inspector: WebInspector.TextViewer should be renamed WebInspector.TextEditor
20998 https://bugs.webkit.org/show_bug.cgi?id=89939
20999
21000 Reviewed by Vsevolod Vlasov.
21001
21002 * inspector/first-open-scripts.html.broken:
21003
pdr@google.com273d4e72012-06-22 23:26:12 +0000210042012-06-22 Philip Rogers <pdr@google.com>
21005
21006 Make SvgCubics performance test more consistent
21007 https://bugs.webkit.org/show_bug.cgi?id=89778
21008
21009 Reviewed by Ryosuke Niwa.
21010
21011 Previously this test ran twice for each iteration, but this led to inconsistent repaints.
21012 This change updates the test to only run once per iteration, and adds even more cubics
21013 so that the test runs consistently in the 80ms range on my Linux desktop.
21014
21015 Performance results on my desktop:
21016 RESULT SVG: SvgCubics= 80.5 ms
21017 median= 82.0 ms, stdev= 3.04138126515 ms, min= 75.0 ms, max= 85.0 ms
21018
21019 RESULT SVG: SvgCubics= 80.1 ms
21020 median= 81.0 ms, stdev= 4.27668095607 ms, min= 74.0 ms, max= 88.0 ms
21021
21022 RESULT SVG: SvgCubics= 81.45 ms
21023 median= 83.0 ms, stdev= 4.01839520207 ms, min= 75.0 ms, max= 89.0 ms
21024
21025 RESULT SVG: SvgCubics= 78.9 ms
21026 median= 80.0 ms, stdev= 4.75289385533 ms, min= 72.0 ms, max= 87.0 ms
21027
21028 * SVG/SvgCubics.html:
21029
loislo@chromium.org8007d592012-06-22 14:08:05 +0000210302012-06-22 Ilya Tikhonovsky <loislo@chromium.org>
21031
21032 Web Inspector: partially instrument DOM Tree native memory.
21033 https://bugs.webkit.org/show_bug.cgi?id=89568
21034
21035 This patch adds MemoryInstrumentation class that counts all visited
21036 objects and calls reportMemoryUsage.
21037
21038 Reviewed by Yury Semikhatsky.
21039
21040 * inspector/native-memory-snapshot.html:
21041
haraken@chromium.orgd129d852012-06-22 02:50:52 +0000210422012-06-21 Kentaro Hara <haraken@chromium.org>
21043
21044 Add a perf-test for innerHTML setter for a large DOM tree
21045 https://bugs.webkit.org/show_bug.cgi?id=89723
21046
21047 Reviewed by Ryosuke Niwa.
21048
21049 We want a benchmark for innerHTML setter for the following reason:
21050
21051 - innerHTML setter is widely used in the real world.
21052 - I am planning to optimize innerHTML setter in the near future.
21053 - I want to use the innerHTML setter benchmark for the patch of bug 88834.
21054
21055 Performance results in my Linux desktop:
21056
21057 RESULT Parser: innerHTML-setter= 289.782649995 runs/s
21058 median= 290.046269741 runs/s, stdev= 1.06575112224 runs/s, min= 286.831812256 runs/s, max= 291.005291005 runs/s
21059
21060 RESULT Parser: innerHTML-setter= 289.020706132 runs/s
21061 median= 289.093298292 runs/s, stdev= 0.985203313093 runs/s, min= 286.831812256 runs/s, max= 290.620871863 runs/s
21062
21063 RESULT Parser: innerHTML-setter= 288.912051701 runs/s
21064 median= 291.005291005 runs/s, stdev= 3.65241325588 runs/s, min= 283.505154639 runs/s, max= 292.553191489 runs/s
21065
21066 RESULT Parser: innerHTML-setter= 288.644186666 runs/s
21067 median= 288.713910761 runs/s, stdev= 1.31889053717 runs/s, min= 286.085825748 runs/s, max= 290.620871863 runs/s
21068
21069 RESULT Parser: innerHTML-setter= 288.698714577 runs/s
21070 median= 288.713910761 runs/s, stdev= 1.03938198202 runs/s, min= 286.458333333 runs/s, max= 290.237467018 runs/s
21071
21072 * Parser/innerHTML-setter.html: Added.
21073
pdr@google.comc5bccdc2012-06-21 01:03:59 +0000210742012-06-20 Philip Rogers <pdr@google.com>
21075
21076 Add a performance test for paths in SVG
21077 https://bugs.webkit.org/show_bug.cgi?id=89547
21078
21079 Reviewed by Ryosuke Niwa.
21080
21081 This change adds the first performance test for SVG paths.
21082 In the test we modify complex cubic paths in several ways, testing:
21083 transformations, clipping, d attribute changes, stroke properties,
21084 text on a path, and opacity.
21085
21086 Sample test results on my Linux desktop:
21087 RESULT SVG: SvgCubics= 68.85 ms
21088 median= 69.5 ms, stdev= 4.70398767005 ms, min= 56.0 ms, max= 75.0 ms
21089
21090 RESULT SVG: SvgCubics= 68.4 ms
21091 median= 69.0 ms, stdev= 3.51283361405 ms, min= 59.0 ms, max= 74.0 ms
21092
21093 RESULT SVG: SvgCubics= 66.95 ms
21094 median= 67.0 ms, stdev= 3.4420197559 ms, min= 59.0 ms, max= 74.0 ms
21095
21096 RESULT SVG: SvgCubics= 70.2 ms
21097 median= 71.5 ms, stdev= 3.23419232576 ms, min= 63.0 ms, max= 74.0 ms
21098
21099 * SVG: Added.
21100 * SVG/SvgCubics.html: Added.
21101
tomz@codeaurora.org79a1bc02012-06-20 15:09:19 +0000211022012-06-20 Tom Zakrajsek <tomz@codeaurora.org>
21103
21104 Import themaninblue.com/experiment/AnimationBenchmark/ as performance tests
21105 https://bugs.webkit.org/show_bug.cgi?id=78789
21106
21107 Reviewed by Ryosuke Niwa.
21108
21109 Added PerfTestRunner fixture around it.
21110
21111 * Animation/balls.html: Added.
21112
loislo@chromium.org91b10ed2012-06-18 19:53:38 +0000211132012-06-18 Ilya Tikhonovsky <loislo@chromium.org>
21114
21115 Web Inspector: native memory snapshot performance and coverage test implementation.
21116 https://bugs.webkit.org/show_bug.cgi?id=89363
21117
21118 We have to track the performance of MemoryAgent.getProcessMemoryDistribution.
21119 Also this test will work as a burn down chart for Unknown memory metric.
21120
21121 Reviewed by Pavel Feldman.
21122
21123 * inspector/native-memory-snapshot.html: Added.
21124 * inspector/performance-test.js:
21125 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer):
21126 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.reportSize):
21127 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
21128 (initialize_TimeTracker.InspectorTest.runPerformanceTest):
21129
loislo@chromium.orgf7bed1b2012-06-05 17:08:19 +0000211302012-06-05 Alexei Filippov <alexeif@chromium.org>
21131
21132 Web Inspector: serialize edge counts instead of indexes in heap snapshot
21133 https://bugs.webkit.org/show_bug.cgi?id=88324
21134
21135 The serialized node structure currently holds an index
21136 of its first containment edge in the edges array.
21137 The index can be quite big (up to 7 digits for large snapshots).
21138 The patch changes the serialization format to pass
21139 node containment edge count instead. For most nodes the count
21140 is just a single digit number.
21141 This reduces serialized snapshot size and therefore its transfer time.
21142
21143 Reviewed by Yury Semikhatsky.
21144
21145 * inspector/heap-snapshot-performance-test.js:
21146
loislo@chromium.org88129572012-06-04 12:38:30 +0000211472012-06-04 Alexei Filippov <alexeif@chromium.org>
21148
21149 Web Inspector: speed up _calculateRetainedSizes function
21150 https://bugs.webkit.org/show_bug.cgi?id=87863
21151
21152 Reviewed by Yury Semikhatsky.
21153
21154 * inspector/heap-snapshot-advanced.html: Added.
21155 * inspector/heap-snapshot-performance-test.js: Copied from PerformanceTests/inspector/heap-snapshot.html.
21156 (test.performanceTest.step0):
21157 (test.performanceTest.step1):
21158 (test.performanceTest.step2):
21159 (test.performanceTest.cleanup):
21160 (test.performanceTest.done):
21161 (test.performanceTest):
21162 (test):
21163 * inspector/heap-snapshot.html:
21164
haraken@chromium.orgbf3d2c52012-06-04 02:24:49 +0000211652012-06-03 Kentaro Hara <haraken@chromium.org>
21166
haraken@chromium.org27571752012-06-04 03:14:20 +000021167 [perf-test] Add a benchmark of querySelector() for an element that appears in the depths in the document
21168 https://bugs.webkit.org/show_bug.cgi?id=88202
21169
21170 Reviewed by Ryosuke Niwa.
21171
21172 query-selector-first.html tests querySelector() for an element
21173 that appears at the head of the document. query-selector-last.html
21174 tests querySelector() for an element that appears at the tail of
21175 the document. In addition, we want a benchmark of querySelector()
21176 for an element that appears in the depths in the document.
21177
21178 Test results in my Linux desktop:
21179
21180 RESULT Parser: query-selector-deep= 460.776980611 runs/s
21181 median= 460.947503201 runs/s, stdev= 1.72274941942 runs/s, min= 455.696202532 runs/s, max= 463.32046332 runs/s
21182
21183 RESULT Parser: query-selector-deep= 458.925050915 runs/s
21184 median= 459.183673469 runs/s, stdev= 1.47930124139 runs/s, min= 454.545454545 runs/s, max= 460.947503201 runs/s
21185
21186 RESULT Parser: query-selector-deep= 461.866981491 runs/s
21187 median= 461.538461538 runs/s, stdev= 1.14613123359 runs/s, min= 459.183673469 runs/s, max= 463.917525773 runs/s
21188
21189 RESULT Parser: query-selector-deep= 453.922010788 runs/s
21190 median= 454.258855898 runs/s, stdev= 1.77279123317 runs/s, min= 447.204968944 runs/s, max= 455.696202532 runs/s
21191
21192 RESULT Parser: query-selector-deep= 454.666321221 runs/s
21193 median= 454.545454545 runs/s, stdev= 1.65775667417 runs/s, min= 451.127819549 runs/s, max= 456.852791878 runs/s
21194
21195 * Parser/query-selector-deep.html: Added.
21196
211972012-06-03 Kentaro Hara <haraken@chromium.org>
21198
haraken@chromium.orgbf3d2c52012-06-04 02:24:49 +000021199 [perf-test] Make query-selector-last.html more realistic
21200 https://bugs.webkit.org/show_bug.cgi?id=88203
21201
21202 Reviewed by Ryosuke Niwa.
21203
21204 query-selector-last.html tests querySelector() for an element
21205 that appears after 1000 div elements, all of which have the same
21206 id and class. To test the performance of querySelector() under
21207 a lot of ids and classes, we should make the ids and classes of
21208 the 1000 elements different.
21209
21210 This patch degrades the performance of query-selector-last.html
21211 by 3.6%.
21212
21213 [Before]
21214 RESULT Parser: query-selector-last= 476.382274152 runs/s
21215 median= 476.821192053 runs/s, stdev= 1.14578875814 runs/s, min= 474.308300395 runs/s, max= 478.087649402 runs/s
21216
21217 RESULT Parser: query-selector-last= 478.423061861 runs/s
21218 median= 478.723404255 runs/s, stdev= 1.54876867255 runs/s, min= 473.684210526 runs/s, max= 481.347773767 runs/s
21219
21220 RESULT Parser: query-selector-last= 479.849287174 runs/s
21221 median= 480.0 runs/s, stdev= 1.69849752498 runs/s, min= 475.561426684 runs/s, max= 481.927710843 runs/s
21222
21223 RESULT Parser: query-selector-last= 476.765438846 runs/s
21224 median= 477.453580902 runs/s, stdev= 1.8724488664 runs/s, min= 471.821756225 runs/s, max= 478.723404255 runs/s
21225
21226 RESULT Parser: query-selector-last= 481.715340644 runs/s
21227 median= 481.637742305 runs/s, stdev= 1.81446361145 runs/s, min= 475.561426684 runs/s, max= 483.675937122 runs/s
21228
21229 [After]
21230 RESULT Parser: query-selector-last= 458.866623582 runs/s
21231 median= 459.183673469 runs/s, stdev= 1.48881464737 runs/s, min= 453.972257251 runs/s, max= 460.947503201 runs/s
21232
21233 RESULT Parser: query-selector-last= 460.363532897 runs/s
21234 median= 460.358056266 runs/s, stdev= 1.58512056995 runs/s, min= 456.273764259 runs/s, max= 462.130937099 runs/s
21235
21236 RESULT Parser: query-selector-last= 457.727448451 runs/s
21237 median= 458.015267176 runs/s, stdev= 1.23681915516 runs/s, min= 453.972257251 runs/s, max= 459.183673469 runs/s
21238
21239 RESULT Parser: query-selector-last= 465.57336853 runs/s
21240 median= 465.717981889 runs/s, stdev= 1.6616925374 runs/s, min= 460.947503201 runs/s, max= 467.532467532 runs/s
21241
21242 RESULT Parser: query-selector-last= 459.836252019 runs/s
21243 median= 459.770114943 runs/s, stdev= 1.84485630505 runs/s, min= 455.696202532 runs/s, max= 462.724935733 runs/s
21244
21245 * Parser/query-selector-last.html:
21246
rniwa@webkit.org15684512012-06-01 03:19:31 +0000212472012-06-01 Ryosuke Niwa <rniwa@webkit.org>
21248
21249 Add public page loading performance tests using web-page-replay
21250 https://bugs.webkit.org/show_bug.cgi?id=84008
21251
21252 Reviewed by Dirk Pranke.
21253
21254 Add replay tests for google.com and youtube.com as examples.
21255
21256 * Replay: Added.
21257 * Replay/www.google.com.replay: Added.
21258 * Replay/www.youtube.com.replay: Added.
21259
haraken@chromium.org2061b652012-05-30 07:00:50 +0000212602012-05-30 Kentaro Hara <haraken@chromium.org>
21261
21262 [perf-test] Add a benchmark for querySelector()
21263 https://bugs.webkit.org/show_bug.cgi?id=87742
21264
21265 Reviewed by Ryosuke Niwa.
21266
21267 Now I am optimizing querySelector() (bug 87625).
21268 This patch adds a performance test for querySelector().
21269 query-selector-first.html queries an element that appears
21270 at the head of the document. On the other hand,
21271 query-selector-last.html queries an element that appears
21272 at the tail of the document.
21273
21274 Test results in my desktop:
21275
21276 [query-selector-first.html]
21277 RESULT Parser: query-selector-first= 252.339803014 runs/s
21278 median= 253.646265594 runs/s, stdev= 2.32610873209 runs/s, min= 248.138957816 runs/s, max= 254.777070064 runs/s
21279
21280 RESULT Parser: query-selector-first= 252.688468897 runs/s
21281 median= 252.684876579 runs/s, stdev= 3.60008778708 runs/s, min= 246.002460025 runs/s, max= 258.397932817 runs/s
21282
21283 RESULT Parser: query-selector-first= 253.466019656 runs/s
21284 median= 254.129606099 runs/s, stdev= 1.78002675664 runs/s, min= 247.831474597 runs/s, max= 254.777070064 runs/s
21285
21286 RESULT Parser: query-selector-first= 256.245078189 runs/s
21287 median= 257.06940874 runs/s, stdev= 2.84722072201 runs/s, min= 249.687890137 runs/s, max= 259.74025974 runs/s
21288
21289 RESULT Parser: query-selector-first= 252.203100497 runs/s
21290 median= 252.047989175 runs/s, stdev= 1.75233446036 runs/s, min= 248.138957816 runs/s, max= 255.427841635 runs/s
21291
21292 [query-selector-last.html]
21293 RESULT Parser: query-selector-last= 356.009616076 runs/s
21294 median= 355.781448539 runs/s, stdev= 0.841519086864 runs/s, min= 354.430379747 runs/s, max= 358.056265985 runs/s
21295
21296 RESULT Parser: query-selector-last= 360.735271001 runs/s
21297 median= 361.057532424 runs/s, stdev= 1.12253219867 runs/s, min= 358.514724712 runs/s, max= 362.225097025 runs/s
21298
21299 RESULT Parser: query-selector-last= 359.598592463 runs/s
21300 median= 359.435173299 runs/s, stdev= 0.816538258728 runs/s, min= 358.056265985 runs/s, max= 360.824742268 runs/s
21301
21302 RESULT Parser: query-selector-last= 357.260651715 runs/s
21303 median= 357.598978289 runs/s, stdev= 1.17393159885 runs/s, min= 353.982300885 runs/s, max= 358.974358974 runs/s
21304
21305 RESULT Parser: query-selector-last= 351.696240713 runs/s
21306 median= 351.980025916 runs/s, stdev= 1.14200564038 runs/s, min= 348.692403487 runs/s, max= 353.535353535 runs/s
21307
21308 * Parser/query-selector-first.html: Added.
21309 * Parser/query-selector-last.html: Added.
21310
loislo@chromium.org8c678a72012-05-25 09:01:29 +0000213112012-05-25 Ilya Tikhonovsky <loislo@chromium.org>
21312
loislo@chromium.org03b391a2012-05-25 13:48:08 +000021313 Web Inspector: HeapSnapshot: introduce performance counter for HeapSnapshotConstructorsDataGrid._aggregatesReceived method.
21314 https://bugs.webkit.org/show_bug.cgi?id=87393
21315
21316 Reviewed by Yury Semikhatsky.
21317
21318 * inspector/heap-snapshot.html:
21319
213202012-05-25 Ilya Tikhonovsky <loislo@chromium.org>
21321
loislo@chromium.org8c678a72012-05-25 09:01:29 +000021322 Web Inspector: HeapProfiler's perf test: each N-th run pushes the run results N-th times.
21323 https://bugs.webkit.org/show_bug.cgi?id=87476
21324
21325 The time tracking wrappers were attaching on each run.
21326
21327 Reviewed by Yury Semikhatsky.
21328
21329 * inspector/heap-snapshot.html:
21330
loislo@chromium.org786b5952012-05-22 11:54:50 +0000213312012-05-22 Ilya Tikhonovsky <loislo@chromium.org>
21332
21333 Web Inspector: HeapProfiler: upstream retainedSize calculation.
21334 https://bugs.webkit.org/show_bug.cgi?id=87107
21335
21336 This patch upstreams V8::HeapSnapshotGenerator::CalculateRetainedSizes function to front-end.
21337 After that we will be able to drop retainedSize field from the snapshot serialized data.
21338 See meta-bug https://bugs.webkit.org/show_bug.cgi?id=87089
21339
21340 Reviewed by Yury Semikhatsky.
21341
21342 * inspector/heap-snapshot.html: add counter for the _calculateRetainedSize method.
21343
tkent@chromium.orgcea87a42012-05-22 00:53:41 +0000213442012-05-21 Kent Tamura <tkent@chromium.org>
21345
21346 Add performance tests for <textarea>
21347 https://bugs.webkit.org/show_bug.cgi?id=86994
21348
21349 Reviewed by Ryosuke Niwa.
21350
21351 * DOM/textarea-dom.html: Added.
21352 * DOM/textarea-edit.html: Added.
21353 * Parser/textarea-parsing.html: Added.
21354
loislo@chromium.org70a1f502012-05-21 08:53:37 +0000213552012-05-18 Ilya Tikhonovsky <loislo@chromium.org>
21356
21357 Web Inspector: upstream build dominators tree procedure from v8.
21358 https://bugs.webkit.org/show_bug.cgi?id=86640
21359
21360 The idea is to reduce transfer size and move all the post-processing steps to the front-end.
21361 The JS implementation is ~1.5 times slower.
21362
21363 Reviewed by Yury Semikhatsky.
21364
21365 Covered by existing tests and performance tests.
21366
21367 * inspector/heap-snapshot.html:
21368
haraken@chromium.org0b3e29d2012-05-18 07:20:36 +0000213692012-05-18 Kentaro Hara <haraken@chromium.org>
21370
haraken@chromium.org0059cfc2012-05-18 20:30:35 +000021371 [perf-test] Remove Bindings/dom-attributes.html
21372 https://bugs.webkit.org/show_bug.cgi?id=86820
21373
21374 Reviewed by Ryosuke Niwa.
21375
21376 Bindings/dom-attributes.html is just a collection of random
21377 DOM attributes and methods. Now we've added more reasonable
21378 micro benchmarks by classifying DOM binding call paths, we
21379 can remove Bindings/dom-attributes.html.
21380
21381 * Bindings/dom-attributes.html: Removed.
21382
213832012-05-18 Kentaro Hara <haraken@chromium.org>
21384
haraken@chromium.orga97bd502012-05-18 09:23:35 +000021385 [perf-test] Add a binding benchmark for getElementById() for an undefined id
21386 https://bugs.webkit.org/show_bug.cgi?id=86812
21387
21388 Reviewed by Ryosuke Niwa.
21389
21390 We should remove Bindings/dom-attributes.html and instead add more
21391 reasonable micro benchmarks by classifying DOM binding call paths.
21392
21393 This patch adds a benchmark for document.getElementById() for an undefined id.
21394 This benchmark covers 'getElementById (not in document)' in Dromaeo/dom-query.html,
21395 and other Node-query methods that return a null.'
21396
21397 (Note: This benchmark is slower than document.getElementById() for a defined id.
21398 We will fix the performance issue soon.)
21399
21400 Test results in my Linux desktop:
21401
21402 RESULT Bindings: undefined-get-element-by-id= 271.945751345 runs/s
21403 median= 273.122389532 runs/s, stdev= 6.78219237299 runs/s, min= 257.4002574 runs/s, max= 281.690140845 runs/s
21404
21405 RESULT Bindings: undefined-get-element-by-id= 269.105872408 runs/s
21406 median= 268.948655257 runs/s, stdev= 5.73707323755 runs/s, min= 257.4002574 runs/s, max= 278.128950695 runs/s
21407
21408 RESULT Bindings: undefined-get-element-by-id= 269.987513372 runs/s
21409 median= 272.952853598 runs/s, stdev= 5.30252336078 runs/s, min= 255.754475703 runs/s, max= 273.97260274 runs/s
21410
21411 RESULT Bindings: undefined-get-element-by-id= 270.169625901 runs/s
21412 median= 271.604938272 runs/s, stdev= 5.29502391906 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
21413
21414 RESULT Bindings: undefined-get-element-by-id= 269.054631422 runs/s
21415 median= 267.966292802 runs/s, stdev= 6.27197240579 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
21416
21417 * Bindings/undefined-get-element-by-id.html: Added.
21418
214192012-05-18 Kentaro Hara <haraken@chromium.org>
21420
haraken@chromium.org71286c32012-05-18 09:20:32 +000021421 [perf-test] Add a binding benchmark for getElementsByTagName()
21422 https://bugs.webkit.org/show_bug.cgi?id=86810
21423
21424 Reviewed by Ryosuke Niwa.
21425
21426 We should remove Bindings/dom-attributes.html and instead add more
21427 reasonable micro benchmarks by classifying DOM binding call paths.
21428
21429 This patch adds a benchmark for document.getElementsByTagName().
21430 This benchmark covers 'getElementsByTagName (not in document)',
21431 'getElementsByTagName', 'getElementsByName (not in document)'
21432 and 'getElementsByName' in Dromaeo/dom-query.html, and other DOM
21433 methods that return a NodeList.
21434
21435 Test results in my Linux desktop:
21436
21437 RESULT Bindings: get-elements-by-tag-name= 364.542328875 runs/s
21438 median= 366.972477064 runs/s, stdev= 5.25387955333 runs/s, min= 351.317440402 runs/s, max= 368.421052632 runs/s
21439
21440 RESULT Bindings: get-elements-by-tag-name= 364.341569369 runs/s
21441 median= 366.492146597 runs/s, stdev= 4.867374197 runs/s, min= 352.644836272 runs/s, max= 367.936925099 runs/s
21442
21443 RESULT Bindings: get-elements-by-tag-name= 363.924242967 runs/s
21444 median= 366.013071895 runs/s, stdev= 5.16768212289 runs/s, min= 351.317440402 runs/s, max= 367.936925099 runs/s
21445
21446 RESULT Bindings: get-elements-by-tag-name= 365.332594438 runs/s
21447 median= 367.454068241 runs/s, stdev= 6.17046918572 runs/s, min= 350.0 runs/s, max= 370.37037037 runs/s
21448
21449 RESULT Bindings: get-elements-by-tag-name= 363.999514324 runs/s
21450 median= 366.492146597 runs/s, stdev= 5.31235674905 runs/s, min= 350.877192982 runs/s, max= 368.421052632 runs/s
21451
21452 * Bindings/get-elements-by-tag-name.html: Added.
21453
214542012-05-18 Kentaro Hara <haraken@chromium.org>
21455
haraken@chromium.orgc03afb12012-05-18 08:40:55 +000021456 [perf-test] Add 7 micro benchmarks for DOM bindings
21457 https://bugs.webkit.org/show_bug.cgi?id=86816
21458
21459 Reviewed by Ryosuke Niwa.
21460
21461 We should remove Bindings/dom-attributes.html and instead add more
21462 reasonable micro benchmarks by classifying DOM binding call paths.
21463 This patch adds seven micro benchmarks for DOM bindings.
21464
21465 id-getter.html covers 'element.property' in Dromaeo/dom-attr.html,
21466 'innerHTML' in Dromaeo/dom-modify.html, and other DOM attributes that
21467 return a String.
21468
21469 id-setter.html covers 'element.property = value' in Dromaeo/dom-attr.html,
21470 and other DOM attributes that sets a String.
21471
21472 undefined-id-getter.html covers undefined DOM attributes that return an empty String.
21473
21474 append-child.html covers 'appendChild' and 'removeChild' in Dromaeo/dom-modify.html.
21475
21476 insert-before.html covers 'insertBefore' in Dromaeo/dom-modify.html and replaceChild().
21477
21478 create-element.html covers 'createElement', 'createTextNode' and 'cloneNode'
21479 in Dromaeo/dom-modify.html, and other DOM methods that return a new Node object.
21480
21481 node-list-access.html covers 'childNodes' in Dromaeo/dom-traverse.html,
21482 and other DOM attributes that access NodeList.
21483
21484 Test results in my Linux desktop:
21485
21486 [id-getter]
21487 RESULT Bindings: id-getter= 550.517821097 runs/s
21488 median= 550.688360451 runs/s, stdev= 0.970723739106 runs/s, min= 548.628428928 runs/s, max= 552.070263488 runs/s
21489
21490 RESULT Bindings: id-getter= 550.655839847 runs/s
21491 median= 550.688360451 runs/s, stdev= 1.03312821884 runs/s, min= 549.313358302 runs/s, max= 552.070263488 runs/s
21492
21493 RESULT Bindings: id-getter= 550.277753355 runs/s
21494 median= 550.344180225 runs/s, stdev= 1.19960683464 runs/s, min= 547.945205479 runs/s, max= 552.070263488 runs/s
21495
21496 RESULT Bindings: id-getter= 550.072271009 runs/s
21497 median= 550.344180225 runs/s, stdev= 1.38925152131 runs/s, min= 547.263681592 runs/s, max= 552.070263488 runs/s
21498
21499 RESULT Bindings: id-getter= 548.802050235 runs/s
21500 median= 548.628428928 runs/s, stdev= 1.18244513683 runs/s, min= 545.905707196 runs/s, max= 550.688360451 runs/s
21501
21502 [id-setter]
21503 RESULT Bindings: id-setter= 211.370591663 runs/s
21504 median= 210.803689065 runs/s, stdev= 1.4555795889 runs/s, min= 209.973753281 runs/s, max= 214.285714286 runs/s
21505
21506 RESULT Bindings: id-setter= 215.439081352 runs/s
21507 median= 214.797136038 runs/s, stdev= 1.50920388121 runs/s, min= 213.049267643 runs/s, max= 218.446601942 runs/s
21508
21509 RESULT Bindings: id-setter= 216.721698466 runs/s
21510 median= 215.956886352 runs/s, stdev= 1.54090749644 runs/s, min= 214.285714286 runs/s, max= 219.78021978 runs/s
21511
21512 RESULT Bindings: id-setter= 216.343019087 runs/s
21513 median= 215.827338129 runs/s, stdev= 1.46619894553 runs/s, min= 215.053763441 runs/s, max= 218.97810219 runs/s
21514
21515 RESULT Bindings: id-setter= 216.799288017 runs/s
21516 median= 215.956886352 runs/s, stdev= 1.49100776978 runs/s, min= 215.311004785 runs/s, max= 219.78021978 runs/s
21517
21518 [undefined-id-getter]
21519 RESULT Bindings: undefined-id-getter= 494.104255241 runs/s
21520 median= 494.132368875 runs/s, stdev= 1.13092821109 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
21521
21522 RESULT Bindings: undefined-id-getter= 493.921802916 runs/s
21523 median= 493.827160494 runs/s, stdev= 1.25097443119 runs/s, min= 490.196078431 runs/s, max= 495.662949195 runs/s
21524
21525 RESULT Bindings: undefined-id-getter= 491.976485667 runs/s
21526 median= 492.004920049 runs/s, stdev= 0.947090576896 runs/s, min= 490.196078431 runs/s, max= 493.827160494 runs/s
21527
21528 RESULT Bindings: undefined-id-getter= 491.987710185 runs/s
21529 median= 494.132368875 runs/s, stdev= 8.66602543327 runs/s, min= 454.545454545 runs/s, max= 495.662949195 runs/s
21530
21531 RESULT Bindings: undefined-id-getter= 494.195515847 runs/s
21532 median= 494.437577256 runs/s, stdev= 1.06135681702 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
21533
21534 [append-child]
21535 RESULT Bindings: append-child= 260.628237026 runs/s
21536 median= 260.926399352 runs/s, stdev= 2.55231060598 runs/s, min= 256.739409499 runs/s, max= 265.604249668 runs/s
21537
21538 RESULT Bindings: append-child= 280.796193436 runs/s
21539 median= 280.791435348 runs/s, stdev= 2.53961321867 runs/s, min= 277.427490542 runs/s, max= 286.085825748 runs/s
21540
21541 RESULT Bindings: append-child= 279.856209714 runs/s
21542 median= 280.25477707 runs/s, stdev= 2.85447647301 runs/s, min= 275.344180225 runs/s, max= 284.237726098 runs/s
21543
21544 RESULT Bindings: append-child= 280.834502714 runs/s
21545 median= 280.25477707 runs/s, stdev= 2.67738046429 runs/s, min= 277.427490542 runs/s, max= 287.206266319 runs/s
21546
21547 RESULT Bindings: append-child= 274.723872106 runs/s
21548 median= 273.291925466 runs/s, stdev= 3.03671746706 runs/s, min= 272.614622057 runs/s, max= 282.413350449 runs/s
21549
21550 [insert-before]
21551 RESULT Bindings: insert-before= 180.986913006 runs/s
21552 median= 180.878552972 runs/s, stdev= 0.758038687299 runs/s, min= 180.18018018 runs/s, max= 183.968462549 runs/s
21553
21554 RESULT Bindings: insert-before= 186.339916144 runs/s
21555 median= 186.170212766 runs/s, stdev= 0.869022097127 runs/s, min= 185.676392573 runs/s, max= 189.798339265 runs/s
21556
21557 RESULT Bindings: insert-before= 189.45344838 runs/s
21558 median= 189.349112426 runs/s, stdev= 0.811854866567 runs/s, min= 187.79342723 runs/s, max= 192.539109507 runs/s
21559
21560 RESULT Bindings: insert-before= 189.363295991 runs/s
21561 median= 189.349112426 runs/s, stdev= 0.75387713097 runs/s, min= 188.014101058 runs/s, max= 192.076830732 runs/s
21562
21563 RESULT Bindings: insert-before= 189.252041642 runs/s
21564 median= 189.349112426 runs/s, stdev= 0.840447225363 runs/s, min= 187.573270809 runs/s, max= 192.076830732 runs/s
21565
21566 [create-element]
21567 RESULT Bindings: create-element= 280.675830077 runs/s
21568 median= 280.701824914 runs/s, stdev= 0.788606343054 runs/s, min= 279.441117764 runs/s, max= 282.542885974 runs/s
21569
21570 RESULT Bindings: create-element= 276.427631436 runs/s
21571 median= 277.227722772 runs/s, stdev= 3.39874667549 runs/s, min= 262.417994377 runs/s, max= 279.162512463 runs/s
21572
21573 RESULT Bindings: create-element= 277.156894411 runs/s
21574 median= 277.227722772 runs/s, stdev= 1.13255119226 runs/s, min= 274.914089347 runs/s, max= 278.884462151 runs/s
21575
21576 RESULT Bindings: create-element= 278.066825356 runs/s
21577 median= 278.191822254 runs/s, stdev= 0.686497782792 runs/s, min= 276.953511375 runs/s, max= 279.162512463 runs/s
21578
21579 RESULT Bindings: create-element= 276.431538109 runs/s
21580 median= 276.406712734 runs/s, stdev= 0.759593662298 runs/s, min= 275.229357798 runs/s, max= 278.053624628 runs/s
21581
21582 [node-list-access]
21583 RESULT Bindings: node-list-access= 222.747504073 runs/s
21584 median= 222.772277228 runs/s, stdev= 0.789027527555 runs/s, min= 221.674876847 runs/s, max= 224.159402242 runs/s
21585
21586 RESULT Bindings: node-list-access= 220.722448287 runs/s
21587 median= 221.266217576 runs/s, stdev= 1.65463497875 runs/s, min= 217.391304348 runs/s, max= 222.222222222 runs/s
21588
21589 RESULT Bindings: node-list-access= 222.195870443 runs/s
21590 median= 222.222222222 runs/s, stdev= 0.489709262091 runs/s, min= 221.13022113 runs/s, max= 223.048327138 runs/s
21591
21592 RESULT Bindings: node-list-access= 221.431121677 runs/s
21593 median= 221.538545435 runs/s, stdev= 0.608292116087 runs/s, min= 220.048899756 runs/s, max= 222.772277228 runs/s
21594
21595 RESULT Bindings: node-list-access= 219.001367135 runs/s
21596 median= 221.538545435 runs/s, stdev= 4.65773933007 runs/s, min= 209.973753281 runs/s, max= 222.496909765 runs/s
21597
21598 * Bindings/append-child.html: Added.
21599 * Bindings/create-element.html: Added.
21600 * Bindings/id-getter.html: Added.
21601 * Bindings/id-setter.html: Added.
21602 * Bindings/insert-before.html: Added.
21603 * Bindings/node-list-access.html: Added.
21604 * Bindings/undefined-id-getter.html: Added.
21605
216062012-05-18 Kentaro Hara <haraken@chromium.org>
21607
haraken@chromium.org0b3e29d2012-05-18 07:20:36 +000021608 [perf-test] Add a binding benchmark for div.setAttribute()
21609 https://bugs.webkit.org/show_bug.cgi?id=86815
21610
21611 Reviewed by Ryosuke Niwa.
21612
21613 We should remove Bindings/dom-attributes.html and instead add more
21614 reasonable micro benchmarks by classifying DOM binding call paths.
21615
21616 This patch adds a benchmark for div.setAttribute(). This benchmark
21617 covers 'setAttribute' in Dromaeo/dom-attr.html and other DOM methods
21618 that return an undefined.
21619
21620 Test results in my Linux desktop:
21621
21622 RESULT Bindings: set-attribute= 793.745073252 runs/s
21623 median= 791.589665765 runs/s, stdev= 6.00467159709 runs/s, min= 785.27607362 runs/s, max= 808.080808081 runs/s
21624
21625 RESULT Bindings: set-attribute= 790.858444164 runs/s
21626 median= 787.918921436 runs/s, stdev= 7.86264953655 runs/s, min= 780.234070221 runs/s, max= 806.04534005 runs/s
21627
21628 RESULT Bindings: set-attribute= 787.277571417 runs/s
21629 median= 784.31372549 runs/s, stdev= 7.45363346657 runs/s, min= 778.588807786 runs/s, max= 804.020100503 runs/s
21630
21631 RESULT Bindings: set-attribute= 782.401393791 runs/s
21632 median= 779.062978802 runs/s, stdev= 6.48250081621 runs/s, min= 777.642770352 runs/s, max= 796.019900498 runs/s
21633
21634 RESULT Bindings: set-attribute= 791.792516608 runs/s
21635 median= 791.556728232 runs/s, stdev= 6.49182980397 runs/s, min= 779.220779221 runs/s, max= 808.080808081 runs/s
21636
21637 * Bindings/set-attribute.html: Added.
21638
haraken@chromium.org2e9053c2012-05-17 11:37:28 +0000216392012-05-17 Kentaro Hara <haraken@chromium.org>
21640
haraken@chromium.org2b393aa2012-05-18 06:49:43 +000021641 [perf-test] Add a binding benchmark for div.getAttribute()
21642 https://bugs.webkit.org/show_bug.cgi?id=86814
21643
21644 Reviewed by Ryosuke Niwa.
21645
21646 We should remove Bindings/dom-attributes.html and instead add more
21647 reasonable micro benchmarks by classifying DOM binding call paths.
21648
21649 This patch adds a benchmark for div.getAttribute(). This benchmark
21650 covers 'getAttribute' in Dromaeo/dom-attr.html, and other DOM methods
21651 that return a String.
21652
21653 Test results in my Linux desktop:
21654
21655 RESULT Bindings: get-attribute= 250.088158538 runs/s
21656 median= 250.469728765 runs/s, stdev= 4.66551901315 runs/s, min= 240.673886883 runs/s, max= 256.739409499 runs/s
21657
21658 RESULT Bindings: get-attribute= 250.209764698 runs/s
21659 median= 250.626959986 runs/s, stdev= 4.12030002477 runs/s, min= 241.254523522 runs/s, max= 255.102040816 runs/s
21660
21661 RESULT Bindings: get-attribute= 248.907532887 runs/s
21662 median= 250.312891114 runs/s, stdev= 3.23173125874 runs/s, min= 240.673886883 runs/s, max= 251.572327044 runs/s
21663
21664 RESULT Bindings: get-attribute= 250.243680844 runs/s
21665 median= 250.783797637 runs/s, stdev= 4.19327170024 runs/s, min= 240.963855422 runs/s, max= 255.102040816 runs/s
21666
21667 RESULT Bindings: get-attribute= 245.329046608 runs/s
21668 median= 244.948040416 runs/s, stdev= 2.24314248534 runs/s, min= 240.384615385 runs/s, max= 248.756218905 runs/s
21669
21670 * Bindings/get-attribute.html: Added.
21671
216722012-05-17 Kentaro Hara <haraken@chromium.org>
21673
haraken@chromium.org8f8b4bf2012-05-18 06:29:59 +000021674 [perf-test] Add a binding benchmark for getElementById()
21675 https://bugs.webkit.org/show_bug.cgi?id=86808
21676
21677 Reviewed by Ryosuke Niwa.
21678
21679 Currently Bindings/dom-attributes.html is just a collection
21680 of random DOM attributes and methods. We should remove it and
21681 instead add more reasonable micro benchmarks by classifying
21682 DOM binding call paths.
21683
21684 This patch adds a benchmark for document.getElementById(),
21685 which covers other DOM methods that return a Node Object.
21686
21687 The reason why we want to add a benchmark for document.getElementById()
21688 in spite of the fact that Dromaeo/dom-query.html is already testing
21689 document.getElementById(), is that Dromaeo/dom-query.html outputs one
21690 result for several benchmarks (i.e. getElementById().nodeType,
21691 getElementsByTagName()[0].nodeType etc), and thus we cannot observe
21692 regression of getElementById() itself. (Catching regression of
21693 getElementById() would be critical.)
21694
21695 Test results in my Linux desktop:
21696
21697 RESULT Bindings: get-element-by-id= 300.933707795 runs/s
21698 median= 302.267002519 runs/s, stdev= 3.04954648504 runs/s, min= 295.930949445 runs/s, max= 305.34351145 runs/s
21699
21700 RESULT Bindings: get-element-by-id= 302.030324483 runs/s
21701 median= 302.267481977 runs/s, stdev= 1.78518068367 runs/s, min= 298.507462687 runs/s, max= 304.568527919 runs/s
21702
21703 RESULT Bindings: get-element-by-id= 301.993483538 runs/s
21704 median= 302.648171501 runs/s, stdev= 1.87604126626 runs/s, min= 296.662546354 runs/s, max= 304.568527919 runs/s
21705
21706 RESULT Bindings: get-element-by-id= 301.936607982 runs/s
21707 median= 302.45758701 runs/s, stdev= 1.88991087072 runs/s, min= 298.879202989 runs/s, max= 304.955527319 runs/s
21708
21709 RESULT Bindings: get-element-by-id= 301.952234563 runs/s
21710 median= 302.648171501 runs/s, stdev= 1.59929752614 runs/s, min= 299.625468165 runs/s, max= 304.568527919 runs/s
21711
21712 * Bindings/get-element-by-id.html: Added.
21713
217142012-05-17 Kentaro Hara <haraken@chromium.org>
21715
haraken@chromium.orgb45119a2012-05-18 06:03:56 +000021716 [perf-test] Add a benchmark for body.scrollTop
21717 https://bugs.webkit.org/show_bug.cgi?id=86806
21718
21719 Reviewed by Ryosuke Niwa.
21720
21721 Currently Bindings/dom-attributes.html is just a collection of random
21722 DOM attributes and methods. We should remove it and instead add more
21723 reasonable micro benchmarks by classifying DOM binding call paths.
21724
21725 This patch adds a benchmark for body.scrollTop, which covers other
21726 DOM attributes that return small integers.
21727
21728 (Note: Performance optimization for the benchmark will be coming soon.)
21729
21730 Test results in my Linux desktop:
21731
21732 RESULT Bindings: scroll-top= 209.410654239 runs/s
21733 median= 211.64021164 runs/s, stdev= 4.09958741195 runs/s, min= 201.005025126 runs/s, max= 212.483399734 runs/s
21734
21735 RESULT Bindings: scroll-top= 195.651111157 runs/s
21736 median= 196.319018405 runs/s, stdev= 1.77011627406 runs/s, min= 191.846522782 runs/s, max= 197.28729963 runs/s
21737 RESULT Bindings: scroll-top= 200.004907612 runs/s
21738 median= 201.511335013 runs/s, stdev= 3.27455403827 runs/s, min= 193.236714976 runs/s, max= 202.53164557 runs/s
21739
21740 RESULT Bindings: scroll-top= 209.582737512 runs/s
21741 median= 210.803689065 runs/s, stdev= 3.16769655464 runs/s, min= 203.045685279 runs/s, max= 211.920529801 runs/s
21742
21743 RESULT Bindings: scroll-top= 199.924607687 runs/s
21744 median= 201.13144338 runs/s, stdev= 3.11080503619 runs/s, min= 193.003618818 runs/s, max= 202.02020202 runs/s
21745
21746 * Bindings/scroll-top.html: Added.
21747
217482012-05-17 Kentaro Hara <haraken@chromium.org>
21749
haraken@chromium.org6609c262012-05-17 22:04:49 +000021750 [perf-test] Add a micro benchmark for div.firstChild getter for an undefined firstChild
21751 https://bugs.webkit.org/show_bug.cgi?id=86725
21752
21753 Reviewed by Ryosuke Niwa.
21754
21755 We are going to remove Bindings/dom-attributes.html and instead add more
21756 reasonable micro benchmarks by classifying DOM binding call paths.
21757
21758 In this bug, we add a micro benchmark for div.firstChild getter for an
21759 undefined firstChild. This benchmark covers other undefined DOM attributes
21760 that return a null.
21761
21762 (Note: In V8, div.firstChild for an undefined firstChild is currently slower
21763 than div.firstChild for a defined firstChild.)
21764
21765 Test results in my Linux desktop:
21766
21767 RESULT Bindings: undefined-first-child= 541.408311042 runs/s
21768 median= 541.205412054 runs/s, stdev= 1.29841219187 runs/s, min= 537.897310513 runs/s, max= 543.209876543 runs/s
21769
21770 RESULT Bindings: undefined-first-child= 541.00750695 runs/s
21771 median= 540.540540541 runs/s, stdev= 0.967521230965 runs/s, min= 539.215686275 runs/s, max= 543.209876543 runs/s
21772
21773 RESULT Bindings: undefined-first-child= 523.630714897 runs/s
21774 median= 523.560209424 runs/s, stdev= 1.01570919645 runs/s, min= 522.193211488 runs/s, max= 525.624178712 runs/s
21775
21776 RESULT Bindings: undefined-first-child= 553.077663588 runs/s
21777 median= 553.459119497 runs/s, stdev= 0.805697397863 runs/s, min= 551.378446115 runs/s, max= 554.156171285 runs/s
21778
21779 RESULT Bindings: undefined-first-child= 541.5401432 runs/s
21780 median= 541.538666618 runs/s, stdev= 0.954301364767 runs/s, min= 539.877300613 runs/s, max= 543.209876543 runs/s
21781
21782 * Bindings/undefined-first-child.html: Added.
21783
217842012-05-17 Kentaro Hara <haraken@chromium.org>
21785
haraken@chromium.org2e9053c2012-05-17 11:37:28 +000021786 [Performance test] Add a micro benchmark for div.firstChild getter
21787 https://bugs.webkit.org/show_bug.cgi?id=86582
21788
21789 Reviewed by Ryosuke Niwa.
21790
21791 We are going to remove Bindings/dom-attributes.html and instead add more
21792 reasonable micro benchmarks by classifying DOM binding call paths.
21793
21794 In this bug, we add a micro benchmark for div.firstChild getter.
21795 This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and
21796 'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes
21797 that return a Node object.
21798
21799 Multiple test results in my Linux desktop:
21800
21801 RESULT Bindings: first-child= 798.157160346 runs/s
21802 median= 798.004987531 runs/s, stdev= 1.52006063407 runs/s, min= 796.019900498 runs/s, max= 801.001251564 runs/s
21803 RESULT Bindings: first-child= 797.603608554 runs/s
21804 median= 797.872340426 runs/s, stdev= 2.2522621261 runs/s, min= 791.556728232 runs/s, max= 801.001251564 runs/s
21805 RESULT Bindings: first-child= 798.656295468 runs/s
21806 median= 798.004987531 runs/s, stdev= 1.79367478063 runs/s, min= 797.01120797 runs/s, max= 803.011292346 runs/s
21807 RESULT Bindings: first-child= 797.812784267 runs/s
21808 median= 798.004987531 runs/s, stdev= 2.31766523191 runs/s, min= 791.100123609 runs/s, max= 802.005012531 runs/s
21809 RESULT Bindings: first-child= 797.963311597 runs/s
21810 median= 798.004987531 runs/s, stdev= 2.53014907337 runs/s, min= 789.14919852 runs/s, max= 801.001251564 runs/s
21811
21812 * Bindings/first-child.html: Added.
21813
haraken@chromium.org67ad6ec2012-05-17 05:16:14 +0000218142012-05-16 Kentaro Hara <haraken@chromium.org>
21815
21816 [Performance test] Support "description" for PerfTestRunner.run and PerfTestRunner.runPerSecond
21817 https://bugs.webkit.org/show_bug.cgi?id=86696
21818
21819 Reviewed by Ryosuke Niwa.
21820
21821 We want to add some description for each PerfTestRunner.run and
21822 PerfTestRunner.runPerSecond, so that people can know what each
21823 run is testing.
21824
21825 Output example:
21826
21827 $ ./Tools/Scripts/run-perf-tests Bindings/first-child.html
21828 Running Bindings/first-child.html (1 of 1)
21829 DESCRIPTION: Benchmark for DOM attributes that return a Node object.
21830 RESULT Bindings: first-child= 788.359076534 runs/s
21831 median= 797.508097751 runs/s, stdev= 19.0972905207 runs/s, min= 746.666666667 runs/s, max= 801.001251564 runs/s
21832
21833 * resources/runner.js:
21834 (PerfTestRunner.logStatistics):
21835 (PerfTestRunner.printStatistics):
21836 (PerfTestRunner.runPerSecond):
21837
yurys@chromium.org0b0e62f2012-05-16 08:57:17 +0000218382012-05-16 Yury Semikhatsky <yurys@chromium.org>
21839
21840 Unreviewed. Fix heap profiler performance test after r117234.
21841
21842 * inspector/heap-snapshot.html:
21843
rniwa@webkit.org085ec822012-05-14 21:19:51 +0000218442012-05-14 Ryosuke Niwa <rniwa@webkit.org>
21845
21846 Convert CSS and Parser tests to runs/s tests
21847 https://bugs.webkit.org/show_bug.cgi?id=86399
21848
21849 Reviewed by Ojan Vafai.
21850
21851 Use runPerSecond instead of run to measure results in function calls per second (run/s) instead of time (ms).
21852 This allows us to continue measuring performance reliably even when WebKit's performance improves and results
21853 become too small for Date.now()'s precision (around 15 ms).
21854
21855 It should also reduce perf. bots cycle time for slower tests because we limit the number of function calls by time.
21856
21857 * CSS/CSSPropertySetterGetter.html:
21858 * CSS/CSSPropertyUpdateValue.html:
21859 * Parser/css-parser-yui.html:
21860 * Parser/simple-url.html:
21861 * Parser/tiny-innerHTML.html:
21862 * Parser/url-parser.html:
21863 * Parser/xml-parser.html:
21864
mitz@apple.com37c64ad2012-05-14 20:16:32 +0000218652012-05-14 Dan Bernstein <mitz@apple.com>
21866
21867 Add a line layout performance test
21868 https://bugs.webkit.org/show_bug.cgi?id=86216
21869
21870 Reviewed by Ryosuke Niwa.
21871
21872 * Layout/line-layout.html: Added.
21873
tony@chromium.org6d45c582012-05-14 19:28:47 +0000218742012-05-14 Tony Chang <tony@chromium.org>
21875
21876 Don't append log lines while perf tests are running.
21877 https://bugs.webkit.org/show_bug.cgi?id=86028
21878
21879 Reviewed by Ryosuke Niwa.
21880
21881 In some tests, the extra DOM nodes can cause the test timing to change.
21882 Avoid adding DOM nodes until the test is over. When running in a browser,
21883 we append nodes as we run so the user can have some feedback.
21884
21885 * resources/runner.js:
21886 (PerfTestRunner.log): Store the log lines in an array until the test is finished.
21887
rniwa@webkit.org90d5fd12012-05-14 18:59:03 +0000218882012-05-14 Ryosuke Niwa <rniwa@webkit.org>
21889
21890 Build fix. Don't adjust calls per iteration in the second run.
21891
21892 * resources/runner.js:
21893 (PerfTestRunner._perSecondRunner):
21894
rniwa@webkit.org1e6be682012-05-14 05:23:37 +0000218952012-05-13 Ryosuke Niwa <rniwa@webkit.org>
21896
21897 performance tests should be able to measure runs/sec rather than time
21898 https://bugs.webkit.org/show_bug.cgi?id=86021
21899
21900 Reviewed by Ojan Vafai.
21901
21902 Add PerfTestRunner.runPerSecond. It uses _runLoop but replaces _runner by _perSecondRunner
21903 to compute runs/s of runFunction.
21904
21905 When _perSecondRunner is called for the first time, i.e. _completedRuns is 0 (notice this is -1
21906 in regular run/_runner), it slowly increases the number of function calls to runFunction between
21907 time measurements in order to discount the time used by new Date() calls themselves until the
21908 total time spent reaches 100 milliseconds.
21909
21910 By default, runPerSecond runs the test for at least 750 milliseconds in each run, and executes
21911 21 runs, yielding the total run time of roughly 18 seconds. This is significantly faster than
21912 most of existing performance tests. Also see http://ejohn.org/blog/accuracy-of-javascript-time/.
21913
21914 Finally, refactored the existing methods of PerfTestRunner to allow "runs/s" unit and share code.
21915
21916 * Layout/flexbox-column-nowrap.html:
21917 * Layout/flexbox-column-wrap.html:
21918 * Layout/flexbox-row-nowrap.html:
21919 * Layout/flexbox-row-wrap.html:
21920 * resources/runner.js:
21921 (PerfTestRunner.computeStatistics): Takes unit.
21922 (PerfTestRunner.logStatistics): Ditto.
21923 (PerfTestRunner._runLoop):
21924 (PerfTestRunner._runner):
21925 (PerfTestRunner.runPerSecond): Added.
21926 (PerfTestRunner._perSecondRunner): Added. Called by _runLoop.
21927 (PerfTestRunner._perSecondRunnerIterator): Added.
21928
tony@chromium.orgb4056342012-05-09 22:45:20 +0000219292012-05-09 Tony Chang <tony@chromium.org>
21930
21931 add some basic perf-o-matic tests for flexbox
21932 https://bugs.webkit.org/show_bug.cgi?id=86017
21933
21934 Reviewed by Ryosuke Niwa.
21935
21936 Each of these tests take < 3s on my machine.
21937
21938 * Layout/flexbox-column-nowrap.html: Added.
21939 * Layout/flexbox-column-wrap.html: Added.
21940 * Layout/flexbox-row-nowrap.html: Added.
21941 * Layout/flexbox-row-wrap.html: Added.
21942
loislo@chromium.org5481ea42012-05-05 17:05:00 +0000219432012-05-05 Ilya Tikhonovsky <loislo@chromium.org>
21944
21945 Web Inspector: unreviewed followup fix for the performance test after r116218.
21946
21947 * inspector/heap-snapshot.html:
21948
tomz@codeaurora.orga0df5da2012-05-03 06:43:58 +0000219492012-05-02 Tom Zakrajsek <tomz@codeaurora.org>
21950
21951 Need tests for PerfTestRunner.computeStatistics
21952 https://bugs.webkit.org/show_bug.cgi?id=85410
21953
21954 Reviewed by Ryosuke Niwa.
21955
21956 * resources/runner.js:
21957
commit-queue@webkit.org33343bf2012-05-03 00:29:26 +0000219582012-05-02 Sheriff Bot <webkit.review.bot@gmail.com>
21959
21960 Unreviewed, rolling out r115905.
21961 http://trac.webkit.org/changeset/115905
21962 https://bugs.webkit.org/show_bug.cgi?id=85435
21963
21964 New computeStatistics test is failing on chromium ports
21965 (Requested by tomz on #webkit).
21966
21967 * resources/runner.js:
21968
tomz@codeaurora.orgc4bcb032012-05-02 23:08:48 +0000219692012-05-02 Tom Zakrajsek <tomz@codeaurora.org>
21970
21971 Need tests for PerfTestRunner.computeStatistics
21972 https://bugs.webkit.org/show_bug.cgi?id=85410
21973
21974 Reviewed by Ryosuke Niwa.
21975
21976 * resources/runner.js:
21977
tomz@codeaurora.orgc43aab32012-04-29 18:22:22 +0000219782012-04-29 Tom Zakrajsek <tomz@codeaurora.org>
21979
21980 PerfTestRunner.computeStatistics incorrectly calculates min, max and median
21981 https://bugs.webkit.org/show_bug.cgi?id=85111
21982
21983 Reviewed by Ryosuke Niwa.
21984
21985 The sort of the data input was being done alphabetically.
21986 So I provided a numeric compare function.
21987
21988 * resources/runner.js:
21989
loislo@chromium.org57d7cab2012-04-17 13:35:32 +0000219902012-04-17 Ilya Tikhonovsky <loislo@chromium.org>
21991
21992 Web Inspector: the fix for test after massive rename in r114271.
21993 https://bugs.webkit.org/show_bug.cgi?id=84147
21994
21995 Drive by fix. The test was renamed to heap-snapshot.html
21996
21997 Reviewed by Yury Semikhatsky.
21998
21999 * inspector/heap-snapshot.html: Renamed from PerformanceTests/inspector/detailed-heapshots-smoke-test.html.
22000
yurys@chromium.orgba710852012-04-16 17:23:18 +0000220012012-04-16 Yury Semikhatsky <yurys@chromium.org>
22002
22003 Web Inspector: rename heap profiler files and classes DetailedHeapshot* ->HeapSnapshot*
22004 https://bugs.webkit.org/show_bug.cgi?id=84038
22005
22006 A bunch of renames "detailed heapshot" -> "heap snapshot".
22007
22008 Reviewed by Pavel Feldman.
22009
22010 * inspector/detailed-heapshots-smoke-test.html:
22011
rniwa@webkit.org7dfcb2f2012-04-13 22:05:16 +0000220122012-04-13 Ryosuke Niwa <rniwa@webkit.org>
22013
22014 Fix skipped list.
22015
22016 * Skipped:
22017
rniwa@webkit.orga51c0b72012-04-13 18:16:26 +0000220182012-04-12 Ryosuke Niwa <rniwa@webkit.org>
22019
22020 Enable SVG page loading performance tests
22021 https://bugs.webkit.org/show_bug.cgi?id=83861
22022
22023 Reviewed by Adam Barth.
22024
22025 Unskip PageLoad directory and skip tests that load too fast (less than 100ms) and are unstable,
22026 and the ones that take too long to load (more than 20s).
22027
22028 * Skipped:
22029
loislo@chromium.orge6656fe2012-04-04 15:49:59 +0000220302012-04-04 Ilya Tikhonovsky <loislo@chromium.org>
22031
loislo@chromium.orge882f882012-04-04 16:38:12 +000022032 Web Inspector: Unreviewed. temporary disable broken inspector tests.
22033
22034 * inspector/first-open-scripts.html.broken: Renamed from PerformanceTests/inspector/first-open-scripts.html.
22035 * inspector/network-append-30-requests.html.broken: Renamed from PerformanceTests/inspector/network-append-30-requests.html.
22036 * inspector/show-panel.html.broken: Renamed from PerformanceTests/inspector/show-panel.html.
22037
220382012-04-04 Ilya Tikhonovsky <loislo@chromium.org>
22039
loislo@chromium.orge6656fe2012-04-04 15:49:59 +000022040 Web Inspector: linearise aggregate's retaining size calculation.
22041 https://bugs.webkit.org/show_bug.cgi?id=83125
22042
22043 This version is twice as fast as the original and it is non-recursive.
22044
22045 Reviewed by Yury Semikhatsky.
22046
22047 * inspector/detailed-heapshots-smoke-test.html:
22048
commit-queue@webkit.org66f25592012-03-30 17:17:03 +0000220492012-03-30 David Barr <davidbarr@chromium.org>
22050
22051 Split up top-level .gitignore and .gitattributes
22052 https://bugs.webkit.org/show_bug.cgi?id=82687
22053
22054 Reviewed by Tor Arne Vestbø.
22055
22056 * .gitattributes: Added.
22057
yurys@chromium.org418589692012-03-29 12:38:43 +0000220582012-03-28 Yury Semikhatsky <yurys@chromium.org>
22059
22060 Web Inspector: switch heap profiler front-end to separate storage of nodes and edges
22061 https://bugs.webkit.org/show_bug.cgi?id=82453
22062
22063 Updated heap profiler performance test after heap profiler front-end
22064 changes.
22065
22066 Reviewed by Pavel Feldman.
22067
22068 * inspector/detailed-heapshots-smoke-test.html:
22069
alexis.menard@openbossa.org68782992012-03-27 11:57:05 +0000220702012-03-27 Alexis Menard <alexis.menard@openbossa.org>
22071
22072 Add a perf test which updates the value of an already declared CSS property.
22073 https://bugs.webkit.org/show_bug.cgi?id=82321
22074
22075 Reviewed by Andreas Kling.
22076
22077 This benchmark update CSS existing properties of the style from JS.
22078
22079 * CSS/CSSPropertyUpdateValue.html: Added.
22080
haraken@chromium.org81f88712012-03-16 03:13:28 +0000220812012-03-15 Kentaro Hara <haraken@chromium.org>
22082
22083 [PerformanceTests] run-perf-tests should output correct units
22084 https://bugs.webkit.org/show_bug.cgi?id=78303
22085
22086 Reviewed by Ryosuke Niwa.
22087
22088 Previously run-perf-tests just supported "ms" for units.
22089 Consequently, Dromaeo perf tests had been reporting runs/s as "ms".
22090 This patch fixes run-perf-tests so that they can support custom units.
22091 The default unit is "ms".
22092
22093 The test result looks like this:
22094
22095 $ ./Tools/Scripts/run-perf-tests Dromaeo/dom-attr.html
22096 RESULT Dromaeo: dom-attr= 6465.9525483 runs/s
22097 median= 0.0 runs/s, stdev= 24.2983433436 runs/s, min= 6435.87649402 runs/s, max= 6515.63693392 runs/s
22098
22099 * Dromaeo/resources/dromaeorunner.js:
22100 (.):
22101 * resources/runner.js:
22102 (PerfTestRunner.computeStatistics):
22103 (PerfTestRunner.printStatistics):
22104
alexis.menard@openbossa.orgefde52b2012-03-15 18:24:01 +0000221052012-03-15 Alexis Menard <alexis.menard@openbossa.org>
22106
22107 Fix the test failing with run-perf-tests.
22108
22109 Rubber stamped by Ryosuke Niwa.
22110
22111 * CSS/CSSPropertySetterGetter.html:
22112
alexis.menard@openbossa.org913fb1b2012-03-15 08:57:19 +0000221132012-03-14 Alexis Menard <alexis.menard@openbossa.org>
22114
22115 Add a new perf test to benchmark setting and reading CSS properties from JS.
22116 https://bugs.webkit.org/show_bug.cgi?id=81155
22117
22118 Reviewed by Ryosuke Niwa.
22119
22120 This benchmark read and set CSS properties from JS. It contains a list
22121 of common CSS properties.
22122
22123 * CSS/CSSPropertySetterGetter.html: Added.
22124
achicu@adobe.com60c7bd12012-03-15 01:07:27 +0000221252012-03-14 Alexandru Chiculita <achicu@adobe.com>
22126
22127 Layout/floats.html should be runnable by run-perf-tests
22128 https://bugs.webkit.org/show_bug.cgi?id=77051
22129
22130 Reviewed by Ryosuke Niwa.
22131
22132 I've split Layout/floats.html into multiple tests for each button in the original manual test.
22133 Some tests take longer to run and I've changed the number of iterations, so that each tests finishes under 30s per run.
22134
22135 * DOM/resources/dom-perf.js:
22136 * Layout/floats.html: Removed.
22137 * Layout/floats_100_100.html: Added.
22138 * Layout/floats_100_100_nested.html: Added.
22139 * Layout/floats_20_100.html: Added.
22140 * Layout/floats_20_100_nested.html: Added.
22141 * Layout/floats_2_100.html: Added.
22142 * Layout/floats_2_100_nested.html: Added.
22143 * Layout/floats_50_100.html: Added.
22144 * Layout/floats_50_100_nested.html: Added.
22145 * Layout/resources/floats.css: Added.
22146 (.container):
22147 (.float):
22148 (.big):
22149 (.float-end):
22150 * Layout/resources/floats.js: Added.
22151 (.):
22152 * Skipped:
22153 * resources/runner.js:
22154 (PerfTestRunner.resetRandomSeed):
22155 (PerfTestRunner.random):
22156 (Math.random):
22157 Moved the Math.random to runner.js to be used by all tests.
22158 Added resetRandomSeed to bring the randomizer back to initial seed.
22159 It is useful to get the same results at every run and minimize the
22160 differences between runs.
22161
commit-queue@webkit.orgf26b3de2012-03-14 21:04:37 +0000221622012-03-14 Sheriff Bot <webkit.review.bot@gmail.com>
22163
22164 Unreviewed, rolling out r110559.
22165 http://trac.webkit.org/changeset/110559
22166 https://bugs.webkit.org/show_bug.cgi?id=81142
22167
22168 Broke Dromaeo tests (Requested by rniwa on #webkit).
22169
22170 * Dromaeo/resources/dromaeorunner.js:
22171 (.):
22172
haraken@chromium.org4b745ba2012-03-13 14:09:46 +0000221732012-03-13 Kentaro Hara <haraken@chromium.org>
22174
22175 Dromaeo perf-tests results are wrong
22176 https://bugs.webkit.org/show_bug.cgi?id=80974
22177
22178 Reviewed by Hajime Morita.
22179
22180 Dromaeo perf-tests had reported the sum of runs/seconds as "ms".
22181 This patch fixes them to report the execution time per run.
22182
22183 At present, they report "0.0ms" for "stdev". This is because
22184 dromaeorunner.js can just know stdev of "runs/seconds"
22185 and cannot calculate stdev of "ms" from that. We can fix it later.
22186
22187 * Dromaeo/resources/dromaeorunner.js:
22188 (.):
22189
loislo@chromium.org80d2b6b2012-03-12 12:31:41 +0000221902012-03-12 Ilya Tikhonovsky <loislo@chromium.org>
22191
22192 Web Inspector: chromium: increase heap snapshot performance coverage.
22193 https://bugs.webkit.org/show_bug.cgi?id=80829
22194
22195 Reviewed by Yury Semikhatsky.
22196
22197 * inspector/detailed-heapshots-smoke-test.html:
22198 * inspector/performance-test.js:
22199 (initialize_TimeTracker.InspectorTest.measureFunction):
22200
haraken@chromium.orgada071d2012-03-07 04:56:37 +0000222012012-03-06 Kentaro Hara <haraken@chromium.org>
22202
22203 [Perf tests] Reduce the number of loops in dom-attributes.html
22204 https://bugs.webkit.org/show_bug.cgi?id=80077
22205
22206 Reviewed by Ryosuke Niwa.
22207
22208 dom-attributes.html takes 100~ seconds in the perf bots. This patch reduces
22209 the time by reducing the number of loops.
22210
22211 This is just a temporary fix. After more detailed investigation, I will reduce
22212 the number of tests in dom-attributes.html, and revert back the number of loops
22213 to guarantee the reliability of the perf test results.
22214
22215 * Bindings/dom-attributes.html:
22216
loislo@chromium.orgcadcd652012-03-06 13:41:21 +0000222172012-03-06 Ilya Tikhonovsky <loislo@chromium.org>
22218
22219 Web Inspector: Heap Snapshot test: split overal time metric into separate metrics.
22220 https://bugs.webkit.org/show_bug.cgi?id=80409
22221
22222 Reviewed by Yury Semikhatsky.
22223
22224 * inspector/detailed-heapshots-smoke-test.html:
22225
loislo@chromium.orgf1cd2462012-03-05 15:24:45 +0000222262012-03-05 Ilya Tikhonovsky <loislo@chromium.org>
22227
22228 Web Inspector: [chromium] introduce HeapSnapshot performance test.
22229 https://bugs.webkit.org/show_bug.cgi?id=80280
22230
22231 Reviewed by Pavel Feldman.
22232
22233 * inspector/detailed-heapshots-smoke-test.html: Added.
22234
rniwa@webkit.orgd625fdf2012-03-02 22:25:27 +0000222352012-03-01 Ryosuke Niwa <rniwa@webkit.org>
22236
22237 DOM tests take too long to run
22238 https://bugs.webkit.org/show_bug.cgi?id=80082
22239
22240 Reviewed by Eric Seidel.
22241
22242 Reduce benchmark.timeToRun from 500ms to 100ms. Doesn't seem to affect test results much
22243 (except DOM/DOMTable.html) but significantly reduces the runtime of tests.
22244
22245 * DOM/resources/dom-perf.js:
22246 (BenchmarkSuite.prototype.RunSingle):
22247
haraken@chromium.org43a93dc2012-02-27 01:48:01 +0000222482012-02-26 Kentaro Hara <haraken@chromium.org>
22249
22250 [Performance Tests] [Chromium] Bindings/dom-attributes.html is timing out
22251 https://bugs.webkit.org/show_bug.cgi?id=79593
22252
22253 Reviewed by Adam Barth.
22254
22255 This patch halves the execution time of Bindings/dom-attributes.html
22256 in order to avoid timeout in Chromium. The reason for the timeout is that
22257 V8 DOM bindings are too much slower than JSC bindings.
22258 I am a bit afraid that this patch will reduce the accuracy of the
22259 perf test results, but it would make sense to reduce the execution time
22260 until we fix the performance issue in V8 DOM bindings.
22261
22262 * Bindings/dom-attributes.html:
22263
rniwa@webkit.org7281a122012-02-24 22:15:49 +0000222642012-02-24 Ryosuke Niwa <rniwa@webkit.org>
22265
22266 Rename dom*_*attributes.html to dom*-*attributes.html to follow the WebKit convention.
22267
22268 * Bindings/dom-attributes.html: Copied from PerformanceTests/Bindings/dom_attributes.html.
22269 * Bindings/dom_attributes.html: Removed.
22270
haraken@chromium.org0b2c2752012-02-24 08:55:59 +0000222712012-02-24 Kentaro Hara <haraken@chromium.org>
22272
haraken@chromium.org357cc952012-02-24 14:03:28 +000022273 Unreviewed, rolling out r108477.
22274 http://trac.webkit.org/changeset/108477
22275 https://bugs.webkit.org/show_bug.cgi?id=79209
22276
22277 The perf tests committed in r108748 covers the perf tests
22278 committed in r108477. So I'll roll out r108477.
22279
22280 * Bindings/dom_attributes_id_getter.html: Removed.
22281 * Bindings/dom_attributes_id_setter.html: Removed.
22282 * Bindings/resources/dom_attributes_common.js: Removed.
22283
222842012-02-24 Kentaro Hara <haraken@chromium.org>
22285
haraken@chromium.org0b2c2752012-02-24 08:55:59 +000022286 Add performance tests for DOM attribute getters and setters
22287 https://bugs.webkit.org/show_bug.cgi?id=79208
22288
22289 Reviewed by Ryosuke Niwa.
22290
22291 This patch adds performance micro-benchmarks for DOM attribute
22292 getters and setters. We selected DOM attributes from HTMLElement,
22293 Element and Node which will most impact on the DOM performance
22294 in the real Web and which have different call-paths from another
22295 DOM attribute.
22296
22297 The perf test result in my local Chromium/Linux environment is as follows:
22298 median= 14967.0 ms, stdev= 85.2385476178 ms, min= 14861.0 ms, max= 15155.0 ms
22299
22300 If we run the test with DumpRenderTree, we can get the following test results:
22301 Info: [HTMLElement.id] avg=65.76ms, median=65.00ms, stdev=2.14ms, min=63, max=70
22302 Info: [HTMLElement.title] avg=64.05ms, median=63.00ms, stdev=1.50ms, min=63, max=67
22303 Info: [HTMLElement.lang] avg=64.19ms, median=63.00ms, stdev=1.82ms, min=62, max=67
22304 Info: [HTMLElement.dir] avg=64.10ms, median=63.00ms, stdev=1.72ms, min=62, max=68
22305 Info: [HTMLElement.className] avg=63.33ms, median=63.00ms, stdev=0.89ms, min=63, max=67
22306 Info: [HTMLElement.classList] avg=1946.00ms, median=1945.00ms, stdev=38.22ms, min=1921, max=2110
22307 Info: [HTMLElement.tabIndex] avg=83.52ms, median=80.00ms, stdev=6.00ms, min=79, max=94
22308 Info: [HTMLElement.draggable] avg=78.14ms, median=81.00ms, stdev=3.51ms, min=74, max=82
22309 Info: [HTMLElement.webkitdropzone] avg=64.33ms, median=63.00ms, stdev=1.98ms, min=63, max=68
22310 Info: [HTMLElement.hidden] avg=65.57ms, median=64.00ms, stdev=3.27ms, min=63, max=71
22311 Info: [HTMLElement.accessKey] avg=64.43ms, median=63.00ms, stdev=2.11ms, min=62, max=68
22312 Info: [HTMLElement.children] avg=130.76ms, median=128.00ms, stdev=9.75ms, min=109, max=143
22313 Info: [HTMLElement.isContentEditable] avg=74.29ms, median=75.00ms, stdev=2.00ms, min=71, max=77
22314 Info: [HTMLElement.spellcheck] avg=79.52ms, median=80.00ms, stdev=2.52ms, min=76, max=82
22315 Info: [HTMLElement.innerHTML] avg=279.05ms, median=279.00ms, stdev=1.96ms, min=276, max=283
22316 Info: [HTMLElement.innerText] avg=204.14ms, median=203.00ms, stdev=2.95ms, min=200, max=210
22317 Info: [HTMLElement.outerHTML] avg=1544.10ms, median=1546.00ms, stdev=15.56ms, min=1514, max=1568
22318 Info: [HTMLElement.outerText] avg=216.05ms, median=207.00ms, stdev=18.19ms, min=201, max=247
22319 Info: [HTMLElement.contentEditable] avg=334.24ms, median=323.00ms, stdev=36.06ms, min=318, max=446
22320 Info: [HTMLElement.id="foo"] avg=53.19ms, median=53.00ms, stdev=1.76ms, min=52, max=58
22321 Info: [HTMLElement.title="foo"] avg=63.14ms, median=63.00ms, stdev=0.35ms, min=63, max=64
22322 Info: [HTMLElement.lang="foo"] avg=60.86ms, median=61.00ms, stdev=0.56ms, min=60, max=62
22323 Info: [HTMLElement.dir="foo"] avg=53.57ms, median=54.00ms, stdev=0.58ms, min=53, max=55
22324 Info: [HTMLElement.className="foo"] avg=64.52ms, median=64.00ms, stdev=0.91ms, min=63, max=66
22325 Info: [HTMLElement.tabIndex="foo"] avg=367.86ms, median=369.00ms, stdev=8.06ms, min=352, max=380
22326 Info: [HTMLElement.draggable="foo"] avg=79.43ms, median=79.00ms, stdev=0.58ms, min=79, max=81
22327 Info: [HTMLElement.webkitdropzone="foo"] avg=62.14ms, median=62.00ms, stdev=0.35ms, min=62, max=63
22328 Info: [HTMLElement.hidden="foo"] avg=61.67ms, median=62.00ms, stdev=0.71ms, min=61, max=64
22329 Info: [HTMLElement.accessKey="foo"] avg=61.86ms, median=62.00ms, stdev=0.56ms, min=61, max=63
22330 Info: [HTMLElement.spellcheck="foo"] avg=79.57ms, median=80.00ms, stdev=0.58ms, min=78, max=80
22331 Info: [HTMLElement.innerHTML="foo"] avg=1176.67ms, median=1169.00ms, stdev=26.60ms, min=1146, max=1246
22332 Info: [HTMLElement.innerText="foo"] avg=51.62ms, median=52.00ms, stdev=0.72ms, min=50, max=53
22333 Info: [Element.tagName] avg=79.52ms, median=80.00ms, stdev=1.05ms, min=78, max=81
22334 Info: [Element.style] avg=126.19ms, median=126.00ms, stdev=10.40ms, min=104, max=161
22335 Info: [Element.offsetLeft] avg=98.95ms, median=104.00ms, stdev=4.01ms, min=100, max=99
22336 Info: [Element.clientLeft] avg=98.33ms, median=102.00ms, stdev=2.59ms, min=100, max=99
22337 Info: [Element.scrollLeft] avg=103.29ms, median=96.00ms, stdev=15.63ms, min=100, max=97
22338 Info: [Element.dataset] avg=2448.62ms, median=2441.00ms, stdev=20.43ms, min=2426, max=2503
22339 Info: [Element.firstElementChild] avg=58.71ms, median=58.00ms, stdev=2.37ms, min=57, max=65
22340 Info: [Element.lastElementChild] avg=56.33ms, median=55.00ms, stdev=1.83ms, min=54, max=59
22341 Info: [Element.previousElementSibling] avg=52.95ms, median=52.00ms, stdev=1.70ms, min=52, max=57
22342 Info: [Element.nextElementSibling] avg=58.48ms, median=58.00ms, stdev=1.79ms, min=57, max=63
22343 Info: [Element.childElementCount] avg=64.57ms, median=64.00ms, stdev=1.81ms, min=63, max=71
22344 Info: [Element.onload] avg=98.38ms, median=98.00ms, stdev=0.49ms, min=98, max=99
22345 Info: [Element.scrollLeft="foo"] avg=95.24ms, median=95.00ms, stdev=0.92ms, min=94, max=98
22346 Info: [Element.onload="foo"] avg=67.14ms, median=67.00ms, stdev=0.56ms, min=66, max=68
22347 Info: [Node.nodeName] avg=76.29ms, median=76.00ms, stdev=0.63ms, min=75, max=77
22348 Info: [Node.nodeType] avg=53.05ms, median=52.00ms, stdev=2.61ms, min=52, max=61
22349 Info: [Node.parentNode] avg=53.52ms, median=53.00ms, stdev=1.22ms, min=52, max=56
22350 Info: [Node.childNodes] avg=118.33ms, median=123.00ms, stdev=8.85ms, min=107, max=129
22351 Info: [Node.firstChild] avg=53.62ms, median=53.00ms, stdev=1.13ms, min=51, max=55
22352 Info: [Node.lastChild] avg=53.14ms, median=53.00ms, stdev=1.21ms, min=52, max=55
22353 Info: [Node.previousSibling] avg=51.86ms, median=51.00ms, stdev=1.55ms, min=50, max=54
22354 Info: [Node.nextSibling] avg=52.86ms, median=54.00ms, stdev=1.81ms, min=50, max=55
22355 Info: [Node.attributes] avg=2027.71ms, median=2026.00ms, stdev=10.48ms, min=2010, max=2051
22356 Info: [Node.ownerDocument] avg=152.14ms, median=152.00ms, stdev=1.73ms, min=149, max=155
22357 Info: [Node.namespaceURI] avg=60.86ms, median=59.00ms, stdev=3.85ms, min=56, max=66
22358 Info: [Node.localName] avg=60.00ms, median=59.00ms, stdev=2.71ms, min=57, max=66
22359 Info: [Node.baseURI] avg=671.10ms, median=668.00ms, stdev=10.66ms, min=659, max=706
22360 Info: [Node.parentElement] avg=55.05ms, median=56.00ms, stdev=2.15ms, min=52, max=58
22361 Info: [Node.nodeValue] avg=61.24ms, median=60.00ms, stdev=2.56ms, min=59, max=68
22362 Info: [Node.prefix] avg=60.90ms, median=58.00ms, stdev=4.26ms, min=57, max=68
22363 Info: [Node.textContent] avg=149.71ms, median=149.00ms, stdev=1.12ms, min=148, max=152
22364 Info: [Node.nodeValue="foo"] avg=23.62ms, median=23.00ms, stdev=0.72ms, min=23, max=25
22365 Info: [Node.prefix="foo"] avg=49.57ms, median=49.00ms, stdev=0.73ms, min=49, max=51
22366 Info: [Node.textContent="foo"] avg=145.81ms, median=140.00ms, stdev=17.43ms, min=138, max=199
22367
22368 * Bindings/dom_attributes.html: Added.
22369 * resources/runner.js:
22370 (PerfTestRunner.info):
22371
haraken@chromium.org3902e732012-02-22 11:21:01 +0000223722012-02-22 Kentaro Hara <haraken@chromium.org>
22373
22374 Add performance tests for the Element.id getter and setter
22375 https://bugs.webkit.org/show_bug.cgi?id=79209
22376
22377 Reviewed by Adam Barth.
22378
22379 This patch adds performance tests for the Element.id getter and setter.
22380
22381 The results of 10 runs in my local Chromium/Linux are as follows:
22382
22383 dom_attributes_id_getter.html:
22384 median= 92.0 ms, stdev= 1.65151445649 ms, min= 89.0 ms, max= 96.0 ms
22385 median= 87.5 ms, stdev= 1.84390889146 ms, min= 85.0 ms, max= 92.0 ms
22386 median= 94.0 ms, stdev= 1.46543508898 ms, min= 90.0 ms, max= 95.0 ms
22387 median= 86.0 ms, stdev= 1.66958078571 ms, min= 84.0 ms, max= 91.0 ms
22388 median= 94.0 ms, stdev= 2.25610283454 ms, min= 103.0 ms, max= 98.0 ms
22389 median= 86.0 ms, stdev= 1.49666295471 ms, min= 84.0 ms, max= 91.0 ms
22390 median= 86.0 ms, stdev= 1.5321553446 ms, min= 84.0 ms, max= 90.0 ms
22391 median= 86.0 ms, stdev= 2.20227155455 ms, min= 84.0 ms, max= 94.0 ms
22392 median= 96.0 ms, stdev= 1.74570902501 ms, min= 101.0 ms, max= 99.0 ms
22393 median= 86.0 ms, stdev= 1.63935963108 ms, min= 84.0 ms, max= 90.0 ms
22394 median= 94.0 ms, stdev= 1.49248115566 ms, min= 90.0 ms, max= 95.0 ms
22395 median= 88.0 ms, stdev= 5.20192272146 ms, min= 84.0 ms, max= 98.0 ms
22396 median= 86.0 ms, stdev= 1.41067359797 ms, min= 84.0 ms, max= 89.0 ms
22397 median= 86.0 ms, stdev= 1.48660687473 ms, min= 84.0 ms, max= 89.0 ms
22398 median= 94.0 ms, stdev= 1.58113883008 ms, min= 93.0 ms, max= 97.0 ms
22399 median= 86.0 ms, stdev= 1.95959179423 ms, min= 84.0 ms, max= 93.0 ms
22400 median= 86.0 ms, stdev= 1.8547236991 ms, min= 84.0 ms, max= 92.0 ms
22401 median= 86.0 ms, stdev= 1.39283882772 ms, min= 84.0 ms, max= 89.0 ms
22402 median= 88.0 ms, stdev= 1.48660687473 ms, min= 85.0 ms, max= 90.0 ms
22403 median= 86.5 ms, stdev= 2.3 ms, min= 84.0 ms, max= 93.0 ms
22404
22405 dom_attributes_id_setter.html:
22406 median= 123.0 ms, stdev= 2.06397674406 ms, min= 119.0 ms, max= 128.0 ms
22407 median= 119.0 ms, stdev= 1.92028643697 ms, min= 117.0 ms, max= 123.0 ms
22408 median= 121.0 ms, stdev= 1.8781639971 ms, min= 118.0 ms, max= 123.0 ms
22409 median= 123.0 ms, stdev= 2.21585198062 ms, min= 119.0 ms, max= 130.0 ms
22410 median= 124.5 ms, stdev= 2.36378933071 ms, min= 119.0 ms, max= 129.0 ms
22411 median= 122.0 ms, stdev= 2.4474476501 ms, min= 118.0 ms, max= 128.0 ms
22412 median= 123.0 ms, stdev= 1.76351920885 ms, min= 118.0 ms, max= 125.0 ms
22413 median= 119.0 ms, stdev= 1.79652442232 ms, min= 117.0 ms, max= 125.0 ms
22414 median= 121.0 ms, stdev= 1.49916643506 ms, min= 119.0 ms, max= 123.0 ms
22415 median= 119.5 ms, stdev= 1.85135085816 ms, min= 117.0 ms, max= 125.0 ms
22416 median= 124.0 ms, stdev= 1.43090880213 ms, min= 120.0 ms, max= 124.0 ms
22417 median= 122.0 ms, stdev= 1.45859521458 ms, min= 118.0 ms, max= 123.0 ms
22418 median= 123.0 ms, stdev= 1.50332963784 ms, min= 120.0 ms, max= 124.0 ms
22419 median= 123.0 ms, stdev= 1.3638181697 ms, min= 120.0 ms, max= 125.0 ms
22420 median= 119.0 ms, stdev= 1.43527000944 ms, min= 117.0 ms, max= 121.0 ms
22421 median= 122.5 ms, stdev= 1.71682847134 ms, min= 118.0 ms, max= 124.0 ms
22422 median= 121.0 ms, stdev= 1.44481832768 ms, min= 118.0 ms, max= 123.0 ms
22423 median= 120.0 ms, stdev= 1.40978721799 ms, min= 117.0 ms, max= 122.0 ms
22424 median= 122.0 ms, stdev= 1.68522995464 ms, min= 119.0 ms, max= 125.0 ms
22425 median= 122.0 ms, stdev= 1.55804364509 ms, min= 118.0 ms, max= 123.0 ms
22426
22427
22428 * Bindings/dom_attributes_id_getter.html: Added.
22429 * Bindings/dom_attributes_id_setter.html: Added.
22430 * Bindings/resources/dom_attributes_common.js: Added.
22431
alexis.menard@openbossa.org6265b592012-02-16 20:14:38 +0000224322012-02-16 Alexis Menard <alexis.menard@openbossa.org>
22433
22434 Add a perf test for the CSS parser.
22435 https://bugs.webkit.org/show_bug.cgi?id=78114
22436
22437 Reviewed by Ryosuke Niwa.
22438
22439 Add a perf test for the CSS parser. It load a big CSS chunk
22440 which contains some snippets of the YUI library from Yahoo!.
22441
22442 * Parser/css-parser-yui.html: Added.
22443
commit-queue@webkit.org7fde2682012-02-09 07:14:24 +0000224442012-02-08 Hajime Morrita <morrita@chromium.org>
22445
22446 [PerformanceTests] sunspider-crypto-md5.html and sunspider-crypto-sha1.html are timing out on cr-mac perf bot
22447 https://bugs.webkit.org/show_bug.cgi?id=78174
22448
22449 Reviewed by Ryosuke Niwa.
22450
22451 Pulled back removed files.
22452
22453 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html: Added.
22454 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html: Added.
22455
morrita@google.comaa55f3f2012-02-06 23:44:33 +0000224562012-02-02 Hajime Morrita <morrita@chromium.org>
22457
22458 [PerformanceTests] Each Dromaeo test needs its landing html.
22459 https://bugs.webkit.org/show_bug.cgi?id=77504
22460
22461 Reviewed by Ryosuke Niwa.
22462
22463 - Added landing pages for each test which are listed in MANIFEST.json
22464 - Removed some tests which depends on the library whose license is incompatible to WebKit.
22465 - Added local copy of corresponding library. And replace the references to the remote sources
22466 to the local copies.
22467 - Removed old library files under Dromaeo/resources/dromaeo/web/lib/.
22468 - Skipped Sunsupier and v8 test. Such JS centric test should have its own test instead of
22469 running as a part of Dromaeo.
22470
22471 * Dromaeo/cssquery-dojo.html: Added.
22472 * Dromaeo/cssquery-jquery.html: Added.
22473 * Dromaeo/cssquery-prototype.html: Added.
22474 * Dromaeo/dom-attr.html: Added.
22475 * Dromaeo/dom-modify.html: Added.
22476 * Dromaeo/dom-traverse.html: Added.
22477 * Dromaeo/dromaeo-3d-cube.html: Added.
22478 * Dromaeo/dromaeo-core-eval.html: Added.
22479 * Dromaeo/dromaeo-object-array.html: Added.
22480 * Dromaeo/dromaeo-object-regexp.html: Added.
22481 * Dromaeo/dromaeo-object-string.html: Added.
22482 * Dromaeo/dromaeo-string-base64.html: Added.
22483 * Dromaeo/jslib-attr-jquery.html: Added.
22484 * Dromaeo/jslib-attr-prototype.html: Added.
22485 * Dromaeo/jslib-event-jquery.html: Added.
22486 * Dromaeo/jslib-event-prototype.html: Added.
22487 * Dromaeo/jslib-modify-jquery.html: Added.
22488 * Dromaeo/jslib-modify-prototype.html: Added.
22489 * Dromaeo/jslib-style-jquery.html: Added.
22490 * Dromaeo/jslib-style-prototype.html: Added.
22491 * Dromaeo/jslib-traverse-jquery.html: Added.
22492 * Dromaeo/jslib-traverse-prototype.html: Added.
22493 * Dromaeo/resources/dromaeo/web/lib/dojo.js: Removed.
22494 * Dromaeo/resources/dromaeo/web/lib/dojo-1.6.1.js: Added.
22495 * Dromaeo/resources/dromaeo/web/lib/jquery.js: Removed.
22496 * Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js: Added.
22497 * Dromaeo/resources/dromaeo/web/lib/mootools.js: Removed.
22498 * Dromaeo/resources/dromaeo/web/lib/prototype.js: Removed.
22499 * Dromaeo/resources/dromaeo/web/lib/prototype-1.7.js: Added.
22500 * Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html:
22501 * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
22502 * Dromaeo/resources/dromaeo/web/tests/cssquery-mootools.html: Removed.
22503 * Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html:
22504 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
22505 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html:
22506 * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
22507 * Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html:
22508 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
22509 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html:
22510 * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
22511 * Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html:
22512 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
22513 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html:
22514 * Dromaeo/sunspider-3d-morph.html: Added.
22515 * Dromaeo/sunspider-3d-raytrace.html: Added.
22516 * Dromaeo/sunspider-access-binary-trees.html: Added.
22517 * Dromaeo/sunspider-access-fannkuch.html: Added.
22518 * Dromaeo/sunspider-access-nbody.html: Added.
22519 * Dromaeo/sunspider-access-nsieve.html: Added.
22520 * Dromaeo/sunspider-bitops-3bit-bits-in-byte.html: Added.
22521 * Dromaeo/sunspider-bitops-bits-in-byte.html: Added.
22522 * Dromaeo/sunspider-bitops-bitwise-and.html: Added.
22523 * Dromaeo/sunspider-bitops-nsieve-bits.html: Added.
22524 * Dromaeo/sunspider-controlflow-recursive.html: Added.
22525 * Dromaeo/sunspider-crypto-aes.html: Added.
22526 * Dromaeo/sunspider-crypto-md5.html: Added.
22527 * Dromaeo/sunspider-crypto-sha1.html: Added.
22528 * Dromaeo/sunspider-date-format-tofte.html: Added.
22529 * Dromaeo/sunspider-date-format-xparb.html: Added.
22530 * Dromaeo/sunspider-math-cordic.html: Added.
22531 * Dromaeo/sunspider-math-partial-sums.html: Added.
22532 * Dromaeo/sunspider-math-spectral-norm.html: Added.
22533 * Dromaeo/sunspider-regexp-dna.html: Added.
22534 * Dromaeo/sunspider-string-fasta.html: Added.
22535 * Dromaeo/sunspider-string-tagcloud.html: Added.
22536 * Dromaeo/sunspider-string-unpack-code.html: Added.
22537 * Dromaeo/sunspider-string-validate-input.html: Added.
22538 * Dromaeo/v8-crypto.html: Added.
22539 * Dromaeo/v8-deltablue.html: Added.
22540 * Dromaeo/v8-earley-boyer.html: Added.
22541 * Dromaeo/v8-raytrace.html: Added.
22542 * Dromaeo/v8-richards.html: Added.
22543 * Skipped:
22544
rniwa@webkit.org1b56b052012-02-02 21:03:42 +0000225452012-02-02 Sheriff Bot <webkit.review.bot@gmail.com>
22546
22547 Unreviewed, rolling out r106543.
22548 http://trac.webkit.org/changeset/106543
22549 https://bugs.webkit.org/show_bug.cgi?id=77671
22550
22551 Made tests less stable (Requested by rniwa on #webkit).
22552
22553 * resources/init.html: Removed.
22554
rniwa@webkit.org412ac4b2012-02-02 10:24:29 +0000225552012-02-02 Ryosuke Niwa <rniwa@webkit.org>
22556
22557 [PerformanceTests] tests have dependencies
22558 https://bugs.webkit.org/show_bug.cgi?id=77506
22559
22560 Reviewed by Hajime Morita.
22561
22562 * resources/init.html: Added.
22563
rniwa@webkit.orga2d82a92012-02-01 09:39:13 +0000225642012-02-01 Ryosuke Niwa <rniwa@webkit.org>
22565
rniwa@webkit.orgf10fd7c2012-02-01 09:47:41 +000022566 Fix after r106386. The empty anchor element was generating an erroneous whitespace.
22567
22568 * Bindings/event-target-wrapper.html:
22569
225702012-02-01 Ryosuke Niwa <rniwa@webkit.org>
22571
rniwa@webkit.orga2d82a92012-02-01 09:39:13 +000022572 Another fix after r106379.
22573
22574 * Parser/html5-full-render.html:
22575
morrita@google.comb92146d2012-02-01 03:51:23 +0000225762012-01-31 Hajime Morrita <morrita@chromium.org>
22577
22578 Import Dromaeo to WebKit repository.
22579 https://bugs.webkit.org/show_bug.cgi?id=77328
22580
22581 Reviewed by Ryosuke Niwa.
22582
22583 Imported a modified version of Dromaeo which is able to
22584 run on the DRT.
22585
22586 The imported version originally came from:
22587 https://github.com/omo/dromaeo/commit/c942a1452109cdd5f759b3c4aee8d68d490d44a2
22588
22589 * Dromaeo/resources/dromaeo/web/application.css: Added.
22590 * Dromaeo/resources/dromaeo/web/favicon.ico: Added.
22591 * Dromaeo/resources/dromaeo/web/favicon.png: Added.
22592 * Dromaeo/resources/dromaeo/web/htmlrunner.js: Added.
22593 * Dromaeo/resources/dromaeo/web/ie.css: Added.
22594 * Dromaeo/resources/dromaeo/web/images/bg.png: Added.
22595 * Dromaeo/resources/dromaeo/web/images/clouds.png: Added.
22596 * Dromaeo/resources/dromaeo/web/images/clouds2.png: Added.
22597 * Dromaeo/resources/dromaeo/web/images/comets.png: Added.
22598 * Dromaeo/resources/dromaeo/web/images/dino1.png: Added.
22599 * Dromaeo/resources/dromaeo/web/images/dino2.png: Added.
22600 * Dromaeo/resources/dromaeo/web/images/dino3.png: Added.
22601 * Dromaeo/resources/dromaeo/web/images/dino4.png: Added.
22602 * Dromaeo/resources/dromaeo/web/images/dino5.png: Added.
22603 * Dromaeo/resources/dromaeo/web/images/dino6.png: Added.
22604 * Dromaeo/resources/dromaeo/web/images/dino7.png: Added.
22605 * Dromaeo/resources/dromaeo/web/images/dino8.png: Added.
22606 * Dromaeo/resources/dromaeo/web/images/left.png: Added.
22607 * Dromaeo/resources/dromaeo/web/images/logo.png: Added.
22608 * Dromaeo/resources/dromaeo/web/images/logo2.png: Added.
22609 * Dromaeo/resources/dromaeo/web/images/logo3.png: Added.
22610 * Dromaeo/resources/dromaeo/web/images/right.png: Added.
22611 * Dromaeo/resources/dromaeo/web/images/top.png: Added.
22612 * Dromaeo/resources/dromaeo/web/images/water.png: Added.
22613 * Dromaeo/resources/dromaeo/web/index.html: Added.
22614 * Dromaeo/resources/dromaeo/web/jquery.js: Added.
22615 * Dromaeo/resources/dromaeo/web/lib/dojo.js: Added.
22616 * Dromaeo/resources/dromaeo/web/lib/jquery.js: Added.
22617 * Dromaeo/resources/dromaeo/web/lib/mootools.js: Added.
22618 * Dromaeo/resources/dromaeo/web/lib/prototype.js: Added.
22619 * Dromaeo/resources/dromaeo/web/pngfix.js: Added.
22620 * Dromaeo/resources/dromaeo/web/reset.css: Added.
22621 * Dromaeo/resources/dromaeo/web/test-head.html: Added.
22622 * Dromaeo/resources/dromaeo/web/test-head.js: Added.
22623 * Dromaeo/resources/dromaeo/web/test-tail.html: Added.
22624 * Dromaeo/resources/dromaeo/web/test-tail.js: Added.
22625 * Dromaeo/resources/dromaeo/web/tests/MANIFEST.json: Added.
22626 * Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html: Added.
22627 * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html: Added.
22628 * Dromaeo/resources/dromaeo/web/tests/cssquery-mootools.html: Added.
22629 * Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html: Added.
22630 * Dromaeo/resources/dromaeo/web/tests/cssquery-yui.html: Added.
22631 * Dromaeo/resources/dromaeo/web/tests/dom-attr.html: Added.
22632 * Dromaeo/resources/dromaeo/web/tests/dom-modify.html: Added.
22633 * Dromaeo/resources/dromaeo/web/tests/dom-query.html: Added.
22634 * Dromaeo/resources/dromaeo/web/tests/dom-traverse.html: Added.
22635 * Dromaeo/resources/dromaeo/web/tests/dromaeo-3d-cube.html: Added.
22636 * Dromaeo/resources/dromaeo/web/tests/dromaeo-core-eval.html: Added.
22637 * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-array.html: Added.
22638 * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-regexp.html: Added.
22639 * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-string.html: Added.
22640 * Dromaeo/resources/dromaeo/web/tests/dromaeo-string-base64.html: Added.
22641 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html: Added.
22642 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html: Added.
22643 * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html: Added.
22644 * Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html: Added.
22645 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html: Added.
22646 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html: Added.
22647 * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html: Added.
22648 * Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html: Added.
22649 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html: Added.
22650 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html: Added.
22651 * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-morph.html: Added.
22652 * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html: Added.
22653 * Dromaeo/resources/dromaeo/web/tests/sunspider-access-binary-trees.html: Added.
22654 * Dromaeo/resources/dromaeo/web/tests/sunspider-access-fannkuch.html: Added.
22655 * Dromaeo/resources/dromaeo/web/tests/sunspider-access-nbody.html: Added.
22656 * Dromaeo/resources/dromaeo/web/tests/sunspider-access-nsieve.html: Added.
22657 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-3bit-bits-in-byte.html: Added.
22658 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bits-in-byte.html: Added.
22659 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html: Added.
22660 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-nsieve-bits.html: Added.
22661 * Dromaeo/resources/dromaeo/web/tests/sunspider-controlflow-recursive.html: Added.
22662 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-aes.html: Added.
22663 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html: Added.
22664 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html: Added.
22665 * Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-tofte.html: Added.
22666 * Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-xparb.html: Added.
22667 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html: Added.
22668 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-partial-sums.html: Added.
22669 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-spectral-norm.html: Added.
22670 * Dromaeo/resources/dromaeo/web/tests/sunspider-regexp-dna.html: Added.
22671 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-fasta.html: Added.
22672 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html: Added.
22673 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-unpack-code.html: Added.
22674 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-validate-input.html: Added.
22675 * Dromaeo/resources/dromaeo/web/tests/v8-crypto.html: Added.
22676 * Dromaeo/resources/dromaeo/web/tests/v8-deltablue.html: Added.
22677 * Dromaeo/resources/dromaeo/web/tests/v8-earley-boyer.html: Added.
22678 * Dromaeo/resources/dromaeo/web/tests/v8-raytrace.html: Added.
22679 * Dromaeo/resources/dromaeo/web/tests/v8-richards.html: Added.
22680 * Dromaeo/resources/dromaeo/web/tests/72px.png: Added.
22681 * Dromaeo/resources/dromaeo/web/web-style.css: Added.
22682 * Dromaeo/resources/dromaeo/web/webrunner.js: Added.
22683 * Skipped: Unskip the dromaeo driver.
22684
rniwa@webkit.orge0cd0a92012-01-31 20:05:37 +0000226852012-01-31 Ryosuke Niwa <rniwa@webkit.org>
22686
rniwa@webkit.org260940d2012-02-01 01:55:03 +000022687 Fix Parser/html5-full-render.html after r106379.
22688
22689 * Parser/html5-full-render.html:
22690
226912012-01-31 Ryosuke Niwa <rniwa@webkit.org>
22692
rniwa@webkit.orgef28db12012-01-31 21:35:51 +000022693 PerfTestRunner should automatically create pre#log
22694 https://bugs.webkit.org/show_bug.cgi?id=77469
22695
22696 Reviewed by Tony Chang.
22697
22698 Automatically generate <pre id="log"></pre> if there isn't one.
22699
22700 * Bindings/event-target-wrapper.html:
22701 * DOM/Accessors.html:
22702 * DOM/CloneNodes.html:
22703 * DOM/CreateNodes.html:
22704 * DOM/DOMDivWalk.html:
22705 * DOM/DOMTable.html:
22706 * DOM/DOMWalk.html:
22707 * DOM/Events.html:
22708 * DOM/GetElement.html:
22709 * DOM/GridSort.html:
22710 * DOM/Template.html:
22711 * Dromaeo/dom-query.html:
22712 * Dromaeo/resources/dromaeorunner.js:
22713 * Parser/html-parser.html:
22714 * Parser/html5-full-render.html:
22715 * Parser/simple-url.html:
22716 * Parser/tiny-innerHTML.html:
22717 * Parser/url-parser.html:
22718 * Parser/xml-parser.html:
22719 * resources/runner.js:
22720 (PerfTestRunner.log):
22721 (PerfTestRunner.printStatistics):
22722
227232012-01-31 Ryosuke Niwa <rniwa@webkit.org>
22724
rniwa@webkit.orge0cd0a92012-01-31 20:05:37 +000022725 runner.js in performance tests should define a class
22726 https://bugs.webkit.org/show_bug.cgi?id=77074
22727
22728 Reviewed by Eric Seidel.
22729
22730 Wrap all functions in runner.js by PerfTestRunner and update tests that runner.js accordingly.
22731 Also replace compute* functions in runner.js by more robust code from dom-perf.js.
22732
22733 * Bindings/event-target-wrapper.html:
22734 * DOM/DOMTable.html:
22735 * DOM/resources/dom-perf.js:
22736 (BenchmarkSuite.prototype.RunSingle):
22737 (runBenchmarkSuite):
22738 * Mutation/append-child-deep.html:
22739 * Mutation/append-child.html:
22740 * Mutation/inner-html.html:
22741 * Mutation/remove-child-deep.html:
22742 * Mutation/remove-child.html:
22743 * Parser/html-parser.html:
22744 * Parser/html5-full-render.html:
22745 * Parser/simple-url.html:
22746 * Parser/tiny-innerHTML.html:
22747 * Parser/url-parser.html:
22748 * Parser/xml-parser.html:
22749 * resources/runner.js:
22750 (PerfTestRunner.log):
22751 (PerfTestRunner.logInfo):
22752 (PerfTestRunner.loadFile):
22753 (PerfTestRunner.computeStatistics):
22754 (PerfTestRunner.logStatistics):
22755 (PerfTestRunner._runLoop.else):
22756 (PerfTestRunner._runLoop):
22757 (PerfTestRunner._runner):
22758
commit-queue@webkit.org3b4a9fa2012-01-31 10:13:51 +0000227592012-01-31 Hajime Morrita <morrita@chromium.org>
22760
22761 [PerformanceTests] Add landing html for Dromaeo dom-query test
22762 https://bugs.webkit.org/show_bug.cgi?id=77329
22763
22764 Reviewed by Ryosuke Niwa.
22765
22766 Added a "landing html" which includes actual dromaemo page and
22767 send messages to interact with it. The landing html also dumps the
22768 score in run-perf-tests friendly format.
22769
22770 This test isn't enabled until Dromaemo itself is available for run-perf-tests.
22771 It will happen in a separate change.
22772
22773 * Dromaeo/dom-query.html: Added.
22774 * Dromaeo/resources/dromaeorunner.js: Added.
22775 * Skipped: Skipping this for now.
22776
rniwa@webkit.org0054a2b2012-01-31 02:11:02 +0000227772012-01-30 Ryosuke Niwa <rniwa@webkit.org>
22778
22779 Skip inspector tests since they have been timing out.
22780
22781 * Skipped:
22782
rniwa@webkit.orgf670c1d2012-01-30 03:59:37 +0000227832012-01-29 Ryosuke Niwa <rniwa@webkit.org>
22784
22785 DOM/DOMDivWalk.html result is unreliable
22786 https://bugs.webkit.org/show_bug.cgi?id=77313
22787
rniwa@webkit.orgc0c247e2012-02-21 22:46:01 +000022788 Reviewed by Adam Barth.
rniwa@webkit.orgf670c1d2012-01-30 03:59:37 +000022789
22790 Trigger garbage collection manually between test runs to avoid GC
22791 to occur in the middle of runs.
22792
22793 * DOM/resources/dom-perf.js:
22794 (BenchmarkSuite.prototype.RunSingle):
22795 * resources/runner.js:
22796 (gc.else.gcRec):
22797 (gc):
22798 (runLoop):
22799
rniwa@webkit.org5ba90592012-01-27 22:03:37 +0000228002012-01-26 Ryosuke Niwa <rniwa@webkit.org>
22801
22802 Import Chromium's dom_perf test
22803 https://bugs.webkit.org/show_bug.cgi?id=77175
22804
22805 Reviewed by Adam Barth.
22806
22807 Import dom_perf.
22808
22809 Note resources/dom/suites.js isn't used by any html file yet but it will be used by Chromium port
22810 once its perf bots start pulling test files from WebKit repository instead of Google's internal repository.
22811
22812 * DOM: Added.
22813 * DOM/Accessors.html: Added.
22814 * DOM/CloneNodes.html: Added.
22815 * DOM/CreateNodes.html: Added.
22816 * DOM/DOMDivWalk.html: Added.
22817 * DOM/DOMTable.html: Added.
22818 * DOM/DOMWalk.html: Added.
22819 * DOM/Events.html: Added.
22820 * DOM/GetElement.html: Added.
22821 * DOM/GridSort.html: Added.
22822 * DOM/Template.html: Added.
22823 * DOM/resources: Added.
22824 * DOM/resources/dom-perf.js: Added.
22825 * DOM/resources/dom-perf: Added.
22826 * DOM/resources/dom-perf/accessors.js: Added.
22827 * DOM/resources/dom-perf/clonenodes.js: Added.
22828 * DOM/resources/dom-perf/createnodes.js: Added.
22829 * DOM/resources/dom-perf/domdivwalk.js: Added.
22830 * DOM/resources/dom-perf/domtable.js: Added.
22831 * DOM/resources/dom-perf/domwalk.js: Added.
22832 * DOM/resources/dom-perf/events.js: Added.
22833 * DOM/resources/dom-perf/getelement.js: Added.
22834 * DOM/resources/dom-perf/gridsort.js: Added.
22835 * DOM/resources/dom-perf/suites.js: Added.
22836 * DOM/resources/dom-perf/template.js: Added.
22837 * resources/runner.js:
22838
rniwa@webkit.orgc4f5dd12012-01-25 22:25:10 +0000228392012-01-25 Ryosuke Niwa <rniwa@webkit.org>
22840
22841 html5-full-render.html fails due to a log
22842 https://bugs.webkit.org/show_bug.cgi?id=77046
22843
22844 Reviewed by Adam Barth.
22845
22846 Replace the call to log() in html5-full-render.html by a call to newly added logInfo(),
22847 which doesn't print anything inside DRT.
22848
22849 * Parser/html5-full-render.html:
22850 * resources/runner.js:
22851 (logInfo):
22852
abarth@webkit.org49d2a482012-01-19 23:38:29 +0000228532012-01-19 Adam Barth <abarth@webkit.org>
22854
22855 PerformanceTests's runner.js shouldn't be Parser-specific
22856 https://bugs.webkit.org/show_bug.cgi?id=76670
22857
22858 Reviewed by Ryosuke Niwa.
22859
22860 This runner script is used by a bunch of difference performance tests.
22861 It shouldn't be in the Parser directory anymore.
22862
22863 * Bindings/event-target-wrapper.html:
22864 * Mutation/append-child-deep.html:
22865 * Mutation/append-child.html:
22866 * Mutation/inner-html.html:
22867 * Mutation/remove-child-deep.html:
22868 * Mutation/remove-child.html:
22869 * Parser/html-parser.html:
22870 * Parser/html5-full-render.html:
22871 * Parser/resources/runner.js: Removed.
22872 * Parser/simple-url.html:
22873 * Parser/tiny-innerHTML.html:
22874 * Parser/url-parser.html:
22875 * Parser/xml-parser.html:
22876 * resources: Added.
22877 * resources/runner.js: Copied from PerformanceTests/Parser/resources/runner.js.
22878
rniwa@webkit.org780e1d32012-01-19 21:50:52 +0000228792012-01-19 Ryosuke Niwa <rniwa@webkit.org>
22880
22881 Some perf tests time out when ran by run-perf-tests
22882 https://bugs.webkit.org/show_bug.cgi?id=76612
22883
22884 Reviewed by Dirk Pranke and Eric Seidel.
22885
22886 Replace all images in html5.html by geenbox.png to avoid accessing whatwg.org when
22887 running the parser tests. Also call dumpAsText, waitUntilDone, and notifyDone automatically
22888 inside runner.js to avoid having to call them in individual tests.
22889
22890 * Bindings/event-target-wrapper.html: Removed calls to layoutTestController methods since
22891 they are now called by runner.js automatically.
22892 * Parser/resources/greenbox.png: Copied from LayoutTests/fast/css/resources/greenbox.png.
22893 * Parser/resources/html5.html:
22894 * Parser/resources/runner.js:
22895 (runLoop):
22896
rniwa@webkit.org095e5732012-01-19 06:00:40 +0000228972012-01-18 Ryosuke Niwa <rniwa@webkit.org>
22898
22899 run-perf-tests should support Skipped list
22900 https://bugs.webkit.org/show_bug.cgi?id=76594
22901
22902 Reviewed by Adam Barth.
22903
22904 Add Skipped list to be used by run-perf-tests as it can only runs tests in
22905 Bindings, Parser, and inspector at the moment.
22906
22907 * Skipped: Added.
22908
loislo@chromium.orga4b23672012-01-12 12:06:08 +0000229092012-01-12 Ilya Tikhonovsky <loislo@chromium.org>
22910
loislo@chromium.org96daeac2012-01-12 14:44:06 +000022911 Web Inspector: performance: restore 'log 300 messages into console' test.
22912 https://bugs.webkit.org/show_bug.cgi?id=76170
22913
22914 It was removed in order of transition from layout tests to perf tests.
22915
22916 Reviewed by Yury Semikhatsky.
22917
22918 * inspector/console-300-lines.html: Added.
22919
229202012-01-12 Ilya Tikhonovsky <loislo@chromium.org>
22921
loislo@chromium.orga4b23672012-01-12 12:06:08 +000022922 Web Inspector: performance tests: fix memory leak in first-open-resources test.
22923 https://bugs.webkit.org/show_bug.cgi?id=76049
22924
22925 first-open-resources doesn't reset resource panel properly after test run.
22926
22927 Reviewed by Yury Semikhatsky.
22928
22929 * inspector/first-open-resources.html:
22930
loislo@chromium.org0a700982012-01-10 16:31:28 +0000229312012-01-10 Ilya Tikhonovsky <loislo@chromium.org>
22932
loislo@chromium.org9eef3f52012-01-10 16:39:10 +000022933 Unreviewed. WebInspector: Remove unnecessary logging from the test.
22934
22935 * inspector/first-open-resources.html:
22936
229372012-01-10 Ilya Tikhonovsky <loislo@chromium.org>
22938
loislo@chromium.org0a700982012-01-10 16:31:28 +000022939 Unreviewed. Restore test that was removed during migration from LayoutTests folder.
22940
22941 * inspector/first-open-resources.html: Added.
22942
loislo@chromium.org8743dbd2012-01-10 09:08:06 +0000229432012-01-09 Ilya Tikhonovsky <loislo@chromium.org>
22944
22945 Unreviewed test fix after r103683.
22946
22947 * inspector/first-open-scripts.html:
22948 * inspector/show-panel.html:
22949
abarth@webkit.orge7b3d3b2012-01-04 04:39:04 +0000229502012-01-03 Adam Barth <abarth@webkit.org>
22951
22952 html-parser.html takes too long to run
22953 https://bugs.webkit.org/show_bug.cgi?id=75515
22954
22955 Reviewed by Eric Seidel.
22956
22957 In working on runner.js, we introduced a factor of 10 increase to the
22958 running time of this benchmark. This patch dials down the number of
22959 iterations to something more user-friendly.
22960
22961 * Parser/html-parser.html:
22962
loislo@chromium.orgedb00762011-12-18 15:13:08 +0000229632011-12-18 Ilya Tikhonovsky <loislo@chromium.org>
22964
22965 Web Inspector: move heap data stats to separate tab.
22966 https://bugs.webkit.org/show_bug.cgi?id=74704
22967
22968 Reviewed by Pavel Feldman.
22969
22970 * inspector/performance-test.js:
22971 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
22972 (initialize_TimeTracker.InspectorTest.runPerformanceTest):
22973
loislo@chromium.org9db65182011-12-01 19:31:51 +0000229742011-12-01 Ilya Tikhonovsky <loislo@chromium.org>
22975
22976 Web Inspector: chromium: move and adapt Inspector's performance tests for running with run-inspector-perf-tests.py.
22977 https://bugs.webkit.org/show_bug.cgi?id=72260
22978
22979 Reviewed by Pavel Feldman.
22980
22981 * inspector/first-open-elements.html: Renamed from LayoutTests/inspector/performance/resources/first-open-elements.html.
22982 * inspector/first-open-scripts.html: Renamed from LayoutTests/inspector/performance/resources/first-open-scripts.html.
22983 * inspector/inspector-startup-time.html: Renamed from LayoutTests/inspector/performance/resources/inspector-startup-time.html.
22984 * inspector/network-append-30-requests.html: Renamed from LayoutTests/inspector/performance/resources/network-append-30-requests.html.
22985 * inspector/performance-test.js: Renamed from LayoutTests/inspector/performance/resources/performance-test.js.
22986 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer):
22987 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.start):
22988 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.finish):
22989 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._getJSHeapSize):
22990 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.done):
22991 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._runTest):
22992 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
22993 (initialize_TimeTracker.InspectorTest.runPerformanceTest):
22994 (initialize_TimeTracker.InspectorTest.mark):
22995 * inspector/show-panel.html: Renamed from LayoutTests/inspector/performance/resources/show-panel.html.
22996
adamk@chromium.orgcd510a22011-11-10 18:39:39 +0000229972011-11-09 Adam Klein <adamk@chromium.org>
22998
22999 [MutationObservers] Microbenchmarks for appendChild, removeChild, and innerHTML
23000 https://bugs.webkit.org/show_bug.cgi?id=71939
23001
23002 Reviewed by Ojan Vafai.
23003
23004 These benchmarks time both the DOM mutations themselves and the time taken
23005 to call the MutationCallback. This measurement is achieved by
23006 executing the code entirely within the MutationCallback itself.
23007
23008 * Mutation/append-child-deep.html: Added. Covers appendChild in a 200-node-deep tree with subtree observation.
23009 * Mutation/append-child.html: Added. Covers appendChild in a flat tree.
23010 * Mutation/inner-html.html: Added. Covers innerHTML adding and removing many nodes at a time.
23011 * Mutation/remove-child-deep.html: Added. Covers removeChild in a 200-node-deep tree with subtree observation.
23012 * Mutation/remove-child.html: Added. Covers removeChild in a flat tree.
23013
abarth@webkit.org84054352011-10-25 23:43:33 +0000230142011-10-25 Adam Barth <abarth@webkit.org>
23015
23016 EventTargetFactory.in is not sorted
23017 https://bugs.webkit.org/show_bug.cgi?id=70855
23018
23019 Reviewed by Eric Seidel.
23020
23021 Add a microbenchmark for wrapping event target.
23022
23023 * Bindings: Added.
23024 * Bindings/event-target-wrapper.html: Added.
23025 * Parser/resources/runner.js:
23026 (runLoop):
23027 - Let the user of the harness get a callback when the test is done.
23028
eric@webkit.org91858ce2011-10-04 20:16:51 +0000230292011-10-04 Eric Seidel <eric@webkit.org>
23030
eric@webkit.orge1cdd752011-10-04 21:27:03 +000023031 Update html5-full-render.html to load the HTML5 spec incrementally, closer to how the browser would
23032 https://bugs.webkit.org/show_bug.cgi?id=69374
23033
eric@webkit.org1bd9f0a2011-10-04 22:56:41 +000023034 Unreviewed.
23035
23036 Per https://bugs.webkit.org/show_bug.cgi?id=69374#c7
23037 updating the chunksize to be a bit smaller now that the total
23038 size of the html5 spec is smaller than when I wrote the test.
23039
23040 This should increase the prevalence of style resolution in the
23041 sample time, which more closely matches instrument samples
23042 taken when loading the full page in Safari.
23043
23044 * Parser/html5-full-render.html:
23045
230462011-10-04 Eric Seidel <eric@webkit.org>
23047
23048 Update html5-full-render.html to load the HTML5 spec incrementally, closer to how the browser would
23049 https://bugs.webkit.org/show_bug.cgi?id=69374
23050
eric@webkit.orge1cdd752011-10-04 21:27:03 +000023051 Reviewed by James Robinson.
23052
23053 This should finally be able to provide us with a repeatable metric
23054 for how fast we're currently able to load the HTML5 spec.
23055 There are a variety of interesting functions which show up in this
23056 sample, including of course style resolution.
23057
23058 * Parser/html5-full-render.html:
23059
230602011-10-04 Eric Seidel <eric@webkit.org>
23061
eric@webkit.orgb87471e2011-10-04 20:53:09 +000023062 Update our copy of the HTML5 spec used for performance testing to match the latest version
23063 https://bugs.webkit.org/show_bug.cgi?id=69364
23064
23065 Unreviewed. The patch is too large to post, so landing this unreviewed. :(
23066
23067 The copy of the html5 spec we were using for testing was over a year old
23068 and didn't have any of the subresources with it (we were only using it
23069 as an HTML parsing benchmark). I'm about to use it for testing
23070 the full load/render time of the benchmark, so I've updated to the latest
23071 version of the spec (now 8mb instead of 5mb) and inlined two of the
23072 CSS files. (Inlining the CSS was necessary to make my testing consistent
23073 as there seems to be a race with some timer fired after CSS load.)
23074
23075 Increasing from 5mb to 8mb showed a similar 30% slowdown in our parser
23076 benchmarks as expected.
23077
23078 * Parser/resources/html5.html:
23079
230802011-10-04 Eric Seidel <eric@webkit.org>
23081
eric@webkit.org91858ce2011-10-04 20:16:51 +000023082 Add loopsPerRun option to Parser performance test runner
23083 https://bugs.webkit.org/show_bug.cgi?id=69363
23084
23085 Reviewed by Antti Koivisto.
23086
23087 Add loopsPerRun option and abstract out runLoop function (to make the UI more responsive).
23088 No change in behavior in any of the tests.
23089
23090 * Parser/resources/runner.js:
23091 (runLoop):
23092 (run):
23093 (start):
23094
eric@webkit.org35f5f9b2011-10-03 20:09:25 +0000230952011-10-03 Eric Seidel <eric@webkit.org>
23096
eric@webkit.orgd3278702011-10-04 00:13:01 +000023097 Add a microbenchmark for a full-page render of the HTML5 spec
23098 https://bugs.webkit.org/show_bug.cgi?id=69285
23099
23100 Reviewed by Adam Barth.
23101
23102 This was designed to be a test for https://bugs.webkit.org/show_bug.cgi?id=68944
23103 But it seems that by far our dominating cost for the HTML5 benchmark is
23104 time spent laying out lines (which isn't actually that surprising).
23105
23106 I'm adding the performance test for posterity.
23107
23108 * Parser/html-parser.html:
23109 - Removed use of "about:blank" which abarth says is a no-op. Made comment more accurate.
23110 * Parser/html5-full-render.html: Copied from PerformanceTests/Parser/html-parser.html.
23111
231122011-10-03 Eric Seidel <eric@webkit.org>
23113
eric@webkit.org35f5f9b2011-10-03 20:09:25 +000023114 PerformanceTests/Parser/html-parser is only testing parsing of the head element
23115 https://bugs.webkit.org/show_bug.cgi?id=69283
23116
23117 Reviewed by Adam Barth.
23118
23119 While investigating https://bugs.webkit.org/show_bug.cgi?id=68944
23120 I found that the html-parser benchmark was only parsing up to the
23121 first script tag per loop! We've fixed this by adding the sandbox
23122 tag which will deny all external loads and allow the parser to
23123 synchronously continue parsing the entire document to completion
23124 (as we had expected it was doing).
23125
23126 This changes the profile somewhat. Line number counting is much
23127 hotter, since we're actually accounting for the parse of the entire
23128 document in our sample.
23129
23130 Total sample time only about doubles, from 1800ms to 3800ms on my machine
23131 which is less than I would have expected.
23132
23133 * Parser/html-parser.html:
23134
hyatt@apple.com46c65b32011-08-09 19:13:45 +0000231352011-08-09 Alexandru Chiculita <achicu@adobe.com>
23136
23137 Fixing 65868 REGRESSION(r92610) caused by 65668 - Optimize floating elements lookup
23138 https://bugs.webkit.org/show_bug.cgi?id=65871
23139
23140 Reviewed by Dave Hyatt.
23141
23142 * Layout/floats.html: Added the nested divs, so that we can test the propagation impact of the floats tree.
23143
commit-queue@webkit.org3f985ec2011-08-08 20:13:48 +0000231442011-08-08 Sheriff Bot <webkit.review.bot@gmail.com>
23145
23146 Unreviewed, rolling out r92610.
23147 http://trac.webkit.org/changeset/92610
23148 https://bugs.webkit.org/show_bug.cgi?id=65868
23149
23150 Caused assertion failures when running fast/multicol tests
23151 (Requested by andersca on #webkit).
23152
23153 * Layout/floats.html:
23154
commit-queue@webkit.org0a6b0232011-08-08 18:09:19 +0000231552011-08-08 Alexandru Chiculita <achicu@adobe.com>
23156
23157 Optimize floating elements lookup
23158 https://bugs.webkit.org/show_bug.cgi?id=65668
23159
23160 Reviewed by David Hyatt.
23161
23162 * Layout/floats.html: Added the nested divs, so that we can test the propagation impact of the floats tree.
23163
commit-queue@webkit.org6489b072011-08-05 04:51:00 +0000231642011-08-04 Alexandru Chiculita <achicu@adobe.com>
23165
23166 Add a performance test for floating elements layout algorithm
23167 https://bugs.webkit.org/show_bug.cgi?id=65741
23168
23169 The test creating lots of small floats and randomly changes
23170 the width of one element at a time. It measures how often it can do that.
23171
23172 Reviewed by Adam Barth.
23173
23174 * Layout/floats.html: Added.
23175
dbates@webkit.org7b68d352011-05-31 04:03:56 +0000231762011-05-30 Daniel Bates <dbates@webkit.org>
23177
23178 Reviewed by Adam Barth.
23179
23180 Rename XSSFilter to XSSAuditor
23181 https://bugs.webkit.org/show_bug.cgi?id=61718
23182
23183 Currently we use the names XSSFilter and XSSAuditor throughout the project.
23184 Instead, we should choose one name for consistency.
23185
23186 No functionality was changed. So, no new tests.
23187
23188 * XSSAuditor: Copied from PerformanceTests/XSSFilter.
23189 * XSSFilter: Removed.
23190 * XSSFilter/large-post-many-events.html: Removed.
23191 * XSSFilter/large-post-many-inline-scripts-and-events.html: Removed.
23192 * XSSFilter/resources: Removed.
23193 * XSSFilter/resources/target-for-large-post-many-inline-scripts-and-events.html: Removed.
23194
commit-queue@webkit.orgec6b3772011-03-25 14:17:02 +0000231952011-03-25 Leo Yang <leo.yang@torchmobile.com.cn>
23196
23197 Reviewed by Dirk Schulze.
23198
23199 SVG <use> element performance improvement
23200 https://bugs.webkit.org/show_bug.cgi?id=57077
23201
23202 Add a manual test case which is from
23203 http://upload.wikimedia.org/wikipedia/commons/4/4e/Sierpinski_carpet_6.svg
23204 for svg <use> element performance test.
23205
23206 * PageLoad/svg/files/Sierpinski_carpet_6.svg: Added.
23207 * PageLoad/svg/svg.pltsuite:
23208
eric@webkit.org907cc722011-02-05 11:12:04 +0000232092011-02-05 Eric Seidel <eric@webkit.org>
23210
23211 Reviewed by Adam Barth.
23212
23213 Add performance tests for URL parsing
23214 https://bugs.webkit.org/show_bug.cgi?id=53845
23215
23216 The final-url-en URL corpus is from:
23217 http://corpus.leeds.ac.uk/internet.html
23218
23219 There are also other language corpuses which we may want to use in the future.
23220
23221 The usage instructions were as follows:
23222 "URL lists and other resources: you can freely use them in your research
23223 provided that you supply a link to this website: http://corpus.leeds.ac.uk/."
23224 Done.
23225
23226 * Parser/simple-url.html: Added.
23227 On my machine:
23228 Firefox: 255ms
23229 TOT WebKit: 378ms
23230 Chrome: 286ms
23231 Opera: 2830ms (no, that is not a typo)
23232 * Parser/url-parser.html: Added.
23233 Firefox: 381ms
23234 TOT WebKit: 216ms
23235 Chrome: 131ms
23236 Opera: 1383ms (again, not a typo)
23237 * Parser/resources/final-url-en: Added.
23238
abarth@webkit.orgf9c692d2011-02-04 04:02:02 +0000232392011-02-03 Adam Barth <abarth@webkit.org>
23240
abarth@webkit.org5dea6ad42011-02-04 04:24:29 +000023241 Reviewed by Daniel Bates.
23242
23243 Add another XSSFilter PerformanceTest
23244 https://bugs.webkit.org/show_bug.cgi?id=53750
23245
23246 This PerformanceTest tests the case that was slow in
23247 https://bugs.webkit.org/show_bug.cgi?id=49845
23248
23249 * XSSFilter/large-post-many-inline-scripts-and-events.html: Added.
23250 * XSSFilter/resources: Added.
23251 * XSSFilter/resources/target-for-large-post-many-inline-scripts-and-events.html: Added.
23252
232532011-02-03 Adam Barth <abarth@webkit.org>
23254
abarth@webkit.orgf9c692d2011-02-04 04:02:02 +000023255 Reviewed by Eric Seidel.
23256
23257 Add PerformanceTest for XSSFilter
23258 https://bugs.webkit.org/show_bug.cgi?id=53741
23259
23260 This performance tests covers the case of a large POST data and many
23261 small event handlers.
23262
23263 * XSSFilter: Added.
23264 * XSSFilter/large-post-many-events.html: Added.
23265
abarth@webkit.org7afc6e02011-02-04 00:49:03 +0000232662011-02-02 Adam Barth <abarth@webkit.org>
23267
23268 Rubber-stamped by Eric Seidel.
23269
23270 Merge PerformanceTests/Parser/ChangeLog and
23271 PerformanceTests/PageLoad/ChangeLog into PerformanceTests/ChangeLog.
23272
23273 It's silly to have ChangeLogs for each of these directories separately.
23274 I've left SunSpider with its own ChangeLog because it's more of an
23275 independent entity.
23276
23277 * ChangeLog: Added.
23278
232792011-02-02 Eric Seidel <eric@webkit.org>
23280
23281 Unreviewed. Just fixing an exception seen in Firefox.
23282
23283 HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
23284 https://bugs.webkit.org/show_bug.cgi?id=48719
23285
23286 Make the benchmarks work in Firefox/Opera.
23287
23288 * resources/runner.js:
23289 (log):
23290
232912011-01-27 Eric Seidel <eric@webkit.org>
23292
23293 Reviewed by Darin Adler.
23294
23295 HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
23296 https://bugs.webkit.org/show_bug.cgi?id=48719
23297
23298 It's unclear exactly what the Peacekeeper benchmark is testing,
23299 because I haven't found a way to run it myself.
23300
23301 However, I constructed a benchmark which shows at least one possible slow point.
23302 The HTML5 spec talks about creating a new document for every time we use
23303 the fragment parsing algorithm. Document() it turns out, it a huge bloated
23304 mess, and the constructor and destructor do a huge amount of work.
23305
23306 * benchmarks/parser/tiny-innerHTML.html: Added.
23307
233082011-01-29 Sheriff Bot <webkit.review.bot@gmail.com>
23309
23310 Unreviewed, rolling out r77050.
23311 http://trac.webkit.org/changeset/77050
23312 https://bugs.webkit.org/show_bug.cgi?id=53371
23313
23314 Caused a crash in Chromium's test_shell_tests (Requested by
23315 rniwa on #webkit).
23316
23317 * resources/performance-test.js: Removed.
23318 * tiny-innerHTML.html: Removed.
23319
233202011-01-28 Eric Seidel <eric@webkit.org>
23321
23322 Reviewed by Darin Adler.
23323
23324 HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
23325 https://bugs.webkit.org/show_bug.cgi?id=48719
23326
23327 It's unclear exactly what the Peacekeeper benchmark is testing,
23328 because I haven't found a way to run it myself.
23329
23330 However, I constructed a benchmark which shows at least one possible slow point.
23331 The HTML5 spec talks about creating a new document for every time we use
23332 the fragment parsing algorithm. Document() it turns out, it a huge bloated
23333 mess, and the constructor and destructor do a huge amount of work.
23334 To avoid constructing (or destructing) documents for each innerHTML call,
23335 this patch adds a shared dummy document used by all innerHTML calls.
23336
23337 * benchmarks/parser/tiny-innerHTML.html: Added.
23338
233392010-12-31 Adam Barth <abarth@webkit.org>
23340
23341 Rubber-stamped by Eric Seidel.
23342
23343 Move HTML and XML parser benchmarks into PerformanceTests/Parser
23344 https://bugs.webkit.org/show_bug.cgi?id=51772
23345
23346 Add a ChangeLog for tracking changes to the Parser PerformanceTest.
23347
23348 * ChangeLog: Added.
23349
233502010-12-31 Adam Barth <abarth@webkit.org>
23351
23352 Rubber-stamped by Eric Seidel.
23353
23354 Move PageLoadTests to PerformanceTests/PageLoad
23355 https://bugs.webkit.org/show_bug.cgi?id=51771
23356
23357 Update URLs to point to the new directory name.
23358
23359 * svg/svg.pltsuite:
23360
233612006-12-26 Eric Seidel <eric@webkit.org>
23362
23363 Reviewed by olliej.
23364
23365 * svg/svg.pltsuite: re-enable word-iso.svg after fixing http://bugs.webkit.org/show_bug.cgi?id=11987
23366
233672006-12-26 Eric Seidel <eric@webkit.org>
23368
23369 Reviewed by bradee-oh.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000023370
abarth@webkit.org7afc6e02011-02-04 00:49:03 +000023371 Add new PageLoadTests directory (this one)
23372 Add LICENSES file to explain where each SVG came from.
23373
23374 * ChangeLog: Added.
23375 * svg/LICENSES: Added.
23376 * svg/files/33041-Samurai.svg: Added.
23377 * svg/files/42470-flower_from_my_garden_v2.svg: Added.
23378 * svg/files/Harvey_Rayner.svg: Added.
23379 * svg/files/az-lizard_benji_park_01.svg: Added.
23380 * svg/files/bamboo_01.svg: Added.
23381 * svg/files/cacuts_01.svg: Added.
23382 * svg/files/cowboy.svg: Added.
23383 * svg/files/crawfish2_ganson.svg: Added.
23384 * svg/files/deb9frac1.svg: Added.
23385 * svg/files/food_leif_lodahl_01.svg: Added.
23386 * svg/files/france.svg: Added.
23387 * svg/files/francobollo_gnome_ezechi_02.svg: Added.
23388 * svg/files/gearflowers.svg: Added.
23389 * svg/files/hereGear4.svg: Added.
23390 * svg/files/mtsthelens.svg: Added.
23391 * svg/files/mtsthelens0.jpg: Added.
23392 * svg/files/world-iso.svg: Added.
23393 * svg/files/worldcup.svg: Added.
23394 * svg/svg.pltsuite: Added.
23395