diff --git a/std/wasi/README.md b/std/wasi/README.md index 580e7ddd01448e..dd8b5974e947ab 100644 --- a/std/wasi/README.md +++ b/std/wasi/README.md @@ -59,23 +59,29 @@ import Context from "https://deno.land/std/wasi/snapshot_preview1.ts"; const context = new Context({ args: Deno.args, - env: Deno.env, + env: Deno.env.toObject(), }); -const binary = await Deno.readFile("path/to/your/module.wasm"); +const binary = await Deno.readFile("path/to/module.wasm"); const module = await WebAssembly.compile(binary); const instance = await WebAssembly.instantiate(module, { - wasi_snapshot_preview1: context.exports, + "wasi_snapshot_preview1": context.exports, }); -context.memory = context.exports.memory; +const { + _start: start, + _initialize: initialize, + memory, +} = instance.exports; -if (module.exports._start) { - instance.exports._start(); -} else if (module.exports._initialize) { - instance.exports._initialize(); +context.memory = memory as WebAssembly.Memory; + +if (start instanceof Function) { + start(); +} else if (initialize instanceof Function) { + initialize(); } else { - throw new Error("No entry point found"); + throw new Error("No '_start' or '_initialize' entry point found in WebAssembly module, make sure to compile with wasm32-wasi as the target."); } ```