Improved type reflection

This commit is contained in:
Syrus Akbary
2021-07-12 20:54:20 -07:00
parent d25b2cb008
commit 2c75468c9e
8 changed files with 710 additions and 76 deletions

View File

@@ -1,3 +1,4 @@
use crate::export::Export;
use crate::exports::Exports;
use crate::externals::Extern;
use crate::module::Module;
@@ -117,8 +118,10 @@ impl Instance {
.exports()
.map(|export_type| {
let name = export_type.name();
let export = js_sys::Reflect::get(&instance_exports, &name.into()).unwrap();
let extern_ = Extern::from_vm_export(store, export.into());
let extern_type = export_type.ty().clone();
let js_export = js_sys::Reflect::get(&instance_exports, &name.into()).unwrap();
let export: Export = (js_export, extern_type).into();
let extern_ = Extern::from_vm_export(store, export);
(name.to_string(), extern_)
})
.collect::<Exports>();