From d5ba1d12d4582518841220662cc8ec8d1d12d9e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Portas=20L=C3=B3pez?= <81629707+TeenBiscuits@users.noreply.github.com> Date: Fri, 16 Feb 2024 22:31:04 +0100 Subject: [PATCH] Update Git Ingore and Add Builds --- .gitignore | 2 +- build/web/CronoSquare.apple-touch-icon.png | Bin 0 -> 12190 bytes build/web/CronoSquare.audio.worklet.js | 213 + build/web/CronoSquare.html | 248 + build/web/CronoSquare.icon.png | Bin 0 -> 5578 bytes build/web/CronoSquare.js | 14477 +++++++++++++++++++ build/web/CronoSquare.pck | Bin 0 -> 2274368 bytes build/web/CronoSquare.png | Bin 0 -> 21443 bytes build/web/CronoSquare.wasm | Bin 0 -> 35649444 bytes build/web/CronoSquare.worker.js | 161 + 10 files changed, 15100 insertions(+), 1 deletion(-) create mode 100644 build/web/CronoSquare.apple-touch-icon.png create mode 100644 build/web/CronoSquare.audio.worklet.js create mode 100644 build/web/CronoSquare.html create mode 100644 build/web/CronoSquare.icon.png create mode 100644 build/web/CronoSquare.js create mode 100644 build/web/CronoSquare.pck create mode 100644 build/web/CronoSquare.png create mode 100644 build/web/CronoSquare.wasm create mode 100644 build/web/CronoSquare.worker.js diff --git a/.gitignore b/.gitignore index 5d34abf..b7ae172 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ .godot/ # Exportaciones -build/ \ No newline at end of file +build/win \ No newline at end of file diff --git a/build/web/CronoSquare.apple-touch-icon.png b/build/web/CronoSquare.apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1feb92fe6cc55fb13e81f6f52cdad4b11ec2d941 GIT binary patch literal 12190 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 QfqS@bUzMdRB#i_A4_97NVE_OC literal 0 HcmV?d00001 diff --git a/build/web/CronoSquare.audio.worklet.js b/build/web/CronoSquare.audio.worklet.js new file mode 100644 index 0000000..89b581b --- /dev/null +++ b/build/web/CronoSquare.audio.worklet.js @@ -0,0 +1,213 @@ +/**************************************************************************/ +/* audio.worklet.js */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +class RingBuffer { + constructor(p_buffer, p_state, p_threads) { + this.buffer = p_buffer; + this.avail = p_state; + this.threads = p_threads; + this.rpos = 0; + this.wpos = 0; + } + + data_left() { + return this.threads ? Atomics.load(this.avail, 0) : this.avail; + } + + space_left() { + return this.buffer.length - this.data_left(); + } + + read(output) { + const size = this.buffer.length; + let from = 0; + let to_write = output.length; + if (this.rpos + to_write > size) { + const high = size - this.rpos; + output.set(this.buffer.subarray(this.rpos, size)); + from = high; + to_write -= high; + this.rpos = 0; + } + if (to_write) { + output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from); + } + this.rpos += to_write; + if (this.threads) { + Atomics.add(this.avail, 0, -output.length); + Atomics.notify(this.avail, 0); + } else { + this.avail -= output.length; + } + } + + write(p_buffer) { + const to_write = p_buffer.length; + const mw = this.buffer.length - this.wpos; + if (mw >= to_write) { + this.buffer.set(p_buffer, this.wpos); + this.wpos += to_write; + if (mw === to_write) { + this.wpos = 0; + } + } else { + const high = p_buffer.subarray(0, mw); + const low = p_buffer.subarray(mw); + this.buffer.set(high, this.wpos); + this.buffer.set(low); + this.wpos = low.length; + } + if (this.threads) { + Atomics.add(this.avail, 0, to_write); + Atomics.notify(this.avail, 0); + } else { + this.avail += to_write; + } + } +} + +class GodotProcessor extends AudioWorkletProcessor { + constructor() { + super(); + this.threads = false; + this.running = true; + this.lock = null; + this.notifier = null; + this.output = null; + this.output_buffer = new Float32Array(); + this.input = null; + this.input_buffer = new Float32Array(); + this.port.onmessage = (event) => { + const cmd = event.data['cmd']; + const data = event.data['data']; + this.parse_message(cmd, data); + }; + } + + process_notify() { + if (this.notifier) { + Atomics.add(this.notifier, 0, 1); + Atomics.notify(this.notifier, 0); + } + } + + parse_message(p_cmd, p_data) { + if (p_cmd === 'start' && p_data) { + const state = p_data[0]; + let idx = 0; + this.threads = true; + this.lock = state.subarray(idx, ++idx); + this.notifier = state.subarray(idx, ++idx); + const avail_in = state.subarray(idx, ++idx); + const avail_out = state.subarray(idx, ++idx); + this.input = new RingBuffer(p_data[1], avail_in, true); + this.output = new RingBuffer(p_data[2], avail_out, true); + } else if (p_cmd === 'stop') { + this.running = false; + this.output = null; + this.input = null; + this.lock = null; + this.notifier = null; + } else if (p_cmd === 'start_nothreads') { + this.output = new RingBuffer(p_data[0], p_data[0].length, false); + } else if (p_cmd === 'chunk') { + this.output.write(p_data); + } + } + + static array_has_data(arr) { + return arr.length && arr[0].length && arr[0][0].length; + } + + process(inputs, outputs, parameters) { + if (!this.running) { + return false; // Stop processing. + } + if (this.output === null) { + return true; // Not ready yet, keep processing. + } + const process_input = GodotProcessor.array_has_data(inputs); + if (process_input) { + const input = inputs[0]; + const chunk = input[0].length * input.length; + if (this.input_buffer.length !== chunk) { + this.input_buffer = new Float32Array(chunk); + } + if (!this.threads) { + GodotProcessor.write_input(this.input_buffer, input); + this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer }); + } else if (this.input.space_left() >= chunk) { + GodotProcessor.write_input(this.input_buffer, input); + this.input.write(this.input_buffer); + } else { + this.port.postMessage('Input buffer is full! Skipping input frame.'); + } + } + const process_output = GodotProcessor.array_has_data(outputs); + if (process_output) { + const output = outputs[0]; + const chunk = output[0].length * output.length; + if (this.output_buffer.length !== chunk) { + this.output_buffer = new Float32Array(chunk); + } + if (this.output.data_left() >= chunk) { + this.output.read(this.output_buffer); + GodotProcessor.write_output(output, this.output_buffer); + if (!this.threads) { + this.port.postMessage({ 'cmd': 'read', 'data': chunk }); + } + } else { + this.port.postMessage('Output buffer has not enough frames! Skipping output frame.'); + } + } + this.process_notify(); + return true; + } + + static write_output(dest, source) { + const channels = dest.length; + for (let ch = 0; ch < channels; ch++) { + for (let sample = 0; sample < dest[ch].length; sample++) { + dest[ch][sample] = source[sample * channels + ch]; + } + } + } + + static write_input(dest, source) { + const channels = source.length; + for (let ch = 0; ch < channels; ch++) { + for (let sample = 0; sample < source[ch].length; sample++) { + dest[sample * channels + ch] = source[ch][sample]; + } + } + } +} + +registerProcessor('godot-processor', GodotProcessor); diff --git a/build/web/CronoSquare.html b/build/web/CronoSquare.html new file mode 100644 index 0000000..ebb7972 --- /dev/null +++ b/build/web/CronoSquare.html @@ -0,0 +1,248 @@ + + + + + + CronoSquare + + + + + + + + HTML5 canvas appears to be unsupported in the current browser.
+ Please try updating or use a different browser. +
+
+ + + +
+ + + + + + diff --git a/build/web/CronoSquare.icon.png b/build/web/CronoSquare.icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2e1d42a97e1f1f02f462ec90c2295f2ab3a9e9b9 GIT binary patch literal 5578 zcmV;*6*cOKP)Px~gh@m}RCt{2oq24WXPw8t&wI`7V|*WpV>>=_v`Lz?M+!YCly;%JOSeU=#I~gf zR=cVMEmW|jY0*lRfC8)43W=jD*dDaNZYTnpZlJVV5+^Y^n|P8q@f|z1#~#o1-p~Fq zK4!+(9Pc}xvEPq08o$T$yua7acb@b2JP)CiB30Vj_BJY1{WO4m02-!0#VJQ%VFm#J zz0;qgJmFsT`8uwq8knRafQ@atKB-gsG-3&Fk^dZJ2zlYM@5I67Zd_6TZEd^S6^icz z^d3Xav&a$T5Kr)g&v&A0(K{9sKy&Nvhbi=z0NBkk&mt#?1k5Ad7mvTT(8YxWK$=>2 zJqOTd=3O8Jyx@S{?gS^;z_2U`7&DBvND&Ghx~4&uC5U1KiX6qlKWg&LD;G~Z3n1a* zJOMPd?s|Tq#JAaO3GefzWUg2PJuRS3g!5QM}& zJy};CW{}jsZ%@i9ELIOThdbezQhGCk*ofXNoM6kPO%^$X`yNS^$J$zp^o-J8R>;GHVCR~Sv_MVDM$gZ4mX7LTVQM03=-G5k?aTK*m^6J zci+hBS&l8Y0fZ!+V?1669xsHZ?SK@4*mnVP&pBw3sjQy05)_O82qEAq*1^_z1Nf@O zd5N+RY-u%Y^{tQwE@t#hp?U+jigiohWOKsavJ;M$o1l#JLFzpRWuymG*Ov~LClrhT zithXj7 zq)jRbYk)Tt6+>Cakt+&D0JMO*U$uxO0K?J6@JgGIGE^!YTMI`3(Zcyv6_Tw5BLE9? z$op0R!*Z~-?SW(Cj(LMU`HFMLN5GX-B68sgA$sN=$RoXJ1?P&(!If4+>^WzWfpO0=`vJCfZE)_m8vvjT zUxC*c!GJR>CL2IE&!g_X+R=K19#F1AUp!EY{BIZ1$ z@Z9TntyYC0DLO0Hm?y zri7ffqIyGC4_VFGZp?*-$|%!ke*br`27=BjQ~d`3jVduw6exWkC3EK)#d*aE(C zy&-WKBY>JlP*_=iE)i-{_iQFL4x$Hg3@zMo|XzVy*{Pzt>LLH>v!Zv;?V;=q&lZkl)g%$YOz^}#pc^Z76~ zHio9ACT!WV8K3$4&!D(C<~;hPkGA8|NDu>lV;m=!qq4|`uiiIjYd93f%P+r-vuDqt zySp1+Zz)<^TXEn0_hIMGoe5!|xTg&lho{gxo*P@2!!)m8!t$`U+?4YD|8#dNnk(m) zeA6`@Kls59@ZA@`hpShwA{Y!p(=?2Yjp6+H3pn)FA#B*N0rmBDU>Slkw+-+5uBZGw zfn#uEeFKRbkm`ZQ5Q)ph~07VWS`&%m$&b|Kn>v-dh zUo0ACVqyXZo;`pc{rHEdtESpn>c9&RZbyYDwl{)5EaPjxIE|jM zyUr9K(yK&(bPOixd0o0Zx?q$=_aSTd|tAd?AeHx)qYyhgJ z#F0{%)@siJ=ZaDaJ7cRPNjQEiwJvX6*Kzbn;vi0Kinf|fUI@T#OPoD)@nU)_dtSPD z2|%nUNd;yB$5oa|&7;X}k3FNiyBm5My>mWa;ya~ktJ&m*00Pm(U%RHJH{zvCPnMWW zq5RL5scBo)3~iht7q+HCUI?H+srlC0mfp&qZPWKB$72Tl)6KV*mKKmST;SW2-YFNh zrb1o_;4eLXDB4^zY}c-xU{YM!v$eGq#l^+YDaDDaezQ!R<#hi9BvpsQ;lPbI-jH&* zJ$v@d{;gBscn)k$g}e|zRMBwg+_l-`#>PfG{P07|hGSV4Pd)V{0N~KMVT2@Ooh24R zQg!_HbZn^mOJDvn1Y!9}8V@}105)x&>o_`met5PhS!wb@008h`f9^^6r+oGwK8w5V zzH8C@?RGo9^3|u%ys;TUQN_>xd^Hzl0svm^=*472!Mb(z`1;qs2A6B`SDGvP4xwJ;wKDB#2?0n*sY)z+lts}LiTqIS;2ZI6JwYeINjSaZx zo{u0H3?dp85ex?5bULwR%N9KLxySJ6V~>L4WBqM91)e{64wtW|=Qn9)PoUw`!)IUw z2a50gT-xEb))nKKPi{qVQZtECifA+nr*m%E_@Jobn+MO~%)n%FG)wa87jHqSGcoHH z6%7yk+k0un(_T}AXCK&_5LYA;fy3dLS3wL(D*pA?AK+x)L|V@PfT_bjgBD8f9T&s& z>EYROZZLqyUpj{W?i_%q%&oak2$@ZMN!4-iOiqmz*JPh;6wzc`zIl* znY&1Bsx86`4{nETdK_QTbUgE`vpAJS0`V+^8|sTu?{%VN+SZ|o=xnPY8_diB@>&39 z;&lnw*IW*U0Xn+JF&Z?_?J8T$6hK~#2CfADu#DfHu{@Xat`1<4TPy*raV!C>aZIZN zIBhKcZj%cknIb6b2rCpJSx0F4J1kRZ)*M0rv7u-ePv8;=JUkQo76@EC3pWq^>Ijc9 zljhu-CIF6M@aV^PFL_T;RN)WHn2gBqhh7cFE&-)Z z0bZAY5?AcI)F~|M8}PfAe`=a-E7}V1*g1IY92&|N-W2kOf9l3BPxR;5Dr32CTP^e4qZ+-$FmGdoIFaLv8=De z75BH3M~O?odany*?pWWt%bvM;pWfSm`?uF-^$tL+zhBiT{{3)f8&Jo;gFh^zZ#;~N zh=M?5uDF{FE0~PNjwd4u6fLpmFfd`>uH-o_0u)WhXi!?R*DXHFblWmFZ%dtVD~@Lq zSNuEt@x@_qc8Szxdc^aSTpTwn+^j0xzD0gAkhM1dqO_JAgI=JEl z5X=)Nka$cKKxR$6cmXhkz{W9Y52n~SCSi#7;K>2Je`zeOICiWrofUwcXHo3n=Q*z~ z2La%StM>%O%siH;iOprxI)bPwXS7z(l$iKWc4trzs4h0;_&kTQHFqk6z=9lg*Es`zBHW`I%a4Nw5DAM1mf#uRh_ zfUcXmV;Ep^4xohtPzEo7uTQTl^tFyY{O-&(cwGYAb`EYkKizE{`*z!SxTm|3K6qUJeNuB*WD5{CqC1tjQCtc*;4@}=Q z+w^{bsP7nrx@J(4UYkA;RWfdNdF(NPT$_v{B4=KM?)OLV(0{y-x>5(il8T_HA|k1| z+0Rf@Azm_PZNPX;7l0O;K;(lXaBMYhmy5-q03x!6h^%46px#qa(N<(sGJ5u1XgOGd zKPL_$V)sd?!}&8CCf`v8d=Ps-$jP&E<`EP+@q1_nE_1$GQHHM|d@^^dtmaGrR8tY` zcoXVqU#=cma418U5kCHVQ+xiB$*E5u)l`Izz6tSCr?taSJd{Gba0H>_zsqUj11m5Z zNOc|2^M8isAA)n+he7P~*XvnJ=;293PW=(e*vb@-D>fV~5BESFe+BloJ+L=z10`$B zL0Q)!Uhaf=@dT*Bn?R()iuwcSij2s)|ATb(EbOhjAgtT8>USO`RD;xe9^%E$oHX;6 zBQG36v~U37lZPQ*JOQC$Gi>YHR$b9RBU6z2FF@)$4?U7U-p+X;fEl!K0MYYDAYM2M zzPt`XeLMKNjR2b;ORA-fB10a!1i8NpN}leZl2-zlfl>;2bO7?`0La-tL8xg0U)2b< ztOkrdJ1<|eq0u1J@gc|~Jy5S*F?^FJqsdDF#6wjDQoj#UzYhSwx{APgYr&P(fb-UZ z^>}mBH@^S`6zbGCwDD_D{X$@1uZ-UslN*VKmr7u3|8bVlZ}R*5V)lbTJGq5&)fkwjK#Uk4!-ejvKav=Sop<0!W6+BGj=#s2H4g zjj$XThZ}_BL0BGy;{leN{+k0>A?B~3si2w+s;YpdfT}8}rhsY+^k`^Bn`vfK@B&y0 zs;P#ptg%{IW4$jH$yfqd<1hdM@h2$E*`Uy37}TqbBWH0E%7)z|r_~qL?4+*jpHn6iw`;B7_`ac*4CJe^Qa7dEb3$kv_Vn zLQYz6T44Cs7@x1>D&lehN-09Y{MgLE!Z<=ffATEjBNr|l>0tnXA>@VlE0P$2B<0^m z#}=6(NnuDyMLWwdF96g10GE9y4g%y*{0+g$aj0s3Y;0taIjSNfI5}^E>06h&j{h2n z>j>fro&YdgNKmR{YT`On#S%fGqAD_`Ca;6ig!X?_V3;Rn4rT@5^PT7-U>=FTQ`1yT z`iHIJpa7AiFed%O&=M>3lp%PetLwOL<^)Mzex#{&*Yf~;UkVX{K42&07M)>{u-EfhBT)cv{+be?rssrvcn-q;(diafD@< z7iOAzOOcWQX4tgp<_)s0JWMIQ83YZWXaHc$MuQfa5&%IDD0&GYM+Am{?ZSm4J*fu% Yf6e=Y9!hZvxBvhE07*qoM6N<$f^s#2VE_OC literal 0 HcmV?d00001 diff --git a/build/web/CronoSquare.js b/build/web/CronoSquare.js new file mode 100644 index 0000000..fad00d1 --- /dev/null +++ b/build/web/CronoSquare.js @@ -0,0 +1,14477 @@ + +var Godot = (() => { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + + return ( +function(Godot = {}) { + +// Support for growable heap + pthreads, where the buffer may change, so JS views +// must be updated. +function GROWABLE_HEAP_I8() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP8; +} +function GROWABLE_HEAP_U8() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU8; +} +function GROWABLE_HEAP_I16() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP16; +} +function GROWABLE_HEAP_U16() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU16; +} +function GROWABLE_HEAP_I32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP32; +} +function GROWABLE_HEAP_U32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU32; +} +function GROWABLE_HEAP_F32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPF32; +} +function GROWABLE_HEAP_F64() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPF64; +} + +var Module = typeof Godot != "undefined" ? Godot : {}; + +var readyPromiseResolve, readyPromiseReject; + +Module["ready"] = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; +}); + +[ "_main", "__emscripten_thread_init", "__emscripten_thread_exit", "__emscripten_thread_crashed", "__emscripten_thread_mailbox_await", "__emscripten_tls_init", "_pthread_self", "checkMailbox", "establishStackSpace", "invokeEntryPoint", "PThread", "__Z14godot_web_mainiPPc", "_fflush", "__emwebxr_on_input_event", "__emwebxr_on_simple_event", "__emscripten_check_mailbox", "onRuntimeInitialized" ].forEach(prop => { + if (!Object.getOwnPropertyDescriptor(Module["ready"], prop)) { + Object.defineProperty(Module["ready"], prop, { + get: () => abort("You are getting " + prop + " on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"), + set: () => abort("You are setting " + prop + " on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js") + }); + } +}); + +var moduleOverrides = Object.assign({}, Module); + +var arguments_ = []; + +var thisProgram = "./this.program"; + +var quit_ = (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 ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + +if (Module["ENVIRONMENT"]) { + throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)"); +} + +var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false; + +var scriptDirectory = ""; + +function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; +} + +var read_, readAsync, readBinary, setWindowTitle; + +if (ENVIRONMENT_IS_SHELL) { + if (typeof process == "object" && typeof require === "function" || typeof window == "object" || typeof importScripts == "function") throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)"); + if (typeof read != "undefined") { + read_ = f => { + return read(f); + }; + } + readBinary = f => { + let data; + if (typeof readbuffer == "function") { + return new Uint8Array(readbuffer(f)); + } + data = read(f, "binary"); + assert(typeof data == "object"); + return data; + }; + readAsync = (f, onload, onerror) => { + setTimeout(() => onload(readBinary(f)), 0); + }; + if (typeof clearTimeout == "undefined") { + globalThis.clearTimeout = id => {}; + } + if (typeof scriptArgs != "undefined") { + arguments_ = scriptArgs; + } else if (typeof arguments != "undefined") { + arguments_ = arguments; + } + if (typeof quit == "function") { + quit_ = (status, toThrow) => { + setTimeout(() => { + if (!(toThrow instanceof ExitStatus)) { + let toLog = toThrow; + if (toThrow && typeof toThrow == "object" && toThrow.stack) { + toLog = [ toThrow, toThrow.stack ]; + } + err(`exiting due to exception: ${toLog}`); + } + quit(status); + }); + throw toThrow; + }; + } + if (typeof print != "undefined") { + if (typeof console == "undefined") console = {}; + console.log = print; + console.warn = console.error = typeof printErr != "undefined" ? printErr : print; + } +} 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 (_scriptDir) { + scriptDirectory = _scriptDir; + } + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } else { + scriptDirectory = ""; + } + if (!(typeof window == "object" || typeof importScripts == "function")) throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)"); + { + read_ = url => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + if (ENVIRONMENT_IS_WORKER) { + readBinary = url => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(xhr.response); + }; + } + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + } + setWindowTitle = title => document.title = title; +} else { + throw new Error("environment detection error"); +} + +var out = Module["print"] || console.log.bind(console); + +var err = Module["printErr"] || console.error.bind(console); + +Object.assign(Module, moduleOverrides); + +moduleOverrides = null; + +checkIncomingModuleAPI(); + +if (Module["arguments"]) arguments_ = Module["arguments"]; + +legacyModuleProp("arguments", "arguments_"); + +if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + +legacyModuleProp("thisProgram", "thisProgram"); + +if (Module["quit"]) quit_ = Module["quit"]; + +legacyModuleProp("quit", "quit_"); + +assert(typeof Module["memoryInitializerPrefixURL"] == "undefined", "Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"); + +assert(typeof Module["pthreadMainPrefixURL"] == "undefined", "Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"); + +assert(typeof Module["cdInitializerPrefixURL"] == "undefined", "Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"); + +assert(typeof Module["filePackagePrefixURL"] == "undefined", "Module.filePackagePrefixURL option was removed, use Module.locateFile instead"); + +assert(typeof Module["read"] == "undefined", "Module.read option was removed (modify read_ in JS)"); + +assert(typeof Module["readAsync"] == "undefined", "Module.readAsync option was removed (modify readAsync in JS)"); + +assert(typeof Module["readBinary"] == "undefined", "Module.readBinary option was removed (modify readBinary in JS)"); + +assert(typeof Module["setWindowTitle"] == "undefined", "Module.setWindowTitle option was removed (modify setWindowTitle in JS)"); + +assert(typeof Module["TOTAL_MEMORY"] == "undefined", "Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"); + +legacyModuleProp("read", "read_"); + +legacyModuleProp("readAsync", "readAsync"); + +legacyModuleProp("readBinary", "readBinary"); + +legacyModuleProp("setWindowTitle", "setWindowTitle"); + +var PROXYFS = "PROXYFS is no longer included by default; build with -lproxyfs.js"; + +var WORKERFS = "WORKERFS is no longer included by default; build with -lworkerfs.js"; + +var NODEFS = "NODEFS is no longer included by default; build with -lnodefs.js"; + +assert(ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER || ENVIRONMENT_IS_NODE, "Pthreads do not work in this environment yet (need Web Workers, or an alternative to them)"); + +assert(!ENVIRONMENT_IS_NODE, "node environment detected but not enabled at build time. Add 'node' to `-sENVIRONMENT` to enable."); + +assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."); + +var wasmBinary; + +if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + +legacyModuleProp("wasmBinary", "wasmBinary"); + +var noExitRuntime = Module["noExitRuntime"] || false; + +legacyModuleProp("noExitRuntime", "noExitRuntime"); + +if (typeof WebAssembly != "object") { + abort("no native wasm support detected"); +} + +var wasmMemory; + +var wasmModule; + +var ABORT = false; + +var EXITSTATUS; + +function assert(condition, text) { + if (!condition) { + abort("Assertion failed" + (text ? ": " + text : "")); + } +} + +var HEAP, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateMemoryViews() { + var b = wasmMemory.buffer; + Module["HEAP8"] = HEAP8 = new Int8Array(b); + Module["HEAP16"] = HEAP16 = new Int16Array(b); + Module["HEAP32"] = HEAP32 = new Int32Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); +} + +assert(!Module["STACK_SIZE"], "STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"); + +assert(typeof Int32Array != "undefined" && typeof Float64Array !== "undefined" && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined, "JS engine does not provide full typed array support"); + +var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 33554432; + +legacyModuleProp("INITIAL_MEMORY", "INITIAL_MEMORY"); + +assert(INITIAL_MEMORY >= 5242880, "INITIAL_MEMORY should be larger than STACK_SIZE, was " + INITIAL_MEMORY + "! (STACK_SIZE=" + 5242880 + ")"); + +if (ENVIRONMENT_IS_PTHREAD) { + wasmMemory = Module["wasmMemory"]; +} else { + if (Module["wasmMemory"]) { + wasmMemory = Module["wasmMemory"]; + } else { + wasmMemory = new WebAssembly.Memory({ + "initial": INITIAL_MEMORY / 65536, + "maximum": 2147483648 / 65536, + "shared": true + }); + if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) { + err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"); + if (ENVIRONMENT_IS_NODE) { + err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"); + } + throw Error("bad memory"); + } + } +} + +updateMemoryViews(); + +INITIAL_MEMORY = wasmMemory.buffer.byteLength; + +assert(INITIAL_MEMORY % 65536 === 0); + +var wasmTable; + +function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + if (max == 0) { + max += 4; + } + GROWABLE_HEAP_U32()[max >> 2] = 34821223; + GROWABLE_HEAP_U32()[max + 4 >> 2] = 2310721022; + GROWABLE_HEAP_U32()[0] = 1668509029; +} + +function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + if (max == 0) { + max += 4; + } + var cookie1 = GROWABLE_HEAP_U32()[max >> 2]; + var cookie2 = GROWABLE_HEAP_U32()[max + 4 >> 2]; + if (cookie1 != 34821223 || cookie2 != 2310721022) { + abort("Stack overflow! Stack cookie has been overwritten at " + ptrToString(max) + ", expected hex dwords 0x89BACDFE and 0x2135467, but received " + ptrToString(cookie2) + " " + ptrToString(cookie1)); + } + if (GROWABLE_HEAP_U32()[0] !== 1668509029) { + abort("Runtime error: The application has corrupted its heap memory area (address zero)!"); + } +} + +(function() { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 25459; + if (h8[0] !== 115 || h8[1] !== 99) throw "Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"; +})(); + +var __ATPRERUN__ = []; + +var __ATINIT__ = []; + +var __ATMAIN__ = []; + +var __ATEXIT__ = []; + +var __ATPOSTRUN__ = []; + +var runtimeInitialized = false; + +var runtimeExited = false; + +var runtimeKeepaliveCounter = 0; + +function keepRuntimeAlive() { + return noExitRuntime || runtimeKeepaliveCounter > 0; +} + +function preRun() { + assert(!ENVIRONMENT_IS_PTHREAD); + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [ Module["preRun"] ]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); +} + +function initRuntime() { + assert(!runtimeInitialized); + runtimeInitialized = true; + if (ENVIRONMENT_IS_PTHREAD) return; + checkStackCookie(); + if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); + FS.ignorePermissions = false; + TTY.init(); + SOCKFS.root = FS.mount(SOCKFS, {}, null); + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + checkStackCookie(); + if (ENVIRONMENT_IS_PTHREAD) return; + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + assert(!runtimeExited); + checkStackCookie(); + if (ENVIRONMENT_IS_PTHREAD) return; + ___funcs_on_exit(); + callRuntimeCallbacks(__ATEXIT__); + FS.quit(); + TTY.shutdown(); + IDBFS.quit(); + PThread.terminateAllThreads(); + runtimeExited = true; +} + +function postRun() { + checkStackCookie(); + if (ENVIRONMENT_IS_PTHREAD) return; + 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 addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} + +assert(Math.imul, "This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"); + +assert(Math.fround, "This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"); + +assert(Math.clz32, "This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"); + +assert(Math.trunc, "This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"); + +var runDependencies = 0; + +var runDependencyWatcher = null; + +var dependenciesFulfilled = null; + +var runDependencyTracking = {}; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } +} + +function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval != "undefined") { + runDependencyWatcher = setInterval(() => { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err("still waiting on run dependencies:"); + } + err("dependency: " + dep); + } + if (shown) { + err("(end of list)"); + } + }, 1e4); + } + } else { + err("warning: run dependency added without ID"); + } +} + +function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err("warning: run dependency removed without ID"); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } +} + +function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + what = "Aborted(" + what + ")"; + err(what); + ABORT = true; + EXITSTATUS = 1; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; +} + +var dataURIPrefix = "data:application/octet-stream;base64,"; + +function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); +} + +function isFileURI(filename) { + return filename.startsWith("file://"); +} + +function createExportWrapper(name, fixedasm) { + return function() { + var displayName = name; + var asm = fixedasm; + if (!fixedasm) { + asm = Module["asm"]; + } + assert(runtimeInitialized, "native function `" + displayName + "` called before runtime initialization"); + assert(!runtimeExited, "native function `" + displayName + "` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"); + if (!asm[name]) { + assert(asm[name], "exported native function `" + displayName + "` not found"); + } + return asm[name].apply(null, arguments); + }; +} + +var wasmBinaryFile; + +wasmBinaryFile = "godot.web.template_release.wasm32.wasm"; + +if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); +} + +function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; + } catch (err) { + abort(err); + } +} + +function getBinaryPromise(binaryFile) { + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == "function") { + return fetch(binaryFile, { + credentials: "same-origin" + }).then(response => { + if (!response["ok"]) { + throw "failed to load wasm binary file at '" + binaryFile + "'"; + } + return response["arrayBuffer"](); + }).catch(() => getBinary(binaryFile)); + } + } + return Promise.resolve().then(() => getBinary(binaryFile)); +} + +function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then(binary => { + return WebAssembly.instantiate(binary, imports); + }).then(instance => { + return instance; + }).then(receiver, reason => { + err("failed to asynchronously prepare wasm: " + reason); + if (isFileURI(wasmBinaryFile)) { + err("warning: Loading from a file URI (" + wasmBinaryFile + ") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"); + } + abort(reason); + }); +} + +function instantiateAsync(binary, binaryFile, imports, callback) { + if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") { + return fetch(binaryFile, { + credentials: "same-origin" + }).then(response => { + var result = WebAssembly.instantiateStreaming(response, imports); + return result.then(callback, function(reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(binaryFile, imports, callback); + }); + }); + } else { + return instantiateArrayBuffer(binaryFile, imports, callback); + } +} + +function createWasm() { + var info = { + "env": wasmImports, + "wasi_snapshot_preview1": wasmImports + }; + function receiveInstance(instance, module) { + var exports = instance.exports; + Module["asm"] = exports; + registerTLSInit(Module["asm"]["_emscripten_tls_init"]); + wasmTable = Module["asm"]["__indirect_function_table"]; + assert(wasmTable, "table not found in wasm exports"); + addOnInit(Module["asm"]["__wasm_call_ctors"]); + wasmModule = module; + PThread.loadWasmModuleToAllWorkers(() => removeRunDependency("wasm-instantiate")); + return exports; + } + addRunDependency("wasm-instantiate"); + var trueModule = Module; + function receiveInstantiationResult(result) { + assert(Module === trueModule, "the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"); + trueModule = null; + receiveInstance(result["instance"], result["module"]); + } + if (Module["instantiateWasm"]) { + try { + return Module["instantiateWasm"](info, receiveInstance); + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + readyPromiseReject(e); + } + } + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); + return {}; +} + +var tempDouble; + +var tempI64; + +function legacyModuleProp(prop, newName) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + get: function() { + abort("Module." + prop + " has been replaced with plain " + newName + " (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)"); + } + }); + } +} + +function ignoredModuleProp(prop) { + if (Object.getOwnPropertyDescriptor(Module, prop)) { + abort("`Module." + prop + "` was supplied but `" + prop + "` not included in INCOMING_MODULE_JS_API"); + } +} + +function isExportedByForceFilesystem(name) { + return name === "FS_createPath" || name === "FS_createDataFile" || name === "FS_createPreloadedFile" || name === "FS_unlink" || name === "addRunDependency" || name === "FS_createLazyFile" || name === "FS_createDevice" || name === "removeRunDependency"; +} + +function missingGlobal(sym, msg) { + if (typeof globalThis !== "undefined") { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function() { + warnOnce("`" + sym + "` is not longer defined by emscripten. " + msg); + return undefined; + } + }); + } +} + +missingGlobal("buffer", "Please use HEAP8.buffer or wasmMemory.buffer"); + +function missingLibrarySymbol(sym) { + if (typeof globalThis !== "undefined" && !Object.getOwnPropertyDescriptor(globalThis, sym)) { + Object.defineProperty(globalThis, sym, { + configurable: true, + get: function() { + var msg = "`" + sym + "` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line"; + var librarySymbol = sym; + if (!librarySymbol.startsWith("_")) { + librarySymbol = "$" + sym; + } + msg += " (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=" + librarySymbol + ")"; + if (isExportedByForceFilesystem(sym)) { + msg += ". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"; + } + warnOnce(msg); + return undefined; + } + }); + } + unexportedRuntimeSymbol(sym); +} + +function unexportedRuntimeSymbol(sym) { + if (!Object.getOwnPropertyDescriptor(Module, sym)) { + Object.defineProperty(Module, sym, { + configurable: true, + get: function() { + var msg = "'" + sym + "' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)"; + if (isExportedByForceFilesystem(sym)) { + msg += ". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"; + } + abort(msg); + } + }); + } +} + +function dbg(text) { + console.warn.apply(console, arguments); +} + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; +} + +function terminateWorker(worker) { + worker.terminate(); + worker.onmessage = e => { + var cmd = e["data"]["cmd"]; + err('received "' + cmd + '" command from terminated worker: ' + worker.workerID); + }; +} + +function killThread(pthread_ptr) { + assert(!ENVIRONMENT_IS_PTHREAD, "Internal Error! killThread() can only ever be called from main application thread!"); + assert(pthread_ptr, "Internal Error! Null pthread_ptr in killThread!"); + var worker = PThread.pthreads[pthread_ptr]; + delete PThread.pthreads[pthread_ptr]; + terminateWorker(worker); + __emscripten_thread_free_data(pthread_ptr); + PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); + worker.pthread_ptr = 0; +} + +function cancelThread(pthread_ptr) { + assert(!ENVIRONMENT_IS_PTHREAD, "Internal Error! cancelThread() can only ever be called from main application thread!"); + assert(pthread_ptr, "Internal Error! Null pthread_ptr in cancelThread!"); + var worker = PThread.pthreads[pthread_ptr]; + worker.postMessage({ + "cmd": "cancel" + }); +} + +function cleanupThread(pthread_ptr) { + assert(!ENVIRONMENT_IS_PTHREAD, "Internal Error! cleanupThread() can only ever be called from main application thread!"); + assert(pthread_ptr, "Internal Error! Null pthread_ptr in cleanupThread!"); + var worker = PThread.pthreads[pthread_ptr]; + assert(worker); + PThread.returnWorkerToPool(worker); +} + +function zeroMemory(address, size) { + GROWABLE_HEAP_U8().fill(0, address, address + size); + return address; +} + +function spawnThread(threadParams) { + assert(!ENVIRONMENT_IS_PTHREAD, "Internal Error! spawnThread() can only ever be called from main application thread!"); + assert(threadParams.pthread_ptr, "Internal error, no pthread ptr!"); + var worker = PThread.getNewWorker(); + if (!worker) { + return 6; + } + assert(!worker.pthread_ptr, "Internal error!"); + PThread.runningWorkers.push(worker); + PThread.pthreads[threadParams.pthread_ptr] = worker; + worker.pthread_ptr = threadParams.pthread_ptr; + var msg = { + "cmd": "run", + "start_routine": threadParams.startRoutine, + "arg": threadParams.arg, + "pthread_ptr": threadParams.pthread_ptr + }; + worker.postMessage(msg, threadParams.transferList); + return 0; +} + +var PATH = { + isAbs: path => path.charAt(0) === "/", + splitPath: filename => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + if (allowAboveRoot) { + for (;up; up--) { + parts.unshift(".."); + } + } + return parts; + }, + normalize: path => { + var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; + path = PATH.normalizeArray(path.split("/").filter(p => !!p), !isAbsolute).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, + dirname: path => { + var result = PATH.splitPath(path), root = result[0], dir = result[1]; + if (!root && !dir) { + return "."; + } + if (dir) { + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + }, + basename: path => { + if (path === "/") return "/"; + path = PATH.normalize(path); + path = path.replace(/\/$/, ""); + var lastSlash = path.lastIndexOf("/"); + if (lastSlash === -1) return path; + return path.substr(lastSlash + 1); + }, + join: function() { + var paths = Array.prototype.slice.call(arguments); + return PATH.normalize(paths.join("/")); + }, + join2: (l, r) => { + return PATH.normalize(l + "/" + r); + } +}; + +function initRandomFill() { + if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { + return view => (view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))), + view); + } else abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };"); +} + +function randomFill(view) { + return (randomFill = initRandomFill())(view); +} + +var PATH_FS = { + resolve: function() { + var resolvedPath = "", resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = i >= 0 ? arguments[i] : FS.cwd(); + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter(p => !!p), !resolvedAbsolute).join("/"); + return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (;start < arr.length; start++) { + if (arr[start] !== "") break; + } + var end = arr.length - 1; + for (;end >= 0; end--) { + if (arr[end] !== "") break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + } +}; + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; +} + +function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + assert(typeof str === "string"); + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | u >> 6; + heap[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | u >> 12; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) break; + if (u > 1114111) warnOnce("Invalid Unicode code point " + ptrToString(u) + " encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."); + heap[outIdx++] = 240 | u >> 18; + heap[outIdx++] = 128 | u >> 12 & 63; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } + } + heap[outIdx] = 0; + return outIdx - startIdx; +} + +function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +} + +var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined; + +function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr)); + } + var str = ""; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + if ((u0 & 248) != 240) warnOnce("Invalid UTF-8 leading byte " + ptrToString(u0) + " encountered when deserializing a UTF-8 string in wasm memory to a JS string!"); + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[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; +} + +var TTY = { + ttys: [], + init: function() {}, + shutdown: function() {}, + register: function(dev, ops) { + TTY.ttys[dev] = { + input: [], + output: [], + ops: ops + }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open: function(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close: function(stream) { + stream.tty.ops.fsync(stream.tty); + }, + fsync: function(stream) { + stream.tty.ops.fsync(stream.tty); + }, + read: function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }, + default_tty_ops: { + get_char: function(tty) { + if (!tty.input.length) { + var result = null; + if (typeof window != "undefined" && typeof window.prompt == "function") { + result = window.prompt("Input: "); + if (result !== null) { + result += "\n"; + } + } else if (typeof readline == "function") { + result = readline(); + if (result !== null) { + result += "\n"; + } + } + if (!result) { + return null; + } + tty.input = intArrayFromString(result, true); + } + return tty.input.shift(); + }, + put_char: function(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync: function(tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + } + }, + default_tty1_ops: { + put_char: function(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync: function(tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + } + } +}; + +function alignMemory(size, alignment) { + assert(alignment, "alignment argument is required"); + return Math.ceil(size / alignment) * alignment; +} + +function mmapAlloc(size) { + abort("internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported"); +} + +var MEMFS = { + ops_table: null, + mount: function(mount) { + return MEMFS.createNode(null, "/", 16384 | 511, 0); + }, + createNode: function(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + }, + getFileDataAsTypedArray: function(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); + return new Uint8Array(node.contents); + }, + expandFileStorage: function(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); + }, + resizeFileStorage: function(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr: function(node) { + var attr = {}; + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr: function(node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup: function(parent, name) { + throw FS.genericErrors[44]; + }, + mknod: function(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename: function(old_node, new_dir, new_name) { + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now(); + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + }, + unlink: function(parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + rmdir: function(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + readdir: function(node) { + var entries = [ ".", ".." ]; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + }, + symlink: function(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); + node.link = oldpath; + return node; + }, + readlink: function(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + } + }, + stream_ops: { + read: function(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + }, + write: function(stream, buffer, offset, length, position, canOwn) { + assert(!(buffer instanceof ArrayBuffer)); + if (buffer.buffer === GROWABLE_HEAP_I8().buffer) { + canOwn = false; + } + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + if (canOwn) { + assert(position === 0, "canOwn must imply no weird position inside the file"); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek: function(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + allocate: function(stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + }, + mmap: function(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) { + allocated = false; + ptr = contents.byteOffset; + } else { + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + GROWABLE_HEAP_I8().set(contents, ptr); + } + return { + ptr: ptr, + allocated: allocated + }; + }, + msync: function(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + return 0; + } + } +}; + +function asyncLoad(url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ""; + readAsync(url, arrayBuffer => { + assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, event => { + if (onerror) { + onerror(); + } else { + throw `Loading data file "${url}" failed.`; + } + }); + if (dep) addRunDependency(dep); +} + +var preloadPlugins = Module["preloadPlugins"] || []; + +function FS_handledByPreloadPlugin(byteArray, fullname, finish, onerror) { + if (typeof Browser != "undefined") Browser.init(); + var handled = false; + preloadPlugins.forEach(function(plugin) { + if (handled) return; + if (plugin["canHandle"](fullname)) { + plugin["handle"](byteArray, fullname, finish, onerror); + handled = true; + } + }); + return handled; +} + +function FS_createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency(`cp ${fullname}`); + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + if (onload) onload(); + removeRunDependency(dep); + } + if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => { + if (onerror) onerror(); + removeRunDependency(dep); + })) { + return; + } + finish(byteArray); + } + addRunDependency(dep); + if (typeof url == "string") { + asyncLoad(url, byteArray => processData(byteArray), onerror); + } else { + processData(url); + } +} + +function FS_modeStringToFlags(str) { + var flagModes = { + "r": 0, + "r+": 2, + "w": 512 | 64 | 1, + "w+": 512 | 64 | 2, + "a": 1024 | 64 | 1, + "a+": 1024 | 64 | 2 + }; + var flags = flagModes[str]; + if (typeof flags == "undefined") { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; +} + +function FS_getMode(canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; +} + +var IDBFS = { + dbs: {}, + indexedDB: () => { + if (typeof indexedDB != "undefined") return indexedDB; + var ret = null; + if (typeof window == "object") ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; + assert(ret, "IDBFS used, but indexedDB not supported"); + return ret; + }, + DB_VERSION: 21, + DB_STORE_NAME: "FILE_DATA", + mount: function(mount) { + return MEMFS.mount.apply(null, arguments); + }, + syncfs: (mount, populate, callback) => { + IDBFS.getLocalSet(mount, (err, local) => { + if (err) return callback(err); + IDBFS.getRemoteSet(mount, (err, remote) => { + if (err) return callback(err); + var src = populate ? remote : local; + var dst = populate ? local : remote; + IDBFS.reconcile(src, dst, callback); + }); + }); + }, + quit: () => { + Object.values(IDBFS.dbs).forEach(value => value.close()); + IDBFS.dbs = {}; + }, + getDB: (name, callback) => { + var db = IDBFS.dbs[name]; + if (db) { + return callback(null, db); + } + var req; + try { + req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); + } catch (e) { + return callback(e); + } + if (!req) { + return callback("Unable to connect to IndexedDB"); + } + req.onupgradeneeded = e => { + var db = e.target.result; + var transaction = e.target.transaction; + var fileStore; + if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { + fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); + } else { + fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); + } + if (!fileStore.indexNames.contains("timestamp")) { + fileStore.createIndex("timestamp", "timestamp", { + unique: false + }); + } + }; + req.onsuccess = () => { + db = req.result; + IDBFS.dbs[name] = db; + callback(null, db); + }; + req.onerror = e => { + callback(this.error); + e.preventDefault(); + }; + }, + getLocalSet: (mount, callback) => { + var entries = {}; + function isRealDir(p) { + return p !== "." && p !== ".."; + } + function toAbsolute(root) { + return p => { + return PATH.join2(root, p); + }; + } + var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); + while (check.length) { + var path = check.pop(); + var stat; + try { + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + if (FS.isDir(stat.mode)) { + check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); + } + entries[path] = { + "timestamp": stat.mtime + }; + } + return callback(null, { + type: "local", + entries: entries + }); + }, + getRemoteSet: (mount, callback) => { + var entries = {}; + IDBFS.getDB(mount.mountpoint, (err, db) => { + if (err) return callback(err); + try { + var transaction = db.transaction([ IDBFS.DB_STORE_NAME ], "readonly"); + transaction.onerror = e => { + callback(this.error); + e.preventDefault(); + }; + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + var index = store.index("timestamp"); + index.openKeyCursor().onsuccess = event => { + var cursor = event.target.result; + if (!cursor) { + return callback(null, { + type: "remote", + db: db, + entries: entries + }); + } + entries[cursor.primaryKey] = { + "timestamp": cursor.key + }; + cursor.continue(); + }; + } catch (e) { + return callback(e); + } + }); + }, + loadLocalEntry: (path, callback) => { + var stat, node; + try { + var lookup = FS.lookupPath(path); + node = lookup.node; + stat = FS.stat(path); + } catch (e) { + return callback(e); + } + if (FS.isDir(stat.mode)) { + return callback(null, { + "timestamp": stat.mtime, + "mode": stat.mode + }); + } else if (FS.isFile(stat.mode)) { + node.contents = MEMFS.getFileDataAsTypedArray(node); + return callback(null, { + "timestamp": stat.mtime, + "mode": stat.mode, + "contents": node.contents + }); + } else { + return callback(new Error("node type not supported")); + } + }, + storeLocalEntry: (path, entry, callback) => { + try { + if (FS.isDir(entry["mode"])) { + FS.mkdirTree(path, entry["mode"]); + } else if (FS.isFile(entry["mode"])) { + FS.writeFile(path, entry["contents"], { + canOwn: true + }); + } else { + return callback(new Error("node type not supported")); + } + FS.chmod(path, entry["mode"]); + FS.utime(path, entry["timestamp"], entry["timestamp"]); + } catch (e) { + return callback(e); + } + callback(null); + }, + removeLocalEntry: (path, callback) => { + try { + var stat = FS.stat(path); + if (FS.isDir(stat.mode)) { + FS.rmdir(path); + } else if (FS.isFile(stat.mode)) { + FS.unlink(path); + } + } catch (e) { + return callback(e); + } + callback(null); + }, + loadRemoteEntry: (store, path, callback) => { + var req = store.get(path); + req.onsuccess = event => { + callback(null, event.target.result); + }; + req.onerror = e => { + callback(this.error); + e.preventDefault(); + }; + }, + storeRemoteEntry: (store, path, entry, callback) => { + try { + var req = store.put(entry, path); + } catch (e) { + callback(e); + return; + } + req.onsuccess = () => { + callback(null); + }; + req.onerror = e => { + callback(this.error); + e.preventDefault(); + }; + }, + removeRemoteEntry: (store, path, callback) => { + var req = store.delete(path); + req.onsuccess = () => { + callback(null); + }; + req.onerror = e => { + callback(this.error); + e.preventDefault(); + }; + }, + reconcile: (src, dst, callback) => { + var total = 0; + var create = []; + Object.keys(src.entries).forEach(function(key) { + var e = src.entries[key]; + var e2 = dst.entries[key]; + if (!e2 || e["timestamp"].getTime() != e2["timestamp"].getTime()) { + create.push(key); + total++; + } + }); + var remove = []; + Object.keys(dst.entries).forEach(function(key) { + if (!src.entries[key]) { + remove.push(key); + total++; + } + }); + if (!total) { + return callback(null); + } + var errored = false; + var db = src.type === "remote" ? src.db : dst.db; + var transaction = db.transaction([ IDBFS.DB_STORE_NAME ], "readwrite"); + var store = transaction.objectStore(IDBFS.DB_STORE_NAME); + function done(err) { + if (err && !errored) { + errored = true; + return callback(err); + } + } + transaction.onerror = e => { + done(this.error); + e.preventDefault(); + }; + transaction.oncomplete = e => { + if (!errored) { + callback(null); + } + }; + create.sort().forEach(path => { + if (dst.type === "local") { + IDBFS.loadRemoteEntry(store, path, (err, entry) => { + if (err) return done(err); + IDBFS.storeLocalEntry(path, entry, done); + }); + } else { + IDBFS.loadLocalEntry(path, (err, entry) => { + if (err) return done(err); + IDBFS.storeRemoteEntry(store, path, entry, done); + }); + } + }); + remove.sort().reverse().forEach(path => { + if (dst.type === "local") { + IDBFS.removeLocalEntry(path, done); + } else { + IDBFS.removeRemoteEntry(store, path, done); + } + }); + } +}; + +var ERRNO_MESSAGES = { + 0: "Success", + 1: "Arg list too long", + 2: "Permission denied", + 3: "Address already in use", + 4: "Address not available", + 5: "Address family not supported by protocol family", + 6: "No more processes", + 7: "Socket already connected", + 8: "Bad file number", + 9: "Trying to read unreadable message", + 10: "Mount device busy", + 11: "Operation canceled", + 12: "No children", + 13: "Connection aborted", + 14: "Connection refused", + 15: "Connection reset by peer", + 16: "File locking deadlock error", + 17: "Destination address required", + 18: "Math arg out of domain of func", + 19: "Quota exceeded", + 20: "File exists", + 21: "Bad address", + 22: "File too large", + 23: "Host is unreachable", + 24: "Identifier removed", + 25: "Illegal byte sequence", + 26: "Connection already in progress", + 27: "Interrupted system call", + 28: "Invalid argument", + 29: "I/O error", + 30: "Socket is already connected", + 31: "Is a directory", + 32: "Too many symbolic links", + 33: "Too many open files", + 34: "Too many links", + 35: "Message too long", + 36: "Multihop attempted", + 37: "File or path name too long", + 38: "Network interface is not configured", + 39: "Connection reset by network", + 40: "Network is unreachable", + 41: "Too many open files in system", + 42: "No buffer space available", + 43: "No such device", + 44: "No such file or directory", + 45: "Exec format error", + 46: "No record locks available", + 47: "The link has been severed", + 48: "Not enough core", + 49: "No message of desired type", + 50: "Protocol not available", + 51: "No space left on device", + 52: "Function not implemented", + 53: "Socket is not connected", + 54: "Not a directory", + 55: "Directory not empty", + 56: "State not recoverable", + 57: "Socket operation on non-socket", + 59: "Not a typewriter", + 60: "No such device or address", + 61: "Value too large for defined data type", + 62: "Previous owner died", + 63: "Not super-user", + 64: "Broken pipe", + 65: "Protocol error", + 66: "Unknown protocol", + 67: "Protocol wrong type for socket", + 68: "Math result not representable", + 69: "Read only file system", + 70: "Illegal seek", + 71: "No such process", + 72: "Stale file handle", + 73: "Connection timed out", + 74: "Text file busy", + 75: "Cross-device link", + 100: "Device not a stream", + 101: "Bad font file fmt", + 102: "Invalid slot", + 103: "Invalid request code", + 104: "No anode", + 105: "Block device required", + 106: "Channel number out of range", + 107: "Level 3 halted", + 108: "Level 3 reset", + 109: "Link number out of range", + 110: "Protocol driver not attached", + 111: "No CSI structure available", + 112: "Level 2 halted", + 113: "Invalid exchange", + 114: "Invalid request descriptor", + 115: "Exchange full", + 116: "No data (for no delay io)", + 117: "Timer expired", + 118: "Out of streams resources", + 119: "Machine is not on the network", + 120: "Package not installed", + 121: "The object is remote", + 122: "Advertise error", + 123: "Srmount error", + 124: "Communication error on send", + 125: "Cross mount point (not really error)", + 126: "Given log. name not unique", + 127: "f.d. invalid for this operation", + 128: "Remote address changed", + 129: "Can access a needed shared lib", + 130: "Accessing a corrupted shared lib", + 131: ".lib section in a.out corrupted", + 132: "Attempting to link in too many libs", + 133: "Attempting to exec a shared library", + 135: "Streams pipe error", + 136: "Too many users", + 137: "Socket type not supported", + 138: "Not supported", + 139: "Protocol family not supported", + 140: "Can't send after socket shutdown", + 141: "Too many references", + 142: "Host is down", + 148: "No medium (in tape drive)", + 156: "Level 2 not synchronized" +}; + +var ERRNO_CODES = {}; + +function demangle(func) { + warnOnce("warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling"); + return func; +} + +function demangleAll(text) { + var regex = /\b_Z[\w\d_]+/g; + return text.replace(regex, function(x) { + var y = demangle(x); + return x === y ? x : y + " [" + x + "]"; + }); +} + +var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + ErrnoError: null, + genericErrors: {}, + filesystems: null, + syncFSRequests: 0, + lookupPath: (path, opts = {}) => { + path = PATH_FS.resolve(path); + if (!path) return { + path: "", + node: null + }; + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + opts = Object.assign(defaults, opts); + if (opts.recurse_count > 8) { + throw new FS.ErrnoError(32); + } + var parts = path.split("/").filter(p => !!p); + var current = FS.root; + var current_path = "/"; + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + break; + } + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + if (FS.isMountpoint(current)) { + if (!islast || islast && opts.follow_mount) { + current = current.mounted.root; + } + } + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + var lookup = FS.lookupPath(current_path, { + recurse_count: opts.recurse_count + 1 + }); + current = lookup.node; + if (count++ > 40) { + throw new FS.ErrnoError(32); + } + } + } + } + return { + path: current_path, + node: current + }; + }, + getPath: node => { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path; + } + path = path ? `${node.name}/${path}` : node.name; + node = node.parent; + } + }, + hashName: (parentid, name) => { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = (hash << 5) - hash + name.charCodeAt(i) | 0; + } + return (parentid + hash >>> 0) % FS.nameTable.length; + }, + hashAddNode: node => { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode: node => { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode: (parent, name) => { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + return FS.lookup(parent, name); + }, + createNode: (parent, name, mode, rdev) => { + assert(typeof parent == "object"); + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node; + }, + destroyNode: node => { + FS.hashRemoveNode(node); + }, + isRoot: node => { + return node === node.parent; + }, + isMountpoint: node => { + return !!node.mounted; + }, + isFile: mode => { + return (mode & 61440) === 32768; + }, + isDir: mode => { + return (mode & 61440) === 16384; + }, + isLink: mode => { + return (mode & 61440) === 40960; + }, + isChrdev: mode => { + return (mode & 61440) === 8192; + }, + isBlkdev: mode => { + return (mode & 61440) === 24576; + }, + isFIFO: mode => { + return (mode & 61440) === 4096; + }, + isSocket: mode => { + return (mode & 49152) === 49152; + }, + flagsToPermissionString: flag => { + var perms = [ "r", "w", "rw" ][flag & 3]; + if (flag & 512) { + perms += "w"; + } + return perms; + }, + nodePermissions: (node, perms) => { + if (FS.ignorePermissions) { + return 0; + } + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } else if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } else if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup: dir => { + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate: (dir, name) => { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, "wx"); + }, + mayDelete: (dir, name, isdir) => { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, + mayOpen: (node, flags) => { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, + MAX_OPEN_FDS: 4096, + nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStream: fd => FS.streams[fd], + createStream: (stream, fd_start, fd_end) => { + if (!FS.FSStream) { + FS.FSStream = function() { + this.shared = {}; + }; + FS.FSStream.prototype = {}; + Object.defineProperties(FS.FSStream.prototype, { + object: { + get: function() { + return this.node; + }, + set: function(val) { + this.node = val; + } + }, + isRead: { + get: function() { + return (this.flags & 2097155) !== 1; + } + }, + isWrite: { + get: function() { + return (this.flags & 2097155) !== 0; + } + }, + isAppend: { + get: function() { + return this.flags & 1024; + } + }, + flags: { + get: function() { + return this.shared.flags; + }, + set: function(val) { + this.shared.flags = val; + } + }, + position: { + get: function() { + return this.shared.position; + }, + set: function(val) { + this.shared.position = val; + } + } + }); + } + stream = Object.assign(new FS.FSStream(), stream); + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream: fd => { + FS.streams[fd] = null; + }, + chrdev_stream_ops: { + open: stream => { + var device = FS.getDevice(stream.node.rdev); + stream.stream_ops = device.stream_ops; + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + }, + llseek: () => { + throw new FS.ErrnoError(70); + } + }, + major: dev => dev >> 8, + minor: dev => dev & 255, + makedev: (ma, mi) => ma << 8 | mi, + registerDevice: (dev, ops) => { + FS.devices[dev] = { + stream_ops: ops + }; + }, + getDevice: dev => FS.devices[dev], + getMounts: mount => { + var mounts = []; + var check = [ mount ]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push.apply(check, m.mounts); + } + return mounts; + }, + syncfs: (populate, callback) => { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`); + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + function doCallback(errCode) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(errCode); + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + mounts.forEach(mount => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, + mount: (type, opts, mountpoint) => { + if (typeof type == "string") { + throw type; + } + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false + }); + mountpoint = lookup.path; + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [] + }; + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot; + } else if (node) { + node.mounted = mount; + if (node.mount) { + node.mount.mounts.push(mount); + } + } + return mountRoot; + }, + unmount: mountpoint => { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false + }); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + Object.keys(FS.nameTable).forEach(hash => { + var current = FS.nameTable[hash]; + while (current) { + var next = current.name_next; + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + current = next; + } + }); + node.mounted = null; + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + }, + lookup: (parent, name) => { + return parent.node_ops.lookup(parent, name); + }, + mknod: (path, mode, dev) => { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === "." || name === "..") { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + create: (path, mode) => { + mode = mode !== undefined ? mode : 438; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir: (path, mode) => { + mode = mode !== undefined ? mode : 511; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree: (path, mode) => { + var dirs = path.split("/"); + var d = ""; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += "/" + dirs[i]; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev: (path, mode, dev) => { + if (typeof dev == "undefined") { + dev = mode; + mode = 438; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink: (oldpath, newpath) => { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { + parent: true + }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename: (old_path, new_path) => { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + var lookup, old_dir, new_dir; + lookup = FS.lookupPath(old_path, { + parent: true + }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { + parent: true + }); + new_dir = lookup.node; + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + var old_node = FS.lookupNode(old_dir, old_name); + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (old_node === new_node) { + return; + } + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { + throw new FS.ErrnoError(10); + } + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + FS.hashRemoveNode(old_node); + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + FS.hashAddNode(old_node); + } + }, + rmdir: path => { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir: path => { + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + }, + unlink: path => { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink: path => { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + }, + stat: (path, dontFollow) => { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + }, + lstat: path => { + return FS.stat(path, true); + }, + chmod: (path, mode, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + mode: mode & 4095 | node.mode & ~4095, + timestamp: Date.now() + }); + }, + lchmod: (path, mode) => { + FS.chmod(path, mode, true); + }, + fchmod: (fd, mode) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chmod(stream.node, mode); + }, + chown: (path, uid, gid, dontFollow) => { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + }); + }, + lchown: (path, uid, gid) => { + FS.chown(path, uid, gid, true); + }, + fchown: (fd, uid, gid) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + FS.chown(stream.node, uid, gid); + }, + truncate: (path, len) => { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: true + }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + }, + ftruncate: (fd, len) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + }, + utime: (path, atime, mtime) => { + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + }, + open: (path, flags, mode) => { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags; + mode = typeof mode == "undefined" ? 438 : mode; + if (flags & 64) { + mode = mode & 4095 | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == "object") { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) {} + } + var created = false; + if (flags & 64) { + if (node) { + if (flags & 128) { + throw new FS.ErrnoError(20); + } + } else { + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + if (flags & 512 && !created) { + FS.truncate(node, 0); + } + flags &= ~(128 | 512 | 131072); + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + ungotten: [], + error: false + }); + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module["logReadFiles"] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, + close: stream => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed: stream => { + return stream.fd === null; + }, + llseek: (stream, offset, whence) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read: (stream, buffer, offset, length, position) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write: (stream, buffer, offset, length, position, canOwn) => { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + allocate: (stream, offset, length) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + }, + mmap: (stream, length, position, prot, flags) => { + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync: (stream, buffer, offset, length, mmapFlags) => { + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + munmap: stream => 0, + ioctl: (stream, cmd, arg) => { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile: (path, opts = {}) => { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + throw new Error(`Invalid encoding type "${opts.encoding}"`); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === "binary") { + ret = buf; + } + FS.close(stream); + return ret; + }, + writeFile: (path, data, opts = {}) => { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + throw new Error("Unsupported data type"); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir: path => { + var lookup = FS.lookupPath(path, { + follow: true + }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories: () => { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, + createDefaultDevices: () => { + FS.mkdir("/dev"); + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length + }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + var randomBuffer = new Uint8Array(1024), randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomLeft = randomFill(randomBuffer).byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice("/dev", "random", randomByte); + FS.createDevice("/dev", "urandom", randomByte); + FS.mkdir("/dev/shm"); + FS.mkdir("/dev/shm/tmp"); + }, + createSpecialDirectories: () => { + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount({ + mount: () => { + var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); + node.node_ops = { + lookup: (parent, name) => { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + var ret = { + parent: null, + mount: { + mountpoint: "fake" + }, + node_ops: { + readlink: () => stream.path + } + }; + ret.parent = ret; + return ret; + } + }; + return node; + } + }, {}, "/proc/self/fd"); + }, + createStandardStreams: () => { + if (Module["stdin"]) { + FS.createDevice("/dev", "stdin", Module["stdin"]); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (Module["stdout"]) { + FS.createDevice("/dev", "stdout", null, Module["stdout"]); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (Module["stderr"]) { + FS.createDevice("/dev", "stderr", null, Module["stderr"]); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + var stdin = FS.open("/dev/stdin", 0); + var stdout = FS.open("/dev/stdout", 1); + var stderr = FS.open("/dev/stderr", 1); + assert(stdin.fd === 0, `invalid handle for stdin (${stdin.fd})`); + assert(stdout.fd === 1, `invalid handle for stdout (${stdout.fd})`); + assert(stderr.fd === 2, `invalid handle for stderr (${stderr.fd})`); + }, + ensureErrnoError: () => { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno, node) { + this.name = "ErrnoError"; + this.node = node; + this.setErrno = function(errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + if (this.stack) { + Object.defineProperty(this, "stack", { + value: new Error().stack, + writable: true + }); + this.stack = demangleAll(this.stack); + } + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + [ 44 ].forEach(code => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ""; + }); + }, + staticInit: () => { + FS.ensureErrnoError(); + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, "/"); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = { + "MEMFS": MEMFS, + "IDBFS": IDBFS + }; + }, + init: (input, output, error) => { + assert(!FS.init.initialized, "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"); + FS.init.initialized = true; + FS.ensureErrnoError(); + Module["stdin"] = input || Module["stdin"]; + Module["stdout"] = output || Module["stdout"]; + Module["stderr"] = error || Module["stderr"]; + FS.createStandardStreams(); + }, + quit: () => { + FS.init.initialized = false; + _fflush(0); + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + }, + findObject: (path, dontResolveLastLink) => { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath: (path, dontResolveLastLink) => { + try { + var lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink + }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { + parent: true + }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink + }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath: (parent, path, canRead, canWrite) => { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) {} + parent = current; + } + return current; + }, + createFile: (parent, name, properties, canRead, canWrite) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS_getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS_getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + }, + createDevice: (parent, name, input, output) => { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS_getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + FS.registerDevice(dev, { + open: stream => { + stream.seekable = false; + }, + close: stream => { + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: (stream, buffer, offset, length, pos) => { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: (stream, buffer, offset, length, pos) => { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile: obj => { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (typeof XMLHttpRequest != "undefined") { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else if (read_) { + try { + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error("Cannot load without read() or XMLHttpRequest."); + } + }, + createLazyFile: (parent, name, url, canRead, canWrite) => { + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = idx / this.chunkSize | 0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + var xhr = new XMLHttpRequest(); + xhr.open("HEAD", url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var chunkSize = 1024 * 1024; + if (!hasByteServing) chunkSize = datalength; + var doXHR = (from, to) => { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!"); + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + xhr.responseType = "arraybuffer"; + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/plain; charset=x-user-defined"); + } + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } + return intArrayFromString(xhr.responseText || "", true); + }; + var lazyArray = this; + lazyArray.setDataGetter(chunkNum => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + end = Math.min(end, datalength - 1); + if (typeof lazyArray.chunks[chunkNum] == "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + if (usesGzip || !datalength) { + chunkSize = datalength = 1; + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest != "undefined") { + if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: function() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + }, + chunkSize: { + get: function() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + }); + var properties = { + isDevice: false, + contents: lazyArray + }; + } else { + var properties = { + isDevice: false, + url: url + }; + } + var node = FS.createFile(parent, name, properties, canRead, canWrite); + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + Object.defineProperties(node, { + usedBytes: { + get: function() { + return this.contents.length; + } + } + }); + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(key => { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position); + return { + ptr: ptr, + allocated: true + }; + }; + node.stream_ops = stream_ops; + return node; + }, + absolutePath: () => { + abort("FS.absolutePath has been removed; use PATH_FS.resolve instead"); + }, + createFolder: () => { + abort("FS.createFolder has been removed; use FS.mkdir instead"); + }, + createLink: () => { + abort("FS.createLink has been removed; use FS.symlink instead"); + }, + joinPath: () => { + abort("FS.joinPath has been removed; use PATH.join instead"); + }, + mmapAlloc: () => { + abort("FS.mmapAlloc has been replaced by the top level function mmapAlloc"); + }, + standardizePath: () => { + abort("FS.standardizePath has been removed; use PATH.normalize instead"); + } +}; + +function UTF8ToString(ptr, maxBytesToRead) { + assert(typeof ptr == "number"); + return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : ""; +} + +var SYSCALLS = { + DEFAULT_POLLMASK: 5, + calculateAt: function(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return PATH.join2(dir, path); + }, + doStat: function(func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + return -54; + } + throw e; + } + GROWABLE_HEAP_I32()[buf >> 2] = stat.dev; + GROWABLE_HEAP_I32()[buf + 8 >> 2] = stat.ino; + GROWABLE_HEAP_I32()[buf + 12 >> 2] = stat.mode; + GROWABLE_HEAP_U32()[buf + 16 >> 2] = stat.nlink; + GROWABLE_HEAP_I32()[buf + 20 >> 2] = stat.uid; + GROWABLE_HEAP_I32()[buf + 24 >> 2] = stat.gid; + GROWABLE_HEAP_I32()[buf + 28 >> 2] = stat.rdev; + tempI64 = [ stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[buf + 40 >> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >> 2] = tempI64[1]; + GROWABLE_HEAP_I32()[buf + 48 >> 2] = 4096; + GROWABLE_HEAP_I32()[buf + 52 >> 2] = stat.blocks; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + tempI64 = [ Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), + +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[buf + 56 >> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 64 >> 2] = atime % 1e3 * 1e3; + tempI64 = [ Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), + +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[buf + 72 >> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 80 >> 2] = mtime % 1e3 * 1e3; + tempI64 = [ Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), + +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[buf + 88 >> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >> 2] = tempI64[1]; + GROWABLE_HEAP_U32()[buf + 96 >> 2] = ctime % 1e3 * 1e3; + tempI64 = [ stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[buf + 104 >> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 108 >> 2] = tempI64[1]; + return 0; + }, + doMsync: function(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + return 0; + } + var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + varargs: undefined, + get: function() { + assert(SYSCALLS.varargs != undefined); + SYSCALLS.varargs += 4; + var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >> 2]; + return ret; + }, + getStr: function(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, + getStreamFromFD: function(fd) { + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + return stream; + } +}; + +function _proc_exit(code) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(1, 1, code); + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + PThread.terminateAllThreads(); + if (Module["onExit"]) Module["onExit"](code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); +} + +function exitJS(status, implicit) { + EXITSTATUS = status; + if (ENVIRONMENT_IS_PTHREAD) { + assert(!implicit); + exitOnMainThread(status); + throw "unwind"; + } + if (!keepRuntimeAlive()) { + exitRuntime(); + } + if (keepRuntimeAlive() && !implicit) { + var msg = `program exited (with status: ${status}), but keepRuntimeAlive() is set (counter=${runtimeKeepaliveCounter}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`; + readyPromiseReject(msg); + err(msg); + } + _proc_exit(status); +} + +var _exit = exitJS; + +function ptrToString(ptr) { + assert(typeof ptr === "number"); + return "0x" + ptr.toString(16).padStart(8, "0"); +} + +function handleException(e) { + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + checkStackCookie(); + if (e instanceof WebAssembly.RuntimeError) { + if (_emscripten_stack_get_current() <= 0) { + err("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 5242880)"); + } + } + quit_(1, e); +} + +var PThread = { + unusedWorkers: [], + runningWorkers: [], + tlsInitFunctions: [], + pthreads: {}, + nextWorkerID: 1, + debugInit: function() { + function pthreadLogPrefix() { + var t = 0; + if (runtimeInitialized && typeof _pthread_self != "undefined" && !runtimeExited) { + t = _pthread_self(); + } + return "w:" + (Module["workerID"] || 0) + ",t:" + ptrToString(t) + ": "; + } + var origDbg = dbg; + dbg = message => origDbg(pthreadLogPrefix() + message); + }, + init: function() { + PThread.debugInit(); + if (ENVIRONMENT_IS_PTHREAD) { + PThread.initWorker(); + } else { + PThread.initMainThread(); + } + }, + initMainThread: function() { + var pthreadPoolSize = 8; + while (pthreadPoolSize--) { + PThread.allocateUnusedWorker(); + } + }, + initWorker: function() { + noExitRuntime = false; + }, + setExitStatus: function(status) { + EXITSTATUS = status; + }, + terminateAllThreads__deps: [ "$terminateWorker" ], + terminateAllThreads: function() { + assert(!ENVIRONMENT_IS_PTHREAD, "Internal Error! terminateAllThreads() can only ever be called from main application thread!"); + for (var worker of PThread.runningWorkers) { + terminateWorker(worker); + } + for (var worker of PThread.unusedWorkers) { + terminateWorker(worker); + } + PThread.unusedWorkers = []; + PThread.runningWorkers = []; + PThread.pthreads = []; + }, + returnWorkerToPool: function(worker) { + var pthread_ptr = worker.pthread_ptr; + delete PThread.pthreads[pthread_ptr]; + PThread.unusedWorkers.push(worker); + PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); + worker.pthread_ptr = 0; + __emscripten_thread_free_data(pthread_ptr); + }, + receiveObjectTransfer: function(data) {}, + threadInitTLS: function() { + PThread.tlsInitFunctions.forEach(f => f()); + }, + loadWasmModuleToWorker: worker => new Promise(onFinishedLoading => { + worker.onmessage = e => { + var d = e["data"]; + var cmd = d["cmd"]; + if (worker.pthread_ptr) PThread.currentProxiedOperationCallerThread = worker.pthread_ptr; + if (d["targetThread"] && d["targetThread"] != _pthread_self()) { + var targetWorker = PThread.pthreads[d.targetThread]; + if (targetWorker) { + targetWorker.postMessage(d, d["transferList"]); + } else { + err('Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d["targetThread"] + ", but that thread no longer exists!"); + } + PThread.currentProxiedOperationCallerThread = undefined; + return; + } + if (cmd === "checkMailbox") { + checkMailbox(); + } else if (cmd === "spawnThread") { + spawnThread(d); + } else if (cmd === "cleanupThread") { + cleanupThread(d["thread"]); + } else if (cmd === "killThread") { + killThread(d["thread"]); + } else if (cmd === "cancelThread") { + cancelThread(d["thread"]); + } else if (cmd === "loaded") { + worker.loaded = true; + onFinishedLoading(worker); + } else if (cmd === "print") { + out("Thread " + d["threadId"] + ": " + d["text"]); + } else if (cmd === "printErr") { + err("Thread " + d["threadId"] + ": " + d["text"]); + } else if (cmd === "alert") { + alert("Thread " + d["threadId"] + ": " + d["text"]); + } else if (d.target === "setimmediate") { + worker.postMessage(d); + } else if (cmd === "callHandler") { + Module[d["handler"]](...d["args"]); + } else if (cmd) { + err("worker sent an unknown command " + cmd); + } + PThread.currentProxiedOperationCallerThread = undefined; + }; + worker.onerror = e => { + var message = "worker sent an error!"; + if (worker.pthread_ptr) { + message = "Pthread " + ptrToString(worker.pthread_ptr) + " sent an error!"; + } + err(message + " " + e.filename + ":" + e.lineno + ": " + e.message); + throw e; + }; + assert(wasmMemory instanceof WebAssembly.Memory, "WebAssembly memory should have been loaded by now!"); + assert(wasmModule instanceof WebAssembly.Module, "WebAssembly Module should have been loaded by now!"); + var handlers = []; + var knownHandlers = [ "onExit", "onAbort", "print", "printErr" ]; + for (var handler of knownHandlers) { + if (Module.hasOwnProperty(handler)) { + handlers.push(handler); + } + } + worker.workerID = PThread.nextWorkerID++; + worker.postMessage({ + "cmd": "load", + "handlers": handlers, + "urlOrBlob": Module["mainScriptUrlOrBlob"] || _scriptDir, + "wasmMemory": wasmMemory, + "wasmModule": wasmModule, + "workerID": worker.workerID + }); + }), + loadWasmModuleToAllWorkers: function(onMaybeReady) { + if (ENVIRONMENT_IS_PTHREAD) { + return onMaybeReady(); + } + let pthreadPoolReady = Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker)); + pthreadPoolReady.then(onMaybeReady); + }, + allocateUnusedWorker: function() { + var worker; + var pthreadMainJs = locateFile("godot.web.template_release.wasm32.worker.js"); + worker = new Worker(pthreadMainJs); + PThread.unusedWorkers.push(worker); + }, + getNewWorker: function() { + if (PThread.unusedWorkers.length == 0) { + err("Tried to spawn a new thread, but the thread pool is exhausted.\n" + "This might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.\n" + "If you want to increase the pool size, use setting `-sPTHREAD_POOL_SIZE=...`." + "\nIf you want to throw an explicit error instead of the risk of deadlocking in those cases, use setting `-sPTHREAD_POOL_SIZE_STRICT=2`."); + PThread.allocateUnusedWorker(); + PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); + } + return PThread.unusedWorkers.pop(); + } +}; + +Module["PThread"] = PThread; + +function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } +} + +function establishStackSpace() { + var pthread_ptr = _pthread_self(); + var stackTop = GROWABLE_HEAP_I32()[pthread_ptr + 52 >> 2]; + var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >> 2]; + var stackMax = stackTop - stackSize; + assert(stackTop != 0); + assert(stackMax != 0); + assert(stackTop > stackMax, "stackTop must be higher then stackMax"); + _emscripten_stack_set_limits(stackTop, stackMax); + stackRestore(stackTop); + writeStackCookie(); +} + +Module["establishStackSpace"] = establishStackSpace; + +function exitOnMainThread(returnCode) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(2, 0, returnCode); + _exit(returnCode); +} + +function getValue(ptr, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + return GROWABLE_HEAP_I8()[ptr >> 0]; + + case "i8": + return GROWABLE_HEAP_I8()[ptr >> 0]; + + case "i16": + return GROWABLE_HEAP_I16()[ptr >> 1]; + + case "i32": + return GROWABLE_HEAP_I32()[ptr >> 2]; + + case "i64": + return GROWABLE_HEAP_I32()[ptr >> 2]; + + case "float": + return GROWABLE_HEAP_F32()[ptr >> 2]; + + case "double": + return GROWABLE_HEAP_F64()[ptr >> 3]; + + case "*": + return GROWABLE_HEAP_U32()[ptr >> 2]; + + default: + abort(`invalid type for getValue: ${type}`); + } +} + +var wasmTableMirror = []; + +function getWasmTableEntry(funcPtr) { + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + assert(wasmTable.get(funcPtr) == func, "JavaScript-side Wasm function table mirror is out of date!"); + return func; +} + +function invokeEntryPoint(ptr, arg) { + runtimeKeepaliveCounter = 0; + var result = getWasmTableEntry(ptr)(arg); + checkStackCookie(); + if (keepRuntimeAlive()) { + PThread.setExitStatus(result); + } else { + __emscripten_thread_exit(result); + } +} + +Module["invokeEntryPoint"] = invokeEntryPoint; + +function registerTLSInit(tlsInitFunc) { + PThread.tlsInitFunctions.push(tlsInitFunc); +} + +function setValue(ptr, value, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + GROWABLE_HEAP_I8()[ptr >> 0] = value; + break; + + case "i8": + GROWABLE_HEAP_I8()[ptr >> 0] = value; + break; + + case "i16": + GROWABLE_HEAP_I16()[ptr >> 1] = value; + break; + + case "i32": + GROWABLE_HEAP_I32()[ptr >> 2] = value; + break; + + case "i64": + tempI64 = [ value >>> 0, (tempDouble = value, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[ptr >> 2] = tempI64[0], GROWABLE_HEAP_I32()[ptr + 4 >> 2] = tempI64[1]; + break; + + case "float": + GROWABLE_HEAP_F32()[ptr >> 2] = value; + break; + + case "double": + GROWABLE_HEAP_F64()[ptr >> 3] = value; + break; + + case "*": + GROWABLE_HEAP_U32()[ptr >> 2] = value; + break; + + default: + abort(`invalid type for setValue: ${type}`); + } +} + +function warnOnce(text) { + if (!warnOnce.shown) warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text); + } +} + +function ___assert_fail(condition, filename, line, func) { + abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [ filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function" ]); +} + +function ___call_sighandler(fp, sig) { + getWasmTableEntry(fp)(sig); +} + +var dlopenMissingError = "To use dlopen, you need enable dynamic linking, see https://emscripten.org/docs/compiling/Dynamic-Linking.html"; + +function ___dlsym(handle, symbol) { + abort(dlopenMissingError); +} + +function ___emscripten_init_main_thread_js(tb) { + __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB, 2097152); + PThread.threadInitTLS(); +} + +function ___emscripten_thread_cleanup(thread) { + if (!ENVIRONMENT_IS_PTHREAD) cleanupThread(thread); else postMessage({ + "cmd": "cleanupThread", + "thread": thread + }); +} + +function pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(3, 1, pthread_ptr, attr, startRoutine, arg); + return ___pthread_create_js(pthread_ptr, attr, startRoutine, arg); +} + +function ___pthread_create_js(pthread_ptr, attr, startRoutine, arg) { + if (typeof SharedArrayBuffer == "undefined") { + err("Current environment does not support SharedArrayBuffer, pthreads are not available!"); + return 6; + } + var transferList = []; + var error = 0; + if (ENVIRONMENT_IS_PTHREAD && (transferList.length === 0 || error)) { + return pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg); + } + if (error) return error; + var threadParams = { + startRoutine: startRoutine, + pthread_ptr: pthread_ptr, + arg: arg, + transferList: transferList + }; + if (ENVIRONMENT_IS_PTHREAD) { + threadParams.cmd = "spawnThread"; + postMessage(threadParams, transferList); + return 0; + } + return spawnThread(threadParams); +} + +function ___syscall__newselect(nfds, readfds, writefds, exceptfds, timeout) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(4, 1, nfds, readfds, writefds, exceptfds, timeout); + try { + assert(nfds <= 64, "nfds must be less than or equal to 64"); + assert(!exceptfds, "exceptfds not supported"); + var total = 0; + var srcReadLow = readfds ? GROWABLE_HEAP_I32()[readfds >> 2] : 0, srcReadHigh = readfds ? GROWABLE_HEAP_I32()[readfds + 4 >> 2] : 0; + var srcWriteLow = writefds ? GROWABLE_HEAP_I32()[writefds >> 2] : 0, srcWriteHigh = writefds ? GROWABLE_HEAP_I32()[writefds + 4 >> 2] : 0; + var srcExceptLow = exceptfds ? GROWABLE_HEAP_I32()[exceptfds >> 2] : 0, srcExceptHigh = exceptfds ? GROWABLE_HEAP_I32()[exceptfds + 4 >> 2] : 0; + var dstReadLow = 0, dstReadHigh = 0; + var dstWriteLow = 0, dstWriteHigh = 0; + var dstExceptLow = 0, dstExceptHigh = 0; + var allLow = (readfds ? GROWABLE_HEAP_I32()[readfds >> 2] : 0) | (writefds ? GROWABLE_HEAP_I32()[writefds >> 2] : 0) | (exceptfds ? GROWABLE_HEAP_I32()[exceptfds >> 2] : 0); + var allHigh = (readfds ? GROWABLE_HEAP_I32()[readfds + 4 >> 2] : 0) | (writefds ? GROWABLE_HEAP_I32()[writefds + 4 >> 2] : 0) | (exceptfds ? GROWABLE_HEAP_I32()[exceptfds + 4 >> 2] : 0); + var check = function(fd, low, high, val) { + return fd < 32 ? low & val : high & val; + }; + for (var fd = 0; fd < nfds; fd++) { + var mask = 1 << fd % 32; + if (!check(fd, allLow, allHigh, mask)) { + continue; + } + var stream = SYSCALLS.getStreamFromFD(fd); + var flags = SYSCALLS.DEFAULT_POLLMASK; + if (stream.stream_ops.poll) { + flags = stream.stream_ops.poll(stream); + } + if (flags & 1 && check(fd, srcReadLow, srcReadHigh, mask)) { + fd < 32 ? dstReadLow = dstReadLow | mask : dstReadHigh = dstReadHigh | mask; + total++; + } + if (flags & 4 && check(fd, srcWriteLow, srcWriteHigh, mask)) { + fd < 32 ? dstWriteLow = dstWriteLow | mask : dstWriteHigh = dstWriteHigh | mask; + total++; + } + if (flags & 2 && check(fd, srcExceptLow, srcExceptHigh, mask)) { + fd < 32 ? dstExceptLow = dstExceptLow | mask : dstExceptHigh = dstExceptHigh | mask; + total++; + } + } + if (readfds) { + GROWABLE_HEAP_I32()[readfds >> 2] = dstReadLow; + GROWABLE_HEAP_I32()[readfds + 4 >> 2] = dstReadHigh; + } + if (writefds) { + GROWABLE_HEAP_I32()[writefds >> 2] = dstWriteLow; + GROWABLE_HEAP_I32()[writefds + 4 >> 2] = dstWriteHigh; + } + if (exceptfds) { + GROWABLE_HEAP_I32()[exceptfds >> 2] = dstExceptLow; + GROWABLE_HEAP_I32()[exceptfds + 4 >> 2] = dstExceptHigh; + } + return total; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var SOCKFS = { + mount: function(mount) { + Module["websocket"] = Module["websocket"] && "object" === typeof Module["websocket"] ? Module["websocket"] : {}; + Module["websocket"]._callbacks = {}; + Module["websocket"]["on"] = function(event, callback) { + if ("function" === typeof callback) { + this._callbacks[event] = callback; + } + return this; + }; + Module["websocket"].emit = function(event, param) { + if ("function" === typeof this._callbacks[event]) { + this._callbacks[event].call(this, param); + } + }; + return FS.createNode(null, "/", 16384 | 511, 0); + }, + createSocket: function(family, type, protocol) { + type &= ~526336; + var streaming = type == 1; + if (streaming && protocol && protocol != 6) { + throw new FS.ErrnoError(66); + } + var sock = { + family: family, + type: type, + protocol: protocol, + server: null, + error: null, + peers: {}, + pending: [], + recv_queue: [], + sock_ops: SOCKFS.websocket_sock_ops + }; + var name = SOCKFS.nextname(); + var node = FS.createNode(SOCKFS.root, name, 49152, 0); + node.sock = sock; + var stream = FS.createStream({ + path: name, + node: node, + flags: 2, + seekable: false, + stream_ops: SOCKFS.stream_ops + }); + sock.stream = stream; + return sock; + }, + getSocket: function(fd) { + var stream = FS.getStream(fd); + if (!stream || !FS.isSocket(stream.node.mode)) { + return null; + } + return stream.node.sock; + }, + stream_ops: { + poll: function(stream) { + var sock = stream.node.sock; + return sock.sock_ops.poll(sock); + }, + ioctl: function(stream, request, varargs) { + var sock = stream.node.sock; + return sock.sock_ops.ioctl(sock, request, varargs); + }, + read: function(stream, buffer, offset, length, position) { + var sock = stream.node.sock; + var msg = sock.sock_ops.recvmsg(sock, length); + if (!msg) { + return 0; + } + buffer.set(msg.buffer, offset); + return msg.buffer.length; + }, + write: function(stream, buffer, offset, length, position) { + var sock = stream.node.sock; + return sock.sock_ops.sendmsg(sock, buffer, offset, length); + }, + close: function(stream) { + var sock = stream.node.sock; + sock.sock_ops.close(sock); + } + }, + nextname: function() { + if (!SOCKFS.nextname.current) { + SOCKFS.nextname.current = 0; + } + return "socket[" + SOCKFS.nextname.current++ + "]"; + }, + websocket_sock_ops: { + createPeer: function(sock, addr, port) { + var ws; + if (typeof addr == "object") { + ws = addr; + addr = null; + port = null; + } + if (ws) { + if (ws._socket) { + addr = ws._socket.remoteAddress; + port = ws._socket.remotePort; + } else { + var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url); + if (!result) { + throw new Error("WebSocket URL must be in the format ws(s)://address:port"); + } + addr = result[1]; + port = parseInt(result[2], 10); + } + } else { + try { + var runtimeConfig = Module["websocket"] && "object" === typeof Module["websocket"]; + var url = "ws:#".replace("#", "//"); + if (runtimeConfig) { + if ("string" === typeof Module["websocket"]["url"]) { + url = Module["websocket"]["url"]; + } + } + if (url === "ws://" || url === "wss://") { + var parts = addr.split("/"); + url = url + parts[0] + ":" + port + "/" + parts.slice(1).join("/"); + } + var subProtocols = "binary"; + if (runtimeConfig) { + if ("string" === typeof Module["websocket"]["subprotocol"]) { + subProtocols = Module["websocket"]["subprotocol"]; + } + } + var opts = undefined; + if (subProtocols !== "null") { + subProtocols = subProtocols.replace(/^ +| +$/g, "").split(/ *, */); + opts = subProtocols; + } + if (runtimeConfig && null === Module["websocket"]["subprotocol"]) { + subProtocols = "null"; + opts = undefined; + } + var WebSocketConstructor; + { + WebSocketConstructor = WebSocket; + } + ws = new WebSocketConstructor(url, opts); + ws.binaryType = "arraybuffer"; + } catch (e) { + throw new FS.ErrnoError(23); + } + } + var peer = { + addr: addr, + port: port, + socket: ws, + dgram_send_queue: [] + }; + SOCKFS.websocket_sock_ops.addPeer(sock, peer); + SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer); + if (sock.type === 2 && typeof sock.sport != "undefined") { + peer.dgram_send_queue.push(new Uint8Array([ 255, 255, 255, 255, "p".charCodeAt(0), "o".charCodeAt(0), "r".charCodeAt(0), "t".charCodeAt(0), (sock.sport & 65280) >> 8, sock.sport & 255 ])); + } + return peer; + }, + getPeer: function(sock, addr, port) { + return sock.peers[addr + ":" + port]; + }, + addPeer: function(sock, peer) { + sock.peers[peer.addr + ":" + peer.port] = peer; + }, + removePeer: function(sock, peer) { + delete sock.peers[peer.addr + ":" + peer.port]; + }, + handlePeerEvents: function(sock, peer) { + var first = true; + var handleOpen = function() { + Module["websocket"].emit("open", sock.stream.fd); + try { + var queued = peer.dgram_send_queue.shift(); + while (queued) { + peer.socket.send(queued); + queued = peer.dgram_send_queue.shift(); + } + } catch (e) { + peer.socket.close(); + } + }; + function handleMessage(data) { + if (typeof data == "string") { + var encoder = new TextEncoder(); + data = encoder.encode(data); + } else { + assert(data.byteLength !== undefined); + if (data.byteLength == 0) { + return; + } + data = new Uint8Array(data); + } + var wasfirst = first; + first = false; + if (wasfirst && data.length === 10 && data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 && data[4] === "p".charCodeAt(0) && data[5] === "o".charCodeAt(0) && data[6] === "r".charCodeAt(0) && data[7] === "t".charCodeAt(0)) { + var newport = data[8] << 8 | data[9]; + SOCKFS.websocket_sock_ops.removePeer(sock, peer); + peer.port = newport; + SOCKFS.websocket_sock_ops.addPeer(sock, peer); + return; + } + sock.recv_queue.push({ + addr: peer.addr, + port: peer.port, + data: data + }); + Module["websocket"].emit("message", sock.stream.fd); + } + if (ENVIRONMENT_IS_NODE) { + peer.socket.on("open", handleOpen); + peer.socket.on("message", function(data, isBinary) { + if (!isBinary) { + return; + } + handleMessage(new Uint8Array(data).buffer); + }); + peer.socket.on("close", function() { + Module["websocket"].emit("close", sock.stream.fd); + }); + peer.socket.on("error", function(error) { + sock.error = 14; + Module["websocket"].emit("error", [ sock.stream.fd, sock.error, "ECONNREFUSED: Connection refused" ]); + }); + } else { + peer.socket.onopen = handleOpen; + peer.socket.onclose = function() { + Module["websocket"].emit("close", sock.stream.fd); + }; + peer.socket.onmessage = function peer_socket_onmessage(event) { + handleMessage(event.data); + }; + peer.socket.onerror = function(error) { + sock.error = 14; + Module["websocket"].emit("error", [ sock.stream.fd, sock.error, "ECONNREFUSED: Connection refused" ]); + }; + } + }, + poll: function(sock) { + if (sock.type === 1 && sock.server) { + return sock.pending.length ? 64 | 1 : 0; + } + var mask = 0; + var dest = sock.type === 1 ? SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) : null; + if (sock.recv_queue.length || !dest || dest && dest.socket.readyState === dest.socket.CLOSING || dest && dest.socket.readyState === dest.socket.CLOSED) { + mask |= 64 | 1; + } + if (!dest || dest && dest.socket.readyState === dest.socket.OPEN) { + mask |= 4; + } + if (dest && dest.socket.readyState === dest.socket.CLOSING || dest && dest.socket.readyState === dest.socket.CLOSED) { + mask |= 16; + } + return mask; + }, + ioctl: function(sock, request, arg) { + switch (request) { + case 21531: + var bytes = 0; + if (sock.recv_queue.length) { + bytes = sock.recv_queue[0].data.length; + } + GROWABLE_HEAP_I32()[arg >> 2] = bytes; + return 0; + + default: + return 28; + } + }, + close: function(sock) { + if (sock.server) { + try { + sock.server.close(); + } catch (e) {} + sock.server = null; + } + var peers = Object.keys(sock.peers); + for (var i = 0; i < peers.length; i++) { + var peer = sock.peers[peers[i]]; + try { + peer.socket.close(); + } catch (e) {} + SOCKFS.websocket_sock_ops.removePeer(sock, peer); + } + return 0; + }, + bind: function(sock, addr, port) { + if (typeof sock.saddr != "undefined" || typeof sock.sport != "undefined") { + throw new FS.ErrnoError(28); + } + sock.saddr = addr; + sock.sport = port; + if (sock.type === 2) { + if (sock.server) { + sock.server.close(); + sock.server = null; + } + try { + sock.sock_ops.listen(sock, 0); + } catch (e) { + if (!(e.name === "ErrnoError")) throw e; + if (e.errno !== 138) throw e; + } + } + }, + connect: function(sock, addr, port) { + if (sock.server) { + throw new FS.ErrnoError(138); + } + if (typeof sock.daddr != "undefined" && typeof sock.dport != "undefined") { + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); + if (dest) { + if (dest.socket.readyState === dest.socket.CONNECTING) { + throw new FS.ErrnoError(7); + } else { + throw new FS.ErrnoError(30); + } + } + } + var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); + sock.daddr = peer.addr; + sock.dport = peer.port; + throw new FS.ErrnoError(26); + }, + listen: function(sock, backlog) { + if (!ENVIRONMENT_IS_NODE) { + throw new FS.ErrnoError(138); + } + }, + accept: function(listensock) { + if (!listensock.server || !listensock.pending.length) { + throw new FS.ErrnoError(28); + } + var newsock = listensock.pending.shift(); + newsock.stream.flags = listensock.stream.flags; + return newsock; + }, + getname: function(sock, peer) { + var addr, port; + if (peer) { + if (sock.daddr === undefined || sock.dport === undefined) { + throw new FS.ErrnoError(53); + } + addr = sock.daddr; + port = sock.dport; + } else { + addr = sock.saddr || 0; + port = sock.sport || 0; + } + return { + addr: addr, + port: port + }; + }, + sendmsg: function(sock, buffer, offset, length, addr, port) { + if (sock.type === 2) { + if (addr === undefined || port === undefined) { + addr = sock.daddr; + port = sock.dport; + } + if (addr === undefined || port === undefined) { + throw new FS.ErrnoError(17); + } + } else { + addr = sock.daddr; + port = sock.dport; + } + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port); + if (sock.type === 1) { + if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + throw new FS.ErrnoError(53); + } else if (dest.socket.readyState === dest.socket.CONNECTING) { + throw new FS.ErrnoError(6); + } + } + if (ArrayBuffer.isView(buffer)) { + offset += buffer.byteOffset; + buffer = buffer.buffer; + } + var data; + if (buffer instanceof SharedArrayBuffer) { + data = new Uint8Array(new Uint8Array(buffer.slice(offset, offset + length))).buffer; + } else { + data = buffer.slice(offset, offset + length); + } + if (sock.type === 2) { + if (!dest || dest.socket.readyState !== dest.socket.OPEN) { + if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); + } + dest.dgram_send_queue.push(data); + return length; + } + } + try { + dest.socket.send(data); + return length; + } catch (e) { + throw new FS.ErrnoError(28); + } + }, + recvmsg: function(sock, length) { + if (sock.type === 1 && sock.server) { + throw new FS.ErrnoError(53); + } + var queued = sock.recv_queue.shift(); + if (!queued) { + if (sock.type === 1) { + var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); + if (!dest) { + throw new FS.ErrnoError(53); + } + if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { + return null; + } + throw new FS.ErrnoError(6); + } + throw new FS.ErrnoError(6); + } + var queuedLength = queued.data.byteLength || queued.data.length; + var queuedOffset = queued.data.byteOffset || 0; + var queuedBuffer = queued.data.buffer || queued.data; + var bytesRead = Math.min(length, queuedLength); + var res = { + buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead), + addr: queued.addr, + port: queued.port + }; + if (sock.type === 1 && bytesRead < queuedLength) { + var bytesRemaining = queuedLength - bytesRead; + queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining); + sock.recv_queue.unshift(queued); + } + return res; + } + } +}; + +function getSocketFromFD(fd) { + var socket = SOCKFS.getSocket(fd); + if (!socket) throw new FS.ErrnoError(8); + return socket; +} + +function setErrNo(value) { + GROWABLE_HEAP_I32()[___errno_location() >> 2] = value; + return value; +} + +var Sockets = { + BUFFER_SIZE: 10240, + MAX_BUFFER_SIZE: 10485760, + nextFd: 1, + fds: {}, + nextport: 1, + maxport: 65535, + peer: null, + connections: {}, + portmap: {}, + localAddr: 4261412874, + addrPool: [ 33554442, 50331658, 67108874, 83886090, 100663306, 117440522, 134217738, 150994954, 167772170, 184549386, 201326602, 218103818, 234881034 ] +}; + +function inetPton4(str) { + var b = str.split("."); + for (var i = 0; i < 4; i++) { + var tmp = Number(b[i]); + if (isNaN(tmp)) return null; + b[i] = tmp; + } + return (b[0] | b[1] << 8 | b[2] << 16 | b[3] << 24) >>> 0; +} + +function jstoi_q(str) { + return parseInt(str); +} + +function inetPton6(str) { + var words; + var w, offset, z, i; + var valid6regx = /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i; + var parts = []; + if (!valid6regx.test(str)) { + return null; + } + if (str === "::") { + return [ 0, 0, 0, 0, 0, 0, 0, 0 ]; + } + if (str.startsWith("::")) { + str = str.replace("::", "Z:"); + } else { + str = str.replace("::", ":Z:"); + } + if (str.indexOf(".") > 0) { + str = str.replace(new RegExp("[.]", "g"), ":"); + words = str.split(":"); + words[words.length - 4] = jstoi_q(words[words.length - 4]) + jstoi_q(words[words.length - 3]) * 256; + words[words.length - 3] = jstoi_q(words[words.length - 2]) + jstoi_q(words[words.length - 1]) * 256; + words = words.slice(0, words.length - 2); + } else { + words = str.split(":"); + } + offset = 0; + z = 0; + for (w = 0; w < words.length; w++) { + if (typeof words[w] == "string") { + if (words[w] === "Z") { + for (z = 0; z < 8 - words.length + 1; z++) { + parts[w + z] = 0; + } + offset = z - 1; + } else { + parts[w + offset] = _htons(parseInt(words[w], 16)); + } + } else { + parts[w + offset] = words[w]; + } + } + return [ parts[1] << 16 | parts[0], parts[3] << 16 | parts[2], parts[5] << 16 | parts[4], parts[7] << 16 | parts[6] ]; +} + +function writeSockaddr(sa, family, addr, port, addrlen) { + switch (family) { + case 2: + addr = inetPton4(addr); + zeroMemory(sa, 16); + if (addrlen) { + GROWABLE_HEAP_I32()[addrlen >> 2] = 16; + } + GROWABLE_HEAP_I16()[sa >> 1] = family; + GROWABLE_HEAP_I32()[sa + 4 >> 2] = addr; + GROWABLE_HEAP_I16()[sa + 2 >> 1] = _htons(port); + break; + + case 10: + addr = inetPton6(addr); + zeroMemory(sa, 28); + if (addrlen) { + GROWABLE_HEAP_I32()[addrlen >> 2] = 28; + } + GROWABLE_HEAP_I32()[sa >> 2] = family; + GROWABLE_HEAP_I32()[sa + 8 >> 2] = addr[0]; + GROWABLE_HEAP_I32()[sa + 12 >> 2] = addr[1]; + GROWABLE_HEAP_I32()[sa + 16 >> 2] = addr[2]; + GROWABLE_HEAP_I32()[sa + 20 >> 2] = addr[3]; + GROWABLE_HEAP_I16()[sa + 2 >> 1] = _htons(port); + break; + + default: + return 5; + } + return 0; +} + +var DNS = { + address_map: { + id: 1, + addrs: {}, + names: {} + }, + lookup_name: function(name) { + var res = inetPton4(name); + if (res !== null) { + return name; + } + res = inetPton6(name); + if (res !== null) { + return name; + } + var addr; + if (DNS.address_map.addrs[name]) { + addr = DNS.address_map.addrs[name]; + } else { + var id = DNS.address_map.id++; + assert(id < 65535, "exceeded max address mappings of 65535"); + addr = "172.29." + (id & 255) + "." + (id & 65280); + DNS.address_map.names[addr] = name; + DNS.address_map.addrs[name] = addr; + } + return addr; + }, + lookup_addr: function(addr) { + if (DNS.address_map.names[addr]) { + return DNS.address_map.names[addr]; + } + return null; + } +}; + +function ___syscall_accept4(fd, addr, addrlen, flags, d1, d2) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(5, 1, fd, addr, addrlen, flags, d1, d2); + try { + var sock = getSocketFromFD(fd); + var newsock = sock.sock_ops.accept(sock); + if (addr) { + var errno = writeSockaddr(addr, newsock.family, DNS.lookup_name(newsock.daddr), newsock.dport, addrlen); + assert(!errno); + } + return newsock.stream.fd; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function inetNtop4(addr) { + return (addr & 255) + "." + (addr >> 8 & 255) + "." + (addr >> 16 & 255) + "." + (addr >> 24 & 255); +} + +function inetNtop6(ints) { + var str = ""; + var word = 0; + var longest = 0; + var lastzero = 0; + var zstart = 0; + var len = 0; + var i = 0; + var parts = [ ints[0] & 65535, ints[0] >> 16, ints[1] & 65535, ints[1] >> 16, ints[2] & 65535, ints[2] >> 16, ints[3] & 65535, ints[3] >> 16 ]; + var hasipv4 = true; + var v4part = ""; + for (i = 0; i < 5; i++) { + if (parts[i] !== 0) { + hasipv4 = false; + break; + } + } + if (hasipv4) { + v4part = inetNtop4(parts[6] | parts[7] << 16); + if (parts[5] === -1) { + str = "::ffff:"; + str += v4part; + return str; + } + if (parts[5] === 0) { + str = "::"; + if (v4part === "0.0.0.0") v4part = ""; + if (v4part === "0.0.0.1") v4part = "1"; + str += v4part; + return str; + } + } + for (word = 0; word < 8; word++) { + if (parts[word] === 0) { + if (word - lastzero > 1) { + len = 0; + } + lastzero = word; + len++; + } + if (len > longest) { + longest = len; + zstart = word - longest + 1; + } + } + for (word = 0; word < 8; word++) { + if (longest > 1) { + if (parts[word] === 0 && word >= zstart && word < zstart + longest) { + if (word === zstart) { + str += ":"; + if (zstart === 0) str += ":"; + } + continue; + } + } + str += Number(_ntohs(parts[word] & 65535)).toString(16); + str += word < 7 ? ":" : ""; + } + return str; +} + +function readSockaddr(sa, salen) { + var family = GROWABLE_HEAP_I16()[sa >> 1]; + var port = _ntohs(GROWABLE_HEAP_U16()[sa + 2 >> 1]); + var addr; + switch (family) { + case 2: + if (salen !== 16) { + return { + errno: 28 + }; + } + addr = GROWABLE_HEAP_I32()[sa + 4 >> 2]; + addr = inetNtop4(addr); + break; + + case 10: + if (salen !== 28) { + return { + errno: 28 + }; + } + addr = [ GROWABLE_HEAP_I32()[sa + 8 >> 2], GROWABLE_HEAP_I32()[sa + 12 >> 2], GROWABLE_HEAP_I32()[sa + 16 >> 2], GROWABLE_HEAP_I32()[sa + 20 >> 2] ]; + addr = inetNtop6(addr); + break; + + default: + return { + errno: 5 + }; + } + return { + family: family, + addr: addr, + port: port + }; +} + +function getSocketAddress(addrp, addrlen, allowNull) { + if (allowNull && addrp === 0) return null; + var info = readSockaddr(addrp, addrlen); + if (info.errno) throw new FS.ErrnoError(info.errno); + info.addr = DNS.lookup_addr(info.addr) || info.addr; + return info; +} + +function ___syscall_bind(fd, addr, addrlen, d1, d2, d3) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(6, 1, fd, addr, addrlen, d1, d2, d3); + try { + var sock = getSocketFromFD(fd); + var info = getSocketAddress(addr, addrlen); + sock.sock_ops.bind(sock, info.addr, info.port); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_chdir(path) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(7, 1, path); + try { + path = SYSCALLS.getStr(path); + FS.chdir(path); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_chmod(path, mode) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(8, 1, path, mode); + try { + path = SYSCALLS.getStr(path); + FS.chmod(path, mode); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_connect(fd, addr, addrlen, d1, d2, d3) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(9, 1, fd, addr, addrlen, d1, d2, d3); + try { + var sock = getSocketFromFD(fd); + var info = getSocketAddress(addr, addrlen); + sock.sock_ops.connect(sock, info.addr, info.port); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_faccessat(dirfd, path, amode, flags) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(10, 1, dirfd, path, amode, flags); + try { + path = SYSCALLS.getStr(path); + assert(flags === 0); + path = SYSCALLS.calculateAt(dirfd, path); + if (amode & ~7) { + return -28; + } + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + if (!node) { + return -44; + } + var perms = ""; + if (amode & 4) perms += "r"; + if (amode & 2) perms += "w"; + if (amode & 1) perms += "x"; + if (perms && FS.nodePermissions(node, perms)) { + return -2; + } + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_fchmod(fd, mode) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(11, 1, fd, mode); + try { + FS.fchmod(fd, mode); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_fcntl64(fd, cmd, varargs) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(12, 1, fd, cmd, varargs); + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: + { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + var newStream; + newStream = FS.createStream(stream, arg); + return newStream.fd; + } + + case 1: + case 2: + return 0; + + case 3: + return stream.flags; + + case 4: + { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + + case 5: + { + var arg = SYSCALLS.get(); + var offset = 0; + GROWABLE_HEAP_I16()[arg + offset >> 1] = 2; + return 0; + } + + case 6: + case 7: + return 0; + + case 16: + case 8: + return -28; + + case 9: + setErrNo(28); + return -1; + + default: + { + return -28; + } + } + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + assert(typeof maxBytesToWrite == "number", "stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"); + return stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); +} + +function ___syscall_getcwd(buf, size) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(13, 1, buf, size); + try { + if (size === 0) return -28; + var cwd = FS.cwd(); + var cwdLengthInBytes = lengthBytesUTF8(cwd) + 1; + if (size < cwdLengthInBytes) return -68; + stringToUTF8(cwd, buf, size); + return cwdLengthInBytes; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_getdents64(fd, dirp, count) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(14, 1, fd, dirp, count); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + if (!stream.getdents) { + stream.getdents = FS.readdir(stream.path); + } + var struct_size = 280; + var pos = 0; + var off = FS.llseek(stream, 0, 1); + var idx = Math.floor(off / struct_size); + while (idx < stream.getdents.length && pos + struct_size <= count) { + var id; + var type; + var name = stream.getdents[idx]; + if (name === ".") { + id = stream.node.id; + type = 4; + } else if (name === "..") { + var lookup = FS.lookupPath(stream.path, { + parent: true + }); + id = lookup.node.id; + type = 4; + } else { + var child = FS.lookupNode(stream.node, name); + id = child.id; + type = FS.isChrdev(child.mode) ? 2 : FS.isDir(child.mode) ? 4 : FS.isLink(child.mode) ? 10 : 8; + } + assert(id); + tempI64 = [ id >>> 0, (tempDouble = id, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[dirp + pos >> 2] = tempI64[0], GROWABLE_HEAP_I32()[dirp + pos + 4 >> 2] = tempI64[1]; + tempI64 = [ (idx + 1) * struct_size >>> 0, (tempDouble = (idx + 1) * struct_size, + +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[dirp + pos + 8 >> 2] = tempI64[0], GROWABLE_HEAP_I32()[dirp + pos + 12 >> 2] = tempI64[1]; + GROWABLE_HEAP_I16()[dirp + pos + 16 >> 1] = 280; + GROWABLE_HEAP_I8()[dirp + pos + 18 >> 0] = type; + stringToUTF8(name, dirp + pos + 19, 256); + pos += struct_size; + idx += 1; + } + FS.llseek(stream, idx * struct_size, 0); + return pos; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_getsockname(fd, addr, addrlen, d1, d2, d3) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(15, 1, fd, addr, addrlen, d1, d2, d3); + try { + var sock = getSocketFromFD(fd); + var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(sock.saddr || "0.0.0.0"), sock.sport, addrlen); + assert(!errno); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_getsockopt(fd, level, optname, optval, optlen, d1) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(16, 1, fd, level, optname, optval, optlen, d1); + try { + var sock = getSocketFromFD(fd); + if (level === 1) { + if (optname === 4) { + GROWABLE_HEAP_I32()[optval >> 2] = sock.error; + GROWABLE_HEAP_I32()[optlen >> 2] = 4; + sock.error = null; + return 0; + } + } + return -50; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_ioctl(fd, op, varargs) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(17, 1, fd, op, varargs); + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + case 21505: + { + if (!stream.tty) return -59; + return 0; + } + + case 21510: + case 21511: + case 21512: + case 21506: + case 21507: + case 21508: + { + if (!stream.tty) return -59; + return 0; + } + + case 21519: + { + if (!stream.tty) return -59; + var argp = SYSCALLS.get(); + GROWABLE_HEAP_I32()[argp >> 2] = 0; + return 0; + } + + case 21520: + { + if (!stream.tty) return -59; + return -28; + } + + case 21531: + { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + + case 21523: + { + if (!stream.tty) return -59; + return 0; + } + + case 21524: + { + if (!stream.tty) return -59; + return 0; + } + + default: + return -28; + } + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_listen(fd, backlog) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(18, 1, fd, backlog); + try { + var sock = getSocketFromFD(fd); + sock.sock_ops.listen(sock, backlog); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_lstat64(path, buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(19, 1, path, buf); + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.doStat(FS.lstat, path, buf); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_mkdirat(dirfd, path, mode) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(20, 1, dirfd, path, mode); + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + path = PATH.normalize(path); + if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1); + FS.mkdir(path, mode, 0); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_newfstatat(dirfd, path, buf, flags) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(21, 1, dirfd, path, buf, flags); + try { + path = SYSCALLS.getStr(path); + var nofollow = flags & 256; + var allowEmpty = flags & 4096; + flags = flags & ~6400; + assert(!flags, "unknown flags in __syscall_newfstatat: " + flags); + path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); + return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_openat(dirfd, path, flags, varargs) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(22, 1, dirfd, path, flags, varargs); + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? SYSCALLS.get() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_poll(fds, nfds, timeout) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(23, 1, fds, nfds, timeout); + try { + var nonzero = 0; + for (var i = 0; i < nfds; i++) { + var pollfd = fds + 8 * i; + var fd = GROWABLE_HEAP_I32()[pollfd >> 2]; + var events = GROWABLE_HEAP_I16()[pollfd + 4 >> 1]; + var mask = 32; + var stream = FS.getStream(fd); + if (stream) { + mask = SYSCALLS.DEFAULT_POLLMASK; + if (stream.stream_ops.poll) { + mask = stream.stream_ops.poll(stream); + } + } + mask &= events | 8 | 16; + if (mask) nonzero++; + GROWABLE_HEAP_I16()[pollfd + 6 >> 1] = mask; + } + return nonzero; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_readlinkat(dirfd, path, buf, bufsize) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(24, 1, dirfd, path, buf, bufsize); + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (bufsize <= 0) return -28; + var ret = FS.readlink(path); + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = GROWABLE_HEAP_I8()[buf + len]; + stringToUTF8(ret, buf, bufsize + 1); + GROWABLE_HEAP_I8()[buf + len] = endChar; + return len; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_recvfrom(fd, buf, len, flags, addr, addrlen) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(25, 1, fd, buf, len, flags, addr, addrlen); + try { + var sock = getSocketFromFD(fd); + var msg = sock.sock_ops.recvmsg(sock, len); + if (!msg) return 0; + if (addr) { + var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(msg.addr), msg.port, addrlen); + assert(!errno); + } + GROWABLE_HEAP_U8().set(msg.buffer, buf); + return msg.buffer.byteLength; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(26, 1, olddirfd, oldpath, newdirfd, newpath); + try { + oldpath = SYSCALLS.getStr(oldpath); + newpath = SYSCALLS.getStr(newpath); + oldpath = SYSCALLS.calculateAt(olddirfd, oldpath); + newpath = SYSCALLS.calculateAt(newdirfd, newpath); + FS.rename(oldpath, newpath); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_rmdir(path) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(27, 1, path); + try { + path = SYSCALLS.getStr(path); + FS.rmdir(path); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_sendto(fd, message, length, flags, addr, addr_len) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(28, 1, fd, message, length, flags, addr, addr_len); + try { + var sock = getSocketFromFD(fd); + var dest = getSocketAddress(addr, addr_len, true); + if (!dest) { + return FS.write(sock.stream, GROWABLE_HEAP_I8(), message, length); + } + return sock.sock_ops.sendmsg(sock, GROWABLE_HEAP_I8(), message, length, dest.addr, dest.port); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_socket(domain, type, protocol) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(29, 1, domain, type, protocol); + try { + var sock = SOCKFS.createSocket(domain, type, protocol); + assert(sock.stream.fd < 64); + return sock.stream.fd; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_stat64(path, buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(30, 1, path, buf); + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.doStat(FS.stat, path, buf); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_statfs64(path, size, buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(31, 1, path, size, buf); + try { + path = SYSCALLS.getStr(path); + assert(size === 64); + GROWABLE_HEAP_I32()[buf + 4 >> 2] = 4096; + GROWABLE_HEAP_I32()[buf + 40 >> 2] = 4096; + GROWABLE_HEAP_I32()[buf + 8 >> 2] = 1e6; + GROWABLE_HEAP_I32()[buf + 12 >> 2] = 5e5; + GROWABLE_HEAP_I32()[buf + 16 >> 2] = 5e5; + GROWABLE_HEAP_I32()[buf + 20 >> 2] = FS.nextInode; + GROWABLE_HEAP_I32()[buf + 24 >> 2] = 1e6; + GROWABLE_HEAP_I32()[buf + 28 >> 2] = 42; + GROWABLE_HEAP_I32()[buf + 44 >> 2] = 2; + GROWABLE_HEAP_I32()[buf + 36 >> 2] = 255; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_symlink(target, linkpath) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(32, 1, target, linkpath); + try { + target = SYSCALLS.getStr(target); + linkpath = SYSCALLS.getStr(linkpath); + FS.symlink(target, linkpath); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_unlinkat(dirfd, path, flags) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(33, 1, dirfd, path, flags); + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (flags === 0) { + FS.unlink(path); + } else if (flags === 512) { + FS.rmdir(path); + } else { + abort("Invalid flags passed to unlinkat"); + } + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var nowIsMonotonic = true; + +function __emscripten_get_now_is_monotonic() { + return nowIsMonotonic; +} + +function maybeExit() { + if (runtimeExited) { + return; + } + if (!keepRuntimeAlive()) { + try { + if (ENVIRONMENT_IS_PTHREAD) __emscripten_thread_exit(EXITSTATUS); else _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } +} + +function callUserCallback(func) { + if (runtimeExited || ABORT) { + err("user callback triggered after runtime exited or application aborted. Ignoring."); + return; + } + try { + func(); + maybeExit(); + } catch (e) { + handleException(e); + } +} + +function __emscripten_thread_mailbox_await(pthread_ptr) { + if (typeof Atomics.waitAsync === "function") { + var wait = Atomics.waitAsync(GROWABLE_HEAP_I32(), pthread_ptr >> 2, pthread_ptr); + assert(wait.async); + wait.value.then(checkMailbox); + var waitingAsync = pthread_ptr + 128; + Atomics.store(GROWABLE_HEAP_I32(), waitingAsync >> 2, 1); + } +} + +Module["__emscripten_thread_mailbox_await"] = __emscripten_thread_mailbox_await; + +function checkMailbox() { + var pthread_ptr = _pthread_self(); + if (pthread_ptr) { + __emscripten_thread_mailbox_await(pthread_ptr); + callUserCallback(() => __emscripten_check_mailbox()); + } +} + +Module["checkMailbox"] = checkMailbox; + +function __emscripten_notify_mailbox_postmessage(targetThreadId, currThreadId, mainThreadId) { + if (targetThreadId == currThreadId) { + setTimeout(() => checkMailbox()); + } else if (ENVIRONMENT_IS_PTHREAD) { + postMessage({ + "targetThread": targetThreadId, + "cmd": "checkMailbox" + }); + } else { + var worker = PThread.pthreads[targetThreadId]; + if (!worker) { + err("Cannot send message to thread with ID " + targetThreadId + ", unknown thread ID!"); + return; + } + worker.postMessage({ + "cmd": "checkMailbox" + }); + } +} + +function webgl_enable_ANGLE_instanced_arrays(ctx) { + var ext = ctx.getExtension("ANGLE_instanced_arrays"); + if (ext) { + ctx["vertexAttribDivisor"] = function(index, divisor) { + ext["vertexAttribDivisorANGLE"](index, divisor); + }; + ctx["drawArraysInstanced"] = function(mode, first, count, primcount) { + ext["drawArraysInstancedANGLE"](mode, first, count, primcount); + }; + ctx["drawElementsInstanced"] = function(mode, count, type, indices, primcount) { + ext["drawElementsInstancedANGLE"](mode, count, type, indices, primcount); + }; + return 1; + } +} + +function webgl_enable_OES_vertex_array_object(ctx) { + var ext = ctx.getExtension("OES_vertex_array_object"); + if (ext) { + ctx["createVertexArray"] = function() { + return ext["createVertexArrayOES"](); + }; + ctx["deleteVertexArray"] = function(vao) { + ext["deleteVertexArrayOES"](vao); + }; + ctx["bindVertexArray"] = function(vao) { + ext["bindVertexArrayOES"](vao); + }; + ctx["isVertexArray"] = function(vao) { + return ext["isVertexArrayOES"](vao); + }; + return 1; + } +} + +function webgl_enable_WEBGL_draw_buffers(ctx) { + var ext = ctx.getExtension("WEBGL_draw_buffers"); + if (ext) { + ctx["drawBuffers"] = function(n, bufs) { + ext["drawBuffersWEBGL"](n, bufs); + }; + return 1; + } +} + +function webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx) { + return !!(ctx.dibvbi = ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")); +} + +function webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx) { + return !!(ctx.mdibvbi = ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")); +} + +function webgl_enable_WEBGL_multi_draw(ctx) { + return !!(ctx.multiDrawWebgl = ctx.getExtension("WEBGL_multi_draw")); +} + +var GL = { + counter: 1, + buffers: [], + programs: [], + framebuffers: [], + renderbuffers: [], + textures: [], + shaders: [], + vaos: [], + contexts: {}, + offscreenCanvases: {}, + queries: [], + samplers: [], + transformFeedbacks: [], + syncs: [], + stringCache: {}, + stringiCache: {}, + unpackAlignment: 4, + recordError: function recordError(errorCode) { + if (!GL.lastError) { + GL.lastError = errorCode; + } + }, + getNewId: function(table) { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + }, + getSource: function(shader, count, string, length) { + var source = ""; + for (var i = 0; i < count; ++i) { + var len = length ? GROWABLE_HEAP_I32()[length + i * 4 >> 2] : -1; + source += UTF8ToString(GROWABLE_HEAP_I32()[string + i * 4 >> 2], len < 0 ? undefined : len); + } + return source; + }, + createContext: function(canvas, webGLContextAttributes) { + if (webGLContextAttributes.renderViaOffscreenBackBuffer) webGLContextAttributes["preserveDrawingBuffer"] = true; + var ctx = webGLContextAttributes.majorVersion > 1 ? canvas.getContext("webgl2", webGLContextAttributes) : canvas.getContext("webgl", webGLContextAttributes); + if (!ctx) return 0; + var handle = GL.registerContext(ctx, webGLContextAttributes); + return handle; + }, + enableOffscreenFramebufferAttributes: function(webGLContextAttributes) { + webGLContextAttributes.renderViaOffscreenBackBuffer = true; + webGLContextAttributes.preserveDrawingBuffer = true; + }, + createOffscreenFramebuffer: function(context) { + var gl = context.GLctx; + var fbo = gl.createFramebuffer(); + gl.bindFramebuffer(36160, fbo); + context.defaultFbo = fbo; + context.defaultFboForbidBlitFramebuffer = false; + if (gl.getContextAttributes().antialias) { + context.defaultFboForbidBlitFramebuffer = true; + } + context.defaultColorTarget = gl.createTexture(); + context.defaultDepthTarget = gl.createRenderbuffer(); + GL.resizeOffscreenFramebuffer(context); + gl.bindTexture(3553, context.defaultColorTarget); + gl.texParameteri(3553, 10241, 9728); + gl.texParameteri(3553, 10240, 9728); + gl.texParameteri(3553, 10242, 33071); + gl.texParameteri(3553, 10243, 33071); + gl.texImage2D(3553, 0, 6408, gl.canvas.width, gl.canvas.height, 0, 6408, 5121, null); + gl.framebufferTexture2D(36160, 36064, 3553, context.defaultColorTarget, 0); + gl.bindTexture(3553, null); + var depthTarget = gl.createRenderbuffer(); + gl.bindRenderbuffer(36161, context.defaultDepthTarget); + gl.renderbufferStorage(36161, 33189, gl.canvas.width, gl.canvas.height); + gl.framebufferRenderbuffer(36160, 36096, 36161, context.defaultDepthTarget); + gl.bindRenderbuffer(36161, null); + var vertices = [ -1, -1, -1, 1, 1, -1, 1, 1 ]; + var vb = gl.createBuffer(); + gl.bindBuffer(34962, vb); + gl.bufferData(34962, new Float32Array(vertices), 35044); + gl.bindBuffer(34962, null); + context.blitVB = vb; + var vsCode = "attribute vec2 pos;" + "varying lowp vec2 tex;" + "void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }"; + var vs = gl.createShader(35633); + gl.shaderSource(vs, vsCode); + gl.compileShader(vs); + var fsCode = "varying lowp vec2 tex;" + "uniform sampler2D sampler;" + "void main() { gl_FragColor = texture2D(sampler, tex); }"; + var fs = gl.createShader(35632); + gl.shaderSource(fs, fsCode); + gl.compileShader(fs); + var blitProgram = gl.createProgram(); + gl.attachShader(blitProgram, vs); + gl.attachShader(blitProgram, fs); + gl.linkProgram(blitProgram); + context.blitProgram = blitProgram; + context.blitPosLoc = gl.getAttribLocation(blitProgram, "pos"); + gl.useProgram(blitProgram); + gl.uniform1i(gl.getUniformLocation(blitProgram, "sampler"), 0); + gl.useProgram(null); + context.defaultVao = undefined; + if (gl.createVertexArray) { + context.defaultVao = gl.createVertexArray(); + gl.bindVertexArray(context.defaultVao); + gl.enableVertexAttribArray(context.blitPosLoc); + gl.bindVertexArray(null); + } + }, + resizeOffscreenFramebuffer: function(context) { + var gl = context.GLctx; + if (context.defaultColorTarget) { + var prevTextureBinding = gl.getParameter(32873); + gl.bindTexture(3553, context.defaultColorTarget); + gl.texImage2D(3553, 0, 6408, gl.drawingBufferWidth, gl.drawingBufferHeight, 0, 6408, 5121, null); + gl.bindTexture(3553, prevTextureBinding); + } + if (context.defaultDepthTarget) { + var prevRenderBufferBinding = gl.getParameter(36007); + gl.bindRenderbuffer(36161, context.defaultDepthTarget); + gl.renderbufferStorage(36161, 33189, gl.drawingBufferWidth, gl.drawingBufferHeight); + gl.bindRenderbuffer(36161, prevRenderBufferBinding); + } + }, + blitOffscreenFramebuffer: function(context) { + var gl = context.GLctx; + var prevScissorTest = gl.getParameter(3089); + if (prevScissorTest) gl.disable(3089); + var prevFbo = gl.getParameter(36006); + if (gl.blitFramebuffer && !context.defaultFboForbidBlitFramebuffer) { + gl.bindFramebuffer(36008, context.defaultFbo); + gl.bindFramebuffer(36009, null); + gl.blitFramebuffer(0, 0, gl.canvas.width, gl.canvas.height, 0, 0, gl.canvas.width, gl.canvas.height, 16384, 9728); + } else { + gl.bindFramebuffer(36160, null); + var prevProgram = gl.getParameter(35725); + gl.useProgram(context.blitProgram); + var prevVB = gl.getParameter(34964); + gl.bindBuffer(34962, context.blitVB); + var prevActiveTexture = gl.getParameter(34016); + gl.activeTexture(33984); + var prevTextureBinding = gl.getParameter(32873); + gl.bindTexture(3553, context.defaultColorTarget); + var prevBlend = gl.getParameter(3042); + if (prevBlend) gl.disable(3042); + var prevCullFace = gl.getParameter(2884); + if (prevCullFace) gl.disable(2884); + var prevDepthTest = gl.getParameter(2929); + if (prevDepthTest) gl.disable(2929); + var prevStencilTest = gl.getParameter(2960); + if (prevStencilTest) gl.disable(2960); + function draw() { + gl.vertexAttribPointer(context.blitPosLoc, 2, 5126, false, 0, 0); + gl.drawArrays(5, 0, 4); + } + if (context.defaultVao) { + var prevVAO = gl.getParameter(34229); + gl.bindVertexArray(context.defaultVao); + draw(); + gl.bindVertexArray(prevVAO); + } else { + var prevVertexAttribPointer = { + buffer: gl.getVertexAttrib(context.blitPosLoc, 34975), + size: gl.getVertexAttrib(context.blitPosLoc, 34339), + stride: gl.getVertexAttrib(context.blitPosLoc, 34340), + type: gl.getVertexAttrib(context.blitPosLoc, 34341), + normalized: gl.getVertexAttrib(context.blitPosLoc, 34922), + pointer: gl.getVertexAttribOffset(context.blitPosLoc, 34373) + }; + var maxVertexAttribs = gl.getParameter(34921); + var prevVertexAttribEnables = []; + for (var i = 0; i < maxVertexAttribs; ++i) { + var prevEnabled = gl.getVertexAttrib(i, 34338); + var wantEnabled = i == context.blitPosLoc; + if (prevEnabled && !wantEnabled) { + gl.disableVertexAttribArray(i); + } + if (!prevEnabled && wantEnabled) { + gl.enableVertexAttribArray(i); + } + prevVertexAttribEnables[i] = prevEnabled; + } + draw(); + for (var i = 0; i < maxVertexAttribs; ++i) { + var prevEnabled = prevVertexAttribEnables[i]; + var nowEnabled = i == context.blitPosLoc; + if (prevEnabled && !nowEnabled) { + gl.enableVertexAttribArray(i); + } + if (!prevEnabled && nowEnabled) { + gl.disableVertexAttribArray(i); + } + } + gl.bindBuffer(34962, prevVertexAttribPointer.buffer); + gl.vertexAttribPointer(context.blitPosLoc, prevVertexAttribPointer.size, prevVertexAttribPointer.type, prevVertexAttribPointer.normalized, prevVertexAttribPointer.stride, prevVertexAttribPointer.offset); + } + if (prevStencilTest) gl.enable(2960); + if (prevDepthTest) gl.enable(2929); + if (prevCullFace) gl.enable(2884); + if (prevBlend) gl.enable(3042); + gl.bindTexture(3553, prevTextureBinding); + gl.activeTexture(prevActiveTexture); + gl.bindBuffer(34962, prevVB); + gl.useProgram(prevProgram); + } + gl.bindFramebuffer(36160, prevFbo); + if (prevScissorTest) gl.enable(3089); + }, + registerContext: function(ctx, webGLContextAttributes) { + var handle = _malloc(8); + GROWABLE_HEAP_I32()[handle + 4 >> 2] = _pthread_self(); + var context = { + handle: handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes.majorVersion, + GLctx: ctx + }; + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes.enableExtensionsByDefault == "undefined" || webGLContextAttributes.enableExtensionsByDefault) { + GL.initExtensions(context); + } + if (webGLContextAttributes.renderViaOffscreenBackBuffer) GL.createOffscreenFramebuffer(context); + return handle; + }, + makeContextCurrent: function(contextHandle) { + GL.currentContext = GL.contexts[contextHandle]; + Module.ctx = GLctx = GL.currentContext && GL.currentContext.GLctx; + return !(contextHandle && !GLctx); + }, + getContext: function(contextHandle) { + return GL.contexts[contextHandle]; + }, + deleteContext: function(contextHandle) { + if (GL.currentContext === GL.contexts[contextHandle]) GL.currentContext = null; + if (typeof JSEvents == "object") JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); + if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; + _free(GL.contexts[contextHandle].handle); + GL.contexts[contextHandle] = null; + }, + initExtensions: function(context) { + if (!context) context = GL.currentContext; + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + var GLctx = context.GLctx; + webgl_enable_ANGLE_instanced_arrays(GLctx); + webgl_enable_OES_vertex_array_object(GLctx); + webgl_enable_WEBGL_draw_buffers(GLctx); + webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx); + webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx); + if (context.version >= 2) { + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query_webgl2"); + } + if (context.version < 2 || !GLctx.disjointTimerQueryExt) { + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + } + webgl_enable_WEBGL_multi_draw(GLctx); + var exts = GLctx.getSupportedExtensions() || []; + exts.forEach(function(ext) { + if (!ext.includes("lose_context") && !ext.includes("debug")) { + GLctx.getExtension(ext); + } + }); + } +}; + +function __emscripten_proxied_gl_context_activated_from_main_browser_thread(contextHandle) { + GLctx = Module.ctx = GL.currentContext = contextHandle; + GL.currentContextIsProxied = true; +} + +function __emscripten_set_offscreencanvas_size(target, width, height) { + err("emscripten_set_offscreencanvas_size: Build with -sOFFSCREENCANVAS_SUPPORT=1 to enable transferring canvases to pthreads."); + return -1; +} + +function __emscripten_thread_set_strongref(thread) {} + +function __emscripten_throw_longjmp() { + throw Infinity; +} + +function readI53FromI64(ptr) { + return GROWABLE_HEAP_U32()[ptr >> 2] + GROWABLE_HEAP_I32()[ptr + 4 >> 2] * 4294967296; +} + +function __gmtime_js(time, tmPtr) { + var date = new Date(readI53FromI64(time) * 1e3); + GROWABLE_HEAP_I32()[tmPtr >> 2] = date.getUTCSeconds(); + GROWABLE_HEAP_I32()[tmPtr + 4 >> 2] = date.getUTCMinutes(); + GROWABLE_HEAP_I32()[tmPtr + 8 >> 2] = date.getUTCHours(); + GROWABLE_HEAP_I32()[tmPtr + 12 >> 2] = date.getUTCDate(); + GROWABLE_HEAP_I32()[tmPtr + 16 >> 2] = date.getUTCMonth(); + GROWABLE_HEAP_I32()[tmPtr + 20 >> 2] = date.getUTCFullYear() - 1900; + GROWABLE_HEAP_I32()[tmPtr + 24 >> 2] = date.getUTCDay(); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; + GROWABLE_HEAP_I32()[tmPtr + 28 >> 2] = yday; +} + +function isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); +} + +var MONTH_DAYS_LEAP_CUMULATIVE = [ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 ]; + +var MONTH_DAYS_REGULAR_CUMULATIVE = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ]; + +function ydayFromDate(date) { + var leap = isLeapYear(date.getFullYear()); + var monthDaysCumulative = leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE; + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; + return yday; +} + +function __localtime_js(time, tmPtr) { + var date = new Date(readI53FromI64(time) * 1e3); + GROWABLE_HEAP_I32()[tmPtr >> 2] = date.getSeconds(); + GROWABLE_HEAP_I32()[tmPtr + 4 >> 2] = date.getMinutes(); + GROWABLE_HEAP_I32()[tmPtr + 8 >> 2] = date.getHours(); + GROWABLE_HEAP_I32()[tmPtr + 12 >> 2] = date.getDate(); + GROWABLE_HEAP_I32()[tmPtr + 16 >> 2] = date.getMonth(); + GROWABLE_HEAP_I32()[tmPtr + 20 >> 2] = date.getFullYear() - 1900; + GROWABLE_HEAP_I32()[tmPtr + 24 >> 2] = date.getDay(); + var yday = ydayFromDate(date) | 0; + GROWABLE_HEAP_I32()[tmPtr + 28 >> 2] = yday; + GROWABLE_HEAP_I32()[tmPtr + 36 >> 2] = -(date.getTimezoneOffset() * 60); + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; + GROWABLE_HEAP_I32()[tmPtr + 32 >> 2] = dst; +} + +var timers = {}; + +var _emscripten_get_now; + +_emscripten_get_now = () => performance.timeOrigin + performance.now(); + +function __setitimer_js(which, timeout_ms) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(34, 1, which, timeout_ms); + if (timers[which]) { + clearTimeout(timers[which].id); + delete timers[which]; + } + if (!timeout_ms) return 0; + var id = setTimeout(() => { + assert(which in timers); + delete timers[which]; + callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now())); + }, timeout_ms); + timers[which] = { + id: id, + timeout_ms: timeout_ms + }; + return 0; +} + +function stringToNewUTF8(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8(str, ret, size); + return ret; +} + +function __tzset_js(timezone, daylight, tzname) { + var currentYear = new Date().getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + GROWABLE_HEAP_U32()[timezone >> 2] = stdTimezoneOffset * 60; + GROWABLE_HEAP_I32()[daylight >> 2] = Number(winterOffset != summerOffset); + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + } + var winterName = extractZone(winter); + var summerName = extractZone(summer); + var winterNamePtr = stringToNewUTF8(winterName); + var summerNamePtr = stringToNewUTF8(summerName); + if (summerOffset < winterOffset) { + GROWABLE_HEAP_U32()[tzname >> 2] = winterNamePtr; + GROWABLE_HEAP_U32()[tzname + 4 >> 2] = summerNamePtr; + } else { + GROWABLE_HEAP_U32()[tzname >> 2] = summerNamePtr; + GROWABLE_HEAP_U32()[tzname + 4 >> 2] = winterNamePtr; + } +} + +function _abort() { + abort("native code called abort()"); +} + +function _dlopen(handle) { + abort(dlopenMissingError); +} + +function runtimeKeepalivePush() { + runtimeKeepaliveCounter += 1; +} + +function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + if (!Browser.mainLoop.func) { + err("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."); + return 1; + } + if (!Browser.mainLoop.running) { + runtimeKeepalivePush(); + Browser.mainLoop.running = true; + } + if (mode == 0) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now()) | 0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick); + }; + Browser.mainLoop.method = "timeout"; + } else if (mode == 1) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = "rAF"; + } else if (mode == 2) { + if (typeof setImmediate == "undefined") { + var setImmediates = []; + var emscriptenMainLoopMessageId = "setimmediate"; + var Browser_setImmediate_messageHandler = event => { + if (event.data === emscriptenMainLoopMessageId || event.data.target === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + }; + addEventListener("message", Browser_setImmediate_messageHandler, true); + setImmediate = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module["setImmediates"] === undefined) Module["setImmediates"] = []; + Module["setImmediates"].push(func); + postMessage({ + target: emscriptenMainLoopMessageId + }); + } else postMessage(emscriptenMainLoopMessageId, "*"); + }; + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + setImmediate(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = "immediate"; + } + return 0; +} + +function runtimeKeepalivePop() { + assert(runtimeKeepaliveCounter > 0); + runtimeKeepaliveCounter -= 1; +} + +function setMainLoop(browserIterationFunc, fps, simulateInfiniteLoop, arg, noSetTiming) { + assert(!Browser.mainLoop.func, "emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."); + Browser.mainLoop.func = browserIterationFunc; + Browser.mainLoop.arg = arg; + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + function checkIsRunning() { + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) { + runtimeKeepalivePop(); + maybeExit(); + return false; + } + return true; + } + Browser.mainLoop.running = false; + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + next = next + .5; + Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9; + } + } + out('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms"); + Browser.mainLoop.updateStatus(); + if (!checkIsRunning()) return; + setTimeout(Browser.mainLoop.runner, 0); + return; + } + if (!checkIsRunning()) return; + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + Browser.mainLoop.scheduler(); + return; + } else if (Browser.mainLoop.timingMode == 0) { + Browser.mainLoop.tickStartTime = _emscripten_get_now(); + } + if (Browser.mainLoop.method === "timeout" && Module.ctx) { + warnOnce("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"); + Browser.mainLoop.method = ""; + } + Browser.mainLoop.runIter(browserIterationFunc); + checkStackCookie(); + if (!checkIsRunning()) return; + if (typeof SDL == "object" && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + Browser.mainLoop.scheduler(); + }; + if (!noSetTiming) { + if (fps && fps > 0) { + _emscripten_set_main_loop_timing(0, 1e3 / fps); + } else { + _emscripten_set_main_loop_timing(1, 1); + } + Browser.mainLoop.scheduler(); + } + if (simulateInfiniteLoop) { + throw "unwind"; + } +} + +function safeSetTimeout(func, timeout) { + runtimeKeepalivePush(); + return setTimeout(() => { + runtimeKeepalivePop(); + callUserCallback(func); + }, timeout); +} + +var Browser = { + mainLoop: { + running: false, + scheduler: null, + method: "", + currentlyRunningMainloop: 0, + func: null, + arg: 0, + timingMode: 0, + timingValue: 0, + currentFrameNumber: 0, + queue: [], + pause: function() { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; + }, + resume: function() { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + setMainLoop(func, 0, false, Browser.mainLoop.arg, true); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + }, + updateStatus: function() { + if (Module["setStatus"]) { + var message = Module["statusMessage"] || "Please wait..."; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")"); + } else { + Module["setStatus"](message); + } + } else { + Module["setStatus"](""); + } + } + }, + runIter: function(func) { + if (ABORT) return; + if (Module["preMainLoop"]) { + var preRet = Module["preMainLoop"](); + if (preRet === false) { + return; + } + } + callUserCallback(func); + if (Module["postMainLoop"]) Module["postMainLoop"](); + } + }, + isFullscreen: false, + pointerLock: false, + moduleContextCreatedCallbacks: [], + workers: [], + init: function() { + if (Browser.initted) return; + Browser.initted = true; + var imagePlugin = {}; + imagePlugin["canHandle"] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = new Blob([ byteArray ], { + type: Browser.getMimetype(name) + }); + if (b.size !== byteArray.length) { + b = new Blob([ new Uint8Array(byteArray).buffer ], { + type: Browser.getMimetype(name) + }); + } + var url = URL.createObjectURL(b); + assert(typeof url == "string", "createObjectURL must return a url as a string"); + var img = new Image(); + img.onload = () => { + assert(img.complete, "Image " + name + " could not be decoded"); + var canvas = document.createElement("canvas"); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + preloadedImages[name] = canvas; + URL.revokeObjectURL(url); + if (onload) onload(byteArray); + }; + img.onerror = event => { + out("Image " + url + " could not be decoded"); + if (onerror) onerror(); + }; + img.src = url; + }; + preloadPlugins.push(imagePlugin); + var audioPlugin = {}; + audioPlugin["canHandle"] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { + ".ogg": 1, + ".wav": 1, + ".mp3": 1 + }; + }; + audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio) { + if (done) return; + done = true; + preloadedAudios[name] = audio; + if (onload) onload(byteArray); + } + function fail() { + if (done) return; + done = true; + preloadedAudios[name] = new Audio(); + if (onerror) onerror(); + } + var b = new Blob([ byteArray ], { + type: Browser.getMimetype(name) + }); + var url = URL.createObjectURL(b); + assert(typeof url == "string", "createObjectURL must return a url as a string"); + var audio = new Audio(); + audio.addEventListener("canplaythrough", () => finish(audio), false); + audio.onerror = function audio_onerror(event) { + if (done) return; + err("warning: browser could not fully decode audio " + name + ", trying slower base64 approach"); + function encode64(data) { + var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var PAD = "="; + var ret = ""; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = leftchar << 8 | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = leftchar >> leftbits - 6 & 63; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar & 3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar & 15) << 2]; + ret += PAD; + } + return ret; + } + audio.src = "data:audio/x-" + name.substr(-3) + ";base64," + encode64(byteArray); + finish(audio); + }; + audio.src = url; + safeSetTimeout(() => { + finish(audio); + }, 1e4); + }; + preloadPlugins.push(audioPlugin); + function pointerLockChange() { + Browser.pointerLock = document["pointerLockElement"] === Module["canvas"] || document["mozPointerLockElement"] === Module["canvas"] || document["webkitPointerLockElement"] === Module["canvas"] || document["msPointerLockElement"] === Module["canvas"]; + } + var canvas = Module["canvas"]; + if (canvas) { + canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || (() => {}); + canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || (() => {}); + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + document.addEventListener("pointerlockchange", pointerLockChange, false); + document.addEventListener("mozpointerlockchange", pointerLockChange, false); + document.addEventListener("webkitpointerlockchange", pointerLockChange, false); + document.addEventListener("mspointerlockchange", pointerLockChange, false); + if (Module["elementPointerLock"]) { + canvas.addEventListener("click", ev => { + if (!Browser.pointerLock && Module["canvas"].requestPointerLock) { + Module["canvas"].requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + }, + createContext: function(canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; + var ctx; + var contextHandle; + if (useWebGL) { + var contextAttributes = { + antialias: false, + alpha: false, + majorVersion: typeof WebGL2RenderingContext != "undefined" ? 2 : 1 + }; + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + if (typeof GL != "undefined") { + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } + } else { + ctx = canvas.getContext("2d"); + } + if (!ctx) return null; + if (setInModule) { + if (!useWebGL) assert(typeof GLctx == "undefined", "cannot set in module if GLctx is used, but we are a non-GL context that would replace it"); + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(callback => callback()); + Browser.init(); + } + return ctx; + }, + destroyContext: function(canvas, useWebGL, setInModule) {}, + fullscreenHandlersInstalled: false, + lockPointer: undefined, + resizeCanvas: undefined, + requestFullscreen: function(lockPointer, resizeCanvas) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + if (typeof Browser.lockPointer == "undefined") Browser.lockPointer = true; + if (typeof Browser.resizeCanvas == "undefined") Browser.resizeCanvas = false; + var canvas = Module["canvas"]; + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document["fullscreenElement"] || document["mozFullScreenElement"] || document["msFullscreenElement"] || document["webkitFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer) { + canvas.exitFullscreen = Browser.exitFullscreen; + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) { + Browser.setFullscreenCanvasSize(); + } else { + Browser.updateCanvasDimensions(canvas); + } + } else { + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + if (Browser.resizeCanvas) { + Browser.setWindowedCanvasSize(); + } else { + Browser.updateCanvasDimensions(canvas); + } + } + if (Module["onFullScreen"]) Module["onFullScreen"](Browser.isFullscreen); + if (Module["onFullscreen"]) Module["onFullscreen"](Browser.isFullscreen); + } + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener("fullscreenchange", fullscreenChange, false); + document.addEventListener("mozfullscreenchange", fullscreenChange, false); + document.addEventListener("webkitfullscreenchange", fullscreenChange, false); + document.addEventListener("MSFullscreenChange", fullscreenChange, false); + } + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + canvasContainer.requestFullscreen = canvasContainer["requestFullscreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullscreen"] ? () => canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]) : null) || (canvasContainer["webkitRequestFullScreen"] ? () => canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]) : null); + canvasContainer.requestFullscreen(); + }, + requestFullScreen: function() { + abort("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)"); + }, + exitFullscreen: function() { + if (!Browser.isFullscreen) { + return false; + } + var CFS = document["exitFullscreen"] || document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["msExitFullscreen"] || document["webkitCancelFullScreen"] || (() => {}); + CFS.apply(document, []); + return true; + }, + nextRAF: 0, + fakeRequestAnimationFrame: function(func) { + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1e3 / 60; + } else { + while (now + 2 >= Browser.nextRAF) { + Browser.nextRAF += 1e3 / 60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay); + }, + requestAnimationFrame: function(func) { + if (typeof requestAnimationFrame == "function") { + requestAnimationFrame(func); + return; + } + var RAF = Browser.fakeRequestAnimationFrame; + RAF(func); + }, + safeSetTimeout: function(func, timeout) { + return safeSetTimeout(func, timeout); + }, + safeRequestAnimationFrame: function(func) { + runtimeKeepalivePush(); + return Browser.requestAnimationFrame(() => { + runtimeKeepalivePop(); + callUserCallback(func); + }); + }, + getMimetype: function(name) { + return { + "jpg": "image/jpeg", + "jpeg": "image/jpeg", + "png": "image/png", + "bmp": "image/bmp", + "ogg": "audio/ogg", + "wav": "audio/wav", + "mp3": "audio/mpeg" + }[name.substr(name.lastIndexOf(".") + 1)]; + }, + getUserMedia: function(func) { + if (!window.getUserMedia) { + window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"]; + } + window.getUserMedia(func); + }, + getMovementX: function(event) { + return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0; + }, + getMovementY: function(event) { + return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0; + }, + getMouseWheelDelta: function(event) { + var delta = 0; + switch (event.type) { + case "DOMMouseScroll": + delta = event.detail / 3; + break; + + case "mousewheel": + delta = event.wheelDelta / 120; + break; + + case "wheel": + delta = event.deltaY; + switch (event.deltaMode) { + case 0: + delta /= 100; + break; + + case 1: + delta /= 3; + break; + + case 2: + delta *= 80; + break; + + default: + throw "unrecognized mouse wheel delta mode: " + event.deltaMode; + } + break; + + default: + throw "unrecognized mouse wheel event: " + event.type; + } + return delta; + }, + mouseX: 0, + mouseY: 0, + mouseMovementX: 0, + mouseMovementY: 0, + touches: {}, + lastTouches: {}, + calculateMouseEvent: function(event) { + if (Browser.pointerLock) { + if (event.type != "mousemove" && "mozMovementX" in event) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + var scrollX = typeof window.scrollX != "undefined" ? window.scrollX : window.pageXOffset; + var scrollY = typeof window.scrollY != "undefined" ? window.scrollY : window.pageYOffset; + assert(typeof scrollX != "undefined" && typeof scrollY != "undefined", "Unable to retrieve scroll position, mouse positions likely broken."); + if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") { + var touch = event.touch; + if (touch === undefined) { + return; + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + var coords = { + x: adjustedX, + y: adjustedY + }; + if (event.type === "touchstart") { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === "touchend" || event.type === "touchmove") { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + x = x * (cw / rect.width); + y = y * (ch / rect.height); + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + }, + resizeListeners: [], + updateResizeListeners: function() { + var canvas = Module["canvas"]; + Browser.resizeListeners.forEach(listener => listener(canvas.width, canvas.height)); + }, + setCanvasSize: function(width, height, noUpdates) { + var canvas = Module["canvas"]; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + }, + windowedWidth: 0, + windowedHeight: 0, + setFullscreenCanvasSize: function() { + if (typeof SDL != "undefined") { + var flags = GROWABLE_HEAP_U32()[SDL.screen >> 2]; + flags = flags | 8388608; + GROWABLE_HEAP_I32()[SDL.screen >> 2] = flags; + } + Browser.updateCanvasDimensions(Module["canvas"]); + Browser.updateResizeListeners(); + }, + setWindowedCanvasSize: function() { + if (typeof SDL != "undefined") { + var flags = GROWABLE_HEAP_U32()[SDL.screen >> 2]; + flags = flags & ~8388608; + GROWABLE_HEAP_I32()[SDL.screen >> 2] = flags; + } + Browser.updateCanvasDimensions(Module["canvas"]); + Browser.updateResizeListeners(); + }, + updateCanvasDimensions: function(canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) { + if (w / h < Module["forcedAspectRatio"]) { + w = Math.round(h * Module["forcedAspectRatio"]); + } else { + h = Math.round(w / Module["forcedAspectRatio"]); + } + } + if ((document["fullscreenElement"] || document["mozFullScreenElement"] || document["msFullscreenElement"] || document["webkitFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != "undefined") { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != "undefined") { + if (w != wNative || h != hNative) { + canvas.style.setProperty("width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height"); + } + } + } + } +}; + +function _emscripten_cancel_main_loop() { + Browser.mainLoop.pause(); + Browser.mainLoop.func = null; +} + +function _emscripten_check_blocking_allowed() { + if (ENVIRONMENT_IS_WORKER) return; + warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"); +} + +function _emscripten_console_error(str) { + assert(typeof str == "number"); + console.error(UTF8ToString(str)); +} + +function _emscripten_date_now() { + return Date.now(); +} + +function _emscripten_exit_with_live_runtime() { + runtimeKeepalivePush(); + throw "unwind"; +} + +function _emscripten_force_exit(status) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(35, 1, status); + noExitRuntime = false; + runtimeKeepaliveCounter = 0; + _exit(status); +} + +function _glActiveTexture(x0) { + GLctx.activeTexture(x0); +} + +var _emscripten_glActiveTexture = _glActiveTexture; + +function _glAttachShader(program, shader) { + GLctx.attachShader(GL.programs[program], GL.shaders[shader]); +} + +var _emscripten_glAttachShader = _glAttachShader; + +function _glBeginTransformFeedback(x0) { + GLctx.beginTransformFeedback(x0); +} + +var _emscripten_glBeginTransformFeedback = _glBeginTransformFeedback; + +function _glBindBuffer(target, buffer) { + if (target == 35051) { + GLctx.currentPixelPackBufferBinding = buffer; + } else if (target == 35052) { + GLctx.currentPixelUnpackBufferBinding = buffer; + } + GLctx.bindBuffer(target, GL.buffers[buffer]); +} + +var _emscripten_glBindBuffer = _glBindBuffer; + +function _glBindBufferBase(target, index, buffer) { + GLctx.bindBufferBase(target, index, GL.buffers[buffer]); +} + +var _emscripten_glBindBufferBase = _glBindBufferBase; + +function _glBindBufferRange(target, index, buffer, offset, ptrsize) { + GLctx.bindBufferRange(target, index, GL.buffers[buffer], offset, ptrsize); +} + +var _emscripten_glBindBufferRange = _glBindBufferRange; + +function _glBindFramebuffer(target, framebuffer) { + GLctx.bindFramebuffer(target, framebuffer ? GL.framebuffers[framebuffer] : GL.currentContext.defaultFbo); +} + +var _emscripten_glBindFramebuffer = _glBindFramebuffer; + +function _glBindRenderbuffer(target, renderbuffer) { + GLctx.bindRenderbuffer(target, GL.renderbuffers[renderbuffer]); +} + +var _emscripten_glBindRenderbuffer = _glBindRenderbuffer; + +function _glBindTexture(target, texture) { + GLctx.bindTexture(target, GL.textures[texture]); +} + +var _emscripten_glBindTexture = _glBindTexture; + +function _glBindVertexArray(vao) { + GLctx.bindVertexArray(GL.vaos[vao]); +} + +var _emscripten_glBindVertexArray = _glBindVertexArray; + +function _glBlendColor(x0, x1, x2, x3) { + GLctx.blendColor(x0, x1, x2, x3); +} + +var _emscripten_glBlendColor = _glBlendColor; + +function _glBlendEquation(x0) { + GLctx.blendEquation(x0); +} + +var _emscripten_glBlendEquation = _glBlendEquation; + +function _glBlendFunc(x0, x1) { + GLctx.blendFunc(x0, x1); +} + +var _emscripten_glBlendFunc = _glBlendFunc; + +function _glBlendFuncSeparate(x0, x1, x2, x3) { + GLctx.blendFuncSeparate(x0, x1, x2, x3); +} + +var _emscripten_glBlendFuncSeparate = _glBlendFuncSeparate; + +function _glBlitFramebuffer(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9) { + GLctx.blitFramebuffer(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9); +} + +var _emscripten_glBlitFramebuffer = _glBlitFramebuffer; + +function _glBufferData(target, size, data, usage) { + if (GL.currentContext.version >= 2) { + if (data && size) { + GLctx.bufferData(target, GROWABLE_HEAP_U8(), usage, data, size); + } else { + GLctx.bufferData(target, size, usage); + } + } else { + GLctx.bufferData(target, data ? GROWABLE_HEAP_U8().subarray(data, data + size) : size, usage); + } +} + +var _emscripten_glBufferData = _glBufferData; + +function _glBufferSubData(target, offset, size, data) { + if (GL.currentContext.version >= 2) { + size && GLctx.bufferSubData(target, offset, GROWABLE_HEAP_U8(), data, size); + return; + } + GLctx.bufferSubData(target, offset, GROWABLE_HEAP_U8().subarray(data, data + size)); +} + +var _emscripten_glBufferSubData = _glBufferSubData; + +function _glCheckFramebufferStatus(x0) { + return GLctx.checkFramebufferStatus(x0); +} + +var _emscripten_glCheckFramebufferStatus = _glCheckFramebufferStatus; + +function _glClear(x0) { + GLctx.clear(x0); +} + +var _emscripten_glClear = _glClear; + +function _glClearBufferfv(buffer, drawbuffer, value) { + GLctx.clearBufferfv(buffer, drawbuffer, GROWABLE_HEAP_F32(), value >> 2); +} + +var _emscripten_glClearBufferfv = _glClearBufferfv; + +function _glClearColor(x0, x1, x2, x3) { + GLctx.clearColor(x0, x1, x2, x3); +} + +var _emscripten_glClearColor = _glClearColor; + +function _glClearDepthf(x0) { + GLctx.clearDepth(x0); +} + +var _emscripten_glClearDepthf = _glClearDepthf; + +function _glColorMask(red, green, blue, alpha) { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); +} + +var _emscripten_glColorMask = _glColorMask; + +function _glCompileShader(shader) { + GLctx.compileShader(GL.shaders[shader]); +} + +var _emscripten_glCompileShader = _glCompileShader; + +function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelUnpackBufferBinding || !imageSize) { + GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data); + } else { + GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, GROWABLE_HEAP_U8(), data, imageSize); + } + return; + } + GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, data ? GROWABLE_HEAP_U8().subarray(data, data + imageSize) : null); +} + +var _emscripten_glCompressedTexImage2D = _glCompressedTexImage2D; + +function _glCopyBufferSubData(x0, x1, x2, x3, x4) { + GLctx.copyBufferSubData(x0, x1, x2, x3, x4); +} + +var _emscripten_glCopyBufferSubData = _glCopyBufferSubData; + +function _glCreateProgram() { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + program.name = id; + program.maxUniformLength = program.maxAttributeLength = program.maxUniformBlockNameLength = 0; + program.uniformIdCounter = 1; + GL.programs[id] = program; + return id; +} + +var _emscripten_glCreateProgram = _glCreateProgram; + +function _glCreateShader(shaderType) { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; +} + +var _emscripten_glCreateShader = _glCreateShader; + +function _glCullFace(x0) { + GLctx.cullFace(x0); +} + +var _emscripten_glCullFace = _glCullFace; + +function _glDeleteBuffers(n, buffers) { + for (var i = 0; i < n; i++) { + var id = GROWABLE_HEAP_I32()[buffers + i * 4 >> 2]; + var buffer = GL.buffers[id]; + if (!buffer) continue; + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + if (id == GLctx.currentPixelPackBufferBinding) GLctx.currentPixelPackBufferBinding = 0; + if (id == GLctx.currentPixelUnpackBufferBinding) GLctx.currentPixelUnpackBufferBinding = 0; + } +} + +var _emscripten_glDeleteBuffers = _glDeleteBuffers; + +function _glDeleteFramebuffers(n, framebuffers) { + for (var i = 0; i < n; ++i) { + var id = GROWABLE_HEAP_I32()[framebuffers + i * 4 >> 2]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } +} + +var _emscripten_glDeleteFramebuffers = _glDeleteFramebuffers; + +function _glDeleteProgram(id) { + if (!id) return; + var program = GL.programs[id]; + if (!program) { + GL.recordError(1281); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; +} + +var _emscripten_glDeleteProgram = _glDeleteProgram; + +function _glDeleteQueries(n, ids) { + for (var i = 0; i < n; i++) { + var id = GROWABLE_HEAP_I32()[ids + i * 4 >> 2]; + var query = GL.queries[id]; + if (!query) continue; + GLctx.deleteQuery(query); + GL.queries[id] = null; + } +} + +var _emscripten_glDeleteQueries = _glDeleteQueries; + +function _glDeleteRenderbuffers(n, renderbuffers) { + for (var i = 0; i < n; i++) { + var id = GROWABLE_HEAP_I32()[renderbuffers + i * 4 >> 2]; + var renderbuffer = GL.renderbuffers[id]; + if (!renderbuffer) continue; + GLctx.deleteRenderbuffer(renderbuffer); + renderbuffer.name = 0; + GL.renderbuffers[id] = null; + } +} + +var _emscripten_glDeleteRenderbuffers = _glDeleteRenderbuffers; + +function _glDeleteShader(id) { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { + GL.recordError(1281); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; +} + +var _emscripten_glDeleteShader = _glDeleteShader; + +function _glDeleteSync(id) { + if (!id) return; + var sync = GL.syncs[id]; + if (!sync) { + GL.recordError(1281); + return; + } + GLctx.deleteSync(sync); + sync.name = 0; + GL.syncs[id] = null; +} + +var _emscripten_glDeleteSync = _glDeleteSync; + +function _glDeleteTextures(n, textures) { + for (var i = 0; i < n; i++) { + var id = GROWABLE_HEAP_I32()[textures + i * 4 >> 2]; + var texture = GL.textures[id]; + if (!texture) continue; + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } +} + +var _emscripten_glDeleteTextures = _glDeleteTextures; + +function _glDeleteVertexArrays(n, vaos) { + for (var i = 0; i < n; i++) { + var id = GROWABLE_HEAP_I32()[vaos + i * 4 >> 2]; + GLctx.deleteVertexArray(GL.vaos[id]); + GL.vaos[id] = null; + } +} + +var _emscripten_glDeleteVertexArrays = _glDeleteVertexArrays; + +function _glDepthFunc(x0) { + GLctx.depthFunc(x0); +} + +var _emscripten_glDepthFunc = _glDepthFunc; + +function _glDepthMask(flag) { + GLctx.depthMask(!!flag); +} + +var _emscripten_glDepthMask = _glDepthMask; + +function _glDisable(x0) { + GLctx.disable(x0); +} + +var _emscripten_glDisable = _glDisable; + +function _glDisableVertexAttribArray(index) { + GLctx.disableVertexAttribArray(index); +} + +var _emscripten_glDisableVertexAttribArray = _glDisableVertexAttribArray; + +function _glDrawArrays(mode, first, count) { + GLctx.drawArrays(mode, first, count); +} + +var _emscripten_glDrawArrays = _glDrawArrays; + +function _glDrawArraysInstanced(mode, first, count, primcount) { + GLctx.drawArraysInstanced(mode, first, count, primcount); +} + +var _emscripten_glDrawArraysInstanced = _glDrawArraysInstanced; + +function _glDrawElements(mode, count, type, indices) { + GLctx.drawElements(mode, count, type, indices); +} + +var _emscripten_glDrawElements = _glDrawElements; + +function _glDrawElementsInstanced(mode, count, type, indices, primcount) { + GLctx.drawElementsInstanced(mode, count, type, indices, primcount); +} + +var _emscripten_glDrawElementsInstanced = _glDrawElementsInstanced; + +function _glEnable(x0) { + GLctx.enable(x0); +} + +var _emscripten_glEnable = _glEnable; + +function _glEnableVertexAttribArray(index) { + GLctx.enableVertexAttribArray(index); +} + +var _emscripten_glEnableVertexAttribArray = _glEnableVertexAttribArray; + +function _glEndTransformFeedback() { + GLctx.endTransformFeedback(); +} + +var _emscripten_glEndTransformFeedback = _glEndTransformFeedback; + +function _glFenceSync(condition, flags) { + var sync = GLctx.fenceSync(condition, flags); + if (sync) { + var id = GL.getNewId(GL.syncs); + sync.name = id; + GL.syncs[id] = sync; + return id; + } + return 0; +} + +var _emscripten_glFenceSync = _glFenceSync; + +function _glFinish() { + GLctx.finish(); +} + +var _emscripten_glFinish = _glFinish; + +function _glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) { + GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, GL.renderbuffers[renderbuffer]); +} + +var _emscripten_glFramebufferRenderbuffer = _glFramebufferRenderbuffer; + +function _glFramebufferTexture2D(target, attachment, textarget, texture, level) { + GLctx.framebufferTexture2D(target, attachment, textarget, GL.textures[texture], level); +} + +var _emscripten_glFramebufferTexture2D = _glFramebufferTexture2D; + +function _glFramebufferTextureLayer(target, attachment, texture, level, layer) { + GLctx.framebufferTextureLayer(target, attachment, GL.textures[texture], level, layer); +} + +var _emscripten_glFramebufferTextureLayer = _glFramebufferTextureLayer; + +function _glFrontFace(x0) { + GLctx.frontFace(x0); +} + +var _emscripten_glFrontFace = _glFrontFace; + +function __glGenObject(n, buffers, createFunction, objectTable) { + for (var i = 0; i < n; i++) { + var buffer = GLctx[createFunction](); + var id = buffer && GL.getNewId(objectTable); + if (buffer) { + buffer.name = id; + objectTable[id] = buffer; + } else { + GL.recordError(1282); + } + GROWABLE_HEAP_I32()[buffers + i * 4 >> 2] = id; + } +} + +function _glGenBuffers(n, buffers) { + __glGenObject(n, buffers, "createBuffer", GL.buffers); +} + +var _emscripten_glGenBuffers = _glGenBuffers; + +function _glGenFramebuffers(n, ids) { + __glGenObject(n, ids, "createFramebuffer", GL.framebuffers); +} + +var _emscripten_glGenFramebuffers = _glGenFramebuffers; + +function _glGenQueries(n, ids) { + __glGenObject(n, ids, "createQuery", GL.queries); +} + +var _emscripten_glGenQueries = _glGenQueries; + +function _glGenRenderbuffers(n, renderbuffers) { + __glGenObject(n, renderbuffers, "createRenderbuffer", GL.renderbuffers); +} + +var _emscripten_glGenRenderbuffers = _glGenRenderbuffers; + +function _glGenTextures(n, textures) { + __glGenObject(n, textures, "createTexture", GL.textures); +} + +var _emscripten_glGenTextures = _glGenTextures; + +function _glGenVertexArrays(n, arrays) { + __glGenObject(n, arrays, "createVertexArray", GL.vaos); +} + +var _emscripten_glGenVertexArrays = _glGenVertexArrays; + +function _glGenerateMipmap(x0) { + GLctx.generateMipmap(x0); +} + +var _emscripten_glGenerateMipmap = _glGenerateMipmap; + +function readI53FromU64(ptr) { + return GROWABLE_HEAP_U32()[ptr >> 2] + GROWABLE_HEAP_U32()[ptr + 4 >> 2] * 4294967296; +} + +function writeI53ToI64(ptr, num) { + GROWABLE_HEAP_U32()[ptr >> 2] = num; + GROWABLE_HEAP_U32()[ptr + 4 >> 2] = (num - GROWABLE_HEAP_U32()[ptr >> 2]) / 4294967296; + var deserialized = num >= 0 ? readI53FromU64(ptr) : readI53FromI64(ptr); + if (deserialized != num) warnOnce("writeI53ToI64() out of range: serialized JS Number " + num + " to Wasm heap as bytes lo=" + ptrToString(GROWABLE_HEAP_U32()[ptr >> 2]) + ", hi=" + ptrToString(GROWABLE_HEAP_U32()[ptr + 4 >> 2]) + ", which deserializes back to " + deserialized + " instead!"); +} + +function emscriptenWebGLGet(name_, p, type) { + if (!p) { + GL.recordError(1281); + return; + } + var ret = undefined; + switch (name_) { + case 36346: + ret = 1; + break; + + case 36344: + if (type != 0 && type != 1) { + GL.recordError(1280); + } + return; + + case 34814: + case 36345: + ret = 0; + break; + + case 34466: + var formats = GLctx.getParameter(34467); + ret = formats ? formats.length : 0; + break; + + case 33309: + if (GL.currentContext.version < 2) { + GL.recordError(1282); + return; + } + var exts = GLctx.getSupportedExtensions() || []; + ret = 2 * exts.length; + break; + + case 33307: + case 33308: + if (GL.currentContext.version < 2) { + GL.recordError(1280); + return; + } + ret = name_ == 33307 ? 3 : 0; + break; + } + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof result) { + case "number": + ret = result; + break; + + case "boolean": + ret = result ? 1 : 0; + break; + + case "string": + GL.recordError(1280); + return; + + case "object": + if (result === null) { + switch (name_) { + case 34964: + case 35725: + case 34965: + case 36006: + case 36007: + case 32873: + case 34229: + case 36662: + case 36663: + case 35053: + case 35055: + case 36010: + case 35097: + case 35869: + case 32874: + case 36389: + case 35983: + case 35368: + case 34068: + { + ret = 0; + break; + } + + default: + { + GL.recordError(1280); + return; + } + } + } else if (result instanceof Float32Array || result instanceof Uint32Array || result instanceof Int32Array || result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 0: + GROWABLE_HEAP_I32()[p + i * 4 >> 2] = result[i]; + break; + + case 2: + GROWABLE_HEAP_F32()[p + i * 4 >> 2] = result[i]; + break; + + case 4: + GROWABLE_HEAP_I8()[p + i >> 0] = result[i] ? 1 : 0; + break; + } + } + return; + } else { + try { + ret = result.name | 0; + } catch (e) { + GL.recordError(1280); + err("GL_INVALID_ENUM in glGet" + type + "v: Unknown object returned from WebGL getParameter(" + name_ + ")! (error: " + e + ")"); + return; + } + } + break; + + default: + GL.recordError(1280); + err("GL_INVALID_ENUM in glGet" + type + "v: Native code calling glGet" + type + "v(" + name_ + ") and it returns " + result + " of type " + typeof result + "!"); + return; + } + } + switch (type) { + case 1: + writeI53ToI64(p, ret); + break; + + case 0: + GROWABLE_HEAP_I32()[p >> 2] = ret; + break; + + case 2: + GROWABLE_HEAP_F32()[p >> 2] = ret; + break; + + case 4: + GROWABLE_HEAP_I8()[p >> 0] = ret ? 1 : 0; + break; + } +} + +function _glGetFloatv(name_, p) { + emscriptenWebGLGet(name_, p, 2); +} + +var _emscripten_glGetFloatv = _glGetFloatv; + +function _glGetInteger64v(name_, p) { + emscriptenWebGLGet(name_, p, 1); +} + +var _emscripten_glGetInteger64v = _glGetInteger64v; + +function _glGetProgramInfoLog(program, maxLength, length, infoLog) { + var log = GLctx.getProgramInfoLog(GL.programs[program]); + if (log === null) log = "(unknown error)"; + var numBytesWrittenExclNull = maxLength > 0 && infoLog ? stringToUTF8(log, infoLog, maxLength) : 0; + if (length) GROWABLE_HEAP_I32()[length >> 2] = numBytesWrittenExclNull; +} + +var _emscripten_glGetProgramInfoLog = _glGetProgramInfoLog; + +function _glGetProgramiv(program, pname, p) { + if (!p) { + GL.recordError(1281); + return; + } + if (program >= GL.counter) { + GL.recordError(1281); + return; + } + program = GL.programs[program]; + if (pname == 35716) { + var log = GLctx.getProgramInfoLog(program); + if (log === null) log = "(unknown error)"; + GROWABLE_HEAP_I32()[p >> 2] = log.length + 1; + } else if (pname == 35719) { + if (!program.maxUniformLength) { + for (var i = 0; i < GLctx.getProgramParameter(program, 35718); ++i) { + program.maxUniformLength = Math.max(program.maxUniformLength, GLctx.getActiveUniform(program, i).name.length + 1); + } + } + GROWABLE_HEAP_I32()[p >> 2] = program.maxUniformLength; + } else if (pname == 35722) { + if (!program.maxAttributeLength) { + for (var i = 0; i < GLctx.getProgramParameter(program, 35721); ++i) { + program.maxAttributeLength = Math.max(program.maxAttributeLength, GLctx.getActiveAttrib(program, i).name.length + 1); + } + } + GROWABLE_HEAP_I32()[p >> 2] = program.maxAttributeLength; + } else if (pname == 35381) { + if (!program.maxUniformBlockNameLength) { + for (var i = 0; i < GLctx.getProgramParameter(program, 35382); ++i) { + program.maxUniformBlockNameLength = Math.max(program.maxUniformBlockNameLength, GLctx.getActiveUniformBlockName(program, i).length + 1); + } + } + GROWABLE_HEAP_I32()[p >> 2] = program.maxUniformBlockNameLength; + } else { + GROWABLE_HEAP_I32()[p >> 2] = GLctx.getProgramParameter(program, pname); + } +} + +var _emscripten_glGetProgramiv = _glGetProgramiv; + +function _glGetShaderInfoLog(shader, maxLength, length, infoLog) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = "(unknown error)"; + var numBytesWrittenExclNull = maxLength > 0 && infoLog ? stringToUTF8(log, infoLog, maxLength) : 0; + if (length) GROWABLE_HEAP_I32()[length >> 2] = numBytesWrittenExclNull; +} + +var _emscripten_glGetShaderInfoLog = _glGetShaderInfoLog; + +function _glGetShaderiv(shader, pname, p) { + if (!p) { + GL.recordError(1281); + return; + } + if (pname == 35716) { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = "(unknown error)"; + var logLength = log ? log.length + 1 : 0; + GROWABLE_HEAP_I32()[p >> 2] = logLength; + } else if (pname == 35720) { + var source = GLctx.getShaderSource(GL.shaders[shader]); + var sourceLength = source ? source.length + 1 : 0; + GROWABLE_HEAP_I32()[p >> 2] = sourceLength; + } else { + GROWABLE_HEAP_I32()[p >> 2] = GLctx.getShaderParameter(GL.shaders[shader], pname); + } +} + +var _emscripten_glGetShaderiv = _glGetShaderiv; + +function _glGetString(name_) { + var ret = GL.stringCache[name_]; + if (!ret) { + switch (name_) { + case 7939: + var exts = GLctx.getSupportedExtensions() || []; + exts = exts.concat(exts.map(function(e) { + return "GL_" + e; + })); + ret = stringToNewUTF8(exts.join(" ")); + break; + + case 7936: + case 7937: + case 37445: + case 37446: + var s = GLctx.getParameter(name_); + if (!s) { + GL.recordError(1280); + } + ret = s && stringToNewUTF8(s); + break; + + case 7938: + var glVersion = GLctx.getParameter(7938); + if (GL.currentContext.version >= 2) glVersion = "OpenGL ES 3.0 (" + glVersion + ")"; else { + glVersion = "OpenGL ES 2.0 (" + glVersion + ")"; + } + ret = stringToNewUTF8(glVersion); + break; + + case 35724: + var glslVersion = GLctx.getParameter(35724); + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + "0"; + glslVersion = "OpenGL ES GLSL ES " + ver_num[1] + " (" + glslVersion + ")"; + } + ret = stringToNewUTF8(glslVersion); + break; + + default: + GL.recordError(1280); + } + GL.stringCache[name_] = ret; + } + return ret; +} + +var _emscripten_glGetString = _glGetString; + +function _glGetStringi(name, index) { + if (GL.currentContext.version < 2) { + GL.recordError(1282); + return 0; + } + var stringiCache = GL.stringiCache[name]; + if (stringiCache) { + if (index < 0 || index >= stringiCache.length) { + GL.recordError(1281); + return 0; + } + return stringiCache[index]; + } + switch (name) { + case 7939: + var exts = GLctx.getSupportedExtensions() || []; + exts = exts.concat(exts.map(function(e) { + return "GL_" + e; + })); + exts = exts.map(function(e) { + return stringToNewUTF8(e); + }); + stringiCache = GL.stringiCache[name] = exts; + if (index < 0 || index >= stringiCache.length) { + GL.recordError(1281); + return 0; + } + return stringiCache[index]; + + default: + GL.recordError(1280); + return 0; + } +} + +var _emscripten_glGetStringi = _glGetStringi; + +function _glGetSynciv(sync, pname, bufSize, length, values) { + if (bufSize < 0) { + GL.recordError(1281); + return; + } + if (!values) { + GL.recordError(1281); + return; + } + var ret = GLctx.getSyncParameter(GL.syncs[sync], pname); + if (ret !== null) { + GROWABLE_HEAP_I32()[values >> 2] = ret; + if (length) GROWABLE_HEAP_I32()[length >> 2] = 1; + } +} + +var _emscripten_glGetSynciv = _glGetSynciv; + +function _glGetUniformBlockIndex(program, uniformBlockName) { + return GLctx.getUniformBlockIndex(GL.programs[program], UTF8ToString(uniformBlockName)); +} + +var _emscripten_glGetUniformBlockIndex = _glGetUniformBlockIndex; + +function webglGetLeftBracePos(name) { + return name.slice(-1) == "]" && name.lastIndexOf("["); +} + +function webglPrepareUniformLocationsBeforeFirstUse(program) { + var uniformLocsById = program.uniformLocsById, uniformSizeAndIdsByName = program.uniformSizeAndIdsByName, i, j; + if (!uniformLocsById) { + program.uniformLocsById = uniformLocsById = {}; + program.uniformArrayNamesById = {}; + for (i = 0; i < GLctx.getProgramParameter(program, 35718); ++i) { + var u = GLctx.getActiveUniform(program, i); + var nm = u.name; + var sz = u.size; + var lb = webglGetLeftBracePos(nm); + var arrayName = lb > 0 ? nm.slice(0, lb) : nm; + var id = program.uniformIdCounter; + program.uniformIdCounter += sz; + uniformSizeAndIdsByName[arrayName] = [ sz, id ]; + for (j = 0; j < sz; ++j) { + uniformLocsById[id] = j; + program.uniformArrayNamesById[id++] = arrayName; + } + } + } +} + +function _glGetUniformLocation(program, name) { + name = UTF8ToString(name); + if (program = GL.programs[program]) { + webglPrepareUniformLocationsBeforeFirstUse(program); + var uniformLocsById = program.uniformLocsById; + var arrayIndex = 0; + var uniformBaseName = name; + var leftBrace = webglGetLeftBracePos(name); + if (leftBrace > 0) { + arrayIndex = jstoi_q(name.slice(leftBrace + 1)) >>> 0; + uniformBaseName = name.slice(0, leftBrace); + } + var sizeAndId = program.uniformSizeAndIdsByName[uniformBaseName]; + if (sizeAndId && arrayIndex < sizeAndId[0]) { + arrayIndex += sizeAndId[1]; + if (uniformLocsById[arrayIndex] = uniformLocsById[arrayIndex] || GLctx.getUniformLocation(program, name)) { + return arrayIndex; + } + } + } else { + GL.recordError(1281); + } + return -1; +} + +var _emscripten_glGetUniformLocation = _glGetUniformLocation; + +function _glLinkProgram(program) { + program = GL.programs[program]; + GLctx.linkProgram(program); + program.uniformLocsById = 0; + program.uniformSizeAndIdsByName = {}; +} + +var _emscripten_glLinkProgram = _glLinkProgram; + +function _glPixelStorei(pname, param) { + if (pname == 3317) { + GL.unpackAlignment = param; + } + GLctx.pixelStorei(pname, param); +} + +var _emscripten_glPixelStorei = _glPixelStorei; + +function _glReadBuffer(x0) { + GLctx.readBuffer(x0); +} + +var _emscripten_glReadBuffer = _glReadBuffer; + +function computeUnpackAlignedImageSize(width, height, sizePerPixel, alignment) { + function roundedToNextMultipleOf(x, y) { + return x + y - 1 & -y; + } + var plainRowSize = width * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment); + return height * alignedRowSize; +} + +function colorChannelsInGlTextureFormat(format) { + var colorChannels = { + 5: 3, + 6: 4, + 8: 2, + 29502: 3, + 29504: 4, + 26917: 2, + 26918: 2, + 29846: 3, + 29847: 4 + }; + return colorChannels[format - 6402] || 1; +} + +function heapObjectForWebGLType(type) { + type -= 5120; + if (type == 0) return GROWABLE_HEAP_I8(); + if (type == 1) return GROWABLE_HEAP_U8(); + if (type == 2) return GROWABLE_HEAP_I16(); + if (type == 4) return GROWABLE_HEAP_I32(); + if (type == 6) return GROWABLE_HEAP_F32(); + if (type == 5 || type == 28922 || type == 28520 || type == 30779 || type == 30782) return GROWABLE_HEAP_U32(); + return GROWABLE_HEAP_U16(); +} + +function heapAccessShiftForWebGLHeap(heap) { + return 31 - Math.clz32(heap.BYTES_PER_ELEMENT); +} + +function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) { + var heap = heapObjectForWebGLType(type); + var shift = heapAccessShiftForWebGLHeap(heap); + var byteSize = 1 << shift; + var sizePerPixel = colorChannelsInGlTextureFormat(format) * byteSize; + var bytes = computeUnpackAlignedImageSize(width, height, sizePerPixel, GL.unpackAlignment); + return heap.subarray(pixels >> shift, pixels + bytes >> shift); +} + +function _glReadPixels(x, y, width, height, format, type, pixels) { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelPackBufferBinding) { + GLctx.readPixels(x, y, width, height, format, type, pixels); + } else { + var heap = heapObjectForWebGLType(type); + GLctx.readPixels(x, y, width, height, format, type, heap, pixels >> heapAccessShiftForWebGLHeap(heap)); + } + return; + } + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(1280); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); +} + +var _emscripten_glReadPixels = _glReadPixels; + +function _glRenderbufferStorage(x0, x1, x2, x3) { + GLctx.renderbufferStorage(x0, x1, x2, x3); +} + +var _emscripten_glRenderbufferStorage = _glRenderbufferStorage; + +function _glScissor(x0, x1, x2, x3) { + GLctx.scissor(x0, x1, x2, x3); +} + +var _emscripten_glScissor = _glScissor; + +function _glShaderSource(shader, count, string, length) { + var source = GL.getSource(shader, count, string, length); + GLctx.shaderSource(GL.shaders[shader], source); +} + +var _emscripten_glShaderSource = _glShaderSource; + +function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels); + } else if (pixels) { + var heap = heapObjectForWebGLType(type); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, heap, pixels >> heapAccessShiftForWebGLHeap(heap)); + } else { + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, null); + } + return; + } + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) : null); +} + +var _emscripten_glTexImage2D = _glTexImage2D; + +function _glTexImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels) { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels); + } else if (pixels) { + var heap = heapObjectForWebGLType(type); + GLctx.texImage3D(target, level, internalFormat, width, height, depth, border, format, type, heap, pixels >> heapAccessShiftForWebGLHeap(heap)); + } else { + GLctx.texImage3D(target, level, internalFormat, width, height, depth, border, format, type, null); + } +} + +var _emscripten_glTexImage3D = _glTexImage3D; + +function _glTexParameterf(x0, x1, x2) { + GLctx.texParameterf(x0, x1, x2); +} + +var _emscripten_glTexParameterf = _glTexParameterf; + +function _glTexParameteri(x0, x1, x2) { + GLctx.texParameteri(x0, x1, x2); +} + +var _emscripten_glTexParameteri = _glTexParameteri; + +function _glTexStorage2D(x0, x1, x2, x3, x4) { + GLctx.texStorage2D(x0, x1, x2, x3, x4); +} + +var _emscripten_glTexStorage2D = _glTexStorage2D; + +function _glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); + } else if (pixels) { + var heap = heapObjectForWebGLType(type); + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, heap, pixels >> heapAccessShiftForWebGLHeap(heap)); + } else { + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, null); + } +} + +var _emscripten_glTexSubImage3D = _glTexSubImage3D; + +function _glTransformFeedbackVaryings(program, count, varyings, bufferMode) { + program = GL.programs[program]; + var vars = []; + for (var i = 0; i < count; i++) vars.push(UTF8ToString(GROWABLE_HEAP_I32()[varyings + i * 4 >> 2])); + GLctx.transformFeedbackVaryings(program, vars, bufferMode); +} + +var _emscripten_glTransformFeedbackVaryings = _glTransformFeedbackVaryings; + +function webglGetUniformLocation(location) { + var p = GLctx.currentProgram; + if (p) { + var webglLoc = p.uniformLocsById[location]; + if (typeof webglLoc == "number") { + p.uniformLocsById[location] = webglLoc = GLctx.getUniformLocation(p, p.uniformArrayNamesById[location] + (webglLoc > 0 ? "[" + webglLoc + "]" : "")); + } + return webglLoc; + } else { + GL.recordError(1282); + } +} + +function _glUniform1f(location, v0) { + GLctx.uniform1f(webglGetUniformLocation(location), v0); +} + +var _emscripten_glUniform1f = _glUniform1f; + +function _glUniform1i(location, v0) { + GLctx.uniform1i(webglGetUniformLocation(location), v0); +} + +var _emscripten_glUniform1i = _glUniform1i; + +var miniTempWebGLIntBuffers = []; + +function _glUniform1iv(location, count, value) { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform1iv(webglGetUniformLocation(location), GROWABLE_HEAP_I32(), value >> 2, count); + return; + } + if (count <= 288) { + var view = miniTempWebGLIntBuffers[count - 1]; + for (var i = 0; i < count; ++i) { + view[i] = GROWABLE_HEAP_I32()[value + 4 * i >> 2]; + } + } else { + var view = GROWABLE_HEAP_I32().subarray(value >> 2, value + count * 4 >> 2); + } + GLctx.uniform1iv(webglGetUniformLocation(location), view); +} + +var _emscripten_glUniform1iv = _glUniform1iv; + +function _glUniform1ui(location, v0) { + GLctx.uniform1ui(webglGetUniformLocation(location), v0); +} + +var _emscripten_glUniform1ui = _glUniform1ui; + +function _glUniform1uiv(location, count, value) { + count && GLctx.uniform1uiv(webglGetUniformLocation(location), GROWABLE_HEAP_U32(), value >> 2, count); +} + +var _emscripten_glUniform1uiv = _glUniform1uiv; + +function _glUniform2f(location, v0, v1) { + GLctx.uniform2f(webglGetUniformLocation(location), v0, v1); +} + +var _emscripten_glUniform2f = _glUniform2f; + +var miniTempWebGLFloatBuffers = []; + +function _glUniform2fv(location, count, value) { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform2fv(webglGetUniformLocation(location), GROWABLE_HEAP_F32(), value >> 2, count * 2); + return; + } + if (count <= 144) { + var view = miniTempWebGLFloatBuffers[2 * count - 1]; + for (var i = 0; i < 2 * count; i += 2) { + view[i] = GROWABLE_HEAP_F32()[value + 4 * i >> 2]; + view[i + 1] = GROWABLE_HEAP_F32()[value + (4 * i + 4) >> 2]; + } + } else { + var view = GROWABLE_HEAP_F32().subarray(value >> 2, value + count * 8 >> 2); + } + GLctx.uniform2fv(webglGetUniformLocation(location), view); +} + +var _emscripten_glUniform2fv = _glUniform2fv; + +function _glUniform2iv(location, count, value) { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform2iv(webglGetUniformLocation(location), GROWABLE_HEAP_I32(), value >> 2, count * 2); + return; + } + if (count <= 144) { + var view = miniTempWebGLIntBuffers[2 * count - 1]; + for (var i = 0; i < 2 * count; i += 2) { + view[i] = GROWABLE_HEAP_I32()[value + 4 * i >> 2]; + view[i + 1] = GROWABLE_HEAP_I32()[value + (4 * i + 4) >> 2]; + } + } else { + var view = GROWABLE_HEAP_I32().subarray(value >> 2, value + count * 8 >> 2); + } + GLctx.uniform2iv(webglGetUniformLocation(location), view); +} + +var _emscripten_glUniform2iv = _glUniform2iv; + +function _glUniform3fv(location, count, value) { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform3fv(webglGetUniformLocation(location), GROWABLE_HEAP_F32(), value >> 2, count * 3); + return; + } + if (count <= 96) { + var view = miniTempWebGLFloatBuffers[3 * count - 1]; + for (var i = 0; i < 3 * count; i += 3) { + view[i] = GROWABLE_HEAP_F32()[value + 4 * i >> 2]; + view[i + 1] = GROWABLE_HEAP_F32()[value + (4 * i + 4) >> 2]; + view[i + 2] = GROWABLE_HEAP_F32()[value + (4 * i + 8) >> 2]; + } + } else { + var view = GROWABLE_HEAP_F32().subarray(value >> 2, value + count * 12 >> 2); + } + GLctx.uniform3fv(webglGetUniformLocation(location), view); +} + +var _emscripten_glUniform3fv = _glUniform3fv; + +function _glUniform4f(location, v0, v1, v2, v3) { + GLctx.uniform4f(webglGetUniformLocation(location), v0, v1, v2, v3); +} + +var _emscripten_glUniform4f = _glUniform4f; + +function _glUniform4fv(location, count, value) { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform4fv(webglGetUniformLocation(location), GROWABLE_HEAP_F32(), value >> 2, count * 4); + return; + } + if (count <= 72) { + var view = miniTempWebGLFloatBuffers[4 * count - 1]; + var heap = GROWABLE_HEAP_F32(); + value >>= 2; + for (var i = 0; i < 4 * count; i += 4) { + var dst = value + i; + view[i] = heap[dst]; + view[i + 1] = heap[dst + 1]; + view[i + 2] = heap[dst + 2]; + view[i + 3] = heap[dst + 3]; + } + } else { + var view = GROWABLE_HEAP_F32().subarray(value >> 2, value + count * 16 >> 2); + } + GLctx.uniform4fv(webglGetUniformLocation(location), view); +} + +var _emscripten_glUniform4fv = _glUniform4fv; + +function _glUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding) { + program = GL.programs[program]; + GLctx.uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding); +} + +var _emscripten_glUniformBlockBinding = _glUniformBlockBinding; + +function _glUniformMatrix4fv(location, count, transpose, value) { + if (GL.currentContext.version >= 2) { + count && GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, GROWABLE_HEAP_F32(), value >> 2, count * 16); + return; + } + if (count <= 18) { + var view = miniTempWebGLFloatBuffers[16 * count - 1]; + var heap = GROWABLE_HEAP_F32(); + value >>= 2; + for (var i = 0; i < 16 * count; i += 16) { + var dst = value + i; + view[i] = heap[dst]; + view[i + 1] = heap[dst + 1]; + view[i + 2] = heap[dst + 2]; + view[i + 3] = heap[dst + 3]; + view[i + 4] = heap[dst + 4]; + view[i + 5] = heap[dst + 5]; + view[i + 6] = heap[dst + 6]; + view[i + 7] = heap[dst + 7]; + view[i + 8] = heap[dst + 8]; + view[i + 9] = heap[dst + 9]; + view[i + 10] = heap[dst + 10]; + view[i + 11] = heap[dst + 11]; + view[i + 12] = heap[dst + 12]; + view[i + 13] = heap[dst + 13]; + view[i + 14] = heap[dst + 14]; + view[i + 15] = heap[dst + 15]; + } + } else { + var view = GROWABLE_HEAP_F32().subarray(value >> 2, value + count * 64 >> 2); + } + GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, view); +} + +var _emscripten_glUniformMatrix4fv = _glUniformMatrix4fv; + +function _glUseProgram(program) { + program = GL.programs[program]; + GLctx.useProgram(program); + GLctx.currentProgram = program; +} + +var _emscripten_glUseProgram = _glUseProgram; + +function _glVertexAttrib4f(x0, x1, x2, x3, x4) { + GLctx.vertexAttrib4f(x0, x1, x2, x3, x4); +} + +var _emscripten_glVertexAttrib4f = _glVertexAttrib4f; + +function _glVertexAttribDivisor(index, divisor) { + GLctx.vertexAttribDivisor(index, divisor); +} + +var _emscripten_glVertexAttribDivisor = _glVertexAttribDivisor; + +function _glVertexAttribI4ui(x0, x1, x2, x3, x4) { + GLctx.vertexAttribI4ui(x0, x1, x2, x3, x4); +} + +var _emscripten_glVertexAttribI4ui = _glVertexAttribI4ui; + +function _glVertexAttribIPointer(index, size, type, stride, ptr) { + GLctx.vertexAttribIPointer(index, size, type, stride, ptr); +} + +var _emscripten_glVertexAttribIPointer = _glVertexAttribIPointer; + +function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); +} + +var _emscripten_glVertexAttribPointer = _glVertexAttribPointer; + +function _glViewport(x0, x1, x2, x3) { + GLctx.viewport(x0, x1, x2, x3); +} + +var _emscripten_glViewport = _glViewport; + +function _emscripten_num_logical_cores() { + return navigator["hardwareConcurrency"]; +} + +function withStackSave(f) { + var stack = stackSave(); + var ret = f(); + stackRestore(stack); + return ret; +} + +function proxyToMainThread(index, sync) { + var numCallArgs = arguments.length - 2; + var outerArgs = arguments; + var maxArgs = 19; + if (numCallArgs > maxArgs) { + throw "proxyToMainThread: Too many arguments " + numCallArgs + " to proxied function idx=" + index + ", maximum supported is " + maxArgs; + } + return withStackSave(() => { + var serializedNumCallArgs = numCallArgs; + var args = stackAlloc(serializedNumCallArgs * 8); + var b = args >> 3; + for (var i = 0; i < numCallArgs; i++) { + var arg = outerArgs[2 + i]; + GROWABLE_HEAP_F64()[b + i] = arg; + } + return __emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync); + }); +} + +var emscripten_receive_on_main_thread_js_callArgs = []; + +function _emscripten_receive_on_main_thread_js(index, numCallArgs, args) { + emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs; + var b = args >> 3; + for (var i = 0; i < numCallArgs; i++) { + emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i]; + } + var func = proxiedFunctionTable[index]; + assert(func.length == numCallArgs, "Call args mismatch in emscripten_receive_on_main_thread_js"); + return func.apply(null, emscripten_receive_on_main_thread_js_callArgs); +} + +function getHeapMax() { + return 2147483648; +} + +function emscripten_realloc_buffer(size) { + var b = wasmMemory.buffer; + try { + wasmMemory.grow(size - b.byteLength + 65535 >>> 16); + updateMemoryViews(); + return 1; + } catch (e) { + err(`emscripten_realloc_buffer: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`); + } +} + +function _emscripten_resize_heap(requestedSize) { + var oldSize = GROWABLE_HEAP_U8().length; + requestedSize = requestedSize >>> 0; + if (requestedSize <= oldSize) { + return false; + } + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + err(`Cannot enlarge memory, asked to go up to ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`); + return false; + } + var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + .2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`); + return false; +} + +var JSEvents = { + inEventHandler: 0, + removeAllEventListeners: function() { + for (var i = JSEvents.eventHandlers.length - 1; i >= 0; --i) { + JSEvents._removeHandler(i); + } + JSEvents.eventHandlers = []; + JSEvents.deferredCalls = []; + }, + registerRemoveEventListeners: function() { + if (!JSEvents.removeEventListenersRegistered) { + __ATEXIT__.push(JSEvents.removeAllEventListeners); + JSEvents.removeEventListenersRegistered = true; + } + }, + deferredCalls: [], + deferCall: function(targetFunction, precedence, argsList) { + function arraysHaveEqualContent(arrA, arrB) { + if (arrA.length != arrB.length) return false; + for (var i in arrA) { + if (arrA[i] != arrB[i]) return false; + } + return true; + } + for (var i in JSEvents.deferredCalls) { + var call = JSEvents.deferredCalls[i]; + if (call.targetFunction == targetFunction && arraysHaveEqualContent(call.argsList, argsList)) { + return; + } + } + JSEvents.deferredCalls.push({ + targetFunction: targetFunction, + precedence: precedence, + argsList: argsList + }); + JSEvents.deferredCalls.sort(function(x, y) { + return x.precedence < y.precedence; + }); + }, + removeDeferredCalls: function(targetFunction) { + for (var i = 0; i < JSEvents.deferredCalls.length; ++i) { + if (JSEvents.deferredCalls[i].targetFunction == targetFunction) { + JSEvents.deferredCalls.splice(i, 1); + --i; + } + } + }, + canPerformEventHandlerRequests: function() { + return JSEvents.inEventHandler && JSEvents.currentEventHandler.allowsDeferredCalls; + }, + runDeferredCalls: function() { + if (!JSEvents.canPerformEventHandlerRequests()) { + return; + } + for (var i = 0; i < JSEvents.deferredCalls.length; ++i) { + var call = JSEvents.deferredCalls[i]; + JSEvents.deferredCalls.splice(i, 1); + --i; + call.targetFunction.apply(null, call.argsList); + } + }, + eventHandlers: [], + removeAllHandlersOnTarget: function(target, eventTypeString) { + for (var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == target && (!eventTypeString || eventTypeString == JSEvents.eventHandlers[i].eventTypeString)) { + JSEvents._removeHandler(i--); + } + } + }, + _removeHandler: function(i) { + var h = JSEvents.eventHandlers[i]; + h.target.removeEventListener(h.eventTypeString, h.eventListenerFunc, h.useCapture); + JSEvents.eventHandlers.splice(i, 1); + }, + registerOrRemoveHandler: function(eventHandler) { + if (!eventHandler.target) { + err("registerOrRemoveHandler: the target element for event handler registration does not exist, when processing the following event handler registration:"); + console.dir(eventHandler); + return -4; + } + var jsEventHandler = function jsEventHandler(event) { + ++JSEvents.inEventHandler; + JSEvents.currentEventHandler = eventHandler; + JSEvents.runDeferredCalls(); + eventHandler.handlerFunc(event); + JSEvents.runDeferredCalls(); + --JSEvents.inEventHandler; + }; + if (eventHandler.callbackfunc) { + eventHandler.eventListenerFunc = jsEventHandler; + eventHandler.target.addEventListener(eventHandler.eventTypeString, jsEventHandler, eventHandler.useCapture); + JSEvents.eventHandlers.push(eventHandler); + JSEvents.registerRemoveEventListeners(); + } else { + for (var i = 0; i < JSEvents.eventHandlers.length; ++i) { + if (JSEvents.eventHandlers[i].target == eventHandler.target && JSEvents.eventHandlers[i].eventTypeString == eventHandler.eventTypeString) { + JSEvents._removeHandler(i--); + } + } + } + return 0; + }, + queueEventHandlerOnThread_iiii: function(targetThread, eventHandlerFunc, eventTypeId, eventData, userData) { + withStackSave(function() { + var varargs = stackAlloc(12); + GROWABLE_HEAP_I32()[varargs >> 2] = eventTypeId; + GROWABLE_HEAP_I32()[varargs + 4 >> 2] = eventData; + GROWABLE_HEAP_I32()[varargs + 8 >> 2] = userData; + _emscripten_dispatch_to_thread_(targetThread, 637534208, eventHandlerFunc, eventData, varargs); + }); + }, + getTargetThreadForEventCallback: function(targetThread) { + switch (targetThread) { + case 1: + return 0; + + case 2: + return PThread.currentProxiedOperationCallerThread; + + default: + return targetThread; + } + }, + getNodeNameForTarget: function(target) { + if (!target) return ""; + if (target == window) return "#window"; + if (target == screen) return "#screen"; + return target && target.nodeName ? target.nodeName : ""; + }, + fullscreenEnabled: function() { + return document.fullscreenEnabled || document.webkitFullscreenEnabled; + } +}; + +function maybeCStringToJsString(cString) { + return cString > 2 ? UTF8ToString(cString) : cString; +} + +var specialHTMLTargets = [ 0, typeof document != "undefined" ? document : 0, typeof window != "undefined" ? window : 0 ]; + +function findEventTarget(target) { + target = maybeCStringToJsString(target); + var domElement = specialHTMLTargets[target] || (typeof document != "undefined" ? document.querySelector(target) : undefined); + return domElement; +} + +function findCanvasEventTarget(target) { + return findEventTarget(target); +} + +function setCanvasElementSizeCallingThread(target, width, height) { + var canvas = findCanvasEventTarget(target); + if (!canvas) return -4; + if (!canvas.controlTransferredOffscreen) { + var autoResizeViewport = false; + if (canvas.GLctxObject && canvas.GLctxObject.GLctx) { + var prevViewport = canvas.GLctxObject.GLctx.getParameter(2978); + autoResizeViewport = prevViewport[0] === 0 && prevViewport[1] === 0 && prevViewport[2] === canvas.width && prevViewport[3] === canvas.height; + } + canvas.width = width; + canvas.height = height; + if (autoResizeViewport) { + canvas.GLctxObject.GLctx.viewport(0, 0, width, height); + } + } else { + return -4; + } + if (canvas.GLctxObject) GL.resizeOffscreenFramebuffer(canvas.GLctxObject); + return 0; +} + +function setCanvasElementSizeMainThread(target, width, height) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(36, 1, target, width, height); + return setCanvasElementSizeCallingThread(target, width, height); +} + +function _emscripten_set_canvas_element_size(target, width, height) { + var canvas = findCanvasEventTarget(target); + if (canvas) { + return setCanvasElementSizeCallingThread(target, width, height); + } + return setCanvasElementSizeMainThread(target, width, height); +} + +function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop) { + var browserIterationFunc = getWasmTableEntry(func); + setMainLoop(browserIterationFunc, fps, simulateInfiniteLoop); +} + +function _emscripten_supports_offscreencanvas() { + return 0; +} + +function _emscripten_webgl_destroy_context(contextHandle) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(37, 1, contextHandle); + if (GL.currentContext == contextHandle) GL.currentContext = 0; + GL.deleteContext(contextHandle); +} + +function _emscripten_webgl_do_commit_frame() { + if (!GL.currentContext || !GL.currentContext.GLctx) { + return -3; + } + if (GL.currentContext.defaultFbo) { + GL.blitOffscreenFramebuffer(GL.currentContext); + return 0; + } + if (!GL.currentContext.attributes.explicitSwapControl) { + return -3; + } + return 0; +} + +function _emscripten_webgl_create_context_proxied(target, attributes) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(38, 1, target, attributes); + return _emscripten_webgl_do_create_context(target, attributes); +} + +var emscripten_webgl_power_preferences = [ "default", "low-power", "high-performance" ]; + +function _emscripten_webgl_do_create_context(target, attributes) { + assert(attributes); + var a = attributes >> 2; + var powerPreference = GROWABLE_HEAP_I32()[a + (24 >> 2)]; + var contextAttributes = { + "alpha": !!GROWABLE_HEAP_I32()[a + (0 >> 2)], + "depth": !!GROWABLE_HEAP_I32()[a + (4 >> 2)], + "stencil": !!GROWABLE_HEAP_I32()[a + (8 >> 2)], + "antialias": !!GROWABLE_HEAP_I32()[a + (12 >> 2)], + "premultipliedAlpha": !!GROWABLE_HEAP_I32()[a + (16 >> 2)], + "preserveDrawingBuffer": !!GROWABLE_HEAP_I32()[a + (20 >> 2)], + "powerPreference": emscripten_webgl_power_preferences[powerPreference], + "failIfMajorPerformanceCaveat": !!GROWABLE_HEAP_I32()[a + (28 >> 2)], + majorVersion: GROWABLE_HEAP_I32()[a + (32 >> 2)], + minorVersion: GROWABLE_HEAP_I32()[a + (36 >> 2)], + enableExtensionsByDefault: GROWABLE_HEAP_I32()[a + (40 >> 2)], + explicitSwapControl: GROWABLE_HEAP_I32()[a + (44 >> 2)], + proxyContextToMainThread: GROWABLE_HEAP_I32()[a + (48 >> 2)], + renderViaOffscreenBackBuffer: GROWABLE_HEAP_I32()[a + (52 >> 2)] + }; + var canvas = findCanvasEventTarget(target); + if (ENVIRONMENT_IS_PTHREAD) { + if (contextAttributes.proxyContextToMainThread === 2 || !canvas && contextAttributes.proxyContextToMainThread === 1) { + if (typeof OffscreenCanvas == "undefined") { + GROWABLE_HEAP_I32()[attributes + 52 >> 2] = 1; + GROWABLE_HEAP_I32()[attributes + 20 >> 2] = 1; + } + return _emscripten_webgl_create_context_proxied(target, attributes); + } + } + if (!canvas) { + return 0; + } + if (contextAttributes.explicitSwapControl && !contextAttributes.renderViaOffscreenBackBuffer) { + contextAttributes.renderViaOffscreenBackBuffer = true; + } + var contextHandle = GL.createContext(canvas, contextAttributes); + return contextHandle; +} + +function _emscripten_webgl_enable_extension(contextHandle, extension) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(39, 1, contextHandle, extension); + var context = GL.getContext(contextHandle); + var extString = UTF8ToString(extension); + if (extString.startsWith("GL_")) extString = extString.substr(3); + if (extString == "ANGLE_instanced_arrays") webgl_enable_ANGLE_instanced_arrays(GLctx); + if (extString == "OES_vertex_array_object") webgl_enable_OES_vertex_array_object(GLctx); + if (extString == "WEBGL_draw_buffers") webgl_enable_WEBGL_draw_buffers(GLctx); + if (extString == "WEBGL_draw_instanced_base_vertex_base_instance") webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx); + if (extString == "WEBGL_multi_draw_instanced_base_vertex_base_instance") webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx); + if (extString == "WEBGL_multi_draw") webgl_enable_WEBGL_multi_draw(GLctx); + var ext = context.GLctx.getExtension(extString); + return !!ext; +} + +function _emscripten_webgl_init_context_attributes(attributes) { + assert(attributes); + var a = attributes >> 2; + for (var i = 0; i < 56 >> 2; ++i) { + GROWABLE_HEAP_I32()[a + i] = 0; + } + GROWABLE_HEAP_I32()[a + (0 >> 2)] = GROWABLE_HEAP_I32()[a + (4 >> 2)] = GROWABLE_HEAP_I32()[a + (12 >> 2)] = GROWABLE_HEAP_I32()[a + (16 >> 2)] = GROWABLE_HEAP_I32()[a + (32 >> 2)] = GROWABLE_HEAP_I32()[a + (40 >> 2)] = 1; + if (ENVIRONMENT_IS_WORKER) GROWABLE_HEAP_I32()[attributes + 48 >> 2] = 1; +} + +function _emscripten_webgl_make_context_current_calling_thread(contextHandle) { + var success = GL.makeContextCurrent(contextHandle); + if (success) GL.currentContextIsProxied = false; + return success ? 0 : -5; +} + +var ENV = {}; + +function getExecutableName() { + return thisProgram || "./this.program"; +} + +function getEnvStrings() { + if (!getEnvStrings.strings) { + var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; + var env = { + "USER": "web_user", + "LOGNAME": "web_user", + "PATH": "/", + "PWD": "/", + "HOME": "/home/web_user", + "LANG": lang, + "_": getExecutableName() + }; + for (var x in ENV) { + if (ENV[x] === undefined) delete env[x]; else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(x + "=" + env[x]); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; +} + +function stringToAscii(str, buffer) { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === (str.charCodeAt(i) & 255)); + GROWABLE_HEAP_I8()[buffer++ >> 0] = str.charCodeAt(i); + } + GROWABLE_HEAP_I8()[buffer >> 0] = 0; +} + +function _environ_get(__environ, environ_buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(40, 1, __environ, environ_buf); + var bufSize = 0; + getEnvStrings().forEach(function(string, i) { + var ptr = environ_buf + bufSize; + GROWABLE_HEAP_U32()[__environ + i * 4 >> 2] = ptr; + stringToAscii(string, ptr); + bufSize += string.length + 1; + }); + return 0; +} + +function _environ_sizes_get(penviron_count, penviron_buf_size) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(41, 1, penviron_count, penviron_buf_size); + var strings = getEnvStrings(); + GROWABLE_HEAP_U32()[penviron_count >> 2] = strings.length; + var bufSize = 0; + strings.forEach(function(string) { + bufSize += string.length + 1; + }); + GROWABLE_HEAP_U32()[penviron_buf_size >> 2] = bufSize; + return 0; +} + +function _fd_close(fd) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(42, 1, fd); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function _fd_fdstat_get(fd, pbuf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(43, 1, fd, pbuf); + try { + var rightsBase = 0; + var rightsInheriting = 0; + var flags = 0; + { + var stream = SYSCALLS.getStreamFromFD(fd); + var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4; + } + GROWABLE_HEAP_I8()[pbuf >> 0] = type; + GROWABLE_HEAP_I16()[pbuf + 2 >> 1] = flags; + tempI64 = [ rightsBase >>> 0, (tempDouble = rightsBase, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[pbuf + 8 >> 2] = tempI64[0], GROWABLE_HEAP_I32()[pbuf + 12 >> 2] = tempI64[1]; + tempI64 = [ rightsInheriting >>> 0, (tempDouble = rightsInheriting, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[pbuf + 16 >> 2] = tempI64[0], GROWABLE_HEAP_I32()[pbuf + 20 >> 2] = tempI64[1]; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function doReadv(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = GROWABLE_HEAP_U32()[iov >> 2]; + var len = GROWABLE_HEAP_U32()[iov + 4 >> 2]; + iov += 8; + var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; + if (typeof offset !== "undefined") { + offset += curr; + } + } + return ret; +} + +function _fd_read(fd, iov, iovcnt, pnum) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(44, 1, fd, iov, iovcnt, pnum); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + GROWABLE_HEAP_U32()[pnum >> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function convertI32PairToI53Checked(lo, hi) { + assert(lo == lo >>> 0 || lo == (lo | 0)); + assert(hi === (hi | 0)); + return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; +} + +function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(45, 1, fd, offset_low, offset_high, whence, newOffset); + try { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + tempI64 = [ stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], + GROWABLE_HEAP_I32()[newOffset >> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >> 2] = tempI64[1]; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function doWritev(stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = GROWABLE_HEAP_U32()[iov >> 2]; + var len = GROWABLE_HEAP_U32()[iov + 4 >> 2]; + iov += 8; + var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (typeof offset !== "undefined") { + offset += curr; + } + } + return ret; +} + +function _fd_write(fd, iov, iovcnt, pnum) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(46, 1, fd, iov, iovcnt, pnum); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + GROWABLE_HEAP_U32()[pnum >> 2] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function _getaddrinfo(node, service, hint, out) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(47, 1, node, service, hint, out); + var addrs = []; + var canon = null; + var addr = 0; + var port = 0; + var flags = 0; + var family = 0; + var type = 0; + var proto = 0; + var ai, last; + function allocaddrinfo(family, type, proto, canon, addr, port) { + var sa, salen, ai; + var errno; + salen = family === 10 ? 28 : 16; + addr = family === 10 ? inetNtop6(addr) : inetNtop4(addr); + sa = _malloc(salen); + errno = writeSockaddr(sa, family, addr, port); + assert(!errno); + ai = _malloc(32); + GROWABLE_HEAP_I32()[ai + 4 >> 2] = family; + GROWABLE_HEAP_I32()[ai + 8 >> 2] = type; + GROWABLE_HEAP_I32()[ai + 12 >> 2] = proto; + GROWABLE_HEAP_U32()[ai + 24 >> 2] = canon; + GROWABLE_HEAP_U32()[ai + 20 >> 2] = sa; + if (family === 10) { + GROWABLE_HEAP_I32()[ai + 16 >> 2] = 28; + } else { + GROWABLE_HEAP_I32()[ai + 16 >> 2] = 16; + } + GROWABLE_HEAP_I32()[ai + 28 >> 2] = 0; + return ai; + } + if (hint) { + flags = GROWABLE_HEAP_I32()[hint >> 2]; + family = GROWABLE_HEAP_I32()[hint + 4 >> 2]; + type = GROWABLE_HEAP_I32()[hint + 8 >> 2]; + proto = GROWABLE_HEAP_I32()[hint + 12 >> 2]; + } + if (type && !proto) { + proto = type === 2 ? 17 : 6; + } + if (!type && proto) { + type = proto === 17 ? 2 : 1; + } + if (proto === 0) { + proto = 6; + } + if (type === 0) { + type = 1; + } + if (!node && !service) { + return -2; + } + if (flags & ~(1 | 2 | 4 | 1024 | 8 | 16 | 32)) { + return -1; + } + if (hint !== 0 && GROWABLE_HEAP_I32()[hint >> 2] & 2 && !node) { + return -1; + } + if (flags & 32) { + return -2; + } + if (type !== 0 && type !== 1 && type !== 2) { + return -7; + } + if (family !== 0 && family !== 2 && family !== 10) { + return -6; + } + if (service) { + service = UTF8ToString(service); + port = parseInt(service, 10); + if (isNaN(port)) { + if (flags & 1024) { + return -2; + } + return -8; + } + } + if (!node) { + if (family === 0) { + family = 2; + } + if ((flags & 1) === 0) { + if (family === 2) { + addr = _htonl(2130706433); + } else { + addr = [ 0, 0, 0, 1 ]; + } + } + ai = allocaddrinfo(family, type, proto, null, addr, port); + GROWABLE_HEAP_U32()[out >> 2] = ai; + return 0; + } + node = UTF8ToString(node); + addr = inetPton4(node); + if (addr !== null) { + if (family === 0 || family === 2) { + family = 2; + } else if (family === 10 && flags & 8) { + addr = [ 0, 0, _htonl(65535), addr ]; + family = 10; + } else { + return -2; + } + } else { + addr = inetPton6(node); + if (addr !== null) { + if (family === 0 || family === 10) { + family = 10; + } else { + return -2; + } + } + } + if (addr != null) { + ai = allocaddrinfo(family, type, proto, node, addr, port); + GROWABLE_HEAP_U32()[out >> 2] = ai; + return 0; + } + if (flags & 4) { + return -2; + } + node = DNS.lookup_name(node); + addr = inetPton4(node); + if (family === 0) { + family = 2; + } else if (family === 10) { + addr = [ 0, 0, _htonl(65535), addr ]; + } + ai = allocaddrinfo(family, type, proto, null, addr, port); + GROWABLE_HEAP_U32()[out >> 2] = ai; + return 0; +} + +function _getnameinfo(sa, salen, node, nodelen, serv, servlen, flags) { + var info = readSockaddr(sa, salen); + if (info.errno) { + return -6; + } + var port = info.port; + var addr = info.addr; + var overflowed = false; + if (node && nodelen) { + var lookup; + if (flags & 1 || !(lookup = DNS.lookup_addr(addr))) { + if (flags & 8) { + return -2; + } + } else { + addr = lookup; + } + var numBytesWrittenExclNull = stringToUTF8(addr, node, nodelen); + if (numBytesWrittenExclNull + 1 >= nodelen) { + overflowed = true; + } + } + if (serv && servlen) { + port = "" + port; + var numBytesWrittenExclNull = stringToUTF8(port, serv, servlen); + if (numBytesWrittenExclNull + 1 >= servlen) { + overflowed = true; + } + } + if (overflowed) { + return -12; + } + return 0; +} + +var GodotRuntime = { + get_func: function(ptr) { + return wasmTable.get(ptr); + }, + error: function() { + err.apply(null, Array.from(arguments)); + }, + print: function() { + out.apply(null, Array.from(arguments)); + }, + malloc: function(p_size) { + return _malloc(p_size); + }, + free: function(p_ptr) { + _free(p_ptr); + }, + getHeapValue: function(p_ptr, p_type) { + return getValue(p_ptr, p_type); + }, + setHeapValue: function(p_ptr, p_value, p_type) { + setValue(p_ptr, p_value, p_type); + }, + heapSub: function(p_heap, p_ptr, p_len) { + const bytes = p_heap.BYTES_PER_ELEMENT; + return p_heap.subarray(p_ptr / bytes, p_ptr / bytes + p_len); + }, + heapSlice: function(p_heap, p_ptr, p_len) { + const bytes = p_heap.BYTES_PER_ELEMENT; + return p_heap.slice(p_ptr / bytes, p_ptr / bytes + p_len); + }, + heapCopy: function(p_dst, p_src, p_ptr) { + const bytes = p_src.BYTES_PER_ELEMENT; + return p_dst.set(p_src, p_ptr / bytes); + }, + parseString: function(p_ptr) { + return UTF8ToString(p_ptr); + }, + parseStringArray: function(p_ptr, p_size) { + const strings = []; + const ptrs = GodotRuntime.heapSub(GROWABLE_HEAP_I32(), p_ptr, p_size); + ptrs.forEach(function(ptr) { + strings.push(GodotRuntime.parseString(ptr)); + }); + return strings; + }, + strlen: function(p_str) { + return lengthBytesUTF8(p_str); + }, + allocString: function(p_str) { + const length = GodotRuntime.strlen(p_str) + 1; + const c_str = GodotRuntime.malloc(length); + stringToUTF8(p_str, c_str, length); + return c_str; + }, + allocStringArray: function(p_strings) { + const size = p_strings.length; + const c_ptr = GodotRuntime.malloc(size * 4); + for (let i = 0; i < size; i++) { + GROWABLE_HEAP_I32()[(c_ptr >> 2) + i] = GodotRuntime.allocString(p_strings[i]); + } + return c_ptr; + }, + freeStringArray: function(p_ptr, p_len) { + for (let i = 0; i < p_len; i++) { + GodotRuntime.free(GROWABLE_HEAP_I32()[(p_ptr >> 2) + i]); + } + GodotRuntime.free(p_ptr); + }, + stringToHeap: function(p_str, p_ptr, p_len) { + return stringToUTF8Array(p_str, GROWABLE_HEAP_I8(), p_ptr, p_len); + } +}; + +var GodotConfig = { + canvas: null, + locale: "en", + canvas_resize_policy: 2, + virtual_keyboard: false, + persistent_drops: false, + on_execute: null, + on_exit: null, + init_config: function(p_opts) { + GodotConfig.canvas_resize_policy = p_opts["canvasResizePolicy"]; + GodotConfig.canvas = p_opts["canvas"]; + GodotConfig.locale = p_opts["locale"] || GodotConfig.locale; + GodotConfig.virtual_keyboard = p_opts["virtualKeyboard"]; + GodotConfig.persistent_drops = !!p_opts["persistentDrops"]; + GodotConfig.on_execute = p_opts["onExecute"]; + GodotConfig.on_exit = p_opts["onExit"]; + if (p_opts["focusCanvas"]) { + GodotConfig.canvas.focus(); + } + }, + locate_file: function(file) { + return Module["locateFile"](file); + }, + clear: function() { + GodotConfig.canvas = null; + GodotConfig.locale = "en"; + GodotConfig.canvas_resize_policy = 2; + GodotConfig.virtual_keyboard = false; + GodotConfig.persistent_drops = false; + GodotConfig.on_execute = null; + GodotConfig.on_exit = null; + } +}; + +var GodotFS = { + ENOENT: 44, + _idbfs: false, + _syncing: false, + _mount_points: [], + is_persistent: function() { + return GodotFS._idbfs ? 1 : 0; + }, + init: function(persistentPaths) { + GodotFS._idbfs = false; + if (!Array.isArray(persistentPaths)) { + return Promise.reject(new Error("Persistent paths must be an array")); + } + if (!persistentPaths.length) { + return Promise.resolve(); + } + GodotFS._mount_points = persistentPaths.slice(); + function createRecursive(dir) { + try { + FS.stat(dir); + } catch (e) { + if (e.errno !== GodotFS.ENOENT) { + GodotRuntime.error(e); + } + FS.mkdirTree(dir); + } + } + GodotFS._mount_points.forEach(function(path) { + createRecursive(path); + FS.mount(IDBFS, {}, path); + }); + return new Promise(function(resolve, reject) { + FS.syncfs(true, function(err) { + if (err) { + GodotFS._mount_points = []; + GodotFS._idbfs = false; + GodotRuntime.print(`IndexedDB not available: ${err.message}`); + } else { + GodotFS._idbfs = true; + } + resolve(err); + }); + }); + }, + deinit: function() { + GodotFS._mount_points.forEach(function(path) { + try { + FS.unmount(path); + } catch (e) { + GodotRuntime.print("Already unmounted", e); + } + if (GodotFS._idbfs && IDBFS.dbs[path]) { + IDBFS.dbs[path].close(); + delete IDBFS.dbs[path]; + } + }); + GodotFS._mount_points = []; + GodotFS._idbfs = false; + GodotFS._syncing = false; + }, + sync: function() { + if (GodotFS._syncing) { + GodotRuntime.error("Already syncing!"); + return Promise.resolve(); + } + GodotFS._syncing = true; + return new Promise(function(resolve, reject) { + FS.syncfs(false, function(error) { + if (error) { + GodotRuntime.error(`Failed to save IDB file system: ${error.message}`); + } + GodotFS._syncing = false; + resolve(error); + }); + }); + }, + copy_to_fs: function(path, buffer) { + const idx = path.lastIndexOf("/"); + let dir = "/"; + if (idx > 0) { + dir = path.slice(0, idx); + } + try { + FS.stat(dir); + } catch (e) { + if (e.errno !== GodotFS.ENOENT) { + GodotRuntime.error(e); + } + FS.mkdirTree(dir); + } + FS.writeFile(path, new Uint8Array(buffer)); + } +}; + +var GodotOS = { + request_quit: function() {}, + _async_cbs: [], + _fs_sync_promise: null, + atexit: function(p_promise_cb) { + GodotOS._async_cbs.push(p_promise_cb); + }, + cleanup: function(exit_code) { + const cb = GodotConfig.on_exit; + GodotFS.deinit(); + GodotConfig.clear(); + if (cb) { + cb(exit_code); + } + }, + finish_async: function(callback) { + GodotOS._fs_sync_promise.then(function(err) { + const promises = []; + GodotOS._async_cbs.forEach(function(cb) { + promises.push(new Promise(cb)); + }); + return Promise.all(promises); + }).then(function() { + return GodotFS.sync(); + }).then(function(err) { + setTimeout(function() { + callback(); + }, 0); + }); + } +}; + +var GodotAudio = { + ctx: null, + input: null, + driver: null, + interval: 0, + init: function(mix_rate, latency, onstatechange, onlatencyupdate) { + const opts = {}; + if (mix_rate) { + opts["sampleRate"] = mix_rate; + } + const ctx = new (window.AudioContext || window.webkitAudioContext)(opts); + GodotAudio.ctx = ctx; + ctx.onstatechange = function() { + let state = 0; + switch (ctx.state) { + case "suspended": + state = 0; + break; + + case "running": + state = 1; + break; + + case "closed": + state = 2; + break; + } + onstatechange(state); + }; + ctx.onstatechange(); + GodotAudio.interval = setInterval(function() { + let computed_latency = 0; + if (ctx.baseLatency) { + computed_latency += GodotAudio.ctx.baseLatency; + } + if (ctx.outputLatency) { + computed_latency += GodotAudio.ctx.outputLatency; + } + onlatencyupdate(computed_latency); + }, 1e3); + GodotOS.atexit(GodotAudio.close_async); + return ctx.destination.channelCount; + }, + create_input: function(callback) { + if (GodotAudio.input) { + return 0; + } + function gotMediaInput(stream) { + try { + GodotAudio.input = GodotAudio.ctx.createMediaStreamSource(stream); + callback(GodotAudio.input); + } catch (e) { + GodotRuntime.error("Failed creating input.", e); + } + } + if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { + navigator.mediaDevices.getUserMedia({ + "audio": true + }).then(gotMediaInput, function(e) { + GodotRuntime.error("Error getting user media.", e); + }); + } else { + if (!navigator.getUserMedia) { + navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia; + } + if (!navigator.getUserMedia) { + GodotRuntime.error("getUserMedia not available."); + return 1; + } + navigator.getUserMedia({ + "audio": true + }, gotMediaInput, function(e) { + GodotRuntime.print(e); + }); + } + return 0; + }, + close_async: function(resolve, reject) { + const ctx = GodotAudio.ctx; + GodotAudio.ctx = null; + if (!ctx) { + resolve(); + return; + } + if (GodotAudio.interval) { + clearInterval(GodotAudio.interval); + GodotAudio.interval = 0; + } + if (GodotAudio.input) { + GodotAudio.input.disconnect(); + GodotAudio.input = null; + } + let closed = Promise.resolve(); + if (GodotAudio.driver) { + closed = GodotAudio.driver.close(); + } + closed.then(function() { + return ctx.close(); + }).then(function() { + ctx.onstatechange = null; + resolve(); + }).catch(function(e) { + ctx.onstatechange = null; + GodotRuntime.error("Error closing AudioContext", e); + resolve(); + }); + } +}; + +function _godot_audio_has_worklet() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(48, 1); + return GodotAudio.ctx && GodotAudio.ctx.audioWorklet ? 1 : 0; +} + +function _godot_audio_init(p_mix_rate, p_latency, p_state_change, p_latency_update) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(49, 1, p_mix_rate, p_latency, p_state_change, p_latency_update); + const statechange = GodotRuntime.get_func(p_state_change); + const latencyupdate = GodotRuntime.get_func(p_latency_update); + const mix_rate = GodotRuntime.getHeapValue(p_mix_rate, "i32"); + const channels = GodotAudio.init(mix_rate, p_latency, statechange, latencyupdate); + GodotRuntime.setHeapValue(p_mix_rate, GodotAudio.ctx.sampleRate, "i32"); + return channels; +} + +function _godot_audio_input_start() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(50, 1); + return GodotAudio.create_input(function(input) { + input.connect(GodotAudio.driver.get_node()); + }); +} + +function _godot_audio_input_stop() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(51, 1); + if (GodotAudio.input) { + const tracks = GodotAudio.input["mediaStream"]["getTracks"](); + for (let i = 0; i < tracks.length; i++) { + tracks[i]["stop"](); + } + GodotAudio.input.disconnect(); + GodotAudio.input = null; + } +} + +function _godot_audio_is_available() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(52, 1); + if (!(window.AudioContext || window.webkitAudioContext)) { + return 0; + } + return 1; +} + +function _godot_audio_resume() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(53, 1); + if (GodotAudio.ctx && GodotAudio.ctx.state !== "running") { + GodotAudio.ctx.resume(); + } +} + +var GodotAudioWorklet = { + promise: null, + worklet: null, + ring_buffer: null, + create: function(channels) { + const path = GodotConfig.locate_file("godot.audio.worklet.js"); + GodotAudioWorklet.promise = GodotAudio.ctx.audioWorklet.addModule(path).then(function() { + GodotAudioWorklet.worklet = new AudioWorkletNode(GodotAudio.ctx, "godot-processor", { + "outputChannelCount": [ channels ] + }); + return Promise.resolve(); + }); + GodotAudio.driver = GodotAudioWorklet; + }, + start: function(in_buf, out_buf, state) { + GodotAudioWorklet.promise.then(function() { + const node = GodotAudioWorklet.worklet; + node.connect(GodotAudio.ctx.destination); + node.port.postMessage({ + "cmd": "start", + "data": [ state, in_buf, out_buf ] + }); + node.port.onmessage = function(event) { + GodotRuntime.error(event.data); + }; + }); + }, + start_no_threads: function(p_out_buf, p_out_size, out_callback, p_in_buf, p_in_size, in_callback) { + function RingBuffer() { + let wpos = 0; + let rpos = 0; + let pending_samples = 0; + const wbuf = new Float32Array(p_out_size); + function send(port) { + if (pending_samples === 0) { + return; + } + const buffer = GodotRuntime.heapSub(GROWABLE_HEAP_F32(), p_out_buf, p_out_size); + const size = buffer.length; + const tot_sent = pending_samples; + out_callback(wpos, pending_samples); + if (wpos + pending_samples >= size) { + const high = size - wpos; + wbuf.set(buffer.subarray(wpos, size)); + pending_samples -= high; + wpos = 0; + } + if (pending_samples > 0) { + wbuf.set(buffer.subarray(wpos, wpos + pending_samples), tot_sent - pending_samples); + } + port.postMessage({ + "cmd": "chunk", + "data": wbuf.subarray(0, tot_sent) + }); + wpos += pending_samples; + pending_samples = 0; + } + this.receive = function(recv_buf) { + const buffer = GodotRuntime.heapSub(GROWABLE_HEAP_F32(), p_in_buf, p_in_size); + const from = rpos; + let to_write = recv_buf.length; + let high = 0; + if (rpos + to_write >= p_in_size) { + high = p_in_size - rpos; + buffer.set(recv_buf.subarray(0, high), rpos); + to_write -= high; + rpos = 0; + } + if (to_write) { + buffer.set(recv_buf.subarray(high, to_write), rpos); + } + in_callback(from, recv_buf.length); + rpos += to_write; + }; + this.consumed = function(size, port) { + pending_samples += size; + send(port); + }; + } + GodotAudioWorklet.ring_buffer = new RingBuffer(); + GodotAudioWorklet.promise.then(function() { + const node = GodotAudioWorklet.worklet; + const buffer = GodotRuntime.heapSlice(GROWABLE_HEAP_F32(), p_out_buf, p_out_size); + node.connect(GodotAudio.ctx.destination); + node.port.postMessage({ + "cmd": "start_nothreads", + "data": [ buffer, p_in_size ] + }); + node.port.onmessage = function(event) { + if (!GodotAudioWorklet.worklet) { + return; + } + if (event.data["cmd"] === "read") { + const read = event.data["data"]; + GodotAudioWorklet.ring_buffer.consumed(read, GodotAudioWorklet.worklet.port); + } else if (event.data["cmd"] === "input") { + const buf = event.data["data"]; + if (buf.length > p_in_size) { + GodotRuntime.error("Input chunk is too big"); + return; + } + GodotAudioWorklet.ring_buffer.receive(buf); + } else { + GodotRuntime.error(event.data); + } + }; + }); + }, + get_node: function() { + return GodotAudioWorklet.worklet; + }, + close: function() { + return new Promise(function(resolve, reject) { + if (GodotAudioWorklet.promise === null) { + return; + } + const p = GodotAudioWorklet.promise; + p.then(function() { + GodotAudioWorklet.worklet.port.postMessage({ + "cmd": "stop", + "data": null + }); + GodotAudioWorklet.worklet.disconnect(); + GodotAudioWorklet.worklet.port.onmessage = null; + GodotAudioWorklet.worklet = null; + GodotAudioWorklet.promise = null; + resolve(); + }).catch(function(err) { + GodotRuntime.error(err); + }); + }); + } +}; + +function _godot_audio_worklet_create(channels) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(54, 1, channels); + try { + GodotAudioWorklet.create(channels); + } catch (e) { + GodotRuntime.error("Error starting AudioDriverWorklet", e); + return 1; + } + return 0; +} + +function _godot_audio_worklet_start(p_in_buf, p_in_size, p_out_buf, p_out_size, p_state) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(55, 1, p_in_buf, p_in_size, p_out_buf, p_out_size, p_state); + const out_buffer = GodotRuntime.heapSub(GROWABLE_HEAP_F32(), p_out_buf, p_out_size); + const in_buffer = GodotRuntime.heapSub(GROWABLE_HEAP_F32(), p_in_buf, p_in_size); + const state = GodotRuntime.heapSub(GROWABLE_HEAP_I32(), p_state, 4); + GodotAudioWorklet.start(in_buffer, out_buffer, state); +} + +function _godot_audio_worklet_state_add(p_state, p_idx, p_value) { + return Atomics.add(GROWABLE_HEAP_I32(), (p_state >> 2) + p_idx, p_value); +} + +function _godot_audio_worklet_state_get(p_state, p_idx) { + return Atomics.load(GROWABLE_HEAP_I32(), (p_state >> 2) + p_idx); +} + +function _godot_audio_worklet_state_wait(p_state, p_idx, p_expected, p_timeout) { + Atomics.wait(GROWABLE_HEAP_I32(), (p_state >> 2) + p_idx, p_expected, p_timeout); + return Atomics.load(GROWABLE_HEAP_I32(), (p_state >> 2) + p_idx); +} + +function _godot_js_config_canvas_id_get(p_ptr, p_ptr_max) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(56, 1, p_ptr, p_ptr_max); + GodotRuntime.stringToHeap(`#${GodotConfig.canvas.id}`, p_ptr, p_ptr_max); +} + +function _godot_js_config_locale_get(p_ptr, p_ptr_max) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(57, 1, p_ptr, p_ptr_max); + GodotRuntime.stringToHeap(GodotConfig.locale, p_ptr, p_ptr_max); +} + +var GodotDisplayCursor = { + shape: "default", + visible: true, + cursors: {}, + set_style: function(style) { + GodotConfig.canvas.style.cursor = style; + }, + set_shape: function(shape) { + GodotDisplayCursor.shape = shape; + let css = shape; + if (shape in GodotDisplayCursor.cursors) { + const c = GodotDisplayCursor.cursors[shape]; + css = `url("${c.url}") ${c.x} ${c.y}, default`; + } + if (GodotDisplayCursor.visible) { + GodotDisplayCursor.set_style(css); + } + }, + clear: function() { + GodotDisplayCursor.set_style(""); + GodotDisplayCursor.shape = "default"; + GodotDisplayCursor.visible = true; + Object.keys(GodotDisplayCursor.cursors).forEach(function(key) { + URL.revokeObjectURL(GodotDisplayCursor.cursors[key]); + delete GodotDisplayCursor.cursors[key]; + }); + }, + lockPointer: function() { + const canvas = GodotConfig.canvas; + if (canvas.requestPointerLock) { + canvas.requestPointerLock(); + } + }, + releasePointer: function() { + if (document.exitPointerLock) { + document.exitPointerLock(); + } + }, + isPointerLocked: function() { + return document.pointerLockElement === GodotConfig.canvas; + } +}; + +var GodotEventListeners = { + handlers: [], + has: function(target, event, method, capture) { + return GodotEventListeners.handlers.findIndex(function(e) { + return e.target === target && e.event === event && e.method === method && e.capture === capture; + }) !== -1; + }, + add: function(target, event, method, capture) { + if (GodotEventListeners.has(target, event, method, capture)) { + return; + } + function Handler(p_target, p_event, p_method, p_capture) { + this.target = p_target; + this.event = p_event; + this.method = p_method; + this.capture = p_capture; + } + GodotEventListeners.handlers.push(new Handler(target, event, method, capture)); + target.addEventListener(event, method, capture); + }, + clear: function() { + GodotEventListeners.handlers.forEach(function(h) { + h.target.removeEventListener(h.event, h.method, h.capture); + }); + GodotEventListeners.handlers.length = 0; + } +}; + +var GodotDisplayScreen = { + desired_size: [ 0, 0 ], + hidpi: true, + getPixelRatio: function() { + return GodotDisplayScreen.hidpi ? window.devicePixelRatio || 1 : 1; + }, + isFullscreen: function() { + const elem = document.fullscreenElement || document.mozFullscreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + if (elem) { + return elem === GodotConfig.canvas; + } + return document.fullscreen || document.mozFullScreen || document.webkitIsFullscreen; + }, + hasFullscreen: function() { + return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled; + }, + requestFullscreen: function() { + if (!GodotDisplayScreen.hasFullscreen()) { + return 1; + } + const canvas = GodotConfig.canvas; + try { + const promise = (canvas.requestFullscreen || canvas.msRequestFullscreen || canvas.mozRequestFullScreen || canvas.mozRequestFullscreen || canvas.webkitRequestFullscreen).call(canvas); + if (promise) { + promise.catch(function() {}); + } + } catch (e) { + return 1; + } + return 0; + }, + exitFullscreen: function() { + if (!GodotDisplayScreen.isFullscreen()) { + return 0; + } + try { + const promise = document.exitFullscreen(); + if (promise) { + promise.catch(function() {}); + } + } catch (e) { + return 1; + } + return 0; + }, + _updateGL: function() { + const gl_context_handle = _emscripten_webgl_get_current_context(); + const gl = GL.getContext(gl_context_handle); + if (gl) { + GL.resizeOffscreenFramebuffer(gl); + } + }, + updateSize: function() { + const isFullscreen = GodotDisplayScreen.isFullscreen(); + const wantsFullWindow = GodotConfig.canvas_resize_policy === 2; + const noResize = GodotConfig.canvas_resize_policy === 0; + const dWidth = GodotDisplayScreen.desired_size[0]; + const dHeight = GodotDisplayScreen.desired_size[1]; + const canvas = GodotConfig.canvas; + let width = dWidth; + let height = dHeight; + if (noResize) { + if (canvas.width !== width || canvas.height !== height) { + GodotDisplayScreen.desired_size = [ canvas.width, canvas.height ]; + GodotDisplayScreen._updateGL(); + return 1; + } + return 0; + } + const scale = GodotDisplayScreen.getPixelRatio(); + if (isFullscreen || wantsFullWindow) { + width = window.innerWidth * scale; + height = window.innerHeight * scale; + } + const csw = `${width / scale}px`; + const csh = `${height / scale}px`; + if (canvas.style.width !== csw || canvas.style.height !== csh || canvas.width !== width || canvas.height !== height) { + canvas.width = width; + canvas.height = height; + canvas.style.width = csw; + canvas.style.height = csh; + GodotDisplayScreen._updateGL(); + return 1; + } + return 0; + } +}; + +var GodotDisplayVK = { + textinput: null, + textarea: null, + available: function() { + return GodotConfig.virtual_keyboard && "ontouchstart" in window; + }, + init: function(input_cb) { + function create(what) { + const elem = document.createElement(what); + elem.style.display = "none"; + elem.style.position = "absolute"; + elem.style.zIndex = "-1"; + elem.style.background = "transparent"; + elem.style.padding = "0px"; + elem.style.margin = "0px"; + elem.style.overflow = "hidden"; + elem.style.width = "0px"; + elem.style.height = "0px"; + elem.style.border = "0px"; + elem.style.outline = "none"; + elem.readonly = true; + elem.disabled = true; + GodotEventListeners.add(elem, "input", function(evt) { + const c_str = GodotRuntime.allocString(elem.value); + input_cb(c_str, elem.selectionEnd); + GodotRuntime.free(c_str); + }, false); + GodotEventListeners.add(elem, "blur", function(evt) { + elem.style.display = "none"; + elem.readonly = true; + elem.disabled = true; + }, false); + GodotConfig.canvas.insertAdjacentElement("beforebegin", elem); + return elem; + } + GodotDisplayVK.textinput = create("input"); + GodotDisplayVK.textarea = create("textarea"); + GodotDisplayVK.updateSize(); + }, + show: function(text, type, start, end) { + if (!GodotDisplayVK.textinput || !GodotDisplayVK.textarea) { + return; + } + if (GodotDisplayVK.textinput.style.display !== "" || GodotDisplayVK.textarea.style.display !== "") { + GodotDisplayVK.hide(); + } + GodotDisplayVK.updateSize(); + let elem = GodotDisplayVK.textinput; + switch (type) { + case 0: + elem.type = "text"; + elem.inputmode = ""; + break; + + case 1: + elem = GodotDisplayVK.textarea; + break; + + case 2: + elem.type = "text"; + elem.inputmode = "numeric"; + break; + + case 3: + elem.type = "text"; + elem.inputmode = "decimal"; + break; + + case 4: + elem.type = "tel"; + elem.inputmode = ""; + break; + + case 5: + elem.type = "email"; + elem.inputmode = ""; + break; + + case 6: + elem.type = "password"; + elem.inputmode = ""; + break; + + case 7: + elem.type = "url"; + elem.inputmode = ""; + break; + + default: + elem.type = "text"; + elem.inputmode = ""; + break; + } + elem.readonly = false; + elem.disabled = false; + elem.value = text; + elem.style.display = "block"; + elem.focus(); + elem.setSelectionRange(start, end); + }, + hide: function() { + if (!GodotDisplayVK.textinput || !GodotDisplayVK.textarea) { + return; + } + [ GodotDisplayVK.textinput, GodotDisplayVK.textarea ].forEach(function(elem) { + elem.blur(); + elem.style.display = "none"; + elem.value = ""; + }); + }, + updateSize: function() { + if (!GodotDisplayVK.textinput || !GodotDisplayVK.textarea) { + return; + } + const rect = GodotConfig.canvas.getBoundingClientRect(); + function update(elem) { + elem.style.left = `${rect.left}px`; + elem.style.top = `${rect.top}px`; + elem.style.width = `${rect.width}px`; + elem.style.height = `${rect.height}px`; + } + update(GodotDisplayVK.textinput); + update(GodotDisplayVK.textarea); + }, + clear: function() { + if (GodotDisplayVK.textinput) { + GodotDisplayVK.textinput.remove(); + GodotDisplayVK.textinput = null; + } + if (GodotDisplayVK.textarea) { + GodotDisplayVK.textarea.remove(); + GodotDisplayVK.textarea = null; + } + } +}; + +var GodotDisplay = { + window_icon: "", + getDPI: function() { + const dpi = Math.round(window.devicePixelRatio * 96); + return dpi >= 96 ? dpi : 96; + } +}; + +function _godot_js_display_alert(p_text) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(58, 1, p_text); + window.alert(GodotRuntime.parseString(p_text)); +} + +function _godot_js_display_canvas_focus() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(59, 1); + GodotConfig.canvas.focus(); +} + +function _godot_js_display_canvas_is_focused() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(60, 1); + return document.activeElement === GodotConfig.canvas; +} + +function _godot_js_display_clipboard_get(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(61, 1, callback); + const func = GodotRuntime.get_func(callback); + try { + navigator.clipboard.readText().then(function(result) { + const ptr = GodotRuntime.allocString(result); + func(ptr); + GodotRuntime.free(ptr); + }).catch(function(e) {}); + } catch (e) {} +} + +function _godot_js_display_clipboard_set(p_text) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(62, 1, p_text); + const text = GodotRuntime.parseString(p_text); + if (!navigator.clipboard || !navigator.clipboard.writeText) { + return 1; + } + navigator.clipboard.writeText(text).catch(function(e) { + GodotRuntime.error("Setting OS clipboard is only possible from an input callback for the Web platform. Exception:", e); + }); + return 0; +} + +function _godot_js_display_cursor_is_hidden() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(63, 1); + return !GodotDisplayCursor.visible; +} + +function _godot_js_display_cursor_is_locked() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(64, 1); + return GodotDisplayCursor.isPointerLocked() ? 1 : 0; +} + +function _godot_js_display_cursor_lock_set(p_lock) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(65, 1, p_lock); + if (p_lock) { + GodotDisplayCursor.lockPointer(); + } else { + GodotDisplayCursor.releasePointer(); + } +} + +function _godot_js_display_cursor_set_custom_shape(p_shape, p_ptr, p_len, p_hotspot_x, p_hotspot_y) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(66, 1, p_shape, p_ptr, p_len, p_hotspot_x, p_hotspot_y); + const shape = GodotRuntime.parseString(p_shape); + const old_shape = GodotDisplayCursor.cursors[shape]; + if (p_len > 0) { + const png = new Blob([ GodotRuntime.heapSlice(GROWABLE_HEAP_U8(), p_ptr, p_len) ], { + type: "image/png" + }); + const url = URL.createObjectURL(png); + GodotDisplayCursor.cursors[shape] = { + url: url, + x: p_hotspot_x, + y: p_hotspot_y + }; + } else { + delete GodotDisplayCursor.cursors[shape]; + } + if (shape === GodotDisplayCursor.shape) { + GodotDisplayCursor.set_shape(GodotDisplayCursor.shape); + } + if (old_shape) { + URL.revokeObjectURL(old_shape.url); + } +} + +function _godot_js_display_cursor_set_shape(p_string) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(67, 1, p_string); + GodotDisplayCursor.set_shape(GodotRuntime.parseString(p_string)); +} + +function _godot_js_display_cursor_set_visible(p_visible) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(68, 1, p_visible); + const visible = p_visible !== 0; + if (visible === GodotDisplayCursor.visible) { + return; + } + GodotDisplayCursor.visible = visible; + if (visible) { + GodotDisplayCursor.set_shape(GodotDisplayCursor.shape); + } else { + GodotDisplayCursor.set_style("none"); + } +} + +function _godot_js_display_desired_size_set(width, height) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(69, 1, width, height); + GodotDisplayScreen.desired_size = [ width, height ]; + GodotDisplayScreen.updateSize(); +} + +function _godot_js_display_fullscreen_cb(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(70, 1, callback); + const canvas = GodotConfig.canvas; + const func = GodotRuntime.get_func(callback); + function change_cb(evt) { + if (evt.target === canvas) { + func(GodotDisplayScreen.isFullscreen()); + } + } + GodotEventListeners.add(document, "fullscreenchange", change_cb, false); + GodotEventListeners.add(document, "mozfullscreenchange", change_cb, false); + GodotEventListeners.add(document, "webkitfullscreenchange", change_cb, false); +} + +function _godot_js_display_fullscreen_exit() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(71, 1); + return GodotDisplayScreen.exitFullscreen(); +} + +function _godot_js_display_fullscreen_request() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(72, 1); + return GodotDisplayScreen.requestFullscreen(); +} + +function _godot_js_display_has_webgl(p_version) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(73, 1, p_version); + if (p_version !== 1 && p_version !== 2) { + return false; + } + try { + return !!document.createElement("canvas").getContext(p_version === 2 ? "webgl2" : "webgl"); + } catch (e) {} + return false; +} + +function _godot_js_display_is_swap_ok_cancel() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(74, 1); + const win = [ "Windows", "Win64", "Win32", "WinCE" ]; + const plat = navigator.platform || ""; + if (win.indexOf(plat) !== -1) { + return 1; + } + return 0; +} + +function _godot_js_display_notification_cb(callback, p_enter, p_exit, p_in, p_out) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(75, 1, callback, p_enter, p_exit, p_in, p_out); + const canvas = GodotConfig.canvas; + const func = GodotRuntime.get_func(callback); + const notif = [ p_enter, p_exit, p_in, p_out ]; + [ "mouseover", "mouseleave", "focus", "blur" ].forEach(function(evt_name, idx) { + GodotEventListeners.add(canvas, evt_name, function() { + func(notif[idx]); + }, true); + }); +} + +function _godot_js_display_pixel_ratio_get() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(76, 1); + return GodotDisplayScreen.getPixelRatio(); +} + +function _godot_js_display_screen_dpi_get() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(77, 1); + return GodotDisplay.getDPI(); +} + +function _godot_js_display_screen_size_get(width, height) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(78, 1, width, height); + const scale = GodotDisplayScreen.getPixelRatio(); + GodotRuntime.setHeapValue(width, window.screen.width * scale, "i32"); + GodotRuntime.setHeapValue(height, window.screen.height * scale, "i32"); +} + +function _godot_js_display_setup_canvas(p_width, p_height, p_fullscreen, p_hidpi) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(79, 1, p_width, p_height, p_fullscreen, p_hidpi); + const canvas = GodotConfig.canvas; + GodotEventListeners.add(canvas, "contextmenu", function(ev) { + ev.preventDefault(); + }, false); + GodotEventListeners.add(canvas, "webglcontextlost", function(ev) { + alert("WebGL context lost, please reload the page"); + ev.preventDefault(); + }, false); + GodotDisplayScreen.hidpi = !!p_hidpi; + switch (GodotConfig.canvas_resize_policy) { + case 0: + GodotDisplayScreen.desired_size = [ canvas.width, canvas.height ]; + break; + + case 1: + GodotDisplayScreen.desired_size = [ p_width, p_height ]; + break; + + default: + canvas.style.position = "absolute"; + canvas.style.top = 0; + canvas.style.left = 0; + break; + } + GodotDisplayScreen.updateSize(); + if (p_fullscreen) { + GodotDisplayScreen.requestFullscreen(); + } +} + +function _godot_js_display_size_update() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(80, 1); + const updated = GodotDisplayScreen.updateSize(); + if (updated) { + GodotDisplayVK.updateSize(); + } + return updated; +} + +function _godot_js_display_touchscreen_is_available() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(81, 1); + return "ontouchstart" in window; +} + +function _godot_js_display_tts_available() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(82, 1); + return "speechSynthesis" in window; +} + +function _godot_js_display_vk_available() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(83, 1); + return GodotDisplayVK.available(); +} + +function _godot_js_display_vk_cb(p_input_cb) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(84, 1, p_input_cb); + const input_cb = GodotRuntime.get_func(p_input_cb); + if (GodotDisplayVK.available()) { + GodotDisplayVK.init(input_cb); + } +} + +function _godot_js_display_vk_hide() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(85, 1); + GodotDisplayVK.hide(); +} + +function _godot_js_display_vk_show(p_text, p_type, p_start, p_end) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(86, 1, p_text, p_type, p_start, p_end); + const text = GodotRuntime.parseString(p_text); + const start = p_start > 0 ? p_start : 0; + const end = p_end > 0 ? p_end : start; + GodotDisplayVK.show(text, p_type, start, end); +} + +function _godot_js_display_window_blur_cb(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(87, 1, callback); + const func = GodotRuntime.get_func(callback); + GodotEventListeners.add(window, "blur", function() { + func(); + }, false); +} + +function _godot_js_display_window_icon_set(p_ptr, p_len) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(88, 1, p_ptr, p_len); + let link = document.getElementById("-gd-engine-icon"); + const old_icon = GodotDisplay.window_icon; + if (p_ptr) { + if (link === null) { + link = document.createElement("link"); + link.rel = "icon"; + link.id = "-gd-engine-icon"; + document.head.appendChild(link); + } + const png = new Blob([ GodotRuntime.heapSlice(GROWABLE_HEAP_U8(), p_ptr, p_len) ], { + type: "image/png" + }); + GodotDisplay.window_icon = URL.createObjectURL(png); + link.href = GodotDisplay.window_icon; + } else { + if (link) { + link.remove(); + } + GodotDisplay.window_icon = null; + } + if (old_icon) { + URL.revokeObjectURL(old_icon); + } +} + +function _godot_js_display_window_size_get(p_width, p_height) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(89, 1, p_width, p_height); + GodotRuntime.setHeapValue(p_width, GodotConfig.canvas.width, "i32"); + GodotRuntime.setHeapValue(p_height, GodotConfig.canvas.height, "i32"); +} + +function _godot_js_display_window_title_set(p_data) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(90, 1, p_data); + document.title = GodotRuntime.parseString(p_data); +} + +function _godot_js_eval(p_js, p_use_global_ctx, p_union_ptr, p_byte_arr, p_byte_arr_write, p_callback) { + const js_code = GodotRuntime.parseString(p_js); + let eval_ret = null; + try { + if (p_use_global_ctx) { + const global_eval = eval; + eval_ret = global_eval(js_code); + } else { + eval_ret = eval(js_code); + } + } catch (e) { + GodotRuntime.error(e); + } + switch (typeof eval_ret) { + case "boolean": + GodotRuntime.setHeapValue(p_union_ptr, eval_ret, "i32"); + return 1; + + case "number": + GodotRuntime.setHeapValue(p_union_ptr, eval_ret, "double"); + return 3; + + case "string": + GodotRuntime.setHeapValue(p_union_ptr, GodotRuntime.allocString(eval_ret), "*"); + return 4; + + case "object": + if (eval_ret === null) { + break; + } + if (ArrayBuffer.isView(eval_ret) && !(eval_ret instanceof Uint8Array)) { + eval_ret = new Uint8Array(eval_ret.buffer); + } else if (eval_ret instanceof ArrayBuffer) { + eval_ret = new Uint8Array(eval_ret); + } + if (eval_ret instanceof Uint8Array) { + const func = GodotRuntime.get_func(p_callback); + const bytes_ptr = func(p_byte_arr, p_byte_arr_write, eval_ret.length); + GROWABLE_HEAP_U8().set(eval_ret, bytes_ptr); + return 29; + } + break; + } + return 0; +} + +var IDHandler = { + _last_id: 0, + _references: {}, + get: function(p_id) { + return IDHandler._references[p_id]; + }, + add: function(p_data) { + const id = ++IDHandler._last_id; + IDHandler._references[id] = p_data; + return id; + }, + remove: function(p_id) { + delete IDHandler._references[p_id]; + } +}; + +var GodotFetch = { + onread: function(id, result) { + const obj = IDHandler.get(id); + if (!obj) { + return; + } + if (result.value) { + obj.chunks.push(result.value); + } + obj.reading = false; + obj.done = result.done; + }, + onresponse: function(id, response) { + const obj = IDHandler.get(id); + if (!obj) { + return; + } + let chunked = false; + response.headers.forEach(function(value, header) { + const v = value.toLowerCase().trim(); + const h = header.toLowerCase().trim(); + if (h === "transfer-encoding" && v === "chunked") { + chunked = true; + } + }); + obj.status = response.status; + obj.response = response; + obj.reader = response.body.getReader(); + obj.chunked = chunked; + }, + onerror: function(id, err) { + GodotRuntime.error(err); + const obj = IDHandler.get(id); + if (!obj) { + return; + } + obj.error = err; + }, + create: function(method, url, headers, body) { + const obj = { + request: null, + response: null, + reader: null, + error: null, + done: false, + reading: false, + status: 0, + chunks: [] + }; + const id = IDHandler.add(obj); + const init = { + method: method, + headers: headers, + body: body + }; + obj.request = fetch(url, init); + obj.request.then(GodotFetch.onresponse.bind(null, id)).catch(GodotFetch.onerror.bind(null, id)); + return id; + }, + free: function(id) { + const obj = IDHandler.get(id); + if (!obj) { + return; + } + IDHandler.remove(id); + if (!obj.request) { + return; + } + obj.request.then(function(response) { + response.abort(); + }).catch(function(e) {}); + }, + read: function(id) { + const obj = IDHandler.get(id); + if (!obj) { + return; + } + if (obj.reader && !obj.reading) { + if (obj.done) { + obj.reader = null; + return; + } + obj.reading = true; + obj.reader.read().then(GodotFetch.onread.bind(null, id)).catch(GodotFetch.onerror.bind(null, id)); + } + } +}; + +function _godot_js_fetch_create(p_method, p_url, p_headers, p_headers_size, p_body, p_body_size) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(91, 1, p_method, p_url, p_headers, p_headers_size, p_body, p_body_size); + const method = GodotRuntime.parseString(p_method); + const url = GodotRuntime.parseString(p_url); + const headers = GodotRuntime.parseStringArray(p_headers, p_headers_size); + const body = p_body_size ? GodotRuntime.heapSlice(GROWABLE_HEAP_I8(), p_body, p_body_size) : null; + return GodotFetch.create(method, url, headers.map(function(hv) { + const idx = hv.indexOf(":"); + if (idx <= 0) { + return []; + } + return [ hv.slice(0, idx).trim(), hv.slice(idx + 1).trim() ]; + }).filter(function(v) { + return v.length === 2; + }), body); +} + +function _godot_js_fetch_free(id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(92, 1, id); + GodotFetch.free(id); +} + +function _godot_js_fetch_http_status_get(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(93, 1, p_id); + const obj = IDHandler.get(p_id); + if (!obj || !obj.response) { + return 0; + } + return obj.status; +} + +function _godot_js_fetch_is_chunked(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(94, 1, p_id); + const obj = IDHandler.get(p_id); + if (!obj || !obj.response) { + return -1; + } + return obj.chunked ? 1 : 0; +} + +function _godot_js_fetch_read_chunk(p_id, p_buf, p_buf_size) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(95, 1, p_id, p_buf, p_buf_size); + const obj = IDHandler.get(p_id); + if (!obj || !obj.response) { + return 0; + } + let to_read = p_buf_size; + const chunks = obj.chunks; + while (to_read && chunks.length) { + const chunk = obj.chunks[0]; + if (chunk.length > to_read) { + GodotRuntime.heapCopy(GROWABLE_HEAP_I8(), chunk.slice(0, to_read), p_buf); + chunks[0] = chunk.slice(to_read); + to_read = 0; + } else { + GodotRuntime.heapCopy(GROWABLE_HEAP_I8(), chunk, p_buf); + to_read -= chunk.length; + chunks.pop(); + } + } + if (!chunks.length) { + GodotFetch.read(p_id); + } + return p_buf_size - to_read; +} + +function _godot_js_fetch_read_headers(p_id, p_parse_cb, p_ref) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(96, 1, p_id, p_parse_cb, p_ref); + const obj = IDHandler.get(p_id); + if (!obj || !obj.response) { + return 1; + } + const cb = GodotRuntime.get_func(p_parse_cb); + const arr = []; + obj.response.headers.forEach(function(v, h) { + arr.push(`${h}:${v}`); + }); + const c_ptr = GodotRuntime.allocStringArray(arr); + cb(arr.length, c_ptr, p_ref); + GodotRuntime.freeStringArray(c_ptr, arr.length); + return 0; +} + +function _godot_js_fetch_state_get(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(97, 1, p_id); + const obj = IDHandler.get(p_id); + if (!obj) { + return -1; + } + if (obj.error) { + return -1; + } + if (!obj.response) { + return 0; + } + if (obj.reader) { + return 1; + } + if (obj.done) { + return 2; + } + return -1; +} + +var GodotInputGamepads = { + samples: [], + get_pads: function() { + try { + const pads = navigator.getGamepads(); + if (pads) { + return pads; + } + return []; + } catch (e) { + return []; + } + }, + get_samples: function() { + return GodotInputGamepads.samples; + }, + get_sample: function(index) { + const samples = GodotInputGamepads.samples; + return index < samples.length ? samples[index] : null; + }, + sample: function() { + const pads = GodotInputGamepads.get_pads(); + const samples = []; + for (let i = 0; i < pads.length; i++) { + const pad = pads[i]; + if (!pad) { + samples.push(null); + continue; + } + const s = { + standard: pad.mapping === "standard", + buttons: [], + axes: [], + connected: pad.connected + }; + for (let b = 0; b < pad.buttons.length; b++) { + s.buttons.push(pad.buttons[b].value); + } + for (let a = 0; a < pad.axes.length; a++) { + s.axes.push(pad.axes[a]); + } + samples.push(s); + } + GodotInputGamepads.samples = samples; + }, + init: function(onchange) { + GodotInputGamepads.samples = []; + function add(pad) { + const guid = GodotInputGamepads.get_guid(pad); + const c_id = GodotRuntime.allocString(pad.id); + const c_guid = GodotRuntime.allocString(guid); + onchange(pad.index, 1, c_id, c_guid); + GodotRuntime.free(c_id); + GodotRuntime.free(c_guid); + } + const pads = GodotInputGamepads.get_pads(); + for (let i = 0; i < pads.length; i++) { + if (pads[i]) { + add(pads[i]); + } + } + GodotEventListeners.add(window, "gamepadconnected", function(evt) { + if (evt.gamepad) { + add(evt.gamepad); + } + }, false); + GodotEventListeners.add(window, "gamepaddisconnected", function(evt) { + if (evt.gamepad) { + onchange(evt.gamepad.index, 0); + } + }, false); + }, + get_guid: function(pad) { + if (pad.mapping) { + return pad.mapping; + } + const ua = navigator.userAgent; + let os = "Unknown"; + if (ua.indexOf("Android") >= 0) { + os = "Android"; + } else if (ua.indexOf("Linux") >= 0) { + os = "Linux"; + } else if (ua.indexOf("iPhone") >= 0) { + os = "iOS"; + } else if (ua.indexOf("Macintosh") >= 0) { + os = "MacOSX"; + } else if (ua.indexOf("Windows") >= 0) { + os = "Windows"; + } + const id = pad.id; + const exp1 = /vendor: ([0-9a-f]{4}) product: ([0-9a-f]{4})/i; + const exp2 = /^([0-9a-f]+)-([0-9a-f]+)-/i; + let vendor = ""; + let product = ""; + if (exp1.test(id)) { + const match = exp1.exec(id); + vendor = match[1].padStart(4, "0"); + product = match[2].padStart(4, "0"); + } else if (exp2.test(id)) { + const match = exp2.exec(id); + vendor = match[1].padStart(4, "0"); + product = match[2].padStart(4, "0"); + } + if (!vendor || !product) { + return `${os}Unknown`; + } + return os + vendor + product; + } +}; + +var GodotInputDragDrop = { + promises: [], + pending_files: [], + add_entry: function(entry) { + if (entry.isDirectory) { + GodotInputDragDrop.add_dir(entry); + } else if (entry.isFile) { + GodotInputDragDrop.add_file(entry); + } else { + GodotRuntime.error("Unrecognized entry...", entry); + } + }, + add_dir: function(entry) { + GodotInputDragDrop.promises.push(new Promise(function(resolve, reject) { + const reader = entry.createReader(); + reader.readEntries(function(entries) { + for (let i = 0; i < entries.length; i++) { + GodotInputDragDrop.add_entry(entries[i]); + } + resolve(); + }); + })); + }, + add_file: function(entry) { + GodotInputDragDrop.promises.push(new Promise(function(resolve, reject) { + entry.file(function(file) { + const reader = new FileReader(); + reader.onload = function() { + const f = { + "path": file.relativePath || file.webkitRelativePath, + "name": file.name, + "type": file.type, + "size": file.size, + "data": reader.result + }; + if (!f["path"]) { + f["path"] = f["name"]; + } + GodotInputDragDrop.pending_files.push(f); + resolve(); + }; + reader.onerror = function() { + GodotRuntime.print("Error reading file"); + reject(); + }; + reader.readAsArrayBuffer(file); + }, function(err) { + GodotRuntime.print("Error!"); + reject(); + }); + })); + }, + process: function(resolve, reject) { + if (GodotInputDragDrop.promises.length === 0) { + resolve(); + return; + } + GodotInputDragDrop.promises.pop().then(function() { + setTimeout(function() { + GodotInputDragDrop.process(resolve, reject); + }, 0); + }); + }, + _process_event: function(ev, callback) { + ev.preventDefault(); + if (ev.dataTransfer.items) { + for (let i = 0; i < ev.dataTransfer.items.length; i++) { + const item = ev.dataTransfer.items[i]; + let entry = null; + if ("getAsEntry" in item) { + entry = item.getAsEntry(); + } else if ("webkitGetAsEntry" in item) { + entry = item.webkitGetAsEntry(); + } + if (entry) { + GodotInputDragDrop.add_entry(entry); + } + } + } else { + GodotRuntime.error("File upload not supported"); + } + new Promise(GodotInputDragDrop.process).then(function() { + const DROP = `/tmp/drop-${parseInt(Math.random() * (1 << 30), 10)}/`; + const drops = []; + const files = []; + FS.mkdir(DROP.slice(0, -1)); + GodotInputDragDrop.pending_files.forEach(elem => { + const path = elem["path"]; + GodotFS.copy_to_fs(DROP + path, elem["data"]); + let idx = path.indexOf("/"); + if (idx === -1) { + drops.push(DROP + path); + } else { + const sub = path.substr(0, idx); + idx = sub.indexOf("/"); + if (idx < 0 && drops.indexOf(DROP + sub) === -1) { + drops.push(DROP + sub); + } + } + files.push(DROP + path); + }); + GodotInputDragDrop.promises = []; + GodotInputDragDrop.pending_files = []; + callback(drops); + if (GodotConfig.persistent_drops) { + GodotOS.atexit(function(resolve, reject) { + GodotInputDragDrop.remove_drop(files, DROP); + resolve(); + }); + } else { + GodotInputDragDrop.remove_drop(files, DROP); + } + }); + }, + remove_drop: function(files, drop_path) { + const dirs = [ drop_path.substr(0, drop_path.length - 1) ]; + files.forEach(function(file) { + FS.unlink(file); + let dir = file.replace(drop_path, ""); + let idx = dir.lastIndexOf("/"); + while (idx > 0) { + dir = dir.substr(0, idx); + if (dirs.indexOf(drop_path + dir) === -1) { + dirs.push(drop_path + dir); + } + idx = dir.lastIndexOf("/"); + } + }); + dirs.sort(function(a, b) { + const al = (a.match(/\//g) || []).length; + const bl = (b.match(/\//g) || []).length; + if (al > bl) { + return -1; + } else if (al < bl) { + return 1; + } + return 0; + }).forEach(function(dir) { + FS.rmdir(dir); + }); + }, + handler: function(callback) { + return function(ev) { + GodotInputDragDrop._process_event(ev, callback); + }; + } +}; + +var GodotInput = { + getModifiers: function(evt) { + return evt.shiftKey + 0 + (evt.altKey + 0 << 1) + (evt.ctrlKey + 0 << 2) + (evt.metaKey + 0 << 3); + }, + computePosition: function(evt, rect) { + const canvas = GodotConfig.canvas; + const rw = canvas.width / rect.width; + const rh = canvas.height / rect.height; + const x = (evt.clientX - rect.x) * rw; + const y = (evt.clientY - rect.y) * rh; + return [ x, y ]; + } +}; + +function _godot_js_input_drop_files_cb(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(98, 1, callback); + const func = GodotRuntime.get_func(callback); + const dropFiles = function(files) { + const args = files || []; + if (!args.length) { + return; + } + const argc = args.length; + const argv = GodotRuntime.allocStringArray(args); + func(argv, argc); + GodotRuntime.freeStringArray(argv, argc); + }; + const canvas = GodotConfig.canvas; + GodotEventListeners.add(canvas, "dragover", function(ev) { + ev.preventDefault(); + }, false); + GodotEventListeners.add(canvas, "drop", GodotInputDragDrop.handler(dropFiles)); +} + +function _godot_js_input_gamepad_cb(change_cb) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(99, 1, change_cb); + const onchange = GodotRuntime.get_func(change_cb); + GodotInputGamepads.init(onchange); +} + +function _godot_js_input_gamepad_sample() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(100, 1); + GodotInputGamepads.sample(); + return 0; +} + +function _godot_js_input_gamepad_sample_count() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(101, 1); + return GodotInputGamepads.get_samples().length; +} + +function _godot_js_input_gamepad_sample_get(p_index, r_btns, r_btns_num, r_axes, r_axes_num, r_standard) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(102, 1, p_index, r_btns, r_btns_num, r_axes, r_axes_num, r_standard); + const sample = GodotInputGamepads.get_sample(p_index); + if (!sample || !sample.connected) { + return 1; + } + const btns = sample.buttons; + const btns_len = btns.length < 16 ? btns.length : 16; + for (let i = 0; i < btns_len; i++) { + GodotRuntime.setHeapValue(r_btns + (i << 2), btns[i], "float"); + } + GodotRuntime.setHeapValue(r_btns_num, btns_len, "i32"); + const axes = sample.axes; + const axes_len = axes.length < 10 ? axes.length : 10; + for (let i = 0; i < axes_len; i++) { + GodotRuntime.setHeapValue(r_axes + (i << 2), axes[i], "float"); + } + GodotRuntime.setHeapValue(r_axes_num, axes_len, "i32"); + const is_standard = sample.standard ? 1 : 0; + GodotRuntime.setHeapValue(r_standard, is_standard, "i32"); + return 0; +} + +function _godot_js_input_key_cb(callback, code, key) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(103, 1, callback, code, key); + const func = GodotRuntime.get_func(callback); + function key_cb(pressed, evt) { + const modifiers = GodotInput.getModifiers(evt); + GodotRuntime.stringToHeap(evt.code, code, 32); + GodotRuntime.stringToHeap(evt.key, key, 32); + func(pressed, evt.repeat, modifiers); + evt.preventDefault(); + } + GodotEventListeners.add(GodotConfig.canvas, "keydown", key_cb.bind(null, 1), false); + GodotEventListeners.add(GodotConfig.canvas, "keyup", key_cb.bind(null, 0), false); +} + +function _godot_js_input_mouse_button_cb(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(104, 1, callback); + const func = GodotRuntime.get_func(callback); + const canvas = GodotConfig.canvas; + function button_cb(p_pressed, evt) { + const rect = canvas.getBoundingClientRect(); + const pos = GodotInput.computePosition(evt, rect); + const modifiers = GodotInput.getModifiers(evt); + if (p_pressed) { + GodotConfig.canvas.focus(); + } + if (func(p_pressed, evt.button, pos[0], pos[1], modifiers)) { + evt.preventDefault(); + } + } + GodotEventListeners.add(canvas, "mousedown", button_cb.bind(null, 1), false); + GodotEventListeners.add(window, "mouseup", button_cb.bind(null, 0), false); +} + +function _godot_js_input_mouse_move_cb(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(105, 1, callback); + const func = GodotRuntime.get_func(callback); + const canvas = GodotConfig.canvas; + function move_cb(evt) { + const rect = canvas.getBoundingClientRect(); + const pos = GodotInput.computePosition(evt, rect); + const rw = canvas.width / rect.width; + const rh = canvas.height / rect.height; + const rel_pos_x = evt.movementX * rw; + const rel_pos_y = evt.movementY * rh; + const modifiers = GodotInput.getModifiers(evt); + func(pos[0], pos[1], rel_pos_x, rel_pos_y, modifiers); + } + GodotEventListeners.add(window, "mousemove", move_cb, false); +} + +function _godot_js_input_mouse_wheel_cb(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(106, 1, callback); + const func = GodotRuntime.get_func(callback); + function wheel_cb(evt) { + if (func(evt["deltaX"] || 0, evt["deltaY"] || 0)) { + evt.preventDefault(); + } + } + GodotEventListeners.add(GodotConfig.canvas, "wheel", wheel_cb, false); +} + +function _godot_js_input_paste_cb(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(107, 1, callback); + const func = GodotRuntime.get_func(callback); + GodotEventListeners.add(window, "paste", function(evt) { + const text = evt.clipboardData.getData("text"); + const ptr = GodotRuntime.allocString(text); + func(ptr); + GodotRuntime.free(ptr); + }, false); +} + +function _godot_js_input_touch_cb(callback, ids, coords) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(108, 1, callback, ids, coords); + const func = GodotRuntime.get_func(callback); + const canvas = GodotConfig.canvas; + function touch_cb(type, evt) { + if (type === 0) { + GodotConfig.canvas.focus(); + } + const rect = canvas.getBoundingClientRect(); + const touches = evt.changedTouches; + for (let i = 0; i < touches.length; i++) { + const touch = touches[i]; + const pos = GodotInput.computePosition(touch, rect); + GodotRuntime.setHeapValue(coords + i * 2 * 8, pos[0], "double"); + GodotRuntime.setHeapValue(coords + (i * 2 + 1) * 8, pos[1], "double"); + GodotRuntime.setHeapValue(ids + i * 4, touch.identifier, "i32"); + } + func(type, touches.length); + if (evt.cancelable) { + evt.preventDefault(); + } + } + GodotEventListeners.add(canvas, "touchstart", touch_cb.bind(null, 0), false); + GodotEventListeners.add(canvas, "touchend", touch_cb.bind(null, 1), false); + GodotEventListeners.add(canvas, "touchcancel", touch_cb.bind(null, 1), false); + GodotEventListeners.add(canvas, "touchmove", touch_cb.bind(null, 2), false); +} + +function _godot_js_input_vibrate_handheld(p_duration_ms) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(109, 1, p_duration_ms); + if (typeof navigator.vibrate !== "function") { + GodotRuntime.print("This browser does not support vibration."); + } else { + navigator.vibrate(p_duration_ms); + } +} + +function _godot_js_os_download_buffer(p_ptr, p_size, p_name, p_mime) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(110, 1, p_ptr, p_size, p_name, p_mime); + const buf = GodotRuntime.heapSlice(GROWABLE_HEAP_I8(), p_ptr, p_size); + const name = GodotRuntime.parseString(p_name); + const mime = GodotRuntime.parseString(p_mime); + const blob = new Blob([ buf ], { + type: mime + }); + const url = window.URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = name; + a.style.display = "none"; + document.body.appendChild(a); + a.click(); + a.remove(); + window.URL.revokeObjectURL(url); +} + +function _godot_js_os_execute(p_json) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(111, 1, p_json); + const json_args = GodotRuntime.parseString(p_json); + const args = JSON.parse(json_args); + if (GodotConfig.on_execute) { + GodotConfig.on_execute(args); + return 0; + } + return 1; +} + +function _godot_js_os_finish_async(p_callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(112, 1, p_callback); + const func = GodotRuntime.get_func(p_callback); + GodotOS.finish_async(func); +} + +function _godot_js_os_fs_is_persistent() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(113, 1); + return GodotFS.is_persistent(); +} + +function _godot_js_os_fs_sync(callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(114, 1, callback); + const func = GodotRuntime.get_func(callback); + GodotOS._fs_sync_promise = GodotFS.sync(); + GodotOS._fs_sync_promise.then(function(err) { + func(); + }); +} + +function _godot_js_os_has_feature(p_ftr) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(115, 1, p_ftr); + const ftr = GodotRuntime.parseString(p_ftr); + const ua = navigator.userAgent; + if (ftr === "web_macos") { + return ua.indexOf("Mac") !== -1 ? 1 : 0; + } + if (ftr === "web_windows") { + return ua.indexOf("Windows") !== -1 ? 1 : 0; + } + if (ftr === "web_android") { + return ua.indexOf("Android") !== -1 ? 1 : 0; + } + if (ftr === "web_ios") { + return ua.indexOf("iPhone") !== -1 || ua.indexOf("iPad") !== -1 || ua.indexOf("iPod") !== -1 ? 1 : 0; + } + if (ftr === "web_linuxbsd") { + return ua.indexOf("CrOS") !== -1 || ua.indexOf("BSD") !== -1 || ua.indexOf("Linux") !== -1 || ua.indexOf("X11") !== -1 ? 1 : 0; + } + return 0; +} + +function _godot_js_os_hw_concurrency_get() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(116, 1); + const concurrency = navigator.hardwareConcurrency || 1; + return concurrency < 2 ? concurrency : 2; +} + +function _godot_js_os_request_quit_cb(p_callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(117, 1, p_callback); + GodotOS.request_quit = GodotRuntime.get_func(p_callback); +} + +function _godot_js_os_shell_open(p_uri) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(118, 1, p_uri); + window.open(GodotRuntime.parseString(p_uri), "_blank"); +} + +var GodotPWA = { + hasUpdate: false, + updateState: function(cb, reg) { + if (!reg) { + return; + } + if (!reg.active) { + return; + } + if (reg.waiting) { + GodotPWA.hasUpdate = true; + cb(); + } + GodotEventListeners.add(reg, "updatefound", function() { + const installing = reg.installing; + GodotEventListeners.add(installing, "statechange", function() { + if (installing.state === "installed") { + GodotPWA.hasUpdate = true; + cb(); + } + }); + }); + } +}; + +function _godot_js_pwa_cb(p_update_cb) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(119, 1, p_update_cb); + if ("serviceWorker" in navigator) { + const cb = GodotRuntime.get_func(p_update_cb); + navigator.serviceWorker.getRegistration().then(GodotPWA.updateState.bind(null, cb)); + } +} + +function _godot_js_pwa_update() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(120, 1); + if ("serviceWorker" in navigator && GodotPWA.hasUpdate) { + navigator.serviceWorker.getRegistration().then(function(reg) { + if (!reg || !reg.waiting) { + return; + } + reg.waiting.postMessage("update"); + }); + return 0; + } + return 1; +} + +var GodotRTCDataChannel = { + connect: function(p_id, p_on_open, p_on_message, p_on_error, p_on_close) { + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + ref.binaryType = "arraybuffer"; + ref.onopen = function(event) { + p_on_open(); + }; + ref.onclose = function(event) { + p_on_close(); + }; + ref.onerror = function(event) { + p_on_error(); + }; + ref.onmessage = function(event) { + let buffer; + let is_string = 0; + if (event.data instanceof ArrayBuffer) { + buffer = new Uint8Array(event.data); + } else if (event.data instanceof Blob) { + GodotRuntime.error("Blob type not supported"); + return; + } else if (typeof event.data === "string") { + is_string = 1; + const enc = new TextEncoder("utf-8"); + buffer = new Uint8Array(enc.encode(event.data)); + } else { + GodotRuntime.error("Unknown message type"); + return; + } + const len = buffer.length * buffer.BYTES_PER_ELEMENT; + const out = GodotRuntime.malloc(len); + GROWABLE_HEAP_U8().set(buffer, out); + p_on_message(out, len, is_string); + GodotRuntime.free(out); + }; + }, + close: function(p_id) { + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + ref.onopen = null; + ref.onmessage = null; + ref.onerror = null; + ref.onclose = null; + ref.close(); + }, + get_prop: function(p_id, p_prop, p_def) { + const ref = IDHandler.get(p_id); + return ref && ref[p_prop] !== undefined ? ref[p_prop] : p_def; + } +}; + +function _godot_js_rtc_datachannel_close(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(121, 1, p_id); + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + GodotRTCDataChannel.close(p_id); +} + +function _godot_js_rtc_datachannel_connect(p_id, p_ref, p_on_open, p_on_message, p_on_error, p_on_close) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(122, 1, p_id, p_ref, p_on_open, p_on_message, p_on_error, p_on_close); + const onopen = GodotRuntime.get_func(p_on_open).bind(null, p_ref); + const onmessage = GodotRuntime.get_func(p_on_message).bind(null, p_ref); + const onerror = GodotRuntime.get_func(p_on_error).bind(null, p_ref); + const onclose = GodotRuntime.get_func(p_on_close).bind(null, p_ref); + GodotRTCDataChannel.connect(p_id, onopen, onmessage, onerror, onclose); +} + +function _godot_js_rtc_datachannel_destroy(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(123, 1, p_id); + GodotRTCDataChannel.close(p_id); + IDHandler.remove(p_id); +} + +function _godot_js_rtc_datachannel_get_buffered_amount(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(124, 1, p_id); + return GodotRTCDataChannel.get_prop(p_id, "bufferedAmount", 0); +} + +function _godot_js_rtc_datachannel_id_get(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(125, 1, p_id); + return GodotRTCDataChannel.get_prop(p_id, "id", 65535); +} + +function _godot_js_rtc_datachannel_is_negotiated(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(126, 1, p_id); + return GodotRTCDataChannel.get_prop(p_id, "negotiated", 65535); +} + +function _godot_js_rtc_datachannel_is_ordered(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(127, 1, p_id); + return GodotRTCDataChannel.get_prop(p_id, "ordered", true); +} + +function _godot_js_rtc_datachannel_label_get(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(128, 1, p_id); + const ref = IDHandler.get(p_id); + if (!ref || !ref.label) { + return 0; + } + return GodotRuntime.allocString(ref.label); +} + +function _godot_js_rtc_datachannel_max_packet_lifetime_get(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(129, 1, p_id); + const ref = IDHandler.get(p_id); + if (!ref) { + return 65535; + } + if (ref["maxPacketLifeTime"] !== undefined) { + return ref["maxPacketLifeTime"]; + } else if (ref["maxRetransmitTime"] !== undefined) { + return ref["maxRetransmitTime"]; + } + return 65535; +} + +function _godot_js_rtc_datachannel_max_retransmits_get(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(130, 1, p_id); + return GodotRTCDataChannel.get_prop(p_id, "maxRetransmits", 65535); +} + +function _godot_js_rtc_datachannel_protocol_get(p_id) { + const ref = IDHandler.get(p_id); + if (!ref || !ref.protocol) { + return 0; + } + return GodotRuntime.allocString(ref.protocol); +} + +function _godot_js_rtc_datachannel_ready_state_get(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(131, 1, p_id); + const ref = IDHandler.get(p_id); + if (!ref) { + return 3; + } + switch (ref.readyState) { + case "connecting": + return 0; + + case "open": + return 1; + + case "closing": + return 2; + + case "closed": + default: + return 3; + } +} + +function _godot_js_rtc_datachannel_send(p_id, p_buffer, p_length, p_raw) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(132, 1, p_id, p_buffer, p_length, p_raw); + const ref = IDHandler.get(p_id); + if (!ref) { + return 1; + } + const bytes_array = new Uint8Array(p_length); + for (let i = 0; i < p_length; i++) { + bytes_array[i] = GodotRuntime.getHeapValue(p_buffer + i, "i8"); + } + if (p_raw) { + ref.send(bytes_array.buffer); + } else { + const string = new TextDecoder("utf-8").decode(bytes_array); + ref.send(string); + } + return 0; +} + +var GodotRTCPeerConnection = { + ConnectionState: { + new: 0, + connecting: 1, + connected: 2, + disconnected: 3, + failed: 4, + closed: 5 + }, + ConnectionStateCompat: { + new: 0, + checking: 1, + connected: 2, + completed: 2, + disconnected: 3, + failed: 4, + closed: 5 + }, + IceGatheringState: { + new: 0, + gathering: 1, + complete: 2 + }, + SignalingState: { + stable: 0, + "have-local-offer": 1, + "have-remote-offer": 2, + "have-local-pranswer": 3, + "have-remote-pranswer": 4, + closed: 5 + }, + create: function(config, onConnectionChange, onSignalingChange, onIceGatheringChange, onIceCandidate, onDataChannel) { + let conn = null; + try { + conn = new RTCPeerConnection(config); + } catch (e) { + GodotRuntime.error(e); + return 0; + } + const id = IDHandler.add(conn); + if ("connectionState" in conn && conn["connectionState"] !== undefined) { + conn.onconnectionstatechange = function(event) { + if (!IDHandler.get(id)) { + return; + } + onConnectionChange(GodotRTCPeerConnection.ConnectionState[conn.connectionState] || 0); + }; + } else { + conn.oniceconnectionstatechange = function(event) { + if (!IDHandler.get(id)) { + return; + } + onConnectionChange(GodotRTCPeerConnection.ConnectionStateCompat[conn.iceConnectionState] || 0); + }; + } + conn.onicegatheringstatechange = function(event) { + if (!IDHandler.get(id)) { + return; + } + onIceGatheringChange(GodotRTCPeerConnection.IceGatheringState[conn.iceGatheringState] || 0); + }; + conn.onsignalingstatechange = function(event) { + if (!IDHandler.get(id)) { + return; + } + onSignalingChange(GodotRTCPeerConnection.SignalingState[conn.signalingState] || 0); + }; + conn.onicecandidate = function(event) { + if (!IDHandler.get(id)) { + return; + } + const c = event.candidate; + if (!c || !c.candidate) { + return; + } + const candidate_str = GodotRuntime.allocString(c.candidate); + const mid_str = GodotRuntime.allocString(c.sdpMid); + onIceCandidate(mid_str, c.sdpMLineIndex, candidate_str); + GodotRuntime.free(candidate_str); + GodotRuntime.free(mid_str); + }; + conn.ondatachannel = function(event) { + if (!IDHandler.get(id)) { + return; + } + const cid = IDHandler.add(event.channel); + onDataChannel(cid); + }; + return id; + }, + destroy: function(p_id) { + const conn = IDHandler.get(p_id); + if (!conn) { + return; + } + conn.onconnectionstatechange = null; + conn.oniceconnectionstatechange = null; + conn.onicegatheringstatechange = null; + conn.onsignalingstatechange = null; + conn.onicecandidate = null; + conn.ondatachannel = null; + IDHandler.remove(p_id); + }, + onsession: function(p_id, callback, session) { + if (!IDHandler.get(p_id)) { + return; + } + const type_str = GodotRuntime.allocString(session.type); + const sdp_str = GodotRuntime.allocString(session.sdp); + callback(type_str, sdp_str); + GodotRuntime.free(type_str); + GodotRuntime.free(sdp_str); + }, + onerror: function(p_id, callback, error) { + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + GodotRuntime.error(error); + callback(); + } +}; + +function _godot_js_rtc_pc_close(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(133, 1, p_id); + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + ref.close(); +} + +function _godot_js_rtc_pc_create(p_config, p_ref, p_on_connection_state_change, p_on_ice_gathering_state_change, p_on_signaling_state_change, p_on_ice_candidate, p_on_datachannel) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(134, 1, p_config, p_ref, p_on_connection_state_change, p_on_ice_gathering_state_change, p_on_signaling_state_change, p_on_ice_candidate, p_on_datachannel); + const wrap = function(p_func) { + return GodotRuntime.get_func(p_func).bind(null, p_ref); + }; + return GodotRTCPeerConnection.create(JSON.parse(GodotRuntime.parseString(p_config)), wrap(p_on_connection_state_change), wrap(p_on_signaling_state_change), wrap(p_on_ice_gathering_state_change), wrap(p_on_ice_candidate), wrap(p_on_datachannel)); +} + +function _godot_js_rtc_pc_datachannel_create(p_id, p_label, p_config) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(135, 1, p_id, p_label, p_config); + try { + const ref = IDHandler.get(p_id); + if (!ref) { + return 0; + } + const label = GodotRuntime.parseString(p_label); + const config = JSON.parse(GodotRuntime.parseString(p_config)); + const channel = ref.createDataChannel(label, config); + return IDHandler.add(channel); + } catch (e) { + GodotRuntime.error(e); + return 0; + } +} + +function _godot_js_rtc_pc_destroy(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(136, 1, p_id); + GodotRTCPeerConnection.destroy(p_id); +} + +function _godot_js_rtc_pc_ice_candidate_add(p_id, p_mid_name, p_mline_idx, p_sdp) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(137, 1, p_id, p_mid_name, p_mline_idx, p_sdp); + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + const sdpMidName = GodotRuntime.parseString(p_mid_name); + const sdpName = GodotRuntime.parseString(p_sdp); + ref.addIceCandidate(new RTCIceCandidate({ + "candidate": sdpName, + "sdpMid": sdpMidName, + "sdpMlineIndex": p_mline_idx + })); +} + +function _godot_js_rtc_pc_local_description_set(p_id, p_type, p_sdp, p_obj, p_on_error) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(138, 1, p_id, p_type, p_sdp, p_obj, p_on_error); + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + const type = GodotRuntime.parseString(p_type); + const sdp = GodotRuntime.parseString(p_sdp); + const onerror = GodotRuntime.get_func(p_on_error).bind(null, p_obj); + ref.setLocalDescription({ + "sdp": sdp, + "type": type + }).catch(function(error) { + GodotRTCPeerConnection.onerror(p_id, onerror, error); + }); +} + +function _godot_js_rtc_pc_offer_create(p_id, p_obj, p_on_session, p_on_error) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(139, 1, p_id, p_obj, p_on_session, p_on_error); + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + const onsession = GodotRuntime.get_func(p_on_session).bind(null, p_obj); + const onerror = GodotRuntime.get_func(p_on_error).bind(null, p_obj); + ref.createOffer().then(function(session) { + GodotRTCPeerConnection.onsession(p_id, onsession, session); + }).catch(function(error) { + GodotRTCPeerConnection.onerror(p_id, onerror, error); + }); +} + +function _godot_js_rtc_pc_remote_description_set(p_id, p_type, p_sdp, p_obj, p_session_created, p_on_error) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(140, 1, p_id, p_type, p_sdp, p_obj, p_session_created, p_on_error); + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + const type = GodotRuntime.parseString(p_type); + const sdp = GodotRuntime.parseString(p_sdp); + const onerror = GodotRuntime.get_func(p_on_error).bind(null, p_obj); + const onsession = GodotRuntime.get_func(p_session_created).bind(null, p_obj); + ref.setRemoteDescription({ + "sdp": sdp, + "type": type + }).then(function() { + if (type !== "offer") { + return Promise.resolve(); + } + return ref.createAnswer().then(function(session) { + GodotRTCPeerConnection.onsession(p_id, onsession, session); + }); + }).catch(function(error) { + GodotRTCPeerConnection.onerror(p_id, onerror, error); + }); +} + +function _godot_js_tts_get_voices(p_callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(141, 1, p_callback); + const func = GodotRuntime.get_func(p_callback); + try { + const arr = []; + const voices = window.speechSynthesis.getVoices(); + for (let i = 0; i < voices.length; i++) { + arr.push(`${voices[i].lang};${voices[i].name}`); + } + const c_ptr = GodotRuntime.allocStringArray(arr); + func(arr.length, c_ptr); + GodotRuntime.freeStringArray(c_ptr, arr.length); + } catch (e) {} +} + +function _godot_js_tts_is_paused() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(142, 1); + return window.speechSynthesis.paused; +} + +function _godot_js_tts_is_speaking() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(143, 1); + return window.speechSynthesis.speaking; +} + +function _godot_js_tts_pause() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(144, 1); + window.speechSynthesis.pause(); +} + +function _godot_js_tts_resume() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(145, 1); + window.speechSynthesis.resume(); +} + +function _godot_js_tts_speak(p_text, p_voice, p_volume, p_pitch, p_rate, p_utterance_id, p_callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(146, 1, p_text, p_voice, p_volume, p_pitch, p_rate, p_utterance_id, p_callback); + const func = GodotRuntime.get_func(p_callback); + function listener_end(evt) { + evt.currentTarget.cb(1, evt.currentTarget.id, 0); + } + function listener_start(evt) { + evt.currentTarget.cb(0, evt.currentTarget.id, 0); + } + function listener_error(evt) { + evt.currentTarget.cb(2, evt.currentTarget.id, 0); + } + function listener_bound(evt) { + evt.currentTarget.cb(3, evt.currentTarget.id, evt.charIndex); + } + const utterance = new SpeechSynthesisUtterance(GodotRuntime.parseString(p_text)); + utterance.rate = p_rate; + utterance.pitch = p_pitch; + utterance.volume = p_volume / 100; + utterance.addEventListener("end", listener_end); + utterance.addEventListener("start", listener_start); + utterance.addEventListener("error", listener_error); + utterance.addEventListener("boundary", listener_bound); + utterance.id = p_utterance_id; + utterance.cb = func; + const voice = GodotRuntime.parseString(p_voice); + const voices = window.speechSynthesis.getVoices(); + for (let i = 0; i < voices.length; i++) { + if (voices[i].name === voice) { + utterance.voice = voices[i]; + break; + } + } + window.speechSynthesis.resume(); + window.speechSynthesis.speak(utterance); +} + +function _godot_js_tts_stop() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(147, 1); + window.speechSynthesis.cancel(); + window.speechSynthesis.resume(); +} + +var GodotWebSocket = { + _onopen: function(p_id, callback, event) { + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + const c_str = GodotRuntime.allocString(ref.protocol); + callback(c_str); + GodotRuntime.free(c_str); + }, + _onmessage: function(p_id, callback, event) { + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + let buffer; + let is_string = 0; + if (event.data instanceof ArrayBuffer) { + buffer = new Uint8Array(event.data); + } else if (event.data instanceof Blob) { + GodotRuntime.error("Blob type not supported"); + return; + } else if (typeof event.data === "string") { + is_string = 1; + const enc = new TextEncoder("utf-8"); + buffer = new Uint8Array(enc.encode(event.data)); + } else { + GodotRuntime.error("Unknown message type"); + return; + } + const len = buffer.length * buffer.BYTES_PER_ELEMENT; + const out = GodotRuntime.malloc(len); + GROWABLE_HEAP_U8().set(buffer, out); + callback(out, len, is_string); + GodotRuntime.free(out); + }, + _onerror: function(p_id, callback, event) { + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + callback(); + }, + _onclose: function(p_id, callback, event) { + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + const c_str = GodotRuntime.allocString(event.reason); + callback(event.code, c_str, event.wasClean ? 1 : 0); + GodotRuntime.free(c_str); + }, + send: function(p_id, p_data) { + const ref = IDHandler.get(p_id); + if (!ref || ref.readyState !== ref.OPEN) { + return 1; + } + ref.send(p_data); + return 0; + }, + bufferedAmount: function(p_id) { + const ref = IDHandler.get(p_id); + if (!ref) { + return 0; + } + return ref.bufferedAmount; + }, + create: function(socket, p_on_open, p_on_message, p_on_error, p_on_close) { + const id = IDHandler.add(socket); + socket.onopen = GodotWebSocket._onopen.bind(null, id, p_on_open); + socket.onmessage = GodotWebSocket._onmessage.bind(null, id, p_on_message); + socket.onerror = GodotWebSocket._onerror.bind(null, id, p_on_error); + socket.onclose = GodotWebSocket._onclose.bind(null, id, p_on_close); + return id; + }, + close: function(p_id, p_code, p_reason) { + const ref = IDHandler.get(p_id); + if (ref && ref.readyState < ref.CLOSING) { + const code = p_code; + const reason = p_reason; + ref.close(code, reason); + } + }, + destroy: function(p_id) { + const ref = IDHandler.get(p_id); + if (!ref) { + return; + } + GodotWebSocket.close(p_id, 3001, "destroyed"); + IDHandler.remove(p_id); + ref.onopen = null; + ref.onmessage = null; + ref.onerror = null; + ref.onclose = null; + } +}; + +function _godot_js_websocket_buffered_amount(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(148, 1, p_id); + return GodotWebSocket.bufferedAmount(p_id); +} + +function _godot_js_websocket_close(p_id, p_code, p_reason) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(149, 1, p_id, p_code, p_reason); + const code = p_code; + const reason = GodotRuntime.parseString(p_reason); + GodotWebSocket.close(p_id, code, reason); +} + +function _godot_js_websocket_create(p_ref, p_url, p_proto, p_on_open, p_on_message, p_on_error, p_on_close) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(150, 1, p_ref, p_url, p_proto, p_on_open, p_on_message, p_on_error, p_on_close); + const on_open = GodotRuntime.get_func(p_on_open).bind(null, p_ref); + const on_message = GodotRuntime.get_func(p_on_message).bind(null, p_ref); + const on_error = GodotRuntime.get_func(p_on_error).bind(null, p_ref); + const on_close = GodotRuntime.get_func(p_on_close).bind(null, p_ref); + const url = GodotRuntime.parseString(p_url); + const protos = GodotRuntime.parseString(p_proto); + let socket = null; + try { + if (protos) { + socket = new WebSocket(url, protos.split(",")); + } else { + socket = new WebSocket(url); + } + } catch (e) { + return 0; + } + socket.binaryType = "arraybuffer"; + return GodotWebSocket.create(socket, on_open, on_message, on_error, on_close); +} + +function _godot_js_websocket_destroy(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(151, 1, p_id); + GodotWebSocket.destroy(p_id); +} + +function _godot_js_websocket_send(p_id, p_buf, p_buf_len, p_raw) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(152, 1, p_id, p_buf, p_buf_len, p_raw); + const bytes_array = new Uint8Array(p_buf_len); + let i = 0; + for (i = 0; i < p_buf_len; i++) { + bytes_array[i] = GodotRuntime.getHeapValue(p_buf + i, "i8"); + } + let out = bytes_array.buffer; + if (!p_raw) { + out = new TextDecoder("utf-8").decode(bytes_array); + } + return GodotWebSocket.send(p_id, out); +} + +var GodotJSWrapper = { + proxies: null, + cb_ret: null, + MyProxy: function(val) { + const id = IDHandler.add(this); + GodotJSWrapper.proxies.set(val, id); + let refs = 1; + this.ref = function() { + refs++; + }; + this.unref = function() { + refs--; + if (refs === 0) { + IDHandler.remove(id); + GodotJSWrapper.proxies.delete(val); + } + }; + this.get_val = function() { + return val; + }; + this.get_id = function() { + return id; + }; + }, + get_proxied: function(val) { + const id = GodotJSWrapper.proxies.get(val); + if (id === undefined) { + const proxy = new GodotJSWrapper.MyProxy(val); + return proxy.get_id(); + } + IDHandler.get(id).ref(); + return id; + }, + get_proxied_value: function(id) { + const proxy = IDHandler.get(id); + if (proxy === undefined) { + return undefined; + } + return proxy.get_val(); + }, + variant2js: function(type, val) { + switch (type) { + case 0: + return null; + + case 1: + return !!GodotRuntime.getHeapValue(val, "i64"); + + case 2: + return GodotRuntime.getHeapValue(val, "i64"); + + case 3: + return GodotRuntime.getHeapValue(val, "double"); + + case 4: + return GodotRuntime.parseString(GodotRuntime.getHeapValue(val, "*")); + + case 24: + return GodotJSWrapper.get_proxied_value(GodotRuntime.getHeapValue(val, "i64")); + + default: + return undefined; + } + }, + js2variant: function(p_val, p_exchange) { + if (p_val === undefined || p_val === null) { + return 0; + } + const type = typeof p_val; + if (type === "boolean") { + GodotRuntime.setHeapValue(p_exchange, p_val, "i64"); + return 1; + } else if (type === "number") { + if (Number.isInteger(p_val)) { + GodotRuntime.setHeapValue(p_exchange, p_val, "i64"); + return 2; + } + GodotRuntime.setHeapValue(p_exchange, p_val, "double"); + return 3; + } else if (type === "string") { + const c_str = GodotRuntime.allocString(p_val); + GodotRuntime.setHeapValue(p_exchange, c_str, "*"); + return 4; + } + const id = GodotJSWrapper.get_proxied(p_val); + GodotRuntime.setHeapValue(p_exchange, id, "i64"); + return 24; + } +}; + +function _godot_js_wrapper_create_cb(p_ref, p_func) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(153, 1, p_ref, p_func); + const func = GodotRuntime.get_func(p_func); + let id = 0; + const cb = function() { + if (!GodotJSWrapper.get_proxied_value(id)) { + return undefined; + } + GodotJSWrapper.cb_ret = null; + const args = Array.from(arguments); + const argsProxy = new GodotJSWrapper.MyProxy(args); + func(p_ref, argsProxy.get_id(), args.length); + argsProxy.unref(); + const ret = GodotJSWrapper.cb_ret; + GodotJSWrapper.cb_ret = null; + return ret; + }; + id = GodotJSWrapper.get_proxied(cb); + return id; +} + +function _godot_js_wrapper_create_object(p_object, p_args, p_argc, p_convert_callback, p_exchange, p_lock, p_free_lock_callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(154, 1, p_object, p_args, p_argc, p_convert_callback, p_exchange, p_lock, p_free_lock_callback); + const name = GodotRuntime.parseString(p_object); + if (typeof window[name] === "undefined") { + return -1; + } + const convert = GodotRuntime.get_func(p_convert_callback); + const freeLock = GodotRuntime.get_func(p_free_lock_callback); + const args = new Array(p_argc); + for (let i = 0; i < p_argc; i++) { + const type = convert(p_args, i, p_exchange, p_lock); + const lock = GodotRuntime.getHeapValue(p_lock, "*"); + args[i] = GodotJSWrapper.variant2js(type, p_exchange); + if (lock) { + freeLock(p_lock, type); + } + } + try { + const res = new window[name](...args); + return GodotJSWrapper.js2variant(res, p_exchange); + } catch (e) { + GodotRuntime.error(`Error calling constructor ${name} with args:`, args, "error:", e); + return -1; + } +} + +function _godot_js_wrapper_interface_get(p_name) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(155, 1, p_name); + const name = GodotRuntime.parseString(p_name); + if (typeof window[name] !== "undefined") { + return GodotJSWrapper.get_proxied(window[name]); + } + return 0; +} + +function _godot_js_wrapper_object_call(p_id, p_method, p_args, p_argc, p_convert_callback, p_exchange, p_lock, p_free_lock_callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(156, 1, p_id, p_method, p_args, p_argc, p_convert_callback, p_exchange, p_lock, p_free_lock_callback); + const obj = GodotJSWrapper.get_proxied_value(p_id); + if (obj === undefined) { + return -1; + } + const method = GodotRuntime.parseString(p_method); + const convert = GodotRuntime.get_func(p_convert_callback); + const freeLock = GodotRuntime.get_func(p_free_lock_callback); + const args = new Array(p_argc); + for (let i = 0; i < p_argc; i++) { + const type = convert(p_args, i, p_exchange, p_lock); + const lock = GodotRuntime.getHeapValue(p_lock, "*"); + args[i] = GodotJSWrapper.variant2js(type, p_exchange); + if (lock) { + freeLock(p_lock, type); + } + } + try { + const res = obj[method](...args); + return GodotJSWrapper.js2variant(res, p_exchange); + } catch (e) { + GodotRuntime.error(`Error calling method ${method} on:`, obj, "error:", e); + return -1; + } +} + +function _godot_js_wrapper_object_get(p_id, p_exchange, p_prop) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(157, 1, p_id, p_exchange, p_prop); + const obj = GodotJSWrapper.get_proxied_value(p_id); + if (obj === undefined) { + return 0; + } + if (p_prop) { + const prop = GodotRuntime.parseString(p_prop); + try { + return GodotJSWrapper.js2variant(obj[prop], p_exchange); + } catch (e) { + GodotRuntime.error(`Error getting variable ${prop} on object`, obj); + return 0; + } + } + return GodotJSWrapper.js2variant(obj, p_exchange); +} + +function _godot_js_wrapper_object_getvar(p_id, p_type, p_exchange) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(158, 1, p_id, p_type, p_exchange); + const obj = GodotJSWrapper.get_proxied_value(p_id); + if (obj === undefined) { + return -1; + } + const prop = GodotJSWrapper.variant2js(p_type, p_exchange); + if (prop === undefined || prop === null) { + return -1; + } + try { + return GodotJSWrapper.js2variant(obj[prop], p_exchange); + } catch (e) { + GodotRuntime.error(`Error getting variable ${prop} on object`, obj, e); + return -1; + } +} + +function _godot_js_wrapper_object_set(p_id, p_name, p_type, p_exchange) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(159, 1, p_id, p_name, p_type, p_exchange); + const obj = GodotJSWrapper.get_proxied_value(p_id); + if (obj === undefined) { + return; + } + const name = GodotRuntime.parseString(p_name); + try { + obj[name] = GodotJSWrapper.variant2js(p_type, p_exchange); + } catch (e) { + GodotRuntime.error(`Error setting variable ${name} on object`, obj); + } +} + +function _godot_js_wrapper_object_set_cb_ret(p_val_type, p_val_ex) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(160, 1, p_val_type, p_val_ex); + GodotJSWrapper.cb_ret = GodotJSWrapper.variant2js(p_val_type, p_val_ex); +} + +function _godot_js_wrapper_object_setvar(p_id, p_key_type, p_key_ex, p_val_type, p_val_ex) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(161, 1, p_id, p_key_type, p_key_ex, p_val_type, p_val_ex); + const obj = GodotJSWrapper.get_proxied_value(p_id); + if (obj === undefined) { + return -1; + } + const key = GodotJSWrapper.variant2js(p_key_type, p_key_ex); + try { + obj[key] = GodotJSWrapper.variant2js(p_val_type, p_val_ex); + return 0; + } catch (e) { + GodotRuntime.error(`Error setting variable ${key} on object`, obj); + return -1; + } +} + +function _godot_js_wrapper_object_unref(p_id) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(162, 1, p_id); + const proxy = IDHandler.get(p_id); + if (proxy !== undefined) { + proxy.unref(); + } +} + +var GodotWebGL2 = {}; + +function _godot_webgl2_glFramebufferTextureMultiviewOVR(target, attachment, texture, level, base_view_index, num_views) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(163, 1, target, attachment, texture, level, base_view_index, num_views); + const context = GL.currentContext; + if (typeof context.multiviewExt === "undefined") { + const ext = context.GLctx.getExtension("OVR_multiview2"); + if (!ext) { + GodotRuntime.error("Trying to call glFramebufferTextureMultiviewOVR() without the OVR_multiview2 extension"); + return; + } + context.multiviewExt = ext; + } + const ext = context.multiviewExt; + ext.framebufferTextureMultiviewOVR(target, attachment, GL.textures[texture], level, base_view_index, num_views); +} + +function _godot_webgl2_glGetBufferSubData(target, offset, size, data) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(164, 1, target, offset, size, data); + const gl_context_handle = _emscripten_webgl_get_current_context(); + const gl = GL.getContext(gl_context_handle); + if (gl) { + gl.GLctx["getBufferSubData"](target, offset, GROWABLE_HEAP_U8(), data, size); + } +} + +var GodotWebXR = { + gl: null, + session: null, + gl_binding: null, + layer: null, + space: null, + frame: null, + pose: null, + view_count: 1, + input_sources: [ , , , , , , , , , , , , , , , ], + touches: [ , , , , ], + onsimpleevent: null, + orig_requestAnimationFrame: null, + requestAnimationFrame: callback => { + if (GodotWebXR.session && GodotWebXR.space) { + const onFrame = function(time, frame) { + GodotWebXR.frame = frame; + GodotWebXR.pose = frame.getViewerPose(GodotWebXR.space); + callback(time); + GodotWebXR.frame = null; + GodotWebXR.pose = null; + }; + GodotWebXR.session.requestAnimationFrame(onFrame); + } else { + GodotWebXR.orig_requestAnimationFrame(callback); + } + }, + monkeyPatchRequestAnimationFrame: enable => { + if (GodotWebXR.orig_requestAnimationFrame === null) { + GodotWebXR.orig_requestAnimationFrame = Browser.requestAnimationFrame; + } + Browser.requestAnimationFrame = enable ? GodotWebXR.requestAnimationFrame : GodotWebXR.orig_requestAnimationFrame; + }, + pauseResumeMainLoop: () => { + Browser.mainLoop.pause(); + runtimeKeepalivePush(); + window.setTimeout(function() { + runtimeKeepalivePop(); + Browser.mainLoop.resume(); + }, 0); + }, + getLayer: () => { + const new_view_count = GodotWebXR.pose ? GodotWebXR.pose.views.length : 1; + let layer = GodotWebXR.layer; + if (layer && GodotWebXR.view_count === new_view_count) { + return layer; + } + if (!GodotWebXR.session || !GodotWebXR.gl_binding) { + return null; + } + const gl = GodotWebXR.gl; + layer = GodotWebXR.gl_binding.createProjectionLayer({ + textureType: new_view_count > 1 ? "texture-array" : "texture", + colorFormat: gl.RGBA8, + depthFormat: gl.DEPTH_COMPONENT24 + }); + GodotWebXR.session.updateRenderState({ + layers: [ layer ] + }); + GodotWebXR.layer = layer; + GodotWebXR.view_count = new_view_count; + return layer; + }, + getSubImage: () => { + if (!GodotWebXR.pose) { + return null; + } + const layer = GodotWebXR.getLayer(); + if (layer === null) { + return null; + } + return GodotWebXR.gl_binding.getViewSubImage(layer, GodotWebXR.pose.views[0]); + }, + getTextureId: texture => { + if (texture.name !== undefined) { + return texture.name; + } + const id = GL.getNewId(GL.textures); + texture.name = id; + GL.textures[id] = texture; + return id; + }, + addInputSource: input_source => { + let name = -1; + if (input_source.targetRayMode === "tracked-pointer" && input_source.handedness === "left") { + name = 0; + } else if (input_source.targetRayMode === "tracked-pointer" && input_source.handedness === "right") { + name = 1; + } else { + for (let i = 2; i < 16; i++) { + if (!GodotWebXR.input_sources[i]) { + name = i; + break; + } + } + } + if (name >= 0) { + GodotWebXR.input_sources[name] = input_source; + input_source.name = name; + if (input_source.targetRayMode === "screen") { + let touch_index = -1; + for (let i = 0; i < 5; i++) { + if (!GodotWebXR.touches[i]) { + touch_index = i; + break; + } + } + if (touch_index >= 0) { + GodotWebXR.touches[touch_index] = input_source; + input_source.touch_index = touch_index; + } + } + } + return name; + }, + removeInputSource: input_source => { + if (input_source.name !== undefined) { + const name = input_source.name; + if (name >= 0 && name < 16) { + GodotWebXR.input_sources[name] = null; + } + if (input_source.touch_index !== undefined) { + const touch_index = input_source.touch_index; + if (touch_index >= 0 && touch_index < 5) { + GodotWebXR.touches[touch_index] = null; + } + } + return name; + } + return -1; + }, + getInputSourceId: input_source => { + if (input_source !== undefined) { + return input_source.name; + } + return -1; + }, + getTouchIndex: input_source => { + if (input_source.touch_index !== undefined) { + return input_source.touch_index; + } + return -1; + } +}; + +function _godot_webxr_get_bounds_geometry(r_points) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(165, 1, r_points); + if (!GodotWebXR.space || !GodotWebXR.space.boundsGeometry) { + return 0; + } + const point_count = GodotWebXR.space.boundsGeometry.length; + if (point_count === 0) { + return 0; + } + const buf = GodotRuntime.malloc(point_count * 3 * 4); + for (let i = 0; i < point_count; i++) { + const point = GodotWebXR.space.boundsGeometry[i]; + GodotRuntime.setHeapValue(buf + (i * 3 + 0) * 4, point.x, "float"); + GodotRuntime.setHeapValue(buf + (i * 3 + 1) * 4, point.y, "float"); + GodotRuntime.setHeapValue(buf + (i * 3 + 2) * 4, point.z, "float"); + } + GodotRuntime.setHeapValue(r_points, buf, "i32"); + return point_count; +} + +function _godot_webxr_get_color_texture() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(166, 1); + const subimage = GodotWebXR.getSubImage(); + if (subimage === null) { + return 0; + } + return GodotWebXR.getTextureId(subimage.colorTexture); +} + +function _godot_webxr_get_depth_texture() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(167, 1); + const subimage = GodotWebXR.getSubImage(); + if (subimage === null) { + return 0; + } + if (!subimage.depthStencilTexture) { + return 0; + } + return GodotWebXR.getTextureId(subimage.depthStencilTexture); +} + +function _godot_webxr_get_frame_rate() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(168, 1); + if (!GodotWebXR.session || GodotWebXR.session.frameRate === undefined) { + return 0; + } + return GodotWebXR.session.frameRate; +} + +function _godot_webxr_get_projection_for_view(p_view, r_transform) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(169, 1, p_view, r_transform); + if (!GodotWebXR.session || !GodotWebXR.pose) { + return false; + } + const matrix = GodotWebXR.pose.views[p_view].projectionMatrix; + for (let i = 0; i < 16; i++) { + GodotRuntime.setHeapValue(r_transform + i * 4, matrix[i], "float"); + } + return true; +} + +function _godot_webxr_get_render_target_size(r_size) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(170, 1, r_size); + const subimage = GodotWebXR.getSubImage(); + if (subimage === null) { + return false; + } + GodotRuntime.setHeapValue(r_size + 0, subimage.viewport.width, "i32"); + GodotRuntime.setHeapValue(r_size + 4, subimage.viewport.height, "i32"); + return true; +} + +function _godot_webxr_get_supported_frame_rates(r_frame_rates) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(171, 1, r_frame_rates); + if (!GodotWebXR.session || GodotWebXR.session.supportedFrameRates === undefined) { + return 0; + } + const frame_rate_count = GodotWebXR.session.supportedFrameRates.length; + if (frame_rate_count === 0) { + return 0; + } + const buf = GodotRuntime.malloc(frame_rate_count * 4); + for (let i = 0; i < frame_rate_count; i++) { + GodotRuntime.setHeapValue(buf + i * 4, GodotWebXR.session.supportedFrameRates[i], "float"); + } + GodotRuntime.setHeapValue(r_frame_rates, buf, "i32"); + return frame_rate_count; +} + +function _godot_webxr_get_transform_for_view(p_view, r_transform) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(172, 1, p_view, r_transform); + if (!GodotWebXR.session || !GodotWebXR.pose) { + return false; + } + const views = GodotWebXR.pose.views; + let matrix; + if (p_view >= 0) { + matrix = views[p_view].transform.matrix; + } else { + matrix = GodotWebXR.pose.transform.matrix; + } + for (let i = 0; i < 16; i++) { + GodotRuntime.setHeapValue(r_transform + i * 4, matrix[i], "float"); + } + return true; +} + +function _godot_webxr_get_velocity_texture() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(173, 1); + const subimage = GodotWebXR.getSubImage(); + if (subimage === null) { + return 0; + } + if (!subimage.motionVectorTexture) { + return 0; + } + return GodotWebXR.getTextureId(subimage.motionVectorTexture); +} + +function _godot_webxr_get_view_count() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(174, 1); + if (!GodotWebXR.session || !GodotWebXR.pose) { + return 1; + } + const view_count = GodotWebXR.pose.views.length; + return view_count > 0 ? view_count : 1; +} + +function _godot_webxr_get_visibility_state() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(175, 1); + if (!GodotWebXR.session || !GodotWebXR.session.visibilityState) { + return 0; + } + return GodotRuntime.allocString(GodotWebXR.session.visibilityState); +} + +function _godot_webxr_initialize(p_session_mode, p_required_features, p_optional_features, p_requested_reference_spaces, p_on_session_started, p_on_session_ended, p_on_session_failed, p_on_input_event, p_on_simple_event) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(176, 1, p_session_mode, p_required_features, p_optional_features, p_requested_reference_spaces, p_on_session_started, p_on_session_ended, p_on_session_failed, p_on_input_event, p_on_simple_event); + GodotWebXR.monkeyPatchRequestAnimationFrame(true); + const session_mode = GodotRuntime.parseString(p_session_mode); + const required_features = GodotRuntime.parseString(p_required_features).split(",").map(s => s.trim()).filter(s => s !== ""); + const optional_features = GodotRuntime.parseString(p_optional_features).split(",").map(s => s.trim()).filter(s => s !== ""); + const requested_reference_space_types = GodotRuntime.parseString(p_requested_reference_spaces).split(",").map(s => s.trim()); + const onstarted = GodotRuntime.get_func(p_on_session_started); + const onended = GodotRuntime.get_func(p_on_session_ended); + const onfailed = GodotRuntime.get_func(p_on_session_failed); + const oninputevent = GodotRuntime.get_func(p_on_input_event); + const onsimpleevent = GodotRuntime.get_func(p_on_simple_event); + const session_init = {}; + if (required_features.length > 0) { + session_init["requiredFeatures"] = required_features; + } + if (optional_features.length > 0) { + session_init["optionalFeatures"] = optional_features; + } + navigator.xr.requestSession(session_mode, session_init).then(function(session) { + GodotWebXR.session = session; + session.addEventListener("end", function(evt) { + onended(); + }); + session.addEventListener("inputsourceschange", function(evt) { + evt.added.forEach(GodotWebXR.addInputSource); + evt.removed.forEach(GodotWebXR.removeInputSource); + }); + [ "selectstart", "selectend", "squeezestart", "squeezeend" ].forEach((input_event, index) => { + session.addEventListener(input_event, function(evt) { + GodotWebXR.frame = evt.frame; + oninputevent(index, GodotWebXR.getInputSourceId(evt.inputSource)); + GodotWebXR.frame = null; + }); + }); + session.addEventListener("visibilitychange", function(evt) { + const c_str = GodotRuntime.allocString("visibility_state_changed"); + onsimpleevent(c_str); + GodotRuntime.free(c_str); + }); + GodotWebXR.onsimpleevent = onsimpleevent; + const gl_context_handle = _emscripten_webgl_get_current_context(); + const gl = GL.getContext(gl_context_handle).GLctx; + GodotWebXR.gl = gl; + gl.makeXRCompatible().then(function() { + GodotWebXR.gl_binding = new XRWebGLBinding(session, gl); + GodotWebXR.getLayer(); + function onReferenceSpaceSuccess(reference_space, reference_space_type) { + GodotWebXR.space = reference_space; + reference_space.onreset = function(evt) { + const c_str = GodotRuntime.allocString("reference_space_reset"); + onsimpleevent(c_str); + GodotRuntime.free(c_str); + }; + GodotWebXR.pauseResumeMainLoop(); + window.setTimeout(function() { + const c_str = GodotRuntime.allocString(reference_space_type); + onstarted(c_str); + GodotRuntime.free(c_str); + }, 0); + } + function requestReferenceSpace() { + const reference_space_type = requested_reference_space_types.shift(); + session.requestReferenceSpace(reference_space_type).then(refSpace => { + onReferenceSpaceSuccess(refSpace, reference_space_type); + }).catch(() => { + if (requested_reference_space_types.length === 0) { + const c_str = GodotRuntime.allocString("Unable to get any of the requested reference space types"); + onfailed(c_str); + GodotRuntime.free(c_str); + } else { + requestReferenceSpace(); + } + }); + } + requestReferenceSpace(); + }).catch(function(error) { + const c_str = GodotRuntime.allocString(`Unable to make WebGL context compatible with WebXR: ${error}`); + onfailed(c_str); + GodotRuntime.free(c_str); + }); + }).catch(function(error) { + const c_str = GodotRuntime.allocString(`Unable to start session: ${error}`); + onfailed(c_str); + GodotRuntime.free(c_str); + }); +} + +function _godot_webxr_is_session_supported(p_session_mode, p_callback) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(177, 1, p_session_mode, p_callback); + const session_mode = GodotRuntime.parseString(p_session_mode); + const cb = GodotRuntime.get_func(p_callback); + if (navigator.xr) { + navigator.xr.isSessionSupported(session_mode).then(function(supported) { + const c_str = GodotRuntime.allocString(session_mode); + cb(c_str, supported ? 1 : 0); + GodotRuntime.free(c_str); + }); + } else { + const c_str = GodotRuntime.allocString(session_mode); + cb(c_str, 0); + GodotRuntime.free(c_str); + } +} + +function _godot_webxr_is_supported() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(178, 1); + return !!navigator.xr; +} + +function _godot_webxr_uninitialize() { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(179, 1); + if (GodotWebXR.session) { + GodotWebXR.session.end().catch(e => {}); + } + GodotWebXR.session = null; + GodotWebXR.gl_binding = null; + GodotWebXR.layer = null; + GodotWebXR.space = null; + GodotWebXR.frame = null; + GodotWebXR.pose = null; + GodotWebXR.view_count = 1; + GodotWebXR.input_sources = new Array(16); + GodotWebXR.touches = new Array(5); + GodotWebXR.onsimpleevent = null; + GodotWebXR.monkeyPatchRequestAnimationFrame(false); + GodotWebXR.pauseResumeMainLoop(); +} + +function _godot_webxr_update_input_source(p_input_source_id, r_target_pose, r_target_ray_mode, r_touch_index, r_has_grip_pose, r_grip_pose, r_has_standard_mapping, r_button_count, r_buttons, r_axes_count, r_axes) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(180, 1, p_input_source_id, r_target_pose, r_target_ray_mode, r_touch_index, r_has_grip_pose, r_grip_pose, r_has_standard_mapping, r_button_count, r_buttons, r_axes_count, r_axes); + if (!GodotWebXR.session || !GodotWebXR.frame) { + return 0; + } + if (p_input_source_id < 0 || p_input_source_id >= GodotWebXR.input_sources.length || !GodotWebXR.input_sources[p_input_source_id]) { + return false; + } + const input_source = GodotWebXR.input_sources[p_input_source_id]; + const frame = GodotWebXR.frame; + const space = GodotWebXR.space; + const target_pose = frame.getPose(input_source.targetRaySpace, space); + if (!target_pose) { + return false; + } + const target_pose_matrix = target_pose.transform.matrix; + for (let i = 0; i < 16; i++) { + GodotRuntime.setHeapValue(r_target_pose + i * 4, target_pose_matrix[i], "float"); + } + let target_ray_mode = 0; + switch (input_source.targetRayMode) { + case "gaze": + target_ray_mode = 1; + break; + + case "tracked-pointer": + target_ray_mode = 2; + break; + + case "screen": + target_ray_mode = 3; + break; + + default: + } + GodotRuntime.setHeapValue(r_target_ray_mode, target_ray_mode, "i32"); + GodotRuntime.setHeapValue(r_touch_index, GodotWebXR.getTouchIndex(input_source), "i32"); + let has_grip_pose = false; + if (input_source.gripSpace) { + const grip_pose = frame.getPose(input_source.gripSpace, space); + if (grip_pose) { + const grip_pose_matrix = grip_pose.transform.matrix; + for (let i = 0; i < 16; i++) { + GodotRuntime.setHeapValue(r_grip_pose + i * 4, grip_pose_matrix[i], "float"); + } + has_grip_pose = true; + } + } + GodotRuntime.setHeapValue(r_has_grip_pose, has_grip_pose ? 1 : 0, "i32"); + let has_standard_mapping = false; + let button_count = 0; + let axes_count = 0; + if (input_source.gamepad) { + if (input_source.gamepad.mapping === "xr-standard") { + has_standard_mapping = true; + } + button_count = Math.min(input_source.gamepad.buttons.length, 10); + for (let i = 0; i < button_count; i++) { + GodotRuntime.setHeapValue(r_buttons + i * 4, input_source.gamepad.buttons[i].value, "float"); + } + axes_count = Math.min(input_source.gamepad.axes.length, 10); + for (let i = 0; i < axes_count; i++) { + GodotRuntime.setHeapValue(r_axes + i * 4, input_source.gamepad.axes[i], "float"); + } + } + GodotRuntime.setHeapValue(r_has_standard_mapping, has_standard_mapping ? 1 : 0, "i32"); + GodotRuntime.setHeapValue(r_button_count, button_count, "i32"); + GodotRuntime.setHeapValue(r_axes_count, axes_count, "i32"); + return true; +} + +function _godot_webxr_update_target_frame_rate(p_frame_rate) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(181, 1, p_frame_rate); + if (!GodotWebXR.session || GodotWebXR.session.updateTargetFrameRate === undefined) { + return; + } + GodotWebXR.session.updateTargetFrameRate(p_frame_rate).then(() => { + const c_str = GodotRuntime.allocString("display_refresh_rate_changed"); + GodotWebXR.onsimpleevent(c_str); + GodotRuntime.free(c_str); + }); +} + +function arraySum(array, index) { + var sum = 0; + for (var i = 0; i <= index; sum += array[i++]) {} + return sum; +} + +var MONTH_DAYS_LEAP = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; + +var MONTH_DAYS_REGULAR = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; + +function addDays(date, days) { + var newDate = new Date(date.getTime()); + while (days > 0) { + var leap = isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth]; + if (days > daysInCurrentMonth - newDate.getDate()) { + days -= daysInCurrentMonth - newDate.getDate() + 1; + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth + 1); + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear() + 1); + } + } else { + newDate.setDate(newDate.getDate() + days); + return newDate; + } + } + return newDate; +} + +function writeArrayToMemory(array, buffer) { + assert(array.length >= 0, "writeArrayToMemory array must have a length (should be an array or typed array)"); + GROWABLE_HEAP_I8().set(array, buffer); +} + +function _strftime(s, maxsize, format, tm) { + var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >> 2]; + var date = { + tm_sec: GROWABLE_HEAP_I32()[tm >> 2], + tm_min: GROWABLE_HEAP_I32()[tm + 4 >> 2], + tm_hour: GROWABLE_HEAP_I32()[tm + 8 >> 2], + tm_mday: GROWABLE_HEAP_I32()[tm + 12 >> 2], + tm_mon: GROWABLE_HEAP_I32()[tm + 16 >> 2], + tm_year: GROWABLE_HEAP_I32()[tm + 20 >> 2], + tm_wday: GROWABLE_HEAP_I32()[tm + 24 >> 2], + tm_yday: GROWABLE_HEAP_I32()[tm + 28 >> 2], + tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >> 2], + tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >> 2], + tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" + }; + var pattern = UTF8ToString(format); + var EXPANSION_RULES_1 = { + "%c": "%a %b %d %H:%M:%S %Y", + "%D": "%m/%d/%y", + "%F": "%Y-%m-%d", + "%h": "%b", + "%r": "%I:%M:%S %p", + "%R": "%H:%M", + "%T": "%H:%M:%S", + "%x": "%m/%d/%y", + "%X": "%H:%M:%S", + "%Ec": "%c", + "%EC": "%C", + "%Ex": "%m/%d/%y", + "%EX": "%H:%M:%S", + "%Ey": "%y", + "%EY": "%Y", + "%Od": "%d", + "%Oe": "%e", + "%OH": "%H", + "%OI": "%I", + "%Om": "%m", + "%OM": "%M", + "%OS": "%S", + "%Ou": "%u", + "%OU": "%U", + "%OV": "%V", + "%Ow": "%w", + "%OW": "%W", + "%Oy": "%y" + }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); + } + var WEEKDAYS = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; + var MONTHS = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; + function leadingSomething(value, digits, character) { + var str = typeof value == "number" ? value.toString() : value || ""; + while (str.length < digits) { + str = character[0] + str; + } + return str; + } + function leadingNulls(value, digits) { + return leadingSomething(value, digits, "0"); + } + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : value > 0 ? 1 : 0; + } + var compare; + if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { + if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { + compare = sgn(date1.getDate() - date2.getDate()); + } + } + return compare; + } + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: + return new Date(janFourth.getFullYear() - 1, 11, 29); + + case 1: + return janFourth; + + case 2: + return new Date(janFourth.getFullYear(), 0, 3); + + case 3: + return new Date(janFourth.getFullYear(), 0, 2); + + case 4: + return new Date(janFourth.getFullYear(), 0, 1); + + case 5: + return new Date(janFourth.getFullYear() - 1, 11, 31); + + case 6: + return new Date(janFourth.getFullYear() - 1, 11, 30); + } + } + function getWeekBasedYear(date) { + var thisDate = addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday); + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear() + 1; + } + return thisDate.getFullYear(); + } + return thisDate.getFullYear() - 1; + } + var EXPANSION_RULES_2 = { + "%a": function(date) { + return WEEKDAYS[date.tm_wday].substring(0, 3); + }, + "%A": function(date) { + return WEEKDAYS[date.tm_wday]; + }, + "%b": function(date) { + return MONTHS[date.tm_mon].substring(0, 3); + }, + "%B": function(date) { + return MONTHS[date.tm_mon]; + }, + "%C": function(date) { + var year = date.tm_year + 1900; + return leadingNulls(year / 100 | 0, 2); + }, + "%d": function(date) { + return leadingNulls(date.tm_mday, 2); + }, + "%e": function(date) { + return leadingSomething(date.tm_mday, 2, " "); + }, + "%g": function(date) { + return getWeekBasedYear(date).toString().substring(2); + }, + "%G": function(date) { + return getWeekBasedYear(date); + }, + "%H": function(date) { + return leadingNulls(date.tm_hour, 2); + }, + "%I": function(date) { + var twelveHour = date.tm_hour; + if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12; + return leadingNulls(twelveHour, 2); + }, + "%j": function(date) { + return leadingNulls(date.tm_mday + arraySum(isLeapYear(date.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date.tm_mon - 1), 3); + }, + "%m": function(date) { + return leadingNulls(date.tm_mon + 1, 2); + }, + "%M": function(date) { + return leadingNulls(date.tm_min, 2); + }, + "%n": function() { + return "\n"; + }, + "%p": function(date) { + if (date.tm_hour >= 0 && date.tm_hour < 12) { + return "AM"; + } + return "PM"; + }, + "%S": function(date) { + return leadingNulls(date.tm_sec, 2); + }, + "%t": function() { + return "\t"; + }, + "%u": function(date) { + return date.tm_wday || 7; + }, + "%U": function(date) { + var days = date.tm_yday + 7 - date.tm_wday; + return leadingNulls(Math.floor(days / 7), 2); + }, + "%V": function(date) { + var val = Math.floor((date.tm_yday + 7 - (date.tm_wday + 6) % 7) / 7); + if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) { + val++; + } + if (!val) { + val = 52; + var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7; + if (dec31 == 4 || dec31 == 5 && isLeapYear(date.tm_year % 400 - 1)) { + val++; + } + } else if (val == 53) { + var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7; + if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date.tm_year))) val = 1; + } + return leadingNulls(val, 2); + }, + "%w": function(date) { + return date.tm_wday; + }, + "%W": function(date) { + var days = date.tm_yday + 7 - (date.tm_wday + 6) % 7; + return leadingNulls(Math.floor(days / 7), 2); + }, + "%y": function(date) { + return (date.tm_year + 1900).toString().substring(2); + }, + "%Y": function(date) { + return date.tm_year + 1900; + }, + "%z": function(date) { + var off = date.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + off = off / 60 * 100 + off % 60; + return (ahead ? "+" : "-") + String("0000" + off).slice(-4); + }, + "%Z": function(date) { + return date.tm_zone; + }, + "%%": function() { + return "%"; + } + }; + pattern = pattern.replace(/%%/g, "\0\0"); + for (var rule in EXPANSION_RULES_2) { + if (pattern.includes(rule)) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); + } + } + pattern = pattern.replace(/\0\0/g, "%"); + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + writeArrayToMemory(bytes, s); + return bytes.length - 1; +} + +function _strftime_l(s, maxsize, format, tm, loc) { + return _strftime(s, maxsize, format, tm); +} + +function stringToUTF8OnStack(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8(str, ret, size); + return ret; +} + +function getCFunc(ident) { + var func = Module["_" + ident]; + assert(func, "Cannot call unknown function " + ident + ", make sure it is exported"); + return func; +} + +function ccall(ident, returnType, argTypes, args, opts) { + var toC = { + "string": str => { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { + ret = stringToUTF8OnStack(str); + } + return ret; + }, + "array": arr => { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + } + }; + function convertReturnValue(ret) { + if (returnType === "string") { + return UTF8ToString(ret); + } + if (returnType === "boolean") return Boolean(ret); + return ret; + } + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== "array", 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + function onDone(ret) { + if (stack !== 0) stackRestore(stack); + return convertReturnValue(ret); + } + ret = onDone(ret); + return ret; +} + +function cwrap(ident, returnType, argTypes, opts) { + return function() { + return ccall(ident, returnType, argTypes, arguments, opts); + }; +} + +PThread.init(); + +var FSNode = function(parent, name, mode, rdev) { + if (!parent) { + parent = this; + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; +}; + +var readMode = 292 | 73; + +var writeMode = 146; + +Object.defineProperties(FSNode.prototype, { + read: { + get: function() { + return (this.mode & readMode) === readMode; + }, + set: function(val) { + val ? this.mode |= readMode : this.mode &= ~readMode; + } + }, + write: { + get: function() { + return (this.mode & writeMode) === writeMode; + }, + set: function(val) { + val ? this.mode |= writeMode : this.mode &= ~writeMode; + } + }, + isFolder: { + get: function() { + return FS.isDir(this.mode); + } + }, + isDevice: { + get: function() { + return FS.isChrdev(this.mode); + } + } +}); + +FS.FSNode = FSNode; + +FS.createPreloadedFile = FS_createPreloadedFile; + +FS.staticInit(); + +ERRNO_CODES = { + "EPERM": 63, + "ENOENT": 44, + "ESRCH": 71, + "EINTR": 27, + "EIO": 29, + "ENXIO": 60, + "E2BIG": 1, + "ENOEXEC": 45, + "EBADF": 8, + "ECHILD": 12, + "EAGAIN": 6, + "EWOULDBLOCK": 6, + "ENOMEM": 48, + "EACCES": 2, + "EFAULT": 21, + "ENOTBLK": 105, + "EBUSY": 10, + "EEXIST": 20, + "EXDEV": 75, + "ENODEV": 43, + "ENOTDIR": 54, + "EISDIR": 31, + "EINVAL": 28, + "ENFILE": 41, + "EMFILE": 33, + "ENOTTY": 59, + "ETXTBSY": 74, + "EFBIG": 22, + "ENOSPC": 51, + "ESPIPE": 70, + "EROFS": 69, + "EMLINK": 34, + "EPIPE": 64, + "EDOM": 18, + "ERANGE": 68, + "ENOMSG": 49, + "EIDRM": 24, + "ECHRNG": 106, + "EL2NSYNC": 156, + "EL3HLT": 107, + "EL3RST": 108, + "ELNRNG": 109, + "EUNATCH": 110, + "ENOCSI": 111, + "EL2HLT": 112, + "EDEADLK": 16, + "ENOLCK": 46, + "EBADE": 113, + "EBADR": 114, + "EXFULL": 115, + "ENOANO": 104, + "EBADRQC": 103, + "EBADSLT": 102, + "EDEADLOCK": 16, + "EBFONT": 101, + "ENOSTR": 100, + "ENODATA": 116, + "ETIME": 117, + "ENOSR": 118, + "ENONET": 119, + "ENOPKG": 120, + "EREMOTE": 121, + "ENOLINK": 47, + "EADV": 122, + "ESRMNT": 123, + "ECOMM": 124, + "EPROTO": 65, + "EMULTIHOP": 36, + "EDOTDOT": 125, + "EBADMSG": 9, + "ENOTUNIQ": 126, + "EBADFD": 127, + "EREMCHG": 128, + "ELIBACC": 129, + "ELIBBAD": 130, + "ELIBSCN": 131, + "ELIBMAX": 132, + "ELIBEXEC": 133, + "ENOSYS": 52, + "ENOTEMPTY": 55, + "ENAMETOOLONG": 37, + "ELOOP": 32, + "EOPNOTSUPP": 138, + "EPFNOSUPPORT": 139, + "ECONNRESET": 15, + "ENOBUFS": 42, + "EAFNOSUPPORT": 5, + "EPROTOTYPE": 67, + "ENOTSOCK": 57, + "ENOPROTOOPT": 50, + "ESHUTDOWN": 140, + "ECONNREFUSED": 14, + "EADDRINUSE": 3, + "ECONNABORTED": 13, + "ENETUNREACH": 40, + "ENETDOWN": 38, + "ETIMEDOUT": 73, + "EHOSTDOWN": 142, + "EHOSTUNREACH": 23, + "EINPROGRESS": 26, + "EALREADY": 7, + "EDESTADDRREQ": 17, + "EMSGSIZE": 35, + "EPROTONOSUPPORT": 66, + "ESOCKTNOSUPPORT": 137, + "EADDRNOTAVAIL": 4, + "ENETRESET": 39, + "EISCONN": 30, + "ENOTCONN": 53, + "ETOOMANYREFS": 141, + "EUSERS": 136, + "EDQUOT": 19, + "ESTALE": 72, + "ENOTSUP": 138, + "ENOMEDIUM": 148, + "EILSEQ": 25, + "EOVERFLOW": 61, + "ECANCELED": 11, + "ENOTRECOVERABLE": 56, + "EOWNERDEAD": 62, + "ESTRPIPE": 135 +}; + +var GLctx; + +Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas) { + Browser.requestFullscreen(lockPointer, resizeCanvas); +}; + +Module["requestFullScreen"] = function Module_requestFullScreen() { + Browser.requestFullScreen(); +}; + +Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { + Browser.requestAnimationFrame(func); +}; + +Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { + Browser.setCanvasSize(width, height, noUpdates); +}; + +Module["pauseMainLoop"] = function Module_pauseMainLoop() { + Browser.mainLoop.pause(); +}; + +Module["resumeMainLoop"] = function Module_resumeMainLoop() { + Browser.mainLoop.resume(); +}; + +Module["getUserMedia"] = function Module_getUserMedia() { + Browser.getUserMedia(); +}; + +Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { + return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes); +}; + +var preloadedImages = {}; + +var preloadedAudios = {}; + +var miniTempWebGLIntBuffersStorage = new Int32Array(288); + +for (var i = 0; i < 288; ++i) { + miniTempWebGLIntBuffers[i] = miniTempWebGLIntBuffersStorage.subarray(0, i + 1); +} + +var miniTempWebGLFloatBuffersStorage = new Float32Array(288); + +for (var i = 0; i < 288; ++i) { + miniTempWebGLFloatBuffers[i] = miniTempWebGLFloatBuffersStorage.subarray(0, i + 1); +} + +Module["request_quit"] = function() { + GodotOS.request_quit(); +}; + +Module["onExit"] = GodotOS.cleanup; + +GodotOS._fs_sync_promise = Promise.resolve(); + +Module["initConfig"] = GodotConfig.init_config; + +Module["initFS"] = GodotFS.init; + +Module["copyToFS"] = GodotFS.copy_to_fs; + +GodotOS.atexit(function(resolve, reject) { + GodotDisplayCursor.clear(); + resolve(); +}); + +GodotOS.atexit(function(resolve, reject) { + GodotEventListeners.clear(); + resolve(); +}); + +GodotOS.atexit(function(resolve, reject) { + GodotDisplayVK.clear(); + resolve(); +}); + +GodotJSWrapper.proxies = new Map(); + +var proxiedFunctionTable = [ null, _proc_exit, exitOnMainThread, pthreadCreateProxied, ___syscall__newselect, ___syscall_accept4, ___syscall_bind, ___syscall_chdir, ___syscall_chmod, ___syscall_connect, ___syscall_faccessat, ___syscall_fchmod, ___syscall_fcntl64, ___syscall_getcwd, ___syscall_getdents64, ___syscall_getsockname, ___syscall_getsockopt, ___syscall_ioctl, ___syscall_listen, ___syscall_lstat64, ___syscall_mkdirat, ___syscall_newfstatat, ___syscall_openat, ___syscall_poll, ___syscall_readlinkat, ___syscall_recvfrom, ___syscall_renameat, ___syscall_rmdir, ___syscall_sendto, ___syscall_socket, ___syscall_stat64, ___syscall_statfs64, ___syscall_symlink, ___syscall_unlinkat, __setitimer_js, _emscripten_force_exit, setCanvasElementSizeMainThread, _emscripten_webgl_destroy_context, _emscripten_webgl_create_context_proxied, _emscripten_webgl_enable_extension, _environ_get, _environ_sizes_get, _fd_close, _fd_fdstat_get, _fd_read, _fd_seek, _fd_write, _getaddrinfo, _godot_audio_has_worklet, _godot_audio_init, _godot_audio_input_start, _godot_audio_input_stop, _godot_audio_is_available, _godot_audio_resume, _godot_audio_worklet_create, _godot_audio_worklet_start, _godot_js_config_canvas_id_get, _godot_js_config_locale_get, _godot_js_display_alert, _godot_js_display_canvas_focus, _godot_js_display_canvas_is_focused, _godot_js_display_clipboard_get, _godot_js_display_clipboard_set, _godot_js_display_cursor_is_hidden, _godot_js_display_cursor_is_locked, _godot_js_display_cursor_lock_set, _godot_js_display_cursor_set_custom_shape, _godot_js_display_cursor_set_shape, _godot_js_display_cursor_set_visible, _godot_js_display_desired_size_set, _godot_js_display_fullscreen_cb, _godot_js_display_fullscreen_exit, _godot_js_display_fullscreen_request, _godot_js_display_has_webgl, _godot_js_display_is_swap_ok_cancel, _godot_js_display_notification_cb, _godot_js_display_pixel_ratio_get, _godot_js_display_screen_dpi_get, _godot_js_display_screen_size_get, _godot_js_display_setup_canvas, _godot_js_display_size_update, _godot_js_display_touchscreen_is_available, _godot_js_display_tts_available, _godot_js_display_vk_available, _godot_js_display_vk_cb, _godot_js_display_vk_hide, _godot_js_display_vk_show, _godot_js_display_window_blur_cb, _godot_js_display_window_icon_set, _godot_js_display_window_size_get, _godot_js_display_window_title_set, _godot_js_fetch_create, _godot_js_fetch_free, _godot_js_fetch_http_status_get, _godot_js_fetch_is_chunked, _godot_js_fetch_read_chunk, _godot_js_fetch_read_headers, _godot_js_fetch_state_get, _godot_js_input_drop_files_cb, _godot_js_input_gamepad_cb, _godot_js_input_gamepad_sample, _godot_js_input_gamepad_sample_count, _godot_js_input_gamepad_sample_get, _godot_js_input_key_cb, _godot_js_input_mouse_button_cb, _godot_js_input_mouse_move_cb, _godot_js_input_mouse_wheel_cb, _godot_js_input_paste_cb, _godot_js_input_touch_cb, _godot_js_input_vibrate_handheld, _godot_js_os_download_buffer, _godot_js_os_execute, _godot_js_os_finish_async, _godot_js_os_fs_is_persistent, _godot_js_os_fs_sync, _godot_js_os_has_feature, _godot_js_os_hw_concurrency_get, _godot_js_os_request_quit_cb, _godot_js_os_shell_open, _godot_js_pwa_cb, _godot_js_pwa_update, _godot_js_rtc_datachannel_close, _godot_js_rtc_datachannel_connect, _godot_js_rtc_datachannel_destroy, _godot_js_rtc_datachannel_get_buffered_amount, _godot_js_rtc_datachannel_id_get, _godot_js_rtc_datachannel_is_negotiated, _godot_js_rtc_datachannel_is_ordered, _godot_js_rtc_datachannel_label_get, _godot_js_rtc_datachannel_max_packet_lifetime_get, _godot_js_rtc_datachannel_max_retransmits_get, _godot_js_rtc_datachannel_ready_state_get, _godot_js_rtc_datachannel_send, _godot_js_rtc_pc_close, _godot_js_rtc_pc_create, _godot_js_rtc_pc_datachannel_create, _godot_js_rtc_pc_destroy, _godot_js_rtc_pc_ice_candidate_add, _godot_js_rtc_pc_local_description_set, _godot_js_rtc_pc_offer_create, _godot_js_rtc_pc_remote_description_set, _godot_js_tts_get_voices, _godot_js_tts_is_paused, _godot_js_tts_is_speaking, _godot_js_tts_pause, _godot_js_tts_resume, _godot_js_tts_speak, _godot_js_tts_stop, _godot_js_websocket_buffered_amount, _godot_js_websocket_close, _godot_js_websocket_create, _godot_js_websocket_destroy, _godot_js_websocket_send, _godot_js_wrapper_create_cb, _godot_js_wrapper_create_object, _godot_js_wrapper_interface_get, _godot_js_wrapper_object_call, _godot_js_wrapper_object_get, _godot_js_wrapper_object_getvar, _godot_js_wrapper_object_set, _godot_js_wrapper_object_set_cb_ret, _godot_js_wrapper_object_setvar, _godot_js_wrapper_object_unref, _godot_webgl2_glFramebufferTextureMultiviewOVR, _godot_webgl2_glGetBufferSubData, _godot_webxr_get_bounds_geometry, _godot_webxr_get_color_texture, _godot_webxr_get_depth_texture, _godot_webxr_get_frame_rate, _godot_webxr_get_projection_for_view, _godot_webxr_get_render_target_size, _godot_webxr_get_supported_frame_rates, _godot_webxr_get_transform_for_view, _godot_webxr_get_velocity_texture, _godot_webxr_get_view_count, _godot_webxr_get_visibility_state, _godot_webxr_initialize, _godot_webxr_is_session_supported, _godot_webxr_is_supported, _godot_webxr_uninitialize, _godot_webxr_update_input_source, _godot_webxr_update_target_frame_rate ]; + +function checkIncomingModuleAPI() { + ignoredModuleProp("fetchSettings"); +} + +var wasmImports = { + "__assert_fail": ___assert_fail, + "__call_sighandler": ___call_sighandler, + "__dlsym": ___dlsym, + "__emscripten_init_main_thread_js": ___emscripten_init_main_thread_js, + "__emscripten_thread_cleanup": ___emscripten_thread_cleanup, + "__pthread_create_js": ___pthread_create_js, + "__syscall__newselect": ___syscall__newselect, + "__syscall_accept4": ___syscall_accept4, + "__syscall_bind": ___syscall_bind, + "__syscall_chdir": ___syscall_chdir, + "__syscall_chmod": ___syscall_chmod, + "__syscall_connect": ___syscall_connect, + "__syscall_faccessat": ___syscall_faccessat, + "__syscall_fchmod": ___syscall_fchmod, + "__syscall_fcntl64": ___syscall_fcntl64, + "__syscall_getcwd": ___syscall_getcwd, + "__syscall_getdents64": ___syscall_getdents64, + "__syscall_getsockname": ___syscall_getsockname, + "__syscall_getsockopt": ___syscall_getsockopt, + "__syscall_ioctl": ___syscall_ioctl, + "__syscall_listen": ___syscall_listen, + "__syscall_lstat64": ___syscall_lstat64, + "__syscall_mkdirat": ___syscall_mkdirat, + "__syscall_newfstatat": ___syscall_newfstatat, + "__syscall_openat": ___syscall_openat, + "__syscall_poll": ___syscall_poll, + "__syscall_readlinkat": ___syscall_readlinkat, + "__syscall_recvfrom": ___syscall_recvfrom, + "__syscall_renameat": ___syscall_renameat, + "__syscall_rmdir": ___syscall_rmdir, + "__syscall_sendto": ___syscall_sendto, + "__syscall_socket": ___syscall_socket, + "__syscall_stat64": ___syscall_stat64, + "__syscall_statfs64": ___syscall_statfs64, + "__syscall_symlink": ___syscall_symlink, + "__syscall_unlinkat": ___syscall_unlinkat, + "_emscripten_get_now_is_monotonic": __emscripten_get_now_is_monotonic, + "_emscripten_notify_mailbox_postmessage": __emscripten_notify_mailbox_postmessage, + "_emscripten_proxied_gl_context_activated_from_main_browser_thread": __emscripten_proxied_gl_context_activated_from_main_browser_thread, + "_emscripten_set_offscreencanvas_size": __emscripten_set_offscreencanvas_size, + "_emscripten_thread_mailbox_await": __emscripten_thread_mailbox_await, + "_emscripten_thread_set_strongref": __emscripten_thread_set_strongref, + "_emscripten_throw_longjmp": __emscripten_throw_longjmp, + "_gmtime_js": __gmtime_js, + "_localtime_js": __localtime_js, + "_setitimer_js": __setitimer_js, + "_tzset_js": __tzset_js, + "abort": _abort, + "dlopen": _dlopen, + "emscripten_cancel_main_loop": _emscripten_cancel_main_loop, + "emscripten_check_blocking_allowed": _emscripten_check_blocking_allowed, + "emscripten_console_error": _emscripten_console_error, + "emscripten_date_now": _emscripten_date_now, + "emscripten_exit_with_live_runtime": _emscripten_exit_with_live_runtime, + "emscripten_force_exit": _emscripten_force_exit, + "emscripten_get_now": _emscripten_get_now, + "emscripten_glActiveTexture": _emscripten_glActiveTexture, + "emscripten_glAttachShader": _emscripten_glAttachShader, + "emscripten_glBeginTransformFeedback": _emscripten_glBeginTransformFeedback, + "emscripten_glBindBuffer": _emscripten_glBindBuffer, + "emscripten_glBindBufferBase": _emscripten_glBindBufferBase, + "emscripten_glBindBufferRange": _emscripten_glBindBufferRange, + "emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, + "emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, + "emscripten_glBindTexture": _emscripten_glBindTexture, + "emscripten_glBindVertexArray": _emscripten_glBindVertexArray, + "emscripten_glBlendColor": _emscripten_glBlendColor, + "emscripten_glBlendEquation": _emscripten_glBlendEquation, + "emscripten_glBlendFunc": _emscripten_glBlendFunc, + "emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, + "emscripten_glBlitFramebuffer": _emscripten_glBlitFramebuffer, + "emscripten_glBufferData": _emscripten_glBufferData, + "emscripten_glBufferSubData": _emscripten_glBufferSubData, + "emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, + "emscripten_glClear": _emscripten_glClear, + "emscripten_glClearBufferfv": _emscripten_glClearBufferfv, + "emscripten_glClearColor": _emscripten_glClearColor, + "emscripten_glClearDepthf": _emscripten_glClearDepthf, + "emscripten_glColorMask": _emscripten_glColorMask, + "emscripten_glCompileShader": _emscripten_glCompileShader, + "emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, + "emscripten_glCopyBufferSubData": _emscripten_glCopyBufferSubData, + "emscripten_glCreateProgram": _emscripten_glCreateProgram, + "emscripten_glCreateShader": _emscripten_glCreateShader, + "emscripten_glCullFace": _emscripten_glCullFace, + "emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, + "emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, + "emscripten_glDeleteProgram": _emscripten_glDeleteProgram, + "emscripten_glDeleteQueries": _emscripten_glDeleteQueries, + "emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, + "emscripten_glDeleteShader": _emscripten_glDeleteShader, + "emscripten_glDeleteSync": _emscripten_glDeleteSync, + "emscripten_glDeleteTextures": _emscripten_glDeleteTextures, + "emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, + "emscripten_glDepthFunc": _emscripten_glDepthFunc, + "emscripten_glDepthMask": _emscripten_glDepthMask, + "emscripten_glDisable": _emscripten_glDisable, + "emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, + "emscripten_glDrawArrays": _emscripten_glDrawArrays, + "emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, + "emscripten_glDrawElements": _emscripten_glDrawElements, + "emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, + "emscripten_glEnable": _emscripten_glEnable, + "emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, + "emscripten_glEndTransformFeedback": _emscripten_glEndTransformFeedback, + "emscripten_glFenceSync": _emscripten_glFenceSync, + "emscripten_glFinish": _emscripten_glFinish, + "emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, + "emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, + "emscripten_glFramebufferTextureLayer": _emscripten_glFramebufferTextureLayer, + "emscripten_glFrontFace": _emscripten_glFrontFace, + "emscripten_glGenBuffers": _emscripten_glGenBuffers, + "emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, + "emscripten_glGenQueries": _emscripten_glGenQueries, + "emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, + "emscripten_glGenTextures": _emscripten_glGenTextures, + "emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, + "emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, + "emscripten_glGetFloatv": _emscripten_glGetFloatv, + "emscripten_glGetInteger64v": _emscripten_glGetInteger64v, + "emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, + "emscripten_glGetProgramiv": _emscripten_glGetProgramiv, + "emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, + "emscripten_glGetShaderiv": _emscripten_glGetShaderiv, + "emscripten_glGetString": _emscripten_glGetString, + "emscripten_glGetStringi": _emscripten_glGetStringi, + "emscripten_glGetSynciv": _emscripten_glGetSynciv, + "emscripten_glGetUniformBlockIndex": _emscripten_glGetUniformBlockIndex, + "emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, + "emscripten_glLinkProgram": _emscripten_glLinkProgram, + "emscripten_glPixelStorei": _emscripten_glPixelStorei, + "emscripten_glReadBuffer": _emscripten_glReadBuffer, + "emscripten_glReadPixels": _emscripten_glReadPixels, + "emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, + "emscripten_glScissor": _emscripten_glScissor, + "emscripten_glShaderSource": _emscripten_glShaderSource, + "emscripten_glTexImage2D": _emscripten_glTexImage2D, + "emscripten_glTexImage3D": _emscripten_glTexImage3D, + "emscripten_glTexParameterf": _emscripten_glTexParameterf, + "emscripten_glTexParameteri": _emscripten_glTexParameteri, + "emscripten_glTexStorage2D": _emscripten_glTexStorage2D, + "emscripten_glTexSubImage3D": _emscripten_glTexSubImage3D, + "emscripten_glTransformFeedbackVaryings": _emscripten_glTransformFeedbackVaryings, + "emscripten_glUniform1f": _emscripten_glUniform1f, + "emscripten_glUniform1i": _emscripten_glUniform1i, + "emscripten_glUniform1iv": _emscripten_glUniform1iv, + "emscripten_glUniform1ui": _emscripten_glUniform1ui, + "emscripten_glUniform1uiv": _emscripten_glUniform1uiv, + "emscripten_glUniform2f": _emscripten_glUniform2f, + "emscripten_glUniform2fv": _emscripten_glUniform2fv, + "emscripten_glUniform2iv": _emscripten_glUniform2iv, + "emscripten_glUniform3fv": _emscripten_glUniform3fv, + "emscripten_glUniform4f": _emscripten_glUniform4f, + "emscripten_glUniform4fv": _emscripten_glUniform4fv, + "emscripten_glUniformBlockBinding": _emscripten_glUniformBlockBinding, + "emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, + "emscripten_glUseProgram": _emscripten_glUseProgram, + "emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, + "emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, + "emscripten_glVertexAttribI4ui": _emscripten_glVertexAttribI4ui, + "emscripten_glVertexAttribIPointer": _emscripten_glVertexAttribIPointer, + "emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, + "emscripten_glViewport": _emscripten_glViewport, + "emscripten_num_logical_cores": _emscripten_num_logical_cores, + "emscripten_receive_on_main_thread_js": _emscripten_receive_on_main_thread_js, + "emscripten_resize_heap": _emscripten_resize_heap, + "emscripten_set_canvas_element_size": _emscripten_set_canvas_element_size, + "emscripten_set_main_loop": _emscripten_set_main_loop, + "emscripten_supports_offscreencanvas": _emscripten_supports_offscreencanvas, + "emscripten_webgl_destroy_context": _emscripten_webgl_destroy_context, + "emscripten_webgl_do_commit_frame": _emscripten_webgl_do_commit_frame, + "emscripten_webgl_do_create_context": _emscripten_webgl_do_create_context, + "emscripten_webgl_enable_extension": _emscripten_webgl_enable_extension, + "emscripten_webgl_init_context_attributes": _emscripten_webgl_init_context_attributes, + "emscripten_webgl_make_context_current_calling_thread": _emscripten_webgl_make_context_current_calling_thread, + "environ_get": _environ_get, + "environ_sizes_get": _environ_sizes_get, + "exit": _exit, + "fd_close": _fd_close, + "fd_fdstat_get": _fd_fdstat_get, + "fd_read": _fd_read, + "fd_seek": _fd_seek, + "fd_write": _fd_write, + "getaddrinfo": _getaddrinfo, + "getnameinfo": _getnameinfo, + "godot_audio_has_worklet": _godot_audio_has_worklet, + "godot_audio_init": _godot_audio_init, + "godot_audio_input_start": _godot_audio_input_start, + "godot_audio_input_stop": _godot_audio_input_stop, + "godot_audio_is_available": _godot_audio_is_available, + "godot_audio_resume": _godot_audio_resume, + "godot_audio_worklet_create": _godot_audio_worklet_create, + "godot_audio_worklet_start": _godot_audio_worklet_start, + "godot_audio_worklet_state_add": _godot_audio_worklet_state_add, + "godot_audio_worklet_state_get": _godot_audio_worklet_state_get, + "godot_audio_worklet_state_wait": _godot_audio_worklet_state_wait, + "godot_js_config_canvas_id_get": _godot_js_config_canvas_id_get, + "godot_js_config_locale_get": _godot_js_config_locale_get, + "godot_js_display_alert": _godot_js_display_alert, + "godot_js_display_canvas_focus": _godot_js_display_canvas_focus, + "godot_js_display_canvas_is_focused": _godot_js_display_canvas_is_focused, + "godot_js_display_clipboard_get": _godot_js_display_clipboard_get, + "godot_js_display_clipboard_set": _godot_js_display_clipboard_set, + "godot_js_display_cursor_is_hidden": _godot_js_display_cursor_is_hidden, + "godot_js_display_cursor_is_locked": _godot_js_display_cursor_is_locked, + "godot_js_display_cursor_lock_set": _godot_js_display_cursor_lock_set, + "godot_js_display_cursor_set_custom_shape": _godot_js_display_cursor_set_custom_shape, + "godot_js_display_cursor_set_shape": _godot_js_display_cursor_set_shape, + "godot_js_display_cursor_set_visible": _godot_js_display_cursor_set_visible, + "godot_js_display_desired_size_set": _godot_js_display_desired_size_set, + "godot_js_display_fullscreen_cb": _godot_js_display_fullscreen_cb, + "godot_js_display_fullscreen_exit": _godot_js_display_fullscreen_exit, + "godot_js_display_fullscreen_request": _godot_js_display_fullscreen_request, + "godot_js_display_has_webgl": _godot_js_display_has_webgl, + "godot_js_display_is_swap_ok_cancel": _godot_js_display_is_swap_ok_cancel, + "godot_js_display_notification_cb": _godot_js_display_notification_cb, + "godot_js_display_pixel_ratio_get": _godot_js_display_pixel_ratio_get, + "godot_js_display_screen_dpi_get": _godot_js_display_screen_dpi_get, + "godot_js_display_screen_size_get": _godot_js_display_screen_size_get, + "godot_js_display_setup_canvas": _godot_js_display_setup_canvas, + "godot_js_display_size_update": _godot_js_display_size_update, + "godot_js_display_touchscreen_is_available": _godot_js_display_touchscreen_is_available, + "godot_js_display_tts_available": _godot_js_display_tts_available, + "godot_js_display_vk_available": _godot_js_display_vk_available, + "godot_js_display_vk_cb": _godot_js_display_vk_cb, + "godot_js_display_vk_hide": _godot_js_display_vk_hide, + "godot_js_display_vk_show": _godot_js_display_vk_show, + "godot_js_display_window_blur_cb": _godot_js_display_window_blur_cb, + "godot_js_display_window_icon_set": _godot_js_display_window_icon_set, + "godot_js_display_window_size_get": _godot_js_display_window_size_get, + "godot_js_display_window_title_set": _godot_js_display_window_title_set, + "godot_js_eval": _godot_js_eval, + "godot_js_fetch_create": _godot_js_fetch_create, + "godot_js_fetch_free": _godot_js_fetch_free, + "godot_js_fetch_http_status_get": _godot_js_fetch_http_status_get, + "godot_js_fetch_is_chunked": _godot_js_fetch_is_chunked, + "godot_js_fetch_read_chunk": _godot_js_fetch_read_chunk, + "godot_js_fetch_read_headers": _godot_js_fetch_read_headers, + "godot_js_fetch_state_get": _godot_js_fetch_state_get, + "godot_js_input_drop_files_cb": _godot_js_input_drop_files_cb, + "godot_js_input_gamepad_cb": _godot_js_input_gamepad_cb, + "godot_js_input_gamepad_sample": _godot_js_input_gamepad_sample, + "godot_js_input_gamepad_sample_count": _godot_js_input_gamepad_sample_count, + "godot_js_input_gamepad_sample_get": _godot_js_input_gamepad_sample_get, + "godot_js_input_key_cb": _godot_js_input_key_cb, + "godot_js_input_mouse_button_cb": _godot_js_input_mouse_button_cb, + "godot_js_input_mouse_move_cb": _godot_js_input_mouse_move_cb, + "godot_js_input_mouse_wheel_cb": _godot_js_input_mouse_wheel_cb, + "godot_js_input_paste_cb": _godot_js_input_paste_cb, + "godot_js_input_touch_cb": _godot_js_input_touch_cb, + "godot_js_input_vibrate_handheld": _godot_js_input_vibrate_handheld, + "godot_js_os_download_buffer": _godot_js_os_download_buffer, + "godot_js_os_execute": _godot_js_os_execute, + "godot_js_os_finish_async": _godot_js_os_finish_async, + "godot_js_os_fs_is_persistent": _godot_js_os_fs_is_persistent, + "godot_js_os_fs_sync": _godot_js_os_fs_sync, + "godot_js_os_has_feature": _godot_js_os_has_feature, + "godot_js_os_hw_concurrency_get": _godot_js_os_hw_concurrency_get, + "godot_js_os_request_quit_cb": _godot_js_os_request_quit_cb, + "godot_js_os_shell_open": _godot_js_os_shell_open, + "godot_js_pwa_cb": _godot_js_pwa_cb, + "godot_js_pwa_update": _godot_js_pwa_update, + "godot_js_rtc_datachannel_close": _godot_js_rtc_datachannel_close, + "godot_js_rtc_datachannel_connect": _godot_js_rtc_datachannel_connect, + "godot_js_rtc_datachannel_destroy": _godot_js_rtc_datachannel_destroy, + "godot_js_rtc_datachannel_get_buffered_amount": _godot_js_rtc_datachannel_get_buffered_amount, + "godot_js_rtc_datachannel_id_get": _godot_js_rtc_datachannel_id_get, + "godot_js_rtc_datachannel_is_negotiated": _godot_js_rtc_datachannel_is_negotiated, + "godot_js_rtc_datachannel_is_ordered": _godot_js_rtc_datachannel_is_ordered, + "godot_js_rtc_datachannel_label_get": _godot_js_rtc_datachannel_label_get, + "godot_js_rtc_datachannel_max_packet_lifetime_get": _godot_js_rtc_datachannel_max_packet_lifetime_get, + "godot_js_rtc_datachannel_max_retransmits_get": _godot_js_rtc_datachannel_max_retransmits_get, + "godot_js_rtc_datachannel_protocol_get": _godot_js_rtc_datachannel_protocol_get, + "godot_js_rtc_datachannel_ready_state_get": _godot_js_rtc_datachannel_ready_state_get, + "godot_js_rtc_datachannel_send": _godot_js_rtc_datachannel_send, + "godot_js_rtc_pc_close": _godot_js_rtc_pc_close, + "godot_js_rtc_pc_create": _godot_js_rtc_pc_create, + "godot_js_rtc_pc_datachannel_create": _godot_js_rtc_pc_datachannel_create, + "godot_js_rtc_pc_destroy": _godot_js_rtc_pc_destroy, + "godot_js_rtc_pc_ice_candidate_add": _godot_js_rtc_pc_ice_candidate_add, + "godot_js_rtc_pc_local_description_set": _godot_js_rtc_pc_local_description_set, + "godot_js_rtc_pc_offer_create": _godot_js_rtc_pc_offer_create, + "godot_js_rtc_pc_remote_description_set": _godot_js_rtc_pc_remote_description_set, + "godot_js_tts_get_voices": _godot_js_tts_get_voices, + "godot_js_tts_is_paused": _godot_js_tts_is_paused, + "godot_js_tts_is_speaking": _godot_js_tts_is_speaking, + "godot_js_tts_pause": _godot_js_tts_pause, + "godot_js_tts_resume": _godot_js_tts_resume, + "godot_js_tts_speak": _godot_js_tts_speak, + "godot_js_tts_stop": _godot_js_tts_stop, + "godot_js_websocket_buffered_amount": _godot_js_websocket_buffered_amount, + "godot_js_websocket_close": _godot_js_websocket_close, + "godot_js_websocket_create": _godot_js_websocket_create, + "godot_js_websocket_destroy": _godot_js_websocket_destroy, + "godot_js_websocket_send": _godot_js_websocket_send, + "godot_js_wrapper_create_cb": _godot_js_wrapper_create_cb, + "godot_js_wrapper_create_object": _godot_js_wrapper_create_object, + "godot_js_wrapper_interface_get": _godot_js_wrapper_interface_get, + "godot_js_wrapper_object_call": _godot_js_wrapper_object_call, + "godot_js_wrapper_object_get": _godot_js_wrapper_object_get, + "godot_js_wrapper_object_getvar": _godot_js_wrapper_object_getvar, + "godot_js_wrapper_object_set": _godot_js_wrapper_object_set, + "godot_js_wrapper_object_set_cb_ret": _godot_js_wrapper_object_set_cb_ret, + "godot_js_wrapper_object_setvar": _godot_js_wrapper_object_setvar, + "godot_js_wrapper_object_unref": _godot_js_wrapper_object_unref, + "godot_webgl2_glFramebufferTextureMultiviewOVR": _godot_webgl2_glFramebufferTextureMultiviewOVR, + "godot_webgl2_glGetBufferSubData": _godot_webgl2_glGetBufferSubData, + "godot_webxr_get_bounds_geometry": _godot_webxr_get_bounds_geometry, + "godot_webxr_get_color_texture": _godot_webxr_get_color_texture, + "godot_webxr_get_depth_texture": _godot_webxr_get_depth_texture, + "godot_webxr_get_frame_rate": _godot_webxr_get_frame_rate, + "godot_webxr_get_projection_for_view": _godot_webxr_get_projection_for_view, + "godot_webxr_get_render_target_size": _godot_webxr_get_render_target_size, + "godot_webxr_get_supported_frame_rates": _godot_webxr_get_supported_frame_rates, + "godot_webxr_get_transform_for_view": _godot_webxr_get_transform_for_view, + "godot_webxr_get_velocity_texture": _godot_webxr_get_velocity_texture, + "godot_webxr_get_view_count": _godot_webxr_get_view_count, + "godot_webxr_get_visibility_state": _godot_webxr_get_visibility_state, + "godot_webxr_initialize": _godot_webxr_initialize, + "godot_webxr_is_session_supported": _godot_webxr_is_session_supported, + "godot_webxr_is_supported": _godot_webxr_is_supported, + "godot_webxr_uninitialize": _godot_webxr_uninitialize, + "godot_webxr_update_input_source": _godot_webxr_update_input_source, + "godot_webxr_update_target_frame_rate": _godot_webxr_update_target_frame_rate, + "invoke_ii": invoke_ii, + "invoke_iii": invoke_iii, + "invoke_iiii": invoke_iiii, + "invoke_iiiii": invoke_iiiii, + "invoke_iiiiii": invoke_iiiiii, + "invoke_vi": invoke_vi, + "invoke_vii": invoke_vii, + "invoke_viii": invoke_viii, + "invoke_viiii": invoke_viiii, + "invoke_viiiiiii": invoke_viiiiiii, + "invoke_viiiiiiii": invoke_viiiiiiii, + "invoke_viiij": invoke_viiij, + "memory": wasmMemory || Module["wasmMemory"], + "strftime": _strftime, + "strftime_l": _strftime_l +}; + +var asm = createWasm(); + +var ___wasm_call_ctors = createExportWrapper("__wasm_call_ctors"); + +var _emscripten_webgl_commit_frame = createExportWrapper("emscripten_webgl_commit_frame"); + +var _free = createExportWrapper("free"); + +var __Z14godot_web_mainiPPc = Module["__Z14godot_web_mainiPPc"] = createExportWrapper("_Z14godot_web_mainiPPc"); + +var _main = Module["_main"] = createExportWrapper("__main_argc_argv"); + +var _malloc = createExportWrapper("malloc"); + +var ___errno_location = createExportWrapper("__errno_location"); + +var _fflush = Module["_fflush"] = createExportWrapper("fflush"); + +var _htonl = createExportWrapper("htonl"); + +var _htons = createExportWrapper("htons"); + +var _ntohs = createExportWrapper("ntohs"); + +var __emwebxr_on_input_event = Module["__emwebxr_on_input_event"] = createExportWrapper("_emwebxr_on_input_event"); + +var __emwebxr_on_simple_event = Module["__emwebxr_on_simple_event"] = createExportWrapper("_emwebxr_on_simple_event"); + +var __emscripten_tls_init = Module["__emscripten_tls_init"] = createExportWrapper("_emscripten_tls_init"); + +var _pthread_self = Module["_pthread_self"] = function() { + return (_pthread_self = Module["_pthread_self"] = Module["asm"]["pthread_self"]).apply(null, arguments); +}; + +var _emscripten_webgl_get_current_context = createExportWrapper("emscripten_webgl_get_current_context"); + +var _emscripten_dispatch_to_thread_ = createExportWrapper("emscripten_dispatch_to_thread_"); + +var ___funcs_on_exit = createExportWrapper("__funcs_on_exit"); + +var __emscripten_thread_init = Module["__emscripten_thread_init"] = createExportWrapper("_emscripten_thread_init"); + +var __emscripten_thread_crashed = Module["__emscripten_thread_crashed"] = createExportWrapper("_emscripten_thread_crashed"); + +var _emscripten_main_thread_process_queued_calls = createExportWrapper("emscripten_main_thread_process_queued_calls"); + +var _emscripten_main_runtime_thread_id = createExportWrapper("emscripten_main_runtime_thread_id"); + +var __emscripten_run_in_main_runtime_thread_js = createExportWrapper("_emscripten_run_in_main_runtime_thread_js"); + +var _emscripten_stack_get_base = function() { + return (_emscripten_stack_get_base = Module["asm"]["emscripten_stack_get_base"]).apply(null, arguments); +}; + +var _emscripten_stack_get_end = function() { + return (_emscripten_stack_get_end = Module["asm"]["emscripten_stack_get_end"]).apply(null, arguments); +}; + +var __emscripten_thread_free_data = createExportWrapper("_emscripten_thread_free_data"); + +var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = createExportWrapper("_emscripten_thread_exit"); + +var __emscripten_timeout = createExportWrapper("_emscripten_timeout"); + +var __emscripten_check_mailbox = Module["__emscripten_check_mailbox"] = createExportWrapper("_emscripten_check_mailbox"); + +var _setThrew = createExportWrapper("setThrew"); + +var _emscripten_stack_init = function() { + return (_emscripten_stack_init = Module["asm"]["emscripten_stack_init"]).apply(null, arguments); +}; + +var _emscripten_stack_set_limits = function() { + return (_emscripten_stack_set_limits = Module["asm"]["emscripten_stack_set_limits"]).apply(null, arguments); +}; + +var _emscripten_stack_get_free = function() { + return (_emscripten_stack_get_free = Module["asm"]["emscripten_stack_get_free"]).apply(null, arguments); +}; + +var stackSave = createExportWrapper("stackSave"); + +var stackRestore = createExportWrapper("stackRestore"); + +var stackAlloc = createExportWrapper("stackAlloc"); + +var _emscripten_stack_get_current = function() { + return (_emscripten_stack_get_current = Module["asm"]["emscripten_stack_get_current"]).apply(null, arguments); +}; + +var ___cxa_increment_exception_refcount = createExportWrapper("__cxa_increment_exception_refcount"); + +var ___cxa_is_pointer_type = createExportWrapper("__cxa_is_pointer_type"); + +var dynCall_vjiii = Module["dynCall_vjiii"] = createExportWrapper("dynCall_vjiii"); + +var dynCall_viiiiji = Module["dynCall_viiiiji"] = createExportWrapper("dynCall_viiiiji"); + +var dynCall_viiiiij = Module["dynCall_viiiiij"] = createExportWrapper("dynCall_viiiiij"); + +var dynCall_viiiij = Module["dynCall_viiiij"] = createExportWrapper("dynCall_viiiij"); + +var dynCall_ji = Module["dynCall_ji"] = createExportWrapper("dynCall_ji"); + +var dynCall_viiijii = Module["dynCall_viiijii"] = createExportWrapper("dynCall_viiijii"); + +var dynCall_vijiii = Module["dynCall_vijiii"] = createExportWrapper("dynCall_vijiii"); + +var dynCall_jij = Module["dynCall_jij"] = createExportWrapper("dynCall_jij"); + +var dynCall_iiij = Module["dynCall_iiij"] = createExportWrapper("dynCall_iiij"); + +var dynCall_iij = Module["dynCall_iij"] = createExportWrapper("dynCall_iij"); + +var dynCall_viij = Module["dynCall_viij"] = createExportWrapper("dynCall_viij"); + +var dynCall_jiij = Module["dynCall_jiij"] = createExportWrapper("dynCall_jiij"); + +var dynCall_jiii = Module["dynCall_jiii"] = createExportWrapper("dynCall_jiii"); + +var dynCall_jiiiiiii = Module["dynCall_jiiiiiii"] = createExportWrapper("dynCall_jiiiiiii"); + +var dynCall_jiiiii = Module["dynCall_jiiiii"] = createExportWrapper("dynCall_jiiiii"); + +var dynCall_ij = Module["dynCall_ij"] = createExportWrapper("dynCall_ij"); + +var dynCall_jiiiiiiiiii = Module["dynCall_jiiiiiiiiii"] = createExportWrapper("dynCall_jiiiiiiiiii"); + +var dynCall_jiiiiii = Module["dynCall_jiiiiii"] = createExportWrapper("dynCall_jiiiiii"); + +var dynCall_jiiiiiiii = Module["dynCall_jiiiiiiii"] = createExportWrapper("dynCall_jiiiiiiii"); + +var dynCall_jii = Module["dynCall_jii"] = createExportWrapper("dynCall_jii"); + +var dynCall_vij = Module["dynCall_vij"] = createExportWrapper("dynCall_vij"); + +var dynCall_viiij = Module["dynCall_viiij"] = createExportWrapper("dynCall_viiij"); + +var dynCall_viiiiiiij = Module["dynCall_viiiiiiij"] = createExportWrapper("dynCall_viiiiiiij"); + +var dynCall_jiji = Module["dynCall_jiji"] = createExportWrapper("dynCall_jiji"); + +var dynCall_jiiifi = Module["dynCall_jiiifi"] = createExportWrapper("dynCall_jiiifi"); + +var dynCall_jiifff = Module["dynCall_jiifff"] = createExportWrapper("dynCall_jiifff"); + +var dynCall_vijf = Module["dynCall_vijf"] = createExportWrapper("dynCall_vijf"); + +var dynCall_viiiiifiijii = Module["dynCall_viiiiifiijii"] = createExportWrapper("dynCall_viiiiifiijii"); + +var dynCall_viiiiifiiijjii = Module["dynCall_viiiiifiiijjii"] = createExportWrapper("dynCall_viiiiifiiijjii"); + +var dynCall_viiiiifiiijii = Module["dynCall_viiiiifiiijii"] = createExportWrapper("dynCall_viiiiifiiijii"); + +var dynCall_viiiiifiiiijjii = Module["dynCall_viiiiifiiiijjii"] = createExportWrapper("dynCall_viiiiifiiiijjii"); + +var dynCall_vijiiii = Module["dynCall_vijiiii"] = createExportWrapper("dynCall_vijiiii"); + +var dynCall_vijii = Module["dynCall_vijii"] = createExportWrapper("dynCall_vijii"); + +var dynCall_viijiiiiiiiii = Module["dynCall_viijiiiiiiiii"] = createExportWrapper("dynCall_viijiiiiiiiii"); + +var dynCall_viiiiiji = Module["dynCall_viiiiiji"] = createExportWrapper("dynCall_viiiiiji"); + +var dynCall_vijj = Module["dynCall_vijj"] = createExportWrapper("dynCall_vijj"); + +var dynCall_vijiiiiiidddd = Module["dynCall_vijiiiiiidddd"] = createExportWrapper("dynCall_vijiiiiiidddd"); + +var dynCall_jiiii = Module["dynCall_jiiii"] = createExportWrapper("dynCall_jiiii"); + +var dynCall_jiijiiii = Module["dynCall_jiijiiii"] = createExportWrapper("dynCall_jiijiiii"); + +var dynCall_jiiji = Module["dynCall_jiiji"] = createExportWrapper("dynCall_jiiji"); + +var dynCall_jiiiji = Module["dynCall_jiiiji"] = createExportWrapper("dynCall_jiiiji"); + +var dynCall_jiijii = Module["dynCall_jiijii"] = createExportWrapper("dynCall_jiijii"); + +var dynCall_iijiiij = Module["dynCall_iijiiij"] = createExportWrapper("dynCall_iijiiij"); + +var dynCall_jijjjiiiiijii = Module["dynCall_jijjjiiiiijii"] = createExportWrapper("dynCall_jijjjiiiiijii"); + +var dynCall_jijiiiiifiii = Module["dynCall_jijiiiiifiii"] = createExportWrapper("dynCall_jijiiiiifiii"); + +var dynCall_viijiiiiiifiii = Module["dynCall_viijiiiiiifiii"] = createExportWrapper("dynCall_viijiiiiiifiii"); + +var dynCall_viji = Module["dynCall_viji"] = createExportWrapper("dynCall_viji"); + +var dynCall_viiji = Module["dynCall_viiji"] = createExportWrapper("dynCall_viiji"); + +var dynCall_vijji = Module["dynCall_vijji"] = createExportWrapper("dynCall_vijji"); + +var dynCall_vijjii = Module["dynCall_vijjii"] = createExportWrapper("dynCall_vijjii"); + +var dynCall_fij = Module["dynCall_fij"] = createExportWrapper("dynCall_fij"); + +var dynCall_vijiffifff = Module["dynCall_vijiffifff"] = createExportWrapper("dynCall_vijiffifff"); + +var dynCall_vijff = Module["dynCall_vijff"] = createExportWrapper("dynCall_vijff"); + +var dynCall_vijiffff = Module["dynCall_vijiffff"] = createExportWrapper("dynCall_vijiffff"); + +var dynCall_vijjf = Module["dynCall_vijjf"] = createExportWrapper("dynCall_vijjf"); + +var dynCall_vijij = Module["dynCall_vijij"] = createExportWrapper("dynCall_vijij"); + +var dynCall_vijif = Module["dynCall_vijif"] = createExportWrapper("dynCall_vijif"); + +var dynCall_vijiiifi = Module["dynCall_vijiiifi"] = createExportWrapper("dynCall_vijiiifi"); + +var dynCall_vijiifi = Module["dynCall_vijiifi"] = createExportWrapper("dynCall_vijiifi"); + +var dynCall_vijiif = Module["dynCall_vijiif"] = createExportWrapper("dynCall_vijiif"); + +var dynCall_vijifi = Module["dynCall_vijifi"] = createExportWrapper("dynCall_vijifi"); + +var dynCall_vijijiii = Module["dynCall_vijijiii"] = createExportWrapper("dynCall_vijijiii"); + +var dynCall_vijijiiii = Module["dynCall_vijijiiii"] = createExportWrapper("dynCall_vijijiiii"); + +var dynCall_vijijiiiff = Module["dynCall_vijijiiiff"] = createExportWrapper("dynCall_vijijiiiff"); + +var dynCall_vijijii = Module["dynCall_vijijii"] = createExportWrapper("dynCall_vijijii"); + +var dynCall_vijiijiiiiii = Module["dynCall_vijiijiiiiii"] = createExportWrapper("dynCall_vijiijiiiiii"); + +var dynCall_vijiiij = Module["dynCall_vijiiij"] = createExportWrapper("dynCall_vijiiij"); + +var dynCall_vijiiiiiiji = Module["dynCall_vijiiiiiiji"] = createExportWrapper("dynCall_vijiiiiiiji"); + +var dynCall_vijjj = Module["dynCall_vijjj"] = createExportWrapper("dynCall_vijjj"); + +var dynCall_vijdddd = Module["dynCall_vijdddd"] = createExportWrapper("dynCall_vijdddd"); + +var dynCall_vijififi = Module["dynCall_vijififi"] = createExportWrapper("dynCall_vijififi"); + +var dynCall_iijji = Module["dynCall_iijji"] = createExportWrapper("dynCall_iijji"); + +var dynCall_viijj = Module["dynCall_viijj"] = createExportWrapper("dynCall_viijj"); + +var dynCall_iiiij = Module["dynCall_iiiij"] = createExportWrapper("dynCall_iiiij"); + +var dynCall_dij = Module["dynCall_dij"] = createExportWrapper("dynCall_dij"); + +var dynCall_vijd = Module["dynCall_vijd"] = createExportWrapper("dynCall_vijd"); + +var dynCall_viijiiii = Module["dynCall_viijiiii"] = createExportWrapper("dynCall_viijiiii"); + +var dynCall_viijiii = Module["dynCall_viijiii"] = createExportWrapper("dynCall_viijiii"); + +var dynCall_iiji = Module["dynCall_iiji"] = createExportWrapper("dynCall_iiji"); + +var dynCall_iiiijf = Module["dynCall_iiiijf"] = createExportWrapper("dynCall_iiiijf"); + +var dynCall_vijiiiii = Module["dynCall_vijiiiii"] = createExportWrapper("dynCall_vijiiiii"); + +var dynCall_viijd = Module["dynCall_viijd"] = createExportWrapper("dynCall_viijd"); + +var dynCall_diij = Module["dynCall_diij"] = createExportWrapper("dynCall_diij"); + +var dynCall_viiiji = Module["dynCall_viiiji"] = createExportWrapper("dynCall_viiiji"); + +var dynCall_viiijj = Module["dynCall_viiijj"] = createExportWrapper("dynCall_viiijj"); + +var dynCall_viijji = Module["dynCall_viijji"] = createExportWrapper("dynCall_viijji"); + +var dynCall_jiiij = Module["dynCall_jiiij"] = createExportWrapper("dynCall_jiiij"); + +var dynCall_viijii = Module["dynCall_viijii"] = createExportWrapper("dynCall_viijii"); + +var dynCall_jiijjj = Module["dynCall_jiijjj"] = createExportWrapper("dynCall_jiijjj"); + +var dynCall_jiijj = Module["dynCall_jiijj"] = createExportWrapper("dynCall_jiijj"); + +var dynCall_viiijiji = Module["dynCall_viiijiji"] = createExportWrapper("dynCall_viiijiji"); + +var dynCall_viiijjiji = Module["dynCall_viiijjiji"] = createExportWrapper("dynCall_viiijjiji"); + +var dynCall_viijiji = Module["dynCall_viijiji"] = createExportWrapper("dynCall_viijiji"); + +var dynCall_iiiiijiii = Module["dynCall_iiiiijiii"] = createExportWrapper("dynCall_iiiiijiii"); + +var dynCall_iiiiiijd = Module["dynCall_iiiiiijd"] = createExportWrapper("dynCall_iiiiiijd"); + +var dynCall_diidj = Module["dynCall_diidj"] = createExportWrapper("dynCall_diidj"); + +var dynCall_viiiijij = Module["dynCall_viiiijij"] = createExportWrapper("dynCall_viiiijij"); + +var dynCall_viiidjj = Module["dynCall_viiidjj"] = createExportWrapper("dynCall_viiidjj"); + +var dynCall_viidj = Module["dynCall_viidj"] = createExportWrapper("dynCall_viidj"); + +var dynCall_iiijj = Module["dynCall_iiijj"] = createExportWrapper("dynCall_iiijj"); + +var dynCall_jiid = Module["dynCall_jiid"] = createExportWrapper("dynCall_jiid"); + +var dynCall_viiiiddji = Module["dynCall_viiiiddji"] = createExportWrapper("dynCall_viiiiddji"); + +var dynCall_vijiiiiiiiii = Module["dynCall_vijiiiiiiiii"] = createExportWrapper("dynCall_vijiiiiiiiii"); + +var dynCall_vijiiiffi = Module["dynCall_vijiiiffi"] = createExportWrapper("dynCall_vijiiiffi"); + +var dynCall_vijiiifii = Module["dynCall_vijiiifii"] = createExportWrapper("dynCall_vijiiifii"); + +var dynCall_viijfii = Module["dynCall_viijfii"] = createExportWrapper("dynCall_viijfii"); + +var dynCall_viiiiiiiiiiijjjjjjifiiiiii = Module["dynCall_viiiiiiiiiiijjjjjjifiiiiii"] = createExportWrapper("dynCall_viiiiiiiiiiijjjjjjifiiiiii"); + +var dynCall_vijifff = Module["dynCall_vijifff"] = createExportWrapper("dynCall_vijifff"); + +var dynCall_fiji = Module["dynCall_fiji"] = createExportWrapper("dynCall_fiji"); + +var dynCall_vijiiffifffi = Module["dynCall_vijiiffifffi"] = createExportWrapper("dynCall_vijiiffifffi"); + +var dynCall_iijj = Module["dynCall_iijj"] = createExportWrapper("dynCall_iijj"); + +var dynCall_iijjfj = Module["dynCall_iijjfj"] = createExportWrapper("dynCall_iijjfj"); + +var dynCall_vijiji = Module["dynCall_vijiji"] = createExportWrapper("dynCall_vijiji"); + +var dynCall_jijii = Module["dynCall_jijii"] = createExportWrapper("dynCall_jijii"); + +var dynCall_vijid = Module["dynCall_vijid"] = createExportWrapper("dynCall_vijid"); + +var dynCall_vijiiiiii = Module["dynCall_vijiiiiii"] = createExportWrapper("dynCall_vijiiiiii"); + +var dynCall_vijiff = Module["dynCall_vijiff"] = createExportWrapper("dynCall_vijiff"); + +var dynCall_vijjjj = Module["dynCall_vijjjj"] = createExportWrapper("dynCall_vijjjj"); + +var dynCall_vijiiiiiii = Module["dynCall_vijiiiiiii"] = createExportWrapper("dynCall_vijiiiiiii"); + +var dynCall_jiiifiiiii = Module["dynCall_jiiifiiiii"] = createExportWrapper("dynCall_jiiifiiiii"); + +var dynCall_viiiifijii = Module["dynCall_viiiifijii"] = createExportWrapper("dynCall_viiiifijii"); + +var dynCall_viiiifiijjii = Module["dynCall_viiiifiijjii"] = createExportWrapper("dynCall_viiiifiijjii"); + +var dynCall_vijiiifiijii = Module["dynCall_vijiiifiijii"] = createExportWrapper("dynCall_vijiiifiijii"); + +var dynCall_vijiiifiiijjii = Module["dynCall_vijiiifiiijjii"] = createExportWrapper("dynCall_vijiiifiiijjii"); + +var dynCall_vijiiifiiijii = Module["dynCall_vijiiifiiijii"] = createExportWrapper("dynCall_vijiiifiiijii"); + +var dynCall_vijiiifiiiijjii = Module["dynCall_vijiiifiiiijjii"] = createExportWrapper("dynCall_vijiiifiiiijjii"); + +var dynCall_fijiiii = Module["dynCall_fijiiii"] = createExportWrapper("dynCall_fijiiii"); + +var dynCall_fijiiiii = Module["dynCall_fijiiiii"] = createExportWrapper("dynCall_fijiiiii"); + +var dynCall_iijii = Module["dynCall_iijii"] = createExportWrapper("dynCall_iijii"); + +var dynCall_iijiijiiiii = Module["dynCall_iijiijiiiii"] = createExportWrapper("dynCall_iijiijiiiii"); + +var dynCall_iijijiiiii = Module["dynCall_iijijiiiii"] = createExportWrapper("dynCall_iijijiiiii"); + +var dynCall_vijijj = Module["dynCall_vijijj"] = createExportWrapper("dynCall_vijijj"); + +var dynCall_vijiiijj = Module["dynCall_vijiiijj"] = createExportWrapper("dynCall_vijiiijj"); + +var dynCall_vijiijj = Module["dynCall_vijiijj"] = createExportWrapper("dynCall_vijiijj"); + +var dynCall_vijjiji = Module["dynCall_vijjiji"] = createExportWrapper("dynCall_vijjiji"); + +var dynCall_vijjiijii = Module["dynCall_vijjiijii"] = createExportWrapper("dynCall_vijjiijii"); + +var dynCall_fijii = Module["dynCall_fijii"] = createExportWrapper("dynCall_fijii"); + +var dynCall_iiiiiiij = Module["dynCall_iiiiiiij"] = createExportWrapper("dynCall_iiiiiiij"); + +var dynCall_vijiiiij = Module["dynCall_vijiiiij"] = createExportWrapper("dynCall_vijiiiij"); + +var dynCall_jijj = Module["dynCall_jijj"] = createExportWrapper("dynCall_jijj"); + +var dynCall_jiiif = Module["dynCall_jiiif"] = createExportWrapper("dynCall_jiiif"); + +var dynCall_vijfff = Module["dynCall_vijfff"] = createExportWrapper("dynCall_vijfff"); + +var dynCall_vijfiff = Module["dynCall_vijfiff"] = createExportWrapper("dynCall_vijfiff"); + +var dynCall_vijfi = Module["dynCall_vijfi"] = createExportWrapper("dynCall_vijfi"); + +var dynCall_vijffffi = Module["dynCall_vijffffi"] = createExportWrapper("dynCall_vijffffi"); + +var dynCall_vijiiffi = Module["dynCall_vijiiffi"] = createExportWrapper("dynCall_vijiiffi"); + +var dynCall_vijiifffffff = Module["dynCall_vijiifffffff"] = createExportWrapper("dynCall_vijiifffffff"); + +var dynCall_vijifiifffffifff = Module["dynCall_vijifiifffffifff"] = createExportWrapper("dynCall_vijifiifffffifff"); + +var dynCall_vijiiffffiffffj = Module["dynCall_vijiiffffiffffj"] = createExportWrapper("dynCall_vijiiffffiffffj"); + +var dynCall_vijiifff = Module["dynCall_vijiifff"] = createExportWrapper("dynCall_vijiifff"); + +var dynCall_vijiffffffff = Module["dynCall_vijiffffffff"] = createExportWrapper("dynCall_vijiffffffff"); + +var dynCall_vijiifiififff = Module["dynCall_vijiifiififff"] = createExportWrapper("dynCall_vijiifiififff"); + +var dynCall_vijifffij = Module["dynCall_vijifffij"] = createExportWrapper("dynCall_vijifffij"); + +var dynCall_viijjjiifjii = Module["dynCall_viijjjiifjii"] = createExportWrapper("dynCall_viijjjiifjii"); + +var dynCall_vijjjii = Module["dynCall_vijjjii"] = createExportWrapper("dynCall_vijjjii"); + +var dynCall_fijj = Module["dynCall_fijj"] = createExportWrapper("dynCall_fijj"); + +var dynCall_iijjiii = Module["dynCall_iijjiii"] = createExportWrapper("dynCall_iijjiii"); + +var dynCall_iiiiij = Module["dynCall_iiiiij"] = createExportWrapper("dynCall_iiiiij"); + +var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = createExportWrapper("dynCall_iiiiijj"); + +var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = createExportWrapper("dynCall_iiiiiijj"); + +function invoke_vii(index, a1, a2) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_vi(index, a1) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_iiii(index, a1, a2, a3) { + var sp = stackSave(); + try { + return getWasmTableEntry(index)(a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_ii(index, a1) { + var sp = stackSave(); + try { + return getWasmTableEntry(index)(a1); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_iiiiii(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + return getWasmTableEntry(index)(a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_viiii(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_iii(index, a1, a2) { + var sp = stackSave(); + try { + return getWasmTableEntry(index)(a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_iiiii(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return getWasmTableEntry(index)(a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_viii(index, a1, a2, a3) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + var sp = stackSave(); + try { + getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_viiij(index, a1, a2, a3, a4, a5) { + var sp = stackSave(); + try { + dynCall_viiij(index, a1, a2, a3, a4, a5); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +Module["callMain"] = callMain; + +Module["keepRuntimeAlive"] = keepRuntimeAlive; + +Module["wasmMemory"] = wasmMemory; + +Module["cwrap"] = cwrap; + +Module["ExitStatus"] = ExitStatus; + +Module["PThread"] = PThread; + +var missingLibrarySymbols = [ "getHostByName", "traverseStack", "getCallstack", "emscriptenLog", "convertPCtoSourceLocation", "readEmAsmArgs", "jstoi_s", "listenOnce", "autoResumeAudioContext", "dynCallLegacy", "getDynCaller", "dynCall", "asmjsMangle", "HandleAllocator", "getNativeTypeSize", "STACK_SIZE", "STACK_ALIGN", "POINTER_SIZE", "ASSERTIONS", "writeI53ToI64Clamped", "writeI53ToI64Signaling", "writeI53ToU64Clamped", "writeI53ToU64Signaling", "convertI32PairToI53", "convertU32PairToI53", "uleb128Encode", "sigToWasmTypes", "generateFuncType", "convertJsFunctionToWasm", "getEmptyTableSlot", "updateTableMap", "getFunctionAddress", "addFunction", "removeFunction", "reallyNegative", "unSign", "strLen", "reSign", "formatString", "intArrayToString", "AsciiToString", "UTF16ToString", "stringToUTF16", "lengthBytesUTF16", "UTF32ToString", "stringToUTF32", "lengthBytesUTF32", "registerKeyEventCallback", "getBoundingClientRect", "fillMouseEventData", "registerMouseEventCallback", "registerWheelEventCallback", "registerUiEventCallback", "registerFocusEventCallback", "fillDeviceOrientationEventData", "registerDeviceOrientationEventCallback", "fillDeviceMotionEventData", "registerDeviceMotionEventCallback", "screenOrientation", "fillOrientationChangeEventData", "registerOrientationChangeEventCallback", "fillFullscreenChangeEventData", "registerFullscreenChangeEventCallback", "JSEvents_requestFullscreen", "JSEvents_resizeCanvasForFullscreen", "registerRestoreOldStyle", "hideEverythingExceptGivenElement", "restoreHiddenElements", "setLetterbox", "softFullscreenResizeWebGLRenderTarget", "doRequestFullscreen", "fillPointerlockChangeEventData", "registerPointerlockChangeEventCallback", "registerPointerlockErrorEventCallback", "requestPointerLock", "fillVisibilityChangeEventData", "registerVisibilityChangeEventCallback", "registerTouchEventCallback", "fillGamepadEventData", "registerGamepadEventCallback", "registerBeforeUnloadEventCallback", "fillBatteryEventData", "battery", "registerBatteryEventCallback", "setCanvasElementSize", "getCanvasSizeCallingThread", "getCanvasSizeMainThread", "getCanvasElementSize", "jsStackTrace", "stackTrace", "checkWasiClock", "wasiRightsToMuslOFlags", "wasiOFlagsToMuslOFlags", "createDyncallWrapper", "setImmediateWrapped", "clearImmediateWrapped", "polyfillSetImmediate", "getPromise", "makePromise", "idsToPromises", "makePromiseCallback", "ExceptionInfo", "_setNetworkCallback", "emscriptenWebGLGetUniform", "emscriptenWebGLGetVertexAttrib", "__glGetActiveAttribOrUniform", "writeGLArray", "emscripten_webgl_destroy_context_before_on_calling_thread", "registerWebGlEventCallback", "runAndAbortIfError", "SDL_unicode", "SDL_ttfContext", "SDL_audio", "GLFW_Window", "emscriptenWebGLGetIndexed", "ALLOC_NORMAL", "ALLOC_STACK", "allocate", "writeStringToMemory", "writeAsciiToMemory" ]; + +missingLibrarySymbols.forEach(missingLibrarySymbol); + +var unexportedSymbols = [ "run", "addOnPreRun", "addOnInit", "addOnPreMain", "addOnExit", "addOnPostRun", "addRunDependency", "removeRunDependency", "FS_createFolder", "FS_createPath", "FS_createDataFile", "FS_createLazyFile", "FS_createLink", "FS_createDevice", "FS_unlink", "out", "err", "abort", "stackAlloc", "stackSave", "stackRestore", "getTempRet0", "setTempRet0", "GROWABLE_HEAP_I8", "GROWABLE_HEAP_U8", "GROWABLE_HEAP_I16", "GROWABLE_HEAP_U16", "GROWABLE_HEAP_I32", "GROWABLE_HEAP_U32", "GROWABLE_HEAP_F32", "GROWABLE_HEAP_F64", "writeStackCookie", "checkStackCookie", "ptrToString", "zeroMemory", "exitJS", "getHeapMax", "emscripten_realloc_buffer", "ENV", "MONTH_DAYS_REGULAR", "MONTH_DAYS_LEAP", "MONTH_DAYS_REGULAR_CUMULATIVE", "MONTH_DAYS_LEAP_CUMULATIVE", "isLeapYear", "ydayFromDate", "arraySum", "addDays", "ERRNO_CODES", "ERRNO_MESSAGES", "setErrNo", "inetPton4", "inetNtop4", "inetPton6", "inetNtop6", "readSockaddr", "writeSockaddr", "DNS", "Protocols", "Sockets", "initRandomFill", "randomFill", "timers", "warnOnce", "UNWIND_CACHE", "readEmAsmArgsArray", "jstoi_q", "getExecutableName", "handleException", "runtimeKeepalivePush", "runtimeKeepalivePop", "callUserCallback", "maybeExit", "safeSetTimeout", "asyncLoad", "alignMemory", "mmapAlloc", "writeI53ToI64", "readI53FromI64", "readI53FromU64", "convertI32PairToI53Checked", "getCFunc", "ccall", "freeTableIndexes", "functionsInTableMap", "setValue", "getValue", "PATH", "PATH_FS", "UTF8Decoder", "UTF8ArrayToString", "UTF8ToString", "stringToUTF8Array", "stringToUTF8", "lengthBytesUTF8", "intArrayFromString", "stringToAscii", "UTF16Decoder", "stringToNewUTF8", "stringToUTF8OnStack", "writeArrayToMemory", "SYSCALLS", "getSocketFromFD", "getSocketAddress", "JSEvents", "specialHTMLTargets", "maybeCStringToJsString", "findEventTarget", "findCanvasEventTarget", "currentFullscreenStrategy", "restoreOldWindowedStyle", "setCanvasElementSizeCallingThread", "setCanvasElementSizeMainThread", "demangle", "demangleAll", "getEnvStrings", "doReadv", "doWritev", "dlopenMissingError", "promiseMap", "uncaughtExceptionCount", "exceptionLast", "exceptionCaught", "Browser", "setMainLoop", "wget", "preloadPlugins", "FS_createPreloadedFile", "FS_modeStringToFlags", "FS_getMode", "FS", "MEMFS", "TTY", "PIPEFS", "SOCKFS", "tempFixedLengthArray", "miniTempWebGLFloatBuffers", "miniTempWebGLIntBuffers", "heapObjectForWebGLType", "heapAccessShiftForWebGLHeap", "webgl_enable_ANGLE_instanced_arrays", "webgl_enable_OES_vertex_array_object", "webgl_enable_WEBGL_draw_buffers", "webgl_enable_WEBGL_multi_draw", "GL", "emscriptenWebGLGet", "computeUnpackAlignedImageSize", "colorChannelsInGlTextureFormat", "emscriptenWebGLGetTexPixelData", "__glGenObject", "webglGetUniformLocation", "webglPrepareUniformLocationsBeforeFirstUse", "webglGetLeftBracePos", "emscripten_webgl_power_preferences", "AL", "GLUT", "EGL", "GLEW", "IDBStore", "SDL", "SDL_gfx", "GLFW", "webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance", "webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance", "allocateUTF8", "allocateUTF8OnStack", "terminateWorker", "killThread", "cleanupThread", "registerTLSInit", "cancelThread", "spawnThread", "exitOnMainThread", "proxyToMainThread", "emscripten_receive_on_main_thread_js_callArgs", "invokeEntryPoint", "checkMailbox", "GodotWebXR", "GodotWebSocket", "GodotRTCDataChannel", "GodotRTCPeerConnection", "GodotAudio", "GodotAudioWorklet", "GodotAudioScript", "GodotDisplayVK", "GodotDisplayCursor", "GodotDisplayScreen", "GodotDisplay", "GodotFetch", "IDHandler", "GodotConfig", "GodotFS", "GodotOS", "GodotEventListeners", "GodotPWA", "GodotRuntime", "GodotInputGamepads", "GodotInputDragDrop", "GodotInput", "GodotWebGL2", "GodotJSWrapper", "IDBFS" ]; + +unexportedSymbols.forEach(unexportedRuntimeSymbol); + +var calledRun; + +dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; +}; + +function callMain(args = []) { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'); + assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called"); + var entryFunction = _main; + args.unshift(thisProgram); + var argc = args.length; + var argv = stackAlloc((argc + 1) * 4); + var argv_ptr = argv >> 2; + args.forEach(arg => { + GROWABLE_HEAP_I32()[argv_ptr++] = stringToUTF8OnStack(arg); + }); + GROWABLE_HEAP_I32()[argv_ptr] = 0; + try { + var ret = entryFunction(argc, argv); + exitJS(ret, true); + return ret; + } catch (e) { + return handleException(e); + } +} + +function stackCheckInit() { + assert(!ENVIRONMENT_IS_PTHREAD); + _emscripten_stack_init(); + writeStackCookie(); +} + +function run(args = arguments_) { + if (runDependencies > 0) { + return; + } + if (!ENVIRONMENT_IS_PTHREAD) stackCheckInit(); + if (ENVIRONMENT_IS_PTHREAD) { + readyPromiseResolve(Module); + initRuntime(); + startWorker(Module); + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + preMain(); + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + if (shouldRunNow) callMain(args); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} + +if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [ Module["preInit"] ]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } +} + +var shouldRunNow = false; + +if (Module["noInitialRun"]) shouldRunNow = false; + +run(); + + + return Godot.ready +} + +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Godot; +else if (typeof define === 'function' && define['amd']) + define([], function() { return Godot; }); +else if (typeof exports === 'object') + exports["Godot"] = Godot; + +const Features = { // eslint-disable-line no-unused-vars + /** + * Check whether WebGL is available. Optionally, specify a particular version of WebGL to check for. + * + * @param {number=} [majorVersion=1] The major WebGL version to check for. + * @returns {boolean} If the given major version of WebGL is available. + * @function Engine.isWebGLAvailable + */ + isWebGLAvailable: function (majorVersion = 1) { + try { + return !!document.createElement('canvas').getContext(['webgl', 'webgl2'][majorVersion - 1]); + } catch (e) { /* Not available */ } + return false; + }, + + /** + * Check whether the Fetch API available and supports streaming responses. + * + * @returns {boolean} If the Fetch API is available and supports streaming responses. + * @function Engine.isFetchAvailable + */ + isFetchAvailable: function () { + return 'fetch' in window && 'Response' in window && 'body' in window.Response.prototype; + }, + + /** + * Check whether the engine is running in a Secure Context. + * + * @returns {boolean} If the engine is running in a Secure Context. + * @function Engine.isSecureContext + */ + isSecureContext: function () { + return window['isSecureContext'] === true; + }, + + /** + * Check whether the engine is cross origin isolated. + * This value is dependent on Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy headers sent by the server. + * + * @returns {boolean} If the engine is running in a Secure Context. + * @function Engine.isSecureContext + */ + isCrossOriginIsolated: function () { + return window['crossOriginIsolated'] === true; + }, + + /** + * Check whether SharedBufferArray is available. + * + * Most browsers require the page to be running in a secure context, and the + * the server to provide specific CORS headers for SharedArrayBuffer to be available. + * + * @returns {boolean} If SharedArrayBuffer is available. + * @function Engine.isSharedArrayBufferAvailable + */ + isSharedArrayBufferAvailable: function () { + return 'SharedArrayBuffer' in window; + }, + + /** + * Check whether the AudioContext supports AudioWorkletNodes. + * + * @returns {boolean} If AudioWorkletNode is available. + * @function Engine.isAudioWorkletAvailable + */ + isAudioWorkletAvailable: function () { + return 'AudioContext' in window && 'audioWorklet' in AudioContext.prototype; + }, + + /** + * Return an array of missing required features (as string). + * + * @returns {Array} A list of human-readable missing features. + * @function Engine.getMissingFeatures + */ + getMissingFeatures: function () { + const missing = []; + if (!Features.isWebGLAvailable(2)) { + missing.push('WebGL2 - Check web browser configuration and hardware support'); + } + if (!Features.isFetchAvailable()) { + missing.push('Fetch - Check web browser version'); + } + if (!Features.isSecureContext()) { + missing.push('Secure Context - Check web server configuration (use HTTPS)'); + } + if (!Features.isCrossOriginIsolated()) { + missing.push('Cross Origin Isolation - Check web server configuration (send correct headers)'); + } + if (!Features.isSharedArrayBufferAvailable()) { + missing.push('SharedArrayBuffer - Check web server configuration (send correct headers)'); + } + // Audio is normally optional since we have a dummy fallback. + return missing; + }, +}; + +const Preloader = /** @constructor */ function () { // eslint-disable-line no-unused-vars + function getTrackedResponse(response, load_status) { + function onloadprogress(reader, controller) { + return reader.read().then(function (result) { + if (load_status.done) { + return Promise.resolve(); + } + if (result.value) { + controller.enqueue(result.value); + load_status.loaded += result.value.length; + } + if (!result.done) { + return onloadprogress(reader, controller); + } + load_status.done = true; + return Promise.resolve(); + }); + } + const reader = response.body.getReader(); + return new Response(new ReadableStream({ + start: function (controller) { + onloadprogress(reader, controller).then(function () { + controller.close(); + }); + }, + }), { headers: response.headers }); + } + + function loadFetch(file, tracker, fileSize, raw) { + tracker[file] = { + total: fileSize || 0, + loaded: 0, + done: false, + }; + return fetch(file).then(function (response) { + if (!response.ok) { + return Promise.reject(new Error(`Failed loading file '${file}'`)); + } + const tr = getTrackedResponse(response, tracker[file]); + if (raw) { + return Promise.resolve(tr); + } + return tr.arrayBuffer(); + }); + } + + function retry(func, attempts = 1) { + function onerror(err) { + if (attempts <= 1) { + return Promise.reject(err); + } + return new Promise(function (resolve, reject) { + setTimeout(function () { + retry(func, attempts - 1).then(resolve).catch(reject); + }, 1000); + }); + } + return func().catch(onerror); + } + + const DOWNLOAD_ATTEMPTS_MAX = 4; + const loadingFiles = {}; + const lastProgress = { loaded: 0, total: 0 }; + let progressFunc = null; + + const animateProgress = function () { + let loaded = 0; + let total = 0; + let totalIsValid = true; + let progressIsFinal = true; + + Object.keys(loadingFiles).forEach(function (file) { + const stat = loadingFiles[file]; + if (!stat.done) { + progressIsFinal = false; + } + if (!totalIsValid || stat.total === 0) { + totalIsValid = false; + total = 0; + } else { + total += stat.total; + } + loaded += stat.loaded; + }); + if (loaded !== lastProgress.loaded || total !== lastProgress.total) { + lastProgress.loaded = loaded; + lastProgress.total = total; + if (typeof progressFunc === 'function') { + progressFunc(loaded, total); + } + } + if (!progressIsFinal) { + requestAnimationFrame(animateProgress); + } + }; + + this.animateProgress = animateProgress; + + this.setProgressFunc = function (callback) { + progressFunc = callback; + }; + + this.loadPromise = function (file, fileSize, raw = false) { + return retry(loadFetch.bind(null, file, loadingFiles, fileSize, raw), DOWNLOAD_ATTEMPTS_MAX); + }; + + this.preloadedFiles = []; + this.preload = function (pathOrBuffer, destPath, fileSize) { + let buffer = null; + if (typeof pathOrBuffer === 'string') { + const me = this; + return this.loadPromise(pathOrBuffer, fileSize).then(function (buf) { + me.preloadedFiles.push({ + path: destPath || pathOrBuffer, + buffer: buf, + }); + return Promise.resolve(); + }); + } else if (pathOrBuffer instanceof ArrayBuffer) { + buffer = new Uint8Array(pathOrBuffer); + } else if (ArrayBuffer.isView(pathOrBuffer)) { + buffer = new Uint8Array(pathOrBuffer.buffer); + } + if (buffer) { + this.preloadedFiles.push({ + path: destPath, + buffer: pathOrBuffer, + }); + return Promise.resolve(); + } + return Promise.reject(new Error('Invalid object for preloading')); + }; +}; + +/** + * An object used to configure the Engine instance based on godot export options, and to override those in custom HTML + * templates if needed. + * + * @header Engine configuration + * @summary The Engine configuration object. This is just a typedef, create it like a regular object, e.g.: + * + * ``const MyConfig = { executable: 'godot', unloadAfterInit: false }`` + * + * @typedef {Object} EngineConfig + */ +const EngineConfig = {}; // eslint-disable-line no-unused-vars + +/** + * @struct + * @constructor + * @ignore + */ +const InternalConfig = function (initConfig) { // eslint-disable-line no-unused-vars + const cfg = /** @lends {InternalConfig.prototype} */ { + /** + * Whether the unload the engine automatically after the instance is initialized. + * + * @memberof EngineConfig + * @default + * @type {boolean} + */ + unloadAfterInit: true, + /** + * The HTML DOM Canvas object to use. + * + * By default, the first canvas element in the document will be used is none is specified. + * + * @memberof EngineConfig + * @default + * @type {?HTMLCanvasElement} + */ + canvas: null, + /** + * The name of the WASM file without the extension. (Set by Godot Editor export process). + * + * @memberof EngineConfig + * @default + * @type {string} + */ + executable: '', + /** + * An alternative name for the game pck to load. The executable name is used otherwise. + * + * @memberof EngineConfig + * @default + * @type {?string} + */ + mainPack: null, + /** + * Specify a language code to select the proper localization for the game. + * + * The browser locale will be used if none is specified. See complete list of + * :ref:`supported locales `. + * + * @memberof EngineConfig + * @type {?string} + * @default + */ + locale: null, + /** + * The canvas resize policy determines how the canvas should be resized by Godot. + * + * ``0`` means Godot won't do any resizing. This is useful if you want to control the canvas size from + * javascript code in your template. + * + * ``1`` means Godot will resize the canvas on start, and when changing window size via engine functions. + * + * ``2`` means Godot will adapt the canvas size to match the whole browser window. + * + * @memberof EngineConfig + * @type {number} + * @default + */ + canvasResizePolicy: 2, + /** + * The arguments to be passed as command line arguments on startup. + * + * See :ref:`command line tutorial `. + * + * **Note**: :js:meth:`startGame ` will always add the ``--main-pack`` argument. + * + * @memberof EngineConfig + * @type {Array} + * @default + */ + args: [], + /** + * When enabled, the game canvas will automatically grab the focus when the engine starts. + * + * @memberof EngineConfig + * @type {boolean} + * @default + */ + focusCanvas: true, + /** + * When enabled, this will turn on experimental virtual keyboard support on mobile. + * + * @memberof EngineConfig + * @type {boolean} + * @default + */ + experimentalVK: false, + /** + * The progressive web app service worker to install. + * @memberof EngineConfig + * @default + * @type {string} + */ + serviceWorker: '', + /** + * @ignore + * @type {Array.} + */ + persistentPaths: ['/userfs'], + /** + * @ignore + * @type {boolean} + */ + persistentDrops: false, + /** + * @ignore + * @type {Array.} + */ + gdextensionLibs: [], + /** + * @ignore + * @type {Array.} + */ + fileSizes: [], + /** + * A callback function for handling Godot's ``OS.execute`` calls. + * + * This is for example used in the Web Editor template to switch between project manager and editor, and for running the game. + * + * @callback EngineConfig.onExecute + * @param {string} path The path that Godot's wants executed. + * @param {Array.} args The arguments of the "command" to execute. + */ + /** + * @ignore + * @type {?function(string, Array.)} + */ + onExecute: null, + /** + * A callback function for being notified when the Godot instance quits. + * + * **Note**: This function will not be called if the engine crashes or become unresponsive. + * + * @callback EngineConfig.onExit + * @param {number} status_code The status code returned by Godot on exit. + */ + /** + * @ignore + * @type {?function(number)} + */ + onExit: null, + /** + * A callback function for displaying download progress. + * + * The function is called once per frame while downloading files, so the usage of ``requestAnimationFrame()`` + * is not necessary. + * + * If the callback function receives a total amount of bytes as 0, this means that it is impossible to calculate. + * Possible reasons include: + * + * - Files are delivered with server-side chunked compression + * - Files are delivered with server-side compression on Chromium + * - Not all file downloads have started yet (usually on servers without multi-threading) + * + * @callback EngineConfig.onProgress + * @param {number} current The current amount of downloaded bytes so far. + * @param {number} total The total amount of bytes to be downloaded. + */ + /** + * @ignore + * @type {?function(number, number)} + */ + onProgress: null, + /** + * A callback function for handling the standard output stream. This method should usually only be used in debug pages. + * + * By default, ``console.log()`` is used. + * + * @callback EngineConfig.onPrint + * @param {...*} [var_args] A variadic number of arguments to be printed. + */ + /** + * @ignore + * @type {?function(...*)} + */ + onPrint: function () { + console.log.apply(console, Array.from(arguments)); // eslint-disable-line no-console + }, + /** + * A callback function for handling the standard error stream. This method should usually only be used in debug pages. + * + * By default, ``console.error()`` is used. + * + * @callback EngineConfig.onPrintError + * @param {...*} [var_args] A variadic number of arguments to be printed as errors. + */ + /** + * @ignore + * @type {?function(...*)} + */ + onPrintError: function (var_args) { + console.error.apply(console, Array.from(arguments)); // eslint-disable-line no-console + }, + }; + + /** + * @ignore + * @struct + * @constructor + * @param {EngineConfig} opts + */ + function Config(opts) { + this.update(opts); + } + + Config.prototype = cfg; + + /** + * @ignore + * @param {EngineConfig} opts + */ + Config.prototype.update = function (opts) { + const config = opts || {}; + // NOTE: We must explicitly pass the default, accessing it via + // the key will fail due to closure compiler renames. + function parse(key, def) { + if (typeof (config[key]) === 'undefined') { + return def; + } + return config[key]; + } + // Module config + this.unloadAfterInit = parse('unloadAfterInit', this.unloadAfterInit); + this.onPrintError = parse('onPrintError', this.onPrintError); + this.onPrint = parse('onPrint', this.onPrint); + this.onProgress = parse('onProgress', this.onProgress); + + // Godot config + this.canvas = parse('canvas', this.canvas); + this.executable = parse('executable', this.executable); + this.mainPack = parse('mainPack', this.mainPack); + this.locale = parse('locale', this.locale); + this.canvasResizePolicy = parse('canvasResizePolicy', this.canvasResizePolicy); + this.persistentPaths = parse('persistentPaths', this.persistentPaths); + this.persistentDrops = parse('persistentDrops', this.persistentDrops); + this.experimentalVK = parse('experimentalVK', this.experimentalVK); + this.focusCanvas = parse('focusCanvas', this.focusCanvas); + this.serviceWorker = parse('serviceWorker', this.serviceWorker); + this.gdextensionLibs = parse('gdextensionLibs', this.gdextensionLibs); + this.fileSizes = parse('fileSizes', this.fileSizes); + this.args = parse('args', this.args); + this.onExecute = parse('onExecute', this.onExecute); + this.onExit = parse('onExit', this.onExit); + }; + + /** + * @ignore + * @param {string} loadPath + * @param {Response} response + */ + Config.prototype.getModuleConfig = function (loadPath, response) { + let r = response; + return { + 'print': this.onPrint, + 'printErr': this.onPrintError, + 'thisProgram': this.executable, + 'noExitRuntime': false, + 'dynamicLibraries': [`${loadPath}.side.wasm`], + 'instantiateWasm': function (imports, onSuccess) { + function done(result) { + onSuccess(result['instance'], result['module']); + } + if (typeof (WebAssembly.instantiateStreaming) !== 'undefined') { + WebAssembly.instantiateStreaming(Promise.resolve(r), imports).then(done); + } else { + r.arrayBuffer().then(function (buffer) { + WebAssembly.instantiate(buffer, imports).then(done); + }); + } + r = null; + return {}; + }, + 'locateFile': function (path) { + if (!path.startsWith('godot.')) { + return path; + } else if (path.endsWith('.worker.js')) { + return `${loadPath}.worker.js`; + } else if (path.endsWith('.audio.worklet.js')) { + return `${loadPath}.audio.worklet.js`; + } else if (path.endsWith('.js')) { + return `${loadPath}.js`; + } else if (path.endsWith('.side.wasm')) { + return `${loadPath}.side.wasm`; + } else if (path.endsWith('.wasm')) { + return `${loadPath}.wasm`; + } + return path; + }, + }; + }; + + /** + * @ignore + * @param {function()} cleanup + */ + Config.prototype.getGodotConfig = function (cleanup) { + // Try to find a canvas + if (!(this.canvas instanceof HTMLCanvasElement)) { + const nodes = document.getElementsByTagName('canvas'); + if (nodes.length && nodes[0] instanceof HTMLCanvasElement) { + const first = nodes[0]; + this.canvas = /** @type {!HTMLCanvasElement} */ (first); + } + if (!this.canvas) { + throw new Error('No canvas found in page'); + } + } + // Canvas can grab focus on click, or key events won't work. + if (this.canvas.tabIndex < 0) { + this.canvas.tabIndex = 0; + } + + // Browser locale, or custom one if defined. + let locale = this.locale; + if (!locale) { + locale = navigator.languages ? navigator.languages[0] : navigator.language; + locale = locale.split('.')[0]; + } + locale = locale.replace('-', '_'); + const onExit = this.onExit; + + // Godot configuration. + return { + 'canvas': this.canvas, + 'canvasResizePolicy': this.canvasResizePolicy, + 'locale': locale, + 'persistentDrops': this.persistentDrops, + 'virtualKeyboard': this.experimentalVK, + 'focusCanvas': this.focusCanvas, + 'onExecute': this.onExecute, + 'onExit': function (p_code) { + cleanup(); // We always need to call the cleanup callback to free memory. + if (typeof (onExit) === 'function') { + onExit(p_code); + } + }, + }; + }; + return new Config(initConfig); +}; + +/** + * Projects exported for the Web expose the :js:class:`Engine` class to the JavaScript environment, that allows + * fine control over the engine's start-up process. + * + * This API is built in an asynchronous manner and requires basic understanding + * of `Promises `__. + * + * @module Engine + * @header Web export JavaScript reference + */ +const Engine = (function () { + const preloader = new Preloader(); + + let loadPromise = null; + let loadPath = ''; + let initPromise = null; + + /** + * @classdesc The ``Engine`` class provides methods for loading and starting exported projects on the Web. For default export + * settings, this is already part of the exported HTML page. To understand practical use of the ``Engine`` class, + * see :ref:`Custom HTML page for Web export `. + * + * @description Create a new Engine instance with the given configuration. + * + * @global + * @constructor + * @param {EngineConfig} initConfig The initial config for this instance. + */ + function Engine(initConfig) { // eslint-disable-line no-shadow + this.config = new InternalConfig(initConfig); + this.rtenv = null; + } + + /** + * Load the engine from the specified base path. + * + * @param {string} basePath Base path of the engine to load. + * @param {number=} [size=0] The file size if known. + * @returns {Promise} A Promise that resolves once the engine is loaded. + * + * @function Engine.load + */ + Engine.load = function (basePath, size) { + if (loadPromise == null) { + loadPath = basePath; + loadPromise = preloader.loadPromise(`${loadPath}.wasm`, size, true); + requestAnimationFrame(preloader.animateProgress); + } + return loadPromise; + }; + + /** + * Unload the engine to free memory. + * + * This method will be called automatically depending on the configuration. See :js:attr:`unloadAfterInit`. + * + * @function Engine.unload + */ + Engine.unload = function () { + loadPromise = null; + }; + + /** + * Safe Engine constructor, creates a new prototype for every new instance to avoid prototype pollution. + * @ignore + * @constructor + */ + function SafeEngine(initConfig) { + const proto = /** @lends Engine.prototype */ { + /** + * Initialize the engine instance. Optionally, pass the base path to the engine to load it, + * if it hasn't been loaded yet. See :js:meth:`Engine.load`. + * + * @param {string=} basePath Base path of the engine to load. + * @return {Promise} A ``Promise`` that resolves once the engine is loaded and initialized. + */ + init: function (basePath) { + if (initPromise) { + return initPromise; + } + if (loadPromise == null) { + if (!basePath) { + initPromise = Promise.reject(new Error('A base path must be provided when calling `init` and the engine is not loaded.')); + return initPromise; + } + Engine.load(basePath, this.config.fileSizes[`${basePath}.wasm`]); + } + const me = this; + function doInit(promise) { + // Care! Promise chaining is bogus with old emscripten versions. + // This caused a regression with the Mono build (which uses an older emscripten version). + // Make sure to test that when refactoring. + return new Promise(function (resolve, reject) { + promise.then(function (response) { + const cloned = new Response(response.clone().body, { 'headers': [['content-type', 'application/wasm']] }); + Godot(me.config.getModuleConfig(loadPath, cloned)).then(function (module) { + const paths = me.config.persistentPaths; + module['initFS'](paths).then(function (err) { + me.rtenv = module; + if (me.config.unloadAfterInit) { + Engine.unload(); + } + resolve(); + }); + }); + }); + }); + } + preloader.setProgressFunc(this.config.onProgress); + initPromise = doInit(loadPromise); + return initPromise; + }, + + /** + * Load a file so it is available in the instance's file system once it runs. Must be called **before** starting the + * instance. + * + * If not provided, the ``path`` is derived from the URL of the loaded file. + * + * @param {string|ArrayBuffer} file The file to preload. + * + * If a ``string`` the file will be loaded from that path. + * + * If an ``ArrayBuffer`` or a view on one, the buffer will used as the content of the file. + * + * @param {string=} path Path by which the file will be accessible. Required, if ``file`` is not a string. + * + * @returns {Promise} A Promise that resolves once the file is loaded. + */ + preloadFile: function (file, path) { + return preloader.preload(file, path, this.config.fileSizes[file]); + }, + + /** + * Start the engine instance using the given override configuration (if any). + * :js:meth:`startGame ` can be used in typical cases instead. + * + * This will initialize the instance if it is not initialized. For manual initialization, see :js:meth:`init `. + * The engine must be loaded beforehand. + * + * Fails if a canvas cannot be found on the page, or not specified in the configuration. + * + * @param {EngineConfig} override An optional configuration override. + * @return {Promise} Promise that resolves once the engine started. + */ + start: function (override) { + this.config.update(override); + const me = this; + return me.init().then(function () { + if (!me.rtenv) { + return Promise.reject(new Error('The engine must be initialized before it can be started')); + } + + let config = {}; + try { + config = me.config.getGodotConfig(function () { + me.rtenv = null; + }); + } catch (e) { + return Promise.reject(e); + } + // Godot configuration. + me.rtenv['initConfig'](config); + + // Preload GDExtension libraries. + const libs = []; + if (me.config.gdextensionLibs.length > 0 && !me.rtenv['loadDynamicLibrary']) { + return Promise.reject(new Error('GDExtension libraries are not supported by this engine version. ' + + 'Enable "Extensions Support" for your export preset and/or build your custom template with "dlink_enabled=yes".')); + } + me.config.gdextensionLibs.forEach(function (lib) { + libs.push(me.rtenv['loadDynamicLibrary'](lib, { 'loadAsync': true })); + }); + return Promise.all(libs).then(function () { + return new Promise(function (resolve, reject) { + preloader.preloadedFiles.forEach(function (file) { + me.rtenv['copyToFS'](file.path, file.buffer); + }); + preloader.preloadedFiles.length = 0; // Clear memory + me.rtenv['callMain'](me.config.args); + initPromise = null; + if (me.config.serviceWorker && 'serviceWorker' in navigator) { + navigator.serviceWorker.register(me.config.serviceWorker); + } + resolve(); + }); + }); + }); + }, + + /** + * Start the game instance using the given configuration override (if any). + * + * This will initialize the instance if it is not initialized. For manual initialization, see :js:meth:`init `. + * + * This will load the engine if it is not loaded, and preload the main pck. + * + * This method expects the initial config (or the override) to have both the :js:attr:`executable` and :js:attr:`mainPack` + * properties set (normally done by the editor during export). + * + * @param {EngineConfig} override An optional configuration override. + * @return {Promise} Promise that resolves once the game started. + */ + startGame: function (override) { + this.config.update(override); + // Add main-pack argument. + const exe = this.config.executable; + const pack = this.config.mainPack || `${exe}.pck`; + this.config.args = ['--main-pack', pack].concat(this.config.args); + // Start and init with execName as loadPath if not inited. + const me = this; + return Promise.all([ + this.init(exe), + this.preloadFile(pack, pack), + ]).then(function () { + return me.start.apply(me); + }); + }, + + /** + * Create a file at the specified ``path`` with the passed as ``buffer`` in the instance's file system. + * + * @param {string} path The location where the file will be created. + * @param {ArrayBuffer} buffer The content of the file. + */ + copyToFS: function (path, buffer) { + if (this.rtenv == null) { + throw new Error('Engine must be inited before copying files'); + } + this.rtenv['copyToFS'](path, buffer); + }, + + /** + * Request that the current instance quit. + * + * This is akin the user pressing the close button in the window manager, and will + * have no effect if the engine has crashed, or is stuck in a loop. + * + */ + requestQuit: function () { + if (this.rtenv) { + this.rtenv['request_quit'](); + } + }, + }; + + Engine.prototype = proto; + // Closure compiler exported instance methods. + Engine.prototype['init'] = Engine.prototype.init; + Engine.prototype['preloadFile'] = Engine.prototype.preloadFile; + Engine.prototype['start'] = Engine.prototype.start; + Engine.prototype['startGame'] = Engine.prototype.startGame; + Engine.prototype['copyToFS'] = Engine.prototype.copyToFS; + Engine.prototype['requestQuit'] = Engine.prototype.requestQuit; + // Also expose static methods as instance methods + Engine.prototype['load'] = Engine.load; + Engine.prototype['unload'] = Engine.unload; + return new Engine(initConfig); + } + + // Closure compiler exported static methods. + SafeEngine['load'] = Engine.load; + SafeEngine['unload'] = Engine.unload; + + // Feature-detection utilities. + SafeEngine['isWebGLAvailable'] = Features.isWebGLAvailable; + SafeEngine['isFetchAvailable'] = Features.isFetchAvailable; + SafeEngine['isSecureContext'] = Features.isSecureContext; + SafeEngine['isCrossOriginIsolated'] = Features.isCrossOriginIsolated; + SafeEngine['isSharedArrayBufferAvailable'] = Features.isSharedArrayBufferAvailable; + SafeEngine['isAudioWorkletAvailable'] = Features.isAudioWorkletAvailable; + SafeEngine['getMissingFeatures'] = Features.getMissingFeatures; + + return SafeEngine; +}()); +if (typeof window !== 'undefined') { + window['Engine'] = Engine; +} diff --git a/build/web/CronoSquare.pck b/build/web/CronoSquare.pck new file mode 100644 index 0000000000000000000000000000000000000000..890b71ce3e8e58a867debe16e486a401c382a963 GIT binary patch literal 2274368 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

7_5uy&7hSIKu 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�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�%FgJ;~8xz^RXdmU^!x29tMLHA#5~r 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

MgTmIBz)@#vo^?Xz5?s6Y`arYEh;`eHhnZEPk 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

c*vK78 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