| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 | | module.exports = defer; |  |   |  | /** |  |  * Runs provided function on next iteration of the event loop |  |  * |  |  * @param {function} fn - function to run |  |  */ |  | function defer(fn) |  | { |  |   var nextTick = typeof setImmediate == 'function' |  |     ? setImmediate |  |     : ( |  |       typeof process == 'object' && typeof process.nextTick == 'function' |  |       ? process.nextTick |  |       : null |  |     ); |  |   |  |   if (nextTick) |  |   { |  |     nextTick(fn); |  |   } |  |   else |  |   { |  |     setTimeout(fn, 0); |  |   } |  | } | 
 |