@@ -85,6 +85,7 @@ let type_ (inst : module_inst) x = lookup "type" inst.types x
85
85
let func (inst : module_inst ) x = lookup " function" inst.funcs x
86
86
let table (inst : module_inst ) x = lookup " table" inst.tables x
87
87
let memory (inst : module_inst ) x = lookup " memory" inst.memories x
88
+ let event (inst : module_inst ) x = lookup " event" inst.events x
88
89
let global (inst : module_inst ) x = lookup " global" inst.globals x
89
90
let elem (inst : module_inst ) x = lookup " element segment" inst.elems x
90
91
let data (inst : module_inst ) x = lookup " data segment" inst.datas x
@@ -580,6 +581,9 @@ let create_memory (inst : module_inst) (mem : memory) : memory_inst =
580
581
let {mtype} = mem.it in
581
582
Memory. alloc mtype
582
583
584
+ let create_event (inst : module_inst ) (e : event ) : event_inst =
585
+ type_ inst e
586
+
583
587
let create_global (inst : module_inst ) (glob : global ) : global_inst =
584
588
let {gtype; ginit} = glob.it in
585
589
let v = eval_const inst ginit in
@@ -593,6 +597,7 @@ let create_export (inst : module_inst) (ex : export) : export_inst =
593
597
| TableExport x -> ExternTable (table inst x)
594
598
| MemoryExport x -> ExternMemory (memory inst x)
595
599
| GlobalExport x -> ExternGlobal (global inst x)
600
+ | EventExport x -> ExternEvent (event inst x)
596
601
in (name, ext)
597
602
598
603
let create_elem (inst : module_inst ) (seg : elem_segment ) : elem_inst =
@@ -612,6 +617,7 @@ let add_import (m : module_) (ext : extern) (im : import) (inst : module_inst)
612
617
| ExternFunc func -> {inst with funcs = func :: inst .funcs}
613
618
| ExternTable tab -> {inst with tables = tab :: inst .tables}
614
619
| ExternMemory mem -> {inst with memories = mem :: inst .memories}
620
+ | ExternEvent event -> {inst with events = event :: inst .events}
615
621
| ExternGlobal glob -> {inst with globals = glob :: inst .globals}
616
622
617
623
let init_func (inst : module_inst ) (func : func_inst ) =
@@ -654,7 +660,7 @@ let run_start start =
654
660
655
661
let init (m : module_ ) (exts : extern list ) : module_inst =
656
662
let
657
- { imports; tables; memories; globals; funcs; types;
663
+ { imports; tables; memories; events; globals; funcs; types;
658
664
exports; elems; datas; start
659
665
} = m.it
660
666
in
@@ -670,6 +676,7 @@ let init (m : module_) (exts : extern list) : module_inst =
670
676
{ inst1 with
671
677
tables = inst1.tables @ List. map (create_table inst1) tables;
672
678
memories = inst1.memories @ List. map (create_memory inst1) memories;
679
+ events = inst1.events @ List. map (create_event inst1) events;
673
680
globals = inst1.globals @ List. map (create_global inst1) globals;
674
681
}
675
682
in
0 commit comments