Path: blob/main/core/dylink/test/python-extension/app.js
1393 views
const WASI = require("../../node_modules/wasi-js/dist/").default;1const bindings = require("../../node_modules/wasi-js/dist/bindings/node").default;2const importWebAssemblyDlopen = require("../../dist").default;3const { nonzeroPositions } = require("../../dist/util");4const { readFileSync } = require("fs");5const assert = require("assert");67function importWebAssemblySync(path, importObject) {8const binary = new Uint8Array(readFileSync(path));9const mod = new WebAssembly.Module(binary);10return new WebAssembly.Instance(mod, importObject);11}1213const table = new WebAssembly.Table({ initial: 2000, element: "anyfunc" });14exports.table = table;1516async function main() {17const memory = new WebAssembly.Memory({ initial: 100 });18const wasi = new WASI({ bindings });19const importObject = {20wasi_snapshot_preview1: wasi.wasiImport,21env: {22memory,23__indirect_function_table: table,24//time: () => new Date().valueOf();25},26};27const instance = await importWebAssemblyDlopen({28path: "app.wasm",29importWebAssemblySync,30importObject,31stub: true,32readFileSync,33allowMainExports: true,34});35wasi.start(instance, memory);36exports.instance = instance;37exports.wasi = wasi;38}3940main();414243