summaryrefslogtreecommitdiff
path: root/boot.js
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2023-11-17 12:36:15 -0500
committerDavid Thompson <dthompson2@worcester.edu>2023-11-17 12:36:15 -0500
commit67bd60d48461560b34ec53a01d439f55a32afd81 (patch)
tree0057b2f2e31f18105aa37d0ea3232e674908de74 /boot.js
parent02d1d5540f10511432a6f31781bea0d077885881 (diff)
Update to work on latest guile-hoot... sort of.
There's one uncommitted fix I'm using that is my local guile-hoot repo. Shouldn't be like that for long.
Diffstat (limited to 'boot.js')
-rw-r--r--boot.js35
1 files changed, 9 insertions, 26 deletions
diff --git a/boot.js b/boot.js
index fbb2468..38c91f0 100644
--- a/boot.js
+++ b/boot.js
@@ -1,20 +1,5 @@
async function load() {
- const procMap = new WeakMap();
-
- function wrapProc(obj) {
- function makeWrapper() {
- const proc = scheme.to_js(obj);
- function wrapper (...args) {
- return proc.call(...args);
- }
- procMap.set(obj, wrapper);
- return wrapper;
- }
-
- return procMap.get(obj) || makeWrapper();
- }
-
- const mod = await SchemeModule.fetch_and_instantiate("game.wasm", {}, {
+ const mod = await Scheme.load_main("game.wasm", {}, {
window: {
get() {
return window;
@@ -25,11 +10,11 @@ async function load() {
innerHeight() {
return window.innerHeight;
},
- requestAnimationFrame(proc) {
- window.requestAnimationFrame(wrapProc(proc));
+ requestAnimationFrame(f) {
+ window.requestAnimationFrame(f);
},
- setTimeout(proc, delay) {
- window.setTimeout(wrapProc(proc), delay);
+ setTimeout(f, delay) {
+ window.setTimeout(f, delay);
}
},
document: {
@@ -67,11 +52,11 @@ async function load() {
replaceWith(oldElem, newElem) {
oldElem.replaceWith(newElem);
},
- addEventListener(elem, name, proc) {
- elem.addEventListener(name, wrapProc(proc));
+ addEventListener(elem, name, f) {
+ elem.addEventListener(name, f);
},
- removeEventListener(elem, name, proc) {
- elem.removeEventListener(name, wrapProc(proc));
+ removeEventListener(elem, name, f) {
+ elem.removeEventListener(name, f);
},
clone(elem) {
return elem.cloneNode();
@@ -151,7 +136,5 @@ async function load() {
}
}
});
- const scheme = await mod.reflect();
- scheme.init_module(mod);
}
window.addEventListener("load", load);