0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/benchmark/misc/domain-fn-args.js
micnic 8c69d7bed4 domain: forward args to .run(fn)
Adds the feature to define arguments for the function called in
domain.run(), this is supposed to be useful when a function is called from
another context and some values from the current context are needed as
arguments, it's similar to the callback from setTimeout or setInterval.

PR-URL: https://github.com/iojs/io.js/pull/15
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-12-12 12:14:11 +11:00

43 lines
703 B
JavaScript

var common = require('../common.js');
var domain = require('domain');
var bench = common.createBenchmark(main, {
arguments: [0, 1, 2, 3],
n: [10]
});
var bdomain = domain.create();
var gargs = [1, 2, 3];
function main(conf) {
var args, ret, n = +conf.n;
var arguments = gargs.slice(0, conf.arguments);
bench.start();
bdomain.enter();
for (var i = 0; i < n; i++) {
if (arguments.length >= 2) {
args = Array.prototype.slice.call(arguments, 1);
ret = fn.apply(this, args);
} else {
ret = fn.call(this);
}
}
bdomain.exit();
bench.end(n);
}
function fn(a, b, c) {
if (!a)
a = 1;
if (!b)
b = 2;
if (!c)
c = 3;
return a + b + c;
}