diff options
Diffstat (limited to 'boot.js')
-rw-r--r-- | boot.js | 35 |
1 files changed, 9 insertions, 26 deletions
@@ -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); |