123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // when running the harness we need to make sure to uncommon this out...
- export function makeLoad(url, deps, fusedImports, initIt) {
- let alreadyLoaded = false;
- return async (callbackIndex, callbackData) => {
- await Promise.all(deps.map((dep) => dep()));
- if (alreadyLoaded) return;
- try {
- const response = await fetch(url);
- const initSync = initIt || window.__wasm_split_main_initSync;
- const mainExports = initSync(undefined, undefined);
- let imports = {
- env: {
- memory: mainExports.memory,
- },
- __wasm_split: {
- __indirect_function_table: mainExports.__indirect_function_table,
- __stack_pointer: mainExports.__stack_pointer,
- __tls_base: mainExports.__tls_base,
- memory: mainExports.memory,
- },
- };
- for (let mainExport in mainExports) {
- imports["__wasm_split"][mainExport] = mainExports[mainExport];
- }
- for (let name in fusedImports) {
- imports["__wasm_split"][name] = fusedImports[name];
- }
- let new_exports = await WebAssembly.instantiateStreaming(
- response,
- imports
- );
- alreadyLoaded = true;
- for (let name in new_exports.instance.exports) {
- fusedImports[name] = new_exports.instance.exports[name];
- }
- if (callbackIndex !== undefined) {
- mainExports.__indirect_function_table.get(callbackIndex)(
- callbackData,
- true
- );
- }
- } catch (e) {
- console.error(
- "Failed to load wasm-split module",
- e,
- url,
- deps,
- fusedImports
- );
- return;
- }
- };
- }
- let fusedImports = {};
|