themblem/alg/pre.wx.js
2025-10-29 21:27:29 +00:00

49 lines
1.3 KiB
JavaScript

var window = {};
var WA = WXWebAssembly;
var WebAssembly = WA;
WebAssembly.RuntimeErrror = Error;
var performance = {
now: Date.now,
};
// Local variable to store WASM path
var wasmFilePath = null;
// Store instantiateWasm parameters for later use
var pendingInstantiation = null;
// Exported function to set WASM path
Module['setWasmPath'] = (path) => {
console.log("Setting WASM path:", path);
wasmFilePath = path;
// If instantiateWasm was called before the path was set, call it now
if (pendingInstantiation) {
var {info, receiveInstance} = pendingInstantiation;
pendingInstantiation = null;
doInstantiateWasm(info, receiveInstance);
}
};
function doInstantiateWasm(info, receiveInstance) {
console.log("loading wasm...", info);
console.log("Using WASM path:", wasmFilePath);
WebAssembly.instantiate(wasmFilePath, info).then((result) => {
console.log("result:", result);
var inst = result['instance'];
receiveInstance(inst);
});
}
Module['instantiateWasm'] = (info, receiveInstance) => {
// If WASM path is already set, proceed immediately
if (wasmFilePath) {
doInstantiateWasm(info, receiveInstance);
} else {
// Otherwise, store parameters for later use
console.log("WASM path not set yet, deferring instantiation...");
pendingInstantiation = {info, receiveInstance};
}
}