diff --git a/loader.mjs b/loader.mjs index 0761293..fdf7ff3 100755 --- a/loader.mjs +++ b/loader.mjs @@ -1,17 +1,8 @@ import fs from "fs" import path from "path" -import parser from "@webassemblyjs/wasm-parser"; -import t from "@webassemblyjs/ast"; - let internalDefaultResolver; -const decoderOpts = { - ignoreCodeSection: true, - ignoreDataSection: true, - ignoreCustomNameSection: true -}; - async function loadDependency(module, name) { const fqmodule = internalDefaultResolver(module).url; const dep = await import(fqmodule); @@ -31,23 +22,12 @@ export async function dynamicInstantiate(url) { const wasmImports = []; const dependenciesPromise = []; - /** - * wasm introspection - */ - const ast = parser.decode(buffer, decoderOpts); - - t.traverse(ast, { - ModuleExport({ node }) { - wasmExports.push(node.name); - }, - - ModuleImport({ node }) { - dependenciesPromise.push( - loadDependency(node.module, node.name) - ); - - wasmImports.push([node.module, node.name]); - } + WebAssembly.Module.imports(module).forEach((i) => { + dependenciesPromise.push(loadDependency(i.module, i.name)); + wasmImports.push([i.module, i.name]); + }); + WebAssembly.Module.exports(module).forEach(({ name }) => { + wasmExports.push(name); }); /** diff --git a/package.json b/package.json index 5e05ed7..ba2c1f1 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,5 @@ "url": "https://github.com/wasm-tool/node-loader/issues" }, "homepage": "https://github.com/wasm-tool/node-loader#readme", - "dependencies": { - "@webassemblyjs/ast": "^1.5.12", - "@webassemblyjs/wasm-parser": "^1.5.12" - } + "dependencies": {} }