exports property
Every export, keyed by name.
Functions are WasmFuncs (with a WasmFunc.function adapter), memories
are WasmMemorys, and so on - the same shape as instance.exports in
JavaScript.
Implementation
Map<String, Object?> get exports => scoped((arena) {
final result = <String, Object?>{};
for (var index = 0; ; index++) {
final nameOut = arena<ffi.Pointer<ffi.Char>>();
final lengthOut = arena<ffi.Size>();
final item = arena<c.wasmtime_extern_t>();
final found = c.wasmtime_instance_export_nth(
store.context,
_native(arena),
index,
nameOut,
lengthOut,
item,
);
if (!found) break;
result[_decode(nameOut.value, lengthOut.value)] = externToDart(
store,
item,
);
}
return result;
});