; | |
Object.defineProperty(exports, "__esModule", { | |
value: true | |
}); | |
exports.fallback = fallback; | |
exports.wrap = wrap; | |
/* istanbul ignore file */ | |
var hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask; | |
var hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate; | |
var hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function'; | |
function fallback(fn) { | |
setTimeout(fn, 0); | |
} | |
function wrap(defer) { | |
return (fn, ...args) => defer(() => fn(...args)); | |
} | |
var _defer; | |
if (hasQueueMicrotask) { | |
_defer = queueMicrotask; | |
} else if (hasSetImmediate) { | |
_defer = setImmediate; | |
} else if (hasNextTick) { | |
_defer = process.nextTick; | |
} else { | |
_defer = fallback; | |
} | |
exports.default = wrap(_defer); |