|
| 1 | +var Module; |
| 2 | +if (!Module) Module = "__EMSCRIPTEN_PRIVATE_MODULE_EXPORT_NAME_SUBSTITUTION__"; |
| 3 | +var ENVIRONMENT_IS_NODE = typeof process === "object"; |
| 4 | +if (ENVIRONMENT_IS_NODE) { |
| 5 | + var fs = require("fs"); |
| 6 | + Module["wasm"] = fs.readFileSync(__dirname + "/a.wasm"); |
| 7 | +} |
| 8 | +function out(text) { |
| 9 | + console.log(text); |
| 10 | +} |
| 11 | +function err(text) { |
| 12 | + console.error(text); |
| 13 | +} |
| 14 | +function ready() { |
| 15 | + run(); |
| 16 | +} |
| 17 | +function abort(what) { |
| 18 | + throw what; |
| 19 | +} |
| 20 | +var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; |
| 21 | +function UTF8ArrayToString(u8Array, idx, maxBytesToRead) { |
| 22 | + var endIdx = idx + maxBytesToRead; |
| 23 | + var endPtr = idx; |
| 24 | + while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr; |
| 25 | + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { |
| 26 | + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); |
| 27 | + } else { |
| 28 | + var str = ""; |
| 29 | + while (idx < endPtr) { |
| 30 | + var u0 = u8Array[idx++]; |
| 31 | + if (!(u0 & 128)) { |
| 32 | + str += String.fromCharCode(u0); |
| 33 | + continue; |
| 34 | + } |
| 35 | + var u1 = u8Array[idx++] & 63; |
| 36 | + if ((u0 & 224) == 192) { |
| 37 | + str += String.fromCharCode((u0 & 31) << 6 | u1); |
| 38 | + continue; |
| 39 | + } |
| 40 | + var u2 = u8Array[idx++] & 63; |
| 41 | + if ((u0 & 240) == 224) { |
| 42 | + u0 = (u0 & 15) << 12 | u1 << 6 | u2; |
| 43 | + } else { |
| 44 | + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u8Array[idx++] & 63; |
| 45 | + } |
| 46 | + if (u0 < 65536) { |
| 47 | + str += String.fromCharCode(u0); |
| 48 | + } else { |
| 49 | + var ch = u0 - 65536; |
| 50 | + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); |
| 51 | + } |
| 52 | + } |
| 53 | + } |
| 54 | + return str; |
| 55 | +} |
| 56 | +function UTF8ToString(ptr, maxBytesToRead) { |
| 57 | + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; |
| 58 | +} |
| 59 | +var TOTAL_MEMORY = 16777216, STATIC_BASE = 1024, DYNAMICTOP_PTR = 6016; |
| 60 | +var wasmMaximumMemory = TOTAL_MEMORY; |
| 61 | +var wasmMemory = new WebAssembly.Memory({ |
| 62 | + "initial": TOTAL_MEMORY >> 16, |
| 63 | + "maximum": wasmMaximumMemory >> 16 |
| 64 | +}); |
| 65 | +var buffer = wasmMemory.buffer; |
| 66 | +var HEAP8 = new Int8Array(buffer); |
| 67 | +var HEAP16 = new Int16Array(buffer); |
| 68 | +var HEAP32 = new Int32Array(buffer); |
| 69 | +var HEAPU8 = new Uint8Array(buffer); |
| 70 | +var HEAPU16 = new Uint16Array(buffer); |
| 71 | +var HEAPU32 = new Uint32Array(buffer); |
| 72 | +var HEAPF32 = new Float32Array(buffer); |
| 73 | +var HEAPF64 = new Float64Array(buffer); |
| 74 | +HEAP32[DYNAMICTOP_PTR >> 2] = 5249152; |
| 75 | +var SYSCALLS = { |
| 76 | + buffers: [ null, [], [] ], |
| 77 | + printChar: (function(stream, curr) { |
| 78 | + var buffer = SYSCALLS.buffers[stream]; |
| 79 | + if (curr === 0 || curr === 10) { |
| 80 | + (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0)); |
| 81 | + buffer.length = 0; |
| 82 | + } else { |
| 83 | + buffer.push(curr); |
| 84 | + } |
| 85 | + }), |
| 86 | + varargs: 0, |
| 87 | + get: (function(varargs) { |
| 88 | + SYSCALLS.varargs += 4; |
| 89 | + var ret = HEAP32[SYSCALLS.varargs - 4 >> 2]; |
| 90 | + return ret; |
| 91 | + }), |
| 92 | + getStr: (function() { |
| 93 | + var ret = UTF8ToString(SYSCALLS.get()); |
| 94 | + return ret; |
| 95 | + }), |
| 96 | + get64: (function() { |
| 97 | + var low = SYSCALLS.get(), high = SYSCALLS.get(); |
| 98 | + return low; |
| 99 | + }), |
| 100 | + getZero: (function() { |
| 101 | + SYSCALLS.get(); |
| 102 | + }) |
| 103 | +}; |
| 104 | +function ___syscall140(which, varargs) { |
| 105 | + SYSCALLS.varargs = varargs; |
| 106 | + try { |
| 107 | + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); |
| 108 | + var offset = offset_low; |
| 109 | + FS.llseek(stream, offset, whence); |
| 110 | + HEAP32[result >> 2] = stream.position; |
| 111 | + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; |
| 112 | + return 0; |
| 113 | + } catch (e) { |
| 114 | + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); |
| 115 | + return -e.errno; |
| 116 | + } |
| 117 | +} |
| 118 | +function ___syscall146(which, varargs) { |
| 119 | + SYSCALLS.varargs = varargs; |
| 120 | + try { |
| 121 | + var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); |
| 122 | + var ret = 0; |
| 123 | + for (var i = 0; i < iovcnt; i++) { |
| 124 | + var ptr = HEAP32[iov + i * 8 >> 2]; |
| 125 | + var len = HEAP32[iov + (i * 8 + 4) >> 2]; |
| 126 | + for (var j = 0; j < len; j++) { |
| 127 | + SYSCALLS.printChar(stream, HEAPU8[ptr + j]); |
| 128 | + } |
| 129 | + ret += len; |
| 130 | + } |
| 131 | + return ret; |
| 132 | + } catch (e) { |
| 133 | + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); |
| 134 | + return -e.errno; |
| 135 | + } |
| 136 | +} |
| 137 | +function ___syscall54(which, varargs) { |
| 138 | + SYSCALLS.varargs = varargs; |
| 139 | + try { |
| 140 | + return 0; |
| 141 | + } catch (e) { |
| 142 | + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); |
| 143 | + return -e.errno; |
| 144 | + } |
| 145 | +} |
| 146 | +function ___syscall6(which, varargs) { |
| 147 | + SYSCALLS.varargs = varargs; |
| 148 | + try { |
| 149 | + var stream = SYSCALLS.getStreamFromFD(); |
| 150 | + FS.close(stream); |
| 151 | + return 0; |
| 152 | + } catch (e) { |
| 153 | + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); |
| 154 | + return -e.errno; |
| 155 | + } |
| 156 | +} |
| 157 | +function _emscripten_get_now() { |
| 158 | + abort(); |
| 159 | +} |
| 160 | +function _emscripten_random() { |
| 161 | + return Math.random(); |
| 162 | +} |
| 163 | +function _emscripten_memcpy_big(dest, src, num) { |
| 164 | + HEAPU8.set(HEAPU8.subarray(src, src + num), dest); |
| 165 | +} |
| 166 | +if (ENVIRONMENT_IS_NODE) { |
| 167 | + _emscripten_get_now = function _emscripten_get_now_actual() { |
| 168 | + var t = process["hrtime"](); |
| 169 | + return t[0] * 1e3 + t[1] / 1e6; |
| 170 | + }; |
| 171 | +} else if (typeof dateNow !== "undefined") { |
| 172 | + _emscripten_get_now = dateNow; |
| 173 | +} else if (typeof self === "object" && self["performance"] && typeof self["performance"]["now"] === "function") { |
| 174 | + _emscripten_get_now = (function() { |
| 175 | + return self["performance"]["now"](); |
| 176 | + }); |
| 177 | +} else if (typeof performance === "object" && typeof performance["now"] === "function") { |
| 178 | + _emscripten_get_now = (function() { |
| 179 | + return performance["now"](); |
| 180 | + }); |
| 181 | +} else { |
| 182 | + _emscripten_get_now = Date.now; |
| 183 | +} |
| 184 | +var asmLibraryArg = { |
| 185 | + "b": abort, |
| 186 | + "h": ___syscall140, |
| 187 | + "a": ___syscall146, |
| 188 | + "g": ___syscall54, |
| 189 | + "f": ___syscall6, |
| 190 | + "e": _emscripten_get_now, |
| 191 | + "d": _emscripten_memcpy_big, |
| 192 | + "c": _emscripten_random |
| 193 | +}; |
| 194 | +function run() { |
| 195 | + var ret = _main(); |
| 196 | +} |
| 197 | +function initRuntime(asm) { |
| 198 | + asm["i"](); |
| 199 | +} |
| 200 | +var env = asmLibraryArg; |
| 201 | +env["memory"] = wasmMemory; |
| 202 | +env["table"] = new WebAssembly.Table({ |
| 203 | + "initial": 6, |
| 204 | + "maximum": 6, |
| 205 | + "element": "anyfunc" |
| 206 | +}); |
| 207 | +env["__memory_base"] = STATIC_BASE; |
| 208 | +env["__table_base"] = 0; |
| 209 | +var imports = { |
| 210 | + "env": env, |
| 211 | + "global": { |
| 212 | + "NaN": NaN, |
| 213 | + "Infinity": Infinity |
| 214 | + }, |
| 215 | + "global.Math": Math, |
| 216 | + "asm2wasm": { |
| 217 | + "f64-rem": (function(x, y) { |
| 218 | + return x % y; |
| 219 | + }), |
| 220 | + "debugger": (function() { |
| 221 | + debugger; |
| 222 | + }) |
| 223 | + } |
| 224 | +}; |
| 225 | +var ___errno_location, _llvm_bswap_i32, _main, _memcpy, _memset, dynCall_ii, dynCall_iiii; |
| 226 | +WebAssembly.instantiate(Module["wasm"], imports).then((function(output) { |
| 227 | + var asm = output.instance.exports; |
| 228 | + ___errno_location = asm["j"]; |
| 229 | + _llvm_bswap_i32 = asm["k"]; |
| 230 | + _main = asm["l"]; |
| 231 | + _memcpy = asm["m"]; |
| 232 | + _memset = asm["n"]; |
| 233 | + dynCall_ii = asm["o"]; |
| 234 | + dynCall_iiii = asm["p"]; |
| 235 | + initRuntime(asm); |
| 236 | + ready(); |
| 237 | +})); |
0 commit comments