UNPKG

1.54 kBJavaScriptView Raw
1var Benchmark = require('benchmark');
2var a = require('../snabbdom.js');
3var b = require('../oldsnabbdom.js');
4
5global.a = a;
6global.b = b;
7
8var suite = new Benchmark.Suite();
9
10a.spanNum = function spanNum(n) {
11 return a.h('span', {key: n}, n.toString());
12};
13
14b.spanNum = function spanNum(n) {
15 return b.h('span', {key: n}, n.toString());
16};
17
18var elms = global.elms = 10;
19var arr = global.arr = [];
20for (var n = 0; n < elms; ++n) { arr[n] = n; }
21
22document.addEventListener('DOMContentLoaded', function() {
23 var elm = global.elm = document.getElementById('container');
24 // add tests
25 suite.add('a/ insert first', {
26 setup: function() {
27 var vnode1 = a.h('div', arr.map(a.spanNum));
28 var vnode2 = a.h('div', ['new'].concat(arr).map(a.spanNum));
29 },
30 fn: function() {
31 var emptyNode = a.emptyNodeAt(elm);
32 a.patch(emptyNode, vnode1);
33 a.patch(vnode1, vnode2);
34 a.patch(vnode2, a.emptyNode);
35 },
36 })
37 .add('b/ insert first', {
38 setup: function() {
39 var vnode1 = b.h('div', arr.map(b.spanNum));
40 var vnode2 = b.h('div', ['new'].concat(arr).map(b.spanNum));
41 },
42 fn: function() {
43 var emptyNode = b.emptyNodeAt(elm);
44 b.patch(emptyNode, vnode1);
45 b.patch(vnode1, vnode2);
46 b.patch(vnode2, b.emptyNode);
47 },
48 })
49 // add listeners
50 .on('cycle', function(event) {
51 console.log(String(event.target));
52 })
53 .on('complete', function() {
54 console.log('Fastest is ' + this.filter('fastest').pluck('name'));
55 })
56 // run async
57 .run({async: true});
58});