| function instantiate(asmLibraryArg, wasmMemory, wasmTable) { |
| |
| function asmFunc(global, env, buffer) { |
| var memory = env.memory; |
| var HEAP8 = new global.Int8Array(buffer); |
| var HEAP16 = new global.Int16Array(buffer); |
| var HEAP32 = new global.Int32Array(buffer); |
| var HEAPU8 = new global.Uint8Array(buffer); |
| var HEAPU16 = new global.Uint16Array(buffer); |
| var HEAPU32 = new global.Uint32Array(buffer); |
| var HEAPF32 = new global.Float32Array(buffer); |
| var HEAPF64 = new global.Float64Array(buffer); |
| var Math_imul = global.Math.imul; |
| var Math_fround = global.Math.fround; |
| var Math_abs = global.Math.abs; |
| var Math_clz32 = global.Math.clz32; |
| var Math_min = global.Math.min; |
| var Math_max = global.Math.max; |
| var Math_floor = global.Math.floor; |
| var Math_ceil = global.Math.ceil; |
| var Math_sqrt = global.Math.sqrt; |
| var abort = env.abort; |
| var nan = global.NaN; |
| var infinity = global.Infinity; |
| // EMSCRIPTEN_START_FUNCS |
| ; |
| // EMSCRIPTEN_END_FUNCS |
| ; |
| var FUNCTION_TABLE = []; |
| function __wasm_memory_size() { |
| return buffer.byteLength / 65536 | 0; |
| } |
| |
| function __wasm_memory_grow(pagesToAdd) { |
| pagesToAdd = pagesToAdd | 0; |
| var oldPages = __wasm_memory_size() | 0; |
| var newPages = oldPages + pagesToAdd | 0; |
| if ((oldPages < newPages) && (newPages < 65536)) { |
| var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536)); |
| var newHEAP8 = new global.Int8Array(newBuffer); |
| newHEAP8.set(HEAP8); |
| HEAP8 = newHEAP8; |
| HEAP8 = new global.Int8Array(newBuffer); |
| HEAP16 = new global.Int16Array(newBuffer); |
| HEAP32 = new global.Int32Array(newBuffer); |
| HEAPU8 = new global.Uint8Array(newBuffer); |
| HEAPU16 = new global.Uint16Array(newBuffer); |
| HEAPU32 = new global.Uint32Array(newBuffer); |
| HEAPF32 = new global.Float32Array(newBuffer); |
| HEAPF64 = new global.Float64Array(newBuffer); |
| buffer = newBuffer; |
| memory.buffer = newBuffer; |
| } |
| return oldPages; |
| } |
| |
| return { |
| "memory": Object.create(Object.prototype, { |
| "grow": { |
| "value": __wasm_memory_grow |
| }, |
| "buffer": { |
| "get": function () { |
| return buffer; |
| } |
| |
| } |
| }) |
| }; |
| } |
| |
| for (var base64ReverseLookup = new Uint8Array(123/*'z'+1*/), i = 25; i >= 0; --i) { |
| base64ReverseLookup[48+i] = 52+i; // '0-9' |
| base64ReverseLookup[65+i] = i; // 'A-Z' |
| base64ReverseLookup[97+i] = 26+i; // 'a-z' |
| } |
| base64ReverseLookup[43] = 62; // '+' |
| base64ReverseLookup[47] = 63; // '/' |
| /** @noinline Inlining this function would mean expanding the base64 string 4x times in the source code, which Closure seems to be happy to do. */ |
| function base64DecodeToExistingUint8Array(uint8Array, offset, b64) { |
| var b1, b2, i = 0, j = offset, bLength = b64.length, end = offset + (bLength*3>>2); |
| if (b64[bLength-2] == '=') --end; |
| if (b64[bLength-1] == '=') --end; |
| for (; i < bLength; i += 4, j += 3) { |
| b1 = base64ReverseLookup[b64.charCodeAt(i+1)]; |
| b2 = base64ReverseLookup[b64.charCodeAt(i+2)]; |
| uint8Array[j] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4; |
| if (j+1 < end) uint8Array[j+1] = b1 << 4 | b2 >> 2; |
| if (j+2 < end) uint8Array[j+2] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i+3)]; |
| } |
| } |
| var bufferView = new Uint8Array(wasmMemory.buffer); |
| base64DecodeToExistingUint8Array(bufferView, 1600, "YWJj"); |
| return asmFunc({ |
| 'Int8Array': Int8Array, |
| 'Int16Array': Int16Array, |
| 'Int32Array': Int32Array, |
| 'Uint8Array': Uint8Array, |
| 'Uint16Array': Uint16Array, |
| 'Uint32Array': Uint32Array, |
| 'Float32Array': Float32Array, |
| 'Float64Array': Float64Array, |
| 'NaN': NaN, |
| 'Infinity': Infinity, |
| 'Math': Math |
| }, |
| asmLibraryArg, |
| wasmMemory.buffer |
| ) |
| |
| } |