var Module = typeof Module !== "undefined" ? Module : {}; !(function (e, t) { "object" == typeof exports && "object" == typeof module ? (module.exports = t()) : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? (exports.DecoderWorker = t()) : (e.DecoderWorker = t()); })("undefined" != typeof self ? self : this, function () { return (function (e) { var t = {}; function r(s) { if (t[s]) return t[s].exports; var i = (t[s] = { i: s, l: !1, exports: {} }); return e[s].call(i.exports, i, i.exports, r), (i.l = !0), i.exports; } return ( (r.m = e), (r.c = t), (r.d = function (e, t, s) { r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: s }); }), (r.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }); }), (r.t = function (e, t) { if ((1 & t && (e = r(e)), 8 & t)) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var s = Object.create(null); if ( (r.r(s), Object.defineProperty(s, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) ) for (var i in e) r.d( s, i, function (t) { return e[t]; }.bind(null, i), ); return s; }), (r.n = function (e) { var t = e && e.__esModule ? function () { return e.default; } : function () { return e; }; return r.d(t, "a", t), t; }), (r.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t); }), (r.p = ""), r((r.s = 0)) ); })([ function (e, t, r) { null; (function (t) { var r, s, i = new Promise(function (e) { s = e; }); t.onmessage = function (e) { i.then(function () { switch (e.data.command) { case "decode": r && r.decode(e.data.pages); break; case "done": r && (r.sendLastBuffer(), t.close()); break; case "init": r = new o(e.data, Module); } }); }; var o = function (e, t) { if (!t) throw new Error( "Module with exports required to initialize a decoder instance", ); (this.mainReady = i), (this.config = Object.assign( { bufferLength: 4096, decoderSampleRate: 48e3, outputBufferSampleRate: 48e3, resampleQuality: 3, }, e, )), (this._opus_decoder_create = t._opus_decoder_create), (this._opus_decoder_destroy = t._opus_decoder_destroy), (this._speex_resampler_process_interleaved_float = t._speex_resampler_process_interleaved_float), (this._speex_resampler_init = t._speex_resampler_init), (this._speex_resampler_destroy = t._speex_resampler_destroy), (this._opus_decode_float = t._opus_decode_float), (this._free = t._free), (this._malloc = t._malloc), (this.HEAPU8 = t.HEAPU8), (this.HEAP32 = t.HEAP32), (this.HEAPF32 = t.HEAPF32), (this.outputBuffers = []); }; (o.prototype.decode = function (e) { var t = new DataView(e.buffer); this.getPageBoundaries(t).map(function (r) { var s = t.getUint8(r + 5, !0), i = t.getUint32(r + 18, !0); if ( (2 & s && ((this.numberOfChannels = t.getUint8(r + 37, !0)), this.init()), i > 1) ) { for ( var o = t.getUint8(r + 26, !0), u = r + 27 + o, n = 0; n < o; n++ ) { var f = t.getUint8(r + 27 + n, !0); if ( (this.decoderBuffer.set( e.subarray(u, (u += f)), this.decoderBufferIndex, ), (this.decoderBufferIndex += f), f < 255) ) { var h = this._opus_decode_float( this.decoder, this.decoderBufferPointer, this.decoderBufferIndex, this.decoderOutputPointer, this.decoderOutputMaxLength, 0, ), a = Math.ceil( (h * this.config.outputBufferSampleRate) / this.config.decoderSampleRate, ); (this.HEAP32[this.decoderOutputLengthPointer >> 2] = h), (this.HEAP32[this.resampleOutputLengthPointer >> 2] = a), this._speex_resampler_process_interleaved_float( this.resampler, this.decoderOutputPointer, this.decoderOutputLengthPointer, this.resampleOutputBufferPointer, this.resampleOutputLengthPointer, ), this.sendToOutputBuffers( this.HEAPF32.subarray( this.resampleOutputBufferPointer >> 2, (this.resampleOutputBufferPointer >> 2) + a * this.numberOfChannels, ), ), (this.decoderBufferIndex = 0); } } 4 & s && this.sendLastBuffer(); } }, this); }), (o.prototype.getPageBoundaries = function (e) { for (var t = [], r = 0; r < e.byteLength - 4; r++) 1399285583 == e.getUint32(r, !0) && t.push(r); return t; }), (o.prototype.init = function () { this.resetOutputBuffers(), this.initCodec(), this.initResampler(); }), (o.prototype.initCodec = function () { this.decoder && (this._opus_decoder_destroy(this.decoder), this._free(this.decoderBufferPointer), this._free(this.decoderOutputLengthPointer), this._free(this.decoderOutputPointer)); var e = this._malloc(4); (this.decoder = this._opus_decoder_create( this.config.decoderSampleRate, this.numberOfChannels, e, )), this._free(e), (this.decoderBufferMaxLength = 4e3), (this.decoderBufferPointer = this._malloc( this.decoderBufferMaxLength, )), (this.decoderBuffer = this.HEAPU8.subarray( this.decoderBufferPointer, this.decoderBufferPointer + this.decoderBufferMaxLength, )), (this.decoderBufferIndex = 0), (this.decoderOutputLengthPointer = this._malloc(4)), (this.decoderOutputMaxLength = (this.config.decoderSampleRate * this.numberOfChannels * 120) / 1e3), (this.decoderOutputPointer = this._malloc( 4 * this.decoderOutputMaxLength, )); }), (o.prototype.initResampler = function () { this.resampler && (this._speex_resampler_destroy(this.resampler), this._free(this.resampleOutputLengthPointer), this._free(this.resampleOutputBufferPointer)); var e = this._malloc(4); (this.resampler = this._speex_resampler_init( this.numberOfChannels, this.config.decoderSampleRate, this.config.outputBufferSampleRate, this.config.resampleQuality, e, )), this._free(e), (this.resampleOutputLengthPointer = this._malloc(4)), (this.resampleOutputMaxLength = Math.ceil( (this.decoderOutputMaxLength * this.config.outputBufferSampleRate) / this.config.decoderSampleRate, )), (this.resampleOutputBufferPointer = this._malloc( 4 * this.resampleOutputMaxLength, )); }), (o.prototype.resetOutputBuffers = function () { (this.outputBuffers = []), (this.outputBufferArrayBuffers = []), (this.outputBufferIndex = 0); for (var e = 0; e < this.numberOfChannels; e++) this.outputBuffers.push( new Float32Array(this.config.bufferLength), ), this.outputBufferArrayBuffers.push( this.outputBuffers[e].buffer, ); }), (o.prototype.sendLastBuffer = function () { this.sendToOutputBuffers( new Float32Array( (this.config.bufferLength - this.outputBufferIndex) * this.numberOfChannels, ), ), t.postMessage(null); }), (o.prototype.sendToOutputBuffers = function (e) { for (var r = 0, s = e.length / this.numberOfChannels; r < s; ) { var i = Math.min( s - r, this.config.bufferLength - this.outputBufferIndex, ); if (1 === this.numberOfChannels) this.outputBuffers[0].set( e.subarray(r, r + i), this.outputBufferIndex, ); else for (var o = 0; o < i; o++) this.outputBuffers.forEach(function (t, s) { t[this.outputBufferIndex + o] = e[(r + o) * this.numberOfChannels + s]; }, this); (r += i), (this.outputBufferIndex += i), this.outputBufferIndex == this.config.bufferLength && (t.postMessage( this.outputBuffers, this.outputBufferArrayBuffers, ), this.resetOutputBuffers()); } }), Module || (Module = {}), (Module.mainReady = i), (Module.OggOpusDecoder = o), (Module.onRuntimeInitialized = s), (e.exports = Module); }).call(this, r(1)); }, function (e, t) { var r; r = (function () { return this; })(); try { r = r || new Function("return this")(); } catch (e) { "object" == typeof window && (r = window); } e.exports = r; }, ]); }); var moduleOverrides = {}; var key; for (key in Module) { if (Module.hasOwnProperty(key)) { moduleOverrides[key] = Module[key]; } } var arguments_ = []; var thisProgram = "./this.program"; var quit_ = function (status, toThrow) { throw toThrow; }; var ENVIRONMENT_IS_WEB = typeof window === "object"; var ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; var ENVIRONMENT_IS_NODE = typeof process === "object" && typeof process.versions === "object" && typeof process.versions.node === "string"; var scriptDirectory = ""; function locateFile(path) { if (Module["locateFile"]) { return Module["locateFile"](path, scriptDirectory); } return scriptDirectory + path; } var read_, readAsync, readBinary, setWindowTitle; function logExceptionOnExit(e) { if (e instanceof ExitStatus) return; var toLog = e; err("exiting due to exception: " + toLog); } var nodeFS; var nodePath; if (ENVIRONMENT_IS_NODE) { if (ENVIRONMENT_IS_WORKER) { scriptDirectory = require("path").dirname(scriptDirectory) + "/"; } else { scriptDirectory = __dirname + "/"; } read_ = function shell_read(filename, binary) { if (!nodeFS) nodeFS = require("fs"); if (!nodePath) nodePath = require("path"); filename = nodePath["normalize"](filename); return nodeFS["readFileSync"](filename, binary ? null : "utf8"); }; readBinary = function readBinary(filename) { var ret = read_(filename, true); if (!ret.buffer) { ret = new Uint8Array(ret); } assert(ret.buffer); return ret; }; readAsync = function readAsync(filename, onload, onerror) { if (!nodeFS) nodeFS = require("fs"); if (!nodePath) nodePath = require("path"); filename = nodePath["normalize"](filename); nodeFS["readFile"](filename, function (err, data) { if (err) onerror(err); else onload(data.buffer); }); }; if (process["argv"].length > 1) { thisProgram = process["argv"][1].replace(/\\/g, "/"); } arguments_ = process["argv"].slice(2); if (typeof module !== "undefined") { module["exports"] = Module; } process["on"]("uncaughtException", function (ex) { if (!(ex instanceof ExitStatus)) { throw ex; } }); process["on"]("unhandledRejection", function (reason) { throw reason; }); quit_ = function (status, toThrow) { if (keepRuntimeAlive()) { process["exitCode"] = status; throw toThrow; } logExceptionOnExit(toThrow); process["exit"](status); }; Module["inspect"] = function () { return "[Emscripten Module object]"; }; } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WORKER) { scriptDirectory = self.location.href; } else if (typeof document !== "undefined" && document.currentScript) { scriptDirectory = document.currentScript.src; } if (scriptDirectory.indexOf("blob:") !== 0) { scriptDirectory = scriptDirectory.substr( 0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1, ); } else { scriptDirectory = ""; } { read_ = function (url) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); return xhr.responseText; }; if (ENVIRONMENT_IS_WORKER) { readBinary = function (url) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array(xhr.response); }; } readAsync = function (url, onload, onerror) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = function () { if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { onload(xhr.response); return; } onerror(); }; xhr.onerror = onerror; xhr.send(null); }; } setWindowTitle = function (title) { document.title = title; }; } else { } var out = Module["print"] || console.log.bind(console); var err = Module["printErr"] || console.warn.bind(console); for (key in moduleOverrides) { if (moduleOverrides.hasOwnProperty(key)) { Module[key] = moduleOverrides[key]; } } moduleOverrides = null; if (Module["arguments"]) arguments_ = Module["arguments"]; if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; if (Module["quit"]) quit_ = Module["quit"]; var wasmBinary; if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; var noExitRuntime = Module["noExitRuntime"] || true; if (typeof WebAssembly !== "object") { abort("no native wasm support detected"); } var wasmMemory; var ABORT = false; var EXITSTATUS; function assert(condition, text) { if (!condition) { abort("Assertion failed: " + text); } } var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; function UTF8ArrayToString(heap, idx, maxBytesToRead) { var endIdx = idx + maxBytesToRead; var endPtr = idx; while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr; if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) { return UTF8Decoder.decode(heap.subarray(idx, endPtr)); } else { var str = ""; while (idx < endPtr) { var u0 = heap[idx++]; if (!(u0 & 128)) { str += String.fromCharCode(u0); continue; } var u1 = heap[idx++] & 63; if ((u0 & 224) == 192) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } var u2 = heap[idx++] & 63; if ((u0 & 240) == 224) { u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; } else { u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[idx++] & 63); } if (u0 < 65536) { str += String.fromCharCode(u0); } else { var ch = u0 - 65536; str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023)); } } } return str; } function UTF8ToString(ptr, maxBytesToRead) { return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; } var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateGlobalBufferAndViews(buf) { buffer = buf; Module["HEAP8"] = HEAP8 = new Int8Array(buf); Module["HEAP16"] = HEAP16 = new Int16Array(buf); Module["HEAP32"] = HEAP32 = new Int32Array(buf); Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf); Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf); Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); Module["HEAPF64"] = HEAPF64 = new Float64Array(buf); } var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; var wasmTable; var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATPOSTRUN__ = []; var runtimeInitialized = false; var runtimeKeepaliveCounter = 0; function keepRuntimeAlive() { return noExitRuntime || runtimeKeepaliveCounter > 0; } function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function initRuntime() { runtimeInitialized = true; callRuntimeCallbacks(__ATINIT__); } function postRun() { if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } function addOnInit(cb) { __ATINIT__.unshift(cb); } function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } var runDependencies = 0; var runDependencyWatcher = null; var dependenciesFulfilled = null; function addRunDependency(id) { runDependencies++; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } } function removeRunDependency(id) { runDependencies--; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } if (runDependencies == 0) { if (runDependencyWatcher !== null) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; } if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } Module["preloadedImages"] = {}; Module["preloadedAudios"] = {}; function abort(what) { { if (Module["onAbort"]) { Module["onAbort"](what); } } what = "Aborted(" + what + ")"; err(what); ABORT = true; EXITSTATUS = 1; what += ". Build with -s ASSERTIONS=1 for more info."; var e = new WebAssembly.RuntimeError(what); throw e; } var dataURIPrefix = "data:application/octet-stream;base64,"; function isDataURI(filename) { return filename.startsWith(dataURIPrefix); } function isFileURI(filename) { return filename.startsWith("file://"); } var wasmBinaryFile; wasmBinaryFile = "decoderWorker.min.wasm"; if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } function getBinary(file) { try { if (file == wasmBinaryFile && wasmBinary) { return new Uint8Array(wasmBinary); } if (readBinary) { return readBinary(file); } else { throw "both async and sync fetching of the wasm failed"; } } catch (err) { abort(err); } } function getBinaryPromise() { if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { if (typeof fetch === "function" && !isFileURI(wasmBinaryFile)) { return fetch(wasmBinaryFile, { credentials: "same-origin" }) .then(function (response) { if (!response["ok"]) { throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; } return response["arrayBuffer"](); }) .catch(function () { return getBinary(wasmBinaryFile); }); } else { if (readAsync) { return new Promise(function (resolve, reject) { readAsync( wasmBinaryFile, function (response) { resolve(new Uint8Array(response)); }, reject, ); }); } } } return Promise.resolve().then(function () { return getBinary(wasmBinaryFile); }); } function createWasm() { var info = { a: asmLibraryArg }; function receiveInstance(instance, module) { var exports = instance.exports; Module["asm"] = exports; wasmMemory = Module["asm"]["g"]; updateGlobalBufferAndViews(wasmMemory.buffer); wasmTable = Module["asm"]["q"]; addOnInit(Module["asm"]["h"]); removeRunDependency("wasm-instantiate"); } addRunDependency("wasm-instantiate"); function receiveInstantiationResult(result) { receiveInstance(result["instance"]); } function instantiateArrayBuffer(receiver) { return getBinaryPromise() .then(function (binary) { return WebAssembly.instantiate(binary, info); }) .then(function (instance) { return instance; }) .then(receiver, function (reason) { err("failed to asynchronously prepare wasm: " + reason); abort(reason); }); } function instantiateAsync() { if ( !wasmBinary && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && typeof fetch === "function" ) { return fetch(wasmBinaryFile, { credentials: "same-origin" }).then( function (response) { var result = WebAssembly.instantiateStreaming(response, info); return result.then(receiveInstantiationResult, function (reason) { err("wasm streaming compile failed: " + reason); err("falling back to ArrayBuffer instantiation"); return instantiateArrayBuffer(receiveInstantiationResult); }); }, ); } else { return instantiateArrayBuffer(receiveInstantiationResult); } } if (Module["instantiateWasm"]) { try { var exports = Module["instantiateWasm"](info, receiveInstance); return exports; } catch (e) { err("Module.instantiateWasm callback failed with error: " + e); return false; } } instantiateAsync(); return {}; } function callRuntimeCallbacks(callbacks) { while (callbacks.length > 0) { var callback = callbacks.shift(); if (typeof callback == "function") { callback(Module); continue; } var func = callback.func; if (typeof func === "number") { if (callback.arg === undefined) { wasmTable.get(func)(); } else { wasmTable.get(func)(callback.arg); } } else { func(callback.arg === undefined ? null : callback.arg); } } } function _abort() { abort(""); } function _emscripten_memcpy_big(dest, src, num) { HEAPU8.copyWithin(dest, src, src + num); } function abortOnCannotGrowMemory(requestedSize) { abort("OOM"); } function _emscripten_resize_heap(requestedSize) { var oldSize = HEAPU8.length; requestedSize = requestedSize >>> 0; abortOnCannotGrowMemory(requestedSize); } var SYSCALLS = { mappings: {}, buffers: [null, [], []], printChar: function (stream, curr) { var buffer = SYSCALLS.buffers[stream]; if (curr === 0 || curr === 10) { (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0)); buffer.length = 0; } else { buffer.push(curr); } }, varargs: undefined, get: function () { SYSCALLS.varargs += 4; var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]; return ret; }, getStr: function (ptr) { var ret = UTF8ToString(ptr); return ret; }, get64: function (low, high) { return low; }, }; function _fd_close(fd) { return 0; } function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {} function _fd_write(fd, iov, iovcnt, pnum) { var num = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAP32[(iov + i * 8) >> 2]; var len = HEAP32[(iov + (i * 8 + 4)) >> 2]; for (var j = 0; j < len; j++) { SYSCALLS.printChar(fd, HEAPU8[ptr + j]); } num += len; } HEAP32[pnum >> 2] = num; return 0; } var asmLibraryArg = { c: _abort, e: _emscripten_memcpy_big, f: _emscripten_resize_heap, d: _fd_close, b: _fd_seek, a: _fd_write, }; var asm = createWasm(); var ___wasm_call_ctors = (Module["___wasm_call_ctors"] = function () { return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["h"]).apply(null, arguments); }); var _opus_decoder_create = (Module["_opus_decoder_create"] = function () { return (_opus_decoder_create = Module["_opus_decoder_create"] = Module["asm"]["i"]).apply(null, arguments); }); var _opus_decode_float = (Module["_opus_decode_float"] = function () { return (_opus_decode_float = Module["_opus_decode_float"] = Module["asm"]["j"]).apply(null, arguments); }); var _opus_decoder_destroy = (Module["_opus_decoder_destroy"] = function () { return (_opus_decoder_destroy = Module["_opus_decoder_destroy"] = Module["asm"]["k"]).apply(null, arguments); }); var _speex_resampler_init = (Module["_speex_resampler_init"] = function () { return (_speex_resampler_init = Module["_speex_resampler_init"] = Module["asm"]["l"]).apply(null, arguments); }); var _speex_resampler_destroy = (Module["_speex_resampler_destroy"] = function () { return (_speex_resampler_destroy = Module["_speex_resampler_destroy"] = Module["asm"]["m"]).apply(null, arguments); }); var _speex_resampler_process_interleaved_float = (Module[ "_speex_resampler_process_interleaved_float" ] = function () { return (_speex_resampler_process_interleaved_float = Module[ "_speex_resampler_process_interleaved_float" ] = Module["asm"]["n"]).apply(null, arguments); }); var _malloc = (Module["_malloc"] = function () { return (_malloc = Module["_malloc"] = Module["asm"]["o"]).apply( null, arguments, ); }); var _free = (Module["_free"] = function () { return (_free = Module["_free"] = Module["asm"]["p"]).apply(null, arguments); }); var calledRun; function ExitStatus(status) { this.name = "ExitStatus"; this.message = "Program terminated with exit(" + status + ")"; this.status = status; } dependenciesFulfilled = function runCaller() { if (!calledRun) run(); if (!calledRun) dependenciesFulfilled = runCaller; }; function run(args) { args = args || arguments_; if (runDependencies > 0) { return; } preRun(); if (runDependencies > 0) { return; } function doRun() { if (calledRun) return; calledRun = true; Module["calledRun"] = true; if (ABORT) return; initRuntime(); if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); postRun(); } if (Module["setStatus"]) { Module["setStatus"]("Running..."); setTimeout(function () { setTimeout(function () { Module["setStatus"](""); }, 1); doRun(); }, 1); } else { doRun(); } } Module["run"] = run; if (Module["preInit"]) { if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; while (Module["preInit"].length > 0) { Module["preInit"].pop()(); } } run();