"use strict"; /* Copyright 2016 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.
*/ var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b);
}; returnfunction (d, b) { if (typeof b !== "function" && b !== null) thrownew TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b); function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.bytesToString = exports.BinaryReader = exports.Int64 = exports.TagAttribute = exports.ElementMode = exports.DataMode = exports.BinaryReaderState = exports.NameType = exports.LinkingType = exports.RelocType = exports.CatchHandler = exports.CatchHandlerKind = exports.RefType = exports.Type = exports.FuncDef = exports.FieldDef = exports.TypeKind = exports.ExternalKind = exports.OperatorCodeNames = exports.OperatorCode = exports.SectionCode = void 0; // See https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md var WASM_MAGIC_NUMBER = 0x6d736100; var WASM_SUPPORTED_EXPERIMENTAL_VERSION = 0xd; var WASM_SUPPORTED_VERSION = 0x1; var SectionCode;
(function (SectionCode) {
SectionCode[SectionCode["Unknown"] = -1] = "Unknown";
SectionCode[SectionCode["Custom"] = 0] = "Custom";
SectionCode[SectionCode["Type"] = 1] = "Type";
SectionCode[SectionCode["Import"] = 2] = "Import";
SectionCode[SectionCode["Function"] = 3] = "Function";
SectionCode[SectionCode["Table"] = 4] = "Table";
SectionCode[SectionCode["Memory"] = 5] = "Memory";
SectionCode[SectionCode["Global"] = 6] = "Global";
SectionCode[SectionCode["Export"] = 7] = "Export";
SectionCode[SectionCode["Start"] = 8] = "Start";
SectionCode[SectionCode["Element"] = 9] = "Element";
SectionCode[SectionCode["Code"] = 10] = "Code";
SectionCode[SectionCode["Data"] = 11] = "Data";
SectionCode[SectionCode["DataCount"] = 12] = "DataCount";
SectionCode[SectionCode["Tag"] = 13] = "Tag";
})(SectionCode = exports.SectionCode || (exports.SectionCode = {})); var OperatorCode;
(function (OperatorCode) {
OperatorCode[OperatorCode["unreachable"] = 0] = "unreachable";
OperatorCode[OperatorCode["nop"] = 1] = "nop";
OperatorCode[OperatorCode["block"] = 2] = "block";
OperatorCode[OperatorCode["loop"] = 3] = "loop";
OperatorCode[OperatorCode["if"] = 4] = "if";
OperatorCode[OperatorCode["else"] = 5] = "else";
OperatorCode[OperatorCode["try"] = 6] = "try";
OperatorCode[OperatorCode["catch"] = 7] = "catch";
OperatorCode[OperatorCode["throw"] = 8] = "throw";
OperatorCode[OperatorCode["rethrow"] = 9] = "rethrow";
OperatorCode[OperatorCode["throw_ref"] = 10] = "throw_ref";
OperatorCode[OperatorCode["end"] = 11] = "end";
OperatorCode[OperatorCode["br"] = 12] = "br";
OperatorCode[OperatorCode["br_if"] = 13] = "br_if";
OperatorCode[OperatorCode["br_table"] = 14] = "br_table";
OperatorCode[OperatorCode["return"] = 15] = "return";
OperatorCode[OperatorCode["call"] = 16] = "call";
OperatorCode[OperatorCode["call_indirect"] = 17] = "call_indirect";
OperatorCode[OperatorCode["return_call"] = 18] = "return_call";
OperatorCode[OperatorCode["return_call_indirect"] = 19] = "return_call_indirect";
OperatorCode[OperatorCode["call_ref"] = 20] = "call_ref";
OperatorCode[OperatorCode["return_call_ref"] = 21] = "return_call_ref";
OperatorCode[OperatorCode["let"] = 23] = "let";
OperatorCode[OperatorCode["delegate"] = 24] = "delegate";
OperatorCode[OperatorCode["catch_all"] = 25] = "catch_all";
OperatorCode[OperatorCode["drop"] = 26] = "drop";
OperatorCode[OperatorCode["select"] = 27] = "select";
OperatorCode[OperatorCode["select_with_type"] = 28] = "select_with_type";
OperatorCode[OperatorCode["try_table"] = 31] = "try_table";
OperatorCode[OperatorCode["local_get"] = 32] = "local_get";
OperatorCode[OperatorCode["local_set"] = 33] = "local_set";
OperatorCode[OperatorCode["local_tee"] = 34] = "local_tee";
OperatorCode[OperatorCode["global_get"] = 35] = "global_get";
OperatorCode[OperatorCode["global_set"] = 36] = "global_set";
OperatorCode[OperatorCode["i32_load"] = 40] = "i32_load";
OperatorCode[OperatorCode["i64_load"] = 41] = "i64_load";
OperatorCode[OperatorCode["f32_load"] = 42] = "f32_load";
OperatorCode[OperatorCode["f64_load"] = 43] = "f64_load";
OperatorCode[OperatorCode["i32_load8_s"] = 44] = "i32_load8_s";
OperatorCode[OperatorCode["i32_load8_u"] = 45] = "i32_load8_u";
OperatorCode[OperatorCode["i32_load16_s"] = 46] = "i32_load16_s";
OperatorCode[OperatorCode["i32_load16_u"] = 47] = "i32_load16_u";
OperatorCode[OperatorCode["i64_load8_s"] = 48] = "i64_load8_s";
OperatorCode[OperatorCode["i64_load8_u"] = 49] = "i64_load8_u";
OperatorCode[OperatorCode["i64_load16_s"] = 50] = "i64_load16_s";
OperatorCode[OperatorCode["i64_load16_u"] = 51] = "i64_load16_u";
OperatorCode[OperatorCode["i64_load32_s"] = 52] = "i64_load32_s";
OperatorCode[OperatorCode["i64_load32_u"] = 53] = "i64_load32_u";
OperatorCode[OperatorCode["i32_store"] = 54] = "i32_store";
OperatorCode[OperatorCode["i64_store"] = 55] = "i64_store";
OperatorCode[OperatorCode["f32_store"] = 56] = "f32_store";
OperatorCode[OperatorCode["f64_store"] = 57] = "f64_store";
OperatorCode[OperatorCode["i32_store8"] = 58] = "i32_store8";
OperatorCode[OperatorCode["i32_store16"] = 59] = "i32_store16";
OperatorCode[OperatorCode["i64_store8"] = 60] = "i64_store8";
OperatorCode[OperatorCode["i64_store16"] = 61] = "i64_store16";
OperatorCode[OperatorCode["i64_store32"] = 62] = "i64_store32";
OperatorCode[OperatorCode["memory_size"] = 63] = "memory_size";
OperatorCode[OperatorCode["memory_grow"] = 64] = "memory_grow";
OperatorCode[OperatorCode["i32_const"] = 65] = "i32_const";
OperatorCode[OperatorCode["i64_const"] = 66] = "i64_const";
OperatorCode[OperatorCode["f32_const"] = 67] = "f32_const";
OperatorCode[OperatorCode["f64_const"] = 68] = "f64_const";
OperatorCode[OperatorCode["i32_eqz"] = 69] = "i32_eqz";
OperatorCode[OperatorCode["i32_eq"] = 70] = "i32_eq";
OperatorCode[OperatorCode["i32_ne"] = 71] = "i32_ne";
OperatorCode[OperatorCode["i32_lt_s"] = 72] = "i32_lt_s";
OperatorCode[OperatorCode["i32_lt_u"] = 73] = "i32_lt_u";
OperatorCode[OperatorCode["i32_gt_s"] = 74] = "i32_gt_s";
OperatorCode[OperatorCode["i32_gt_u"] = 75] = "i32_gt_u";
OperatorCode[OperatorCode["i32_le_s"] = 76] = "i32_le_s";
OperatorCode[OperatorCode["i32_le_u"] = 77] = "i32_le_u";
OperatorCode[OperatorCode["i32_ge_s"] = 78] = "i32_ge_s";
OperatorCode[OperatorCode["i32_ge_u"] = 79] = "i32_ge_u";
OperatorCode[OperatorCode["i64_eqz"] = 80] = "i64_eqz";
OperatorCode[OperatorCode["i64_eq"] = 81] = "i64_eq";
OperatorCode[OperatorCode["i64_ne"] = 82] = "i64_ne";
OperatorCode[OperatorCode["i64_lt_s"] = 83] = "i64_lt_s";
OperatorCode[OperatorCode["i64_lt_u"] = 84] = "i64_lt_u";
OperatorCode[OperatorCode["i64_gt_s"] = 85] = "i64_gt_s";
OperatorCode[OperatorCode["i64_gt_u"] = 86] = "i64_gt_u";
OperatorCode[OperatorCode["i64_le_s"] = 87] = "i64_le_s";
OperatorCode[OperatorCode["i64_le_u"] = 88] = "i64_le_u";
OperatorCode[OperatorCode["i64_ge_s"] = 89] = "i64_ge_s";
OperatorCode[OperatorCode["i64_ge_u"] = 90] = "i64_ge_u";
OperatorCode[OperatorCode["f32_eq"] = 91] = "f32_eq";
OperatorCode[OperatorCode["f32_ne"] = 92] = "f32_ne";
OperatorCode[OperatorCode["f32_lt"] = 93] = "f32_lt";
OperatorCode[OperatorCode["f32_gt"] = 94] = "f32_gt";
OperatorCode[OperatorCode["f32_le"] = 95] = "f32_le";
OperatorCode[OperatorCode["f32_ge"] = 96] = "f32_ge";
OperatorCode[OperatorCode["f64_eq"] = 97] = "f64_eq";
OperatorCode[OperatorCode["f64_ne"] = 98] = "f64_ne";
OperatorCode[OperatorCode["f64_lt"] = 99] = "f64_lt";
OperatorCode[OperatorCode["f64_gt"] = 100] = "f64_gt";
OperatorCode[OperatorCode["f64_le"] = 101] = "f64_le";
OperatorCode[OperatorCode["f64_ge"] = 102] = "f64_ge";
OperatorCode[OperatorCode["i32_clz"] = 103] = "i32_clz";
OperatorCode[OperatorCode["i32_ctz"] = 104] = "i32_ctz";
OperatorCode[OperatorCode["i32_popcnt"] = 105] = "i32_popcnt";
OperatorCode[OperatorCode["i32_add"] = 106] = "i32_add";
OperatorCode[OperatorCode["i32_sub"] = 107] = "i32_sub";
OperatorCode[OperatorCode["i32_mul"] = 108] = "i32_mul";
OperatorCode[OperatorCode["i32_div_s"] = 109] = "i32_div_s";
OperatorCode[OperatorCode["i32_div_u"] = 110] = "i32_div_u";
OperatorCode[OperatorCode["i32_rem_s"] = 111] = "i32_rem_s";
OperatorCode[OperatorCode["i32_rem_u"] = 112] = "i32_rem_u";
OperatorCode[OperatorCode["i32_and"] = 113] = "i32_and";
OperatorCode[OperatorCode["i32_or"] = 114] = "i32_or";
OperatorCode[OperatorCode["i32_xor"] = 115] = "i32_xor";
OperatorCode[OperatorCode["i32_shl"] = 116] = "i32_shl";
OperatorCode[OperatorCode["i32_shr_s"] = 117] = "i32_shr_s";
OperatorCode[OperatorCode["i32_shr_u"] = 118] = "i32_shr_u";
OperatorCode[OperatorCode["i32_rotl"] = 119] = "i32_rotl";
OperatorCode[OperatorCode["i32_rotr"] = 120] = "i32_rotr";
OperatorCode[OperatorCode["i64_clz"] = 121] = "i64_clz";
OperatorCode[OperatorCode["i64_ctz"] = 122] = "i64_ctz";
OperatorCode[OperatorCode["i64_popcnt"] = 123] = "i64_popcnt";
OperatorCode[OperatorCode["i64_add"] = 124] = "i64_add";
OperatorCode[OperatorCode["i64_sub"] = 125] = "i64_sub";
OperatorCode[OperatorCode["i64_mul"] = 126] = "i64_mul";
OperatorCode[OperatorCode["i64_div_s"] = 127] = "i64_div_s";
OperatorCode[OperatorCode["i64_div_u"] = 128] = "i64_div_u";
OperatorCode[OperatorCode["i64_rem_s"] = 129] = "i64_rem_s";
OperatorCode[OperatorCode["i64_rem_u"] = 130] = "i64_rem_u";
OperatorCode[OperatorCode["i64_and"] = 131] = "i64_and";
OperatorCode[OperatorCode["i64_or"] = 132] = "i64_or";
OperatorCode[OperatorCode["i64_xor"] = 133] = "i64_xor";
OperatorCode[OperatorCode["i64_shl"] = 134] = "i64_shl";
OperatorCode[OperatorCode["i64_shr_s"] = 135] = "i64_shr_s";
OperatorCode[OperatorCode["i64_shr_u"] = 136] = "i64_shr_u";
OperatorCode[OperatorCode["i64_rotl"] = 137] = "i64_rotl";
OperatorCode[OperatorCode["i64_rotr"] = 138] = "i64_rotr";
OperatorCode[OperatorCode["f32_abs"] = 139] = "f32_abs";
OperatorCode[OperatorCode["f32_neg"] = 140] = "f32_neg";
OperatorCode[OperatorCode["f32_ceil"] = 141] = "f32_ceil";
OperatorCode[OperatorCode["f32_floor"] = 142] = "f32_floor";
OperatorCode[OperatorCode["f32_trunc"] = 143] = "f32_trunc";
OperatorCode[OperatorCode["f32_nearest"] = 144] = "f32_nearest";
OperatorCode[OperatorCode["f32_sqrt"] = 145] = "f32_sqrt";
OperatorCode[OperatorCode["f32_add"] = 146] = "f32_add";
OperatorCode[OperatorCode["f32_sub"] = 147] = "f32_sub";
OperatorCode[OperatorCode["f32_mul"] = 148] = "f32_mul";
OperatorCode[OperatorCode["f32_div"] = 149] = "f32_div";
OperatorCode[OperatorCode["f32_min"] = 150] = "f32_min";
OperatorCode[OperatorCode["f32_max"] = 151] = "f32_max";
OperatorCode[OperatorCode["f32_copysign"] = 152] = "f32_copysign";
OperatorCode[OperatorCode["f64_abs"] = 153] = "f64_abs";
OperatorCode[OperatorCode["f64_neg"] = 154] = "f64_neg";
OperatorCode[OperatorCode["f64_ceil"] = 155] = "f64_ceil";
OperatorCode[OperatorCode["f64_floor"] = 156] = "f64_floor";
OperatorCode[OperatorCode["f64_trunc"] = 157] = "f64_trunc";
OperatorCode[OperatorCode["f64_nearest"] = 158] = "f64_nearest";
OperatorCode[OperatorCode["f64_sqrt"] = 159] = "f64_sqrt";
OperatorCode[OperatorCode["f64_add"] = 160] = "f64_add";
OperatorCode[OperatorCode["f64_sub"] = 161] = "f64_sub";
OperatorCode[OperatorCode["f64_mul"] = 162] = "f64_mul";
OperatorCode[OperatorCode["f64_div"] = 163] = "f64_div";
OperatorCode[OperatorCode["f64_min"] = 164] = "f64_min";
OperatorCode[OperatorCode["f64_max"] = 165] = "f64_max";
OperatorCode[OperatorCode["f64_copysign"] = 166] = "f64_copysign";
OperatorCode[OperatorCode["i32_wrap_i64"] = 167] = "i32_wrap_i64";
OperatorCode[OperatorCode["i32_trunc_f32_s"] = 168] = "i32_trunc_f32_s";
OperatorCode[OperatorCode["i32_trunc_f32_u"] = 169] = "i32_trunc_f32_u";
OperatorCode[OperatorCode["i32_trunc_f64_s"] = 170] = "i32_trunc_f64_s";
OperatorCode[OperatorCode["i32_trunc_f64_u"] = 171] = "i32_trunc_f64_u";
OperatorCode[OperatorCode["i64_extend_i32_s"] = 172] = "i64_extend_i32_s";
OperatorCode[OperatorCode["i64_extend_i32_u"] = 173] = "i64_extend_i32_u";
OperatorCode[OperatorCode["i64_trunc_f32_s"] = 174] = "i64_trunc_f32_s";
OperatorCode[OperatorCode["i64_trunc_f32_u"] = 175] = "i64_trunc_f32_u";
OperatorCode[OperatorCode["i64_trunc_f64_s"] = 176] = "i64_trunc_f64_s";
OperatorCode[OperatorCode["i64_trunc_f64_u"] = 177] = "i64_trunc_f64_u";
OperatorCode[OperatorCode["f32_convert_i32_s"] = 178] = "f32_convert_i32_s";
OperatorCode[OperatorCode["f32_convert_i32_u"] = 179] = "f32_convert_i32_u";
OperatorCode[OperatorCode["f32_convert_i64_s"] = 180] = "f32_convert_i64_s";
OperatorCode[OperatorCode["f32_convert_i64_u"] = 181] = "f32_convert_i64_u";
OperatorCode[OperatorCode["f32_demote_f64"] = 182] = "f32_demote_f64";
OperatorCode[OperatorCode["f64_convert_i32_s"] = 183] = "f64_convert_i32_s";
OperatorCode[OperatorCode["f64_convert_i32_u"] = 184] = "f64_convert_i32_u";
OperatorCode[OperatorCode["f64_convert_i64_s"] = 185] = "f64_convert_i64_s";
OperatorCode[OperatorCode["f64_convert_i64_u"] = 186] = "f64_convert_i64_u";
OperatorCode[OperatorCode["f64_promote_f32"] = 187] = "f64_promote_f32";
OperatorCode[OperatorCode["i32_reinterpret_f32"] = 188] = "i32_reinterpret_f32";
OperatorCode[OperatorCode["i64_reinterpret_f64"] = 189] = "i64_reinterpret_f64";
OperatorCode[OperatorCode["f32_reinterpret_i32"] = 190] = "f32_reinterpret_i32";
OperatorCode[OperatorCode["f64_reinterpret_i64"] = 191] = "f64_reinterpret_i64";
OperatorCode[OperatorCode["i32_extend8_s"] = 192] = "i32_extend8_s";
OperatorCode[OperatorCode["i32_extend16_s"] = 193] = "i32_extend16_s";
OperatorCode[OperatorCode["i64_extend8_s"] = 194] = "i64_extend8_s";
OperatorCode[OperatorCode["i64_extend16_s"] = 195] = "i64_extend16_s";
OperatorCode[OperatorCode["i64_extend32_s"] = 196] = "i64_extend32_s";
OperatorCode[OperatorCode["prefix_0xfb"] = 251] = "prefix_0xfb";
OperatorCode[OperatorCode["prefix_0xfc"] = 252] = "prefix_0xfc";
OperatorCode[OperatorCode["prefix_0xfd"] = 253] = "prefix_0xfd";
OperatorCode[OperatorCode["prefix_0xfe"] = 254] = "prefix_0xfe";
OperatorCode[OperatorCode["i32_trunc_sat_f32_s"] = 64512] = "i32_trunc_sat_f32_s";
OperatorCode[OperatorCode["i32_trunc_sat_f32_u"] = 64513] = "i32_trunc_sat_f32_u";
OperatorCode[OperatorCode["i32_trunc_sat_f64_s"] = 64514] = "i32_trunc_sat_f64_s";
OperatorCode[OperatorCode["i32_trunc_sat_f64_u"] = 64515] = "i32_trunc_sat_f64_u";
OperatorCode[OperatorCode["i64_trunc_sat_f32_s"] = 64516] = "i64_trunc_sat_f32_s";
OperatorCode[OperatorCode["i64_trunc_sat_f32_u"] = 64517] = "i64_trunc_sat_f32_u";
OperatorCode[OperatorCode["i64_trunc_sat_f64_s"] = 64518] = "i64_trunc_sat_f64_s";
OperatorCode[OperatorCode["i64_trunc_sat_f64_u"] = 64519] = "i64_trunc_sat_f64_u";
OperatorCode[OperatorCode["memory_init"] = 64520] = "memory_init";
OperatorCode[OperatorCode["data_drop"] = 64521] = "data_drop";
OperatorCode[OperatorCode["memory_copy"] = 64522] = "memory_copy";
OperatorCode[OperatorCode["memory_fill"] = 64523] = "memory_fill";
OperatorCode[OperatorCode["table_init"] = 64524] = "table_init";
OperatorCode[OperatorCode["elem_drop"] = 64525] = "elem_drop";
OperatorCode[OperatorCode["table_copy"] = 64526] = "table_copy";
OperatorCode[OperatorCode["table_grow"] = 64527] = "table_grow";
OperatorCode[OperatorCode["table_size"] = 64528] = "table_size";
OperatorCode[OperatorCode["table_fill"] = 64529] = "table_fill";
OperatorCode[OperatorCode["table_get"] = 37] = "table_get";
OperatorCode[OperatorCode["table_set"] = 38] = "table_set";
OperatorCode[OperatorCode["ref_null"] = 208] = "ref_null";
OperatorCode[OperatorCode["ref_is_null"] = 209] = "ref_is_null";
OperatorCode[OperatorCode["ref_func"] = 210] = "ref_func";
OperatorCode[OperatorCode["ref_eq"] = 211] = "ref_eq";
OperatorCode[OperatorCode["ref_as_non_null"] = 212] = "ref_as_non_null";
OperatorCode[OperatorCode["br_on_null"] = 213] = "br_on_null";
OperatorCode[OperatorCode["br_on_non_null"] = 214] = "br_on_non_null";
OperatorCode[OperatorCode["memory_atomic_notify"] = 65024] = "memory_atomic_notify";
OperatorCode[OperatorCode["memory_atomic_wait32"] = 65025] = "memory_atomic_wait32";
OperatorCode[OperatorCode["memory_atomic_wait64"] = 65026] = "memory_atomic_wait64";
OperatorCode[OperatorCode["atomic_fence"] = 65027] = "atomic_fence";
OperatorCode[OperatorCode["i32_atomic_load"] = 65040] = "i32_atomic_load";
OperatorCode[OperatorCode["i64_atomic_load"] = 65041] = "i64_atomic_load";
OperatorCode[OperatorCode["i32_atomic_load8_u"] = 65042] = "i32_atomic_load8_u";
OperatorCode[OperatorCode["i32_atomic_load16_u"] = 65043] = "i32_atomic_load16_u";
OperatorCode[OperatorCode["i64_atomic_load8_u"] = 65044] = "i64_atomic_load8_u";
OperatorCode[OperatorCode["i64_atomic_load16_u"] = 65045] = "i64_atomic_load16_u";
OperatorCode[OperatorCode["i64_atomic_load32_u"] = 65046] = "i64_atomic_load32_u";
OperatorCode[OperatorCode["i32_atomic_store"] = 65047] = "i32_atomic_store";
OperatorCode[OperatorCode["i64_atomic_store"] = 65048] = "i64_atomic_store";
OperatorCode[OperatorCode["i32_atomic_store8"] = 65049] = "i32_atomic_store8";
OperatorCode[OperatorCode["i32_atomic_store16"] = 65050] = "i32_atomic_store16";
OperatorCode[OperatorCode["i64_atomic_store8"] = 65051] = "i64_atomic_store8";
OperatorCode[OperatorCode["i64_atomic_store16"] = 65052] = "i64_atomic_store16";
OperatorCode[OperatorCode["i64_atomic_store32"] = 65053] = "i64_atomic_store32";
OperatorCode[OperatorCode["i32_atomic_rmw_add"] = 65054] = "i32_atomic_rmw_add";
OperatorCode[OperatorCode["i64_atomic_rmw_add"] = 65055] = "i64_atomic_rmw_add";
OperatorCode[OperatorCode["i32_atomic_rmw8_add_u"] = 65056] = "i32_atomic_rmw8_add_u";
OperatorCode[OperatorCode["i32_atomic_rmw16_add_u"] = 65057] = "i32_atomic_rmw16_add_u";
OperatorCode[OperatorCode["i64_atomic_rmw8_add_u"] = 65058] = "i64_atomic_rmw8_add_u";
OperatorCode[OperatorCode["i64_atomic_rmw16_add_u"] = 65059] = "i64_atomic_rmw16_add_u";
OperatorCode[OperatorCode["i64_atomic_rmw32_add_u"] = 65060] = "i64_atomic_rmw32_add_u";
OperatorCode[OperatorCode["i32_atomic_rmw_sub"] = 65061] = "i32_atomic_rmw_sub";
OperatorCode[OperatorCode["i64_atomic_rmw_sub"] = 65062] = "i64_atomic_rmw_sub";
OperatorCode[OperatorCode["i32_atomic_rmw8_sub_u"] = 65063] = "i32_atomic_rmw8_sub_u";
OperatorCode[OperatorCode["i32_atomic_rmw16_sub_u"] = 65064] = "i32_atomic_rmw16_sub_u";
OperatorCode[OperatorCode["i64_atomic_rmw8_sub_u"] = 65065] = "i64_atomic_rmw8_sub_u";
OperatorCode[OperatorCode["i64_atomic_rmw16_sub_u"] = 65066] = "i64_atomic_rmw16_sub_u";
OperatorCode[OperatorCode["i64_atomic_rmw32_sub_u"] = 65067] = "i64_atomic_rmw32_sub_u";
OperatorCode[OperatorCode["i32_atomic_rmw_and"] = 65068] = "i32_atomic_rmw_and";
OperatorCode[OperatorCode["i64_atomic_rmw_and"] = 65069] = "i64_atomic_rmw_and";
OperatorCode[OperatorCode["i32_atomic_rmw8_and_u"] = 65070] = "i32_atomic_rmw8_and_u";
OperatorCode[OperatorCode["i32_atomic_rmw16_and_u"] = 65071] = "i32_atomic_rmw16_and_u";
OperatorCode[OperatorCode["i64_atomic_rmw8_and_u"] = 65072] = "i64_atomic_rmw8_and_u";
OperatorCode[OperatorCode["i64_atomic_rmw16_and_u"] = 65073] = "i64_atomic_rmw16_and_u";
OperatorCode[OperatorCode["i64_atomic_rmw32_and_u"] = 65074] = "i64_atomic_rmw32_and_u";
OperatorCode[OperatorCode["i32_atomic_rmw_or"] = 65075] = "i32_atomic_rmw_or";
OperatorCode[OperatorCode["i64_atomic_rmw_or"] = 65076] = "i64_atomic_rmw_or";
OperatorCode[OperatorCode["i32_atomic_rmw8_or_u"] = 65077] = "i32_atomic_rmw8_or_u";
OperatorCode[OperatorCode["i32_atomic_rmw16_or_u"] = 65078] = "i32_atomic_rmw16_or_u";
OperatorCode[OperatorCode["i64_atomic_rmw8_or_u"] = 65079] = "i64_atomic_rmw8_or_u";
OperatorCode[OperatorCode["i64_atomic_rmw16_or_u"] = 65080] = "i64_atomic_rmw16_or_u";
OperatorCode[OperatorCode["i64_atomic_rmw32_or_u"] = 65081] = "i64_atomic_rmw32_or_u";
OperatorCode[OperatorCode["i32_atomic_rmw_xor"] = 65082] = "i32_atomic_rmw_xor";
OperatorCode[OperatorCode["i64_atomic_rmw_xor"] = 65083] = "i64_atomic_rmw_xor";
OperatorCode[OperatorCode["i32_atomic_rmw8_xor_u"] = 65084] = "i32_atomic_rmw8_xor_u";
OperatorCode[OperatorCode["i32_atomic_rmw16_xor_u"] = 65085] = "i32_atomic_rmw16_xor_u";
OperatorCode[OperatorCode["i64_atomic_rmw8_xor_u"] = 65086] = "i64_atomic_rmw8_xor_u";
OperatorCode[OperatorCode["i64_atomic_rmw16_xor_u"] = 65087] = "i64_atomic_rmw16_xor_u";
OperatorCode[OperatorCode["i64_atomic_rmw32_xor_u"] = 65088] = "i64_atomic_rmw32_xor_u";
OperatorCode[OperatorCode["i32_atomic_rmw_xchg"] = 65089] = "i32_atomic_rmw_xchg";
OperatorCode[OperatorCode["i64_atomic_rmw_xchg"] = 65090] = "i64_atomic_rmw_xchg";
OperatorCode[OperatorCode["i32_atomic_rmw8_xchg_u"] = 65091] = "i32_atomic_rmw8_xchg_u";
OperatorCode[OperatorCode["i32_atomic_rmw16_xchg_u"] = 65092] = "i32_atomic_rmw16_xchg_u";
OperatorCode[OperatorCode["i64_atomic_rmw8_xchg_u"] = 65093] = "i64_atomic_rmw8_xchg_u";
OperatorCode[OperatorCode["i64_atomic_rmw16_xchg_u"] = 65094] = "i64_atomic_rmw16_xchg_u";
OperatorCode[OperatorCode["i64_atomic_rmw32_xchg_u"] = 65095] = "i64_atomic_rmw32_xchg_u";
OperatorCode[OperatorCode["i32_atomic_rmw_cmpxchg"] = 65096] = "i32_atomic_rmw_cmpxchg";
OperatorCode[OperatorCode["i64_atomic_rmw_cmpxchg"] = 65097] = "i64_atomic_rmw_cmpxchg";
OperatorCode[OperatorCode["i32_atomic_rmw8_cmpxchg_u"] = 65098] = "i32_atomic_rmw8_cmpxchg_u";
OperatorCode[OperatorCode["i32_atomic_rmw16_cmpxchg_u"] = 65099] = "i32_atomic_rmw16_cmpxchg_u";
OperatorCode[OperatorCode["i64_atomic_rmw8_cmpxchg_u"] = 65100] = "i64_atomic_rmw8_cmpxchg_u";
OperatorCode[OperatorCode["i64_atomic_rmw16_cmpxchg_u"] = 65101] = "i64_atomic_rmw16_cmpxchg_u";
OperatorCode[OperatorCode["i64_atomic_rmw32_cmpxchg_u"] = 65102] = "i64_atomic_rmw32_cmpxchg_u";
OperatorCode[OperatorCode["v128_load"] = 1036288] = "v128_load";
OperatorCode[OperatorCode["i16x8_load8x8_s"] = 1036289] = "i16x8_load8x8_s";
OperatorCode[OperatorCode["i16x8_load8x8_u"] = 1036290] = "i16x8_load8x8_u";
OperatorCode[OperatorCode["i32x4_load16x4_s"] = 1036291] = "i32x4_load16x4_s";
OperatorCode[OperatorCode["i32x4_load16x4_u"] = 1036292] = "i32x4_load16x4_u";
OperatorCode[OperatorCode["i64x2_load32x2_s"] = 1036293] = "i64x2_load32x2_s";
OperatorCode[OperatorCode["i64x2_load32x2_u"] = 1036294] = "i64x2_load32x2_u";
OperatorCode[OperatorCode["v8x16_load_splat"] = 1036295] = "v8x16_load_splat";
OperatorCode[OperatorCode["v16x8_load_splat"] = 1036296] = "v16x8_load_splat";
OperatorCode[OperatorCode["v32x4_load_splat"] = 1036297] = "v32x4_load_splat";
OperatorCode[OperatorCode["v64x2_load_splat"] = 1036298] = "v64x2_load_splat";
OperatorCode[OperatorCode["v128_store"] = 1036299] = "v128_store";
OperatorCode[OperatorCode["v128_const"] = 1036300] = "v128_const";
OperatorCode[OperatorCode["i8x16_shuffle"] = 1036301] = "i8x16_shuffle";
OperatorCode[OperatorCode["i8x16_swizzle"] = 1036302] = "i8x16_swizzle";
OperatorCode[OperatorCode["i8x16_splat"] = 1036303] = "i8x16_splat";
OperatorCode[OperatorCode["i16x8_splat"] = 1036304] = "i16x8_splat";
OperatorCode[OperatorCode["i32x4_splat"] = 1036305] = "i32x4_splat";
OperatorCode[OperatorCode["i64x2_splat"] = 1036306] = "i64x2_splat";
OperatorCode[OperatorCode["f32x4_splat"] = 1036307] = "f32x4_splat";
OperatorCode[OperatorCode["f64x2_splat"] = 1036308] = "f64x2_splat";
OperatorCode[OperatorCode["i8x16_extract_lane_s"] = 1036309] = "i8x16_extract_lane_s";
OperatorCode[OperatorCode["i8x16_extract_lane_u"] = 1036310] = "i8x16_extract_lane_u";
OperatorCode[OperatorCode["i8x16_replace_lane"] = 1036311] = "i8x16_replace_lane";
OperatorCode[OperatorCode["i16x8_extract_lane_s"] = 1036312] = "i16x8_extract_lane_s";
OperatorCode[OperatorCode["i16x8_extract_lane_u"] = 1036313] = "i16x8_extract_lane_u";
OperatorCode[OperatorCode["i16x8_replace_lane"] = 1036314] = "i16x8_replace_lane";
OperatorCode[OperatorCode["i32x4_extract_lane"] = 1036315] = "i32x4_extract_lane";
OperatorCode[OperatorCode["i32x4_replace_lane"] = 1036316] = "i32x4_replace_lane";
OperatorCode[OperatorCode["i64x2_extract_lane"] = 1036317] = "i64x2_extract_lane";
OperatorCode[OperatorCode["i64x2_replace_lane"] = 1036318] = "i64x2_replace_lane";
OperatorCode[OperatorCode["f32x4_extract_lane"] = 1036319] = "f32x4_extract_lane";
OperatorCode[OperatorCode["f32x4_replace_lane"] = 1036320] = "f32x4_replace_lane";
OperatorCode[OperatorCode["f64x2_extract_lane"] = 1036321] = "f64x2_extract_lane";
OperatorCode[OperatorCode["f64x2_replace_lane"] = 1036322] = "f64x2_replace_lane";
OperatorCode[OperatorCode["i8x16_eq"] = 1036323] = "i8x16_eq";
OperatorCode[OperatorCode["i8x16_ne"] = 1036324] = "i8x16_ne";
OperatorCode[OperatorCode["i8x16_lt_s"] = 1036325] = "i8x16_lt_s";
OperatorCode[OperatorCode["i8x16_lt_u"] = 1036326] = "i8x16_lt_u";
OperatorCode[OperatorCode["i8x16_gt_s"] = 1036327] = "i8x16_gt_s";
OperatorCode[OperatorCode["i8x16_gt_u"] = 1036328] = "i8x16_gt_u";
OperatorCode[OperatorCode["i8x16_le_s"] = 1036329] = "i8x16_le_s";
OperatorCode[OperatorCode["i8x16_le_u"] = 1036330] = "i8x16_le_u";
OperatorCode[OperatorCode["i8x16_ge_s"] = 1036331] = "i8x16_ge_s";
OperatorCode[OperatorCode["i8x16_ge_u"] = 1036332] = "i8x16_ge_u";
OperatorCode[OperatorCode["i16x8_eq"] = 1036333] = "i16x8_eq";
OperatorCode[OperatorCode["i16x8_ne"] = 1036334] = "i16x8_ne";
OperatorCode[OperatorCode["i16x8_lt_s"] = 1036335] = "i16x8_lt_s";
OperatorCode[OperatorCode["i16x8_lt_u"] = 1036336] = "i16x8_lt_u";
OperatorCode[OperatorCode["i16x8_gt_s"] = 1036337] = "i16x8_gt_s";
OperatorCode[OperatorCode["i16x8_gt_u"] = 1036338] = "i16x8_gt_u";
OperatorCode[OperatorCode["i16x8_le_s"] = 1036339] = "i16x8_le_s";
OperatorCode[OperatorCode["i16x8_le_u"] = 1036340] = "i16x8_le_u";
OperatorCode[OperatorCode["i16x8_ge_s"] = 1036341] = "i16x8_ge_s";
OperatorCode[OperatorCode["i16x8_ge_u"] = 1036342] = "i16x8_ge_u";
OperatorCode[OperatorCode["i32x4_eq"] = 1036343] = "i32x4_eq";
OperatorCode[OperatorCode["i32x4_ne"] = 1036344] = "i32x4_ne";
OperatorCode[OperatorCode["i32x4_lt_s"] = 1036345] = "i32x4_lt_s";
OperatorCode[OperatorCode["i32x4_lt_u"] = 1036346] = "i32x4_lt_u";
OperatorCode[OperatorCode["i32x4_gt_s"] = 1036347] = "i32x4_gt_s";
OperatorCode[OperatorCode["i32x4_gt_u"] = 1036348] = "i32x4_gt_u";
OperatorCode[OperatorCode["i32x4_le_s"] = 1036349] = "i32x4_le_s";
OperatorCode[OperatorCode["i32x4_le_u"] = 1036350] = "i32x4_le_u";
OperatorCode[OperatorCode["i32x4_ge_s"] = 1036351] = "i32x4_ge_s";
OperatorCode[OperatorCode["i32x4_ge_u"] = 1036352] = "i32x4_ge_u";
OperatorCode[OperatorCode["f32x4_eq"] = 1036353] = "f32x4_eq";
OperatorCode[OperatorCode["f32x4_ne"] = 1036354] = "f32x4_ne";
OperatorCode[OperatorCode["f32x4_lt"] = 1036355] = "f32x4_lt";
OperatorCode[OperatorCode["f32x4_gt"] = 1036356] = "f32x4_gt";
OperatorCode[OperatorCode["f32x4_le"] = 1036357] = "f32x4_le";
OperatorCode[OperatorCode["f32x4_ge"] = 1036358] = "f32x4_ge";
OperatorCode[OperatorCode["f64x2_eq"] = 1036359] = "f64x2_eq";
OperatorCode[OperatorCode["f64x2_ne"] = 1036360] = "f64x2_ne";
OperatorCode[OperatorCode["f64x2_lt"] = 1036361] = "f64x2_lt";
OperatorCode[OperatorCode["f64x2_gt"] = 1036362] = "f64x2_gt";
OperatorCode[OperatorCode["f64x2_le"] = 1036363] = "f64x2_le";
OperatorCode[OperatorCode["f64x2_ge"] = 1036364] = "f64x2_ge";
OperatorCode[OperatorCode["v128_not"] = 1036365] = "v128_not";
OperatorCode[OperatorCode["v128_and"] = 1036366] = "v128_and";
OperatorCode[OperatorCode["v128_andnot"] = 1036367] = "v128_andnot";
OperatorCode[OperatorCode["v128_or"] = 1036368] = "v128_or";
OperatorCode[OperatorCode["v128_xor"] = 1036369] = "v128_xor";
OperatorCode[OperatorCode["v128_bitselect"] = 1036370] = "v128_bitselect";
OperatorCode[OperatorCode["v128_any_true"] = 1036371] = "v128_any_true";
OperatorCode[OperatorCode["v128_load8_lane"] = 1036372] = "v128_load8_lane";
OperatorCode[OperatorCode["v128_load16_lane"] = 1036373] = "v128_load16_lane";
OperatorCode[OperatorCode["v128_load32_lane"] = 1036374] = "v128_load32_lane";
OperatorCode[OperatorCode["v128_load64_lane"] = 1036375] = "v128_load64_lane";
OperatorCode[OperatorCode["v128_store8_lane"] = 1036376] = "v128_store8_lane";
OperatorCode[OperatorCode["v128_store16_lane"] = 1036377] = "v128_store16_lane";
OperatorCode[OperatorCode["v128_store32_lane"] = 1036378] = "v128_store32_lane";
OperatorCode[OperatorCode["v128_store64_lane"] = 1036379] = "v128_store64_lane";
OperatorCode[OperatorCode["v128_load32_zero"] = 1036380] = "v128_load32_zero";
OperatorCode[OperatorCode["v128_load64_zero"] = 1036381] = "v128_load64_zero";
OperatorCode[OperatorCode["f32x4_demote_f64x2_zero"] = 1036382] = "f32x4_demote_f64x2_zero";
OperatorCode[OperatorCode["f64x2_promote_low_f32x4"] = 1036383] = "f64x2_promote_low_f32x4";
OperatorCode[OperatorCode["i8x16_abs"] = 1036384] = "i8x16_abs";
OperatorCode[OperatorCode["i8x16_neg"] = 1036385] = "i8x16_neg";
OperatorCode[OperatorCode["i8x16_popcnt"] = 1036386] = "i8x16_popcnt";
OperatorCode[OperatorCode["i8x16_all_true"] = 1036387] = "i8x16_all_true";
OperatorCode[OperatorCode["i8x16_bitmask"] = 1036388] = "i8x16_bitmask";
OperatorCode[OperatorCode["i8x16_narrow_i16x8_s"] = 1036389] = "i8x16_narrow_i16x8_s";
OperatorCode[OperatorCode["i8x16_narrow_i16x8_u"] = 1036390] = "i8x16_narrow_i16x8_u";
OperatorCode[OperatorCode["f32x4_ceil"] = 1036391] = "f32x4_ceil";
OperatorCode[OperatorCode["f32x4_floor"] = 1036392] = "f32x4_floor";
OperatorCode[OperatorCode["f32x4_trunc"] = 1036393] = "f32x4_trunc";
OperatorCode[OperatorCode["f32x4_nearest"] = 1036394] = "f32x4_nearest";
OperatorCode[OperatorCode["i8x16_shl"] = 1036395] = "i8x16_shl";
OperatorCode[OperatorCode["i8x16_shr_s"] = 1036396] = "i8x16_shr_s";
OperatorCode[OperatorCode["i8x16_shr_u"] = 1036397] = "i8x16_shr_u";
OperatorCode[OperatorCode["i8x16_add"] = 1036398] = "i8x16_add";
OperatorCode[OperatorCode["i8x16_add_sat_s"] = 1036399] = "i8x16_add_sat_s";
OperatorCode[OperatorCode["i8x16_add_sat_u"] = 1036400] = "i8x16_add_sat_u";
OperatorCode[OperatorCode["i8x16_sub"] = 1036401] = "i8x16_sub";
OperatorCode[OperatorCode["i8x16_sub_sat_s"] = 1036402] = "i8x16_sub_sat_s";
OperatorCode[OperatorCode["i8x16_sub_sat_u"] = 1036403] = "i8x16_sub_sat_u";
OperatorCode[OperatorCode["f64x2_ceil"] = 1036404] = "f64x2_ceil";
OperatorCode[OperatorCode["f64x2_floor"] = 1036405] = "f64x2_floor";
OperatorCode[OperatorCode["i8x16_min_s"] = 1036406] = "i8x16_min_s";
OperatorCode[OperatorCode["i8x16_min_u"] = 1036407] = "i8x16_min_u";
OperatorCode[OperatorCode["i8x16_max_s"] = 1036408] = "i8x16_max_s";
OperatorCode[OperatorCode["i8x16_max_u"] = 1036409] = "i8x16_max_u";
OperatorCode[OperatorCode["f64x2_trunc"] = 1036410] = "f64x2_trunc";
OperatorCode[OperatorCode["i8x16_avgr_u"] = 1036411] = "i8x16_avgr_u";
OperatorCode[OperatorCode["i16x8_extadd_pairwise_i8x16_s"] = 1036412] = "i16x8_extadd_pairwise_i8x16_s";
OperatorCode[OperatorCode["i16x8_extadd_pairwise_i8x16_u"] = 1036413] = "i16x8_extadd_pairwise_i8x16_u";
OperatorCode[OperatorCode["i32x4_extadd_pairwise_i16x8_s"] = 1036414] = "i32x4_extadd_pairwise_i16x8_s";
OperatorCode[OperatorCode["i32x4_extadd_pairwise_i16x8_u"] = 1036415] = "i32x4_extadd_pairwise_i16x8_u";
OperatorCode[OperatorCode["i16x8_abs"] = 1036416] = "i16x8_abs";
OperatorCode[OperatorCode["i16x8_neg"] = 1036417] = "i16x8_neg";
OperatorCode[OperatorCode["i16x8_q15mulr_sat_s"] = 1036418] = "i16x8_q15mulr_sat_s";
OperatorCode[OperatorCode["i16x8_all_true"] = 1036419] = "i16x8_all_true";
OperatorCode[OperatorCode["i16x8_bitmask"] = 1036420] = "i16x8_bitmask";
OperatorCode[OperatorCode["i16x8_narrow_i32x4_s"] = 1036421] = "i16x8_narrow_i32x4_s";
OperatorCode[OperatorCode["i16x8_narrow_i32x4_u"] = 1036422] = "i16x8_narrow_i32x4_u";
OperatorCode[OperatorCode["i16x8_extend_low_i8x16_s"] = 1036423] = "i16x8_extend_low_i8x16_s";
OperatorCode[OperatorCode["i16x8_extend_high_i8x16_s"] = 1036424] = "i16x8_extend_high_i8x16_s";
OperatorCode[OperatorCode["i16x8_extend_low_i8x16_u"] = 1036425] = "i16x8_extend_low_i8x16_u";
OperatorCode[OperatorCode["i16x8_extend_high_i8x16_u"] = 1036426] = "i16x8_extend_high_i8x16_u";
OperatorCode[OperatorCode["i16x8_shl"] = 1036427] = "i16x8_shl";
OperatorCode[OperatorCode["i16x8_shr_s"] = 1036428] = "i16x8_shr_s";
OperatorCode[OperatorCode["i16x8_shr_u"] = 1036429] = "i16x8_shr_u";
OperatorCode[OperatorCode["i16x8_add"] = 1036430] = "i16x8_add";
OperatorCode[OperatorCode["i16x8_add_sat_s"] = 1036431] = "i16x8_add_sat_s";
OperatorCode[OperatorCode["i16x8_add_sat_u"] = 1036432] = "i16x8_add_sat_u";
OperatorCode[OperatorCode["i16x8_sub"] = 1036433] = "i16x8_sub";
OperatorCode[OperatorCode["i16x8_sub_sat_s"] = 1036434] = "i16x8_sub_sat_s";
OperatorCode[OperatorCode["i16x8_sub_sat_u"] = 1036435] = "i16x8_sub_sat_u";
OperatorCode[OperatorCode["f64x2_nearest"] = 1036436] = "f64x2_nearest";
OperatorCode[OperatorCode["i16x8_mul"] = 1036437] = "i16x8_mul";
OperatorCode[OperatorCode["i16x8_min_s"] = 1036438] = "i16x8_min_s";
OperatorCode[OperatorCode["i16x8_min_u"] = 1036439] = "i16x8_min_u";
OperatorCode[OperatorCode["i16x8_max_s"] = 1036440] = "i16x8_max_s";
OperatorCode[OperatorCode["i16x8_max_u"] = 1036441] = "i16x8_max_u";
OperatorCode[OperatorCode["i16x8_avgr_u"] = 1036443] = "i16x8_avgr_u";
OperatorCode[OperatorCode["i16x8_extmul_low_i8x16_s"] = 1036444] = "i16x8_extmul_low_i8x16_s";
OperatorCode[OperatorCode["i16x8_extmul_high_i8x16_s"] = 1036445] = "i16x8_extmul_high_i8x16_s";
OperatorCode[OperatorCode["i16x8_extmul_low_i8x16_u"] = 1036446] = "i16x8_extmul_low_i8x16_u";
OperatorCode[OperatorCode["i16x8_extmul_high_i8x16_u"] = 1036447] = "i16x8_extmul_high_i8x16_u";
OperatorCode[OperatorCode["i32x4_abs"] = 1036448] = "i32x4_abs";
OperatorCode[OperatorCode["i32x4_neg"] = 1036449] = "i32x4_neg";
OperatorCode[OperatorCode["i32x4_all_true"] = 1036451] = "i32x4_all_true";
OperatorCode[OperatorCode["i32x4_bitmask"] = 1036452] = "i32x4_bitmask";
OperatorCode[OperatorCode["i32x4_extend_low_i16x8_s"] = 1036455] = "i32x4_extend_low_i16x8_s";
OperatorCode[OperatorCode["i32x4_extend_high_i16x8_s"] = 1036456] = "i32x4_extend_high_i16x8_s";
OperatorCode[OperatorCode["i32x4_extend_low_i16x8_u"] = 1036457] = "i32x4_extend_low_i16x8_u";
OperatorCode[OperatorCode["i32x4_extend_high_i16x8_u"] = 1036458] = "i32x4_extend_high_i16x8_u";
OperatorCode[OperatorCode["i32x4_shl"] = 1036459] = "i32x4_shl";
OperatorCode[OperatorCode["i32x4_shr_s"] = 1036460] = "i32x4_shr_s";
OperatorCode[OperatorCode["i32x4_shr_u"] = 1036461] = "i32x4_shr_u";
OperatorCode[OperatorCode["i32x4_add"] = 1036462] = "i32x4_add";
OperatorCode[OperatorCode["i32x4_sub"] = 1036465] = "i32x4_sub";
OperatorCode[OperatorCode["i32x4_mul"] = 1036469] = "i32x4_mul";
OperatorCode[OperatorCode["i32x4_min_s"] = 1036470] = "i32x4_min_s";
OperatorCode[OperatorCode["i32x4_min_u"] = 1036471] = "i32x4_min_u";
OperatorCode[OperatorCode["i32x4_max_s"] = 1036472] = "i32x4_max_s";
OperatorCode[OperatorCode["i32x4_max_u"] = 1036473] = "i32x4_max_u";
OperatorCode[OperatorCode["i32x4_dot_i16x8_s"] = 1036474] = "i32x4_dot_i16x8_s";
OperatorCode[OperatorCode["i32x4_extmul_low_i16x8_s"] = 1036476] = "i32x4_extmul_low_i16x8_s";
OperatorCode[OperatorCode["i32x4_extmul_high_i16x8_s"] = 1036477] = "i32x4_extmul_high_i16x8_s";
OperatorCode[OperatorCode["i32x4_extmul_low_i16x8_u"] = 1036478] = "i32x4_extmul_low_i16x8_u";
OperatorCode[OperatorCode["i32x4_extmul_high_i16x8_u"] = 1036479] = "i32x4_extmul_high_i16x8_u";
OperatorCode[OperatorCode["i64x2_abs"] = 1036480] = "i64x2_abs";
OperatorCode[OperatorCode["i64x2_neg"] = 1036481] = "i64x2_neg";
OperatorCode[OperatorCode["i64x2_all_true"] = 1036483] = "i64x2_all_true";
OperatorCode[OperatorCode["i64x2_bitmask"] = 1036484] = "i64x2_bitmask";
OperatorCode[OperatorCode["i64x2_extend_low_i32x4_s"] = 1036487] = "i64x2_extend_low_i32x4_s";
OperatorCode[OperatorCode["i64x2_extend_high_i32x4_s"] = 1036488] = "i64x2_extend_high_i32x4_s";
OperatorCode[OperatorCode["i64x2_extend_low_i32x4_u"] = 1036489] = "i64x2_extend_low_i32x4_u";
OperatorCode[OperatorCode["i64x2_extend_high_i32x4_u"] = 1036490] = "i64x2_extend_high_i32x4_u";
OperatorCode[OperatorCode["i64x2_shl"] = 1036491] = "i64x2_shl";
OperatorCode[OperatorCode["i64x2_shr_s"] = 1036492] = "i64x2_shr_s";
OperatorCode[OperatorCode["i64x2_shr_u"] = 1036493] = "i64x2_shr_u";
OperatorCode[OperatorCode["i64x2_add"] = 1036494] = "i64x2_add";
OperatorCode[OperatorCode["i64x2_sub"] = 1036497] = "i64x2_sub";
OperatorCode[OperatorCode["i64x2_mul"] = 1036501] = "i64x2_mul";
OperatorCode[OperatorCode["i64x2_eq"] = 1036502] = "i64x2_eq";
OperatorCode[OperatorCode["i64x2_ne"] = 1036503] = "i64x2_ne";
OperatorCode[OperatorCode["i64x2_lt_s"] = 1036504] = "i64x2_lt_s";
OperatorCode[OperatorCode["i64x2_gt_s"] = 1036505] = "i64x2_gt_s";
OperatorCode[OperatorCode["i64x2_le_s"] = 1036506] = "i64x2_le_s";
OperatorCode[OperatorCode["i64x2_ge_s"] = 1036507] = "i64x2_ge_s";
OperatorCode[OperatorCode["i64x2_extmul_low_i32x4_s"] = 1036508] = "i64x2_extmul_low_i32x4_s";
OperatorCode[OperatorCode["i64x2_extmul_high_i32x4_s"] = 1036509] = "i64x2_extmul_high_i32x4_s";
OperatorCode[OperatorCode["i64x2_extmul_low_i32x4_u"] = 1036510] = "i64x2_extmul_low_i32x4_u";
OperatorCode[OperatorCode["i64x2_extmul_high_i32x4_u"] = 1036511] = "i64x2_extmul_high_i32x4_u";
OperatorCode[OperatorCode["f32x4_abs"] = 1036512] = "f32x4_abs";
OperatorCode[OperatorCode["f32x4_neg"] = 1036513] = "f32x4_neg";
OperatorCode[OperatorCode["f32x4_sqrt"] = 1036515] = "f32x4_sqrt";
OperatorCode[OperatorCode["f32x4_add"] = 1036516] = "f32x4_add";
OperatorCode[OperatorCode["f32x4_sub"] = 1036517] = "f32x4_sub";
OperatorCode[OperatorCode["f32x4_mul"] = 1036518] = "f32x4_mul";
OperatorCode[OperatorCode["f32x4_div"] = 1036519] = "f32x4_div";
OperatorCode[OperatorCode["f32x4_min"] = 1036520] = "f32x4_min";
OperatorCode[OperatorCode["f32x4_max"] = 1036521] = "f32x4_max";
OperatorCode[OperatorCode["f32x4_pmin"] = 1036522] = "f32x4_pmin";
OperatorCode[OperatorCode["f32x4_pmax"] = 1036523] = "f32x4_pmax";
OperatorCode[OperatorCode["f64x2_abs"] = 1036524] = "f64x2_abs";
OperatorCode[OperatorCode["f64x2_neg"] = 1036525] = "f64x2_neg";
OperatorCode[OperatorCode["f64x2_sqrt"] = 1036527] = "f64x2_sqrt";
OperatorCode[OperatorCode["f64x2_add"] = 1036528] = "f64x2_add";
OperatorCode[OperatorCode["f64x2_sub"] = 1036529] = "f64x2_sub";
OperatorCode[OperatorCode["f64x2_mul"] = 1036530] = "f64x2_mul";
OperatorCode[OperatorCode["f64x2_div"] = 1036531] = "f64x2_div";
OperatorCode[OperatorCode["f64x2_min"] = 1036532] = "f64x2_min";
OperatorCode[OperatorCode["f64x2_max"] = 1036533] = "f64x2_max";
OperatorCode[OperatorCode["f64x2_pmin"] = 1036534] = "f64x2_pmin";
OperatorCode[OperatorCode["f64x2_pmax"] = 1036535] = "f64x2_pmax";
OperatorCode[OperatorCode["i32x4_trunc_sat_f32x4_s"] = 1036536] = "i32x4_trunc_sat_f32x4_s";
OperatorCode[OperatorCode["i32x4_trunc_sat_f32x4_u"] = 1036537] = "i32x4_trunc_sat_f32x4_u";
OperatorCode[OperatorCode["f32x4_convert_i32x4_s"] = 1036538] = "f32x4_convert_i32x4_s";
OperatorCode[OperatorCode["f32x4_convert_i32x4_u"] = 1036539] = "f32x4_convert_i32x4_u";
OperatorCode[OperatorCode["i32x4_trunc_sat_f64x2_s_zero"] = 1036540] = "i32x4_trunc_sat_f64x2_s_zero";
OperatorCode[OperatorCode["i32x4_trunc_sat_f64x2_u_zero"] = 1036541] = "i32x4_trunc_sat_f64x2_u_zero";
OperatorCode[OperatorCode["f64x2_convert_low_i32x4_s"] = 1036542] = "f64x2_convert_low_i32x4_s";
OperatorCode[OperatorCode["f64x2_convert_low_i32x4_u"] = 1036543] = "f64x2_convert_low_i32x4_u"; // Relaxed SIMD
OperatorCode[OperatorCode["i8x16_relaxed_swizzle"] = 1036544] = "i8x16_relaxed_swizzle";
OperatorCode[OperatorCode["i32x4_relaxed_trunc_f32x4_s"] = 1036545] = "i32x4_relaxed_trunc_f32x4_s";
OperatorCode[OperatorCode["i32x4_relaxed_trunc_f32x4_u"] = 1036546] = "i32x4_relaxed_trunc_f32x4_u";
OperatorCode[OperatorCode["i32x4_relaxed_trunc_f64x2_s_zero"] = 1036547] = "i32x4_relaxed_trunc_f64x2_s_zero";
OperatorCode[OperatorCode["i32x4_relaxed_trunc_f64x2_u_zero"] = 1036548] = "i32x4_relaxed_trunc_f64x2_u_zero";
OperatorCode[OperatorCode["f32x4_relaxed_madd"] = 1036549] = "f32x4_relaxed_madd";
OperatorCode[OperatorCode["f32x4_relaxed_nmadd"] = 1036550] = "f32x4_relaxed_nmadd";
OperatorCode[OperatorCode["f64x2_relaxed_madd"] = 1036551] = "f64x2_relaxed_madd";
OperatorCode[OperatorCode["f64x2_relaxed_nmadd"] = 1036552] = "f64x2_relaxed_nmadd";
OperatorCode[OperatorCode["i8x16_relaxed_laneselect"] = 1036553] = "i8x16_relaxed_laneselect";
OperatorCode[OperatorCode["i16x8_relaxed_laneselect"] = 1036554] = "i16x8_relaxed_laneselect";
OperatorCode[OperatorCode["i32x4_relaxed_laneselect"] = 1036555] = "i32x4_relaxed_laneselect";
OperatorCode[OperatorCode["i64x2_relaxed_laneselect"] = 1036556] = "i64x2_relaxed_laneselect";
OperatorCode[OperatorCode["f32x4_relaxed_min"] = 1036557] = "f32x4_relaxed_min";
OperatorCode[OperatorCode["f32x4_relaxed_max"] = 1036558] = "f32x4_relaxed_max";
OperatorCode[OperatorCode["f64x2_relaxed_min"] = 1036559] = "f64x2_relaxed_min";
OperatorCode[OperatorCode["f64x2_relaxed_max"] = 1036560] = "f64x2_relaxed_max";
OperatorCode[OperatorCode["i16x8_relaxed_q15mulr_s"] = 1036561] = "i16x8_relaxed_q15mulr_s";
OperatorCode[OperatorCode["i16x8_relaxed_dot_i8x16_i7x16_s"] = 1036562] = "i16x8_relaxed_dot_i8x16_i7x16_s";
OperatorCode[OperatorCode["i32x4_relaxed_dot_i8x16_i7x16_add_s"] = 1036563] = "i32x4_relaxed_dot_i8x16_i7x16_add_s"; // GC proposal.
OperatorCode[OperatorCode["struct_new"] = 64256] = "struct_new";
OperatorCode[OperatorCode["struct_new_default"] = 64257] = "struct_new_default";
OperatorCode[OperatorCode["struct_get"] = 64258] = "struct_get";
OperatorCode[OperatorCode["struct_get_s"] = 64259] = "struct_get_s";
OperatorCode[OperatorCode["struct_get_u"] = 64260] = "struct_get_u";
OperatorCode[OperatorCode["struct_set"] = 64261] = "struct_set";
OperatorCode[OperatorCode["array_new"] = 64262] = "array_new";
OperatorCode[OperatorCode["array_new_default"] = 64263] = "array_new_default";
OperatorCode[OperatorCode["array_new_fixed"] = 64264] = "array_new_fixed";
OperatorCode[OperatorCode["array_new_data"] = 64265] = "array_new_data";
OperatorCode[OperatorCode["array_new_elem"] = 64266] = "array_new_elem";
OperatorCode[OperatorCode["array_get"] = 64267] = "array_get";
OperatorCode[OperatorCode["array_get_s"] = 64268] = "array_get_s";
OperatorCode[OperatorCode["array_get_u"] = 64269] = "array_get_u";
OperatorCode[OperatorCode["array_set"] = 64270] = "array_set";
OperatorCode[OperatorCode["array_len"] = 64271] = "array_len";
OperatorCode[OperatorCode["array_fill"] = 64272] = "array_fill";
OperatorCode[OperatorCode["array_copy"] = 64273] = "array_copy";
OperatorCode[OperatorCode["array_init_data"] = 64274] = "array_init_data";
OperatorCode[OperatorCode["array_init_elem"] = 64275] = "array_init_elem";
OperatorCode[OperatorCode["ref_test"] = 64276] = "ref_test";
OperatorCode[OperatorCode["ref_test_null"] = 64277] = "ref_test_null";
OperatorCode[OperatorCode["ref_cast"] = 64278] = "ref_cast";
OperatorCode[OperatorCode["ref_cast_null"] = 64279] = "ref_cast_null";
OperatorCode[OperatorCode["br_on_cast"] = 64280] = "br_on_cast";
OperatorCode[OperatorCode["br_on_cast_fail"] = 64281] = "br_on_cast_fail";
OperatorCode[OperatorCode["any_convert_extern"] = 64282] = "any_convert_extern";
OperatorCode[OperatorCode["extern_convert_any"] = 64283] = "extern_convert_any";
OperatorCode[OperatorCode["ref_i31"] = 64284] = "ref_i31";
OperatorCode[OperatorCode["i31_get_s"] = 64285] = "i31_get_s";
OperatorCode[OperatorCode["i31_get_u"] = 64286] = "i31_get_u";
})(OperatorCode = exports.OperatorCode || (exports.OperatorCode = {}));
exports.OperatorCodeNames = [ "unreachable", "nop", "block", "loop", "if", "else", "try", "catch", "throw", "rethrow", "throw_ref", "end", "br", "br_if", "br_table", "return", "call", "call_indirect", "return_call", "return_call_indirect", "call_ref", "return_call_ref",
undefined, "let", "delegate", "catch_all", "drop", "select", "select",
undefined,
undefined, "try_table", "local.get", "local.set", "local.tee", "global.get", "global.set", "table.get", "table.set",
undefined, "i32.load", "i64.load", "f32.load", "f64.load", "i32.load8_s", "i32.load8_u", "i32.load16_s", "i32.load16_u", "i64.load8_s", "i64.load8_u", "i64.load16_s", "i64.load16_u", "i64.load32_s", "i64.load32_u", "i32.store", "i64.store", "f32.store", "f64.store", "i32.store8", "i32.store16", "i64.store8", "i64.store16", "i64.store32", "memory.size", "memory.grow", "i32.const", "i64.const", "f32.const", "f64.const", "i32.eqz", "i32.eq", "i32.ne", "i32.lt_s", "i32.lt_u", "i32.gt_s", "i32.gt_u", "i32.le_s", "i32.le_u", "i32.ge_s", "i32.ge_u", "i64.eqz", "i64.eq", "i64.ne", "i64.lt_s", "i64.lt_u", "i64.gt_s", "i64.gt_u", "i64.le_s", "i64.le_u", "i64.ge_s", "i64.ge_u", "f32.eq", "f32.ne", "f32.lt", "f32.gt", "f32.le", "f32.ge", "f64.eq", "f64.ne", "f64.lt", "f64.gt", "f64.le", "f64.ge", "i32.clz", "i32.ctz", "i32.popcnt", "i32.add", "i32.sub", "i32.mul", "i32.div_s", "i32.div_u", "i32.rem_s", "i32.rem_u", "i32.and", "i32.or", "i32.xor", "i32.shl", "i32.shr_s", "i32.shr_u", "i32.rotl", "i32.rotr", "i64.clz", "i64.ctz", "i64.popcnt", "i64.add", "i64.sub", "i64.mul", "i64.div_s", "i64.div_u", "i64.rem_s", "i64.rem_u", "i64.and", "i64.or", "i64.xor", "i64.shl", "i64.shr_s", "i64.shr_u", "i64.rotl", "i64.rotr", "f32.abs", "f32.neg", "f32.ceil", "f32.floor", "f32.trunc", "f32.nearest", "f32.sqrt", "f32.add", "f32.sub", "f32.mul", "f32.div", "f32.min", "f32.max", "f32.copysign", "f64.abs", "f64.neg", "f64.ceil", "f64.floor", "f64.trunc", "f64.nearest", "f64.sqrt", "f64.add", "f64.sub", "f64.mul", "f64.div", "f64.min", "f64.max", "f64.copysign", "i32.wrap_i64", "i32.trunc_f32_s", "i32.trunc_f32_u", "i32.trunc_f64_s", "i32.trunc_f64_u", "i64.extend_i32_s", "i64.extend_i32_u", "i64.trunc_f32_s", "i64.trunc_f32_u", "i64.trunc_f64_s", "i64.trunc_f64_u", "f32.convert_i32_s", "f32.convert_i32_u", "f32.convert_i64_s", "f32.convert_i64_u", "f32.demote_f64", "f64.convert_i32_s", "f64.convert_i32_u", "f64.convert_i64_s", "f64.convert_i64_u", "f64.promote_f32", "i32.reinterpret_f32", "i64.reinterpret_f64", "f32.reinterpret_i32", "f64.reinterpret_i64", "i32.extend8_s", "i32.extend16_s", "i64.extend8_s", "i64.extend16_s", "i64.extend32_s",
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined, "ref.null", "ref.is_null", "ref.func", "ref.eq", "ref.as_non_null", "br_on_null", "br_on_non_null",
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
];
[ "i32.trunc_sat_f32_s", "i32.trunc_sat_f32_u", "i32.trunc_sat_f64_s", "i32.trunc_sat_f64_u", "i64.trunc_sat_f32_s", "i64.trunc_sat_f32_u", "i64.trunc_sat_f64_s", "i64.trunc_sat_f64_u", "memory.init", "data.drop", "memory.copy", "memory.fill", "table.init", "elem.drop", "table.copy", "table.grow", "table.size", "table.fill",
].forEach(function (s, i) {
exports.OperatorCodeNames[0xfc00 | i] = s;
});
[ "v128.load", "i16x8.load8x8_s", "i16x8.load8x8_u", "i32x4.load16x4_s", "i32x4.load16x4_u", "i64x2.load32x2_s", "i64x2.load32x2_u", "v8x16.load_splat", "v16x8.load_splat", "v32x4.load_splat", "v64x2.load_splat", "v128.store", "v128.const", "i8x16.shuffle", "i8x16.swizzle", "i8x16.splat", "i16x8.splat", "i32x4.splat", "i64x2.splat", "f32x4.splat", "f64x2.splat", "i8x16.extract_lane_s", "i8x16.extract_lane_u", "i8x16.replace_lane", "i16x8.extract_lane_s", "i16x8.extract_lane_u", "i16x8.replace_lane", "i32x4.extract_lane", "i32x4.replace_lane", "i64x2.extract_lane", "i64x2.replace_lane", "f32x4.extract_lane", "f32x4.replace_lane", "f64x2.extract_lane", "f64x2.replace_lane", "i8x16.eq", "i8x16.ne", "i8x16.lt_s", "i8x16.lt_u", "i8x16.gt_s", "i8x16.gt_u", "i8x16.le_s", "i8x16.le_u", "i8x16.ge_s", "i8x16.ge_u", "i16x8.eq", "i16x8.ne", "i16x8.lt_s", "i16x8.lt_u", "i16x8.gt_s", "i16x8.gt_u", "i16x8.le_s", "i16x8.le_u", "i16x8.ge_s", "i16x8.ge_u", "i32x4.eq", "i32x4.ne", "i32x4.lt_s", "i32x4.lt_u", "i32x4.gt_s", "i32x4.gt_u", "i32x4.le_s", "i32x4.le_u", "i32x4.ge_s", "i32x4.ge_u", "f32x4.eq", "f32x4.ne", "f32x4.lt", "f32x4.gt", "f32x4.le", "f32x4.ge", "f64x2.eq", "f64x2.ne", "f64x2.lt", "f64x2.gt", "f64x2.le", "f64x2.ge", "v128.not", "v128.and", "v128.andnot", "v128.or", "v128.xor", "v128.bitselect", "v128.any_true", "v128.load8_lane", "v128.load16_lane", "v128.load32_lane", "v128.load64_lane", "v128.store8_lane", "v128.store16_lane", "v128.store32_lane", "v128.store64_lane", "v128.load32_zero", "v128.load64_zero", "f32x4.demote_f64x2_zero", "f64x2.promote_low_f32x4", "i8x16.abs", "i8x16.neg", "i8x16_popcnt", "i8x16.all_true", "i8x16.bitmask", "i8x16.narrow_i16x8_s", "i8x16.narrow_i16x8_u", "f32x4.ceil", "f32x4.floor", "f32x4.trunc", "f32x4.nearest", "i8x16.shl", "i8x16.shr_s", "i8x16.shr_u", "i8x16.add", "i8x16.add_sat_s", "i8x16.add_sat_u", "i8x16.sub", "i8x16.sub_sat_s", "i8x16.sub_sat_u", "f64x2.ceil", "f64x2.floor", "i8x16.min_s", "i8x16.min_u", "i8x16.max_s", "i8x16.max_u", "f64x2.trunc", "i8x16.avgr_u", "i16x8.extadd_pairwise_i8x16_s", "i16x8.extadd_pairwise_i8x16_u", "i32x4.extadd_pairwise_i16x8_s", "i32x4.extadd_pairwise_i16x8_u", "i16x8.abs", "i16x8.neg", "i16x8.q15mulr_sat_s", "i16x8.all_true", "i16x8.bitmask", "i16x8.narrow_i32x4_s", "i16x8.narrow_i32x4_u", "i16x8.extend_low_i8x16_s", "i16x8.extend_high_i8x16_s", "i16x8.extend_low_i8x16_u", "i16x8.extend_high_i8x16_u", "i16x8.shl", "i16x8.shr_s", "i16x8.shr_u", "i16x8.add", "i16x8.add_sat_s", "i16x8.add_sat_u", "i16x8.sub", "i16x8.sub_sat_s", "i16x8.sub_sat_u", "f64x2.nearest", "i16x8.mul", "i16x8.min_s", "i16x8.min_u", "i16x8.max_s", "i16x8.max_u",
undefined, "i16x8.avgr_u", "i16x8.extmul_low_i8x16_s", "i16x8.extmul_high_i8x16_s", "i16x8.extmul_low_i8x16_u", "i16x8.extmul_high_i8x16_u", "i32x4.abs", "i32x4.neg",
undefined, "i32x4.all_true", "i32x4.bitmask",
undefined,
undefined, "i32x4.extend_low_i16x8_s", "i32x4.extend_high_i16x8_s", "i32x4.extend_low_i16x8_u", "i32x4.extend_high_i16x8_u", "i32x4.shl", "i32x4.shr_s", "i32x4.shr_u", "i32x4.add",
undefined,
undefined, "i32x4.sub",
undefined,
undefined,
undefined, "i32x4.mul", "i32x4.min_s", "i32x4.min_u", "i32x4.max_s", "i32x4.max_u", "i32x4.dot_i16x8_s",
undefined, "i32x4.extmul_low_i16x8_s", "i32x4.extmul_high_i16x8_s", "i32x4.extmul_low_i16x8_u", "i32x4.extmul_high_i16x8_u", "i64x2.abs", "i64x2.neg",
undefined, "i64x2.all_true", "i64x2.bitmask",
undefined,
undefined, "i64x2.extend_low_i32x4_s", "i64x2.extend_high_i32x4_s", "i64x2.extend_low_i32x4_u", "i64x2.extend_high_i32x4_u", "i64x2.shl", "i64x2.shr_s", "i64x2.shr_u", "i64x2.add",
undefined,
undefined, "i64x2.sub",
undefined,
undefined,
undefined, "i64x2.mul", "i64x2.eq", "i64x2.ne", "i64x2.lt_s", "i64x2.gt_s", "i64x2.le_s", "i64x2.ge_s", "i64x2.extmul_low_i32x4_s", "i64x2.extmul_high_i32x4_s", "i64x2.extmul_low_i32x4_u", "i64x2.extmul_high_i32x4_u", "f32x4.abs", "f32x4.neg",
undefined, "f32x4.sqrt", "f32x4.add", "f32x4.sub", "f32x4.mul", "f32x4.div", "f32x4.min", "f32x4.max", "f32x4.pmin", "f32x4.pmax", "f64x2.abs", "f64x2.neg",
undefined, "f64x2.sqrt", "f64x2.add", "f64x2.sub", "f64x2.mul", "f64x2.div", "f64x2.min", "f64x2.max", "f64x2.pmin", "f64x2.pmax", "i32x4.trunc_sat_f32x4_s", "i32x4.trunc_sat_f32x4_u", "f32x4.convert_i32x4_s", "f32x4.convert_i32x4_u", "i32x4.trunc_sat_f64x2_s_zero", "i32x4.trunc_sat_f64x2_u_zero", "f64x2.convert_low_i32x4_s", "f64x2.convert_low_i32x4_u", "i8x16.relaxed_swizzle", "i32x4.relaxed_trunc_f32x4_s", "i32x4.relaxed_trunc_f32x4_u", "i32x4.relaxed_trunc_f64x2_s_zero", "i32x4.relaxed_trunc_f64x2_u_zero", "f32x4.relaxed_madd", "f32x4.relaxed_nmadd", "f64x2.relaxed_madd", "f64x2.relaxed_nmadd", "i8x16.relaxed_laneselect", "i16x8.relaxed_laneselect", "i32x4.relaxed_laneselect", "i64x2.relaxed_laneselect", "f32x4.relaxed_min", "f32x4.relaxed_max", "f64x2.relaxed_min", "f64x2.relaxed_max", "i16x8.relaxed_q15mulr_s", "i16x8.relaxed_dot_i8x16_i7x16_s", "i32x4.relaxed_dot_i8x16_i7x16_add_s",
].forEach(function (s, i) {
exports.OperatorCodeNames[0xfd000 | i] = s;
});
[ "memory.atomic.notify", "memory.atomic.wait32", "memory.atomic.wait64", "atomic.fence",
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined, "i32.atomic.load", "i64.atomic.load", "i32.atomic.load8_u", "i32.atomic.load16_u", "i64.atomic.load8_u", "i64.atomic.load16_u", "i64.atomic.load32_u", "i32.atomic.store", "i64.atomic.store", "i32.atomic.store8", "i32.atomic.store16", "i64.atomic.store8", "i64.atomic.store16", "i64.atomic.store32", "i32.atomic.rmw.add", "i64.atomic.rmw.add", "i32.atomic.rmw8.add_u", "i32.atomic.rmw16.add_u", "i64.atomic.rmw8.add_u", "i64.atomic.rmw16.add_u", "i64.atomic.rmw32.add_u", "i32.atomic.rmw.sub", "i64.atomic.rmw.sub", "i32.atomic.rmw8.sub_u", "i32.atomic.rmw16.sub_u", "i64.atomic.rmw8.sub_u", "i64.atomic.rmw16.sub_u", "i64.atomic.rmw32.sub_u", "i32.atomic.rmw.and", "i64.atomic.rmw.and", "i32.atomic.rmw8.and_u", "i32.atomic.rmw16.and_u", "i64.atomic.rmw8.and_u", "i64.atomic.rmw16.and_u", "i64.atomic.rmw32.and_u", "i32.atomic.rmw.or", "i64.atomic.rmw.or", "i32.atomic.rmw8.or_u", "i32.atomic.rmw16.or_u", "i64.atomic.rmw8.or_u", "i64.atomic.rmw16.or_u", "i64.atomic.rmw32.or_u", "i32.atomic.rmw.xor", "i64.atomic.rmw.xor", "i32.atomic.rmw8.xor_u", "i32.atomic.rmw16.xor_u", "i64.atomic.rmw8.xor_u", "i64.atomic.rmw16.xor_u", "i64.atomic.rmw32.xor_u", "i32.atomic.rmw.xchg", "i64.atomic.rmw.xchg", "i32.atomic.rmw8.xchg_u", "i32.atomic.rmw16.xchg_u", "i64.atomic.rmw8.xchg_u", "i64.atomic.rmw16.xchg_u", "i64.atomic.rmw32.xchg_u", "i32.atomic.rmw.cmpxchg", "i64.atomic.rmw.cmpxchg", "i32.atomic.rmw8.cmpxchg_u", "i32.atomic.rmw16.cmpxchg_u", "i64.atomic.rmw8.cmpxchg_u", "i64.atomic.rmw16.cmpxchg_u", "i64.atomic.rmw32.cmpxchg_u",
].forEach(function (s, i) {
exports.OperatorCodeNames[0xfe00 | i] = s;
});
[ "struct.new", "struct.new_default", "struct.get", "struct.get_s", "struct.get_u", "struct.set", "array.new", "array.new_default", "array.new_fixed", "array.new_data", "array.new_elem", "array.get", "array.get_s", "array.get_u", "array.set", "array.len", "array.fill", "array.copy", "array.init_data", "array.init_elem", "ref.test", "ref.test", "ref.cast", "ref.cast", "br_on_cast", "br_on_cast_fail", "any.convert_extern", "extern.convert_any", "ref.i31", "i31.get_s", "i31.get_u",
].forEach(function (s, i) {
exports.OperatorCodeNames[0xfb00 | i] = s;
}); var ExternalKind;
(function (ExternalKind) {
ExternalKind[ExternalKind["Function"] = 0] = "Function";
ExternalKind[ExternalKind["Table"] = 1] = "Table";
ExternalKind[ExternalKind["Memory"] = 2] = "Memory";
ExternalKind[ExternalKind["Global"] = 3] = "Global";
ExternalKind[ExternalKind["Tag"] = 4] = "Tag";
})(ExternalKind = exports.ExternalKind || (exports.ExternalKind = {})); var TypeKind;
(function (TypeKind) {
TypeKind[TypeKind["unspecified"] = 0] = "unspecified";
TypeKind[TypeKind["i32"] = -1] = "i32";
TypeKind[TypeKind["i64"] = -2] = "i64";
TypeKind[TypeKind["f32"] = -3] = "f32";
TypeKind[TypeKind["f64"] = -4] = "f64";
TypeKind[TypeKind["v128"] = -5] = "v128";
TypeKind[TypeKind["i8"] = -8] = "i8";
TypeKind[TypeKind["i16"] = -9] = "i16";
TypeKind[TypeKind["nullexnref"] = -12] = "nullexnref";
TypeKind[TypeKind["nullfuncref"] = -13] = "nullfuncref";
TypeKind[TypeKind["nullref"] = -15] = "nullref";
TypeKind[TypeKind["nullexternref"] = -14] = "nullexternref";
TypeKind[TypeKind["funcref"] = -16] = "funcref";
TypeKind[TypeKind["externref"] = -17] = "externref";
TypeKind[TypeKind["anyref"] = -18] = "anyref";
TypeKind[TypeKind["eqref"] = -19] = "eqref";
TypeKind[TypeKind["i31ref"] = -20] = "i31ref";
TypeKind[TypeKind["structref"] = -21] = "structref";
TypeKind[TypeKind["arrayref"] = -22] = "arrayref";
TypeKind[TypeKind["exnref"] = -23] = "exnref";
TypeKind[TypeKind["ref"] = -28] = "ref";
TypeKind[TypeKind["ref_null"] = -29] = "ref_null";
TypeKind[TypeKind["func"] = -32] = "func";
TypeKind[TypeKind["struct"] = -33] = "struct";
TypeKind[TypeKind["array"] = -34] = "array";
TypeKind[TypeKind["subtype"] = -48] = "subtype";
TypeKind[TypeKind["subtype_final"] = -49] = "subtype_final";
TypeKind[TypeKind["rec_group"] = -50] = "rec_group";
TypeKind[TypeKind["empty_block_type"] = -64] = "empty_block_type";
})(TypeKind = exports.TypeKind || (exports.TypeKind = {})); var FieldDef = /** @class */ (function () { function FieldDef() {
} return FieldDef;
}());
exports.FieldDef = FieldDef; var FuncDef = /** @class */ (function () { function FuncDef() {
} return FuncDef;
}());
exports.FuncDef = FuncDef; var Type = exports.Type = /** @class */ (function () { function Type(code) { this.code = code;
}
Object.defineProperty(Type.prototype, "isIndex", {
get: function () { returnthis.code >= 0;
},
enumerable: false,
configurable: true
});
Object.defineProperty(Type.prototype, "kind", {
get: function () { returnthis.code >= 0 ? 0 /* TypeKind.unspecified */ : this.code;
},
enumerable: false,
configurable: true
});
Object.defineProperty(Type.prototype, "index", {
get: function () { returnthis.code < 0 ? -1 : this.code;
},
enumerable: false,
configurable: true
}); // Convenience singletons.
Type.funcref = new Type(-16 /* TypeKind.funcref */);
Type.externref = new Type(-17 /* TypeKind.externref */);
Type.exnref = new Type(-23 /* TypeKind.exnref */); return Type;
}()); var RefType = /** @class */ (function (_super) {
__extends(RefType, _super); function RefType(kind, ref_index) { var _this = this; if (kind != -28 /* TypeKind.ref */ && kind !== -29 /* TypeKind.ref_null */) { thrownew Error("Unexpected type kind: ".concat(kind, "}"));
}
_this = _super.call(this, kind) || this;
_this.ref_index = ref_index; return _this;
}
Object.defineProperty(RefType.prototype, "isNullable", {
get: function () { returnthis.kind == -29 /* TypeKind.ref_null */;
},
enumerable: false,
configurable: true
}); return RefType;
}(Type));
exports.RefType = RefType; var CatchHandlerKind;
(function (CatchHandlerKind) {
CatchHandlerKind[CatchHandlerKind["Catch"] = 0] = "Catch";
CatchHandlerKind[CatchHandlerKind["CatchRef"] = 1] = "CatchRef";
CatchHandlerKind[CatchHandlerKind["CatchAll"] = 2] = "CatchAll";
CatchHandlerKind[CatchHandlerKind["CatchAllRef"] = 3] = "CatchAllRef";
})(CatchHandlerKind = exports.CatchHandlerKind || (exports.CatchHandlerKind = {})); var CatchHandler = /** @class */ (function () { function CatchHandler() {
} return CatchHandler;
}());
exports.CatchHandler = CatchHandler; var RelocType;
(function (RelocType) {
RelocType[RelocType["FunctionIndex_LEB"] = 0] = "FunctionIndex_LEB";
RelocType[RelocType["TableIndex_SLEB"] = 1] = "TableIndex_SLEB";
RelocType[RelocType["TableIndex_I32"] = 2] = "TableIndex_I32";
RelocType[RelocType["GlobalAddr_LEB"] = 3] = "GlobalAddr_LEB";
RelocType[RelocType["GlobalAddr_SLEB"] = 4] = "GlobalAddr_SLEB";
RelocType[RelocType["GlobalAddr_I32"] = 5] = "GlobalAddr_I32";
RelocType[RelocType["TypeIndex_LEB"] = 6] = "TypeIndex_LEB";
RelocType[RelocType["GlobalIndex_LEB"] = 7] = "GlobalIndex_LEB";
})(RelocType = exports.RelocType || (exports.RelocType = {})); var LinkingType;
(function (LinkingType) {
LinkingType[LinkingType["StackPointer"] = 1] = "StackPointer";
})(LinkingType = exports.LinkingType || (exports.LinkingType = {})); var NameType;
(function (NameType) {
NameType[NameType["Module"] = 0] = "Module";
NameType[NameType["Function"] = 1] = "Function";
NameType[NameType["Local"] = 2] = "Local";
NameType[NameType["Label"] = 3] = "Label";
NameType[NameType["Type"] = 4] = "Type";
NameType[NameType["Table"] = 5] = "Table";
NameType[NameType["Memory"] = 6] = "Memory";
NameType[NameType["Global"] = 7] = "Global";
NameType[NameType["Elem"] = 8] = "Elem";
NameType[NameType["Data"] = 9] = "Data";
NameType[NameType["Field"] = 10] = "Field";
NameType[NameType["Tag"] = 11] = "Tag";
})(NameType = exports.NameType || (exports.NameType = {})); var BinaryReaderState;
(function (BinaryReaderState) {
BinaryReaderState[BinaryReaderState["ERROR"] = -1] = "ERROR";
BinaryReaderState[BinaryReaderState["INITIAL"] = 0] = "INITIAL";
BinaryReaderState[BinaryReaderState["BEGIN_WASM"] = 1] = "BEGIN_WASM";
BinaryReaderState[BinaryReaderState["END_WASM"] = 2] = "END_WASM";
BinaryReaderState[BinaryReaderState["BEGIN_SECTION"] = 3] = "BEGIN_SECTION";
BinaryReaderState[BinaryReaderState["END_SECTION"] = 4] = "END_SECTION";
BinaryReaderState[BinaryReaderState["SKIPPING_SECTION"] = 5] = "SKIPPING_SECTION";
BinaryReaderState[BinaryReaderState["READING_SECTION_RAW_DATA"] = 6] = "READING_SECTION_RAW_DATA";
BinaryReaderState[BinaryReaderState["SECTION_RAW_DATA"] = 7] = "SECTION_RAW_DATA";
BinaryReaderState[BinaryReaderState["TYPE_SECTION_ENTRY"] = 11] = "TYPE_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["IMPORT_SECTION_ENTRY"] = 12] = "IMPORT_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["FUNCTION_SECTION_ENTRY"] = 13] = "FUNCTION_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["TABLE_SECTION_ENTRY"] = 14] = "TABLE_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["MEMORY_SECTION_ENTRY"] = 15] = "MEMORY_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["GLOBAL_SECTION_ENTRY"] = 16] = "GLOBAL_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["EXPORT_SECTION_ENTRY"] = 17] = "EXPORT_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["DATA_SECTION_ENTRY"] = 18] = "DATA_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["NAME_SECTION_ENTRY"] = 19] = "NAME_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["ELEMENT_SECTION_ENTRY"] = 20] = "ELEMENT_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["LINKING_SECTION_ENTRY"] = 21] = "LINKING_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["START_SECTION_ENTRY"] = 22] = "START_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["TAG_SECTION_ENTRY"] = 23] = "TAG_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["BEGIN_INIT_EXPRESSION_BODY"] = 25] = "BEGIN_INIT_EXPRESSION_BODY";
BinaryReaderState[BinaryReaderState["INIT_EXPRESSION_OPERATOR"] = 26] = "INIT_EXPRESSION_OPERATOR";
BinaryReaderState[BinaryReaderState["END_INIT_EXPRESSION_BODY"] = 27] = "END_INIT_EXPRESSION_BODY";
BinaryReaderState[BinaryReaderState["BEGIN_FUNCTION_BODY"] = 28] = "BEGIN_FUNCTION_BODY";
BinaryReaderState[BinaryReaderState["READING_FUNCTION_HEADER"] = 29] = "READING_FUNCTION_HEADER";
BinaryReaderState[BinaryReaderState["CODE_OPERATOR"] = 30] = "CODE_OPERATOR";
BinaryReaderState[BinaryReaderState["END_FUNCTION_BODY"] = 31] = "END_FUNCTION_BODY";
BinaryReaderState[BinaryReaderState["SKIPPING_FUNCTION_BODY"] = 32] = "SKIPPING_FUNCTION_BODY";
BinaryReaderState[BinaryReaderState["BEGIN_ELEMENT_SECTION_ENTRY"] = 33] = "BEGIN_ELEMENT_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["ELEMENT_SECTION_ENTRY_BODY"] = 34] = "ELEMENT_SECTION_ENTRY_BODY";
BinaryReaderState[BinaryReaderState["END_ELEMENT_SECTION_ENTRY"] = 35] = "END_ELEMENT_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["BEGIN_DATA_SECTION_ENTRY"] = 36] = "BEGIN_DATA_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["DATA_SECTION_ENTRY_BODY"] = 37] = "DATA_SECTION_ENTRY_BODY";
BinaryReaderState[BinaryReaderState["END_DATA_SECTION_ENTRY"] = 38] = "END_DATA_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["BEGIN_GLOBAL_SECTION_ENTRY"] = 39] = "BEGIN_GLOBAL_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["END_GLOBAL_SECTION_ENTRY"] = 40] = "END_GLOBAL_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["RELOC_SECTION_HEADER"] = 41] = "RELOC_SECTION_HEADER";
BinaryReaderState[BinaryReaderState["RELOC_SECTION_ENTRY"] = 42] = "RELOC_SECTION_ENTRY";
BinaryReaderState[BinaryReaderState["SOURCE_MAPPING_URL"] = 43] = "SOURCE_MAPPING_URL";
BinaryReaderState[BinaryReaderState["BEGIN_OFFSET_EXPRESSION_BODY"] = 44] = "BEGIN_OFFSET_EXPRESSION_BODY";
BinaryReaderState[BinaryReaderState["OFFSET_EXPRESSION_OPERATOR"] = 45] = "OFFSET_EXPRESSION_OPERATOR";
BinaryReaderState[BinaryReaderState["END_OFFSET_EXPRESSION_BODY"] = 46] = "END_OFFSET_EXPRESSION_BODY";
BinaryReaderState[BinaryReaderState["BEGIN_REC_GROUP"] = 47] = "BEGIN_REC_GROUP";
BinaryReaderState[BinaryReaderState["END_REC_GROUP"] = 48] = "END_REC_GROUP";
BinaryReaderState[BinaryReaderState["DATA_COUNT_SECTION_ENTRY"] = 49] = "DATA_COUNT_SECTION_ENTRY";
})(BinaryReaderState = exports.BinaryReaderState || (exports.BinaryReaderState = {})); var DataSegmentType;
(function (DataSegmentType) {
DataSegmentType[DataSegmentType["Active"] = 0] = "Active";
DataSegmentType[DataSegmentType["Passive"] = 1] = "Passive";
DataSegmentType[DataSegmentType["ActiveWithMemoryIndex"] = 2] = "ActiveWithMemoryIndex";
})(DataSegmentType || (DataSegmentType = {})); function isActiveDataSegmentType(segmentType) { switch (segmentType) { case 0 /* DataSegmentType.Active */: case 2 /* DataSegmentType.ActiveWithMemoryIndex */: returntrue; default: returnfalse;
}
} var DataMode;
(function (DataMode) {
DataMode[DataMode["Active"] = 0] = "Active";
DataMode[DataMode["Passive"] = 1] = "Passive";
})(DataMode = exports.DataMode || (exports.DataMode = {})); var ElementSegmentType;
(function (ElementSegmentType) {
ElementSegmentType[ElementSegmentType["LegacyActiveFuncrefExternval"] = 0] = "LegacyActiveFuncrefExternval";
ElementSegmentType[ElementSegmentType["PassiveExternval"] = 1] = "PassiveExternval";
ElementSegmentType[ElementSegmentType["ActiveExternval"] = 2] = "ActiveExternval";
ElementSegmentType[ElementSegmentType["DeclaredExternval"] = 3] = "DeclaredExternval";
ElementSegmentType[ElementSegmentType["LegacyActiveFuncrefElemexpr"] = 4] = "LegacyActiveFuncrefElemexpr";
ElementSegmentType[ElementSegmentType["PassiveElemexpr"] = 5] = "PassiveElemexpr";
ElementSegmentType[ElementSegmentType["ActiveElemexpr"] = 6] = "ActiveElemexpr";
ElementSegmentType[ElementSegmentType["DeclaredElemexpr"] = 7] = "DeclaredElemexpr";
})(ElementSegmentType || (ElementSegmentType = {})); function isActiveElementSegmentType(segmentType) { switch (segmentType) { case 0 /* ElementSegmentType.LegacyActiveFuncrefExternval */: case 2 /* ElementSegmentType.ActiveExternval */: case 4 /* ElementSegmentType.LegacyActiveFuncrefElemexpr */: case 6 /* ElementSegmentType.ActiveElemexpr */: returntrue; default: returnfalse;
}
} function isExternvalElementSegmentType(segmentType) { switch (segmentType) { case 0 /* ElementSegmentType.LegacyActiveFuncrefExternval */: case 1 /* ElementSegmentType.PassiveExternval */: case 2 /* ElementSegmentType.ActiveExternval */: case 3 /* ElementSegmentType.DeclaredExternval */: returntrue; default: returnfalse;
}
} var ElementMode;
(function (ElementMode) {
ElementMode[ElementMode["Active"] = 0] = "Active";
ElementMode[ElementMode["Passive"] = 1] = "Passive";
ElementMode[ElementMode["Declarative"] = 2] = "Declarative";
})(ElementMode = exports.ElementMode || (exports.ElementMode = {})); var DataRange = /** @class */ (function () { function DataRange(start, end) { this.start = start; this.end = end;
}
DataRange.prototype.offset = function (delta) { this.start += delta; this.end += delta;
}; return DataRange;
}()); var TagAttribute;
(function (TagAttribute) {
TagAttribute[TagAttribute["Exception"] = 0] = "Exception";
})(TagAttribute = exports.TagAttribute || (exports.TagAttribute = {})); var Int64 = /** @class */ (function () { function Int64(data) { this._data = data || new Uint8Array(8);
}
Int64.prototype.toInt32 = function () { return (this._data[0] |
(this._data[1] << 8) |
(this._data[2] << 16) |
(this._data[3] << 24));
};
Int64.prototype.toDouble = function () { var power = 1; var sum; if (this._data[7] & 0x80) {
sum = -1; for (var i = 0; i < 8; i++, power *= 256)
sum -= power * (0xff ^ this._data[i]);
} else {
sum = 0; for (var i = 0; i < 8; i++, power *= 256)
sum += power * this._data[i];
} return sum;
};
Int64.prototype.toString = function () { var low = (this._data[0] |
(this._data[1] << 8) |
(this._data[2] << 16) |
(this._data[3] << 24)) >>>
0; var high = (this._data[4] |
(this._data[5] << 8) |
(this._data[6] << 16) |
(this._data[7] << 24)) >>>
0; if (low === 0 && high === 0) { return"0";
} var sign = false; if (high >> 31) {
high = 4294967296 - high; if (low > 0) {
high--;
low = 4294967296 - low;
}
sign = true;
} var buf = []; while (high > 0) { var t = (high % 10) * 4294967296 + low;
high = Math.floor(high / 10);
buf.unshift((t % 10).toString());
low = Math.floor(t / 10);
} while (low > 0) {
buf.unshift((low % 10).toString());
low = Math.floor(low / 10);
} if (sign)
buf.unshift("-"); return buf.join("");
};
Object.defineProperty(Int64.prototype, "data", {
get: function () { returnthis._data;
},
enumerable: false,
configurable: true
}); return Int64;
}());
exports.Int64 = Int64; var BinaryReader = /** @class */ (function () { function BinaryReader() { this._data = null; this._pos = 0; this._length = 0; this._eof = false; this.state = 0 /* BinaryReaderState.INITIAL */; this.result = null; this.error = null; this._sectionEntriesLeft = 0; this._sectionId = -1 /* SectionCode.Unknown */; this._sectionRange = null; this._functionRange = null; this._segmentType = 0; this._segmentEntriesLeft = 0; this._recGroupTypesLeft = 0;
}
Object.defineProperty(BinaryReader.prototype, "data", {
get: function () { returnthis._data;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BinaryReader.prototype, "position", {
get: function () { returnthis._pos;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BinaryReader.prototype, "length", {
get: function () { returnthis._length;
},
enumerable: false,
configurable: true
});
BinaryReader.prototype.setData = function (buffer, pos, length, eof) { var posDelta = pos - this._pos; this._data = new Uint8Array(buffer); this._pos = pos; this._length = length; this._eof = eof === undefined ? true : eof; if (this._sectionRange) this._sectionRange.offset(posDelta); if (this._functionRange) this._functionRange.offset(posDelta);
};
BinaryReader.prototype.hasBytes = function (n) { returnthis._pos + n <= this._length;
};
BinaryReader.prototype.hasMoreBytes = function () { returnthis.hasBytes(1);
};
BinaryReader.prototype.readUint8 = function () { returnthis._data[this._pos++];
};
BinaryReader.prototype.readInt32 = function () { var b1 = this._data[this._pos++]; var b2 = this._data[this._pos++]; var b3 = this._data[this._pos++]; var b4 = this._data[this._pos++]; return b1 | (b2 << 8) | (b3 << 16) | (b4 << 24);
};
BinaryReader.prototype.readUint32 = function () { returnthis.readInt32();
};
BinaryReader.prototype.peekInt32 = function () { var b1 = this._data[this._pos]; var b2 = this._data[this._pos + 1]; var b3 = this._data[this._pos + 2]; var b4 = this._data[this._pos + 3]; return b1 | (b2 << 8) | (b3 << 16) | (b4 << 24);
};
BinaryReader.prototype.hasVarIntBytes = function () { var pos = this._pos; while (pos < this._length) { if ((this._data[pos++] & 0x80) == 0) returntrue;
} returnfalse;
};
BinaryReader.prototype.readVarUint1 = function () { returnthis.readUint8();
};
BinaryReader.prototype.readVarInt7 = function () { return (this.readUint8() << 25) >> 25;
};
BinaryReader.prototype.readVarUint7 = function () { returnthis.readUint8();
};
BinaryReader.prototype.readVarInt32 = function () { var result = 0; var shift = 0; while (true) { varbyte = this.readUint8();
result |= (byte & 0x7f) << shift;
shift += 7; if ((byte & 0x80) === 0) break;
} if (shift >= 32) return result; var ashift = 32 - shift; return (result << ashift) >> ashift;
};
BinaryReader.prototype.readVarUint32 = function () { var result = 0; var shift = 0; while (true) { varbyte = this.readUint8();
result |= (byte & 0x7f) << shift;
shift += 7; if ((byte & 0x80) === 0) break;
} return result >>> 0;
};
BinaryReader.prototype.readVarInt64 = function () { var result = new Uint8Array(8); var i = 0; var c = 0; var shift = 0; while (true) { varbyte = this.readUint8();
c |= (byte & 0x7f) << shift;
shift += 7; if (shift > 8) {
result[i++] = c & 0xff;
c >>= 8;
shift -= 8;
} if ((byte & 0x80) === 0) break;
} var ashift = 32 - shift;
c = (c << ashift) >> ashift; while (i < 8) {
result[i++] = c & 0xff;
c >>= 8;
} returnnew Int64(result);
}; // Reads any "s33" (signed 33-bit integer) value correctly; no guarantees // outside that range.
BinaryReader.prototype.readHeapType = function () { var lsb = this.readUint8(); if (lsb & 0x80) { // Has more data than one byte. var tail = this.readVarInt32(); return (tail - 1) * 128 + lsb;
} else { return (lsb << 25) >> 25;
}
};
BinaryReader.prototype.readType = function () { var kind = this.readHeapType(); if (kind >= 0) { returnnew Type(kind);
} switch (kind) { case -29 /* TypeKind.ref_null */: case -28 /* TypeKind.ref */: var index = this.readHeapType(); returnnew RefType(kind, index); case -1 /* TypeKind.i32 */: case -2 /* TypeKind.i64 */: case -3 /* TypeKind.f32 */: case -4 /* TypeKind.f64 */: case -5 /* TypeKind.v128 */: case -8 /* TypeKind.i8 */: case -9 /* TypeKind.i16 */: case -16 /* TypeKind.funcref */: case -17 /* TypeKind.externref */: case -23 /* TypeKind.exnref */: case -18 /* TypeKind.anyref */: case -19 /* TypeKind.eqref */: case -20 /* TypeKind.i31ref */: case -14 /* TypeKind.nullexternref */: case -13 /* TypeKind.nullfuncref */: case -12 /* TypeKind.nullexnref */: case -21 /* TypeKind.structref */: case -22 /* TypeKind.arrayref */: case -15 /* TypeKind.nullref */: case -32 /* TypeKind.func */: case -33 /* TypeKind.struct */: case -34 /* TypeKind.array */: case -48 /* TypeKind.subtype */: case -50 /* TypeKind.rec_group */: case -49 /* TypeKind.subtype_final */: case -64 /* TypeKind.empty_block_type */: returnnew Type(kind); default: thrownew Error("Unknown type kind: ".concat(kind));
}
};
BinaryReader.prototype.readStringBytes = function () { var length = this.readVarUint32(); returnthis.readBytes(length);
};
BinaryReader.prototype.readBytes = function (length) { var result = this._data.subarray(this._pos, this._pos + length); this._pos += length; returnnew Uint8Array(result); // making a clone of the data
};
BinaryReader.prototype.skipBytes = function (length) { this._pos += length;
};
BinaryReader.prototype.hasStringBytes = function () { if (!this.hasVarIntBytes()) returnfalse; var pos = this._pos; var length = this.readVarUint32(); var result = this.hasBytes(length); this._pos = pos; return result;
};
BinaryReader.prototype.hasSectionPayload = function () { returnthis.hasBytes(this._sectionRange.end - this._pos);
};
BinaryReader.prototype.readFuncType = function () { var paramCount = this.readVarUint32(); var paramTypes = new Array(paramCount); for (var i = 0; i < paramCount; i++)
paramTypes[i] = this.readType(); var returnCount = this.readVarUint32(); var returnTypes = new Array(returnCount); for (var i = 0; i < returnCount; i++)
returnTypes[i] = this.readType(); return {
form: -32 /* TypeKind.func */,
params: paramTypes,
returns: returnTypes,
};
};
BinaryReader.prototype.readBaseType = function () { var form = this.readVarInt7(); switch (form) { case -32 /* TypeKind.func */: returnthis.readFuncType(); case -33 /* TypeKind.struct */: returnthis.readStructType(); case -34 /* TypeKind.array */: returnthis.readArrayType(); default: thrownew Error("Unknown type kind: ".concat(form));
}
};
BinaryReader.prototype.readSubtype = function (final) { var supertypesCount = this.readVarUint32(); var supertypes = new Array(supertypesCount); for (var i = 0; i < supertypesCount; i++) {
supertypes[i] = this.readHeapType();
} var result = this.readBaseType();
result.supertypes = supertypes;
result.final = final; return result;
};
BinaryReader.prototype.readStructType = function () { var fieldCount = this.readVarUint32(); var fieldTypes = new Array(fieldCount); var fieldMutabilities = new Array(fieldCount); for (var i = 0; i < fieldCount; i++) {
fieldTypes[i] = this.readType();
fieldMutabilities[i] = !!this.readVarUint1();
} return {
form: -33 /* TypeKind.struct */,
fields: fieldTypes,
mutabilities: fieldMutabilities,
};
};
BinaryReader.prototype.readArrayType = function () { var elementType = this.readType(); var mutability = !!this.readVarUint1(); return {
form: -34 /* TypeKind.array */,
elementType: elementType,
mutability: mutability,
};
};
BinaryReader.prototype.readResizableLimits = function (maxPresent) { var initial = this.readVarUint32(); var maximum; if (maxPresent) {
maximum = this.readVarUint32();
} return { initial: initial, maximum: maximum };
};
BinaryReader.prototype.readTableType = function () { var elementType = this.readType(); var flags = this.readVarUint32(); var limits = this.readResizableLimits(!!(flags & 0x01)); return { elementType: elementType, limits: limits };
};
BinaryReader.prototype.readMemoryType = function () { var flags = this.readVarUint32(); var shared = !!(flags & 0x02); return {
limits: this.readResizableLimits(!!(flags & 0x01)),
shared: shared,
};
};
BinaryReader.prototype.readGlobalType = function () { if (!this.hasVarIntBytes()) { returnnull;
} var pos = this._pos; var contentType = this.readType(); if (!this.hasVarIntBytes()) { this._pos = pos; returnnull;
} var mutability = this.readVarUint1(); return { contentType: contentType, mutability: mutability };
};
BinaryReader.prototype.readTagType = function () { var attribute = this.readVarUint32(); var typeIndex = this.readVarUint32(); return {
attribute: attribute,
typeIndex: typeIndex,
};
};
BinaryReader.prototype.readTypeEntryCommon = function (form) { switch (form) { case -32 /* TypeKind.func */: this.result = this.readFuncType(); break; case -48 /* TypeKind.subtype */: this.result = this.readSubtype(false); break; case -49 /* TypeKind.subtype_final */: this.result = this.readSubtype(true); break; case -33 /* TypeKind.struct */: this.result = this.readStructType(); break; case -34 /* TypeKind.array */: this.result = this.readArrayType(); break; case -1 /* TypeKind.i32 */: case -2 /* TypeKind.i64 */: case -3 /* TypeKind.f32 */: case -4 /* TypeKind.f64 */: case -5 /* TypeKind.v128 */: case -8 /* TypeKind.i8 */: case -9 /* TypeKind.i16 */: case -16 /* TypeKind.funcref */: case -17 /* TypeKind.externref */: case -23 /* TypeKind.exnref */: case -18 /* TypeKind.anyref */: case -19 /* TypeKind.eqref */: this.result = {
form: form,
}; break; default: thrownew Error("Unknown type kind: ".concat(form));
}
};
BinaryReader.prototype.readTypeEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} var form = this.readVarInt7(); if (form == -50 /* TypeKind.rec_group */) { this.state = 47 /* BinaryReaderState.BEGIN_REC_GROUP */; this.result = null; this._recGroupTypesLeft = this.readVarUint32();
} else { this.state = 11 /* BinaryReaderState.TYPE_SECTION_ENTRY */; this.readTypeEntryCommon(form); this._sectionEntriesLeft--;
} returntrue;
};
BinaryReader.prototype.readRecGroupEntry = function () { if (this._recGroupTypesLeft === 0) { this.state = 48 /* BinaryReaderState.END_REC_GROUP */; this.result = null; this._sectionEntriesLeft--; this._recGroupTypesLeft = -1; returntrue;
} this.state = 11 /* BinaryReaderState.TYPE_SECTION_ENTRY */; var form = this.readVarInt7(); this.readTypeEntryCommon(form); this._recGroupTypesLeft--; returntrue;
};
BinaryReader.prototype.readImportEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} this.state = 12 /* BinaryReaderState.IMPORT_SECTION_ENTRY */; var module = this.readStringBytes(); var field = this.readStringBytes(); var kind = this.readUint8(); var funcTypeIndex; var type; switch (kind) { case 0 /* ExternalKind.Function */:
funcTypeIndex = this.readVarUint32(); break; case 1 /* ExternalKind.Table */:
type = this.readTableType(); break; case 2 /* ExternalKind.Memory */:
type = this.readMemoryType(); break; case 3 /* ExternalKind.Global */:
type = this.readGlobalType(); break; case 4 /* ExternalKind.Tag */:
type = this.readTagType(); break;
} this.result = {
module: module,
field: field,
kind: kind,
funcTypeIndex: funcTypeIndex,
type: type,
}; this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readExportEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} var field = this.readStringBytes(); var kind = this.readUint8(); var index = this.readVarUint32(); this.state = 17 /* BinaryReaderState.EXPORT_SECTION_ENTRY */; this.result = { field: field, kind: kind, index: index }; this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readFunctionEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} var typeIndex = this.readVarUint32(); this.state = 13 /* BinaryReaderState.FUNCTION_SECTION_ENTRY */; this.result = { typeIndex: typeIndex }; this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readTableEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} this.state = 14 /* BinaryReaderState.TABLE_SECTION_ENTRY */; this.result = this.readTableType(); this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readMemoryEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} this.state = 15 /* BinaryReaderState.MEMORY_SECTION_ENTRY */; this.result = this.readMemoryType(); this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readTagEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} this.state = 23 /* BinaryReaderState.TAG_SECTION_ENTRY */; this.result = this.readTagType(); this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readGlobalEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} var globalType = this.readGlobalType(); if (!globalType) { this.state = 16 /* BinaryReaderState.GLOBAL_SECTION_ENTRY */; returnfalse;
} this.state = 39 /* BinaryReaderState.BEGIN_GLOBAL_SECTION_ENTRY */; this.result = {
type: globalType,
}; this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readElementEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} var pos = this._pos; if (!this.hasMoreBytes()) { this.state = 20 /* BinaryReaderState.ELEMENT_SECTION_ENTRY */; returnfalse;
} var segmentType = this.readUint8(); var mode, tableIndex; switch (segmentType) { case 0 /* ElementSegmentType.LegacyActiveFuncrefExternval */: case 4 /* ElementSegmentType.LegacyActiveFuncrefElemexpr */:
mode = 0 /* ElementMode.Active */;
tableIndex = 0; break; case 1 /* ElementSegmentType.PassiveExternval */: case 5 /* ElementSegmentType.PassiveElemexpr */:
mode = 1 /* ElementMode.Passive */; break; case 2 /* ElementSegmentType.ActiveExternval */: case 6 /* ElementSegmentType.ActiveElemexpr */:
mode = 0 /* ElementMode.Active */; if (!this.hasVarIntBytes()) { this.state = 20 /* BinaryReaderState.ELEMENT_SECTION_ENTRY */; this._pos = pos; returnfalse;
}
tableIndex = this.readVarUint32(); break; case 3 /* ElementSegmentType.DeclaredExternval */: case 7 /* ElementSegmentType.DeclaredElemexpr */:
mode = 2 /* ElementMode.Declarative */; break; default: thrownew Error("Unsupported element segment type ".concat(segmentType));
} this.state = 33 /* BinaryReaderState.BEGIN_ELEMENT_SECTION_ENTRY */; this.result = { mode: mode, tableIndex: tableIndex }; this._sectionEntriesLeft--; this._segmentType = segmentType; returntrue;
};
BinaryReader.prototype.readElementEntryBody = function () { var elementType = Type.funcref; switch (this._segmentType) { case 1 /* ElementSegmentType.PassiveExternval */: case 2 /* ElementSegmentType.ActiveExternval */: case 3 /* ElementSegmentType.DeclaredExternval */: if (!this.hasMoreBytes()) returnfalse; // We just skip the 0x00 byte, the `elemkind` byte // is reserved for future versions of WebAssembly. this.skipBytes(1); break; case 5 /* ElementSegmentType.PassiveElemexpr */: case 6 /* ElementSegmentType.ActiveElemexpr */: case 7 /* ElementSegmentType.DeclaredElemexpr */: if (!this.hasMoreBytes()) returnfalse;
elementType = this.readType(); break; case 0 /* ElementSegmentType.LegacyActiveFuncrefExternval */: case 4 /* ElementSegmentType.LegacyActiveFuncrefElemexpr */: // The element type is implicitly `funcref`. break; default: thrownew Error("Unsupported element segment type ".concat(this._segmentType));
} this.state = 34 /* BinaryReaderState.ELEMENT_SECTION_ENTRY_BODY */; this.result = { elementType: elementType }; returntrue;
};
BinaryReader.prototype.readDataEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} var pos = this._pos; if (!this.hasVarIntBytes()) { this.state = 18 /* BinaryReaderState.DATA_SECTION_ENTRY */; returnfalse;
} var segmentType = this.readVarUint32(); var mode, memoryIndex; switch (segmentType) { case 0 /* DataSegmentType.Active */:
mode = 0 /* DataMode.Active */;
memoryIndex = 0; break; case 1 /* DataSegmentType.Passive */:
mode = 1 /* DataMode.Passive */; break; case 2 /* DataSegmentType.ActiveWithMemoryIndex */:
mode = 0 /* DataMode.Active */; if (!this.hasVarIntBytes()) { this._pos = pos; this.state = 18 /* BinaryReaderState.DATA_SECTION_ENTRY */; returnfalse;
}
memoryIndex = this.readVarUint32(); break; default: thrownew Error("Unsupported data segment type ".concat(segmentType));
} this.state = 36 /* BinaryReaderState.BEGIN_DATA_SECTION_ENTRY */; this.result = { mode: mode, memoryIndex: memoryIndex }; this._sectionEntriesLeft--; this._segmentType = segmentType; returntrue;
};
BinaryReader.prototype.readDataCountEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} this.state = 49 /* BinaryReaderState.DATA_COUNT_SECTION_ENTRY */; this.result = this.readVarUint32(); this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readDataEntryBody = function () { if (!this.hasStringBytes()) { returnfalse;
} this.state = 37 /* BinaryReaderState.DATA_SECTION_ENTRY_BODY */; this.result = {
data: this.readStringBytes(),
}; returntrue;
};
BinaryReader.prototype.readInitExpressionBody = function () { this.state = 25 /* BinaryReaderState.BEGIN_INIT_EXPRESSION_BODY */; this.result = null; returntrue;
};
BinaryReader.prototype.readOffsetExpressionBody = function () { this.state = 44 /* BinaryReaderState.BEGIN_OFFSET_EXPRESSION_BODY */; this.result = null; returntrue;
};
BinaryReader.prototype.readMemoryImmediate = function () { var flags = this.readVarUint32(); var offset = this.readVarUint32(); return { flags: flags, offset: offset };
};
BinaryReader.prototype.readNameMap = function () { var count = this.readVarUint32(); var result = []; for (var i = 0; i < count; i++) { var index = this.readVarUint32(); var name = this.readStringBytes();
result.push({ index: index, name: name });
} return result;
};
BinaryReader.prototype.readNameEntry = function () { var pos = this._pos; if (pos >= this._sectionRange.end) { this.skipSection(); returnthis.read();
} if (!this.hasVarIntBytes()) returnfalse; var type = this.readVarUint7(); if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
} var payloadLength = this.readVarUint32(); if (!this.hasBytes(payloadLength)) { this._pos = pos; returnfalse;
} var result; switch (type) { case 0 /* NameType.Module */:
result = {
type: type,
moduleName: this.readStringBytes(),
}; break; case 1 /* NameType.Function */: case 11 /* NameType.Tag */: case 4 /* NameType.Type */: case 5 /* NameType.Table */: case 6 /* NameType.Memory */: case 7 /* NameType.Global */:
result = {
type: type,
names: this.readNameMap(),
}; break; case 2 /* NameType.Local */: var funcsLength = this.readVarUint32(); var funcs = []; for (var i = 0; i < funcsLength; i++) { var funcIndex = this.readVarUint32();
funcs.push({
index: funcIndex,
locals: this.readNameMap(),
});
}
result = {
type: type,
funcs: funcs,
}; break; case 10 /* NameType.Field */: var typesLength = this.readVarUint32(); var types = []; for (var i = 0; i < typesLength; i++) { var fieldIndex = this.readVarUint32();
types.push({
index: fieldIndex,
fields: this.readNameMap(),
});
}
result = {
type: type,
types: types,
}; break; default: // Skip this unknown name subsection (as per specification, // custom section errors shouldn't cause Wasm parsing to fail). this.skipBytes(payloadLength); returnthis.read();
} this.state = 19 /* BinaryReaderState.NAME_SECTION_ENTRY */; this.result = result; returntrue;
};
BinaryReader.prototype.readRelocHeader = function () { // See https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md if (!this.hasVarIntBytes()) { returnfalse;
} var pos = this._pos; var sectionId = this.readVarUint7(); var sectionName; if (sectionId === 0 /* SectionCode.Custom */) { if (!this.hasStringBytes()) { this._pos = pos; returnfalse;
}
sectionName = this.readStringBytes();
} this.state = 41 /* BinaryReaderState.RELOC_SECTION_HEADER */; this.result = {
id: sectionId,
name: sectionName,
}; returntrue;
};
BinaryReader.prototype.readLinkingEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} if (!this.hasVarIntBytes()) returnfalse; var pos = this._pos; var type = this.readVarUint32(); var index; switch (type) { case 1 /* LinkingType.StackPointer */: if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
}
index = this.readVarUint32(); break; default: this.error = new Error("Bad linking type: ".concat(type)); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} this.state = 21 /* BinaryReaderState.LINKING_SECTION_ENTRY */; this.result = { type: type, index: index }; this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readSourceMappingURL = function () { if (!this.hasStringBytes()) returnfalse; var url = this.readStringBytes(); this.state = 43 /* BinaryReaderState.SOURCE_MAPPING_URL */; this.result = { url: url }; returntrue;
};
BinaryReader.prototype.readRelocEntry = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} if (!this.hasVarIntBytes()) returnfalse; var pos = this._pos; var type = this.readVarUint7(); if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
} var offset = this.readVarUint32(); if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
} var index = this.readVarUint32(); var addend; switch (type) { case 0 /* RelocType.FunctionIndex_LEB */: case 1 /* RelocType.TableIndex_SLEB */: case 2 /* RelocType.TableIndex_I32 */: case 6 /* RelocType.TypeIndex_LEB */: case 7 /* RelocType.GlobalIndex_LEB */: break; case 3 /* RelocType.GlobalAddr_LEB */: case 4 /* RelocType.GlobalAddr_SLEB */: case 5 /* RelocType.GlobalAddr_I32 */: if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
}
addend = this.readVarUint32(); break; default: this.error = new Error("Bad relocation type: ".concat(type)); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} this.state = 42 /* BinaryReaderState.RELOC_SECTION_ENTRY */; this.result = {
type: type,
offset: offset,
index: index,
addend: addend,
}; this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readCodeOperator_0xfb = function () { // The longest instructions have: 2 bytes opcode, 5 bytes type index, // 5 bytes field index. var MAX_CODE_OPERATOR_0XFB_SIZE = 12; if (!this._eof && !this.hasBytes(MAX_CODE_OPERATOR_0XFB_SIZE)) { returnfalse;
} var code, brDepth, refType, srcType, fieldIndex, segmentIndex, len, literal;
code = this._data[this._pos++] | 0xfb00; switch (code) { case 64280 /* OperatorCode.br_on_cast */: case 64281 /* OperatorCode.br_on_cast_fail */:
literal = this.readUint8();
brDepth = this.readVarUint32();
srcType = this.readHeapType();
refType = this.readHeapType(); break; case 64267 /* OperatorCode.array_get */: case 64268 /* OperatorCode.array_get_s */: case 64269 /* OperatorCode.array_get_u */: case 64270 /* OperatorCode.array_set */: case 64262 /* OperatorCode.array_new */: case 64263 /* OperatorCode.array_new_default */: case 64256 /* OperatorCode.struct_new */: case 64257 /* OperatorCode.struct_new_default */:
refType = this.readVarUint32(); break; case 64264 /* OperatorCode.array_new_fixed */:
refType = this.readVarUint32();
len = this.readVarUint32(); break; case 64272 /* OperatorCode.array_fill */:
refType = this.readVarUint32(); break; case 64273 /* OperatorCode.array_copy */:
refType = this.readVarUint32();
srcType = this.readVarUint32(); break; case 64258 /* OperatorCode.struct_get */: case 64259 /* OperatorCode.struct_get_s */: case 64260 /* OperatorCode.struct_get_u */: case 64261 /* OperatorCode.struct_set */:
refType = this.readVarUint32();
fieldIndex = this.readVarUint32(); break; case 64265 /* OperatorCode.array_new_data */: case 64266 /* OperatorCode.array_new_elem */: case 64274 /* OperatorCode.array_init_data */: case 64275 /* OperatorCode.array_init_elem */:
refType = this.readVarUint32();
segmentIndex = this.readVarUint32(); break; case 64276 /* OperatorCode.ref_test */: case 64277 /* OperatorCode.ref_test_null */: case 64278 /* OperatorCode.ref_cast */: case 64279 /* OperatorCode.ref_cast_null */:
refType = this.readHeapType(); break; case 64271 /* OperatorCode.array_len */: case 64283 /* OperatorCode.extern_convert_any */: case 64282 /* OperatorCode.any_convert_extern */: case 64284 /* OperatorCode.ref_i31 */: case 64285 /* OperatorCode.i31_get_s */: case 64286 /* OperatorCode.i31_get_u */: break; default: this.error = new Error("Unknown operator: 0x".concat(code.toString(16).padStart(4, "0"))); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} this.result = {
code: code,
blockType: undefined,
refType: refType,
srcType: srcType,
brDepth: brDepth,
brTable: undefined,
tableIndex: undefined,
funcIndex: undefined,
typeIndex: undefined,
localIndex: undefined,
globalIndex: undefined,
fieldIndex: fieldIndex,
memoryAddress: undefined,
literal: literal,
segmentIndex: segmentIndex,
destinationIndex: undefined,
len: len,
lines: undefined,
lineIndex: undefined,
}; returntrue;
};
BinaryReader.prototype.readCodeOperator_0xfc = function () { if (!this.hasVarIntBytes()) { returnfalse;
} var code = this.readVarUint32() | 0xfc00; var reserved, segmentIndex, destinationIndex, tableIndex; switch (code) { case 64512 /* OperatorCode.i32_trunc_sat_f32_s */: case 64513 /* OperatorCode.i32_trunc_sat_f32_u */: case 64514 /* OperatorCode.i32_trunc_sat_f64_s */: case 64515 /* OperatorCode.i32_trunc_sat_f64_u */: case 64516 /* OperatorCode.i64_trunc_sat_f32_s */: case 64517 /* OperatorCode.i64_trunc_sat_f32_u */: case 64518 /* OperatorCode.i64_trunc_sat_f64_s */: case 64519 /* OperatorCode.i64_trunc_sat_f64_u */: break; case 64522 /* OperatorCode.memory_copy */: // Currently memory index must be zero.
reserved = this.readVarUint1();
reserved = this.readVarUint1(); break; case 64523 /* OperatorCode.memory_fill */:
reserved = this.readVarUint1(); break; case 64524 /* OperatorCode.table_init */:
segmentIndex = this.readVarUint32();
tableIndex = this.readVarUint32(); break; case 64526 /* OperatorCode.table_copy */:
tableIndex = this.readVarUint32();
destinationIndex = this.readVarUint32(); break; case 64527 /* OperatorCode.table_grow */: case 64528 /* OperatorCode.table_size */: case 64529 /* OperatorCode.table_fill */:
tableIndex = this.readVarUint32(); break; case 64520 /* OperatorCode.memory_init */:
segmentIndex = this.readVarUint32();
reserved = this.readVarUint1(); break; case 64521 /* OperatorCode.data_drop */: case 64525 /* OperatorCode.elem_drop */:
segmentIndex = this.readVarUint32(); break; default: this.error = new Error("Unknown operator: 0x".concat(code.toString(16).padStart(4, "0"))); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} this.result = {
code: code,
blockType: undefined,
selectType: undefined,
refType: undefined,
srcType: undefined,
brDepth: undefined,
brTable: undefined,
funcIndex: undefined,
typeIndex: undefined,
tableIndex: tableIndex,
localIndex: undefined,
globalIndex: undefined,
fieldIndex: undefined,
memoryAddress: undefined,
literal: undefined,
segmentIndex: segmentIndex,
destinationIndex: destinationIndex,
len: undefined,
lines: undefined,
lineIndex: undefined,
}; returntrue;
};
BinaryReader.prototype.readCodeOperator_0xfd = function () { var MAX_CODE_OPERATOR_0XFD_SIZE = 17; var pos = this._pos; if (!this._eof && pos + MAX_CODE_OPERATOR_0XFD_SIZE > this._length) { returnfalse;
} if (!this.hasVarIntBytes()) { returnfalse;
} var code = this.readVarUint32() | 0xfd000; var memoryAddress; var literal; var lineIndex; var lines; switch (code) { case 1036288 /* OperatorCode.v128_load */: case 1036289 /* OperatorCode.i16x8_load8x8_s */: case 1036290 /* OperatorCode.i16x8_load8x8_u */: case 1036291 /* OperatorCode.i32x4_load16x4_s */: case 1036292 /* OperatorCode.i32x4_load16x4_u */: case 1036293 /* OperatorCode.i64x2_load32x2_s */: case 1036294 /* OperatorCode.i64x2_load32x2_u */: case 1036295 /* OperatorCode.v8x16_load_splat */: case 1036296 /* OperatorCode.v16x8_load_splat */: case 1036297 /* OperatorCode.v32x4_load_splat */: case 1036298 /* OperatorCode.v64x2_load_splat */: case 1036299 /* OperatorCode.v128_store */: case 1036380 /* OperatorCode.v128_load32_zero */: case 1036381 /* OperatorCode.v128_load64_zero */:
memoryAddress = this.readMemoryImmediate(); break; case 1036300 /* OperatorCode.v128_const */:
literal = this.readBytes(16); break; case 1036301 /* OperatorCode.i8x16_shuffle */:
lines = new Uint8Array(16); for (var i = 0; i < lines.length; i++) {
lines[i] = this.readUint8();
} break; case 1036309 /* OperatorCode.i8x16_extract_lane_s */: case 1036310 /* OperatorCode.i8x16_extract_lane_u */: case 1036311 /* OperatorCode.i8x16_replace_lane */: case 1036312 /* OperatorCode.i16x8_extract_lane_s */: case 1036313 /* OperatorCode.i16x8_extract_lane_u */: case 1036314 /* OperatorCode.i16x8_replace_lane */: case 1036315 /* OperatorCode.i32x4_extract_lane */: case 1036316 /* OperatorCode.i32x4_replace_lane */: case 1036317 /* OperatorCode.i64x2_extract_lane */: case 1036318 /* OperatorCode.i64x2_replace_lane */: case 1036319 /* OperatorCode.f32x4_extract_lane */: case 1036320 /* OperatorCode.f32x4_replace_lane */: case 1036321 /* OperatorCode.f64x2_extract_lane */: case 1036322 /* OperatorCode.f64x2_replace_lane */:
lineIndex = this.readUint8(); break; case 1036372 /* OperatorCode.v128_load8_lane */: case 1036373 /* OperatorCode.v128_load16_lane */: case 1036374 /* OperatorCode.v128_load32_lane */: case 1036375 /* OperatorCode.v128_load64_lane */: case 1036376 /* OperatorCode.v128_store8_lane */: case 1036377 /* OperatorCode.v128_store16_lane */: case 1036378 /* OperatorCode.v128_store32_lane */: case 1036379 /* OperatorCode.v128_store64_lane */:
memoryAddress = this.readMemoryImmediate();
lineIndex = this.readUint8(); break; case 1036302 /* OperatorCode.i8x16_swizzle */: case 1036303 /* OperatorCode.i8x16_splat */: case 1036304 /* OperatorCode.i16x8_splat */: case 1036305 /* OperatorCode.i32x4_splat */: case 1036306 /* OperatorCode.i64x2_splat */: case 1036307 /* OperatorCode.f32x4_splat */: case 1036308 /* OperatorCode.f64x2_splat */: case 1036323 /* OperatorCode.i8x16_eq */: case 1036324 /* OperatorCode.i8x16_ne */: case 1036325 /* OperatorCode.i8x16_lt_s */: case 1036326 /* OperatorCode.i8x16_lt_u */: case 1036327 /* OperatorCode.i8x16_gt_s */: case 1036328 /* OperatorCode.i8x16_gt_u */: case 1036329 /* OperatorCode.i8x16_le_s */: case 1036330 /* OperatorCode.i8x16_le_u */: case 1036331 /* OperatorCode.i8x16_ge_s */: case 1036332 /* OperatorCode.i8x16_ge_u */: case 1036333 /* OperatorCode.i16x8_eq */: case 1036334 /* OperatorCode.i16x8_ne */: case 1036335 /* OperatorCode.i16x8_lt_s */: case 1036336 /* OperatorCode.i16x8_lt_u */: case 1036337 /* OperatorCode.i16x8_gt_s */: case 1036338 /* OperatorCode.i16x8_gt_u */: case 1036339 /* OperatorCode.i16x8_le_s */: case 1036340 /* OperatorCode.i16x8_le_u */: case 1036341 /* OperatorCode.i16x8_ge_s */: case 1036342 /* OperatorCode.i16x8_ge_u */: case 1036343 /* OperatorCode.i32x4_eq */: case 1036344 /* OperatorCode.i32x4_ne */: case 1036345 /* OperatorCode.i32x4_lt_s */: case 1036346 /* OperatorCode.i32x4_lt_u */: case 1036347 /* OperatorCode.i32x4_gt_s */: case 1036348 /* OperatorCode.i32x4_gt_u */: case 1036349 /* OperatorCode.i32x4_le_s */: case 1036350 /* OperatorCode.i32x4_le_u */: case 1036351 /* OperatorCode.i32x4_ge_s */: case 1036352 /* OperatorCode.i32x4_ge_u */: case 1036353 /* OperatorCode.f32x4_eq */: case 1036354 /* OperatorCode.f32x4_ne */: case 1036355 /* OperatorCode.f32x4_lt */: case 1036356 /* OperatorCode.f32x4_gt */: case 1036357 /* OperatorCode.f32x4_le */: case 1036358 /* OperatorCode.f32x4_ge */: case 1036359 /* OperatorCode.f64x2_eq */: case 1036360 /* OperatorCode.f64x2_ne */: case 1036361 /* OperatorCode.f64x2_lt */: case 1036362 /* OperatorCode.f64x2_gt */: case 1036363 /* OperatorCode.f64x2_le */: case 1036364 /* OperatorCode.f64x2_ge */: case 1036365 /* OperatorCode.v128_not */: case 1036366 /* OperatorCode.v128_and */: case 1036367 /* OperatorCode.v128_andnot */: case 1036368 /* OperatorCode.v128_or */: case 1036369 /* OperatorCode.v128_xor */: case 1036370 /* OperatorCode.v128_bitselect */: case 1036371 /* OperatorCode.v128_any_true */: case 1036382 /* OperatorCode.f32x4_demote_f64x2_zero */: case 1036383 /* OperatorCode.f64x2_promote_low_f32x4 */: case 1036384 /* OperatorCode.i8x16_abs */: case 1036385 /* OperatorCode.i8x16_neg */: case 1036386 /* OperatorCode.i8x16_popcnt */: case 1036387 /* OperatorCode.i8x16_all_true */: case 1036388 /* OperatorCode.i8x16_bitmask */: case 1036389 /* OperatorCode.i8x16_narrow_i16x8_s */: case 1036390 /* OperatorCode.i8x16_narrow_i16x8_u */: case 1036391 /* OperatorCode.f32x4_ceil */: case 1036392 /* OperatorCode.f32x4_floor */: case 1036393 /* OperatorCode.f32x4_trunc */: case 1036394 /* OperatorCode.f32x4_nearest */: case 1036395 /* OperatorCode.i8x16_shl */: case 1036396 /* OperatorCode.i8x16_shr_s */: case 1036397 /* OperatorCode.i8x16_shr_u */: case 1036398 /* OperatorCode.i8x16_add */: case 1036399 /* OperatorCode.i8x16_add_sat_s */: case 1036400 /* OperatorCode.i8x16_add_sat_u */: case 1036401 /* OperatorCode.i8x16_sub */: case 1036402 /* OperatorCode.i8x16_sub_sat_s */: case 1036403 /* OperatorCode.i8x16_sub_sat_u */: case 1036404 /* OperatorCode.f64x2_ceil */: case 1036405 /* OperatorCode.f64x2_floor */: case 1036406 /* OperatorCode.i8x16_min_s */: case 1036407 /* OperatorCode.i8x16_min_u */: case 1036408 /* OperatorCode.i8x16_max_s */: case 1036409 /* OperatorCode.i8x16_max_u */: case 1036410 /* OperatorCode.f64x2_trunc */: case 1036411 /* OperatorCode.i8x16_avgr_u */: case 1036412 /* OperatorCode.i16x8_extadd_pairwise_i8x16_s */: case 1036413 /* OperatorCode.i16x8_extadd_pairwise_i8x16_u */: case 1036414 /* OperatorCode.i32x4_extadd_pairwise_i16x8_s */: case 1036415 /* OperatorCode.i32x4_extadd_pairwise_i16x8_u */: case 1036416 /* OperatorCode.i16x8_abs */: case 1036417 /* OperatorCode.i16x8_neg */: case 1036418 /* OperatorCode.i16x8_q15mulr_sat_s */: case 1036419 /* OperatorCode.i16x8_all_true */: case 1036420 /* OperatorCode.i16x8_bitmask */: case 1036421 /* OperatorCode.i16x8_narrow_i32x4_s */: case 1036422 /* OperatorCode.i16x8_narrow_i32x4_u */: case 1036423 /* OperatorCode.i16x8_extend_low_i8x16_s */: case 1036424 /* OperatorCode.i16x8_extend_high_i8x16_s */: case 1036425 /* OperatorCode.i16x8_extend_low_i8x16_u */: case 1036426 /* OperatorCode.i16x8_extend_high_i8x16_u */: case 1036427 /* OperatorCode.i16x8_shl */: case 1036428 /* OperatorCode.i16x8_shr_s */: case 1036429 /* OperatorCode.i16x8_shr_u */: case 1036430 /* OperatorCode.i16x8_add */: case 1036431 /* OperatorCode.i16x8_add_sat_s */: case 1036432 /* OperatorCode.i16x8_add_sat_u */: case 1036433 /* OperatorCode.i16x8_sub */: case 1036434 /* OperatorCode.i16x8_sub_sat_s */: case 1036435 /* OperatorCode.i16x8_sub_sat_u */: case 1036436 /* OperatorCode.f64x2_nearest */: case 1036437 /* OperatorCode.i16x8_mul */: case 1036438 /* OperatorCode.i16x8_min_s */: case 1036439 /* OperatorCode.i16x8_min_u */: case 1036440 /* OperatorCode.i16x8_max_s */: case 1036441 /* OperatorCode.i16x8_max_u */: case 1036443 /* OperatorCode.i16x8_avgr_u */: case 1036444 /* OperatorCode.i16x8_extmul_low_i8x16_s */: case 1036445 /* OperatorCode.i16x8_extmul_high_i8x16_s */: case 1036446 /* OperatorCode.i16x8_extmul_low_i8x16_u */: case 1036447 /* OperatorCode.i16x8_extmul_high_i8x16_u */: case 1036448 /* OperatorCode.i32x4_abs */: case 1036449 /* OperatorCode.i32x4_neg */: case 1036451 /* OperatorCode.i32x4_all_true */: case 1036452 /* OperatorCode.i32x4_bitmask */: case 1036455 /* OperatorCode.i32x4_extend_low_i16x8_s */: case 1036456 /* OperatorCode.i32x4_extend_high_i16x8_s */: case 1036457 /* OperatorCode.i32x4_extend_low_i16x8_u */: case 1036458 /* OperatorCode.i32x4_extend_high_i16x8_u */: case 1036459 /* OperatorCode.i32x4_shl */: case 1036460 /* OperatorCode.i32x4_shr_s */: case 1036461 /* OperatorCode.i32x4_shr_u */: case 1036462 /* OperatorCode.i32x4_add */: case 1036465 /* OperatorCode.i32x4_sub */: case 1036469 /* OperatorCode.i32x4_mul */: case 1036470 /* OperatorCode.i32x4_min_s */: case 1036471 /* OperatorCode.i32x4_min_u */: case 1036472 /* OperatorCode.i32x4_max_s */: case 1036473 /* OperatorCode.i32x4_max_u */: case 1036474 /* OperatorCode.i32x4_dot_i16x8_s */: case 1036476 /* OperatorCode.i32x4_extmul_low_i16x8_s */: case 1036477 /* OperatorCode.i32x4_extmul_high_i16x8_s */: case 1036478 /* OperatorCode.i32x4_extmul_low_i16x8_u */: case 1036479 /* OperatorCode.i32x4_extmul_high_i16x8_u */: case 1036480 /* OperatorCode.i64x2_abs */: case 1036481 /* OperatorCode.i64x2_neg */: case 1036483 /* OperatorCode.i64x2_all_true */: case 1036484 /* OperatorCode.i64x2_bitmask */: case 1036487 /* OperatorCode.i64x2_extend_low_i32x4_s */: case 1036488 /* OperatorCode.i64x2_extend_high_i32x4_s */: case 1036489 /* OperatorCode.i64x2_extend_low_i32x4_u */: case 1036490 /* OperatorCode.i64x2_extend_high_i32x4_u */: case 1036491 /* OperatorCode.i64x2_shl */: case 1036492 /* OperatorCode.i64x2_shr_s */: case 1036493 /* OperatorCode.i64x2_shr_u */: case 1036494 /* OperatorCode.i64x2_add */: case 1036497 /* OperatorCode.i64x2_sub */: case 1036501 /* OperatorCode.i64x2_mul */: case 1036502 /* OperatorCode.i64x2_eq */: case 1036503 /* OperatorCode.i64x2_ne */: case 1036504 /* OperatorCode.i64x2_lt_s */: case 1036505 /* OperatorCode.i64x2_gt_s */: case 1036506 /* OperatorCode.i64x2_le_s */: case 1036507 /* OperatorCode.i64x2_ge_s */: case 1036508 /* OperatorCode.i64x2_extmul_low_i32x4_s */: case 1036509 /* OperatorCode.i64x2_extmul_high_i32x4_s */: case 1036510 /* OperatorCode.i64x2_extmul_low_i32x4_u */: case 1036511 /* OperatorCode.i64x2_extmul_high_i32x4_u */: case 1036512 /* OperatorCode.f32x4_abs */: case 1036512 /* OperatorCode.f32x4_abs */: case 1036513 /* OperatorCode.f32x4_neg */: case 1036515 /* OperatorCode.f32x4_sqrt */: case 1036516 /* OperatorCode.f32x4_add */: case 1036517 /* OperatorCode.f32x4_sub */: case 1036518 /* OperatorCode.f32x4_mul */: case 1036519 /* OperatorCode.f32x4_div */: case 1036520 /* OperatorCode.f32x4_min */: case 1036521 /* OperatorCode.f32x4_max */: case 1036522 /* OperatorCode.f32x4_pmin */: case 1036523 /* OperatorCode.f32x4_pmax */: case 1036524 /* OperatorCode.f64x2_abs */: case 1036525 /* OperatorCode.f64x2_neg */: case 1036527 /* OperatorCode.f64x2_sqrt */: case 1036528 /* OperatorCode.f64x2_add */: case 1036529 /* OperatorCode.f64x2_sub */: case 1036530 /* OperatorCode.f64x2_mul */: case 1036531 /* OperatorCode.f64x2_div */: case 1036532 /* OperatorCode.f64x2_min */: case 1036533 /* OperatorCode.f64x2_max */: case 1036534 /* OperatorCode.f64x2_pmin */: case 1036535 /* OperatorCode.f64x2_pmax */: case 1036536 /* OperatorCode.i32x4_trunc_sat_f32x4_s */: case 1036537 /* OperatorCode.i32x4_trunc_sat_f32x4_u */: case 1036538 /* OperatorCode.f32x4_convert_i32x4_s */: case 1036539 /* OperatorCode.f32x4_convert_i32x4_u */: case 1036540 /* OperatorCode.i32x4_trunc_sat_f64x2_s_zero */: case 1036541 /* OperatorCode.i32x4_trunc_sat_f64x2_u_zero */: case 1036542 /* OperatorCode.f64x2_convert_low_i32x4_s */: case 1036543 /* OperatorCode.f64x2_convert_low_i32x4_u */: break; case 1036544 /* OperatorCode.i8x16_relaxed_swizzle */: case 1036545 /* OperatorCode.i32x4_relaxed_trunc_f32x4_s */: case 1036546 /* OperatorCode.i32x4_relaxed_trunc_f32x4_u */: case 1036547 /* OperatorCode.i32x4_relaxed_trunc_f64x2_s_zero */: case 1036548 /* OperatorCode.i32x4_relaxed_trunc_f64x2_u_zero */: case 1036549 /* OperatorCode.f32x4_relaxed_madd */: case 1036550 /* OperatorCode.f32x4_relaxed_nmadd */: case 1036551 /* OperatorCode.f64x2_relaxed_madd */: case 1036552 /* OperatorCode.f64x2_relaxed_nmadd */: case 1036553 /* OperatorCode.i8x16_relaxed_laneselect */: case 1036554 /* OperatorCode.i16x8_relaxed_laneselect */: case 1036555 /* OperatorCode.i32x4_relaxed_laneselect */: case 1036556 /* OperatorCode.i64x2_relaxed_laneselect */: case 1036557 /* OperatorCode.f32x4_relaxed_min */: case 1036558 /* OperatorCode.f32x4_relaxed_max */: case 1036559 /* OperatorCode.f64x2_relaxed_min */: case 1036560 /* OperatorCode.f64x2_relaxed_max */: case 1036561 /* OperatorCode.i16x8_relaxed_q15mulr_s */: case 1036562 /* OperatorCode.i16x8_relaxed_dot_i8x16_i7x16_s */: case 1036563 /* OperatorCode.i32x4_relaxed_dot_i8x16_i7x16_add_s */: break; default: this.error = new Error("Unknown operator: 0x".concat(code.toString(16).padStart(4, "0"))); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} this.result = {
code: code,
blockType: undefined,
selectType: undefined,
refType: undefined,
srcType: undefined,
brDepth: undefined,
brTable: undefined,
funcIndex: undefined,
typeIndex: undefined,
localIndex: undefined,
globalIndex: undefined,
fieldIndex: undefined,
memoryAddress: memoryAddress,
literal: literal,
segmentIndex: undefined,
destinationIndex: undefined,
len: undefined,
lines: lines,
lineIndex: lineIndex,
}; returntrue;
};
BinaryReader.prototype.readCodeOperator_0xfe = function () { var MAX_CODE_OPERATOR_0XFE_SIZE = 11; var pos = this._pos; if (!this._eof && pos + MAX_CODE_OPERATOR_0XFE_SIZE > this._length) { returnfalse;
} if (!this.hasVarIntBytes()) { returnfalse;
} var code = this.readVarUint32() | 0xfe00; var memoryAddress; switch (code) { case 65024 /* OperatorCode.memory_atomic_notify */: case 65025 /* OperatorCode.memory_atomic_wait32 */: case 65026 /* OperatorCode.memory_atomic_wait64 */: case 65040 /* OperatorCode.i32_atomic_load */: case 65041 /* OperatorCode.i64_atomic_load */: case 65042 /* OperatorCode.i32_atomic_load8_u */: case 65043 /* OperatorCode.i32_atomic_load16_u */: case 65044 /* OperatorCode.i64_atomic_load8_u */: case 65045 /* OperatorCode.i64_atomic_load16_u */: case 65046 /* OperatorCode.i64_atomic_load32_u */: case 65047 /* OperatorCode.i32_atomic_store */: case 65048 /* OperatorCode.i64_atomic_store */: case 65049 /* OperatorCode.i32_atomic_store8 */: case 65050 /* OperatorCode.i32_atomic_store16 */: case 65051 /* OperatorCode.i64_atomic_store8 */: case 65052 /* OperatorCode.i64_atomic_store16 */: case 65053 /* OperatorCode.i64_atomic_store32 */: case 65054 /* OperatorCode.i32_atomic_rmw_add */: case 65055 /* OperatorCode.i64_atomic_rmw_add */: case 65056 /* OperatorCode.i32_atomic_rmw8_add_u */: case 65057 /* OperatorCode.i32_atomic_rmw16_add_u */: case 65058 /* OperatorCode.i64_atomic_rmw8_add_u */: case 65059 /* OperatorCode.i64_atomic_rmw16_add_u */: case 65060 /* OperatorCode.i64_atomic_rmw32_add_u */: case 65061 /* OperatorCode.i32_atomic_rmw_sub */: case 65062 /* OperatorCode.i64_atomic_rmw_sub */: case 65063 /* OperatorCode.i32_atomic_rmw8_sub_u */: case 65064 /* OperatorCode.i32_atomic_rmw16_sub_u */: case 65065 /* OperatorCode.i64_atomic_rmw8_sub_u */: case 65066 /* OperatorCode.i64_atomic_rmw16_sub_u */: case 65067 /* OperatorCode.i64_atomic_rmw32_sub_u */: case 65068 /* OperatorCode.i32_atomic_rmw_and */: case 65069 /* OperatorCode.i64_atomic_rmw_and */: case 65070 /* OperatorCode.i32_atomic_rmw8_and_u */: case 65071 /* OperatorCode.i32_atomic_rmw16_and_u */: case 65072 /* OperatorCode.i64_atomic_rmw8_and_u */: case 65073 /* OperatorCode.i64_atomic_rmw16_and_u */: case 65074 /* OperatorCode.i64_atomic_rmw32_and_u */: case 65075 /* OperatorCode.i32_atomic_rmw_or */: case 65076 /* OperatorCode.i64_atomic_rmw_or */: case 65077 /* OperatorCode.i32_atomic_rmw8_or_u */: case 65078 /* OperatorCode.i32_atomic_rmw16_or_u */: case 65079 /* OperatorCode.i64_atomic_rmw8_or_u */: case 65080 /* OperatorCode.i64_atomic_rmw16_or_u */: case 65081 /* OperatorCode.i64_atomic_rmw32_or_u */: case 65082 /* OperatorCode.i32_atomic_rmw_xor */: case 65083 /* OperatorCode.i64_atomic_rmw_xor */: case 65084 /* OperatorCode.i32_atomic_rmw8_xor_u */: case 65085 /* OperatorCode.i32_atomic_rmw16_xor_u */: case 65086 /* OperatorCode.i64_atomic_rmw8_xor_u */: case 65087 /* OperatorCode.i64_atomic_rmw16_xor_u */: case 65088 /* OperatorCode.i64_atomic_rmw32_xor_u */: case 65089 /* OperatorCode.i32_atomic_rmw_xchg */: case 65090 /* OperatorCode.i64_atomic_rmw_xchg */: case 65091 /* OperatorCode.i32_atomic_rmw8_xchg_u */: case 65092 /* OperatorCode.i32_atomic_rmw16_xchg_u */: case 65093 /* OperatorCode.i64_atomic_rmw8_xchg_u */: case 65094 /* OperatorCode.i64_atomic_rmw16_xchg_u */: case 65095 /* OperatorCode.i64_atomic_rmw32_xchg_u */: case 65096 /* OperatorCode.i32_atomic_rmw_cmpxchg */: case 65097 /* OperatorCode.i64_atomic_rmw_cmpxchg */: case 65098 /* OperatorCode.i32_atomic_rmw8_cmpxchg_u */: case 65099 /* OperatorCode.i32_atomic_rmw16_cmpxchg_u */: case 65100 /* OperatorCode.i64_atomic_rmw8_cmpxchg_u */: case 65101 /* OperatorCode.i64_atomic_rmw16_cmpxchg_u */: case 65102 /* OperatorCode.i64_atomic_rmw32_cmpxchg_u */:
memoryAddress = this.readMemoryImmediate(); break; case 65027 /* OperatorCode.atomic_fence */: { var consistency_model = this.readUint8(); if (consistency_model != 0) { this.error = new Error("atomic.fence consistency model must be 0"); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} break;
} default: this.error = new Error("Unknown operator: 0x".concat(code.toString(16).padStart(4, "0"))); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} this.result = {
code: code,
blockType: undefined,
selectType: undefined,
refType: undefined,
srcType: undefined,
brDepth: undefined,
brTable: undefined,
funcIndex: undefined,
typeIndex: undefined,
localIndex: undefined,
globalIndex: undefined,
fieldIndex: undefined,
memoryAddress: memoryAddress,
literal: undefined,
segmentIndex: undefined,
destinationIndex: undefined,
len: undefined,
lines: undefined,
lineIndex: undefined,
}; returntrue;
};
BinaryReader.prototype.readCodeOperator = function () { switch (this.state) { case 30 /* BinaryReaderState.CODE_OPERATOR */: if (this._pos >= this._functionRange.end) { this.skipFunctionBody(); returnthis.read();
} break; case 26 /* BinaryReaderState.INIT_EXPRESSION_OPERATOR */: if (this.result && this.result.code === 11 /* OperatorCode.end */) { this.state = 27 /* BinaryReaderState.END_INIT_EXPRESSION_BODY */; this.result = null; returntrue;
} break; case 45 /* BinaryReaderState.OFFSET_EXPRESSION_OPERATOR */: if (this.result && this.result.code === 11 /* OperatorCode.end */) { this.state = 46 /* BinaryReaderState.END_OFFSET_EXPRESSION_BODY */; this.result = null; returntrue;
} break;
} var code, blockType, selectType, refType, brDepth, brTable, tryTable, relativeDepth, funcIndex, typeIndex, tableIndex, localIndex, globalIndex, tagIndex, memoryAddress, literal, reserved; if (this.state === 26 /* BinaryReaderState.INIT_EXPRESSION_OPERATOR */ && this._sectionId === 9 /* SectionCode.Element */ &&
isExternvalElementSegmentType(this._segmentType)) { // We are reading a `vec(funcidx)` here, which is a dense encoding // for a sequence of `((ref.func y) end)` instructions. if (this.result && this.result.code === 210 /* OperatorCode.ref_func */) {
code = 11 /* OperatorCode.end */;
} else { if (!this.hasVarIntBytes()) returnfalse;
code = 210 /* OperatorCode.ref_func */;
funcIndex = this.readVarUint32();
}
} else { var MAX_CODE_OPERATOR_SIZE = 11; // i64.const or load/store var pos = this._pos; if (!this._eof && pos + MAX_CODE_OPERATOR_SIZE > this._length) { returnfalse;
}
code = this._data[this._pos++]; switch (code) { case 2 /* OperatorCode.block */: case 3 /* OperatorCode.loop */: case 4 /* OperatorCode.if */: case 6 /* OperatorCode.try */:
blockType = this.readType(); break; case 12 /* OperatorCode.br */: case 13 /* OperatorCode.br_if */: case 213 /* OperatorCode.br_on_null */: case 214 /* OperatorCode.br_on_non_null */:
brDepth = this.readVarUint32(); break; case 14 /* OperatorCode.br_table */: var tableCount = this.readVarUint32(); if (!this.hasBytes(tableCount + 1)) { // We need at least (tableCount + 1) bytes this._pos = pos; returnfalse;
}
brTable = []; for (var i = 0; i <= tableCount; i++) { // including default if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
}
brTable.push(this.readVarUint32());
} break; case 9 /* OperatorCode.rethrow */: case 24 /* OperatorCode.delegate */:
relativeDepth = this.readVarUint32(); break; case 7 /* OperatorCode.catch */: case 8 /* OperatorCode.throw */:
tagIndex = this.readVarInt32(); break; case 31 /* OperatorCode.try_table */:
blockType = this.readType(); var tableCount = this.readVarUint32(); if (!this.hasBytes(2 * tableCount)) { // We need at least (2 * tableCount) bytes this._pos = pos; returnfalse;
}
tryTable = []; for (var i = 0; i < tableCount; i++) { if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
} var kind = this.readVarUint32(); var tagIndex; if (kind == CatchHandlerKind.Catch ||
kind == CatchHandlerKind.CatchRef) { if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
}
tagIndex = this.readVarUint32();
} if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
} var depth = this.readVarUint32();
tryTable.push({ kind: kind, depth: depth, tagIndex: tagIndex });
} break; case 208 /* OperatorCode.ref_null */:
refType = this.readHeapType(); break; case 16 /* OperatorCode.call */: case 18 /* OperatorCode.return_call */: case 210 /* OperatorCode.ref_func */:
funcIndex = this.readVarUint32(); break; case 17 /* OperatorCode.call_indirect */: case 19 /* OperatorCode.return_call_indirect */:
typeIndex = this.readVarUint32();
reserved = this.readVarUint1(); break; case 32 /* OperatorCode.local_get */: case 33 /* OperatorCode.local_set */: case 34 /* OperatorCode.local_tee */:
localIndex = this.readVarUint32(); break; case 35 /* OperatorCode.global_get */: case 36 /* OperatorCode.global_set */:
globalIndex = this.readVarUint32(); break; case 37 /* OperatorCode.table_get */: case 38 /* OperatorCode.table_set */:
tableIndex = this.readVarUint32(); break; case 20 /* OperatorCode.call_ref */: case 21 /* OperatorCode.return_call_ref */:
typeIndex = this.readHeapType(); break; case 40 /* OperatorCode.i32_load */: case 41 /* OperatorCode.i64_load */: case 42 /* OperatorCode.f32_load */: case 43 /* OperatorCode.f64_load */: case 44 /* OperatorCode.i32_load8_s */: case 45 /* OperatorCode.i32_load8_u */: case 46 /* OperatorCode.i32_load16_s */: case 47 /* OperatorCode.i32_load16_u */: case 48 /* OperatorCode.i64_load8_s */: case 49 /* OperatorCode.i64_load8_u */: case 50 /* OperatorCode.i64_load16_s */: case 51 /* OperatorCode.i64_load16_u */: case 52 /* OperatorCode.i64_load32_s */: case 53 /* OperatorCode.i64_load32_u */: case 54 /* OperatorCode.i32_store */: case 55 /* OperatorCode.i64_store */: case 56 /* OperatorCode.f32_store */: case 57 /* OperatorCode.f64_store */: case 58 /* OperatorCode.i32_store8 */: case 59 /* OperatorCode.i32_store16 */: case 60 /* OperatorCode.i64_store8 */: case 61 /* OperatorCode.i64_store16 */: case 62 /* OperatorCode.i64_store32 */:
memoryAddress = this.readMemoryImmediate(); break; case 63 /* OperatorCode.memory_size */: case 64 /* OperatorCode.memory_grow */:
reserved = this.readVarUint1(); break; case 65 /* OperatorCode.i32_const */:
literal = this.readVarInt32(); break; case 66 /* OperatorCode.i64_const */:
literal = this.readVarInt64(); break; case 67 /* OperatorCode.f32_const */:
literal = new DataView(this._data.buffer, this._data.byteOffset).getFloat32(this._pos, true); this._pos += 4; break; case 68 /* OperatorCode.f64_const */:
literal = new DataView(this._data.buffer, this._data.byteOffset).getFloat64(this._pos, true); this._pos += 8; break; case 28 /* OperatorCode.select_with_type */: var num_types = this.readVarInt32(); // Only 1 is a valid value currently. if (num_types == 1) {
selectType = this.readType();
} break; case 251 /* OperatorCode.prefix_0xfb */: if (this.readCodeOperator_0xfb()) { returntrue;
} this._pos = pos; returnfalse; case 252 /* OperatorCode.prefix_0xfc */: if (this.readCodeOperator_0xfc()) { returntrue;
} this._pos = pos; returnfalse; case 253 /* OperatorCode.prefix_0xfd */: if (this.readCodeOperator_0xfd()) { returntrue;
} this._pos = pos; returnfalse; case 254 /* OperatorCode.prefix_0xfe */: if (this.readCodeOperator_0xfe()) { returntrue;
} this._pos = pos; returnfalse; case 0 /* OperatorCode.unreachable */: case 1 /* OperatorCode.nop */: case 5 /* OperatorCode.else */: case 11 /* OperatorCode.end */: case 15 /* OperatorCode.return */: case 25 /* OperatorCode.catch_all */: case 26 /* OperatorCode.drop */: case 27 /* OperatorCode.select */: case 69 /* OperatorCode.i32_eqz */: case 70 /* OperatorCode.i32_eq */: case 71 /* OperatorCode.i32_ne */: case 72 /* OperatorCode.i32_lt_s */: case 73 /* OperatorCode.i32_lt_u */: case 74 /* OperatorCode.i32_gt_s */: case 75 /* OperatorCode.i32_gt_u */: case 76 /* OperatorCode.i32_le_s */: case 77 /* OperatorCode.i32_le_u */: case 78 /* OperatorCode.i32_ge_s */: case 79 /* OperatorCode.i32_ge_u */: case 80 /* OperatorCode.i64_eqz */: case 81 /* OperatorCode.i64_eq */: case 82 /* OperatorCode.i64_ne */: case 83 /* OperatorCode.i64_lt_s */: case 84 /* OperatorCode.i64_lt_u */: case 85 /* OperatorCode.i64_gt_s */: case 86 /* OperatorCode.i64_gt_u */: case 87 /* OperatorCode.i64_le_s */: case 88 /* OperatorCode.i64_le_u */: case 89 /* OperatorCode.i64_ge_s */: case 90 /* OperatorCode.i64_ge_u */: case 91 /* OperatorCode.f32_eq */: case 92 /* OperatorCode.f32_ne */: case 93 /* OperatorCode.f32_lt */: case 94 /* OperatorCode.f32_gt */: case 95 /* OperatorCode.f32_le */: case 96 /* OperatorCode.f32_ge */: case 97 /* OperatorCode.f64_eq */: case 98 /* OperatorCode.f64_ne */: case 99 /* OperatorCode.f64_lt */: case 100 /* OperatorCode.f64_gt */: case 101 /* OperatorCode.f64_le */: case 102 /* OperatorCode.f64_ge */: case 103 /* OperatorCode.i32_clz */: case 104 /* OperatorCode.i32_ctz */: case 105 /* OperatorCode.i32_popcnt */: case 106 /* OperatorCode.i32_add */: case 107 /* OperatorCode.i32_sub */: case 108 /* OperatorCode.i32_mul */: case 109 /* OperatorCode.i32_div_s */: case 110 /* OperatorCode.i32_div_u */: case 111 /* OperatorCode.i32_rem_s */: case 112 /* OperatorCode.i32_rem_u */: case 113 /* OperatorCode.i32_and */: case 114 /* OperatorCode.i32_or */: case 115 /* OperatorCode.i32_xor */: case 116 /* OperatorCode.i32_shl */: case 117 /* OperatorCode.i32_shr_s */: case 118 /* OperatorCode.i32_shr_u */: case 119 /* OperatorCode.i32_rotl */: case 120 /* OperatorCode.i32_rotr */: case 121 /* OperatorCode.i64_clz */: case 122 /* OperatorCode.i64_ctz */: case 123 /* OperatorCode.i64_popcnt */: case 124 /* OperatorCode.i64_add */: case 125 /* OperatorCode.i64_sub */: case 126 /* OperatorCode.i64_mul */: case 127 /* OperatorCode.i64_div_s */: case 128 /* OperatorCode.i64_div_u */: case 129 /* OperatorCode.i64_rem_s */: case 130 /* OperatorCode.i64_rem_u */: case 131 /* OperatorCode.i64_and */: case 132 /* OperatorCode.i64_or */: case 133 /* OperatorCode.i64_xor */: case 134 /* OperatorCode.i64_shl */: case 135 /* OperatorCode.i64_shr_s */: case 136 /* OperatorCode.i64_shr_u */: case 137 /* OperatorCode.i64_rotl */: case 138 /* OperatorCode.i64_rotr */: case 139 /* OperatorCode.f32_abs */: case 140 /* OperatorCode.f32_neg */: case 141 /* OperatorCode.f32_ceil */: case 142 /* OperatorCode.f32_floor */: case 143 /* OperatorCode.f32_trunc */: case 144 /* OperatorCode.f32_nearest */: case 145 /* OperatorCode.f32_sqrt */: case 146 /* OperatorCode.f32_add */: case 147 /* OperatorCode.f32_sub */: case 148 /* OperatorCode.f32_mul */: case 149 /* OperatorCode.f32_div */: case 150 /* OperatorCode.f32_min */: case 151 /* OperatorCode.f32_max */: case 152 /* OperatorCode.f32_copysign */: case 153 /* OperatorCode.f64_abs */: case 154 /* OperatorCode.f64_neg */: case 155 /* OperatorCode.f64_ceil */: case 156 /* OperatorCode.f64_floor */: case 157 /* OperatorCode.f64_trunc */: case 158 /* OperatorCode.f64_nearest */: case 159 /* OperatorCode.f64_sqrt */: case 160 /* OperatorCode.f64_add */: case 161 /* OperatorCode.f64_sub */: case 162 /* OperatorCode.f64_mul */: case 163 /* OperatorCode.f64_div */: case 164 /* OperatorCode.f64_min */: case 165 /* OperatorCode.f64_max */: case 166 /* OperatorCode.f64_copysign */: case 167 /* OperatorCode.i32_wrap_i64 */: case 168 /* OperatorCode.i32_trunc_f32_s */: case 169 /* OperatorCode.i32_trunc_f32_u */: case 170 /* OperatorCode.i32_trunc_f64_s */: case 171 /* OperatorCode.i32_trunc_f64_u */: case 172 /* OperatorCode.i64_extend_i32_s */: case 173 /* OperatorCode.i64_extend_i32_u */: case 174 /* OperatorCode.i64_trunc_f32_s */: case 175 /* OperatorCode.i64_trunc_f32_u */: case 176 /* OperatorCode.i64_trunc_f64_s */: case 177 /* OperatorCode.i64_trunc_f64_u */: case 178 /* OperatorCode.f32_convert_i32_s */: case 179 /* OperatorCode.f32_convert_i32_u */: case 180 /* OperatorCode.f32_convert_i64_s */: case 181 /* OperatorCode.f32_convert_i64_u */: case 182 /* OperatorCode.f32_demote_f64 */: case 183 /* OperatorCode.f64_convert_i32_s */: case 184 /* OperatorCode.f64_convert_i32_u */: case 185 /* OperatorCode.f64_convert_i64_s */: case 186 /* OperatorCode.f64_convert_i64_u */: case 187 /* OperatorCode.f64_promote_f32 */: case 188 /* OperatorCode.i32_reinterpret_f32 */: case 189 /* OperatorCode.i64_reinterpret_f64 */: case 190 /* OperatorCode.f32_reinterpret_i32 */: case 191 /* OperatorCode.f64_reinterpret_i64 */: case 192 /* OperatorCode.i32_extend8_s */: case 193 /* OperatorCode.i32_extend16_s */: case 194 /* OperatorCode.i64_extend8_s */: case 195 /* OperatorCode.i64_extend16_s */: case 196 /* OperatorCode.i64_extend32_s */: case 209 /* OperatorCode.ref_is_null */: case 212 /* OperatorCode.ref_as_non_null */: case 211 /* OperatorCode.ref_eq */: case 10 /* OperatorCode.throw_ref */: break; default: this.error = new Error("Unknown operator: ".concat(code)); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
}
} this.result = {
code: code,
blockType: blockType,
selectType: selectType,
refType: refType,
srcType: undefined,
brDepth: brDepth,
brTable: brTable,
tryTable: tryTable,
relativeDepth: relativeDepth,
tableIndex: tableIndex,
funcIndex: funcIndex,
typeIndex: typeIndex,
localIndex: localIndex,
globalIndex: globalIndex,
fieldIndex: undefined,
tagIndex: tagIndex,
memoryAddress: memoryAddress,
literal: literal,
segmentIndex: undefined,
destinationIndex: undefined,
len: undefined,
lines: undefined,
lineIndex: undefined,
}; returntrue;
};
BinaryReader.prototype.readFunctionBody = function () { if (this._sectionEntriesLeft === 0) { this.skipSection(); returnthis.read();
} if (!this.hasVarIntBytes()) returnfalse; var pos = this._pos; var size = this.readVarUint32(); var bodyEnd = this._pos + size; if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
} var localCount = this.readVarUint32(); var locals = []; for (var i = 0; i < localCount; i++) { if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
} var count = this.readVarUint32(); if (!this.hasVarIntBytes()) { this._pos = pos; returnfalse;
} var type = this.readType();
locals.push({ count: count, type: type });
} var bodyStart = this._pos; this.state = 28 /* BinaryReaderState.BEGIN_FUNCTION_BODY */; this.result = {
locals: locals,
}; this._functionRange = new DataRange(bodyStart, bodyEnd); this._sectionEntriesLeft--; returntrue;
};
BinaryReader.prototype.readSectionHeader = function () { if (this._pos >= this._length && this._eof) { this._sectionId = -1 /* SectionCode.Unknown */; this._sectionRange = null; this.result = null; this.state = 2 /* BinaryReaderState.END_WASM */; returntrue;
} // TODO: Handle _eof. if (this._pos < this._length - 4) { var magicNumber = this.peekInt32(); if (magicNumber === WASM_MAGIC_NUMBER) { this._sectionId = -1 /* SectionCode.Unknown */; this._sectionRange = null; this.result = null; this.state = 2 /* BinaryReaderState.END_WASM */; returntrue;
}
} if (!this.hasVarIntBytes()) returnfalse; var sectionStart = this._pos; var id = this.readVarUint7(); if (!this.hasVarIntBytes()) { this._pos = sectionStart; returnfalse;
} var payloadLength = this.readVarUint32(); var name = null; var payloadEnd = this._pos + payloadLength; if (id == 0) { if (!this.hasStringBytes()) { this._pos = sectionStart; returnfalse;
}
name = this.readStringBytes();
} this.result = { id: id, name: name }; this._sectionId = id; this._sectionRange = new DataRange(this._pos, payloadEnd); this.state = 3 /* BinaryReaderState.BEGIN_SECTION */; returntrue;
};
BinaryReader.prototype.readSectionRawData = function () { var payloadLength = this._sectionRange.end - this._sectionRange.start; if (!this.hasBytes(payloadLength)) { returnfalse;
} this.state = 7 /* BinaryReaderState.SECTION_RAW_DATA */; this.result = this.readBytes(payloadLength); returntrue;
};
BinaryReader.prototype.readSectionBody = function () { if (this._pos >= this._sectionRange.end) { this.result = null; this.state = 4 /* BinaryReaderState.END_SECTION */; this._sectionId = -1 /* SectionCode.Unknown */; this._sectionRange = null; returntrue;
} var currentSection = this.result; switch (currentSection.id) { case 1 /* SectionCode.Type */: if (!this.hasSectionPayload()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); this._recGroupTypesLeft = -1; returnthis.readTypeEntry(); case 2 /* SectionCode.Import */: if (!this.hasSectionPayload()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readImportEntry(); case 7 /* SectionCode.Export */: if (!this.hasSectionPayload()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readExportEntry(); case 3 /* SectionCode.Function */: if (!this.hasSectionPayload()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readFunctionEntry(); case 4 /* SectionCode.Table */: if (!this.hasSectionPayload()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readTableEntry(); case 5 /* SectionCode.Memory */: if (!this.hasSectionPayload()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readMemoryEntry(); case 6 /* SectionCode.Global */: if (!this.hasVarIntBytes()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readGlobalEntry(); case 8 /* SectionCode.Start */: if (!this.hasVarIntBytes()) returnfalse; this.state = 22 /* BinaryReaderState.START_SECTION_ENTRY */; this.result = { index: this.readVarUint32() }; returntrue; case 10 /* SectionCode.Code */: if (!this.hasVarIntBytes()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); this.state = 29 /* BinaryReaderState.READING_FUNCTION_HEADER */; returnthis.readFunctionBody(); case 9 /* SectionCode.Element */: if (!this.hasVarIntBytes()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readElementEntry(); case 11 /* SectionCode.Data */: if (!this.hasVarIntBytes()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readDataEntry(); case 12 /* SectionCode.DataCount */: if (!this.hasVarIntBytes()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readDataCountEntry(); case 13 /* SectionCode.Tag */: if (!this.hasVarIntBytes()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readTagEntry(); case 0 /* SectionCode.Custom */: var customSectionName = (0, exports.bytesToString)(currentSection.name); if (customSectionName === "name") { returnthis.readNameEntry();
} if (customSectionName.indexOf("reloc.") === 0) { returnthis.readRelocHeader();
} if (customSectionName === "linking") { if (!this.hasVarIntBytes()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readLinkingEntry();
} if (customSectionName === "sourceMappingURL") { returnthis.readSourceMappingURL();
} returnthis.readSectionRawData(); default: this.error = new Error("Unsupported section: ".concat(this._sectionId)); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
}
};
BinaryReader.prototype.read = function () { switch (this.state) { case 0 /* BinaryReaderState.INITIAL */: if (!this.hasBytes(8)) returnfalse; var magicNumber = this.readUint32(); if (magicNumber != WASM_MAGIC_NUMBER) { this.error = new Error("Bad magic number"); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} var version = this.readUint32(); if (version != WASM_SUPPORTED_VERSION &&
version != WASM_SUPPORTED_EXPERIMENTAL_VERSION) { this.error = new Error("Bad version number ".concat(version)); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
} this.result = { magicNumber: magicNumber, version: version }; this.state = 1 /* BinaryReaderState.BEGIN_WASM */; returntrue; case 2 /* BinaryReaderState.END_WASM */: this.result = null; this.state = 1 /* BinaryReaderState.BEGIN_WASM */; if (this.hasMoreBytes()) { this.state = 0 /* BinaryReaderState.INITIAL */; returnthis.read();
} returnfalse; case -1 /* BinaryReaderState.ERROR */: returntrue; case 1 /* BinaryReaderState.BEGIN_WASM */: case 4 /* BinaryReaderState.END_SECTION */: returnthis.readSectionHeader(); case 3 /* BinaryReaderState.BEGIN_SECTION */: returnthis.readSectionBody(); case 5 /* BinaryReaderState.SKIPPING_SECTION */: if (!this.hasSectionPayload()) { returnfalse;
} this.state = 4 /* BinaryReaderState.END_SECTION */; this._pos = this._sectionRange.end; this._sectionId = -1 /* SectionCode.Unknown */; this._sectionRange = null; this.result = null; returntrue; case 32 /* BinaryReaderState.SKIPPING_FUNCTION_BODY */: this.state = 31 /* BinaryReaderState.END_FUNCTION_BODY */; this._pos = this._functionRange.end; this._functionRange = null; this.result = null; returntrue; case 11 /* BinaryReaderState.TYPE_SECTION_ENTRY */: if (this._recGroupTypesLeft >= 0) { returnthis.readRecGroupEntry();
} returnthis.readTypeEntry(); case 47 /* BinaryReaderState.BEGIN_REC_GROUP */: returnthis.readRecGroupEntry(); case 48 /* BinaryReaderState.END_REC_GROUP */: returnthis.readTypeEntry(); case 12 /* BinaryReaderState.IMPORT_SECTION_ENTRY */: returnthis.readImportEntry(); case 17 /* BinaryReaderState.EXPORT_SECTION_ENTRY */: returnthis.readExportEntry(); case 13 /* BinaryReaderState.FUNCTION_SECTION_ENTRY */: returnthis.readFunctionEntry(); case 14 /* BinaryReaderState.TABLE_SECTION_ENTRY */: returnthis.readTableEntry(); case 15 /* BinaryReaderState.MEMORY_SECTION_ENTRY */: returnthis.readMemoryEntry(); case 23 /* BinaryReaderState.TAG_SECTION_ENTRY */: returnthis.readTagEntry(); case 16 /* BinaryReaderState.GLOBAL_SECTION_ENTRY */: case 40 /* BinaryReaderState.END_GLOBAL_SECTION_ENTRY */: returnthis.readGlobalEntry(); case 39 /* BinaryReaderState.BEGIN_GLOBAL_SECTION_ENTRY */: returnthis.readInitExpressionBody(); case 20 /* BinaryReaderState.ELEMENT_SECTION_ENTRY */: case 35 /* BinaryReaderState.END_ELEMENT_SECTION_ENTRY */: returnthis.readElementEntry(); case 33 /* BinaryReaderState.BEGIN_ELEMENT_SECTION_ENTRY */: if (isActiveElementSegmentType(this._segmentType)) { returnthis.readOffsetExpressionBody();
} else { // passive or declared element segment returnthis.readElementEntryBody();
} case 34 /* BinaryReaderState.ELEMENT_SECTION_ENTRY_BODY */: if (!this.hasVarIntBytes()) returnfalse; this._segmentEntriesLeft = this.readVarUint32(); if (this._segmentEntriesLeft === 0) { this.state = 35 /* BinaryReaderState.END_ELEMENT_SECTION_ENTRY */; this.result = null; returntrue;
} returnthis.readInitExpressionBody(); case 49 /* BinaryReaderState.DATA_COUNT_SECTION_ENTRY */: returnthis.readDataCountEntry(); case 18 /* BinaryReaderState.DATA_SECTION_ENTRY */: case 38 /* BinaryReaderState.END_DATA_SECTION_ENTRY */: returnthis.readDataEntry(); case 36 /* BinaryReaderState.BEGIN_DATA_SECTION_ENTRY */: if (isActiveDataSegmentType(this._segmentType)) { returnthis.readOffsetExpressionBody();
} else { // passive data segment returnthis.readDataEntryBody();
} case 37 /* BinaryReaderState.DATA_SECTION_ENTRY_BODY */: this.state = 38 /* BinaryReaderState.END_DATA_SECTION_ENTRY */; this.result = null; returntrue; case 27 /* BinaryReaderState.END_INIT_EXPRESSION_BODY */: switch (this._sectionId) { case 6 /* SectionCode.Global */: this.state = 40 /* BinaryReaderState.END_GLOBAL_SECTION_ENTRY */; returntrue; case 9 /* SectionCode.Element */: if (--this._segmentEntriesLeft > 0) { returnthis.readInitExpressionBody();
} this.state = 35 /* BinaryReaderState.END_ELEMENT_SECTION_ENTRY */; this.result = null; returntrue;
} this.error = new Error("Unexpected section type: ".concat(this._sectionId)); this.state = -1 /* BinaryReaderState.ERROR */; returntrue; case 46 /* BinaryReaderState.END_OFFSET_EXPRESSION_BODY */: if (this._sectionId === 11 /* SectionCode.Data */) { returnthis.readDataEntryBody();
} else { returnthis.readElementEntryBody();
} case 19 /* BinaryReaderState.NAME_SECTION_ENTRY */: returnthis.readNameEntry(); case 41 /* BinaryReaderState.RELOC_SECTION_HEADER */: if (!this.hasVarIntBytes()) returnfalse; this._sectionEntriesLeft = this.readVarUint32(); returnthis.readRelocEntry(); case 21 /* BinaryReaderState.LINKING_SECTION_ENTRY */: returnthis.readLinkingEntry(); case 43 /* BinaryReaderState.SOURCE_MAPPING_URL */: this.state = 4 /* BinaryReaderState.END_SECTION */; this.result = null; returntrue; case 42 /* BinaryReaderState.RELOC_SECTION_ENTRY */: returnthis.readRelocEntry(); case 29 /* BinaryReaderState.READING_FUNCTION_HEADER */: case 31 /* BinaryReaderState.END_FUNCTION_BODY */: returnthis.readFunctionBody(); case 28 /* BinaryReaderState.BEGIN_FUNCTION_BODY */: this.state = 30 /* BinaryReaderState.CODE_OPERATOR */; returnthis.readCodeOperator(); case 25 /* BinaryReaderState.BEGIN_INIT_EXPRESSION_BODY */: this.state = 26 /* BinaryReaderState.INIT_EXPRESSION_OPERATOR */; returnthis.readCodeOperator(); case 44 /* BinaryReaderState.BEGIN_OFFSET_EXPRESSION_BODY */: this.state = 45 /* BinaryReaderState.OFFSET_EXPRESSION_OPERATOR */; returnthis.readCodeOperator(); case 30 /* BinaryReaderState.CODE_OPERATOR */: case 26 /* BinaryReaderState.INIT_EXPRESSION_OPERATOR */: case 45 /* BinaryReaderState.OFFSET_EXPRESSION_OPERATOR */: returnthis.readCodeOperator(); case 6 /* BinaryReaderState.READING_SECTION_RAW_DATA */: returnthis.readSectionRawData(); case 22 /* BinaryReaderState.START_SECTION_ENTRY */: case 7 /* BinaryReaderState.SECTION_RAW_DATA */: this.state = 4 /* BinaryReaderState.END_SECTION */; this.result = null; returntrue; default: this.error = new Error("Unsupported state: ".concat(this.state)); this.state = -1 /* BinaryReaderState.ERROR */; returntrue;
}
};
BinaryReader.prototype.skipSection = function () { if (this.state === -1 /* BinaryReaderState.ERROR */ || this.state === 0 /* BinaryReaderState.INITIAL */ || this.state === 4 /* BinaryReaderState.END_SECTION */ || this.state === 1 /* BinaryReaderState.BEGIN_WASM */ || this.state === 2 /* BinaryReaderState.END_WASM */) return; this.state = 5 /* BinaryReaderState.SKIPPING_SECTION */;
};
BinaryReader.prototype.skipFunctionBody = function () { if (this.state !== 28 /* BinaryReaderState.BEGIN_FUNCTION_BODY */ && this.state !== 30 /* BinaryReaderState.CODE_OPERATOR */) return; this.state = 32 /* BinaryReaderState.SKIPPING_FUNCTION_BODY */;
};
BinaryReader.prototype.skipInitExpression = function () { while (this.state === 26 /* BinaryReaderState.INIT_EXPRESSION_OPERATOR */) this.readCodeOperator();
};
BinaryReader.prototype.fetchSectionRawData = function () { if (this.state !== 3 /* BinaryReaderState.BEGIN_SECTION */) { this.error = new Error("Unsupported state: ".concat(this.state)); this.state = -1 /* BinaryReaderState.ERROR */; return;
} this.state = 6 /* BinaryReaderState.READING_SECTION_RAW_DATA */;
}; return BinaryReader;
}());
exports.BinaryReader = BinaryReader; if (typeof TextDecoder !== "undefined") { try {
exports.bytesToString = (function () { var utf8Decoder = new TextDecoder("utf-8");
utf8Decoder.decode(new Uint8Array([97, 208, 144])); returnfunction (b) { return utf8Decoder.decode(b); };
})();
} catch (_) { /* ignore */
}
} if (!exports.bytesToString) {
exports.bytesToString = function (b) { var str = String.fromCharCode.apply(null, b); return decodeURIComponent(escape(str));
};
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.93Bemerkung:
(vorverarbeitet am 2026-05-05)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.