deno_core icon indicating copy to clipboard operation
deno_core copied to clipboard

feat(op2): implement fast wasm memory ops

Open littledivy opened this issue 2 years ago • 0 comments

Closes #273

#[op2(fast)]
fn op_wasm(state: &mut OpState, #[smi] rid: u32, #[memory] memory: WasmMemory) {
  let memory = memory.get(state, rid).expect("invalid wasm memory");
  memory[0] = 69;
}
// Save memory handle for slow call access
const handle = ops.op_core_set_wasm_memory(instance.exports.memory);

// Expose op to Wasm module
const instance = new WebAssembly.Instance(module, {
  wasm: {
    op_wasm: () => ops.op_wasm(handle),
  },
});
instance.exports.call(rid);

littledivy avatar Oct 24 '23 06:10 littledivy