@@ -18,6 +18,8 @@ const {
18
18
codes : { ERR_INVALID_ARG_TYPE }
19
19
} = require ( 'internal/errors' ) ;
20
20
21
+ const { validateAbortSignal } = require ( 'internal/validators' ) ;
22
+
21
23
function cancelListenerHandler ( clear , reject ) {
22
24
if ( ! this . _destroyed ) {
23
25
clear ( this ) ;
@@ -35,15 +37,10 @@ function setTimeout(after, value, options = {}) {
35
37
options ) ) ;
36
38
}
37
39
const { signal, ref = true } = options ;
38
- if ( signal !== undefined &&
39
- ( signal === null ||
40
- typeof signal !== 'object' ||
41
- ! ( 'aborted' in signal ) ) ) {
42
- return PromiseReject (
43
- new ERR_INVALID_ARG_TYPE (
44
- 'options.signal' ,
45
- 'AbortSignal' ,
46
- signal ) ) ;
40
+ try {
41
+ validateAbortSignal ( signal , 'options.signal' ) ;
42
+ } catch ( err ) {
43
+ return PromiseReject ( err ) ;
47
44
}
48
45
if ( typeof ref !== 'boolean' ) {
49
46
return PromiseReject (
@@ -85,15 +82,10 @@ function setImmediate(value, options = {}) {
85
82
options ) ) ;
86
83
}
87
84
const { signal, ref = true } = options ;
88
- if ( signal !== undefined &&
89
- ( signal === null ||
90
- typeof signal !== 'object' ||
91
- ! ( 'aborted' in signal ) ) ) {
92
- return PromiseReject (
93
- new ERR_INVALID_ARG_TYPE (
94
- 'options.signal' ,
95
- 'AbortSignal' ,
96
- signal ) ) ;
85
+ try {
86
+ validateAbortSignal ( signal , 'options.signal' ) ;
87
+ } catch ( err ) {
88
+ return PromiseReject ( err ) ;
97
89
}
98
90
if ( typeof ref !== 'boolean' ) {
99
91
return PromiseReject (
0 commit comments