forked from grain-lang/binaryen.ml
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodule.js
More file actions
136 lines (119 loc) · 4.31 KB
/
module.js
File metadata and controls
136 lines (119 loc) · 4.31 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
//Provides: caml_binaryen_module_create
//Requires: Binaryen
function caml_binaryen_module_create() {
return new Binaryen.Module();
}
//Provides: caml_binaryen_module_dispose
function caml_binaryen_module_dispose(wasm_mod) {
return wasm_mod.dispose();
}
//Provides: caml_binaryen_module_parse
//Requires: Binaryen
//Requires: caml_jsstring_of_string
function caml_binaryen_module_parse(text) {
return Binaryen.parseText(caml_jsstring_of_string(text));
}
//Provides: caml_binaryen_module_print
//Requires: caml_sys_fds
//Requires: caml_string_of_jsstring
//Requires: caml_ml_output, caml_ml_string_length
function caml_binaryen_module_print(wasm_mod) {
var text = wasm_mod.emitText();
var chanid = caml_sys_fds[1].chanid; // stdout
var s = caml_string_of_jsstring(text);
caml_ml_output(chanid, s, 0, caml_ml_string_length(s));
}
//Provides: caml_binaryen_module_print_asmjs
//Requires: caml_sys_fds
//Requires: caml_string_of_jsstring
//Requires: caml_ml_output, caml_ml_string_length
function caml_binaryen_module_print_asmjs(wasm_mod) {
var asm = wasm_mod.emitAsmjs();
var chanid = caml_sys_fds[1].chanid; // stdout
var s = caml_string_of_jsstring(asm);
caml_ml_output(chanid, s, 0, caml_ml_string_length(s));
}
//Provides: caml_binaryen_module_print_stack_ir
//Requires: caml_sys_fds
//Requires: caml_string_of_jsstring
//Requires: caml_ml_output, caml_ml_string_length
function caml_binaryen_module_print_stack_ir(wasm_mod) {
var stackir = wasm_mod.emitStackIR();
var chanid = caml_sys_fds[1].chanid; // stdout
var s = caml_string_of_jsstring(stackir);
caml_ml_output(chanid, s, 0, caml_ml_string_length(s));
}
//Provides: caml_binaryen_module_validate
function caml_binaryen_module_validate(wasm_mod) {
return wasm_mod.validate();
}
//Provides: caml_binaryen_module_optimize
function caml_binaryen_module_optimize(wasm_mod) {
return wasm_mod.optimize();
}
//Provides: caml_binaryen_module_run_passes
//Requires: caml_jsstring_of_string, caml_list_to_js_array
function caml_binaryen_module_run_passes(wasm_mod, passes) {
return wasm_mod.runPasses(
caml_list_to_js_array(passes).map(caml_jsstring_of_string)
);
}
//Provides: caml_binaryen_module_write
//Requires: to_option
//Requires: caml_jsstring_of_string, caml_string_of_jsstring, caml_bytes_of_array
function caml_binaryen_module_write(wasm_mod, sourceMapUrl) {
if (sourceMapUrl) {
var url = caml_jsstring_of_string(sourceMapUrl[1]);
var obj = wasm_mod.emitBinary(url);
var sourceMap =
obj.sourceMap != null ? caml_string_of_jsstring(obj.sourceMap) : null;
return [0, caml_bytes_of_array(obj.binary), to_option(sourceMap)];
} else {
var binary = wasm_mod.emitBinary();
return [0, caml_bytes_of_array(binary), 0];
}
}
//Provides: caml_binaryen_module_write_text
//Requires: caml_string_of_jsstring
function caml_binaryen_module_write_text(wasm_mod) {
var text = wasm_mod.emitText();
return caml_string_of_jsstring(text);
}
//Provides: caml_binaryen_module_write_stack_ir
//Requires: caml_string_of_jsstring
function caml_binaryen_module_write_stack_ir(wasm_mod) {
var text = wasm_mod.emitStackIR();
return caml_string_of_jsstring(text);
}
//Provides: caml_binaryen_module_read
//Requires: Binaryen
//Requires: caml_uint8_array_of_bytes
function caml_binaryen_module_read(bytes) {
var data = caml_uint8_array_of_bytes(bytes);
return Binaryen.readBinary(data);
}
//Provides: caml_binaryen_module_interpret
function caml_binaryen_module_interpret(wasm_mod) {
return wasm_mod.interpret();
}
//Provides: caml_binaryen_module_add_debug_info_filename
//Requires: caml_jsstring_of_string
function caml_binaryen_module_add_debug_info_filename(wasm_mod, filename) {
return wasm_mod.addDebugInfoFileName(caml_jsstring_of_string(filename));
}
//Provides: caml_binaryen_module_get_debug_info_filename
function caml_binaryen_module_get_debug_info_filename(wasm_mod, index) {
return wasm_mod.getDebugInfoFileName(index);
}
//Provides: caml_binaryen_add_custom_section
//Requires: caml_jsstring_of_string, caml_uint8_array_of_string
function caml_binaryen_add_custom_section(wasm_mod, name, contents) {
return wasm_mod.addCustomSection(
caml_jsstring_of_string(name),
caml_uint8_array_of_string(contents)
);
}
//Provides: caml_binaryen_module_update_maps
function caml_binaryen_module_update_maps(wasm_mod) {
return wasm_mod.updateMaps();
}