summaryrefslogtreecommitdiff
path: root/src/generate-names.cc
diff options
context:
space:
mode:
authorBen Smith <binjimin@gmail.com>2018-03-02 17:48:10 -0800
committerGitHub <noreply@github.com>2018-03-02 17:48:10 -0800
commitc0e3c8ae30236582060dfa830bf405b209d9e149 (patch)
treeb0723ece60bf89f31c2a19701465e9af19e9f6f3 /src/generate-names.cc
parent2c591c592b5e1480e4d69093dd051348c1ec5f0e (diff)
downloadwabt-c0e3c8ae30236582060dfa830bf405b209d9e149.tar.gz
wabt-c0e3c8ae30236582060dfa830bf405b209d9e149.tar.bz2
wabt-c0e3c8ae30236582060dfa830bf405b209d9e149.zip
WIP on support for level1 exception spec (#773)
Implemented: * Parsing `try`, `if_except`, `throw`, `rethrow` * Validation * Binary and text output Still missing: * `except_ref` for locals * Interpreter implementation
Diffstat (limited to 'src/generate-names.cc')
-rw-r--r--src/generate-names.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/generate-names.cc b/src/generate-names.cc
index 451cb3b6..a1b02fb4 100644
--- a/src/generate-names.cc
+++ b/src/generate-names.cc
@@ -39,6 +39,7 @@ class NameGenerator : public ExprVisitor::DelegateNop {
Result BeginBlockExpr(BlockExpr* expr) override;
Result BeginLoopExpr(LoopExpr* expr) override;
Result BeginIfExpr(IfExpr* expr) override;
+ Result BeginIfExceptExpr(IfExceptExpr* expr) override;
private:
static bool HasName(const std::string& str);
@@ -207,6 +208,11 @@ Result NameGenerator::BeginIfExpr(IfExpr* expr) {
return Result::Ok;
}
+Result NameGenerator::BeginIfExceptExpr(IfExceptExpr* expr) {
+ MaybeGenerateName("$E", label_count_++, &expr->true_.label);
+ return Result::Ok;
+}
+
Result NameGenerator::VisitFunc(Index func_index, Func* func) {
MaybeGenerateAndBindName(&module_->func_bindings, "$f", func_index,
&func->name);