// compare with "google-chrome deps/v8/benchmarks/run.html" 'use strict'; var fs = require('fs'); var path = require('path'); var vm = require('vm'); var common = require('../common.js'); var dir = path.join(__dirname, '..', '..', 'deps', 'v8', 'benchmarks'); function load(filename, inGlobal) { var source = fs.readFileSync(path.join(dir, filename), 'utf8'); if (!inGlobal) source = '(function () {' + source + '\n})()'; vm.runInThisContext(source, { filename: 'v8/bechmark/' + filename }); } load('base.js', true); load('richards.js'); load('deltablue.js'); load('crypto.js'); load('raytrace.js'); load('earley-boyer.js'); load('regexp.js'); load('splay.js'); load('navier-stokes.js'); const benchmark_name = path.join('misc', 'v8-bench.js'); const times = {}; global.BenchmarkSuite.RunSuites({ NotifyStart: function(name) { times[name] = process.hrtime(); }, NotifyResult: function(name, result) { const elapsed = process.hrtime(times[name]); common.sendResult({ name: benchmark_name, conf: { benchmark: name }, rate: result, time: elapsed[0] + elapsed[1] / 1e9 }); }, NotifyError: function(name, error) { console.error(name + ': ' + error); }, NotifyScore: function(score) { common.sendResult({ name: benchmark_name, conf: { benchmark: 'Score (version ' + global.BenchmarkSuite.version + ')' }, rate: score, time: 0 }); } });