servermgrv2/public/hpilo/js/pseudo-worker.js
2023-07-17 21:09:49 +09:00

135 lines
5.4 KiB
JavaScript

/*! pseudo-worker
*
* License: MIT
* See https://github.com/chaoyangnz/webworker-polyfill/blob/master/LICENSE
*
* Copyright (c) 2018 Chao Yang
*/
!function(f) {
if ("object" == typeof exports && "undefined" != typeof module) module.exports = f(); else if ("function" == typeof define && define.amd) define([], f); else {
var g;
g = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this,
g.PseudoWorker = f();
}
}(function() {
var define, module, exports;
return function() {
function r(e, n, t) {
function o(i, f) {
if (!n[i]) {
if (!e[i]) {
var c = "function" == typeof require && require;
if (!f && c) return c(i, !0);
if (u) return u(i, !0);
var a = new Error("Cannot find module '" + i + "'");
throw a.code = "MODULE_NOT_FOUND", a;
}
var p = n[i] = {
exports: {}
};
e[i][0].call(p.exports, function(r) {
var n = e[i][1][r];
return o(n || r);
}, p, p.exports, r, e, n, t);
}
return n[i].exports;
}
for (var u = "function" == typeof require && require, i = 0; i < t.length; i++) o(t[i]);
return o;
}
return r;
}()({
1: [ function(require, module, exports) {
(function(global) {
"use strict";
function doEval(self, __pseudoworker_script) {
(function() {
eval(__pseudoworker_script);
}).call(global);
}
function PseudoWorker(path) {
function executeEach(arr, fun) {
for (var i = -1; ++i < arr.length; ) arr[i] && fun(arr[i]);
}
function callErrorListener(err) {
return function(listener) {
listener({
type: "error",
error: err,
message: err.message
});
};
}
function addEventListener(type, fun) {
"message" === type ? messageListeners.push(fun) : "error" === type && errorListeners.push(fun);
}
function removeEventListener(type, fun) {
var listeners;
if ("message" === type) listeners = messageListeners; else {
if ("error" !== type) return;
listeners = errorListeners;
}
for (var i = -1; ++i < listeners.length; ) {
var listener = listeners[i];
if (listener === fun) {
delete listeners[i];
break;
}
}
}
function postError(err) {
var callFun = callErrorListener(err);
"function" == typeof api.onerror && callFun(api.onerror), workerSelf && "function" == typeof workerSelf.onerror && callFun(workerSelf.onerror),
executeEach(errorListeners, callFun), executeEach(workerErrorListeners, callFun);
}
function runPostMessage(msg) {
function callFun(listener) {
try {
listener({
data: msg
});
} catch (err) {
postError(err);
}
}
workerSelf && "function" == typeof workerSelf.onmessage && callFun(workerSelf.onmessage),
executeEach(workerMessageListeners, callFun);
}
function postMessage(msg) {
if ("undefined" == typeof msg) throw new Error("postMessage() requires an argument");
if (!terminated) return script ? void runPostMessage(msg) : void postMessageListeners.push(msg);
}
function terminate() {
terminated = !0;
}
function workerPostMessage(msg) {
function callFun(listener) {
listener({
data: msg
});
}
terminated || ("function" == typeof api.onmessage && callFun(api.onmessage), executeEach(messageListeners, callFun));
}
function workerAddEventListener(type, fun) {
"message" === type ? workerMessageListeners.push(fun) : "error" === type && workerErrorListeners.push(fun);
}
var script, workerSelf, messageListeners = [], errorListeners = [], workerMessageListeners = [], workerErrorListeners = [], postMessageListeners = [], terminated = !1, api = this, xhr = new XMLHttpRequest();
return xhr.open("GET", path), xhr.onreadystatechange = function() {
if (4 === xhr.readyState) if (xhr.status >= 200 && xhr.status < 400) {
script = xhr.responseText, workerSelf = {
postMessage: workerPostMessage,
addEventListener: workerAddEventListener,
close: terminate
}, doEval(workerSelf, script);
var currentListeners = postMessageListeners;
postMessageListeners = [];
for (var i = 0; i < currentListeners.length; i++) runPostMessage(currentListeners[i]);
} else postError(new Error("cannot find script " + path));
}, xhr.send(), api.postMessage = postMessage, api.addEventListener = addEventListener,
api.removeEventListener = removeEventListener, api.terminate = terminate, api;
}
module.exports = PseudoWorker;
}).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {});
}, {} ]
}, {}, [ 1 ])(1);
});