/
export.ml
60 lines (43 loc) · 1.96 KB
/
export.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
open Js_of_ocaml.Js
open Js_of_ocaml.Js.Unsafe
type t
let add_function_export wasm_mod internal_name external_name =
meth_call wasm_mod "addFunctionExport"
[| inject (string internal_name); inject (string external_name) |]
let add_table_export wasm_mod internal_name external_name =
meth_call wasm_mod "addTableExport"
[| inject (string internal_name); inject (string external_name) |]
let add_memory_export wasm_mod internal_name external_name =
meth_call wasm_mod "addMemoryExport"
[| inject (string internal_name); inject (string external_name) |]
let add_global_export wasm_mod internal_name external_name =
meth_call wasm_mod "addGlobalExport"
[| inject (string internal_name); inject (string external_name) |]
let get_export wasm_mod external_name =
meth_call wasm_mod "getExport" [| inject (string external_name) |]
let remove_export wasm_mod external_name =
meth_call wasm_mod "removeExport" [| inject (string external_name) |]
let get_num_exports wasm_mod = meth_call wasm_mod "getNumExports" [||]
let get_export_by_index wasm_mod index =
meth_call wasm_mod "getExportByIndex" [| inject index |]
let get_name export =
let export_info =
meth_call global##.binaryen "getExportInfo" [| inject export |]
in
to_string (get export_info "name")
let get_value export =
let export_info =
meth_call global##.binaryen "getExportInfo" [| inject export |]
in
to_string (get export_info "value")
let external_function =
meth_call global##.binaryen "_BinaryenExternalFunction" [||]
let external_table = meth_call global##.binaryen "_BinaryenExternalTable" [||]
let external_memory = meth_call global##.binaryen "_BinaryenExternalMemory" [||]
let external_global = meth_call global##.binaryen "_BinaryenExternalGlobal" [||]
let external_event = meth_call global##.binaryen "_BinaryenExternalEvent" [||]
let export_get_kind export =
let export_info =
meth_call global##.binaryen "getExportInfo" [| inject export |]
in
get export_info "kind"