summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wasm-s-parser.h3
-rw-r--r--src/wasm.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index 5a394fa4c..2f86fcef2 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -278,6 +278,7 @@ private:
func->result = stringToWasmType(curr[1]->str());
} else if (id == TYPE) {
Name name = curr[1]->str();
+ func->type = name;
if (wasm.functionTypesMap.find(name) == wasm.functionTypesMap.end()) onError();
FunctionType* type = wasm.functionTypesMap[name];
func->result = type->result;
@@ -306,7 +307,7 @@ private:
func->params = typeParams;
}
if (!func->body) func->body = allocator.alloc<Nop>();
- wasm.functions.push_back(func);
+ wasm.addFunction(func);
currLocalTypes.clear();
}
diff --git a/src/wasm.h b/src/wasm.h
index 59d51b07c..6d1ac7b83 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -770,6 +770,7 @@ public:
WasmType result;
std::vector<NameType> params;
std::vector<NameType> locals;
+ Name type; // if null, it is implicit in params and result
Expression *body;
std::ostream& print(std::ostream &o, unsigned indent) {