Implement reading module table imports in API. (#387)
This commit implements populating the table imports of a module from the API. It also allows for `anyref` in table types as per the reference types proposal.
This commit is contained in:
committed by
Yury Delendik
parent
0653ae2c9c
commit
406bc7895a
@@ -47,7 +47,9 @@ fn into_func_type(mt: wasmparser::FuncType) -> FuncType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn into_table_type(tt: wasmparser::TableType) -> TableType {
|
fn into_table_type(tt: wasmparser::TableType) -> TableType {
|
||||||
assert!(tt.element_type == wasmparser::Type::AnyFunc);
|
assert!(
|
||||||
|
tt.element_type == wasmparser::Type::AnyFunc || tt.element_type == wasmparser::Type::AnyRef
|
||||||
|
);
|
||||||
let ty = into_valtype(&tt.element_type);
|
let ty = into_valtype(&tt.element_type);
|
||||||
let limits = Limits::new(
|
let limits = Limits::new(
|
||||||
tt.limits.initial,
|
tt.limits.initial,
|
||||||
@@ -118,8 +120,10 @@ fn read_imports_and_exports(
|
|||||||
let sig = &sigs[index as usize];
|
let sig = &sigs[index as usize];
|
||||||
ExternType::ExternFunc(sig.clone())
|
ExternType::ExternFunc(sig.clone())
|
||||||
}
|
}
|
||||||
ImportSectionEntryType::Table(_tt) => {
|
ImportSectionEntryType::Table(tt) => {
|
||||||
unimplemented!("ImportSectionEntryType::Table")
|
let table = into_table_type(tt);
|
||||||
|
tables.push(table.clone());
|
||||||
|
ExternType::ExternTable(table)
|
||||||
}
|
}
|
||||||
ImportSectionEntryType::Memory(mt) => {
|
ImportSectionEntryType::Memory(mt) => {
|
||||||
let memory = into_memory_type(mt);
|
let memory = into_memory_type(mt);
|
||||||
|
|||||||
Reference in New Issue
Block a user