diff --git a/benchmark/runner.js b/benchmark/runner.js index 0a9f280..6787997 100644 --- a/benchmark/runner.js +++ b/benchmark/runner.js @@ -50,7 +50,7 @@ * of the |state| object. */ - var state = {}, i, j; + var state = {}; function initialize() { callbacks.start(); @@ -59,12 +59,12 @@ state.totalParseTime = 0; } - function benchmarkInitializer(i) { + function benchmarkInitializer(benchmark) { return function() { - callbacks.benchmarkStart(benchmarks[i]); + callbacks.benchmarkStart(benchmark); state.parser = peg.generate( - callbacks.readFile("../examples/" + benchmarks[i].id + ".pegjs"), + callbacks.readFile("../examples/" + benchmark.id + ".pegjs"), options ); state.benchmarkInputSize = 0; @@ -72,18 +72,16 @@ }; } - function testRunner(i, j) { + function testRunner(benchmark, test) { return function() { - var benchmark = benchmarks[i], - test = benchmark.tests[j], - input, parseTime, averageParseTime, k, t; + var input, parseTime, averageParseTime, i, t; callbacks.testStart(benchmark, test); input = callbacks.readFile(benchmark.id + "/" + test.file); parseTime = 0; - for (k = 0; k < runCount; k++) { + for (i = 0; i < runCount; i++) { t = (new Date()).getTime(); state.parser.parse(input); parseTime += (new Date()).getTime() - t; @@ -97,10 +95,10 @@ }; } - function benchmarkFinalizer(i) { + function benchmarkFinalizer(benchmark) { return function() { callbacks.benchmarkFinish( - benchmarks[i], + benchmark, state.benchmarkInputSize, state.benchmarkParseTime ); @@ -117,13 +115,13 @@ /* Main */ Q.add(initialize); - for (i = 0; i < benchmarks.length; i++) { - Q.add(benchmarkInitializer(i)); - for (j = 0; j < benchmarks[i].tests.length; j++) { - Q.add(testRunner(i, j)); - } - Q.add(benchmarkFinalizer(i)); - } + benchmarks.forEach(function(benchmark) { + Q.add(benchmarkInitializer(benchmark)); + benchmark.tests.forEach(function(test) { + Q.add(testRunner(benchmark, test)); + }); + Q.add(benchmarkFinalizer(benchmark)); + }); Q.add(finalize); Q.run();