diff options
author | Heejin Ahn <aheejin@gmail.com> | 2021-03-01 10:30:00 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-01 10:30:00 +0900 |
commit | 7d453930f1b211baf324b1c010924d3709ff12ba (patch) | |
tree | 43773af4e683faecd10273b78a853b46bb6376a6 /src | |
parent | 0eb513d730b122f38bd6c66280c8acfe183b9b35 (diff) | |
download | binaryen-7d453930f1b211baf324b1c010924d3709ff12ba.tar.gz binaryen-7d453930f1b211baf324b1c010924d3709ff12ba.tar.bz2 binaryen-7d453930f1b211baf324b1c010924d3709ff12ba.zip |
Allow empty body within catch block (#3630)
Previously we assumed catch body's size should be at least 3: `catch`
keyword, event name, and body. But catch's body can be empty when the
event's type is none. This PR fixes the bug and allows empty catch
bodies to be parsed correctly.
Fixes #3629.
Diffstat (limited to 'src')
-rw-r--r-- | src/wasm/wasm-s-parser.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp index edf8ec6f0..3874bd2c0 100644 --- a/src/wasm/wasm-s-parser.cpp +++ b/src/wasm/wasm-s-parser.cpp @@ -2237,7 +2237,7 @@ Expression* SExpressionWasmBuilder::makeTry(Element& s) { while (i < s.size() && elementStartsWith(*s[i], "catch")) { Element& inner = *s[i++]; - if (inner.size() < 3) { + if (inner.size() < 2) { throw ParseException("invalid catch block", inner.line, inner.col); } Name event = getEventName(*inner[1]); |