summaryrefslogtreecommitdiff
path: root/src/wasm-s-parser.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-08-16 15:40:22 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-09-07 09:54:59 -0700
commitccec65e3d0c980bb1079fd0946f48dea069d224e (patch)
treeb7f80b487123d6652a176ba9a9aa78d5bd904aa7 /src/wasm-s-parser.h
parenta8356e139ffcbaa17715a2213a47a4c75051396a (diff)
downloadbinaryen-ccec65e3d0c980bb1079fd0946f48dea069d224e.tar.gz
binaryen-ccec65e3d0c980bb1079fd0946f48dea069d224e.tar.bz2
binaryen-ccec65e3d0c980bb1079fd0946f48dea069d224e.zip
some additional validations
Diffstat (limited to 'src/wasm-s-parser.h')
-rw-r--r--src/wasm-s-parser.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index 3f61b113f..a4dd60532 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -1472,7 +1472,11 @@ private:
wasm.addGlobal(global.release());
}
+ bool seenTable = false;
+
void parseTable(Element& s) {
+ seenTable = true;
+
if (s.size() == 1) return; // empty table in old notation
if (!s[1]->dollared()) {
if (s[1]->str() == ANYFUNC) {
@@ -1495,6 +1499,7 @@ private:
}
void parseElem(Element& s) {
+ if (!seenTable) throw ParseException("elem without table", s.line, s.col);
Index i = 1;
Expression* offset;
if (s[i]->isList()) {