forked from nodejs/string_decoder
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbenchmark.js
More file actions
62 lines (51 loc) · 1.34 KB
/
benchmark.js
File metadata and controls
62 lines (51 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*<replacement>*/
require('babel-polyfill');
var util = require('util');
for (var i in util) {
exports[i] = util[i];
} /*</replacement>*/ /*<replacement>*/
if (!global.setImmediate) {
global.setImmediate = function setImmediate(fn) {
return setTimeout(fn.bind.apply(fn, arguments), 4);
};
}
if (!global.clearImmediate) {
global.clearImmediate = function clearImmediate(i) {
return clearTimeout(i);
};
}
/*</replacement>*/
/* eslint-disable required-modules */
'use strict';
/*<replacement>*/
var objectKeys = objectKeys || function (obj) {
var keys = [];
for (var key in obj) {
keys.push(key);
}return keys;
};
/*</replacement>*/
var assert = require('assert');
var fork = require('child_process').fork;
var path = require('path');
var runjs = path.join(__dirname, '..', '..', 'benchmark', 'run.js');
function runBenchmark(name, args, env) {
var argv = [];
for (var _i = 0; _i < args.length; _i++) {
argv.push('--set');
argv.push(args[_i]);
}
argv.push(name);
var mergedEnv = Object.assign({}, process.env, env);
var child = fork(runjs, argv, { env: mergedEnv });
child.on('exit', function (code, signal) {
assert.strictEqual(code, 0);
assert.strictEqual(signal, null);
});
}
module.exports = runBenchmark;
function forEach(xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
}
}