1'use strict'; 2require('../common'); 3const assert = require('assert'); 4 5function doSetTimeout(callback, after) { 6 return function() { 7 setTimeout(callback, after); 8 }; 9} 10 11const errMessage = { 12 code: 'ERR_INVALID_ARG_TYPE', 13 name: 'TypeError' 14}; 15 16assert.throws(doSetTimeout('foo'), errMessage); 17assert.throws(doSetTimeout({ foo: 'bar' }), errMessage); 18assert.throws(doSetTimeout(), errMessage); 19assert.throws(doSetTimeout(undefined, 0), errMessage); 20assert.throws(doSetTimeout(null, 0), errMessage); 21assert.throws(doSetTimeout(false, 0), errMessage); 22 23 24function doSetInterval(callback, after) { 25 return function() { 26 setInterval(callback, after); 27 }; 28} 29 30assert.throws(doSetInterval('foo'), errMessage); 31assert.throws(doSetInterval({ foo: 'bar' }), errMessage); 32assert.throws(doSetInterval(), errMessage); 33assert.throws(doSetInterval(undefined, 0), errMessage); 34assert.throws(doSetInterval(null, 0), errMessage); 35assert.throws(doSetInterval(false, 0), errMessage); 36 37 38function doSetImmediate(callback, after) { 39 return function() { 40 setImmediate(callback, after); 41 }; 42} 43 44assert.throws(doSetImmediate('foo'), errMessage); 45assert.throws(doSetImmediate({ foo: 'bar' }), errMessage); 46assert.throws(doSetImmediate(), errMessage); 47assert.throws(doSetImmediate(undefined, 0), errMessage); 48assert.throws(doSetImmediate(null, 0), errMessage); 49assert.throws(doSetImmediate(false, 0), errMessage); 50