diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-11-18 17:34:42 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-11-18 17:34:42 -0800 |
commit | 1bdbc52f2949c427c92da74575d57b9c64a50d92 (patch) | |
tree | 4a49e0a8f6038650ef7cf66f98da3daa72076603 | |
parent | 7749b84bfaf5f7d95d22332b520ea541c6f9ae80 (diff) | |
download | binaryen-1bdbc52f2949c427c92da74575d57b9c64a50d92.tar.gz binaryen-1bdbc52f2949c427c92da74575d57b9c64a50d92.tar.bz2 binaryen-1bdbc52f2949c427c92da74575d57b9c64a50d92.zip |
handle more import parsing in s-parser
-rw-r--r-- | src/wasm-s-parser.h | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h index 8f5e08e9d..ec7d6c6dc 100644 --- a/src/wasm-s-parser.h +++ b/src/wasm-s-parser.h @@ -1090,23 +1090,27 @@ private: im->module = s[2]->str(); if (!s[3]->isStr()) onError(); im->base = s[3]->str(); - Element& params = *s[4]; - IString id = params[0]->str(); - if (id == PARAM) { - for (size_t i = 1; i < params.size(); i++) { - im->type.params.push_back(stringToWasmType(params[i]->str())); + if (s.size() > 4) { + Element& params = *s[4]; + IString id = params[0]->str(); + if (id == PARAM) { + for (size_t i = 1; i < params.size(); i++) { + im->type.params.push_back(stringToWasmType(params[i]->str())); + } + } else if (id == RESULT) { + im->type.result = stringToWasmType(params[1]->str()); + } else if (id == TYPE) { + IString name = params[1]->str(); + assert(wasm.functionTypesMap.find(name) != wasm.functionTypesMap.end()); + im->type = *wasm.functionTypesMap[name]; + } else { + onError(); + } + if (s.size() > 5) { + Element& result = *s[5]; + assert(result[0]->str() == RESULT); + im->type.result = stringToWasmType(result[1]->str()); } - } else if (id == TYPE) { - IString name = params[1]->str(); - assert(wasm.functionTypesMap.find(name) != wasm.functionTypesMap.end()); - im->type = *wasm.functionTypesMap[name]; - } else { - onError(); - } - if (s.size() > 5) { - Element& result = *s[5]; - assert(result[0]->str() == RESULT); - im->type.result = stringToWasmType(result[1]->str()); } wasm.addImport(im); } |