UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

39 lines (38 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRegisterImmediateImplementation = void 0; var message_channel_implementation_1 = require("./message-channel-implementation.cjs"); var next_tick_implementation_1 = require("./next-tick-implementation.cjs"); var post_message_implementation_1 = require("./post-message-implementation.cjs"); var ready_state_change_implementation_1 = require("./ready-state-change-implementation.cjs"); var set_timeout_implementation_1 = require("./set-timeout-implementation.cjs"); function canUsePostMessage(global) { if (global.postMessage && !global.importScripts) { var postMessageIsAsynchronous_1 = true; var oldOnMessage = global.onmessage; global.onmessage = function () { postMessageIsAsynchronous_1 = false; }; global.postMessage('', '*'); global.onmessage = oldOnMessage; return postMessageIsAsynchronous_1; } else { return false; } } function getRegisterImmediateImplementation(global) { if (({}).toString.call(global.process) === '[object process]') { return (0, next_tick_implementation_1.nextTickImplementation)(global.process); } else if (canUsePostMessage(global)) { return (0, post_message_implementation_1.postMessageImplementation)(global); } else if (global.MessageChannel) { return (0, message_channel_implementation_1.messageChannelImplementation)(); } else if (global.document && ('onreadystatechange' in global.document.createElement('script'))) { return (0, ready_state_change_implementation_1.readyStateChangeImplementation)(global); } else { return (0, set_timeout_implementation_1.setTimeoutImplementation)(); } } exports.getRegisterImmediateImplementation = getRegisterImmediateImplementation;