summaryrefslogtreecommitdiffstats
path: root/node_modules/@webassemblyjs/helper-wasm-bytecode/lib
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@webassemblyjs/helper-wasm-bytecode/lib')
-rw-r--r--node_modules/@webassemblyjs/helper-wasm-bytecode/lib/index.js339
-rw-r--r--node_modules/@webassemblyjs/helper-wasm-bytecode/lib/section.js38
2 files changed, 377 insertions, 0 deletions
diff --git a/node_modules/@webassemblyjs/helper-wasm-bytecode/lib/index.js b/node_modules/@webassemblyjs/helper-wasm-bytecode/lib/index.js
new file mode 100644
index 0000000..7239e10
--- /dev/null
+++ b/node_modules/@webassemblyjs/helper-wasm-bytecode/lib/index.js
@@ -0,0 +1,339 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+Object.defineProperty(exports, "getSectionForNode", {
+ enumerable: true,
+ get: function get() {
+ return _section.getSectionForNode;
+ }
+});
+exports.default = void 0;
+
+var _section = require("./section");
+
+var illegalop = "illegal";
+var magicModuleHeader = [0x00, 0x61, 0x73, 0x6d];
+var moduleVersion = [0x01, 0x00, 0x00, 0x00];
+
+function invertMap(obj) {
+ var keyModifierFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (k) {
+ return k;
+ };
+ var result = {};
+ var keys = Object.keys(obj);
+
+ for (var i = 0, length = keys.length; i < length; i++) {
+ result[keyModifierFn(obj[keys[i]])] = keys[i];
+ }
+
+ return result;
+}
+
+function createSymbolObject(name
+/*: string */
+, object
+/*: string */
+)
+/*: Symbol*/
+{
+ var numberOfArgs
+ /*: number*/
+ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
+ return {
+ name: name,
+ object: object,
+ numberOfArgs: numberOfArgs
+ };
+}
+
+function createSymbol(name
+/*: string */
+)
+/*: Symbol*/
+{
+ var numberOfArgs
+ /*: number*/
+ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
+ return {
+ name: name,
+ numberOfArgs: numberOfArgs
+ };
+}
+
+var types = {
+ func: 0x60,
+ result: 0x40
+};
+var exportTypes = {
+ 0x00: "Func",
+ 0x01: "Table",
+ 0x02: "Mem",
+ 0x03: "Global"
+};
+var exportTypesByName = invertMap(exportTypes);
+var valtypes = {
+ 0x7f: "i32",
+ 0x7e: "i64",
+ 0x7d: "f32",
+ 0x7c: "f64",
+ 0x7b: "v128"
+};
+var valtypesByString = invertMap(valtypes);
+var tableTypes = {
+ 0x70: "anyfunc"
+};
+var blockTypes = Object.assign({}, valtypes, {
+ // https://webassembly.github.io/spec/core/binary/types.html#binary-blocktype
+ 0x40: null,
+ // https://webassembly.github.io/spec/core/binary/types.html#binary-valtype
+ 0x7f: "i32",
+ 0x7e: "i64",
+ 0x7d: "f32",
+ 0x7c: "f64"
+});
+var globalTypes = {
+ 0x00: "const",
+ 0x01: "var"
+};
+var globalTypesByString = invertMap(globalTypes);
+var importTypes = {
+ 0x00: "func",
+ 0x01: "table",
+ 0x02: "mem",
+ 0x03: "global"
+};
+var sections = {
+ custom: 0,
+ type: 1,
+ import: 2,
+ func: 3,
+ table: 4,
+ memory: 5,
+ global: 6,
+ export: 7,
+ start: 8,
+ element: 9,
+ code: 10,
+ data: 11
+};
+var symbolsByByte = {
+ 0x00: createSymbol("unreachable"),
+ 0x01: createSymbol("nop"),
+ 0x02: createSymbol("block"),
+ 0x03: createSymbol("loop"),
+ 0x04: createSymbol("if"),
+ 0x05: createSymbol("else"),
+ 0x06: illegalop,
+ 0x07: illegalop,
+ 0x08: illegalop,
+ 0x09: illegalop,
+ 0x0a: illegalop,
+ 0x0b: createSymbol("end"),
+ 0x0c: createSymbol("br", 1),
+ 0x0d: createSymbol("br_if", 1),
+ 0x0e: createSymbol("br_table"),
+ 0x0f: createSymbol("return"),
+ 0x10: createSymbol("call", 1),
+ 0x11: createSymbol("call_indirect", 2),
+ 0x12: illegalop,
+ 0x13: illegalop,
+ 0x14: illegalop,
+ 0x15: illegalop,
+ 0x16: illegalop,
+ 0x17: illegalop,
+ 0x18: illegalop,
+ 0x19: illegalop,
+ 0x1a: createSymbol("drop"),
+ 0x1b: createSymbol("select"),
+ 0x1c: illegalop,
+ 0x1d: illegalop,
+ 0x1e: illegalop,
+ 0x1f: illegalop,
+ 0x20: createSymbol("get_local", 1),
+ 0x21: createSymbol("set_local", 1),
+ 0x22: createSymbol("tee_local", 1),
+ 0x23: createSymbol("get_global", 1),
+ 0x24: createSymbol("set_global", 1),
+ 0x25: illegalop,
+ 0x26: illegalop,
+ 0x27: illegalop,
+ 0x28: createSymbolObject("load", "u32", 1),
+ 0x29: createSymbolObject("load", "u64", 1),
+ 0x2a: createSymbolObject("load", "f32", 1),
+ 0x2b: createSymbolObject("load", "f64", 1),
+ 0x2c: createSymbolObject("load8_s", "u32", 1),
+ 0x2d: createSymbolObject("load8_u", "u32", 1),
+ 0x2e: createSymbolObject("load16_s", "u32", 1),
+ 0x2f: createSymbolObject("load16_u", "u32", 1),
+ 0x30: createSymbolObject("load8_s", "u64", 1),
+ 0x31: createSymbolObject("load8_u", "u64", 1),
+ 0x32: createSymbolObject("load16_s", "u64", 1),
+ 0x33: createSymbolObject("load16_u", "u64", 1),
+ 0x34: createSymbolObject("load32_s", "u64", 1),
+ 0x35: createSymbolObject("load32_u", "u64", 1),
+ 0x36: createSymbolObject("store", "u32", 1),
+ 0x37: createSymbolObject("store", "u64", 1),
+ 0x38: createSymbolObject("store", "f32", 1),
+ 0x39: createSymbolObject("store", "f64", 1),
+ 0x3a: createSymbolObject("store8", "u32", 1),
+ 0x3b: createSymbolObject("store16", "u32", 1),
+ 0x3c: createSymbolObject("store8", "u64", 1),
+ 0x3d: createSymbolObject("store16", "u64", 1),
+ 0x3e: createSymbolObject("store32", "u64", 1),
+ 0x3f: createSymbolObject("current_memory"),
+ 0x40: createSymbolObject("grow_memory"),
+ 0x41: createSymbolObject("const", "i32", 1),
+ 0x42: createSymbolObject("const", "i64", 1),
+ 0x43: createSymbolObject("const", "f32", 1),
+ 0x44: createSymbolObject("const", "f64", 1),
+ 0x45: createSymbolObject("eqz", "i32"),
+ 0x46: createSymbolObject("eq", "i32"),
+ 0x47: createSymbolObject("ne", "i32"),
+ 0x48: createSymbolObject("lt_s", "i32"),
+ 0x49: createSymbolObject("lt_u", "i32"),
+ 0x4a: createSymbolObject("gt_s", "i32"),
+ 0x4b: createSymbolObject("gt_u", "i32"),
+ 0x4c: createSymbolObject("le_s", "i32"),
+ 0x4d: createSymbolObject("le_u", "i32"),
+ 0x4e: createSymbolObject("ge_s", "i32"),
+ 0x4f: createSymbolObject("ge_u", "i32"),
+ 0x50: createSymbolObject("eqz", "i64"),
+ 0x51: createSymbolObject("eq", "i64"),
+ 0x52: createSymbolObject("ne", "i64"),
+ 0x53: createSymbolObject("lt_s", "i64"),
+ 0x54: createSymbolObject("lt_u", "i64"),
+ 0x55: createSymbolObject("gt_s", "i64"),
+ 0x56: createSymbolObject("gt_u", "i64"),
+ 0x57: createSymbolObject("le_s", "i64"),
+ 0x58: createSymbolObject("le_u", "i64"),
+ 0x59: createSymbolObject("ge_s", "i64"),
+ 0x5a: createSymbolObject("ge_u", "i64"),
+ 0x5b: createSymbolObject("eq", "f32"),
+ 0x5c: createSymbolObject("ne", "f32"),
+ 0x5d: createSymbolObject("lt", "f32"),
+ 0x5e: createSymbolObject("gt", "f32"),
+ 0x5f: createSymbolObject("le", "f32"),
+ 0x60: createSymbolObject("ge", "f32"),
+ 0x61: createSymbolObject("eq", "f64"),
+ 0x62: createSymbolObject("ne", "f64"),
+ 0x63: createSymbolObject("lt", "f64"),
+ 0x64: createSymbolObject("gt", "f64"),
+ 0x65: createSymbolObject("le", "f64"),
+ 0x66: createSymbolObject("ge", "f64"),
+ 0x67: createSymbolObject("clz", "i32"),
+ 0x68: createSymbolObject("ctz", "i32"),
+ 0x69: createSymbolObject("popcnt", "i32"),
+ 0x6a: createSymbolObject("add", "i32"),
+ 0x6b: createSymbolObject("sub", "i32"),
+ 0x6c: createSymbolObject("mul", "i32"),
+ 0x6d: createSymbolObject("div_s", "i32"),
+ 0x6e: createSymbolObject("div_u", "i32"),
+ 0x6f: createSymbolObject("rem_s", "i32"),
+ 0x70: createSymbolObject("rem_u", "i32"),
+ 0x71: createSymbolObject("and", "i32"),
+ 0x72: createSymbolObject("or", "i32"),
+ 0x73: createSymbolObject("xor", "i32"),
+ 0x74: createSymbolObject("shl", "i32"),
+ 0x75: createSymbolObject("shr_s", "i32"),
+ 0x76: createSymbolObject("shr_u", "i32"),
+ 0x77: createSymbolObject("rotl", "i32"),
+ 0x78: createSymbolObject("rotr", "i32"),
+ 0x79: createSymbolObject("clz", "i64"),
+ 0x7a: createSymbolObject("ctz", "i64"),
+ 0x7b: createSymbolObject("popcnt", "i64"),
+ 0x7c: createSymbolObject("add", "i64"),
+ 0x7d: createSymbolObject("sub", "i64"),
+ 0x7e: createSymbolObject("mul", "i64"),
+ 0x7f: createSymbolObject("div_s", "i64"),
+ 0x80: createSymbolObject("div_u", "i64"),
+ 0x81: createSymbolObject("rem_s", "i64"),
+ 0x82: createSymbolObject("rem_u", "i64"),
+ 0x83: createSymbolObject("and", "i64"),
+ 0x84: createSymbolObject("or", "i64"),
+ 0x85: createSymbolObject("xor", "i64"),
+ 0x86: createSymbolObject("shl", "i64"),
+ 0x87: createSymbolObject("shr_s", "i64"),
+ 0x88: createSymbolObject("shr_u", "i64"),
+ 0x89: createSymbolObject("rotl", "i64"),
+ 0x8a: createSymbolObject("rotr", "i64"),
+ 0x8b: createSymbolObject("abs", "f32"),
+ 0x8c: createSymbolObject("neg", "f32"),
+ 0x8d: createSymbolObject("ceil", "f32"),
+ 0x8e: createSymbolObject("floor", "f32"),
+ 0x8f: createSymbolObject("trunc", "f32"),
+ 0x90: createSymbolObject("nearest", "f32"),
+ 0x91: createSymbolObject("sqrt", "f32"),
+ 0x92: createSymbolObject("add", "f32"),
+ 0x93: createSymbolObject("sub", "f32"),
+ 0x94: createSymbolObject("mul", "f32"),
+ 0x95: createSymbolObject("div", "f32"),
+ 0x96: createSymbolObject("min", "f32"),
+ 0x97: createSymbolObject("max", "f32"),
+ 0x98: createSymbolObject("copysign", "f32"),
+ 0x99: createSymbolObject("abs", "f64"),
+ 0x9a: createSymbolObject("neg", "f64"),
+ 0x9b: createSymbolObject("ceil", "f64"),
+ 0x9c: createSymbolObject("floor", "f64"),
+ 0x9d: createSymbolObject("trunc", "f64"),
+ 0x9e: createSymbolObject("nearest", "f64"),
+ 0x9f: createSymbolObject("sqrt", "f64"),
+ 0xa0: createSymbolObject("add", "f64"),
+ 0xa1: createSymbolObject("sub", "f64"),
+ 0xa2: createSymbolObject("mul", "f64"),
+ 0xa3: createSymbolObject("div", "f64"),
+ 0xa4: createSymbolObject("min", "f64"),
+ 0xa5: createSymbolObject("max", "f64"),
+ 0xa6: createSymbolObject("copysign", "f64"),
+ 0xa7: createSymbolObject("wrap/i64", "i32"),
+ 0xa8: createSymbolObject("trunc_s/f32", "i32"),
+ 0xa9: createSymbolObject("trunc_u/f32", "i32"),
+ 0xaa: createSymbolObject("trunc_s/f64", "i32"),
+ 0xab: createSymbolObject("trunc_u/f64", "i32"),
+ 0xac: createSymbolObject("extend_s/i32", "i64"),
+ 0xad: createSymbolObject("extend_u/i32", "i64"),
+ 0xae: createSymbolObject("trunc_s/f32", "i64"),
+ 0xaf: createSymbolObject("trunc_u/f32", "i64"),
+ 0xb0: createSymbolObject("trunc_s/f64", "i64"),
+ 0xb1: createSymbolObject("trunc_u/f64", "i64"),
+ 0xb2: createSymbolObject("convert_s/i32", "f32"),
+ 0xb3: createSymbolObject("convert_u/i32", "f32"),
+ 0xb4: createSymbolObject("convert_s/i64", "f32"),
+ 0xb5: createSymbolObject("convert_u/i64", "f32"),
+ 0xb6: createSymbolObject("demote/f64", "f32"),
+ 0xb7: createSymbolObject("convert_s/i32", "f64"),
+ 0xb8: createSymbolObject("convert_u/i32", "f64"),
+ 0xb9: createSymbolObject("convert_s/i64", "f64"),
+ 0xba: createSymbolObject("convert_u/i64", "f64"),
+ 0xbb: createSymbolObject("promote/f32", "f64"),
+ 0xbc: createSymbolObject("reinterpret/f32", "i32"),
+ 0xbd: createSymbolObject("reinterpret/f64", "i64"),
+ 0xbe: createSymbolObject("reinterpret/i32", "f32"),
+ 0xbf: createSymbolObject("reinterpret/i64", "f64")
+};
+var symbolsByName = invertMap(symbolsByByte, function (obj) {
+ if (typeof obj.object === "string") {
+ return "".concat(obj.object, ".").concat(obj.name);
+ }
+
+ return obj.name;
+});
+var _default = {
+ symbolsByByte: symbolsByByte,
+ sections: sections,
+ magicModuleHeader: magicModuleHeader,
+ moduleVersion: moduleVersion,
+ types: types,
+ valtypes: valtypes,
+ exportTypes: exportTypes,
+ blockTypes: blockTypes,
+ tableTypes: tableTypes,
+ globalTypes: globalTypes,
+ importTypes: importTypes,
+ valtypesByString: valtypesByString,
+ globalTypesByString: globalTypesByString,
+ exportTypesByName: exportTypesByName,
+ symbolsByName: symbolsByName
+};
+exports.default = _default; \ No newline at end of file
diff --git a/node_modules/@webassemblyjs/helper-wasm-bytecode/lib/section.js b/node_modules/@webassemblyjs/helper-wasm-bytecode/lib/section.js
new file mode 100644
index 0000000..23f6b2b
--- /dev/null
+++ b/node_modules/@webassemblyjs/helper-wasm-bytecode/lib/section.js
@@ -0,0 +1,38 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.getSectionForNode = getSectionForNode;
+
+function getSectionForNode(n) {
+ switch (n.type) {
+ case "ModuleImport":
+ return "import";
+
+ case "CallInstruction":
+ case "CallIndirectInstruction":
+ case "Func":
+ case "Instr":
+ return "code";
+
+ case "ModuleExport":
+ return "export";
+
+ case "Start":
+ return "start";
+
+ case "TypeInstruction":
+ return "type";
+
+ case "IndexInFuncSection":
+ return "func";
+
+ case "Global":
+ return "global";
+ // No section
+
+ default:
+ return;
+ }
+} \ No newline at end of file