From 45848f77cac07dac1c77680041862ba444c1f3a3 Mon Sep 17 00:00:00 2001 From: Damien George Date: Wed, 24 Apr 2024 13:00:20 +1000 Subject: [PATCH] webassembly/api: Fix waiting for Emscripten module to be loaded. In modularize mode, the `_createMicroPythonModule()` constructor must be await'ed on, before `Module` is ready to use. Signed-off-by: Damien George --- ports/webassembly/api.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ports/webassembly/api.js b/ports/webassembly/api.js index 7d1832af4f..2459075fc5 100644 --- a/ports/webassembly/api.js +++ b/ports/webassembly/api.js @@ -38,7 +38,7 @@ export async function loadMicroPython(options) { { heapsize: 1024 * 1024, linebuffer: true }, options, ); - const Module = {}; + let Module = {}; Module.locateFile = (path, scriptDirectory) => url || scriptDirectory + path; Module._textDecoder = new TextDecoder(); @@ -83,11 +83,7 @@ export async function loadMicroPython(options) { Module.stderr = (c) => stderr(new Uint8Array([c])); } } - const moduleLoaded = new Promise((r) => { - Module.postRun = r; - }); - _createMicroPythonModule(Module); - await moduleLoaded; + Module = await _createMicroPythonModule(Module); globalThis.Module = Module; proxy_js_init(); const pyimport = (name) => {