Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemathinc
GitHub Repository: sagemathinc/python-wasm
Path: blob/main/core/dylink/test/wasi/app.js
1393 views
1
const WASI = require("../../node_modules/wasi-js/dist/").default;
2
const bindings = require("../../node_modules/wasi-js/dist/bindings/node").default;
3
const importWebAssemblyDlopen = require("../../dist").default;
4
const { nonzeroPositions } = require("../../dist/util");
5
const { readFileSync } = require("fs");
6
const assert = require("assert");
7
8
function importWebAssemblySync(path, opts) {
9
const binary = new Uint8Array(readFileSync(path));
10
const mod = new WebAssembly.Module(binary);
11
return new WebAssembly.Instance(mod, opts);
12
}
13
14
async function main() {
15
const memory = new WebAssembly.Memory({ initial: 100 });
16
const wasi = new WASI({ bindings });
17
const importObject = {
18
wasi_snapshot_preview1: wasi.wasiImport,
19
env: {
20
memory,
21
},
22
};
23
const instance = await importWebAssemblyDlopen({
24
path: "app.wasm",
25
importWebAssemblySync,
26
importObject,
27
readFileSync,
28
stub: "silent",
29
allowMainExports: true,
30
});
31
wasi.start(instance, memory);
32
exports.instance = instance;
33
exports.wasi = wasi;
34
}
35
36
main();
37
38