UNPKG

857 BJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.fallback = fallback;
7exports.wrap = wrap;
8/* istanbul ignore file */
9
10var hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask;
11var hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;
12var hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';
13
14function fallback(fn) {
15 setTimeout(fn, 0);
16}
17
18function wrap(defer) {
19 return (fn, ...args) => defer(() => fn(...args));
20}
21
22var _defer;
23
24if (hasQueueMicrotask) {
25 _defer = queueMicrotask;
26} else if (hasSetImmediate) {
27 _defer = setImmediate;
28} else if (hasNextTick) {
29 _defer = process.nextTick;
30} else {
31 _defer = fallback;
32}
33
34exports.default = wrap(_defer);
\No newline at end of file