diff options
Diffstat (limited to 'src/wasm-s-parser.h')
-rw-r--r-- | src/wasm-s-parser.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h index 7f5afe8f7..3e09d4f6f 100644 --- a/src/wasm-s-parser.h +++ b/src/wasm-s-parser.h @@ -1591,6 +1591,7 @@ private: im->kind = ExternalKind::Table; if (wasm.table.exists) throw ParseException("more than one table"); wasm.table.exists = true; + wasm.table.imported = true; } else if ((*s[3])[0]->str() == GLOBAL) { im->kind = ExternalKind::Global; } else { @@ -1765,6 +1766,7 @@ private: void parseTable(Element& s, bool preParseImport = false) { if (wasm.table.exists) throw ParseException("more than one table"); wasm.table.exists = true; + wasm.table.imported = preParseImport; Index i = 1; if (i == s.size()) return; // empty table in old notation if (s[i]->dollared()) { @@ -1785,6 +1787,13 @@ private: } else if (inner[0]->str() == IMPORT) { importModule = inner[1]->str(); importBase = inner[2]->str(); + assert(preParseImport); + auto im = make_unique<Import>(); + im->kind = ExternalKind::Table; + im->module = importModule; + im->base = importBase; + im->name = importModule;// + "." + importBase; + wasm.addImport(im.release()); i++; } else { WASM_UNREACHABLE(); |