summaryrefslogtreecommitdiff
path: root/src/wasm-s-parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-s-parser.h')
-rw-r--r--src/wasm-s-parser.h9
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();