You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
// Has not been maintained for a while.
|
|
/* eslint-disable */
|
|
var Benchmark = require("benchmark");
|
|
var a = require("../snabbdom.js");
|
|
var b = require("../oldsnabbdom.js");
|
|
|
|
global.a = a;
|
|
global.b = b;
|
|
|
|
var suite = new Benchmark.Suite();
|
|
|
|
a.spanNum = function spanNum(n) {
|
|
return a.h("span", { key: n }, n.toString());
|
|
};
|
|
|
|
b.spanNum = function spanNum(n) {
|
|
return b.h("span", { key: n }, n.toString());
|
|
};
|
|
|
|
var elms = (global.elms = 10);
|
|
var arr = (global.arr = []);
|
|
for (var n = 0; n < elms; ++n) {
|
|
arr[n] = n;
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
var elm = (global.elm = document.getElementById("container"));
|
|
// add tests
|
|
suite
|
|
.add("a/ insert first", {
|
|
setup: function () {
|
|
var vnode1 = a.h("div", arr.map(a.spanNum));
|
|
var vnode2 = a.h("div", ["new"].concat(arr).map(a.spanNum));
|
|
},
|
|
fn: function () {
|
|
var emptyNode = a.emptyNodeAt(elm);
|
|
a.patch(emptyNode, vnode1);
|
|
a.patch(vnode1, vnode2);
|
|
a.patch(vnode2, a.emptyNode);
|
|
},
|
|
})
|
|
.add("b/ insert first", {
|
|
setup: function () {
|
|
var vnode1 = b.h("div", arr.map(b.spanNum));
|
|
var vnode2 = b.h("div", ["new"].concat(arr).map(b.spanNum));
|
|
},
|
|
fn: function () {
|
|
var emptyNode = b.emptyNodeAt(elm);
|
|
b.patch(emptyNode, vnode1);
|
|
b.patch(vnode1, vnode2);
|
|
b.patch(vnode2, b.emptyNode);
|
|
},
|
|
})
|
|
// add listeners
|
|
.on("cycle", function (event) {
|
|
console.log(String(event.target));
|
|
})
|
|
.on("complete", function () {
|
|
console.log("Fastest is " + this.filter("fastest").pluck("name"));
|
|
})
|
|
// run async
|
|
.run({ async: true });
|
|
});
|