| import * as env from 'env'; | |
| function Table(ret) { | |
| // grow method not included; table is not growable | |
| ret.set = function(i, func) { | |
| this[i] = func; | |
| }; | |
| ret.get = function(i) { | |
| return this[i]; | |
| }; | |
| return ret; | |
| } | |
| var bufferView; | |
| var base64ReverseLookup = new Uint8Array(123/*'z'+1*/); | |
| for (var 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) - (b64[bLength-2] == '=') - (b64[bLength-1] == '='); | |
| for (; i < bLength; i += 4) { | |
| b1 = base64ReverseLookup[b64.charCodeAt(i+1)]; | |
| b2 = base64ReverseLookup[b64.charCodeAt(i+2)]; | |
| uint8Array[j++] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4; | |
| if (j < end) uint8Array[j++] = b1 << 4 | b2 >> 2; | |
| if (j < end) uint8Array[j++] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i+3)]; | |
| } | |
| return uint8Array; | |
| } | |
| function initActiveSegments(imports) { | |
| base64DecodeToExistingUint8Array(bufferView, imports['env']['memoryBase'], "ZHluYW1pYyBkYXRh"); | |
| } | |
| function asmFunc(imports) { | |
| var env = imports.env; | |
| var memory = env.memory; | |
| var buffer = memory.buffer; | |
| var HEAP8 = new Int8Array(buffer); | |
| var HEAP16 = new Int16Array(buffer); | |
| var HEAP32 = new Int32Array(buffer); | |
| var HEAPU8 = new Uint8Array(buffer); | |
| var HEAPU16 = new Uint16Array(buffer); | |
| var HEAPU32 = new Uint32Array(buffer); | |
| var HEAPF32 = new Float32Array(buffer); | |
| var HEAPF64 = new Float64Array(buffer); | |
| var Math_imul = Math.imul; | |
| var Math_fround = Math.fround; | |
| var Math_abs = Math.abs; | |
| var Math_clz32 = Math.clz32; | |
| var Math_min = Math.min; | |
| var Math_max = Math.max; | |
| var Math_floor = Math.floor; | |
| var Math_ceil = Math.ceil; | |
| var Math_trunc = Math.trunc; | |
| var Math_sqrt = Math.sqrt; | |
| var import$memoryBase = env.memoryBase | 0; | |
| var import$tableBase = env.tableBase | 0; | |
| function foo() { | |
| } | |
| bufferView = HEAPU8; | |
| initActiveSegments(imports); | |
| var FUNCTION_TABLE = Table(new Array(10)); | |
| FUNCTION_TABLE[import$tableBase + 0] = foo; | |
| FUNCTION_TABLE[import$tableBase + 1] = foo; | |
| function __wasm_memory_size() { | |
| return buffer.byteLength >> 16; | |
| } | |
| return { | |
| "baz": foo, | |
| "tab": FUNCTION_TABLE | |
| }; | |
| } | |
| var memasmFunc = new ArrayBuffer(16777216); | |
| var retasmFunc = asmFunc({ | |
| "env": { | |
| memory: { buffer : memasmFunc } | |
| }, | |
| }); | |
| export var baz = retasmFunc.baz; |