summaryrefslogtreecommitdiff
path: root/ports/webassembly/api.js
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-04-24 13:00:20 +1000
committerDamien George <damien@micropython.org>2024-04-24 13:15:54 +1000
commit45848f77cac07dac1c77680041862ba444c1f3a3 (patch)
tree616d30f049ef777b0b3fea59ac71fcfaf12cee0a /ports/webassembly/api.js
parent49ce7a607517dc0152a4f8768f5d03b3e5613e02 (diff)
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 <damien@micropython.org>
Diffstat (limited to 'ports/webassembly/api.js')
-rw-r--r--ports/webassembly/api.js8
1 files changed, 2 insertions, 6 deletions
diff --git a/ports/webassembly/api.js b/ports/webassembly/api.js
index 7d1832af4..2459075fc 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) => {