summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2022-04-27 00:53:05 -0700
committerDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2022-04-27 00:56:26 -0700
commit5dce742cc9593dce4c07233d15e11e1320ef6d13 (patch)
treea4502a21149da2d55da44ecb912740b3f896e14a /web
parenta273e90b445ec82a04f92187adfe610cd0703dba (diff)
downloaddartboat-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.
Diffstat (limited to 'web')
-rw-r--r--web/dartboat_wasm.c7
-rw-r--r--web/static/dartboat.js8
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');
+}