1 | var illegalop = "illegal";
|
---|
2 | var magicModuleHeader = [0x00, 0x61, 0x73, 0x6d];
|
---|
3 | var moduleVersion = [0x01, 0x00, 0x00, 0x00];
|
---|
4 |
|
---|
5 | function invertMap(obj) {
|
---|
6 | var keyModifierFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (k) {
|
---|
7 | return k;
|
---|
8 | };
|
---|
9 | var result = {};
|
---|
10 | var keys = Object.keys(obj);
|
---|
11 |
|
---|
12 | for (var i = 0, length = keys.length; i < length; i++) {
|
---|
13 | result[keyModifierFn(obj[keys[i]])] = keys[i];
|
---|
14 | }
|
---|
15 |
|
---|
16 | return result;
|
---|
17 | }
|
---|
18 |
|
---|
19 | function createSymbolObject(name
|
---|
20 | /*: string */
|
---|
21 | , object
|
---|
22 | /*: string */
|
---|
23 | )
|
---|
24 | /*: Symbol*/
|
---|
25 | {
|
---|
26 | var numberOfArgs
|
---|
27 | /*: number*/
|
---|
28 | = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
---|
29 | return {
|
---|
30 | name: name,
|
---|
31 | object: object,
|
---|
32 | numberOfArgs: numberOfArgs
|
---|
33 | };
|
---|
34 | }
|
---|
35 |
|
---|
36 | function createSymbol(name
|
---|
37 | /*: string */
|
---|
38 | )
|
---|
39 | /*: Symbol*/
|
---|
40 | {
|
---|
41 | var numberOfArgs
|
---|
42 | /*: number*/
|
---|
43 | = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
---|
44 | return {
|
---|
45 | name: name,
|
---|
46 | numberOfArgs: numberOfArgs
|
---|
47 | };
|
---|
48 | }
|
---|
49 |
|
---|
50 | var types = {
|
---|
51 | func: 0x60,
|
---|
52 | result: 0x40
|
---|
53 | };
|
---|
54 | var exportTypes = {
|
---|
55 | 0x00: "Func",
|
---|
56 | 0x01: "Table",
|
---|
57 | 0x02: "Mem",
|
---|
58 | 0x03: "Global"
|
---|
59 | };
|
---|
60 | var exportTypesByName = invertMap(exportTypes);
|
---|
61 | var valtypes = {
|
---|
62 | 0x7f: "i32",
|
---|
63 | 0x7e: "i64",
|
---|
64 | 0x7d: "f32",
|
---|
65 | 0x7c: "f64",
|
---|
66 | 0x7b: "v128"
|
---|
67 | };
|
---|
68 | var valtypesByString = invertMap(valtypes);
|
---|
69 | var tableTypes = {
|
---|
70 | 0x70: "anyfunc"
|
---|
71 | };
|
---|
72 | var blockTypes = Object.assign({}, valtypes, {
|
---|
73 | // https://webassembly.github.io/spec/core/binary/types.html#binary-blocktype
|
---|
74 | 0x40: null,
|
---|
75 | // https://webassembly.github.io/spec/core/binary/types.html#binary-valtype
|
---|
76 | 0x7f: "i32",
|
---|
77 | 0x7e: "i64",
|
---|
78 | 0x7d: "f32",
|
---|
79 | 0x7c: "f64"
|
---|
80 | });
|
---|
81 | var globalTypes = {
|
---|
82 | 0x00: "const",
|
---|
83 | 0x01: "var"
|
---|
84 | };
|
---|
85 | var globalTypesByString = invertMap(globalTypes);
|
---|
86 | var importTypes = {
|
---|
87 | 0x00: "func",
|
---|
88 | 0x01: "table",
|
---|
89 | 0x02: "mem",
|
---|
90 | 0x03: "global"
|
---|
91 | };
|
---|
92 | var sections = {
|
---|
93 | custom: 0,
|
---|
94 | type: 1,
|
---|
95 | import: 2,
|
---|
96 | func: 3,
|
---|
97 | table: 4,
|
---|
98 | memory: 5,
|
---|
99 | global: 6,
|
---|
100 | export: 7,
|
---|
101 | start: 8,
|
---|
102 | element: 9,
|
---|
103 | code: 10,
|
---|
104 | data: 11
|
---|
105 | };
|
---|
106 | var symbolsByByte = {
|
---|
107 | 0x00: createSymbol("unreachable"),
|
---|
108 | 0x01: createSymbol("nop"),
|
---|
109 | 0x02: createSymbol("block"),
|
---|
110 | 0x03: createSymbol("loop"),
|
---|
111 | 0x04: createSymbol("if"),
|
---|
112 | 0x05: createSymbol("else"),
|
---|
113 | 0x06: illegalop,
|
---|
114 | 0x07: illegalop,
|
---|
115 | 0x08: illegalop,
|
---|
116 | 0x09: illegalop,
|
---|
117 | 0x0a: illegalop,
|
---|
118 | 0x0b: createSymbol("end"),
|
---|
119 | 0x0c: createSymbol("br", 1),
|
---|
120 | 0x0d: createSymbol("br_if", 1),
|
---|
121 | 0x0e: createSymbol("br_table"),
|
---|
122 | 0x0f: createSymbol("return"),
|
---|
123 | 0x10: createSymbol("call", 1),
|
---|
124 | 0x11: createSymbol("call_indirect", 2),
|
---|
125 | 0x12: illegalop,
|
---|
126 | 0x13: illegalop,
|
---|
127 | 0x14: illegalop,
|
---|
128 | 0x15: illegalop,
|
---|
129 | 0x16: illegalop,
|
---|
130 | 0x17: illegalop,
|
---|
131 | 0x18: illegalop,
|
---|
132 | 0x19: illegalop,
|
---|
133 | 0x1a: createSymbol("drop"),
|
---|
134 | 0x1b: createSymbol("select"),
|
---|
135 | 0x1c: illegalop,
|
---|
136 | 0x1d: illegalop,
|
---|
137 | 0x1e: illegalop,
|
---|
138 | 0x1f: illegalop,
|
---|
139 | 0x20: createSymbol("get_local", 1),
|
---|
140 | 0x21: createSymbol("set_local", 1),
|
---|
141 | 0x22: createSymbol("tee_local", 1),
|
---|
142 | 0x23: createSymbol("get_global", 1),
|
---|
143 | 0x24: createSymbol("set_global", 1),
|
---|
144 | 0x25: illegalop,
|
---|
145 | 0x26: illegalop,
|
---|
146 | 0x27: illegalop,
|
---|
147 | 0x28: createSymbolObject("load", "u32", 1),
|
---|
148 | 0x29: createSymbolObject("load", "u64", 1),
|
---|
149 | 0x2a: createSymbolObject("load", "f32", 1),
|
---|
150 | 0x2b: createSymbolObject("load", "f64", 1),
|
---|
151 | 0x2c: createSymbolObject("load8_s", "u32", 1),
|
---|
152 | 0x2d: createSymbolObject("load8_u", "u32", 1),
|
---|
153 | 0x2e: createSymbolObject("load16_s", "u32", 1),
|
---|
154 | 0x2f: createSymbolObject("load16_u", "u32", 1),
|
---|
155 | 0x30: createSymbolObject("load8_s", "u64", 1),
|
---|
156 | 0x31: createSymbolObject("load8_u", "u64", 1),
|
---|
157 | 0x32: createSymbolObject("load16_s", "u64", 1),
|
---|
158 | 0x33: createSymbolObject("load16_u", "u64", 1),
|
---|
159 | 0x34: createSymbolObject("load32_s", "u64", 1),
|
---|
160 | 0x35: createSymbolObject("load32_u", "u64", 1),
|
---|
161 | 0x36: createSymbolObject("store", "u32", 1),
|
---|
162 | 0x37: createSymbolObject("store", "u64", 1),
|
---|
163 | 0x38: createSymbolObject("store", "f32", 1),
|
---|
164 | 0x39: createSymbolObject("store", "f64", 1),
|
---|
165 | 0x3a: createSymbolObject("store8", "u32", 1),
|
---|
166 | 0x3b: createSymbolObject("store16", "u32", 1),
|
---|
167 | 0x3c: createSymbolObject("store8", "u64", 1),
|
---|
168 | 0x3d: createSymbolObject("store16", "u64", 1),
|
---|
169 | 0x3e: createSymbolObject("store32", "u64", 1),
|
---|
170 | 0x3f: createSymbolObject("current_memory"),
|
---|
171 | 0x40: createSymbolObject("grow_memory"),
|
---|
172 | 0x41: createSymbolObject("const", "i32", 1),
|
---|
173 | 0x42: createSymbolObject("const", "i64", 1),
|
---|
174 | 0x43: createSymbolObject("const", "f32", 1),
|
---|
175 | 0x44: createSymbolObject("const", "f64", 1),
|
---|
176 | 0x45: createSymbolObject("eqz", "i32"),
|
---|
177 | 0x46: createSymbolObject("eq", "i32"),
|
---|
178 | 0x47: createSymbolObject("ne", "i32"),
|
---|
179 | 0x48: createSymbolObject("lt_s", "i32"),
|
---|
180 | 0x49: createSymbolObject("lt_u", "i32"),
|
---|
181 | 0x4a: createSymbolObject("gt_s", "i32"),
|
---|
182 | 0x4b: createSymbolObject("gt_u", "i32"),
|
---|
183 | 0x4c: createSymbolObject("le_s", "i32"),
|
---|
184 | 0x4d: createSymbolObject("le_u", "i32"),
|
---|
185 | 0x4e: createSymbolObject("ge_s", "i32"),
|
---|
186 | 0x4f: createSymbolObject("ge_u", "i32"),
|
---|
187 | 0x50: createSymbolObject("eqz", "i64"),
|
---|
188 | 0x51: createSymbolObject("eq", "i64"),
|
---|
189 | 0x52: createSymbolObject("ne", "i64"),
|
---|
190 | 0x53: createSymbolObject("lt_s", "i64"),
|
---|
191 | 0x54: createSymbolObject("lt_u", "i64"),
|
---|
192 | 0x55: createSymbolObject("gt_s", "i64"),
|
---|
193 | 0x56: createSymbolObject("gt_u", "i64"),
|
---|
194 | 0x57: createSymbolObject("le_s", "i64"),
|
---|
195 | 0x58: createSymbolObject("le_u", "i64"),
|
---|
196 | 0x59: createSymbolObject("ge_s", "i64"),
|
---|
197 | 0x5a: createSymbolObject("ge_u", "i64"),
|
---|
198 | 0x5b: createSymbolObject("eq", "f32"),
|
---|
199 | 0x5c: createSymbolObject("ne", "f32"),
|
---|
200 | 0x5d: createSymbolObject("lt", "f32"),
|
---|
201 | 0x5e: createSymbolObject("gt", "f32"),
|
---|
202 | 0x5f: createSymbolObject("le", "f32"),
|
---|
203 | 0x60: createSymbolObject("ge", "f32"),
|
---|
204 | 0x61: createSymbolObject("eq", "f64"),
|
---|
205 | 0x62: createSymbolObject("ne", "f64"),
|
---|
206 | 0x63: createSymbolObject("lt", "f64"),
|
---|
207 | 0x64: createSymbolObject("gt", "f64"),
|
---|
208 | 0x65: createSymbolObject("le", "f64"),
|
---|
209 | 0x66: createSymbolObject("ge", "f64"),
|
---|
210 | 0x67: createSymbolObject("clz", "i32"),
|
---|
211 | 0x68: createSymbolObject("ctz", "i32"),
|
---|
212 | 0x69: createSymbolObject("popcnt", "i32"),
|
---|
213 | 0x6a: createSymbolObject("add", "i32"),
|
---|
214 | 0x6b: createSymbolObject("sub", "i32"),
|
---|
215 | 0x6c: createSymbolObject("mul", "i32"),
|
---|
216 | 0x6d: createSymbolObject("div_s", "i32"),
|
---|
217 | 0x6e: createSymbolObject("div_u", "i32"),
|
---|
218 | 0x6f: createSymbolObject("rem_s", "i32"),
|
---|
219 | 0x70: createSymbolObject("rem_u", "i32"),
|
---|
220 | 0x71: createSymbolObject("and", "i32"),
|
---|
221 | 0x72: createSymbolObject("or", "i32"),
|
---|
222 | 0x73: createSymbolObject("xor", "i32"),
|
---|
223 | 0x74: createSymbolObject("shl", "i32"),
|
---|
224 | 0x75: createSymbolObject("shr_s", "i32"),
|
---|
225 | 0x76: createSymbolObject("shr_u", "i32"),
|
---|
226 | 0x77: createSymbolObject("rotl", "i32"),
|
---|
227 | 0x78: createSymbolObject("rotr", "i32"),
|
---|
228 | 0x79: createSymbolObject("clz", "i64"),
|
---|
229 | 0x7a: createSymbolObject("ctz", "i64"),
|
---|
230 | 0x7b: createSymbolObject("popcnt", "i64"),
|
---|
231 | 0x7c: createSymbolObject("add", "i64"),
|
---|
232 | 0x7d: createSymbolObject("sub", "i64"),
|
---|
233 | 0x7e: createSymbolObject("mul", "i64"),
|
---|
234 | 0x7f: createSymbolObject("div_s", "i64"),
|
---|
235 | 0x80: createSymbolObject("div_u", "i64"),
|
---|
236 | 0x81: createSymbolObject("rem_s", "i64"),
|
---|
237 | 0x82: createSymbolObject("rem_u", "i64"),
|
---|
238 | 0x83: createSymbolObject("and", "i64"),
|
---|
239 | 0x84: createSymbolObject("or", "i64"),
|
---|
240 | 0x85: createSymbolObject("xor", "i64"),
|
---|
241 | 0x86: createSymbolObject("shl", "i64"),
|
---|
242 | 0x87: createSymbolObject("shr_s", "i64"),
|
---|
243 | 0x88: createSymbolObject("shr_u", "i64"),
|
---|
244 | 0x89: createSymbolObject("rotl", "i64"),
|
---|
245 | 0x8a: createSymbolObject("rotr", "i64"),
|
---|
246 | 0x8b: createSymbolObject("abs", "f32"),
|
---|
247 | 0x8c: createSymbolObject("neg", "f32"),
|
---|
248 | 0x8d: createSymbolObject("ceil", "f32"),
|
---|
249 | 0x8e: createSymbolObject("floor", "f32"),
|
---|
250 | 0x8f: createSymbolObject("trunc", "f32"),
|
---|
251 | 0x90: createSymbolObject("nearest", "f32"),
|
---|
252 | 0x91: createSymbolObject("sqrt", "f32"),
|
---|
253 | 0x92: createSymbolObject("add", "f32"),
|
---|
254 | 0x93: createSymbolObject("sub", "f32"),
|
---|
255 | 0x94: createSymbolObject("mul", "f32"),
|
---|
256 | 0x95: createSymbolObject("div", "f32"),
|
---|
257 | 0x96: createSymbolObject("min", "f32"),
|
---|
258 | 0x97: createSymbolObject("max", "f32"),
|
---|
259 | 0x98: createSymbolObject("copysign", "f32"),
|
---|
260 | 0x99: createSymbolObject("abs", "f64"),
|
---|
261 | 0x9a: createSymbolObject("neg", "f64"),
|
---|
262 | 0x9b: createSymbolObject("ceil", "f64"),
|
---|
263 | 0x9c: createSymbolObject("floor", "f64"),
|
---|
264 | 0x9d: createSymbolObject("trunc", "f64"),
|
---|
265 | 0x9e: createSymbolObject("nearest", "f64"),
|
---|
266 | 0x9f: createSymbolObject("sqrt", "f64"),
|
---|
267 | 0xa0: createSymbolObject("add", "f64"),
|
---|
268 | 0xa1: createSymbolObject("sub", "f64"),
|
---|
269 | 0xa2: createSymbolObject("mul", "f64"),
|
---|
270 | 0xa3: createSymbolObject("div", "f64"),
|
---|
271 | 0xa4: createSymbolObject("min", "f64"),
|
---|
272 | 0xa5: createSymbolObject("max", "f64"),
|
---|
273 | 0xa6: createSymbolObject("copysign", "f64"),
|
---|
274 | 0xa7: createSymbolObject("wrap/i64", "i32"),
|
---|
275 | 0xa8: createSymbolObject("trunc_s/f32", "i32"),
|
---|
276 | 0xa9: createSymbolObject("trunc_u/f32", "i32"),
|
---|
277 | 0xaa: createSymbolObject("trunc_s/f64", "i32"),
|
---|
278 | 0xab: createSymbolObject("trunc_u/f64", "i32"),
|
---|
279 | 0xac: createSymbolObject("extend_s/i32", "i64"),
|
---|
280 | 0xad: createSymbolObject("extend_u/i32", "i64"),
|
---|
281 | 0xae: createSymbolObject("trunc_s/f32", "i64"),
|
---|
282 | 0xaf: createSymbolObject("trunc_u/f32", "i64"),
|
---|
283 | 0xb0: createSymbolObject("trunc_s/f64", "i64"),
|
---|
284 | 0xb1: createSymbolObject("trunc_u/f64", "i64"),
|
---|
285 | 0xb2: createSymbolObject("convert_s/i32", "f32"),
|
---|
286 | 0xb3: createSymbolObject("convert_u/i32", "f32"),
|
---|
287 | 0xb4: createSymbolObject("convert_s/i64", "f32"),
|
---|
288 | 0xb5: createSymbolObject("convert_u/i64", "f32"),
|
---|
289 | 0xb6: createSymbolObject("demote/f64", "f32"),
|
---|
290 | 0xb7: createSymbolObject("convert_s/i32", "f64"),
|
---|
291 | 0xb8: createSymbolObject("convert_u/i32", "f64"),
|
---|
292 | 0xb9: createSymbolObject("convert_s/i64", "f64"),
|
---|
293 | 0xba: createSymbolObject("convert_u/i64", "f64"),
|
---|
294 | 0xbb: createSymbolObject("promote/f32", "f64"),
|
---|
295 | 0xbc: createSymbolObject("reinterpret/f32", "i32"),
|
---|
296 | 0xbd: createSymbolObject("reinterpret/f64", "i64"),
|
---|
297 | 0xbe: createSymbolObject("reinterpret/i32", "f32"),
|
---|
298 | 0xbf: createSymbolObject("reinterpret/i64", "f64"),
|
---|
299 | // Atomic Memory Instructions
|
---|
300 | 0xfe00: createSymbol("memory.atomic.notify", 1),
|
---|
301 | 0xfe01: createSymbol("memory.atomic.wait32", 1),
|
---|
302 | 0xfe02: createSymbol("memory.atomic.wait64", 1),
|
---|
303 | 0xfe10: createSymbolObject("atomic.load", "i32", 1),
|
---|
304 | 0xfe11: createSymbolObject("atomic.load", "i64", 1),
|
---|
305 | 0xfe12: createSymbolObject("atomic.load8_u", "i32", 1),
|
---|
306 | 0xfe13: createSymbolObject("atomic.load16_u", "i32", 1),
|
---|
307 | 0xfe14: createSymbolObject("atomic.load8_u", "i64", 1),
|
---|
308 | 0xfe15: createSymbolObject("atomic.load16_u", "i64", 1),
|
---|
309 | 0xfe16: createSymbolObject("atomic.load32_u", "i64", 1),
|
---|
310 | 0xfe17: createSymbolObject("atomic.store", "i32", 1),
|
---|
311 | 0xfe18: createSymbolObject("atomic.store", "i64", 1),
|
---|
312 | 0xfe19: createSymbolObject("atomic.store8_u", "i32", 1),
|
---|
313 | 0xfe1a: createSymbolObject("atomic.store16_u", "i32", 1),
|
---|
314 | 0xfe1b: createSymbolObject("atomic.store8_u", "i64", 1),
|
---|
315 | 0xfe1c: createSymbolObject("atomic.store16_u", "i64", 1),
|
---|
316 | 0xfe1d: createSymbolObject("atomic.store32_u", "i64", 1),
|
---|
317 | 0xfe1e: createSymbolObject("atomic.rmw.add", "i32", 1),
|
---|
318 | 0xfe1f: createSymbolObject("atomic.rmw.add", "i64", 1),
|
---|
319 | 0xfe20: createSymbolObject("atomic.rmw8_u.add_u", "i32", 1),
|
---|
320 | 0xfe21: createSymbolObject("atomic.rmw16_u.add_u", "i32", 1),
|
---|
321 | 0xfe22: createSymbolObject("atomic.rmw8_u.add_u", "i64", 1),
|
---|
322 | 0xfe23: createSymbolObject("atomic.rmw16_u.add_u", "i64", 1),
|
---|
323 | 0xfe24: createSymbolObject("atomic.rmw32_u.add_u", "i64", 1),
|
---|
324 | 0xfe25: createSymbolObject("atomic.rmw.sub", "i32", 1),
|
---|
325 | 0xfe26: createSymbolObject("atomic.rmw.sub", "i64", 1),
|
---|
326 | 0xfe27: createSymbolObject("atomic.rmw8_u.sub_u", "i32", 1),
|
---|
327 | 0xfe28: createSymbolObject("atomic.rmw16_u.sub_u", "i32", 1),
|
---|
328 | 0xfe29: createSymbolObject("atomic.rmw8_u.sub_u", "i64", 1),
|
---|
329 | 0xfe2a: createSymbolObject("atomic.rmw16_u.sub_u", "i64", 1),
|
---|
330 | 0xfe2b: createSymbolObject("atomic.rmw32_u.sub_u", "i64", 1),
|
---|
331 | 0xfe2c: createSymbolObject("atomic.rmw.and", "i32", 1),
|
---|
332 | 0xfe2d: createSymbolObject("atomic.rmw.and", "i64", 1),
|
---|
333 | 0xfe2e: createSymbolObject("atomic.rmw8_u.and_u", "i32", 1),
|
---|
334 | 0xfe2f: createSymbolObject("atomic.rmw16_u.and_u", "i32", 1),
|
---|
335 | 0xfe30: createSymbolObject("atomic.rmw8_u.and_u", "i64", 1),
|
---|
336 | 0xfe31: createSymbolObject("atomic.rmw16_u.and_u", "i64", 1),
|
---|
337 | 0xfe32: createSymbolObject("atomic.rmw32_u.and_u", "i64", 1),
|
---|
338 | 0xfe33: createSymbolObject("atomic.rmw.or", "i32", 1),
|
---|
339 | 0xfe34: createSymbolObject("atomic.rmw.or", "i64", 1),
|
---|
340 | 0xfe35: createSymbolObject("atomic.rmw8_u.or_u", "i32", 1),
|
---|
341 | 0xfe36: createSymbolObject("atomic.rmw16_u.or_u", "i32", 1),
|
---|
342 | 0xfe37: createSymbolObject("atomic.rmw8_u.or_u", "i64", 1),
|
---|
343 | 0xfe38: createSymbolObject("atomic.rmw16_u.or_u", "i64", 1),
|
---|
344 | 0xfe39: createSymbolObject("atomic.rmw32_u.or_u", "i64", 1),
|
---|
345 | 0xfe3a: createSymbolObject("atomic.rmw.xor", "i32", 1),
|
---|
346 | 0xfe3b: createSymbolObject("atomic.rmw.xor", "i64", 1),
|
---|
347 | 0xfe3c: createSymbolObject("atomic.rmw8_u.xor_u", "i32", 1),
|
---|
348 | 0xfe3d: createSymbolObject("atomic.rmw16_u.xor_u", "i32", 1),
|
---|
349 | 0xfe3e: createSymbolObject("atomic.rmw8_u.xor_u", "i64", 1),
|
---|
350 | 0xfe3f: createSymbolObject("atomic.rmw16_u.xor_u", "i64", 1),
|
---|
351 | 0xfe40: createSymbolObject("atomic.rmw32_u.xor_u", "i64", 1),
|
---|
352 | 0xfe41: createSymbolObject("atomic.rmw.xchg", "i32", 1),
|
---|
353 | 0xfe42: createSymbolObject("atomic.rmw.xchg", "i64", 1),
|
---|
354 | 0xfe43: createSymbolObject("atomic.rmw8_u.xchg_u", "i32", 1),
|
---|
355 | 0xfe44: createSymbolObject("atomic.rmw16_u.xchg_u", "i32", 1),
|
---|
356 | 0xfe45: createSymbolObject("atomic.rmw8_u.xchg_u", "i64", 1),
|
---|
357 | 0xfe46: createSymbolObject("atomic.rmw16_u.xchg_u", "i64", 1),
|
---|
358 | 0xfe47: createSymbolObject("atomic.rmw32_u.xchg_u", "i64", 1),
|
---|
359 | 0xfe48: createSymbolObject("atomic.rmw.cmpxchg", "i32", 1),
|
---|
360 | 0xfe49: createSymbolObject("atomic.rmw.cmpxchg", "i64", 1),
|
---|
361 | 0xfe4a: createSymbolObject("atomic.rmw8_u.cmpxchg_u", "i32", 1),
|
---|
362 | 0xfe4b: createSymbolObject("atomic.rmw16_u.cmpxchg_u", "i32", 1),
|
---|
363 | 0xfe4c: createSymbolObject("atomic.rmw8_u.cmpxchg_u", "i64", 1),
|
---|
364 | 0xfe4d: createSymbolObject("atomic.rmw16_u.cmpxchg_u", "i64", 1),
|
---|
365 | 0xfe4e: createSymbolObject("atomic.rmw32_u.cmpxchg_u", "i64", 1)
|
---|
366 | };
|
---|
367 | var symbolsByName = invertMap(symbolsByByte, function (obj) {
|
---|
368 | if (typeof obj.object === "string") {
|
---|
369 | return "".concat(obj.object, ".").concat(obj.name);
|
---|
370 | }
|
---|
371 |
|
---|
372 | return obj.name;
|
---|
373 | });
|
---|
374 | export default {
|
---|
375 | symbolsByByte: symbolsByByte,
|
---|
376 | sections: sections,
|
---|
377 | magicModuleHeader: magicModuleHeader,
|
---|
378 | moduleVersion: moduleVersion,
|
---|
379 | types: types,
|
---|
380 | valtypes: valtypes,
|
---|
381 | exportTypes: exportTypes,
|
---|
382 | blockTypes: blockTypes,
|
---|
383 | tableTypes: tableTypes,
|
---|
384 | globalTypes: globalTypes,
|
---|
385 | importTypes: importTypes,
|
---|
386 | valtypesByString: valtypesByString,
|
---|
387 | globalTypesByString: globalTypesByString,
|
---|
388 | exportTypesByName: exportTypesByName,
|
---|
389 | symbolsByName: symbolsByName
|
---|
390 | };
|
---|
391 | export { getSectionForNode } from "./section"; |
---|