function makeSteps(configuration) { const steps = []; for (let i = 0; i < configuration.stepCount; ++i) { if (configuration.isResizeTest) { for (let width = 300; width <= 800; width += 50) { steps.push(new BenchmarkTestStep(`Resizing to ${width}px - ${i}`, (bench, contentWindow, contentDocument) => { bench.resizeViewToWidth(width); })); } continue; } steps.push(new BenchmarkTestStep(`Adding classes - ${i}`, (bench, contentWindow, contentDocument) => { bench.addClasses(configuration.mutationsPerStep); })); steps.push(new BenchmarkTestStep(`Removing classes - ${i}`, (bench, contentWindow, contentDocument) => { bench.removeClasses(configuration.mutationsPerStep); })); steps.push(new BenchmarkTestStep(`Mutating attributes - ${i}`, (bench, contentWindow, contentDocument) => { bench.mutateAttributes(configuration.mutationsPerStep); })); steps.push(new BenchmarkTestStep(`Adding leaf elements - ${i}`, (bench, contentWindow, contentDocument) => { bench.addLeafElements(configuration.mutationsPerStep); })); steps.push(new BenchmarkTestStep(`Removing leaf elements - ${i}`, (bench, contentWindow, contentDocument) => { bench.removeLeafElements(configuration.mutationsPerStep); })); } return steps; } function makeSuite(configuration) { return { name: configuration.name, url: 'style-bench.html', prepare: (runner, contentWindow, contentDocument) => { return runner.waitForElement('#testroot').then((element) => { return contentWindow.createBenchmark(configuration); }); }, tests: makeSteps(configuration), }; } var Suites = []; for (const configuration of StyleBench.predefinedConfigurations()) Suites.push(makeSuite(configuration));