marko/benchmark/vdom/benchmark-create.js
2016-11-02 20:23:42 -06:00

57 lines
1.4 KiB
JavaScript

module.exports = function(app) {
var Suite = window.Benchmark.Suite;
var names = [
'dom',
'dom-innerHTML',
'marko-vdom',
'react'
];
var htmlFiles = ['todomvc', 'marko-docs', 'tabs'];
function loadScripts() {
window.createBenchmarks = {};
var scripts = [];
names.forEach(function(name) {
htmlFiles.forEach(function(htmlFile) {
scripts.push('./codegen-create/benchmark-' + htmlFile + '-' + name + '.js');
});
});
return app.loadScripts(scripts);
}
function runForHtmlFile(htmlFile) {
return loadScripts(htmlFile)
.then(function() {
var suite = new Suite('create-' + htmlFile);
names.forEach(function(name) {
suite.add(name, function() {
return window.createBenchmarks[htmlFile + '-' + name]();
});
});
return app.runSuite(suite);
});
}
var loadScriptsPromise = loadScripts();
return function() {
var promiseChain = loadScriptsPromise;
htmlFiles.forEach(function(htmlFile) {
promiseChain = promiseChain.then(function() {
return runForHtmlFile(htmlFile);
});
});
return promiseChain;
};
};