diff options
author | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2022-04-27 00:53:05 -0700 |
---|---|---|
committer | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2022-04-27 00:56:26 -0700 |
commit | 5dce742cc9593dce4c07233d15e11e1320ef6d13 (patch) | |
tree | a4502a21149da2d55da44ecb912740b3f896e14a | |
parent | a273e90b445ec82a04f92187adfe610cd0703dba (diff) | |
download | dartboat-5dce742cc9593dce4c07233d15e11e1320ef6d13.tar.gz dartboat-5dce742cc9593dce4c07233d15e11e1320ef6d13.tar.xz |
web: handle race condition on load
This is incredibly unlikely to ever matter unless your browser is a
potato.
-rw-r--r-- | web/dartboat_wasm.c | 7 | ||||
-rw-r--r-- | web/static/dartboat.js | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/web/dartboat_wasm.c b/web/dartboat_wasm.c index 7c06849..c3091e9 100644 --- a/web/dartboat_wasm.c +++ b/web/dartboat_wasm.c @@ -628,9 +628,14 @@ EMSCRIPTEN_KEEPALIVE void prompt_handle(char *command, char *data) prompt_handle_undo(); } -int main() +EMSCRIPTEN_KEEPALIVE void init() { init_boat(); set_prompt_mode(PM_VISIT); handle_next(); } + +int main() +{ + EM_ASM(boatReady()); +} diff --git a/web/static/dartboat.js b/web/static/dartboat.js index 285a98e..06d9d10 100644 --- a/web/static/dartboat.js +++ b/web/static/dartboat.js @@ -209,3 +209,11 @@ document.addEventListener('keydown', e => { else if (e.key == 'u') promptHandle('undo'); }); + +function boatReady() { + if (document.readyState === 'loading') + document.addEventListener('DOMContentLoaded', () => + Module.ccall('init')); + else + Module.ccall('init'); +} |