Sé que es posible pasar matrices de enteros al ensamblado web usando algo como esto:
const bin = ...; // WebAssembly binary, I assume below that it imports a memory from module "imports", field "memory". const module = new WebAssembly.Module(bin); const memory = new WebAssembly.Memory({ initial: 2 }); // Size is in pages. const instance = new WebAssembly.Instance(module, { imports: { memory: memory } }); const arrayBuffer = memory.buffer; const buffer = new Uint8Array(arrayBuffer);He leído mucha documentación y algunas preguntas que se parecen a lo que estaba buscando:
Y sin embargo, ninguno de ellos respondió a mi pregunta.
aquí hay un pequeño ejemplo de AssemblyScript que describe el tipo de función que me gustaría usar:
class Dummy { constructor() } export function getDummy(): Dummy { return new Dummy(); } export function workWithDummy(dummies: Dummy[] = []) { // do something }y en el código javaScript:
const fs = require('fs'); const {resolve} = require('../utils/utils.js'); const env = { abort: (message, filename, line, column) => { throw new Error(`${message} in ${filename} at ${line}:${column}`); } }; module.exports = fs.promises.readFile(resolve('parser.wasm')).then(buffer => { return WebAssembly.instantiate(buffer, {env: env}).then(wasmModule => { const module = wasmModule.instance.exports; module.workWithDummy([module.getDummy()]); //won't work }); }); Estoy ejecutando este código en nodeJs 18.1.0
Para resumir, mi pregunta es: ¿cómo hacer que esta línea funcione? module.workWithDummy([module.getDummy()]); //won't work