timers: fail early when callback is not a function · nodejs/node@ac153bd (original) (raw)
``
1
`+
'use strict';
`
``
2
`+
const common = require('../common');
`
``
3
`+
const assert = require('assert');
`
``
4
+
``
5
`+
function doSetTimeout(callback, after) {
`
``
6
`+
return function() {
`
``
7
`+
setTimeout(callback, after);
`
``
8
`+
};
`
``
9
`+
}
`
``
10
+
``
11
`+
assert.throws(doSetTimeout('foo'),
`
``
12
`+
/"callback" argument must be a function/);
`
``
13
`+
assert.throws(doSetTimeout({foo: 'bar'}),
`
``
14
`+
/"callback" argument must be a function/);
`
``
15
`+
assert.throws(doSetTimeout(),
`
``
16
`+
/"callback" argument must be a function/);
`
``
17
`+
assert.throws(doSetTimeout(undefined, 0),
`
``
18
`+
/"callback" argument must be a function/);
`
``
19
`+
assert.throws(doSetTimeout(null, 0),
`
``
20
`+
/"callback" argument must be a function/);
`
``
21
`+
assert.throws(doSetTimeout(false, 0),
`
``
22
`+
/"callback" argument must be a function/);
`
``
23
+
``
24
+
``
25
`+
function doSetInterval(callback, after) {
`
``
26
`+
return function() {
`
``
27
`+
setInterval(callback, after);
`
``
28
`+
};
`
``
29
`+
}
`
``
30
+
``
31
`+
assert.throws(doSetInterval('foo'),
`
``
32
`+
/"callback" argument must be a function/);
`
``
33
`+
assert.throws(doSetInterval({foo: 'bar'}),
`
``
34
`+
/"callback" argument must be a function/);
`
``
35
`+
assert.throws(doSetInterval(),
`
``
36
`+
/"callback" argument must be a function/);
`
``
37
`+
assert.throws(doSetInterval(undefined, 0),
`
``
38
`+
/"callback" argument must be a function/);
`
``
39
`+
assert.throws(doSetInterval(null, 0),
`
``
40
`+
/"callback" argument must be a function/);
`
``
41
`+
assert.throws(doSetInterval(false, 0),
`
``
42
`+
/"callback" argument must be a function/);
`
``
43
+
``
44
+
``
45
`+
function doSetImmediate(callback, after) {
`
``
46
`+
return function() {
`
``
47
`+
setImmediate(callback, after);
`
``
48
`+
};
`
``
49
`+
}
`
``
50
+
``
51
`+
assert.throws(doSetImmediate('foo'),
`
``
52
`+
/"callback" argument must be a function/);
`
``
53
`+
assert.throws(doSetImmediate({foo: 'bar'}),
`
``
54
`+
/"callback" argument must be a function/);
`
``
55
`+
assert.throws(doSetImmediate(),
`
``
56
`+
/"callback" argument must be a function/);
`
``
57
`+
assert.throws(doSetImmediate(undefined, 0),
`
``
58
`+
/"callback" argument must be a function/);
`
``
59
`+
assert.throws(doSetImmediate(null, 0),
`
``
60
`+
/"callback" argument must be a function/);
`
``
61
`+
assert.throws(doSetImmediate(false, 0),
`
``
62
`+
/"callback" argument must be a function/);
`