diff options
author | Soni L. <EnderMoneyMod@gmail.com> | 2024-11-20 14:51:48 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-20 09:51:48 -0800 |
commit | a0b7abef00b59eeafed58c774195189425d020b0 (patch) | |
tree | 6f7b0747d3a3ef435bda9ac14ca22d417877796b /include/wabt/expr-visitor.h | |
parent | 958d0a72030227bf3133c8b99c7c670bcdbc7636 (diff) | |
download | wabt-a0b7abef00b59eeafed58c774195189425d020b0.tar.gz wabt-a0b7abef00b59eeafed58c774195189425d020b0.tar.bz2 wabt-a0b7abef00b59eeafed58c774195189425d020b0.zip |
binary/wat: Implement EHv4 (#2470)
This pull request implements EHv4. Binary is mostly untested until
interp is working.
Diffstat (limited to 'include/wabt/expr-visitor.h')
-rw-r--r-- | include/wabt/expr-visitor.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/wabt/expr-visitor.h b/include/wabt/expr-visitor.h index cbc317cd..5be78793 100644 --- a/include/wabt/expr-visitor.h +++ b/include/wabt/expr-visitor.h @@ -41,6 +41,7 @@ class ExprVisitor { IfFalse, Loop, Try, + TryTable, Catch, }; @@ -73,6 +74,8 @@ class ExprVisitor::Delegate { virtual Result OnBrExpr(BrExpr*) = 0; virtual Result OnBrIfExpr(BrIfExpr*) = 0; virtual Result OnBrTableExpr(BrTableExpr*) = 0; + virtual Result BeginTryTableExpr(TryTableExpr*) = 0; + virtual Result EndTryTableExpr(TryTableExpr*) = 0; virtual Result OnCallExpr(CallExpr*) = 0; virtual Result OnCallIndirectExpr(CallIndirectExpr*) = 0; virtual Result OnCallRefExpr(CallRefExpr*) = 0; @@ -122,6 +125,7 @@ class ExprVisitor::Delegate { virtual Result OnDelegateExpr(TryExpr*) = 0; virtual Result EndTryExpr(TryExpr*) = 0; virtual Result OnThrowExpr(ThrowExpr*) = 0; + virtual Result OnThrowRefExpr(ThrowRefExpr*) = 0; virtual Result OnRethrowExpr(RethrowExpr*) = 0; virtual Result OnAtomicWaitExpr(AtomicWaitExpr*) = 0; virtual Result OnAtomicFenceExpr(AtomicFenceExpr*) = 0; @@ -147,6 +151,8 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate { Result OnBrExpr(BrExpr*) override { return Result::Ok; } Result OnBrIfExpr(BrIfExpr*) override { return Result::Ok; } Result OnBrTableExpr(BrTableExpr*) override { return Result::Ok; } + Result BeginTryTableExpr(TryTableExpr*) override { return Result::Ok; } + Result EndTryTableExpr(TryTableExpr*) override { return Result::Ok; } Result OnCallExpr(CallExpr*) override { return Result::Ok; } Result OnCallIndirectExpr(CallIndirectExpr*) override { return Result::Ok; } Result OnCallRefExpr(CallRefExpr*) override { return Result::Ok; } @@ -198,6 +204,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate { Result OnDelegateExpr(TryExpr*) override { return Result::Ok; } Result EndTryExpr(TryExpr*) override { return Result::Ok; } Result OnThrowExpr(ThrowExpr*) override { return Result::Ok; } + Result OnThrowRefExpr(ThrowRefExpr*) override { return Result::Ok; } Result OnRethrowExpr(RethrowExpr*) override { return Result::Ok; } Result OnAtomicWaitExpr(AtomicWaitExpr*) override { return Result::Ok; } Result OnAtomicFenceExpr(AtomicFenceExpr*) override { return Result::Ok; } |