On Friday, 3 March 2023 at 13:42:55 UTC, ryuukk_ wrote:
On Friday, 3 March 2023 at 03:32:37 UTC, TheZipCreator wrote:
[...]
https://discourse.llvm.org/t/rfc-webassembly-reference-types-in-clang/66939
it says it is an opaque type, maybe just need to be ``void*``?
Also there are new intrinsics, maybe you can define them like
this:
```D
alias externref_t = void*;
pragma(LDC_intrinsic, "llvm.wasm.table.set.externref.i32")
extern(C) void llvm_wasm_table_set_externref(void*, int,
externref_t);
pragma(LDC_intrinsic, "llvm.wasm.table.get.externref.i32")
extern(C) externref_t llvm_wasm_table_get_externref(void*,
int);
```
Using `void*` doesn't appear to work (and looking at the
generated wasm it seems to reduce it to `i32`, which is not the
right type unfortunately). I guess what I could do is have a
global array in js which stores all objects I'll need to access,
then just access them via the index into that array but that
feels like a hack especially when `externref` is a thing that
exists.