@@ -4,8 +4,9 @@ window.__benchmarkResults = [];
4
4
window . benchmarkBlackbox = [ ] . push . bind ( window . __benchmarkResults ) ;
5
5
6
6
// Benchmark running an action n times.
7
- function benchmark ( name , action ) {
7
+ function benchmark ( name , setup , action ) {
8
8
window . __benchmarkResults = [ ] ;
9
+ setup ( ) ;
9
10
10
11
// Warm up the JIT.
11
12
var start = Date . now ( ) ;
@@ -29,10 +30,10 @@ function benchmark(name, action) {
29
30
30
31
// Run a benchmark when the given button is clicked and display results in the
31
32
// given element.
32
- function benchOnClick ( button , results , name , action ) {
33
+ function benchOnClick ( button , results , name , setup , action ) {
33
34
button . addEventListener ( "click" , function ( e ) {
34
35
e . preventDefault ( ) ;
35
- var stats = benchmark ( name , action ) ;
36
+ var stats = benchmark ( name , setup , action ) ;
36
37
results . innerHTML = `
37
38
<table>
38
39
<thead>
@@ -56,21 +57,24 @@ function benchOnClick(button, results, name, action) {
56
57
} , false ) ;
57
58
}
58
59
59
- var consumerButton = document . getElementById ( "bench-consumer" ) ;
60
- var consumerResults = document . getElementById ( "consumer-results" ) ;
60
+ benchOnClick ( document . getElementById ( "bench-consumer" ) ,
61
+ document . getElementById ( "consumer-results" ) ,
62
+ "parse source map" ,
63
+ function ( ) { } ,
64
+ function ( ) {
65
+ var smc = new sourceMap . SourceMapConsumer ( window . testSourceMap ) ;
66
+ benchmarkBlackbox ( smc . _generatedMappings ) ;
67
+ } ) ;
61
68
62
- benchOnClick ( consumerButton , consumerResults , "parse source map" , function ( ) {
63
- var smc = new sourceMap . SourceMapConsumer ( window . testSourceMap ) ;
64
- benchmarkBlackbox ( smc . _generatedMappings ) ;
65
- } ) ;
66
-
67
- var generatorButton = document . getElementById ( "bench-generator" ) ;
68
- var generatorResults = document . getElementById ( "generator-results" ) ;
69
-
70
- benchOnClick ( generatorButton , generatorResults , "serialize source map" , ( function ( ) {
71
- var smc = new sourceMap . SourceMapConsumer ( window . testSourceMap ) ;
72
- var smg = sourceMap . SourceMapGenerator . fromSourceMap ( smc ) ;
73
- return function ( ) {
74
- benchmarkBlackbox ( smg . toString ( ) ) ;
75
- } ;
76
- } ( ) ) ) ;
69
+ benchOnClick ( document . getElementById ( "bench-generator" ) ,
70
+ document . getElementById ( "generator-results" ) ,
71
+ "serialize source map" ,
72
+ function ( ) {
73
+ if ( ! window . smg ) {
74
+ var smc = new sourceMap . SourceMapConsumer ( window . testSourceMap ) ;
75
+ window . smg = sourceMap . SourceMapGenerator . fromSourceMap ( smc ) ;
76
+ }
77
+ } ,
78
+ function ( ) {
79
+ benchmarkBlackbox ( window . smg . toString ( ) ) ;
80
+ } ) ;
0 commit comments