Projekt

Obecné

Profil

Stáhnout (10.6 KB) Statistiky
| Větev: | Revize:
1
"use strict";
2

    
3
Object.defineProperty(exports, "__esModule", {
4
  value: true
5
});
6
Object.defineProperty(exports, "getSectionForNode", {
7
  enumerable: true,
8
  get: function get() {
9
    return _section.getSectionForNode;
10
  }
11
});
12
exports.default = void 0;
13

    
14
var _section = require("./section");
15

    
16
var illegalop = "illegal";
17
var magicModuleHeader = [0x00, 0x61, 0x73, 0x6d];
18
var moduleVersion = [0x01, 0x00, 0x00, 0x00];
19

    
20
function invertMap(obj) {
21
  var keyModifierFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (k) {
22
    return k;
23
  };
24
  var result = {};
25
  var keys = Object.keys(obj);
26

    
27
  for (var i = 0, length = keys.length; i < length; i++) {
28
    result[keyModifierFn(obj[keys[i]])] = keys[i];
29
  }
30

    
31
  return result;
32
}
33

    
34
function createSymbolObject(name
35
/*: string */
36
, object
37
/*: string */
38
)
39
/*: Symbol*/
40
{
41
  var numberOfArgs
42
  /*: number*/
43
  = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
44
  return {
45
    name: name,
46
    object: object,
47
    numberOfArgs: numberOfArgs
48
  };
49
}
50

    
51
function createSymbol(name
52
/*: string */
53
)
54
/*: Symbol*/
55
{
56
  var numberOfArgs
57
  /*: number*/
58
  = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
59
  return {
60
    name: name,
61
    numberOfArgs: numberOfArgs
62
  };
63
}
64

    
65
var types = {
66
  func: 0x60,
67
  result: 0x40
68
};
69
var exportTypes = {
70
  0x00: "Func",
71
  0x01: "Table",
72
  0x02: "Mem",
73
  0x03: "Global"
74
};
75
var exportTypesByName = invertMap(exportTypes);
76
var valtypes = {
77
  0x7f: "i32",
78
  0x7e: "i64",
79
  0x7d: "f32",
80
  0x7c: "f64",
81
  0x7b: "v128"
82
};
83
var valtypesByString = invertMap(valtypes);
84
var tableTypes = {
85
  0x70: "anyfunc"
86
};
87
var blockTypes = Object.assign({}, valtypes, {
88
  // https://webassembly.github.io/spec/core/binary/types.html#binary-blocktype
89
  0x40: null,
90
  // https://webassembly.github.io/spec/core/binary/types.html#binary-valtype
91
  0x7f: "i32",
92
  0x7e: "i64",
93
  0x7d: "f32",
94
  0x7c: "f64"
95
});
96
var globalTypes = {
97
  0x00: "const",
98
  0x01: "var"
99
};
100
var globalTypesByString = invertMap(globalTypes);
101
var importTypes = {
102
  0x00: "func",
103
  0x01: "table",
104
  0x02: "mem",
105
  0x03: "global"
106
};
107
var sections = {
108
  custom: 0,
109
  type: 1,
110
  import: 2,
111
  func: 3,
112
  table: 4,
113
  memory: 5,
114
  global: 6,
115
  export: 7,
116
  start: 8,
117
  element: 9,
118
  code: 10,
119
  data: 11
120
};
121
var symbolsByByte = {
122
  0x00: createSymbol("unreachable"),
123
  0x01: createSymbol("nop"),
124
  0x02: createSymbol("block"),
125
  0x03: createSymbol("loop"),
126
  0x04: createSymbol("if"),
127
  0x05: createSymbol("else"),
128
  0x06: illegalop,
129
  0x07: illegalop,
130
  0x08: illegalop,
131
  0x09: illegalop,
132
  0x0a: illegalop,
133
  0x0b: createSymbol("end"),
134
  0x0c: createSymbol("br", 1),
135
  0x0d: createSymbol("br_if", 1),
136
  0x0e: createSymbol("br_table"),
137
  0x0f: createSymbol("return"),
138
  0x10: createSymbol("call", 1),
139
  0x11: createSymbol("call_indirect", 2),
140
  0x12: illegalop,
141
  0x13: illegalop,
142
  0x14: illegalop,
143
  0x15: illegalop,
144
  0x16: illegalop,
145
  0x17: illegalop,
146
  0x18: illegalop,
147
  0x19: illegalop,
148
  0x1a: createSymbol("drop"),
149
  0x1b: createSymbol("select"),
150
  0x1c: illegalop,
151
  0x1d: illegalop,
152
  0x1e: illegalop,
153
  0x1f: illegalop,
154
  0x20: createSymbol("get_local", 1),
155
  0x21: createSymbol("set_local", 1),
156
  0x22: createSymbol("tee_local", 1),
157
  0x23: createSymbol("get_global", 1),
158
  0x24: createSymbol("set_global", 1),
159
  0x25: illegalop,
160
  0x26: illegalop,
161
  0x27: illegalop,
162
  0x28: createSymbolObject("load", "u32", 1),
163
  0x29: createSymbolObject("load", "u64", 1),
164
  0x2a: createSymbolObject("load", "f32", 1),
165
  0x2b: createSymbolObject("load", "f64", 1),
166
  0x2c: createSymbolObject("load8_s", "u32", 1),
167
  0x2d: createSymbolObject("load8_u", "u32", 1),
168
  0x2e: createSymbolObject("load16_s", "u32", 1),
169
  0x2f: createSymbolObject("load16_u", "u32", 1),
170
  0x30: createSymbolObject("load8_s", "u64", 1),
171
  0x31: createSymbolObject("load8_u", "u64", 1),
172
  0x32: createSymbolObject("load16_s", "u64", 1),
173
  0x33: createSymbolObject("load16_u", "u64", 1),
174
  0x34: createSymbolObject("load32_s", "u64", 1),
175
  0x35: createSymbolObject("load32_u", "u64", 1),
176
  0x36: createSymbolObject("store", "u32", 1),
177
  0x37: createSymbolObject("store", "u64", 1),
178
  0x38: createSymbolObject("store", "f32", 1),
179
  0x39: createSymbolObject("store", "f64", 1),
180
  0x3a: createSymbolObject("store8", "u32", 1),
181
  0x3b: createSymbolObject("store16", "u32", 1),
182
  0x3c: createSymbolObject("store8", "u64", 1),
183
  0x3d: createSymbolObject("store16", "u64", 1),
184
  0x3e: createSymbolObject("store32", "u64", 1),
185
  0x3f: createSymbolObject("current_memory"),
186
  0x40: createSymbolObject("grow_memory"),
187
  0x41: createSymbolObject("const", "i32", 1),
188
  0x42: createSymbolObject("const", "i64", 1),
189
  0x43: createSymbolObject("const", "f32", 1),
190
  0x44: createSymbolObject("const", "f64", 1),
191
  0x45: createSymbolObject("eqz", "i32"),
192
  0x46: createSymbolObject("eq", "i32"),
193
  0x47: createSymbolObject("ne", "i32"),
194
  0x48: createSymbolObject("lt_s", "i32"),
195
  0x49: createSymbolObject("lt_u", "i32"),
196
  0x4a: createSymbolObject("gt_s", "i32"),
197
  0x4b: createSymbolObject("gt_u", "i32"),
198
  0x4c: createSymbolObject("le_s", "i32"),
199
  0x4d: createSymbolObject("le_u", "i32"),
200
  0x4e: createSymbolObject("ge_s", "i32"),
201
  0x4f: createSymbolObject("ge_u", "i32"),
202
  0x50: createSymbolObject("eqz", "i64"),
203
  0x51: createSymbolObject("eq", "i64"),
204
  0x52: createSymbolObject("ne", "i64"),
205
  0x53: createSymbolObject("lt_s", "i64"),
206
  0x54: createSymbolObject("lt_u", "i64"),
207
  0x55: createSymbolObject("gt_s", "i64"),
208
  0x56: createSymbolObject("gt_u", "i64"),
209
  0x57: createSymbolObject("le_s", "i64"),
210
  0x58: createSymbolObject("le_u", "i64"),
211
  0x59: createSymbolObject("ge_s", "i64"),
212
  0x5a: createSymbolObject("ge_u", "i64"),
213
  0x5b: createSymbolObject("eq", "f32"),
214
  0x5c: createSymbolObject("ne", "f32"),
215
  0x5d: createSymbolObject("lt", "f32"),
216
  0x5e: createSymbolObject("gt", "f32"),
217
  0x5f: createSymbolObject("le", "f32"),
218
  0x60: createSymbolObject("ge", "f32"),
219
  0x61: createSymbolObject("eq", "f64"),
220
  0x62: createSymbolObject("ne", "f64"),
221
  0x63: createSymbolObject("lt", "f64"),
222
  0x64: createSymbolObject("gt", "f64"),
223
  0x65: createSymbolObject("le", "f64"),
224
  0x66: createSymbolObject("ge", "f64"),
225
  0x67: createSymbolObject("clz", "i32"),
226
  0x68: createSymbolObject("ctz", "i32"),
227
  0x69: createSymbolObject("popcnt", "i32"),
228
  0x6a: createSymbolObject("add", "i32"),
229
  0x6b: createSymbolObject("sub", "i32"),
230
  0x6c: createSymbolObject("mul", "i32"),
231
  0x6d: createSymbolObject("div_s", "i32"),
232
  0x6e: createSymbolObject("div_u", "i32"),
233
  0x6f: createSymbolObject("rem_s", "i32"),
234
  0x70: createSymbolObject("rem_u", "i32"),
235
  0x71: createSymbolObject("and", "i32"),
236
  0x72: createSymbolObject("or", "i32"),
237
  0x73: createSymbolObject("xor", "i32"),
238
  0x74: createSymbolObject("shl", "i32"),
239
  0x75: createSymbolObject("shr_s", "i32"),
240
  0x76: createSymbolObject("shr_u", "i32"),
241
  0x77: createSymbolObject("rotl", "i32"),
242
  0x78: createSymbolObject("rotr", "i32"),
243
  0x79: createSymbolObject("clz", "i64"),
244
  0x7a: createSymbolObject("ctz", "i64"),
245
  0x7b: createSymbolObject("popcnt", "i64"),
246
  0x7c: createSymbolObject("add", "i64"),
247
  0x7d: createSymbolObject("sub", "i64"),
248
  0x7e: createSymbolObject("mul", "i64"),
249
  0x7f: createSymbolObject("div_s", "i64"),
250
  0x80: createSymbolObject("div_u", "i64"),
251
  0x81: createSymbolObject("rem_s", "i64"),
252
  0x82: createSymbolObject("rem_u", "i64"),
253
  0x83: createSymbolObject("and", "i64"),
254
  0x84: createSymbolObject("or", "i64"),
255
  0x85: createSymbolObject("xor", "i64"),
256
  0x86: createSymbolObject("shl", "i64"),
257
  0x87: createSymbolObject("shr_s", "i64"),
258
  0x88: createSymbolObject("shr_u", "i64"),
259
  0x89: createSymbolObject("rotl", "i64"),
260
  0x8a: createSymbolObject("rotr", "i64"),
261
  0x8b: createSymbolObject("abs", "f32"),
262
  0x8c: createSymbolObject("neg", "f32"),
263
  0x8d: createSymbolObject("ceil", "f32"),
264
  0x8e: createSymbolObject("floor", "f32"),
265
  0x8f: createSymbolObject("trunc", "f32"),
266
  0x90: createSymbolObject("nearest", "f32"),
267
  0x91: createSymbolObject("sqrt", "f32"),
268
  0x92: createSymbolObject("add", "f32"),
269
  0x93: createSymbolObject("sub", "f32"),
270
  0x94: createSymbolObject("mul", "f32"),
271
  0x95: createSymbolObject("div", "f32"),
272
  0x96: createSymbolObject("min", "f32"),
273
  0x97: createSymbolObject("max", "f32"),
274
  0x98: createSymbolObject("copysign", "f32"),
275
  0x99: createSymbolObject("abs", "f64"),
276
  0x9a: createSymbolObject("neg", "f64"),
277
  0x9b: createSymbolObject("ceil", "f64"),
278
  0x9c: createSymbolObject("floor", "f64"),
279
  0x9d: createSymbolObject("trunc", "f64"),
280
  0x9e: createSymbolObject("nearest", "f64"),
281
  0x9f: createSymbolObject("sqrt", "f64"),
282
  0xa0: createSymbolObject("add", "f64"),
283
  0xa1: createSymbolObject("sub", "f64"),
284
  0xa2: createSymbolObject("mul", "f64"),
285
  0xa3: createSymbolObject("div", "f64"),
286
  0xa4: createSymbolObject("min", "f64"),
287
  0xa5: createSymbolObject("max", "f64"),
288
  0xa6: createSymbolObject("copysign", "f64"),
289
  0xa7: createSymbolObject("wrap/i64", "i32"),
290
  0xa8: createSymbolObject("trunc_s/f32", "i32"),
291
  0xa9: createSymbolObject("trunc_u/f32", "i32"),
292
  0xaa: createSymbolObject("trunc_s/f64", "i32"),
293
  0xab: createSymbolObject("trunc_u/f64", "i32"),
294
  0xac: createSymbolObject("extend_s/i32", "i64"),
295
  0xad: createSymbolObject("extend_u/i32", "i64"),
296
  0xae: createSymbolObject("trunc_s/f32", "i64"),
297
  0xaf: createSymbolObject("trunc_u/f32", "i64"),
298
  0xb0: createSymbolObject("trunc_s/f64", "i64"),
299
  0xb1: createSymbolObject("trunc_u/f64", "i64"),
300
  0xb2: createSymbolObject("convert_s/i32", "f32"),
301
  0xb3: createSymbolObject("convert_u/i32", "f32"),
302
  0xb4: createSymbolObject("convert_s/i64", "f32"),
303
  0xb5: createSymbolObject("convert_u/i64", "f32"),
304
  0xb6: createSymbolObject("demote/f64", "f32"),
305
  0xb7: createSymbolObject("convert_s/i32", "f64"),
306
  0xb8: createSymbolObject("convert_u/i32", "f64"),
307
  0xb9: createSymbolObject("convert_s/i64", "f64"),
308
  0xba: createSymbolObject("convert_u/i64", "f64"),
309
  0xbb: createSymbolObject("promote/f32", "f64"),
310
  0xbc: createSymbolObject("reinterpret/f32", "i32"),
311
  0xbd: createSymbolObject("reinterpret/f64", "i64"),
312
  0xbe: createSymbolObject("reinterpret/i32", "f32"),
313
  0xbf: createSymbolObject("reinterpret/i64", "f64")
314
};
315
var symbolsByName = invertMap(symbolsByByte, function (obj) {
316
  if (typeof obj.object === "string") {
317
    return "".concat(obj.object, ".").concat(obj.name);
318
  }
319

    
320
  return obj.name;
321
});
322
var _default = {
323
  symbolsByByte: symbolsByByte,
324
  sections: sections,
325
  magicModuleHeader: magicModuleHeader,
326
  moduleVersion: moduleVersion,
327
  types: types,
328
  valtypes: valtypes,
329
  exportTypes: exportTypes,
330
  blockTypes: blockTypes,
331
  tableTypes: tableTypes,
332
  globalTypes: globalTypes,
333
  importTypes: importTypes,
334
  valtypesByString: valtypesByString,
335
  globalTypesByString: globalTypesByString,
336
  exportTypesByName: exportTypesByName,
337
  symbolsByName: symbolsByName
338
};
339
exports.default = _default;
(1-1/2)