我々の動的実行関数が呼ばれるとき、WebAssemblyモジュールのメモリ領域にアクセスできる必要があります。 そのためのコンテキストのオブジェクトを用意し、そこに重要なリソースを配置します。 こうすることで、関数が仕事をすることができるようになります。
let log_handle = register_function("
(context, msgStart, msgEnd) => {
let msg = context.getUtf8FromMemory(msgStart, msgEnd);
console.log(msg);
}");
let msg = "hello world";
js_invoke_with_2_params(
log_handle,
msg.as_ptr() as f64,
msg.len() as f64
);
完全な実装は、実際のコード例を見てください。