@@ -41,6 +41,7 @@ class ExprVisitor {
4141 IfFalse,
4242 Loop,
4343 Try,
44+ TryTable,
4445 Catch,
4546 };
4647
@@ -72,7 +73,12 @@ class ExprVisitor::Delegate {
7273 virtual Result EndBlockExpr (BlockExpr*) = 0;
7374 virtual Result OnBrExpr (BrExpr*) = 0;
7475 virtual Result OnBrIfExpr (BrIfExpr*) = 0;
76+ virtual Result OnBrOnCastExpr (BrOnCastExpr*) = 0;
77+ virtual Result OnBrOnNonNullExpr (BrOnNonNullExpr*) = 0;
78+ virtual Result OnBrOnNullExpr (BrOnNullExpr*) = 0;
7579 virtual Result OnBrTableExpr (BrTableExpr*) = 0;
80+ virtual Result BeginTryTableExpr (TryTableExpr*) = 0;
81+ virtual Result EndTryTableExpr (TryTableExpr*) = 0;
7682 virtual Result OnCallExpr (CallExpr*) = 0;
7783 virtual Result OnCallIndirectExpr (CallIndirectExpr*) = 0;
7884 virtual Result OnCallRefExpr (CallRefExpr*) = 0;
@@ -106,13 +112,15 @@ class ExprVisitor::Delegate {
106112 virtual Result OnTableGrowExpr (TableGrowExpr*) = 0;
107113 virtual Result OnTableSizeExpr (TableSizeExpr*) = 0;
108114 virtual Result OnTableFillExpr (TableFillExpr*) = 0;
115+ virtual Result OnRefAsNonNullExpr (RefAsNonNullExpr*) = 0;
109116 virtual Result OnRefFuncExpr (RefFuncExpr*) = 0;
110117 virtual Result OnRefNullExpr (RefNullExpr*) = 0;
111118 virtual Result OnRefIsNullExpr (RefIsNullExpr*) = 0;
112119 virtual Result OnNopExpr (NopExpr*) = 0;
113120 virtual Result OnReturnExpr (ReturnExpr*) = 0;
114121 virtual Result OnReturnCallExpr (ReturnCallExpr*) = 0;
115122 virtual Result OnReturnCallIndirectExpr (ReturnCallIndirectExpr*) = 0;
123+ virtual Result OnReturnCallRefExpr (ReturnCallRefExpr*) = 0;
116124 virtual Result OnSelectExpr (SelectExpr*) = 0;
117125 virtual Result OnStoreExpr (StoreExpr*) = 0;
118126 virtual Result OnUnaryExpr (UnaryExpr*) = 0;
@@ -122,6 +130,7 @@ class ExprVisitor::Delegate {
122130 virtual Result OnDelegateExpr (TryExpr*) = 0;
123131 virtual Result EndTryExpr (TryExpr*) = 0;
124132 virtual Result OnThrowExpr (ThrowExpr*) = 0;
133+ virtual Result OnThrowRefExpr (ThrowRefExpr*) = 0;
125134 virtual Result OnRethrowExpr (RethrowExpr*) = 0;
126135 virtual Result OnAtomicWaitExpr (AtomicWaitExpr*) = 0;
127136 virtual Result OnAtomicFenceExpr (AtomicFenceExpr*) = 0;
@@ -137,6 +146,24 @@ class ExprVisitor::Delegate {
137146 virtual Result OnSimdShuffleOpExpr (SimdShuffleOpExpr*) = 0;
138147 virtual Result OnLoadSplatExpr (LoadSplatExpr*) = 0;
139148 virtual Result OnLoadZeroExpr (LoadZeroExpr*) = 0;
149+ virtual Result OnArrayCopyExpr (ArrayCopyExpr*) = 0;
150+ virtual Result OnArrayFillExpr (ArrayFillExpr*) = 0;
151+ virtual Result OnArrayGetExpr (ArrayGetExpr*) = 0;
152+ virtual Result OnArrayInitDataExpr (ArrayInitDataExpr*) = 0;
153+ virtual Result OnArrayInitElemExpr (ArrayInitElemExpr*) = 0;
154+ virtual Result OnArrayNewExpr (ArrayNewExpr*) = 0;
155+ virtual Result OnArrayNewDataExpr (ArrayNewDataExpr*) = 0;
156+ virtual Result OnArrayNewDefaultExpr (ArrayNewDefaultExpr*) = 0;
157+ virtual Result OnArrayNewElemExpr (ArrayNewElemExpr*) = 0;
158+ virtual Result OnArrayNewFixedExpr (ArrayNewFixedExpr*) = 0;
159+ virtual Result OnArraySetExpr (ArraySetExpr*) = 0;
160+ virtual Result OnGCUnaryExpr (GCUnaryExpr*) = 0;
161+ virtual Result OnRefCastExpr (RefCastExpr*) = 0;
162+ virtual Result OnRefTestExpr (RefTestExpr*) = 0;
163+ virtual Result OnStructGetExpr (StructGetExpr*) = 0;
164+ virtual Result OnStructNewExpr (StructNewExpr*) = 0;
165+ virtual Result OnStructNewDefaultExpr (StructNewDefaultExpr*) = 0;
166+ virtual Result OnStructSetExpr (StructSetExpr*) = 0;
140167};
141168
142169class ExprVisitor ::DelegateNop : public ExprVisitor::Delegate {
@@ -146,7 +173,12 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
146173 Result EndBlockExpr (BlockExpr*) override { return Result::Ok; }
147174 Result OnBrExpr (BrExpr*) override { return Result::Ok; }
148175 Result OnBrIfExpr (BrIfExpr*) override { return Result::Ok; }
176+ Result OnBrOnCastExpr (BrOnCastExpr*) override { return Result::Ok; };
177+ Result OnBrOnNonNullExpr (BrOnNonNullExpr*) override { return Result::Ok; };
178+ Result OnBrOnNullExpr (BrOnNullExpr*) override { return Result::Ok; };
149179 Result OnBrTableExpr (BrTableExpr*) override { return Result::Ok; }
180+ Result BeginTryTableExpr (TryTableExpr*) override { return Result::Ok; }
181+ Result EndTryTableExpr (TryTableExpr*) override { return Result::Ok; }
150182 Result OnCallExpr (CallExpr*) override { return Result::Ok; }
151183 Result OnCallIndirectExpr (CallIndirectExpr*) override { return Result::Ok; }
152184 Result OnCallRefExpr (CallRefExpr*) override { return Result::Ok; }
@@ -180,6 +212,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
180212 Result OnTableGrowExpr (TableGrowExpr*) override { return Result::Ok; }
181213 Result OnTableSizeExpr (TableSizeExpr*) override { return Result::Ok; }
182214 Result OnTableFillExpr (TableFillExpr*) override { return Result::Ok; }
215+ Result OnRefAsNonNullExpr (RefAsNonNullExpr*) override { return Result::Ok; }
183216 Result OnRefFuncExpr (RefFuncExpr*) override { return Result::Ok; }
184217 Result OnRefNullExpr (RefNullExpr*) override { return Result::Ok; }
185218 Result OnRefIsNullExpr (RefIsNullExpr*) override { return Result::Ok; }
@@ -189,6 +222,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
189222 Result OnReturnCallIndirectExpr (ReturnCallIndirectExpr*) override {
190223 return Result::Ok;
191224 }
225+ Result OnReturnCallRefExpr (ReturnCallRefExpr*) override { return Result::Ok; }
192226 Result OnSelectExpr (SelectExpr*) override { return Result::Ok; }
193227 Result OnStoreExpr (StoreExpr*) override { return Result::Ok; }
194228 Result OnUnaryExpr (UnaryExpr*) override { return Result::Ok; }
@@ -198,6 +232,7 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
198232 Result OnDelegateExpr (TryExpr*) override { return Result::Ok; }
199233 Result EndTryExpr (TryExpr*) override { return Result::Ok; }
200234 Result OnThrowExpr (ThrowExpr*) override { return Result::Ok; }
235+ Result OnThrowRefExpr (ThrowRefExpr*) override { return Result::Ok; }
201236 Result OnRethrowExpr (RethrowExpr*) override { return Result::Ok; }
202237 Result OnAtomicWaitExpr (AtomicWaitExpr*) override { return Result::Ok; }
203238 Result OnAtomicFenceExpr (AtomicFenceExpr*) override { return Result::Ok; }
@@ -215,6 +250,28 @@ class ExprVisitor::DelegateNop : public ExprVisitor::Delegate {
215250 Result OnSimdShuffleOpExpr (SimdShuffleOpExpr*) override { return Result::Ok; }
216251 Result OnLoadSplatExpr (LoadSplatExpr*) override { return Result::Ok; }
217252 Result OnLoadZeroExpr (LoadZeroExpr*) override { return Result::Ok; }
253+ Result OnArrayCopyExpr (ArrayCopyExpr*) override { return Result::Ok; }
254+ Result OnArrayFillExpr (ArrayFillExpr*) override { return Result::Ok; }
255+ Result OnArrayGetExpr (ArrayGetExpr*) override { return Result::Ok; }
256+ Result OnArrayInitDataExpr (ArrayInitDataExpr*) override { return Result::Ok; }
257+ Result OnArrayInitElemExpr (ArrayInitElemExpr*) override { return Result::Ok; }
258+ Result OnArrayNewExpr (ArrayNewExpr*) override { return Result::Ok; }
259+ Result OnArrayNewDataExpr (ArrayNewDataExpr*) override { return Result::Ok; }
260+ Result OnArrayNewDefaultExpr (ArrayNewDefaultExpr*) override {
261+ return Result::Ok;
262+ }
263+ Result OnArrayNewElemExpr (ArrayNewElemExpr*) override { return Result::Ok; }
264+ Result OnArrayNewFixedExpr (ArrayNewFixedExpr*) override { return Result::Ok; }
265+ Result OnArraySetExpr (ArraySetExpr*) override { return Result::Ok; }
266+ Result OnGCUnaryExpr (GCUnaryExpr*) override { return Result::Ok; }
267+ Result OnRefCastExpr (RefCastExpr*) override { return Result::Ok; }
268+ Result OnRefTestExpr (RefTestExpr*) override { return Result::Ok; }
269+ Result OnStructGetExpr (StructGetExpr*) override { return Result::Ok; }
270+ Result OnStructNewExpr (StructNewExpr*) override { return Result::Ok; }
271+ Result OnStructNewDefaultExpr (StructNewDefaultExpr*) override {
272+ return Result::Ok;
273+ }
274+ Result OnStructSetExpr (StructSetExpr*) override { return Result::Ok; }
218275};
219276
220277} // namespace wabt
0 commit comments