mirror of
https://github.com/denoland/deno.git
synced 2024-11-29 16:30:56 -05:00
docs(std/wasi): fix usage example (#7808)
The usage example is a bit out of date and not compatible with the stricter definition of the WebAssembly namespace. This fixes that and makes it a bit cleaner.
This commit is contained in:
parent
ae1ed2d166
commit
e8b93674ed
1 changed files with 16 additions and 8 deletions
|
@ -59,23 +59,31 @@ 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 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.",
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
|
|
Loading…
Reference in a new issue