mirror of https://github.com/lukechilds/node.git
Browse Source
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>archived-io.js-v0.12
micnic
10 years ago
committed by
Rod Vagg
4 changed files with 68 additions and 3 deletions
@ -0,0 +1,43 @@ |
|||
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; |
|||
} |
Loading…
Reference in new issue