@@ -66,6 +66,11 @@ struct CatchClause {
6666};
6767using CatchClauseVector = std::vector<CatchClause>;
6868
69+ enum class TableInitExprStatus {
70+ TableWithInitExpression,
71+ TableWithoutInitExpression,
72+ };
73+
6974class BinaryReaderDelegate {
7075 public:
7176 struct State {
@@ -156,9 +161,13 @@ class BinaryReaderDelegate {
156161 /* Table section */
157162 virtual Result BeginTableSection (Offset size) = 0;
158163 virtual Result OnTableCount (Index count) = 0;
159- virtual Result OnTable (Index index,
160- Type elem_type,
161- const Limits* elem_limits) = 0;
164+ virtual Result BeginTable (Index index,
165+ Type elem_type,
166+ const Limits* elem_limits,
167+ TableInitExprStatus init_provided) = 0;
168+ virtual Result BeginTableInitExpr (Index index) = 0;
169+ virtual Result EndTableInitExpr (Index index) = 0;
170+ virtual Result EndTable (Index index) = 0;
162171 virtual Result EndTableSection () = 0;
163172
164173 /* Memory section */
@@ -250,12 +259,14 @@ class BinaryReaderDelegate {
250259 virtual Result OnBlockExpr (Type sig_type) = 0;
251260 virtual Result OnBrExpr (Index depth) = 0;
252261 virtual Result OnBrIfExpr (Index depth) = 0;
262+ virtual Result OnBrOnNonNullExpr (Index depth) = 0;
263+ virtual Result OnBrOnNullExpr (Index depth) = 0;
253264 virtual Result OnBrTableExpr (Index num_targets,
254265 Index* target_depths,
255266 Index default_target_depth) = 0;
256267 virtual Result OnCallExpr (Index func_index) = 0;
257268 virtual Result OnCallIndirectExpr (Index sig_index, Index table_index) = 0;
258- virtual Result OnCallRefExpr () = 0;
269+ virtual Result OnCallRefExpr (Type sig_type ) = 0;
259270 virtual Result OnCatchExpr (Index tag_index) = 0;
260271 virtual Result OnCatchAllExpr () = 0;
261272 virtual Result OnCompareExpr (Opcode opcode) = 0;
@@ -294,6 +305,7 @@ class BinaryReaderDelegate {
294305 virtual Result OnTableGrowExpr (Index table_index) = 0;
295306 virtual Result OnTableSizeExpr (Index table_index) = 0;
296307 virtual Result OnTableFillExpr (Index table_index) = 0;
308+ virtual Result OnRefAsNonNullExpr () = 0;
297309 virtual Result OnRefFuncExpr (Index func_index) = 0;
298310 virtual Result OnRefNullExpr (Type type) = 0;
299311 virtual Result OnRefIsNullExpr () = 0;
@@ -303,6 +315,7 @@ class BinaryReaderDelegate {
303315 virtual Result OnReturnCallExpr (Index func_index) = 0;
304316 virtual Result OnReturnCallIndirectExpr (Index sig_index,
305317 Index table_index) = 0;
318+ virtual Result OnReturnCallRefExpr (Type sig_type) = 0;
306319 virtual Result OnSelectExpr (Index result_count, Type* result_types) = 0;
307320 virtual Result OnStoreExpr (Opcode opcode,
308321 Index memidx,
0 commit comments