|
1 | 1 | import { Metric } from "./metric.mjs";
|
2 | 2 | import { params } from "./params.mjs";
|
| 3 | +import { TEST_INVOKER_LOOKUP } from "./test-invoker.mjs"; |
3 | 4 |
|
4 | 5 | const performance = globalThis.performance;
|
5 | 6 |
|
@@ -266,61 +267,6 @@ const WarmupSuite = {
|
266 | 267 | ],
|
267 | 268 | };
|
268 | 269 |
|
269 |
| -class TestInvoker { |
270 |
| - constructor(syncCallback, asyncCallback, reportCallback) { |
271 |
| - this._syncCallback = syncCallback; |
272 |
| - this._asyncCallback = asyncCallback; |
273 |
| - this._reportCallback = reportCallback; |
274 |
| - } |
275 |
| -} |
276 |
| - |
277 |
| -class TimerTestInvoker extends TestInvoker { |
278 |
| - start() { |
279 |
| - return new Promise((resolve) => { |
280 |
| - setTimeout(() => { |
281 |
| - this._syncCallback(); |
282 |
| - setTimeout(() => { |
283 |
| - this._asyncCallback(); |
284 |
| - requestAnimationFrame(async () => { |
285 |
| - await this._reportCallback(); |
286 |
| - resolve(); |
287 |
| - }); |
288 |
| - }, 0); |
289 |
| - }, params.waitBeforeSync); |
290 |
| - }); |
291 |
| - } |
292 |
| -} |
293 |
| - |
294 |
| -class RAFTestInvoker extends TestInvoker { |
295 |
| - start() { |
296 |
| - return new Promise((resolve) => { |
297 |
| - if (params.waitBeforeSync) |
298 |
| - setTimeout(() => this._scheduleCallbacks(resolve), params.waitBeforeSync); |
299 |
| - else |
300 |
| - this._scheduleCallbacks(resolve); |
301 |
| - }); |
302 |
| - } |
303 |
| - |
304 |
| - _scheduleCallbacks(resolve) { |
305 |
| - requestAnimationFrame(() => this._syncCallback()); |
306 |
| - requestAnimationFrame(() => { |
307 |
| - setTimeout(() => { |
308 |
| - this._asyncCallback(); |
309 |
| - setTimeout(async () => { |
310 |
| - await this._reportCallback(); |
311 |
| - resolve(); |
312 |
| - }, 0); |
313 |
| - }, 0); |
314 |
| - }); |
315 |
| - } |
316 |
| -} |
317 |
| - |
318 |
| -const TEST_INVOKER_LOOKUP = { |
319 |
| - __proto__: null, |
320 |
| - timer: TimerTestInvoker, |
321 |
| - raf: RAFTestInvoker, |
322 |
| -}; |
323 |
| - |
324 | 270 | // https://stackoverflow.com/a/47593316
|
325 | 271 | function seededHashRandomNumberGenerator(a) {
|
326 | 272 | return function () {
|
@@ -658,7 +604,7 @@ export class SuiteRunner {
|
658 | 604 |
|
659 | 605 | const report = () => this._recordTestResults(test, syncTime, asyncTime);
|
660 | 606 | const invokerClass = TEST_INVOKER_LOOKUP[params.measurementMethod];
|
661 |
| - const invoker = new invokerClass(runSync, measureAsync, report); |
| 607 | + const invoker = new invokerClass(runSync, measureAsync, report, params); |
662 | 608 |
|
663 | 609 | return invoker.start();
|
664 | 610 | }
|
|
0 commit comments