@@ -1243,6 +1243,7 @@ impl<'store, const BUDGETED: bool> Executor<'store, BUDGETED> {
12431243 fn exec_const < T : InternalValue > ( & mut self , val : T ) -> Result < ( ) , Trap > {
12441244 self . store . value_stack . push ( val)
12451245 }
1246+
12461247 fn exec_ref_is_null ( & mut self ) -> Result < ( ) , Trap > {
12471248 let is_null = i32:: from ( <ValueRef >:: stack_pop ( & mut self . store . value_stack ) . is_null ( ) ) ;
12481249 self . store . value_stack . push :: < i32 > ( is_null)
@@ -1255,6 +1256,7 @@ impl<'store, const BUDGETED: bool> Executor<'store, BUDGETED> {
12551256 false => self . store . value_stack . push :: < i32 > ( mem. page_count as i32 ) ,
12561257 }
12571258 }
1259+
12581260 fn exec_memory_grow ( & mut self , addr : u32 ) -> Result < ( ) , Trap > {
12591261 let mem = self . store . state . get_mem_mut ( self . module . resolve_mem_addr ( addr) ) ;
12601262 let is_64bit = mem. is_64bit ( ) ;
@@ -1290,6 +1292,7 @@ impl<'store, const BUDGETED: bool> Executor<'store, BUDGETED> {
12901292 }
12911293 Ok ( ( ) )
12921294 }
1295+
12931296 fn exec_memory_fill ( & mut self , addr : u32 ) -> Result < ( ) , Trap > {
12941297 let size = i32:: stack_pop ( & mut self . store . value_stack ) ;
12951298 let val = i32:: stack_pop ( & mut self . store . value_stack ) ;
@@ -1351,6 +1354,7 @@ impl<'store, const BUDGETED: bool> Executor<'store, BUDGETED> {
13511354 }
13521355 Ok ( ( ) )
13531356 }
1357+
13541358 fn exec_table_copy ( & mut self , dst_table : u32 , src_table : u32 ) -> Result < ( ) , Trap > {
13551359 let size = i32:: stack_pop ( & mut self . store . value_stack ) ;
13561360 let src = i32:: stack_pop ( & mut self . store . value_stack ) ;
@@ -1473,16 +1477,19 @@ impl<'store, const BUDGETED: bool> Executor<'store, BUDGETED> {
14731477 let v = table. get_wasm_val ( idx as u32 ) ?;
14741478 self . store . value_stack . push_dyn ( v. into ( ) )
14751479 }
1480+
14761481 fn exec_table_set ( & mut self , table_index : u32 ) -> Result < ( ) , Trap > {
14771482 let val = <ValueRef >:: stack_pop ( & mut self . store . value_stack ) ;
14781483 let idx = <i32 >:: stack_pop ( & mut self . store . value_stack ) as u32 ;
14791484 let table = self . store . state . get_table_mut ( self . module . resolve_table_addr ( table_index) ) ;
14801485 table. set ( idx, val. addr ( ) . into ( ) )
14811486 }
1487+
14821488 fn exec_table_size ( & mut self , table_index : u32 ) -> Result < ( ) , Trap > {
14831489 let table = self . store . state . get_table ( self . module . resolve_table_addr ( table_index) ) ;
14841490 self . store . value_stack . push ( table. size ( ) )
14851491 }
1492+
14861493 fn exec_table_init ( & mut self , elem_index : u32 , table_index : u32 ) -> Result < ( ) , Trap > {
14871494 let size = i32:: stack_pop ( & mut self . store . value_stack ) ; // n
14881495 let offset = i32:: stack_pop ( & mut self . store . value_stack ) ; // s
@@ -1517,6 +1524,7 @@ impl<'store, const BUDGETED: bool> Executor<'store, BUDGETED> {
15171524
15181525 table. init ( i64:: from ( dst) , & items[ offset as usize ..( offset + size) as usize ] )
15191526 }
1527+
15201528 fn exec_table_grow ( & mut self , table_index : u32 ) -> Result < ( ) , Trap > {
15211529 let table = self . store . state . get_table_mut ( self . module . resolve_table_addr ( table_index) ) ;
15221530 let sz = table. size ( ) ;
@@ -1527,6 +1535,7 @@ impl<'store, const BUDGETED: bool> Executor<'store, BUDGETED> {
15271535 Err ( _) => self . store . value_stack . push ( -1_i32 ) ,
15281536 }
15291537 }
1538+
15301539 fn exec_table_fill ( & mut self , table_index : u32 ) -> Result < ( ) , Trap > {
15311540 let table = self . store . state . get_table_mut ( self . module . resolve_table_addr ( table_index) ) ;
15321541
0 commit comments