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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
// License https://jryans.mit-license.org/
import {setImmediate, clearImmediate} from './setimmediate';
export {setImmediate, clearImmediate};
// DOM APIs, for completeness
var apply = Function.prototype.apply;
export function clearInterval(timeout) {
if (typeof timeout === 'number' && typeof global.clearInterval === 'function') {
global.clearInterval(timeout);
} else {
clearFn(timeout)
}
}
export function clearTimeout(timeout) {
if (typeof timeout === 'number' && typeof global.clearTimeout === 'function') {
global.clearTimeout(timeout);
} else {
clearFn(timeout)
}
}
function clearFn(timeout) {
if (timeout && typeof timeout.close === 'function') {
timeout.close();
}
}
export function setTimeout() {
return new Timeout(apply.call(global.setTimeout, window, arguments), clearTimeout);
}
export function setInterval() {
return new Timeout(apply.call(global.setInterval, window, arguments), clearInterval);
}
function Timeout(id) {
this._id = id;
}
Timeout.prototype.unref = Timeout.prototype.ref = function() {};
Timeout.prototype.close = function() {
clearFn(this._id);
}
// Does not start the time, just sets up the members needed.
export function enroll(item, msecs) {
clearTimeout(item._idleTimeoutId);
item._idleTimeout = msecs;
}
export function unenroll(item) {
clearTimeout(item._idleTimeoutId);
item._idleTimeout = -1;
}
export var _unrefActive = active;
export function active(item) {
clearTimeout(item._idleTimeoutId);
var msecs = item._idleTimeout;
if (msecs >= 0) {
item._idleTimeoutId = setTimeout(function onTimeout() {
if (item._onTimeout)
item._onTimeout();
}, msecs);
}
}
export default {
setImmediate: setImmediate,
clearImmediate: clearImmediate,
setTimeout: setTimeout,
clearTimeout: clearTimeout,
setInterval: setInterval,
clearInterval: clearInterval,
active: active,
unenroll: unenroll,
_unrefActive: _unrefActive,
enroll: enroll
};
|