diff --git a/test/parallel/test-timers-args.js b/test/parallel/test-timers-args.js new file mode 100644 index 00000000000000..599037b95bc6e6 --- /dev/null +++ b/test/parallel/test-timers-args.js @@ -0,0 +1,30 @@ +var common = require('../common'); +var assert = require('assert'); + +function range(n) { + return 'x'.repeat(n + 1).split('').map(function(_, i) { return i; }); +} + +function timeout(nargs) { + var args = range(nargs); + setTimeout.apply(null, [callback, 1].concat(args)); + + function callback() { + assert.deepEqual([].slice.call(arguments), args); + if (nargs < 128) timeout(nargs + 1); + } +} + +function interval(nargs) { + var args = range(nargs); + var timer = setTimeout.apply(null, [callback, 1].concat(args)); + + function callback() { + clearInterval(timer); + assert.deepEqual([].slice.call(arguments), args); + if (nargs < 128) interval(nargs + 1); + } +} + +timeout(0); +interval(0);