()
| 2267 | var loadWebAssemblyModule = /* @__PURE__ */ __name((binary, flags, libName, localScope, handle) => { |
| 2268 | var metadata = getDylinkMetadata(binary); |
| 2269 | function loadModule() { |
| 2270 | var memAlign = Math.pow(2, metadata.memoryAlign); |
| 2271 | var memoryBase = metadata.memorySize ? alignMemory(getMemory(metadata.memorySize + memAlign), memAlign) : 0; |
| 2272 | var tableBase = metadata.tableSize ? wasmTable.length : 0; |
| 2273 | if (handle) { |
| 2274 | HEAP8[handle + 8] = 1; |
| 2275 | LE_HEAP_STORE_U32((handle + 12 >> 2) * 4, memoryBase); |
| 2276 | LE_HEAP_STORE_I32((handle + 16 >> 2) * 4, metadata.memorySize); |
| 2277 | LE_HEAP_STORE_U32((handle + 20 >> 2) * 4, tableBase); |
| 2278 | LE_HEAP_STORE_I32((handle + 24 >> 2) * 4, metadata.tableSize); |
| 2279 | } |
| 2280 | if (metadata.tableSize) { |
| 2281 | wasmTable.grow(metadata.tableSize); |
| 2282 | } |
| 2283 | var moduleExports; |
| 2284 | function resolveSymbol(sym) { |
| 2285 | var resolved = resolveGlobalSymbol(sym).sym; |
| 2286 | if (!resolved && localScope) { |
| 2287 | resolved = localScope[sym]; |
| 2288 | } |
| 2289 | if (!resolved) { |
| 2290 | resolved = moduleExports[sym]; |
| 2291 | } |
| 2292 | return resolved; |
| 2293 | } |
| 2294 | __name(resolveSymbol, "resolveSymbol"); |
| 2295 | var proxyHandler = { |
| 2296 | get(stubs, prop) { |
| 2297 | switch (prop) { |
| 2298 | case "__memory_base": |
| 2299 | return memoryBase; |
| 2300 | case "__table_base": |
| 2301 | return tableBase; |
| 2302 | } |
| 2303 | if (prop in wasmImports && !wasmImports[prop].stub) { |
| 2304 | var res = wasmImports[prop]; |
| 2305 | return res; |
| 2306 | } |
| 2307 | if (!(prop in stubs)) { |
| 2308 | var resolved; |
| 2309 | stubs[prop] = (...args2) => { |
| 2310 | resolved ||= resolveSymbol(prop); |
| 2311 | return resolved(...args2); |
| 2312 | }; |
| 2313 | } |
| 2314 | return stubs[prop]; |
| 2315 | } |
| 2316 | }; |
| 2317 | var proxy = new Proxy({}, proxyHandler); |
| 2318 | currentModuleWeakSymbols = metadata.weakImports; |
| 2319 | var info = { |
| 2320 | "GOT.mem": new Proxy({}, GOTHandler), |
| 2321 | "GOT.func": new Proxy({}, GOTHandler), |
| 2322 | "env": proxy, |
| 2323 | "wasi_snapshot_preview1": proxy |
| 2324 | }; |
| 2325 | function postInstantiation(module, instance) { |
| 2326 | updateTableMap(tableBase, metadata.tableSize); |
no test coverage detected