diff --git a/README.md b/README.md index 80d6418..7d3305a 100755 --- a/README.md +++ b/README.md @@ -85,7 +85,42 @@ const { exports } = parse( // exports === ['b'] ``` -### Grammar +### Extended detection + +The third argument selects an opt-in detection mode: + +```js +parse(source, filename, { mode: 'extended' }); +``` + +Omitting the options, using `{}`, or selecting `mode: 'default'` preserves default detection. +An invalid mode throws a `TypeError`. +`allowMinifiedEnumerable` can be used with either mode. +Both modes use the existing lexer and assume valid JavaScript input. +They do not execute the source or validate the complete JavaScript grammar. + +Extended mode detects literal names in `Object.defineProperty` calls regardless of the descriptor expression or getter body. +It also detects names in object literals passed to `Object.defineProperties(exports, ...)` or assigned to `module.exports`. +Object values can contain arbitrary expressions. +Methods, accessors, and computed string literal keys contribute their names. +Parentheses around these object literals are supported. +Parenthesized comma expressions can skip leading identifiers, integer literals, string literals, and empty object literals. +Other comma expressions are not supported. +For `module.exports = ({ a: 1 }, { b: 2 })`, extended mode detects `a`, although the expression evaluates to `{ b: 2 }`. +The same limitation applies to `Object.defineProperties`. +Direct reexport assignments contribute all detected dependencies instead of only the last assignment. +Object spreads of `require('literal')` contribute reexports, but named properties with require-valued expressions do not. + +The result contains syntactic candidates, which can include non-enumerable properties, throwing getters, and unreachable assignments. +Extended mode does not apply the default getter side-effect veto. +It does not resolve bindings or aliases, evaluate computed names, or determine runtime control flow. +Names created by dynamic expressions can therefore remain undetected, and shadowed identifiers can produce false positives. + +Division and regular-expression detection remains heuristic. +Ambiguous cases can cause extended mode's bracket tracking to report parse errors on valid JavaScript. +Selecting extended mode in this package does not change Node.js's built-in CommonJS detection. + +### Grammar (default mode) CommonJS exports matches are run against the source token stream. The grammar below describes default detection. diff --git a/include-wasm/cjs-module-lexer.h b/include-wasm/cjs-module-lexer.h index 3076480..77911fe 100755 --- a/include-wasm/cjs-module-lexer.h +++ b/include-wasm/cjs-module-lexer.h @@ -194,6 +194,8 @@ enum RequireType { void tryBacktrackAddStarExportBinding (uint16_t* pos); bool tryParseRequire (enum RequireType requireType); void tryParseLiteralExports (); +void readExportDefinition (); +void readExportProperty (); bool readExportsOrModuleDotExports (uint16_t ch); void tryParseModuleExportsDotAssign (); void tryParseExportsDotAssign (bool assign); diff --git a/lexer.d.ts b/lexer.d.ts index 6e4ef16..616f952 100755 --- a/lexer.d.ts +++ b/lexer.d.ts @@ -5,6 +5,7 @@ export interface Exports { export interface ParseOptions { allowMinifiedEnumerable?: boolean; + mode?: 'default' | 'extended'; } export declare function parse(source: string, name?: string, options?: ParseOptions): Exports; diff --git a/lexer.js b/lexer.js index 7f0ef63..2217554 100755 --- a/lexer.js +++ b/lexer.js @@ -1,8 +1,11 @@ let source, pos, end; +let extended, exportObjectPos; const STACK_DEPTH = 2048; +const ClassToken = 1; +const ExportObjectToken = 2; const templateStack = new Array(1024); const openTokenPosStack = new Array(1024); -const openClassPosStack = new Array(1024); +const openTokenTypeStack = new Array(1024); let openTokenDepth, templateDepth, lastTokenPos, @@ -41,6 +44,7 @@ const ExportStar = 2; function pushOpenToken (tokenPos) { if (openTokenDepth === STACK_DEPTH) throw new Error('Maximum nesting depth exceeded.'); + if (extended) openTokenTypeStack[openTokenDepth] = 0; openTokenPosStack[openTokenDepth++] = tokenPos; } @@ -48,6 +52,7 @@ function pushTemplate () { if (templateStackDepth === STACK_DEPTH || openTokenDepth === STACK_DEPTH) throw new Error('Maximum nesting depth exceeded.'); templateStack[templateStackDepth++] = templateDepth; + if (extended) openTokenTypeStack[openTokenDepth] = 0; templateDepth = ++openTokenDepth; } @@ -57,9 +62,14 @@ function pushTemplate () { * @param {import('./lexer').ParseOptions} [options] */ function parseCJS (source, name = '@', options) { + const mode = options ? options.mode : undefined; + if (mode !== undefined && mode !== 'default' && mode !== 'extended') + throw new TypeError('Expected options.mode to be "default" or "extended".'); const minifiedEnumerable = options ? options.allowMinifiedEnumerable === true : false; resetState(); allowMinifiedEnumerable = minifiedEnumerable; + extended = mode === 'extended'; + exportObjectPos = -1; try { parseSource(source); } @@ -73,6 +83,7 @@ function parseCJS (source, name = '@', options) { return result; } +/** @param {string} str */ function decode (str) { if (str[0] === '"' || str[0] === '\'') { try { @@ -103,6 +114,7 @@ function decode (str) { } } +/** @param {string} cjsSource */ function parseSource (cjsSource) { source = cjsSource; pos = -1; @@ -201,6 +213,21 @@ function parseSource (cjsSource) { case 40/*(*/: pushOpenToken(lastTokenPos); break; + case 91/*[*/: + if (extended) { + pushOpenToken(lastTokenPos); + } + break; + case 93/*]*/: + if (extended) { + if (openTokenDepth === 0) throw new Error('Unexpected closing bracket.'); + openTokenDepth--; + } + break; + case 44/*,*/: + if (extended && openTokenDepth && (openTokenTypeStack[openTokenDepth - 1] & ExportObjectToken)) + readExportProperty(); + break; case 41/*)*/: if (openTokenDepth === 0) throw new Error('Unexpected closing bracket.'); @@ -208,8 +235,13 @@ function parseSource (cjsSource) { break; case 123/*{*/: pushOpenToken(lastTokenPos); - openClassPosStack[openTokenDepth - 1] = nextBraceIsClass; + openTokenTypeStack[openTokenDepth - 1] = nextBraceIsClass ? ClassToken : 0; nextBraceIsClass = false; + if (extended && pos === exportObjectPos) { + openTokenTypeStack[openTokenDepth - 1] |= ExportObjectToken; + exportObjectPos = -1; + readExportProperty(); + } break; case 125/*}*/: if (openTokenDepth === 0) @@ -252,7 +284,9 @@ function parseSource (cjsSource) { !(lastToken === 46/*.*/ && (source.charCodeAt(lastTokenPos - 1) >= 48/*0*/ && source.charCodeAt(lastTokenPos - 1) <= 57/*9*/)) && !(lastToken === 43/*+*/ && source.charCodeAt(lastTokenPos - 1) === 43/*+*/) && !(lastToken === 45/*-*/ && source.charCodeAt(lastTokenPos - 1) === 45/*-*/) || lastToken === 41/*)*/ && isParenKeyword(openTokenPosStack[openTokenDepth]) || - lastToken === 125/*}*/ && (isExpressionTerminator(openTokenPosStack[openTokenDepth]) || openClassPosStack[openTokenDepth]) || + lastToken === 125/*}*/ && (isExpressionTerminator(openTokenPosStack[openTokenDepth]) || + (openTokenTypeStack[openTokenDepth] & ClassToken) || + extended && isStatementBrace(openTokenPosStack[openTokenDepth], openTokenDepth)) || lastToken === 47/*/*/ && lastSlashWasDivision || isExpressionKeyword(lastTokenPos) || !lastToken) { @@ -379,6 +413,11 @@ function tryParseObjectDefineOrKeys (keys) { if (ch === 46/*.*/) { pos++; ch = commentWhitespace(); + if (extended && ch === 100/*d*/) { + readExportDefinition(); + pos = revertPos; + return; + } if (ch === 100/*d*/ && source.startsWith('efineProperty', pos + 1)) { let expt; while (true) { @@ -919,6 +958,7 @@ function tryParseModuleExportsDotAssign () { pos = revertPos; } +/** @param {boolean} assign */ function tryParseExportsDotAssign (assign) { pos += 7; const revertPos = pos - 1; @@ -959,10 +999,17 @@ function tryParseExportsDotAssign (assign) { // module.exports = case 61/*=*/: { if (assign) { - if (reexports.size) + if (!extended && reexports.size) reexports = new Set(); pos++; ch = commentWhitespace(); + if (extended) { + if (ch === 40/*(*/) ch = readExportExpressionStart(); + if (ch === 123/*{*/) exportObjectPos = pos; + else if (ch === 114/*r*/) tryParseRequire(ExportAssign); + pos = revertPos; + return; + } // { ... } if (ch === 123/*{*/) { tryParseLiteralExports(); @@ -1012,6 +1059,128 @@ function tryParseRequire (requireType) { return false; } +function readExportExpressionStart () { + while (true) { + pos++; + const ch = commentWhitespace(); + if (ch === 40/*(*/) continue; + const start = pos; + if (ch === 39/*'*/ || ch === 34/*"*/) { + stringLiteral(ch); + pos++; + } + else if (ch === 123/*{*/) { + pos++; + if (commentWhitespace() === 125/*}*/) pos++; + else { + pos = start; + return ch; + } + } + else { + while (pos <= end && isIdentifierChar(source.codePointAt(pos), true)) + pos += codePointLen(source.codePointAt(pos)); + } + if (pos === start || commentWhitespace() !== 44/*,*/) { + pos = start; + return ch; + } + } +} + +function readExportDefinition () { + const start = pos; + const property = source.startsWith('defineProperty', pos); + const properties = source.startsWith('defineProperties', pos); + if (!property && !properties) return; + pos += property ? 14 : 16; + let ch = commentWhitespace(); + if (ch !== 40/*(*/) return; + pos++; + ch = commentWhitespace(); + if (!readExportsOrModuleDotExports(ch)) return; + if (commentWhitespace() !== 44/*,*/) return; + pos++; + ch = commentWhitespace(); + if (properties) { + if (ch === 40/*(*/) ch = readExportExpressionStart(); + if (ch === 123/*{*/) exportObjectPos = pos; + } + else if (ch === 39/*'*/ || ch === 34/*"*/) { + const nameStart = pos; + stringLiteral(ch); + const nameEnd = ++pos; + if (commentWhitespace() === 44/*,*/) + _exports.add(decode(source.slice(nameStart, nameEnd))); + } + pos = start; +} + +function readExportProperty () { + const revertPos = pos; + pos++; + let ch = commentWhitespace(); + if (ch === 46/*.*/ && source.startsWith('..', pos + 1)) { + pos += 3; + ch = commentWhitespace(); + if (ch === 114/*r*/) tryParseRequire(ExportAssign); + pos = revertPos; + return; + } + if (ch === 42/***/) { + pos++; + ch = commentWhitespace(); + } + let computed = ch === 91/*[*/; + if (computed) { + pos++; + ch = commentWhitespace(); + } + let nameStart = pos; + let nameEnd; + if (ch === 39/*'*/ || ch === 34/*"*/) { + stringLiteral(ch); + nameEnd = ++pos; + } + else if (!computed && identifier()) { + nameEnd = pos; + ch = commentWhitespace(); + if ((source.startsWith('get', nameStart) && nameEnd - nameStart === 3 || + source.startsWith('set', nameStart) && nameEnd - nameStart === 3 || + source.startsWith('async', nameStart) && nameEnd - nameStart === 5) && + ch !== 58/*:*/ && ch !== 40/*(*/ && ch !== 44/*,*/ && ch !== 125/*}*/) { + if (ch === 42/***/) { + pos++; + ch = commentWhitespace(); + } + computed = ch === 91/*[*/; + if (computed) { + pos++; + ch = commentWhitespace(); + } + nameStart = pos; + if (ch === 39/*'*/ || ch === 34/*"*/) { + stringLiteral(ch); + nameEnd = ++pos; + } + else if (!computed && identifier()) nameEnd = pos; + else nameEnd = undefined; + } + } + ch = commentWhitespace(); + if (computed) { + if (ch !== 93/*]*/) nameEnd = undefined; + else { + pos++; + ch = commentWhitespace(); + } + } + if (nameEnd !== undefined && (ch === 58/*:*/ || ch === 40/*(*/ || + !computed && (ch === 44/*,*/ || ch === 125/*}*/))) + _exports.add(decode(source.slice(nameStart, nameEnd))); + pos = revertPos; +} + function tryParseLiteralExports () { const revertPos = pos - 1; while (pos++ < end) { @@ -1645,6 +1814,62 @@ function isExpressionPunctuator (ch) { ch === 91/*[*/ || ch === 94/*^*/ || ch > 122 && ch < 127 && ch !== 125/*}*/; } +/** @param {number} curPos */ +function precedingToken (curPos) { + while (curPos >= 0) { + while (isBrOrWs(source.charCodeAt(curPos))) curPos--; + if (source.charCodeAt(curPos) !== 47/*/*/ || source.charCodeAt(curPos - 1) !== 42/***/) + return curPos; + curPos = source.lastIndexOf('/*', curPos - 2) - 1; + } + return -1; +} + +/** + * @param {number} curPos + * @param {number} depth + */ +function isStatementBrace (curPos, depth) { + while (curPos >= 0) { + const ch = source.charCodeAt(curPos); + if (ch === 123/*{*/ && depth) { + curPos = openTokenPosStack[--depth]; + continue; + } + if (ch !== 58/*:*/) + return ch === 125/*}*/ || isExpressionTerminator(curPos); + curPos = precedingToken(curPos - 1); + let start = curPos; + let identifierStart = false; + const quote = source.charCodeAt(start); + if (quote === 39/*'*/ || quote === 34/*"*/) { + while (--start >= 0) { + if (source.charCodeAt(start) !== quote) continue; + let before = start; + while (source.charCodeAt(before - 1) === 92/*\*/) before--; + if ((start - before) % 2 === 0) break; + } + start--; + } + else { + while (start >= 0 && isIdentifierChar(codePointAtLast(start), true)) { + const codePoint = codePointAtLast(start); + identifierStart = isIdentifierStart(codePoint, true); + start -= codePointLen(codePoint); + } + } + curPos = precedingToken(start); + if (source.charCodeAt(curPos) === 43/*+*/ || source.charCodeAt(curPos) === 45/*-*/) + curPos = precedingToken(curPos - 1); + if (curPos >= 3 && source.startsWith('case', curPos - 3) && + (curPos === 3 || !isIdentifierChar(codePointAtLast(curPos - 4), true) && source.charCodeAt(curPos - 4) !== 46/*.*/)) + return true; + if (!identifierStart) + return false; + } + return true; +} + function isExpressionTerminator (curPos) { // detects: // => ; ) finally catch else diff --git a/lib/lexer.wasm b/lib/lexer.wasm index 6b8ce18..fd7050a 100755 Binary files a/lib/lexer.wasm and b/lib/lexer.wasm differ diff --git a/lib/lexer.wat b/lib/lexer.wat index 34b33d6..a6cd568 100644 --- a/lib/lexer.wat +++ b/lib/lexer.wat @@ -49,12 +49,12 @@ (func (;1;) (type 0) (param i32 i32) local.get 0 local.get 1 - i32.const 4016 - i32.const 4024 - call 29) + i32.const 4048 + i32.const 4056 + call 32) (func (;2;) (type 6) (param i64) local.get 0 - i32.const 4064 + i32.const 4096 i64.load i64.sub i64.const 65535 @@ -69,8 +69,8 @@ if ;; label = @1 unreachable end - i32.const 4064 - i32.const 4064 + i32.const 4096 + i32.const 4096 i64.load local.get 0 i64.const 281474976645120 @@ -80,87 +80,97 @@ (func (;3;) (type 0) (param i32 i32) local.get 0 local.get 1 - i32.const 4028 - i32.const 4036 - call 29) + i32.const 4060 + i32.const 4068 + call 32) (func (;4;) (type 0) (param i32 i32) local.get 0 local.get 1 - i32.const 4040 - i32.const 4048 - call 29) + i32.const 4072 + i32.const 4080 + call 32) (func (;5;) (type 3) (param i32 i32 i32 i32 i32 i32) (result i32) - (local i32 i32 i32 i32 i64 i64) - i32.const 3992 + (local i32 i32 i32 i32 i32 i32 i32 i32 i64 i64) + i32.const 4024 local.get 0 i32.store - i32.const 4080 + i32.const 4112 + local.get 5 + i32.const 1 + i32.and + i32.store8 + i32.const 4113 local.get 5 i32.const 1 + i32.shr_u + i32.const 1 i32.and i32.store8 local.get 2 if ;; label = @1 - i32.const 3996 + i32.const 4028 local.get 2 i32.store end local.get 3 if ;; label = @1 - i32.const 4000 + i32.const 4032 local.get 3 i32.store end local.get 4 if ;; label = @1 - i32.const 4004 + i32.const 4036 local.get 4 i32.store end - i32.const 4086 + i32.const 4118 i32.const 65535 i32.store16 - i32.const 8192 - i32.const 4096 + i32.const 8224 + i32.const 4128 i32.store - i32.const 16412 + i32.const 16448 local.get 0 i32.const 2 i32.sub - local.tee 4 + local.tee 5 i32.store - i32.const 16416 - local.get 4 + i32.const 16452 + local.get 5 local.get 1 i32.const 1 i32.shl i32.add - local.tee 2 + local.tee 3 i32.store - i32.const 4084 + i32.const 4116 i32.const 0 i32.store16 - i32.const 4082 + i32.const 4114 i32.const 0 i32.store16 - i32.const 4092 + i32.const 4124 i32.const 0 i32.store8 - i32.const 4072 + i32.const 4104 i32.const 0 i32.store - i32.const 4076 + i32.const 4108 i32.const 0 i32.store - i32.const 16400 + i32.const 16432 i32.const 0 i32.store - i32.const 16404 + i32.const 16436 i32.const 0 i32.store - i32.const 16408 + i32.const 16440 i32.const 0 i32.store8 + i32.const 16444 + i32.const 0 + i32.store block ;; label = @1 block ;; label = @2 local.get 0 @@ -174,7 +184,7 @@ i32.ne br_if 0 (;@2;) i32.const 0 - local.set 3 + local.set 4 local.get 1 i32.const 2 i32.eq @@ -185,17 +195,17 @@ local.set 0 loop ;; label = @3 local.get 0 - local.tee 4 + local.tee 5 i32.const 2 i32.sub - local.get 2 + local.get 3 i32.ge_u br_if 1 (;@2;) local.get 0 i32.const 2 i32.add local.set 0 - local.get 4 + local.get 5 i32.load16_u i32.const 10 i32.sub @@ -204,14 +214,14 @@ unreachable end i32.const 1024 - local.set 5 + local.set 1 loop ;; label = @2 - i32.const 16412 - local.get 4 + i32.const 16448 + local.get 5 local.tee 0 i32.const 2 i32.add - local.tee 4 + local.tee 5 i32.store block ;; label = @3 block ;; label = @4 @@ -228,7 +238,8 @@ block ;; label = @15 block ;; label = @16 block ;; label = @17 - block ;; label = @18 + i32.const 4124 + block (result i32) ;; label = @18 block ;; label = @19 block ;; label = @20 block ;; label = @21 @@ -238,20 +249,20 @@ block ;; label = @25 block ;; label = @26 local.get 0 - local.get 2 + local.get 3 i32.lt_u if ;; label = @27 - local.get 4 + local.get 5 i32.load16_u - local.tee 1 + local.tee 6 i32.const 9 i32.sub - local.tee 3 + local.tee 2 i32.const 23 i32.le_u i32.const 0 i32.const 1 - local.get 3 + local.get 2 i32.shl i32.const 8388639 i32.and @@ -262,4168 +273,4859 @@ block ;; label = @30 block ;; label = @31 block ;; label = @32 - i32.const 4084 - i32.load16_u - local.tee 6 - i32.eqz - if ;; label = @33 + block ;; label = @33 block ;; label = @34 block ;; label = @35 - block ;; label = @36 - block ;; label = @37 - local.get 1 - i32.const 95 - i32.sub - br_table 3 (;@34;) 12 (;@25;) 32 (;@5;) 32 (;@5;) 7 (;@30;) 32 (;@5;) 6 (;@31;) 32 (;@5;) 32 (;@5;) 32 (;@5;) 1 (;@36;) 32 (;@5;) 32 (;@5;) 32 (;@5;) 5 (;@32;) 0 (;@37;) - end - block ;; label = @37 - local.get 1 - i32.const 39 - i32.sub - br_table 33 (;@4;) 24 (;@13;) 21 (;@16;) 32 (;@5;) 32 (;@5;) 32 (;@5;) 32 (;@5;) 32 (;@5;) 13 (;@24;) 0 (;@37;) - end - block ;; label = @37 - local.get 1 - i32.const 123 - i32.sub - br_table 19 (;@18;) 32 (;@5;) 17 (;@20;) 0 (;@37;) - end - local.get 1 - i32.const 114 - i32.eq - br_if 1 (;@35;) - local.get 1 - i32.const 60 - i32.eq - br_if 33 (;@3;) - local.get 1 - i32.const 79 - i32.eq - br_if 8 (;@28;) - local.get 1 - i32.const 34 - i32.ne - br_if 31 (;@5;) - br 32 (;@4;) - end - local.get 0 - i32.load16_u offset=4 - i32.const 109 - i32.ne - br_if 30 (;@5;) - local.get 0 - i32.load16_u offset=6 - i32.const 112 - i32.ne - br_if 30 (;@5;) - local.get 0 - i32.load16_u offset=8 - i32.const 111 - i32.ne - br_if 30 (;@5;) - local.get 0 - i32.load16_u offset=10 - i32.const 114 - i32.ne - br_if 30 (;@5;) - local.get 0 - i32.load16_u offset=12 - i32.const 116 - i32.ne - br_if 30 (;@5;) - local.get 4 - i32.const 3992 - i32.load - local.tee 1 - i32.ne - if ;; label = @36 - local.get 0 - i32.load16_u - call 6 - i32.eqz - br_if 31 (;@5;) - end - i32.const 16412 - local.get 0 - i32.const 14 - i32.add - local.tee 3 - i32.store block ;; label = @36 block ;; label = @37 block ;; label = @38 block ;; label = @39 - call 7 - local.tee 0 - i32.const 39 - i32.sub - br_table 2 (;@37;) 13 (;@26;) 1 (;@38;) 2 (;@37;) 1 (;@38;) 1 (;@38;) 1 (;@38;) 3 (;@36;) 0 (;@39;) - end - local.get 0 - i32.const 34 - i32.eq - local.get 0 - i32.const 123 - i32.eq - i32.or - br_if 1 (;@37;) - end - i32.const 16412 - i32.load - local.get 3 - i32.eq - br_if 32 (;@5;) - end - i32.const 4076 - i32.load - i32.eqz - if ;; label = @37 - i32.const 4076 - i32.const 6 - i32.store - end - i32.const 16412 - i32.load - local.set 0 - i32.const 16412 - local.get 2 - i32.const 2 - i32.add - i32.store - i32.const 4072 - local.get 0 - i32.const 3992 - i32.load - i32.sub - i32.const 1 - i32.shr_s - i32.store - br 31 (;@5;) - end - i32.const 4076 - i32.load - i32.eqz - if ;; label = @36 - i32.const 4076 - i32.const 5 - i32.store - end - i32.const 16412 - i32.load - local.set 0 - i32.const 16412 - local.get 2 - i32.const 2 - i32.add - i32.store - i32.const 4072 - local.get 0 - local.get 1 - i32.sub - i32.const 1 - i32.shr_s - i32.store - br 30 (;@5;) - end - i32.const 0 - call 8 - i32.eqz - br_if 29 (;@5;) - i32.const 3992 - i32.load - local.get 4 - i32.eq - br_if 28 (;@6;) - local.get 0 - i32.load16_u - call 6 - i32.eqz - br_if 29 (;@5;) - br 28 (;@6;) - end - local.get 0 - i32.load16_u offset=4 - local.tee 1 - i32.const 95 - i32.ne - if ;; label = @34 - local.get 1 - i32.const 105 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=6 - i32.const 110 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=8 - i32.const 116 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=10 - i32.const 101 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=12 - i32.const 114 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=14 - i32.const 111 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=16 - i32.const 112 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=18 - i32.const 82 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=20 - i32.const 101 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=22 - i32.const 113 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=24 - i32.const 117 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=26 - i32.const 105 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=28 - i32.const 114 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=30 - i32.const 101 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=32 - i32.const 87 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=34 - i32.const 105 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=36 - i32.const 108 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=38 - i32.const 100 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=40 - i32.const 99 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=42 - i32.const 97 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=44 - i32.const 114 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=46 - i32.const 100 - i32.ne - br_if 29 (;@5;) - block ;; label = @35 - i32.const 3992 - i32.load - local.get 4 - i32.eq - br_if 0 (;@35;) - local.get 0 - i32.load16_u - local.tee 1 - call 6 - br_if 0 (;@35;) - local.get 1 - i32.const 46 - i32.ne - br_if 30 (;@5;) - end - i32.const 16412 - local.get 0 - i32.const 48 - i32.add - i32.store - local.get 0 - i32.load16_u offset=48 - i32.const 40 - i32.ne - br_if 29 (;@5;) - i32.const 4084 - i32.const 1 - i32.store16 - i32.const 8208 - local.get 5 - i32.store - i32.const 16412 - local.get 0 - i32.const 50 - i32.add - i32.store - i32.const 0 - call 8 - i32.eqz - br_if 29 (;@5;) - i32.const 3992 - i32.load - local.get 4 - i32.eq - br_if 28 (;@6;) - local.get 0 - i32.load16_u - call 6 - br_if 28 (;@6;) - br 29 (;@5;) - end - local.get 0 - i32.load16_u offset=6 - i32.const 101 - i32.ne - br_if 28 (;@5;) - local.get 0 - i32.load16_u offset=8 - i32.const 120 - i32.ne - br_if 28 (;@5;) - local.get 0 - i32.load16_u offset=10 - i32.const 112 - i32.ne - br_if 28 (;@5;) - local.get 0 - i32.load16_u offset=12 - i32.const 111 - i32.ne - br_if 28 (;@5;) - local.get 0 - i32.load16_u offset=14 - i32.const 114 - i32.ne - br_if 28 (;@5;) - local.get 0 - i32.load16_u offset=16 - i32.const 116 - i32.ne - br_if 28 (;@5;) - block ;; label = @34 - i32.const 3992 - i32.load - local.get 4 - i32.eq - br_if 0 (;@34;) - local.get 0 - i32.load16_u - local.tee 1 - call 6 - br_if 0 (;@34;) - local.get 1 - i32.const 46 - i32.ne - br_if 29 (;@5;) - end - i32.const 16412 - local.get 0 - i32.const 18 - i32.add - i32.store - i32.const 9 - local.set 3 - local.get 0 - i32.load16_u offset=18 - local.tee 4 - i32.const 83 - i32.eq - if ;; label = @34 - local.get 0 - i32.load16_u offset=20 - i32.const 116 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=22 - i32.const 97 - i32.ne - br_if 29 (;@5;) - local.get 0 - i32.load16_u offset=24 - i32.const 114 - i32.ne - br_if 29 (;@5;) - i32.const 16412 - local.get 0 - i32.const 26 - i32.add - i32.store - local.get 0 - i32.load16_u offset=26 - local.set 4 - i32.const 13 - local.set 3 - end - local.get 4 - i32.const 65535 - i32.and - i32.const 40 - i32.ne - br_if 28 (;@5;) - i32.const 4084 - i32.const 1 - i32.store16 - i32.const 8208 - local.get 5 - i32.store - local.get 0 - local.get 3 - i32.const 1 - i32.shl - i32.add - local.tee 0 - i32.load16_u offset=2 - i32.const 114 - i32.ne - br_if 28 (;@5;) - i32.const 16412 - local.get 0 - i32.const 2 - i32.add - i32.store - i32.const 2 - call 8 - drop - br 28 (;@5;) - end - block ;; label = @33 - local.get 1 - i32.const 39 - i32.sub - br_table 29 (;@4;) 18 (;@15;) 16 (;@17;) 28 (;@5;) 28 (;@5;) 28 (;@5;) 28 (;@5;) 28 (;@5;) 9 (;@24;) 0 (;@33;) - end - block ;; label = @33 - local.get 1 - i32.const 96 - i32.sub - br_table 8 (;@25;) 28 (;@5;) 28 (;@5;) 3 (;@30;) 28 (;@5;) 2 (;@31;) 0 (;@33;) - end - block ;; label = @33 - local.get 1 - i32.const 123 - i32.sub - br_table 14 (;@19;) 28 (;@5;) 10 (;@23;) 0 (;@33;) - end - local.get 1 - i32.const 34 - i32.eq - br_if 28 (;@4;) - local.get 1 - i32.const 60 - i32.eq - br_if 29 (;@3;) - local.get 1 - i32.const 79 - i32.eq - br_if 4 (;@28;) - local.get 1 - i32.const 109 - i32.ne - br_if 27 (;@5;) - end - local.get 0 - i32.load16_u offset=4 - i32.const 111 - i32.ne - br_if 26 (;@5;) - local.get 0 - i32.load16_u offset=6 - i32.const 100 - i32.ne - br_if 26 (;@5;) - local.get 0 - i32.load16_u offset=8 - i32.const 117 - i32.ne - br_if 26 (;@5;) - local.get 0 - i32.load16_u offset=10 - i32.const 108 - i32.ne - br_if 26 (;@5;) - local.get 0 - i32.load16_u offset=12 - i32.const 101 - i32.ne - br_if 26 (;@5;) - local.get 4 - i32.const 3992 - i32.load - i32.ne - if ;; label = @32 - local.get 0 - i32.load16_u - call 6 - i32.eqz - br_if 27 (;@5;) - end - i32.const 16412 - local.get 0 - i32.const 14 - i32.add - i32.store - call 7 - i32.const 46 - i32.ne - br_if 2 (;@29;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 101 - i32.ne - br_if 2 (;@29;) - i32.const 16412 - i32.load - local.tee 1 - i32.load16_u offset=2 - i32.const 120 - i32.ne - br_if 2 (;@29;) - local.get 1 - i32.load16_u offset=4 - i32.const 112 - i32.ne - br_if 2 (;@29;) - local.get 1 - i32.load16_u offset=6 - i32.const 111 - i32.ne - br_if 2 (;@29;) - local.get 1 - i32.load16_u offset=8 - i32.const 114 - i32.ne - br_if 2 (;@29;) - local.get 1 - i32.load16_u offset=10 - i32.const 116 - i32.ne - br_if 2 (;@29;) - local.get 1 - i32.load16_u offset=12 - i32.const 115 - i32.ne - br_if 2 (;@29;) - i32.const 1 - call 9 - br 26 (;@5;) - end - local.get 0 - i32.load16_u offset=4 - i32.const 120 - i32.ne - br_if 25 (;@5;) - local.get 0 - i32.load16_u offset=6 - i32.const 112 - i32.ne - br_if 25 (;@5;) - local.get 0 - i32.load16_u offset=8 - i32.const 111 - i32.ne - br_if 25 (;@5;) - local.get 0 - i32.load16_u offset=10 - i32.const 114 - i32.ne - br_if 25 (;@5;) - local.get 0 - i32.load16_u offset=12 - i32.const 116 - i32.ne - br_if 25 (;@5;) - local.get 4 - i32.const 3992 - i32.load - i32.ne - if ;; label = @31 - local.get 0 - i32.load16_u - call 6 - i32.eqz - br_if 26 (;@5;) - end - local.get 0 - i32.load16_u offset=14 - i32.const 115 - i32.eq - if ;; label = @31 - i32.const 0 - call 9 - br 26 (;@5;) - end - local.get 6 - br_if 25 (;@5;) - i32.const 16412 - local.get 0 - i32.const 14 - i32.add - local.tee 1 - i32.store - call 7 - local.set 0 - block ;; label = @31 - local.get 1 - i32.const 16412 - i32.load - local.tee 3 - i32.ne - br_if 0 (;@31;) - local.get 0 - i32.const 65528 - i32.and - i32.const 40 - i32.eq - local.get 0 - i32.const 58 - i32.sub - i32.const 6 - i32.lt_u - i32.or - local.get 0 - i32.const 33 - i32.sub - local.tee 1 - i32.const 5 - i32.le_u - i32.const 0 - i32.const 1 - local.get 1 - i32.shl - i32.const 49 - i32.and - select - i32.or - br_if 0 (;@31;) - local.get 0 - i32.const 91 - i32.sub - local.tee 1 - i32.const 3 - i32.le_u - local.get 1 - i32.const 1 - i32.ne - i32.and - br_if 0 (;@31;) - local.get 0 - i32.const 123 - i32.sub - i32.const 65535 - i32.and - i32.const 3 - i32.gt_u - br_if 26 (;@5;) - end - i32.const 4076 - i32.load - i32.eqz - if ;; label = @31 - i32.const 4076 - i32.const 7 - i32.store - end - i32.const 16412 - local.get 2 - i32.const 2 - i32.add - i32.store - i32.const 4072 - local.get 3 - i32.const 3992 - i32.load - i32.sub - i32.const 1 - i32.shr_s - i32.store - br 25 (;@5;) - end - local.get 4 - i32.const 3992 - i32.load - i32.ne - if ;; label = @30 - local.get 0 - i32.load16_u - call 6 - i32.eqz - br_if 25 (;@5;) - end - local.get 0 - i32.load16_u offset=4 - i32.const 108 - i32.ne - br_if 24 (;@5;) - local.get 0 - i32.load16_u offset=6 - i32.const 97 - i32.ne - br_if 24 (;@5;) - local.get 0 - i32.load16_u offset=8 - i32.const 115 - i32.ne - br_if 24 (;@5;) - local.get 0 - i32.load16_u offset=10 - i32.const 115 - i32.ne - br_if 24 (;@5;) - local.get 0 - i32.load16_u offset=12 - local.tee 0 - i32.const 9 - i32.sub - local.tee 1 - i32.const 23 - i32.gt_u - i32.const 1 - local.get 1 - i32.shl - i32.const 8388639 - i32.and - i32.eqz - i32.or - br_if 21 (;@8;) - br 22 (;@7;) - end - i32.const 16412 - local.get 0 - i32.const 12 - i32.add - i32.store - br 23 (;@5;) - end - local.get 0 - i32.load16_u offset=4 - i32.const 98 - i32.ne - br_if 22 (;@5;) - local.get 0 - i32.load16_u offset=6 - i32.const 106 - i32.ne - br_if 22 (;@5;) - local.get 0 - i32.load16_u offset=8 - i32.const 101 - i32.ne - br_if 22 (;@5;) - local.get 0 - i32.load16_u offset=10 - i32.const 99 - i32.ne - br_if 22 (;@5;) - local.get 0 - i32.load16_u offset=12 - i32.const 116 - i32.ne - br_if 22 (;@5;) - local.get 4 - i32.const 3992 - i32.load - i32.ne - if ;; label = @28 - local.get 0 - i32.load16_u - call 6 - i32.eqz - br_if 23 (;@5;) - end - i32.const 16412 - local.get 0 - i32.const 14 - i32.add - i32.store - local.get 0 - i32.const 12 - i32.add - local.set 4 - call 7 - i32.const 46 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 0 - i32.const 100 - i32.eq - if ;; label = @28 - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 102 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 105 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 110 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 101 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 80 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 114 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=16 - i32.const 111 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=18 - i32.const 112 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=20 - i32.const 101 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=22 - i32.const 114 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=24 - i32.const 116 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.load16_u offset=26 - i32.const 121 - i32.ne - br_if 19 (;@9;) - local.get 0 - i32.const 26 - i32.add - local.set 4 - i32.const 16412 - local.get 0 - i32.const 28 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 19 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - call 10 - i32.eqz - br_if 19 (;@9;) - call 7 - i32.const 44 - i32.ne - br_if 19 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 5 - i32.const 39 - i32.ne - local.get 5 - i32.const 34 - i32.ne - i32.and - br_if 19 (;@9;) - i32.const 16412 - i32.load - local.tee 1 - local.set 0 - block ;; label = @29 - loop ;; label = @30 - block ;; label = @31 - local.get 0 - local.tee 3 - i32.const 2 - i32.add - local.set 0 - local.get 2 - local.get 3 - i32.le_u - br_if 0 (;@31;) - local.get 0 - i32.load16_u - local.tee 6 - local.get 5 - i32.eq - br_if 2 (;@29;) - local.get 6 - i32.const 92 - i32.ne - if ;; label = @32 - local.get 6 - i32.const 10 - i32.sub - br_table 1 (;@31;) 2 (;@30;) 2 (;@30;) 1 (;@31;) 2 (;@30;) - end - local.get 3 - i32.const 4 - i32.add - local.set 0 - local.get 3 - i32.load16_u offset=4 - i32.const 13 - i32.ne - br_if 1 (;@30;) - local.get 3 - i32.const 6 - i32.add - local.get 0 - local.get 3 - i32.load16_u offset=6 - i32.const 10 - i32.eq - select - local.set 0 - br 1 (;@30;) - end - end - i32.const 4076 - i32.load - i32.eqz - if ;; label = @30 - i32.const 4076 - i32.const 9 - i32.store - end - i32.const 4072 - local.get 0 - i32.const 3992 - i32.load - i32.sub - i32.const 1 - i32.shr_s - i32.store - local.get 2 - local.set 3 - end - i32.const 16412 - local.get 3 - i32.const 4 - i32.add - local.tee 5 - i32.store - call 7 - i32.const 44 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 123 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 3 - i32.const 101 - i32.eq - if ;; label = @29 - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 110 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=4 - i32.const 117 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=6 - i32.const 109 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=8 - i32.const 101 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=10 - i32.const 114 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=12 - i32.const 97 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=14 - i32.const 98 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=16 - i32.const 108 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=18 - i32.const 101 - i32.ne - br_if 19 (;@10;) - i32.const 16412 - local.get 0 - i32.const 20 - i32.add - i32.store - call 7 - i32.const 58 - i32.ne - br_if 19 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - i32.const 16412 - block (result i32) ;; label = @30 - block ;; label = @31 - call 7 - local.tee 3 - i32.const 116 - i32.ne - br_if 0 (;@31;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 114 - i32.ne - br_if 0 (;@31;) - local.get 0 - i32.load16_u offset=4 - i32.const 117 - i32.ne - br_if 0 (;@31;) - local.get 0 - i32.load16_u offset=6 - i32.const 101 - i32.ne - br_if 0 (;@31;) - local.get 0 - i32.const 8 - i32.add - br 1 (;@30;) - end - local.get 3 - i32.const 33 - i32.ne - br_if 20 (;@10;) - i32.const 4080 - i32.load8_u - i32.eqz - br_if 20 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 48 - i32.ne - br_if 20 (;@10;) - i32.const 16412 - i32.load - i32.const 2 - i32.add - end - i32.store - call 7 - i32.const 44 - i32.ne - br_if 19 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.set 3 - end - local.get 3 - i32.const 103 - i32.ne - if ;; label = @29 - local.get 3 - i32.const 118 - i32.ne - br_if 19 (;@10;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 97 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=4 - i32.const 108 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=6 - i32.const 117 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=8 - i32.const 101 - i32.ne - br_if 19 (;@10;) - i32.const 16412 - local.get 0 - i32.const 10 - i32.add - i32.store - call 7 - i32.const 58 - i32.ne - br_if 19 (;@10;) - local.get 1 - local.get 5 - i32.const 3996 - i32.load - call_indirect (type 0) - br 20 (;@9;) - end - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 18 (;@10;) - local.get 0 - i32.load16_u offset=4 - i32.const 116 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - local.get 0 - i32.const 6 - i32.add - i32.store - call 7 - local.tee 0 - i32.const 58 - i32.eq - if (result i32) ;; label = @29 - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 102 - i32.ne - br_if 19 (;@10;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 117 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=4 - i32.const 110 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=6 - i32.const 99 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=8 - i32.const 116 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=10 - i32.const 105 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=12 - i32.const 111 - i32.ne - br_if 19 (;@10;) - local.get 0 - i32.load16_u offset=14 - i32.const 110 - i32.ne - br_if 19 (;@10;) - i32.const 16412 - local.get 0 - i32.const 16 - i32.add - local.tee 0 - i32.store - call 7 - local.tee 3 - i32.const 40 - i32.ne - if ;; label = @30 - local.get 0 - i32.const 16412 - i32.load - i32.eq - br_if 20 (;@10;) - local.get 3 - call 11 - i32.eqz - br_if 20 (;@10;) - end - call 7 - else - local.get 0 - end - i32.const 40 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 41 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 123 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 114 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 18 (;@10;) - local.get 0 - i32.load16_u offset=4 - i32.const 116 - i32.ne - br_if 18 (;@10;) - local.get 0 - i32.load16_u offset=6 - i32.const 117 - i32.ne - br_if 18 (;@10;) - local.get 0 - i32.load16_u offset=8 - i32.const 114 - i32.ne - br_if 18 (;@10;) - local.get 0 - i32.load16_u offset=10 - i32.const 110 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - local.get 0 - i32.const 12 - i32.add - i32.store - call 7 - call 11 - i32.eqz - br_if 18 (;@10;) - block ;; label = @29 - block ;; label = @30 - call 7 - local.tee 3 - i32.const 91 - i32.ne - if ;; label = @31 - local.get 3 - i32.const 46 - i32.ne - br_if 2 (;@29;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - call 11 - br_if 1 (;@30;) - br 21 (;@10;) - end - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 6 - i32.const 39 - i32.ne - local.get 6 - i32.const 34 - i32.ne - i32.and - br_if 20 (;@10;) - i32.const 16412 - i32.load - local.set 3 - block ;; label = @31 - loop ;; label = @32 - block ;; label = @33 - local.get 3 - local.tee 0 - i32.const 2 - i32.add - local.set 3 - local.get 0 - local.get 2 - i32.ge_u - br_if 0 (;@33;) - local.get 6 - local.get 3 - i32.load16_u - local.tee 7 - i32.eq - if ;; label = @34 - local.get 0 - local.set 2 - br 3 (;@31;) - end - local.get 7 - i32.const 92 - i32.ne - if ;; label = @34 - local.get 7 - i32.const 10 - i32.sub - br_table 1 (;@33;) 2 (;@32;) 2 (;@32;) 1 (;@33;) 2 (;@32;) - end - local.get 0 - i32.const 4 - i32.add - local.set 3 - local.get 0 - i32.load16_u offset=4 - i32.const 13 - i32.ne - br_if 1 (;@32;) - local.get 0 - i32.const 6 - i32.add - local.get 3 - local.get 0 - i32.load16_u offset=6 - i32.const 10 - i32.eq - select - local.set 3 - br 1 (;@32;) - end - end - i32.const 4076 - i32.load - i32.eqz - if ;; label = @32 - i32.const 4076 - i32.const 9 - i32.store - end - i32.const 4072 - local.get 3 - i32.const 3992 - i32.load - i32.sub - i32.const 1 - i32.shr_s - i32.store - end - i32.const 16412 - local.get 2 - i32.const 4 - i32.add - i32.store - call 7 - i32.const 93 - i32.ne - br_if 20 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - end - call 7 - local.set 3 - end - local.get 3 - i32.const 59 - i32.eq - if (result i32) ;; label = @29 - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - else - local.get 3 - end - i32.const 125 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 0 - i32.const 44 - i32.eq - if (result i32) ;; label = @29 - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - else - local.get 0 - end - i32.const 125 - i32.ne - br_if 18 (;@10;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 41 - i32.ne - br_if 18 (;@10;) - local.get 1 - local.get 5 - i32.const 3996 - i32.load - call_indirect (type 0) - br 23 (;@5;) - end - local.get 0 - i32.const 107 - i32.ne - local.get 6 - i32.or - br_if 18 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 121 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 115 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.const 6 - i32.add - local.set 4 - i32.const 16412 - local.get 0 - i32.const 8 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 16412 - i32.load - local.set 5 - call 11 - i32.eqz - br_if 18 (;@9;) - i32.const 16412 - i32.load - call 7 - i32.const 41 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - local.tee 4 - i32.const 2 - i32.add - i32.store - call 7 - i32.const 46 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 102 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 111 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 114 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 69 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 97 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 99 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 104 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - local.get 0 - i32.const 14 - i32.add - i32.store - call 7 - i32.const 16412 - i32.load - local.tee 1 - i32.const 2 - i32.sub - local.set 4 - i32.const 40 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - local.get 1 - i32.const 2 - i32.add - i32.store - call 7 - i32.const 102 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 117 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 110 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 99 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 116 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 105 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 111 - i32.ne - br_if 18 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 110 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - local.get 0 - i32.const 16 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 16412 - i32.load - local.set 1 - call 11 - i32.eqz - br_if 18 (;@9;) - i32.const 16412 - i32.load - local.set 0 - call 7 - i32.const 41 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 123 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 105 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.load - local.tee 2 - i32.load16_u offset=2 - i32.const 102 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - local.get 2 - i32.const 4 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 8 - local.get 1 - local.get 0 - local.get 1 - i32.sub - local.tee 2 - call 0 - br_if 18 (;@9;) - local.get 5 - i32.sub - local.tee 6 - i32.const 1 - i32.shr_s - local.set 7 - i32.const 16412 - local.get 8 - local.get 2 - i32.const 1 - i32.shr_s - local.tee 9 - i32.const 1 - i32.shl - local.tee 3 - i32.add - i32.store - block ;; label = @28 - block ;; label = @29 - block ;; label = @30 - call 7 - local.tee 0 - i32.const 33 - i32.ne - if ;; label = @31 - local.get 0 - i32.const 61 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 61 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 61 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 6 - i32.add - i32.store - call 7 - local.tee 8 - i32.const 39 - i32.ne - local.get 8 - i32.const 34 - i32.ne - i32.and - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 100 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 101 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 102 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 97 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 117 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 108 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 116 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 16 - i32.add - i32.store - call 7 - local.get 8 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 124 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 124 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 4 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 1 - local.get 2 - call 0 - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 61 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 61 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 61 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 6 - i32.add - i32.store - call 7 - local.tee 8 - i32.const 39 - i32.ne - local.get 8 - i32.const 34 - i32.ne - i32.and - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 95 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 95 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 101 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 115 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 77 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 111 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 100 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=16 - i32.const 117 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=18 - i32.const 108 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=20 - i32.const 101 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 22 - i32.add - i32.store - call 7 - local.get 8 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 41 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 114 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 116 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 117 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 114 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 110 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 12 - i32.add - i32.store - call 7 - i32.const 59 - i32.eq - if ;; label = @32 - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - end - call 7 - local.tee 0 - i32.const 105 - i32.ne - br_if 3 (;@28;) - i32.const 105 - local.set 0 - i32.const 16412 - i32.load - local.tee 8 - i32.load16_u offset=2 - i32.const 102 - i32.ne - br_if 3 (;@28;) - i32.const 16412 - local.get 8 - i32.const 4 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - local.tee 0 - i32.store - local.get 1 - local.get 9 - call 12 - if ;; label = @32 - call 7 - i32.const 41 - i32.ne - br_if 23 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 114 - i32.ne - br_if 23 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 116 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 117 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 114 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 110 - i32.ne - br_if 23 (;@9;) - i32.const 16412 - local.get 0 - i32.const 12 - i32.add - i32.store - call 7 - i32.const 59 - i32.eq - if ;; label = @33 - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - end - call 7 - local.tee 0 - i32.const 105 - i32.ne - br_if 4 (;@28;) - i32.const 105 - local.set 0 - i32.const 16412 - i32.load - local.tee 9 - i32.load16_u offset=2 - i32.const 102 - i32.ne - br_if 4 (;@28;) - i32.const 16412 - local.get 9 - i32.const 4 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 23 (;@9;) - i32.const 16412 - i32.load - i32.const 2 - i32.add - local.set 0 - end - i32.const 16412 - local.get 0 - i32.store - local.get 0 - local.get 1 - local.get 2 - call 0 - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 105 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 110 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 32 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 6 - i32.add - i32.store - call 7 - call 10 - i32.eqz - br_if 22 (;@9;) - call 7 - i32.const 38 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 38 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 4 - i32.add - i32.store - call 7 - call 10 - i32.eqz - br_if 22 (;@9;) - call 7 - i32.const 91 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 1 - local.get 2 - call 0 - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 93 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 61 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 61 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 61 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 6 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 5 - local.get 6 - call 0 - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - local.get 7 - i32.const 1 - i32.shl - i32.add - i32.store - call 7 - i32.const 91 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 1 - local.get 2 - call 0 - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 93 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 41 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 114 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 116 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 117 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 114 - i32.ne - br_if 22 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 110 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 12 - i32.add - i32.store - call 7 - i32.const 59 - i32.eq - br_if 1 (;@30;) - br 2 (;@29;) - end - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 61 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 61 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - local.get 0 - i32.const 6 - i32.add - i32.store - call 7 - local.tee 8 - i32.const 39 - i32.ne - local.get 8 - i32.const 34 - i32.ne - i32.and - br_if 21 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 100 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 101 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 102 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 97 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 117 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 108 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 116 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - local.get 0 - i32.const 16 - i32.add - i32.store - call 7 - local.get 8 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 0 - i32.const 38 - i32.eq - if (result i32) ;; label = @31 - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 38 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - local.get 0 - i32.const 4 - i32.add - i32.store - call 7 - i32.const 33 - i32.ne - br_if 22 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - block ;; label = @32 - block ;; label = @33 - call 7 - local.tee 8 - i32.const 79 - i32.ne - br_if 0 (;@33;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 98 - i32.ne - br_if 0 (;@33;) - local.get 0 - i32.load16_u offset=4 - i32.const 106 - i32.ne - br_if 0 (;@33;) - local.get 0 - i32.load16_u offset=6 - i32.const 101 - i32.ne - br_if 0 (;@33;) - local.get 0 - i32.load16_u offset=8 - i32.const 99 - i32.ne - br_if 0 (;@33;) - local.get 0 - i32.load16_u offset=10 - i32.const 116 - i32.ne - br_if 0 (;@33;) - local.get 0 - i32.load16_u offset=12 - i32.const 46 - i32.ne - br_if 0 (;@33;) - local.get 1 - local.get 9 - call 12 - br_if 1 (;@32;) - br 24 (;@9;) + block ;; label = @40 + block ;; label = @41 + block ;; label = @42 + block ;; label = @43 + block ;; label = @44 + block ;; label = @45 + i32.const 4116 + i32.load16_u + local.tee 4 + i32.eqz + if ;; label = @46 + block ;; label = @47 + block ;; label = @48 + block ;; label = @49 + local.get 6 + i32.const 91 + i32.sub + br_table 10 (;@39;) 45 (;@4;) 11 (;@38;) 45 (;@4;) 2 (;@47;) 25 (;@24;) 45 (;@4;) 45 (;@4;) 6 (;@43;) 45 (;@4;) 5 (;@44;) 45 (;@4;) 45 (;@4;) 45 (;@4;) 1 (;@48;) 45 (;@4;) 45 (;@4;) 45 (;@4;) 4 (;@45;) 0 (;@49;) + end + i32.const 0 + local.set 2 + block ;; label = @49 + local.get 6 + i32.const 34 + i32.sub + br_table 20 (;@29;) 45 (;@4;) 45 (;@4;) 45 (;@4;) 45 (;@4;) 20 (;@29;) 9 (;@40;) 14 (;@35;) 45 (;@4;) 45 (;@4;) 13 (;@36;) 45 (;@4;) 45 (;@4;) 21 (;@28;) 0 (;@49;) + end + block ;; label = @49 + local.get 6 + i32.const 123 + i32.sub + br_table 17 (;@32;) 45 (;@4;) 18 (;@31;) 0 (;@49;) + end + local.get 6 + i32.const 60 + i32.eq + br_if 45 (;@3;) + local.get 6 + i32.const 79 + i32.eq + br_if 6 (;@42;) + local.get 6 + i32.const 114 + i32.ne + br_if 44 (;@4;) + i32.const 0 + call 6 + i32.eqz + br_if 44 (;@4;) + i32.const 4024 + i32.load + local.get 5 + i32.eq + br_if 43 (;@5;) + local.get 0 + i32.load16_u + call 7 + i32.eqz + br_if 44 (;@4;) + br 43 (;@5;) + end + local.get 0 + i32.load16_u offset=4 + i32.const 109 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=6 + i32.const 112 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=8 + i32.const 111 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=10 + i32.const 114 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=12 + i32.const 116 + i32.ne + br_if 43 (;@4;) + local.get 5 + i32.const 4024 + i32.load + local.tee 1 + i32.ne + if ;; label = @48 + local.get 0 + i32.load16_u + call 7 + i32.eqz + br_if 44 (;@4;) + end + i32.const 16448 + local.get 0 + i32.const 14 + i32.add + local.tee 2 + i32.store + block ;; label = @48 + block ;; label = @49 + block ;; label = @50 + block ;; label = @51 + block ;; label = @52 + call 8 + local.tee 0 + i32.const 39 + i32.sub + br_table 2 (;@50;) 3 (;@49;) 1 (;@51;) 2 (;@50;) 1 (;@51;) 1 (;@51;) 1 (;@51;) 4 (;@48;) 0 (;@52;) + end + local.get 0 + i32.const 34 + i32.eq + local.get 0 + i32.const 123 + i32.eq + i32.or + br_if 1 (;@50;) + end + i32.const 16448 + i32.load + local.get 2 + i32.eq + br_if 46 (;@4;) + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @50 + i32.const 4108 + i32.const 6 + i32.store + end + i32.const 16448 + i32.load + local.set 0 + i32.const 16448 + local.get 3 + i32.const 2 + i32.add + i32.store + i32.const 4104 + local.get 0 + local.get 1 + i32.sub + i32.const 1 + i32.shr_s + i32.store + br 45 (;@4;) + end + i32.const 4113 + i32.load8_u + if ;; label = @49 + i32.const 16464 + i32.const 0 + i32.store8 + end + i32.const 8240 + local.get 5 + i32.store + i32.const 4116 + i32.const 1 + i32.store16 + br 44 (;@4;) + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @48 + i32.const 4108 + i32.const 5 + i32.store + end + i32.const 16448 + i32.load + local.set 0 + i32.const 16448 + local.get 3 + i32.const 2 + i32.add + i32.store + i32.const 4104 + local.get 0 + local.get 1 + i32.sub + i32.const 1 + i32.shr_s + i32.store + br 43 (;@4;) + end + local.get 0 + i32.load16_u offset=4 + local.tee 2 + i32.const 95 + i32.ne + if ;; label = @47 + local.get 2 + i32.const 105 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=6 + i32.const 110 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=10 + i32.const 101 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=12 + i32.const 114 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=14 + i32.const 111 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=16 + i32.const 112 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=18 + i32.const 82 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=22 + i32.const 113 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=24 + i32.const 117 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=26 + i32.const 105 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=28 + i32.const 114 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=30 + i32.const 101 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=32 + i32.const 87 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=34 + i32.const 105 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=36 + i32.const 108 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=38 + i32.const 100 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=40 + i32.const 99 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=42 + i32.const 97 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=44 + i32.const 114 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=46 + i32.const 100 + i32.ne + br_if 43 (;@4;) + block ;; label = @48 + i32.const 4024 + i32.load + local.get 5 + i32.eq + br_if 0 (;@48;) + local.get 0 + i32.load16_u + local.tee 2 + call 7 + br_if 0 (;@48;) + local.get 2 + i32.const 46 + i32.ne + br_if 44 (;@4;) + end + i32.const 16448 + local.get 0 + i32.const 48 + i32.add + i32.store + local.get 0 + i32.load16_u offset=48 + i32.const 40 + i32.ne + br_if 43 (;@4;) + i32.const 16448 + local.get 0 + i32.const 50 + i32.add + i32.store + i32.const 4113 + i32.load8_u + if ;; label = @48 + i32.const 16464 + i32.const 0 + i32.store8 + end + i32.const 8240 + local.get 1 + i32.store + i32.const 4116 + i32.const 1 + i32.store16 + i32.const 0 + call 6 + i32.eqz + br_if 43 (;@4;) + i32.const 4024 + i32.load + local.get 5 + i32.eq + br_if 42 (;@5;) + local.get 0 + i32.load16_u + call 7 + br_if 42 (;@5;) + br 43 (;@4;) + end + local.get 0 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 42 (;@4;) + local.get 0 + i32.load16_u offset=8 + i32.const 120 + i32.ne + br_if 42 (;@4;) + local.get 0 + i32.load16_u offset=10 + i32.const 112 + i32.ne + br_if 42 (;@4;) + local.get 0 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 42 (;@4;) + local.get 0 + i32.load16_u offset=14 + i32.const 114 + i32.ne + br_if 42 (;@4;) + local.get 0 + i32.load16_u offset=16 + i32.const 116 + i32.ne + br_if 42 (;@4;) + block ;; label = @47 + i32.const 4024 + i32.load + local.get 5 + i32.eq + br_if 0 (;@47;) + local.get 0 + i32.load16_u + local.tee 2 + call 7 + br_if 0 (;@47;) + local.get 2 + i32.const 46 + i32.ne + br_if 43 (;@4;) + end + i32.const 16448 + local.get 0 + i32.const 18 + i32.add + i32.store + i32.const 9 + local.set 4 + local.get 0 + i32.load16_u offset=18 + local.tee 5 + i32.const 83 + i32.eq + if ;; label = @47 + local.get 0 + i32.load16_u offset=20 + i32.const 116 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=22 + i32.const 97 + i32.ne + br_if 43 (;@4;) + local.get 0 + i32.load16_u offset=24 + i32.const 114 + i32.ne + br_if 43 (;@4;) + i32.const 16448 + local.get 0 + i32.const 26 + i32.add + i32.store + local.get 0 + i32.load16_u offset=26 + local.set 5 + i32.const 13 + local.set 4 + end + local.get 5 + i32.const 65535 + i32.and + i32.const 40 + i32.ne + br_if 42 (;@4;) + i32.const 4113 + i32.load8_u + if ;; label = @47 + i32.const 16464 + i32.const 0 + i32.store8 + end + i32.const 4116 + i32.const 1 + i32.store16 + i32.const 8240 + local.get 1 + i32.store + local.get 0 + local.get 4 + i32.const 1 + i32.shl + i32.add + local.tee 0 + i32.load16_u offset=2 + i32.const 114 + i32.ne + br_if 42 (;@4;) + i32.const 16448 + local.get 0 + i32.const 2 + i32.add + i32.store + i32.const 2 + call 6 + drop + br 42 (;@4;) + end + block ;; label = @46 + local.get 6 + i32.const 34 + i32.sub + br_table 17 (;@29;) 42 (;@4;) 42 (;@4;) 42 (;@4;) 42 (;@4;) 17 (;@29;) 5 (;@41;) 12 (;@34;) 42 (;@4;) 42 (;@4;) 10 (;@36;) 42 (;@4;) 42 (;@4;) 18 (;@28;) 0 (;@46;) + end + block ;; label = @46 + local.get 6 + i32.const 91 + i32.sub + br_table 20 (;@26;) 42 (;@4;) 9 (;@37;) 42 (;@4;) 42 (;@4;) 22 (;@24;) 42 (;@4;) 42 (;@4;) 3 (;@43;) 42 (;@4;) 2 (;@44;) 0 (;@46;) + end + block ;; label = @46 + local.get 6 + i32.const 123 + i32.sub + br_table 13 (;@33;) 42 (;@4;) 16 (;@30;) 0 (;@46;) + end + local.get 6 + i32.const 60 + i32.eq + br_if 42 (;@3;) + local.get 6 + i32.const 79 + i32.eq + br_if 3 (;@42;) + local.get 6 + i32.const 109 + i32.ne + br_if 41 (;@4;) + end + local.get 0 + i32.load16_u offset=4 + i32.const 111 + i32.ne + br_if 40 (;@4;) + local.get 0 + i32.load16_u offset=6 + i32.const 100 + i32.ne + br_if 40 (;@4;) + local.get 0 + i32.load16_u offset=8 + i32.const 117 + i32.ne + br_if 40 (;@4;) + local.get 0 + i32.load16_u offset=10 + i32.const 108 + i32.ne + br_if 40 (;@4;) + local.get 0 + i32.load16_u offset=12 + i32.const 101 + i32.ne + br_if 40 (;@4;) + local.get 5 + i32.const 4024 + i32.load + i32.ne + if ;; label = @45 + local.get 0 + i32.load16_u + call 7 + i32.eqz + br_if 41 (;@4;) + end + i32.const 16448 + local.get 0 + i32.const 14 + i32.add + i32.store + call 8 + i32.const 46 + i32.ne + br_if 19 (;@25;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 101 + i32.ne + br_if 19 (;@25;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 120 + i32.ne + br_if 19 (;@25;) + local.get 1 + i32.load16_u offset=4 + i32.const 112 + i32.ne + br_if 19 (;@25;) + local.get 1 + i32.load16_u offset=6 + i32.const 111 + i32.ne + br_if 19 (;@25;) + local.get 1 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 19 (;@25;) + local.get 1 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 19 (;@25;) + local.get 1 + i32.load16_u offset=12 + i32.const 115 + i32.ne + br_if 19 (;@25;) + i32.const 1 + call 9 + br 40 (;@4;) + end + local.get 0 + i32.load16_u offset=4 + i32.const 120 + i32.ne + br_if 39 (;@4;) + local.get 0 + i32.load16_u offset=6 + i32.const 112 + i32.ne + br_if 39 (;@4;) + local.get 0 + i32.load16_u offset=8 + i32.const 111 + i32.ne + br_if 39 (;@4;) + local.get 0 + i32.load16_u offset=10 + i32.const 114 + i32.ne + br_if 39 (;@4;) + local.get 0 + i32.load16_u offset=12 + i32.const 116 + i32.ne + br_if 39 (;@4;) + local.get 5 + i32.const 4024 + i32.load + local.tee 1 + i32.ne + if ;; label = @44 + local.get 0 + i32.load16_u + call 7 + i32.eqz + br_if 40 (;@4;) + end + local.get 0 + i32.load16_u offset=14 + i32.const 115 + i32.eq + if ;; label = @44 + i32.const 0 + call 9 + br 40 (;@4;) + end + local.get 4 + br_if 39 (;@4;) + i32.const 16448 + local.get 0 + i32.const 14 + i32.add + local.tee 2 + i32.store + call 8 + local.set 0 + block ;; label = @44 + local.get 2 + i32.const 16448 + i32.load + local.tee 4 + i32.ne + br_if 0 (;@44;) + local.get 0 + i32.const 65528 + i32.and + i32.const 40 + i32.eq + local.get 0 + i32.const 58 + i32.sub + i32.const 6 + i32.lt_u + i32.or + local.get 0 + i32.const 33 + i32.sub + local.tee 2 + i32.const 5 + i32.le_u + i32.const 0 + i32.const 1 + local.get 2 + i32.shl + i32.const 49 + i32.and + select + i32.or + br_if 0 (;@44;) + local.get 0 + i32.const 91 + i32.sub + local.tee 2 + i32.const 3 + i32.le_u + local.get 2 + i32.const 1 + i32.ne + i32.and + br_if 0 (;@44;) + local.get 0 + i32.const 123 + i32.sub + i32.const 65535 + i32.and + i32.const 3 + i32.gt_u + br_if 40 (;@4;) + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @44 + i32.const 4108 + i32.const 7 + i32.store + end + i32.const 16448 + local.get 3 + i32.const 2 + i32.add + i32.store + i32.const 4104 + local.get 4 + local.get 1 + i32.sub + i32.const 1 + i32.shr_s + i32.store + br 39 (;@4;) + end + local.get 5 + i32.const 4024 + i32.load + i32.ne + if ;; label = @43 + local.get 0 + i32.load16_u + call 7 + i32.eqz + br_if 39 (;@4;) + end + local.get 0 + i32.load16_u offset=4 + i32.const 108 + i32.ne + br_if 38 (;@4;) + local.get 0 + i32.load16_u offset=6 + i32.const 97 + i32.ne + br_if 38 (;@4;) + local.get 0 + i32.load16_u offset=8 + i32.const 115 + i32.ne + br_if 38 (;@4;) + local.get 0 + i32.load16_u offset=10 + i32.const 115 + i32.ne + br_if 38 (;@4;) + local.get 0 + i32.load16_u offset=12 + local.tee 0 + i32.const 9 + i32.sub + local.tee 1 + i32.const 23 + i32.gt_u + i32.const 1 + local.get 1 + i32.shl + i32.const 8388639 + i32.and + i32.eqz + i32.or + br_if 35 (;@7;) + br 36 (;@6;) + end + local.get 0 + i32.load16_u offset=4 + i32.const 98 + i32.ne + br_if 37 (;@4;) + local.get 0 + i32.load16_u offset=6 + i32.const 106 + i32.ne + br_if 37 (;@4;) + local.get 0 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 37 (;@4;) + local.get 0 + i32.load16_u offset=10 + i32.const 99 + i32.ne + br_if 37 (;@4;) + local.get 0 + i32.load16_u offset=12 + i32.const 116 + i32.ne + br_if 37 (;@4;) + local.get 5 + i32.const 4024 + i32.load + local.tee 8 + i32.ne + if ;; label = @42 + local.get 0 + i32.load16_u + call 7 + i32.eqz + br_if 38 (;@4;) + end + i32.const 16448 + local.get 0 + i32.const 14 + i32.add + i32.store + local.get 0 + i32.const 12 + i32.add + local.set 2 + call 8 + i32.const 46 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 0 + i32.const 4113 + i32.load8_u + i32.eqz + local.get 0 + i32.const 100 + i32.ne + i32.or + i32.eqz + if ;; label = @42 + i32.const 16448 + i32.load + local.tee 1 + local.get 3 + i32.gt_u + br_if 34 (;@8;) + local.get 3 + local.get 1 + i32.sub + i32.const 1 + i32.shr_s + i32.const 1 + i32.add + local.tee 4 + i32.const 14 + i32.lt_u + br_if 34 (;@8;) + i32.const -1 + local.set 5 + local.get 1 + local.set 0 + loop ;; label = @43 + block ;; label = @44 + local.get 5 + i32.const 13 + i32.eq + if ;; label = @45 + i32.const 14 + local.set 6 + br 1 (;@44;) + end + local.get 5 + i32.const 1027 + i32.add + local.set 7 + local.get 0 + i32.load16_u + local.get 0 + i32.const 2 + i32.add + local.set 0 + local.get 5 + i32.const 1 + i32.add + local.tee 6 + local.set 5 + local.get 7 + i32.load8_s + i32.eq + br_if 1 (;@43;) + end + end + block ;; label = @43 + local.get 4 + i32.const 16 + i32.ge_u + if ;; label = @44 + i32.const -1 + local.set 5 + local.get 1 + local.set 0 + loop ;; label = @45 + local.get 5 + i32.const 15 + i32.eq + if ;; label = @46 + i32.const 14 + i32.const 16 + local.get 6 + i32.const 13 + i32.gt_u + select + local.set 5 + i32.const 1 + local.set 0 + br 3 (;@43;) + end + local.get 5 + i32.const 1042 + i32.add + local.set 4 + local.get 0 + i32.load16_u + local.get 0 + i32.const 2 + i32.add + local.set 0 + local.get 5 + i32.const 1 + i32.add + local.tee 9 + local.set 5 + local.get 4 + i32.load8_s + i32.eq + br_if 0 (;@45;) + end + i32.const 14 + i32.const 16 + local.get 6 + i32.const 13 + i32.gt_u + local.tee 4 + select + local.set 5 + local.get 4 + local.get 9 + i32.const 15 + i32.gt_u + local.tee 0 + i32.or + br_if 1 (;@43;) + br 36 (;@8;) + end + i32.const 14 + local.set 5 + i32.const 0 + local.set 0 + local.get 6 + i32.const 14 + i32.lt_u + br_if 35 (;@8;) + end + i32.const 16448 + local.get 1 + local.get 5 + i32.const 1 + i32.shl + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 34 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + call 10 + i32.eqz + br_if 34 (;@8;) + call 8 + i32.const 44 + i32.ne + br_if 34 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 1 + local.get 0 + if ;; label = @43 + local.get 1 + i32.const 40 + i32.eq + if (result i32) ;; label = @44 + call 11 + else + local.get 1 + end + i32.const 123 + i32.ne + br_if 35 (;@8;) + i32.const 16444 + i32.const 16448 + i32.load + i32.store + br 35 (;@8;) + end + local.get 1 + i32.const 39 + i32.ne + local.get 1 + i32.const 34 + i32.ne + i32.and + br_if 34 (;@8;) + i32.const 16448 + i32.load + local.tee 6 + local.set 5 + block ;; label = @43 + loop ;; label = @44 + block ;; label = @45 + local.get 5 + local.tee 0 + i32.const 2 + i32.add + local.set 5 + local.get 0 + local.get 3 + i32.ge_u + br_if 0 (;@45;) + local.get 1 + local.get 5 + i32.load16_u + local.tee 4 + i32.eq + if ;; label = @46 + local.get 0 + local.set 3 + br 3 (;@43;) + end + local.get 4 + i32.const 92 + i32.ne + if ;; label = @46 + local.get 4 + i32.const 10 + i32.sub + br_table 1 (;@45;) 2 (;@44;) 2 (;@44;) 1 (;@45;) 2 (;@44;) + end + local.get 0 + i32.const 4 + i32.add + local.set 5 + local.get 0 + i32.load16_u offset=4 + i32.const 13 + i32.ne + br_if 1 (;@44;) + local.get 0 + i32.const 6 + i32.add + local.get 5 + local.get 0 + i32.load16_u offset=6 + i32.const 10 + i32.eq + select + local.set 5 + br 1 (;@44;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @44 + i32.const 4108 + i32.const 9 + i32.store + end + i32.const 4104 + local.get 5 + local.get 8 + i32.sub + i32.const 1 + i32.shr_s + i32.store + end + i32.const 16448 + local.get 3 + i32.const 4 + i32.add + local.tee 0 + i32.store + call 8 + i32.const 44 + i32.ne + br_if 34 (;@8;) + local.get 6 + local.get 0 + i32.const 4028 + i32.load + call_indirect (type 0) + br 34 (;@8;) + end + local.get 0 + i32.const 100 + i32.eq + if ;; label = @42 + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=4 + i32.const 102 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=6 + i32.const 105 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=8 + i32.const 110 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=10 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=12 + i32.const 80 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=14 + i32.const 114 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=16 + i32.const 111 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=18 + i32.const 112 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=22 + i32.const 114 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=24 + i32.const 116 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.load16_u offset=26 + i32.const 121 + i32.ne + br_if 34 (;@8;) + local.get 0 + i32.const 26 + i32.add + local.set 2 + i32.const 16448 + local.get 0 + i32.const 28 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 34 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + call 10 + i32.eqz + br_if 34 (;@8;) + call 8 + i32.const 44 + i32.ne + br_if 34 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 1 + i32.const 39 + i32.ne + local.get 1 + i32.const 34 + i32.ne + i32.and + br_if 34 (;@8;) + i32.const 16448 + i32.load + local.tee 4 + local.set 5 + block ;; label = @43 + loop ;; label = @44 + block ;; label = @45 + local.get 5 + local.tee 0 + i32.const 2 + i32.add + local.set 5 + local.get 0 + local.get 3 + i32.ge_u + br_if 0 (;@45;) + local.get 5 + i32.load16_u + local.tee 6 + local.get 1 + i32.eq + br_if 2 (;@43;) + local.get 6 + i32.const 92 + i32.ne + if ;; label = @46 + local.get 6 + i32.const 10 + i32.sub + br_table 1 (;@45;) 2 (;@44;) 2 (;@44;) 1 (;@45;) 2 (;@44;) + end + local.get 0 + i32.const 4 + i32.add + local.set 5 + local.get 0 + i32.load16_u offset=4 + i32.const 13 + i32.ne + br_if 1 (;@44;) + local.get 0 + i32.const 6 + i32.add + local.get 5 + local.get 0 + i32.load16_u offset=6 + i32.const 10 + i32.eq + select + local.set 5 + br 1 (;@44;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @44 + i32.const 4108 + i32.const 9 + i32.store + end + i32.const 4104 + local.get 5 + local.get 8 + i32.sub + i32.const 1 + i32.shr_s + i32.store + local.get 3 + local.set 0 + end + i32.const 16448 + local.get 0 + i32.const 4 + i32.add + local.tee 5 + i32.store + call 8 + i32.const 44 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 101 + i32.eq + if ;; label = @43 + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 110 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=4 + i32.const 117 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=6 + i32.const 109 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=10 + i32.const 114 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=12 + i32.const 97 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=14 + i32.const 98 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=16 + i32.const 108 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=18 + i32.const 101 + i32.ne + br_if 34 (;@9;) + i32.const 16448 + local.get 0 + i32.const 20 + i32.add + i32.store + call 8 + i32.const 58 + i32.ne + br_if 34 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + i32.const 16448 + block (result i32) ;; label = @44 + block ;; label = @45 + call 8 + local.tee 1 + i32.const 116 + i32.ne + br_if 0 (;@45;) + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 114 + i32.ne + br_if 0 (;@45;) + local.get 0 + i32.load16_u offset=4 + i32.const 117 + i32.ne + br_if 0 (;@45;) + local.get 0 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 0 (;@45;) + local.get 0 + i32.const 8 + i32.add + br 1 (;@44;) + end + local.get 1 + i32.const 33 + i32.ne + br_if 35 (;@9;) + i32.const 4112 + i32.load8_u + i32.eqz + br_if 35 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 48 + i32.ne + br_if 35 (;@9;) + i32.const 16448 + i32.load + i32.const 2 + i32.add + end + i32.store + call 8 + i32.const 44 + i32.ne + br_if 34 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 0 + end + local.get 0 + i32.const 103 + i32.ne + if ;; label = @43 + local.get 0 + i32.const 118 + i32.ne + br_if 34 (;@9;) + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 97 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=4 + i32.const 108 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 34 (;@9;) + i32.const 16448 + local.get 0 + i32.const 10 + i32.add + i32.store + call 8 + i32.const 58 + i32.ne + br_if 34 (;@9;) + local.get 4 + local.get 5 + i32.const 4028 + i32.load + call_indirect (type 0) + br 35 (;@8;) + end + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + local.get 0 + i32.const 6 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 58 + i32.eq + if (result i32) ;; label = @43 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 102 + i32.ne + br_if 34 (;@9;) + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 117 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=4 + i32.const 110 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=6 + i32.const 99 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=10 + i32.const 105 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 34 (;@9;) + local.get 0 + i32.load16_u offset=14 + i32.const 110 + i32.ne + br_if 34 (;@9;) + i32.const 16448 + local.get 0 + i32.const 16 + i32.add + local.tee 0 + i32.store + call 8 + local.tee 1 + i32.const 40 + i32.ne + if ;; label = @44 + local.get 0 + i32.const 16448 + i32.load + i32.eq + br_if 35 (;@9;) + local.get 1 + call 12 + i32.eqz + br_if 35 (;@9;) + end + call 8 + else + local.get 0 + end + i32.const 40 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + local.get 0 + i32.const 12 + i32.add + i32.store + call 8 + call 12 + i32.eqz + br_if 33 (;@9;) + block ;; label = @43 + block ;; label = @44 + call 8 + local.tee 0 + i32.const 91 + i32.ne + if ;; label = @45 + local.get 0 + i32.const 46 + i32.ne + br_if 2 (;@43;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + call 12 + br_if 1 (;@44;) + br 36 (;@9;) + end + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 6 + i32.const 39 + i32.ne + local.get 6 + i32.const 34 + i32.ne + i32.and + br_if 35 (;@9;) + i32.const 16448 + i32.load + local.set 0 + block ;; label = @45 + loop ;; label = @46 + block ;; label = @47 + local.get 0 + local.tee 1 + i32.const 2 + i32.add + local.set 0 + local.get 1 + local.get 3 + i32.ge_u + br_if 0 (;@47;) + local.get 6 + local.get 0 + i32.load16_u + local.tee 7 + i32.eq + if ;; label = @48 + local.get 1 + local.set 3 + br 3 (;@45;) + end + local.get 7 + i32.const 92 + i32.ne + if ;; label = @48 + local.get 7 + i32.const 10 + i32.sub + br_table 1 (;@47;) 2 (;@46;) 2 (;@46;) 1 (;@47;) 2 (;@46;) + end + local.get 1 + i32.const 4 + i32.add + local.set 0 + local.get 1 + i32.load16_u offset=4 + i32.const 13 + i32.ne + br_if 1 (;@46;) + local.get 1 + i32.const 6 + i32.add + local.get 0 + local.get 1 + i32.load16_u offset=6 + i32.const 10 + i32.eq + select + local.set 0 + br 1 (;@46;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @46 + i32.const 4108 + i32.const 9 + i32.store + end + i32.const 4104 + local.get 0 + local.get 8 + i32.sub + i32.const 1 + i32.shr_s + i32.store + end + i32.const 16448 + local.get 3 + i32.const 4 + i32.add + i32.store + call 8 + i32.const 93 + i32.ne + br_if 35 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + end + call 8 + local.set 0 + end + local.get 0 + i32.const 59 + i32.eq + if (result i32) ;; label = @43 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + else + local.get 0 + end + i32.const 125 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 44 + i32.eq + if (result i32) ;; label = @43 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + else + local.get 0 + end + i32.const 125 + i32.ne + br_if 33 (;@9;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 33 (;@9;) + local.get 4 + local.get 5 + i32.const 4028 + i32.load + call_indirect (type 0) + br 38 (;@4;) + end + local.get 4 + local.get 0 + i32.const 107 + i32.ne + i32.or + br_if 33 (;@8;) + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=4 + i32.const 121 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=6 + i32.const 115 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.const 6 + i32.add + local.set 2 + i32.const 16448 + local.get 0 + i32.const 8 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 16448 + i32.load + local.set 6 + call 12 + i32.eqz + br_if 33 (;@8;) + i32.const 16448 + i32.load + call 8 + i32.const 41 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + local.tee 2 + i32.const 2 + i32.add + i32.store + call 8 + i32.const 46 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 102 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 111 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=4 + i32.const 114 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=6 + i32.const 69 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=8 + i32.const 97 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=10 + i32.const 99 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=12 + i32.const 104 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + local.get 0 + i32.const 14 + i32.add + i32.store + call 8 + i32.const 16448 + i32.load + local.tee 3 + i32.const 2 + i32.sub + local.set 2 + i32.const 40 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + local.get 3 + i32.const 2 + i32.add + i32.store + call 8 + i32.const 102 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 117 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=4 + i32.const 110 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=6 + i32.const 99 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=10 + i32.const 105 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=14 + i32.const 110 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + local.get 0 + i32.const 16 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 16448 + i32.load + local.set 0 + call 12 + i32.eqz + br_if 33 (;@8;) + i32.const 16448 + i32.load + local.set 3 + call 8 + i32.const 41 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 105 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.load + local.tee 4 + i32.load16_u offset=2 + i32.const 102 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + local.get 4 + i32.const 4 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 5 + local.get 0 + local.get 3 + local.get 0 + i32.sub + local.tee 3 + call 0 + br_if 33 (;@8;) + local.get 6 + i32.sub + local.tee 8 + i32.const 1 + i32.shr_s + local.set 7 + i32.const 16448 + local.get 5 + local.get 3 + i32.const 1 + i32.shr_s + local.tee 9 + i32.const 1 + i32.shl + local.tee 4 + i32.add + i32.store + block ;; label = @42 + block ;; label = @43 + block ;; label = @44 + call 8 + local.tee 1 + i32.const 33 + i32.ne + if ;; label = @45 + local.get 1 + i32.const 61 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 61 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 61 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 6 + i32.add + i32.store + call 8 + local.tee 5 + i32.const 39 + i32.ne + local.get 5 + i32.const 34 + i32.ne + i32.and + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 100 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 101 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 102 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 97 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 117 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 108 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 116 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 16 + i32.add + i32.store + call 8 + local.get 5 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 124 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 124 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 4 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 0 + local.get 3 + call 0 + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 61 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 61 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 61 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 6 + i32.add + i32.store + call 8 + local.tee 5 + i32.const 39 + i32.ne + local.get 5 + i32.const 34 + i32.ne + i32.and + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 95 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 95 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 115 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 77 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 100 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=16 + i32.const 117 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=18 + i32.const 108 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 22 + i32.add + i32.store + call 8 + local.get 5 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + i32.const 59 + i32.eq + if ;; label = @46 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + end + call 8 + local.tee 5 + i32.const 105 + i32.ne + br_if 3 (;@42;) + i32.const 105 + local.set 5 + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 102 + i32.ne + br_if 3 (;@42;) + i32.const 16448 + local.get 1 + i32.const 4 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + local.tee 5 + i32.store + local.get 0 + local.get 9 + call 13 + if ;; label = @46 + call 8 + i32.const 41 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + i32.const 59 + i32.eq + if ;; label = @47 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + end + call 8 + local.tee 5 + i32.const 105 + i32.ne + br_if 4 (;@42;) + i32.const 105 + local.set 5 + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 102 + i32.ne + br_if 4 (;@42;) + i32.const 16448 + local.get 1 + i32.const 4 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + i32.load + i32.const 2 + i32.add + local.set 5 + end + i32.const 16448 + local.get 5 + i32.store + local.get 5 + local.get 0 + local.get 3 + call 0 + br_if 37 (;@8;) + i32.const 16448 + local.get 4 + local.get 5 + i32.add + i32.store + call 8 + i32.const 105 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 110 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 32 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 6 + i32.add + i32.store + call 8 + call 10 + i32.eqz + br_if 37 (;@8;) + call 8 + i32.const 38 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 38 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 4 + i32.add + i32.store + call 8 + call 10 + i32.eqz + br_if 37 (;@8;) + call 8 + i32.const 91 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 0 + local.get 3 + call 0 + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 93 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 61 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 61 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 61 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 6 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 6 + local.get 8 + call 0 + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + local.get 7 + i32.const 1 + i32.shl + i32.add + i32.store + call 8 + i32.const 91 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 0 + local.get 3 + call 0 + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 93 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + i32.const 59 + i32.eq + br_if 1 (;@44;) + br 2 (;@43;) + end + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 61 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 61 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + local.get 1 + i32.const 6 + i32.add + i32.store + call 8 + local.tee 5 + i32.const 39 + i32.ne + local.get 5 + i32.const 34 + i32.ne + i32.and + br_if 36 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 100 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 101 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 102 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 97 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 117 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 108 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 116 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + local.get 1 + i32.const 16 + i32.add + i32.store + call 8 + local.get 5 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 1 + i32.const 38 + i32.eq + if (result i32) ;; label = @45 + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 38 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + local.get 1 + i32.const 4 + i32.add + i32.store + call 8 + i32.const 33 + i32.ne + br_if 37 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + block ;; label = @46 + block ;; label = @47 + call 8 + local.tee 5 + i32.const 79 + i32.ne + br_if 0 (;@47;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 98 + i32.ne + br_if 0 (;@47;) + local.get 1 + i32.load16_u offset=4 + i32.const 106 + i32.ne + br_if 0 (;@47;) + local.get 1 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 0 (;@47;) + local.get 1 + i32.load16_u offset=8 + i32.const 99 + i32.ne + br_if 0 (;@47;) + local.get 1 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 0 (;@47;) + local.get 1 + i32.load16_u offset=12 + i32.const 46 + i32.ne + br_if 0 (;@47;) + local.get 0 + local.get 9 + call 13 + br_if 1 (;@46;) + br 39 (;@8;) + end + local.get 5 + call 12 + i32.eqz + br_if 0 (;@46;) + call 8 + i32.const 46 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 104 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 97 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 115 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 79 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 119 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 80 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 114 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=16 + i32.const 111 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=18 + i32.const 112 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=22 + i32.const 114 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=24 + i32.const 116 + i32.ne + br_if 38 (;@8;) + local.get 1 + i32.load16_u offset=26 + i32.const 121 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + local.get 1 + i32.const 28 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 0 + local.get 3 + call 0 + br_if 38 (;@8;) + i32.const 16448 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 38 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + end + call 8 + else + local.get 1 + end + i32.const 41 + i32.ne + br_if 36 (;@8;) + end + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + end + call 8 + local.set 5 + end + block ;; label = @42 + block ;; label = @43 + local.get 5 + call 10 + if ;; label = @44 + call 8 + i32.const 91 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 0 + local.get 3 + call 0 + br_if 36 (;@8;) + i32.const 16448 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 93 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 61 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 6 + local.get 8 + call 0 + br_if 36 (;@8;) + i32.const 16448 + local.get 1 + local.get 7 + i32.const 1 + i32.shl + i32.add + i32.store + call 8 + i32.const 91 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 0 + local.get 3 + call 0 + br_if 36 (;@8;) + i32.const 16448 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 93 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 5 + i32.const 59 + i32.eq + br_if 1 (;@43;) + br 2 (;@42;) + end + local.get 5 + i32.const 79 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 98 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 106 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 99 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + i32.const 46 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 100 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 102 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 105 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 110 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 101 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 80 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 114 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=16 + i32.const 111 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=18 + i32.const 112 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=22 + i32.const 114 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=24 + i32.const 116 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=26 + i32.const 121 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + local.get 1 + i32.const 28 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + call 10 + i32.eqz + br_if 35 (;@8;) + call 8 + i32.const 44 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 0 + local.get 3 + call 0 + br_if 35 (;@8;) + i32.const 16448 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 44 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 101 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 110 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 117 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 109 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 114 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 97 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 98 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=16 + i32.const 108 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=18 + i32.const 101 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + local.get 1 + i32.const 20 + i32.add + i32.store + call 8 + i32.const 58 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + i32.const 16448 + block (result i32) ;; label = @44 + block ;; label = @45 + call 8 + local.tee 5 + i32.const 116 + i32.ne + br_if 0 (;@45;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 114 + i32.ne + br_if 0 (;@45;) + local.get 1 + i32.load16_u offset=4 + i32.const 117 + i32.ne + br_if 0 (;@45;) + local.get 1 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 0 (;@45;) + local.get 1 + i32.const 8 + i32.add + br 1 (;@44;) + end + local.get 5 + i32.const 33 + i32.ne + br_if 36 (;@8;) + i32.const 4112 + i32.load8_u + i32.eqz + br_if 36 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 48 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + i32.load + i32.const 2 + i32.add + end + i32.store + call 8 + i32.const 44 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 103 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + local.get 1 + i32.const 6 + i32.add + i32.store + call 8 + local.tee 1 + i32.const 58 + i32.eq + if (result i32) ;; label = @44 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 102 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 117 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 110 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 99 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 105 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 110 + i32.ne + br_if 36 (;@8;) + i32.const 16448 + local.get 1 + i32.const 16 + i32.add + local.tee 1 + i32.store + call 8 + local.tee 5 + i32.const 40 + i32.ne + if ;; label = @45 + local.get 1 + i32.const 16448 + i32.load + i32.eq + br_if 37 (;@8;) + local.get 5 + call 12 + i32.eqz + br_if 37 (;@8;) + end + call 8 + else + local.get 1 + end + i32.const 40 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 6 + local.get 8 + call 0 + br_if 35 (;@8;) + i32.const 16448 + local.get 1 + local.get 7 + i32.const 1 + i32.shl + i32.add + i32.store + call 8 + i32.const 91 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 1 + local.get 0 + local.get 3 + call 0 + br_if 35 (;@8;) + i32.const 16448 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 93 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 59 + i32.eq + if (result i32) ;; label = @44 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + else + local.get 0 + end + i32.const 125 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 44 + i32.eq + if (result i32) ;; label = @44 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + else + local.get 0 + end + i32.const 125 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 35 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 5 + i32.const 59 + i32.ne + br_if 1 (;@42;) + end + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 5 + end + local.get 5 + i32.const 125 + i32.ne + br_if 33 (;@8;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 33 (;@8;) + i32.const 16432 + local.set 5 + loop ;; label = @42 + local.get 5 + i32.load + local.tee 0 + i32.eqz + br_if 38 (;@4;) + block ;; label = @43 + local.get 7 + local.get 0 + i32.load offset=12 + local.get 0 + i32.load offset=8 + local.tee 1 + i32.sub + i32.const 1 + i32.shr_s + i32.ne + br_if 0 (;@43;) + local.get 6 + local.get 1 + local.get 8 + call 0 + br_if 0 (;@43;) + local.get 0 + i32.load + local.get 0 + i32.load offset=4 + i32.const 4032 + i32.load + call_indirect (type 0) + br 35 (;@8;) + end + local.get 0 + i32.const 16 + i32.add + local.set 5 + br 0 (;@42;) + end + unreachable + end + local.get 4 + local.set 2 + local.get 4 + i32.const 2048 + i32.ne + br_if 0 (;@40;) + i32.const 4108 + i32.load + local.tee 2 + br_if 30 (;@10;) + br 28 (;@12;) + end + i32.const 4113 + i32.load8_u + if ;; label = @40 + local.get 2 + i32.const 16464 + i32.add + i32.const 0 + i32.store8 + end + i32.const 4116 + local.get 4 + i32.const 1 + i32.add + i32.store16 + local.get 2 + i32.const 2 + i32.shl + i32.const 8240 + i32.add + local.get 1 + i32.store + br 36 (;@3;) + end + i32.const 4113 + i32.load8_u + i32.eqz + br_if 35 (;@3;) + br 25 (;@13;) + end + i32.const 4113 + i32.load8_u + i32.eqz + br_if 34 (;@3;) + i32.const 4108 + i32.load + local.tee 2 + br_if 27 (;@10;) + br 22 (;@15;) + end + i32.const 4113 + i32.load8_u + i32.eqz + br_if 33 (;@3;) + i32.const 4116 + local.get 4 + i32.const 1 + i32.sub + i32.store16 + br 33 (;@3;) + end + local.get 4 + i32.eqz + br_if 32 (;@3;) + i32.const 4113 + i32.load8_u + i32.eqz + br_if 32 (;@3;) + local.get 4 + i32.const 16463 + i32.add + i32.load8_u + i32.const 2 + i32.and + i32.eqz + br_if 32 (;@3;) + br 19 (;@16;) + end + i32.const 4108 + i32.load + local.tee 2 + i32.eqz + br_if 19 (;@15;) + br 24 (;@10;) + end + i32.const 4116 + local.get 4 + i32.const 1 + i32.sub + i32.store16 + br 30 (;@3;) end - local.get 8 - call 11 - i32.eqz - br_if 0 (;@32;) - call 7 - i32.const 46 - i32.ne - br_if 23 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 104 - i32.ne - br_if 23 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 97 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 115 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 79 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 119 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 110 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 80 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 114 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=16 - i32.const 111 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=18 - i32.const 112 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=20 - i32.const 101 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=22 - i32.const 114 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=24 - i32.const 116 - i32.ne - br_if 23 (;@9;) - local.get 0 - i32.load16_u offset=26 - i32.const 121 - i32.ne - br_if 23 (;@9;) - i32.const 16412 - local.get 0 - i32.const 28 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 23 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 1 - local.get 2 - call 0 - br_if 23 (;@9;) - i32.const 16412 - local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 41 + local.get 4 + local.set 2 + local.get 4 + i32.const 2048 i32.ne - br_if 23 (;@9;) - i32.const 16412 - i32.const 16412 + br_if 0 (;@32;) + i32.const 4108 i32.load - i32.const 2 - i32.add - i32.store + local.tee 2 + i32.eqz + br_if 20 (;@12;) + br 22 (;@10;) end - call 7 - else - local.get 0 - end - i32.const 41 - i32.ne - br_if 21 (;@9;) - end - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - end - call 7 - local.set 0 - end - block ;; label = @28 - block ;; label = @29 - local.get 0 - call 10 - if ;; label = @30 - call 7 - i32.const 91 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 1 - local.get 2 - call 0 - br_if 21 (;@9;) - i32.const 16412 - local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 93 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 61 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 5 - local.get 6 - call 0 - br_if 21 (;@9;) - i32.const 16412 - local.get 0 - local.get 7 - i32.const 1 - i32.shl - i32.add - i32.store - call 7 - i32.const 91 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 1 - local.get 2 - call 0 - br_if 21 (;@9;) - i32.const 16412 - local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 93 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 0 - i32.const 59 - i32.eq - br_if 1 (;@29;) - br 2 (;@28;) - end - local.get 0 - i32.const 79 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 98 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 106 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 101 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 99 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 116 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - local.get 0 - i32.const 12 - i32.add - i32.store - call 7 - i32.const 46 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 100 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 102 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 105 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 110 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 101 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 80 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 114 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=16 - i32.const 111 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=18 - i32.const 112 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=20 - i32.const 101 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=22 - i32.const 114 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=24 - i32.const 116 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=26 - i32.const 121 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - local.get 0 - i32.const 28 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - call 10 - i32.eqz - br_if 20 (;@9;) - call 7 - i32.const 44 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 1 - local.get 2 - call 0 - br_if 20 (;@9;) - i32.const 16412 - local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 44 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 123 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 101 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 110 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 117 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 109 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 101 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 114 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 97 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 98 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=16 - i32.const 108 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=18 - i32.const 101 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - local.get 0 - i32.const 20 - i32.add - i32.store - call 7 - i32.const 58 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - i32.const 16412 - block (result i32) ;; label = @30 - block ;; label = @31 - call 7 - local.tee 9 - i32.const 116 - i32.ne - br_if 0 (;@31;) - i32.const 16412 - i32.load + i32.const 4113 + i32.load8_u local.tee 0 - i32.load16_u offset=2 - i32.const 114 - i32.ne - br_if 0 (;@31;) - local.get 0 - i32.load16_u offset=4 - i32.const 117 - i32.ne - br_if 0 (;@31;) + if ;; label = @32 + local.get 2 + i32.const 16464 + i32.add + i32.const 0 + i32.store8 + end + i32.const 4116 + local.get 4 + i32.const 1 + i32.add + local.tee 3 + i32.store16 + local.get 2 + i32.const 2 + i32.shl + i32.const 8240 + i32.add + local.get 1 + i32.store + local.get 3 + i32.const 65535 + i32.and + local.tee 1 + i32.const 16463 + i32.add + i32.const 16440 + i32.load8_u + local.tee 2 + i32.store8 + i32.const 16440 + i32.const 0 + i32.store8 local.get 0 - i32.load16_u offset=6 - i32.const 101 + i32.eqz + br_if 28 (;@3;) + local.get 5 + i32.const 16444 + i32.load i32.ne - br_if 0 (;@31;) - local.get 0 - i32.const 8 + br_if 28 (;@3;) + local.get 1 + i32.const 16463 i32.add - br 1 (;@30;) + local.get 2 + i32.const 2 + i32.or + i32.store8 + i32.const 16444 + i32.const 0 + i32.store + br 15 (;@16;) end - local.get 9 - i32.const 33 - i32.ne - br_if 21 (;@9;) - i32.const 4080 - i32.load8_u - i32.eqz - br_if 21 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 48 - i32.ne - br_if 21 (;@9;) - i32.const 16412 + i32.const 4108 i32.load + local.tee 2 + br_if 20 (;@10;) i32.const 2 - i32.add + local.set 2 + br 19 (;@11;) end - i32.store - call 7 - i32.const 44 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 103 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 116 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - local.get 0 - i32.const 6 - i32.add - i32.store - call 7 + i32.const 4116 + local.get 4 + i32.const 1 + i32.sub + local.tee 1 + i32.store16 + i32.const 4118 + i32.load16_u local.tee 0 - i32.const 58 + local.get 4 i32.eq - if (result i32) ;; label = @30 - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 102 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - i32.load + if ;; label = @30 + i32.const 4114 + i32.const 4114 + i32.load16_u + i32.const 1 + i32.sub local.tee 0 - i32.load16_u offset=2 - i32.const 117 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 110 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=6 - i32.const 99 - i32.ne - br_if 21 (;@9;) + i32.store16 + i32.const 4118 local.get 0 - i32.load16_u offset=8 - i32.const 116 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 105 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=12 - i32.const 111 - i32.ne - br_if 21 (;@9;) - local.get 0 - i32.load16_u offset=14 - i32.const 110 - i32.ne - br_if 21 (;@9;) - i32.const 16412 - local.get 0 - i32.const 16 + i32.const 65535 + i32.and + i32.const 1 + i32.shl + i32.const 4128 i32.add - local.tee 0 - i32.store - call 7 - local.tee 9 - i32.const 40 - i32.ne - if ;; label = @31 - local.get 0 - i32.const 16412 - i32.load - i32.eq - br_if 22 (;@9;) - local.get 9 - call 11 - i32.eqz - br_if 22 (;@9;) - end - call 7 - else - local.get 0 + i32.load16_u + i32.store16 + br 13 (;@17;) end - i32.const 40 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 41 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 123 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 114 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=4 - i32.const 116 - i32.ne - br_if 20 (;@9;) local.get 0 - i32.load16_u offset=6 - i32.const 117 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=8 - i32.const 114 - i32.ne - br_if 20 (;@9;) - local.get 0 - i32.load16_u offset=10 - i32.const 110 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - local.get 0 - i32.const 12 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 - local.get 5 - local.get 6 - call 0 - br_if 20 (;@9;) - i32.const 16412 - local.get 0 - local.get 7 - i32.const 1 - i32.shl - i32.add - i32.store - call 7 - i32.const 91 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 0 + i32.const 65535 + i32.eq local.get 1 - local.get 2 - call 0 - br_if 20 (;@9;) - i32.const 16412 + i32.const 65535 + i32.and local.get 0 - local.get 3 - i32.add - i32.store - call 7 - i32.const 93 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 + i32.ge_u + i32.or + br_if 26 (;@3;) + i32.const 4108 i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 0 - i32.const 59 - i32.eq - if (result i32) ;; label = @30 - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - else - local.get 0 + local.tee 2 + br_if 19 (;@10;) + i32.const 3 + local.set 2 + br 18 (;@11;) + end + block ;; label = @29 + loop ;; label = @30 + block ;; label = @31 + local.get 5 + local.tee 0 + i32.const 2 + i32.add + local.set 5 + local.get 0 + local.get 3 + i32.ge_u + br_if 0 (;@31;) + local.get 5 + i32.load16_u + local.tee 1 + local.get 6 + i32.eq + br_if 2 (;@29;) + local.get 1 + i32.const 92 + i32.ne + if ;; label = @32 + local.get 1 + i32.const 10 + i32.sub + br_table 1 (;@31;) 2 (;@30;) 2 (;@30;) 1 (;@31;) 2 (;@30;) + end + local.get 0 + i32.const 4 + i32.add + local.set 5 + local.get 0 + i32.load16_u offset=4 + i32.const 13 + i32.ne + br_if 1 (;@30;) + local.get 0 + i32.const 6 + i32.add + local.get 5 + local.get 0 + i32.load16_u offset=6 + i32.const 10 + i32.eq + select + local.set 5 + br 1 (;@30;) + end end - i32.const 125 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 + i32.const 4108 i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 0 - i32.const 44 - i32.eq - if (result i32) ;; label = @30 - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add + i32.eqz + if ;; label = @30 + i32.const 4108 + i32.const 9 i32.store - call 7 - else - local.get 0 end - i32.const 125 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 41 - i32.ne - br_if 20 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.tee 0 - i32.const 59 - i32.ne - br_if 1 (;@28;) - end - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.set 0 - end - local.get 0 - i32.const 125 - i32.ne - br_if 18 (;@9;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 41 - i32.ne - br_if 18 (;@9;) - i32.const 16400 - local.set 0 - loop ;; label = @28 - local.get 0 - i32.load - local.tee 0 - i32.eqz - br_if 23 (;@5;) - block ;; label = @29 - local.get 7 - local.get 0 - i32.load offset=12 - local.get 0 - i32.load offset=8 - local.tee 1 + i32.const 4104 + local.get 5 + i32.const 4024 + i32.load i32.sub i32.const 1 i32.shr_s - i32.ne - br_if 0 (;@29;) - local.get 5 - local.get 1 - local.get 6 - call 0 - br_if 0 (;@29;) - local.get 0 - i32.load - local.get 0 - i32.load offset=4 - i32.const 4000 - i32.load - call_indirect (type 0) - br 20 (;@9;) + i32.store + local.get 3 + i32.const 2 + i32.add + local.set 5 end - local.get 0 - i32.const 16 - i32.add - local.set 0 - br 0 (;@28;) + i32.const 16448 + local.get 5 + i32.store + br 25 (;@3;) end - unreachable - end - i32.const 4076 - i32.load - local.tee 0 - i32.const 0 - i32.const 4086 - i32.load16_u - i32.const 65535 - i32.ne - i32.const 4084 - i32.load16_u - i32.const 0 - i32.ne - i32.or - local.get 0 - i32.const 0 - i32.ne - i32.or - local.tee 5 - select - local.set 3 - i32.const 1 - local.set 1 - local.get 5 - i32.eqz - local.get 0 - i32.or - br_if 25 (;@1;) - br 14 (;@12;) - end - i32.const 8208 - local.get 4 - i32.store - i32.const 4084 - i32.const 1 - i32.store16 - br 20 (;@5;) - end - i32.const 4086 - i32.load16_u - i32.const 65534 - i32.ne - br_if 2 (;@22;) - i32.const 4076 - i32.load - local.tee 1 - br_if 13 (;@11;) - i32.const 4 - local.set 1 - br 12 (;@12;) - end - local.get 0 - i32.const 4 - i32.add - local.set 3 - block ;; label = @24 - block ;; label = @25 - i32.const 4092 - block (result i32) ;; label = @26 - block ;; label = @27 + local.get 0 + i32.const 4 + i32.add + local.set 2 block ;; label = @28 block ;; label = @29 block ;; label = @30 block ;; label = @31 - block ;; label = @32 + local.get 0 + i32.load16_u offset=4 + local.tee 0 + i32.const 47 + i32.ne + if ;; label = @32 local.get 0 - i32.load16_u offset=4 + i32.const 42 + i32.eq + br_if 1 (;@31;) + local.get 1 + i32.load16_u + local.tee 7 + i32.const 33 + i32.sub local.tee 0 - i32.const 47 + i32.const 5 + i32.le_u + i32.const 0 + i32.const 1 + local.get 0 + i32.shl + i32.const 49 + i32.and + select + br_if 13 (;@19;) + local.get 7 + i32.const 41 i32.ne - if ;; label = @33 - local.get 0 - i32.const 42 - i32.eq - br_if 1 (;@32;) - local.get 5 - i32.load16_u - local.tee 3 - i32.const 33 - i32.sub - local.tee 0 - i32.const 5 - i32.le_u - i32.const 0 - i32.const 1 - local.get 0 - i32.shl - i32.const 49 - i32.and - select - br_if 6 (;@27;) - local.get 3 - i32.const 41 - i32.ne - local.get 3 - i32.const 40 - i32.sub - i32.const 65535 - i32.and - i32.const 7 - i32.lt_u - i32.and - br_if 3 (;@30;) - local.get 3 - i32.const 58 - i32.sub - i32.const 6 - i32.lt_u - br_if 6 (;@27;) - local.get 3 - i32.const 91 - i32.sub - br_table 6 (;@27;) 2 (;@31;) 2 (;@31;) 6 (;@27;) 2 (;@31;) - end - loop ;; label = @33 - local.get 3 - local.tee 4 - i32.const 2 - i32.sub - local.get 2 - i32.ge_u - br_if 9 (;@24;) - local.get 3 - i32.const 2 - i32.add - local.set 3 - local.get 4 - i32.load16_u - i32.const 10 - i32.sub - br_table 9 (;@24;) 0 (;@33;) 0 (;@33;) 9 (;@24;) 0 (;@33;) - end - unreachable + local.get 7 + i32.const 40 + i32.sub + i32.const 65535 + i32.and + i32.const 7 + i32.lt_u + i32.and + br_if 3 (;@29;) + local.get 7 + i32.const 58 + i32.sub + i32.const 6 + i32.lt_u + br_if 13 (;@19;) + local.get 7 + i32.const 91 + i32.sub + br_table 13 (;@19;) 2 (;@30;) 2 (;@30;) 13 (;@19;) 2 (;@30;) end loop ;; label = @32 - local.get 3 - local.tee 0 local.get 2 + local.tee 5 + i32.const 2 + i32.sub + local.get 3 i32.ge_u - br_if 7 (;@25;) - local.get 0 + br_if 10 (;@22;) + local.get 5 i32.const 2 i32.add - local.tee 1 - local.set 3 - local.get 1 - i32.load16_u - i32.const 42 - i32.ne - br_if 0 (;@32;) - local.get 0 - i32.const 4 - i32.add - local.tee 4 + local.set 2 + local.get 5 i32.load16_u - i32.const 47 - i32.ne - br_if 0 (;@32;) + i32.const 10 + i32.sub + br_table 10 (;@22;) 0 (;@32;) 0 (;@32;) 10 (;@22;) 0 (;@32;) end - br 7 (;@24;) + unreachable end - local.get 3 - i32.const 125 - i32.eq - local.tee 0 - local.get 3 - i32.const 123 - i32.sub - i32.const 65535 - i32.and - i32.const 3 - i32.gt_u - i32.or - br_if 1 (;@29;) + loop ;; label = @31 + local.get 2 + local.tee 0 + local.get 3 + i32.ge_u + br_if 8 (;@23;) + local.get 0 + i32.const 2 + i32.add + local.tee 2 + i32.load16_u + i32.const 42 + i32.ne + br_if 0 (;@31;) + local.get 0 + i32.const 4 + i32.add + local.tee 5 + i32.load16_u + i32.const 47 + i32.ne + br_if 0 (;@31;) + end + br 8 (;@22;) end + local.get 7 + i32.const 125 + i32.eq + local.tee 0 + local.get 7 + i32.const 123 + i32.sub + i32.const 65535 + i32.and + i32.const 3 + i32.gt_u + i32.or + br_if 1 (;@28;) + end + block ;; label = @29 block ;; label = @30 block ;; label = @31 - block ;; label = @32 - local.get 3 - i32.const 43 - i32.sub - br_table 1 (;@31;) 5 (;@27;) 2 (;@30;) 0 (;@32;) 5 (;@27;) - end - i32.const 0 - local.set 1 - local.get 5 - i32.const 2 - i32.sub - i32.load16_u - i32.const 48 + local.get 7 + i32.const 43 i32.sub - i32.const 65535 - i32.and - i32.const 10 - i32.lt_u - br_if 3 (;@28;) - br 4 (;@27;) + br_table 1 (;@30;) 12 (;@19;) 2 (;@29;) 0 (;@31;) 12 (;@19;) end i32.const 0 - local.set 1 - local.get 5 + local.set 2 + local.get 1 i32.const 2 i32.sub i32.load16_u - i32.const 43 - i32.eq - br_if 2 (;@28;) - br 3 (;@27;) + i32.const 48 + i32.sub + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + br_if 10 (;@20;) + br 11 (;@19;) end i32.const 0 - local.set 1 - local.get 5 + local.set 2 + local.get 1 i32.const 2 i32.sub i32.load16_u - i32.const 45 + i32.const 43 i32.eq - br_if 1 (;@28;) - br 2 (;@27;) + br_if 9 (;@20;) + br 10 (;@19;) end i32.const 0 - local.set 1 + local.set 2 + local.get 1 + i32.const 2 + i32.sub + i32.load16_u + i32.const 45 + i32.eq + br_if 8 (;@20;) + br 9 (;@19;) + end + i32.const 0 + local.set 2 + block ;; label = @28 block ;; label = @29 block ;; label = @30 block ;; label = @31 block ;; label = @32 - block ;; label = @33 - block ;; label = @34 - block ;; label = @35 - block ;; label = @36 - block ;; label = @37 - block ;; label = @38 - local.get 3 - i32.const 100 - i32.sub - br_table 1 (;@37;) 2 (;@36;) 3 (;@35;) 10 (;@28;) 10 (;@28;) 10 (;@28;) 10 (;@28;) 10 (;@28;) 10 (;@28;) 10 (;@28;) 4 (;@34;) 5 (;@33;) 10 (;@28;) 10 (;@28;) 6 (;@32;) 10 (;@28;) 7 (;@31;) 10 (;@28;) 10 (;@28;) 8 (;@30;) 0 (;@38;) - end - block ;; label = @38 - local.get 0 - i32.eqz - if ;; label = @39 - local.get 3 - i32.const 47 - i32.eq - br_if 1 (;@38;) - local.get 3 - i32.const 41 - i32.ne - br_if 11 (;@28;) - block ;; label = @40 - local.get 6 - i32.const 2 - i32.shl - i32.const 8208 - i32.add - i32.load - local.tee 0 - i32.const 8 - i32.sub - local.tee 6 - i32.const 3992 - i32.load - local.tee 5 - i32.lt_u - br_if 0 (;@40;) - local.get 6 - i32.load16_u - i32.const 119 - i32.ne - br_if 0 (;@40;) - local.get 0 - i32.const 6 - i32.sub - i32.load16_u - i32.const 104 - i32.ne - br_if 0 (;@40;) - local.get 0 - i32.const 4 - i32.sub - i32.load16_u - i32.const 105 - i32.ne - br_if 0 (;@40;) - local.get 0 - i32.const 2 - i32.sub - i32.load16_u - i32.const 108 - i32.ne - br_if 0 (;@40;) - local.get 0 - i32.load16_u - i32.const 101 - i32.ne - br_if 0 (;@40;) - local.get 5 - local.get 6 - i32.eq - br_if 13 (;@27;) - local.get 0 - i32.const 10 - i32.sub - i32.load16_u - call 6 - br_if 13 (;@27;) - end - block ;; label = @40 - local.get 0 - i32.const 4 - i32.sub - local.tee 6 - local.get 5 - i32.lt_u - br_if 0 (;@40;) - local.get 6 - i32.load16_u - i32.const 102 - i32.ne - br_if 0 (;@40;) - local.get 0 - i32.const 2 - i32.sub - i32.load16_u - i32.const 111 - i32.ne - br_if 0 (;@40;) - local.get 0 - i32.load16_u - i32.const 114 - i32.ne - br_if 0 (;@40;) - local.get 5 - local.get 6 - i32.eq - br_if 13 (;@27;) - local.get 0 - i32.const 6 - i32.sub - i32.load16_u - call 6 - br_if 13 (;@27;) - end - local.get 0 + block ;; label = @33 + block ;; label = @34 + block ;; label = @35 + block ;; label = @36 + block ;; label = @37 + block ;; label = @38 + local.get 7 + i32.const 100 + i32.sub + local.tee 11 + br_table 1 (;@37;) 2 (;@36;) 3 (;@35;) 18 (;@20;) 18 (;@20;) 18 (;@20;) 18 (;@20;) 18 (;@20;) 18 (;@20;) 18 (;@20;) 4 (;@34;) 5 (;@33;) 18 (;@20;) 18 (;@20;) 6 (;@32;) 18 (;@20;) 7 (;@31;) 18 (;@20;) 18 (;@20;) 8 (;@30;) 0 (;@38;) + end + local.get 0 + i32.eqz + if ;; label = @38 + local.get 7 + i32.const 47 + i32.eq + br_if 10 (;@28;) + local.get 7 + i32.const 41 + i32.ne + br_if 17 (;@21;) + block ;; label = @39 + local.get 4 i32.const 2 + i32.shl + i32.const 8240 + i32.add + i32.load + local.tee 0 + i32.const 8 i32.sub - local.tee 7 - local.get 5 + local.tee 2 + i32.const 4024 + i32.load + local.tee 1 i32.lt_u - br_if 11 (;@28;) - local.get 7 + br_if 0 (;@39;) + local.get 2 + i32.load16_u + i32.const 119 + i32.ne + br_if 0 (;@39;) + local.get 0 + i32.const 6 + i32.sub + i32.load16_u + i32.const 104 + i32.ne + br_if 0 (;@39;) + local.get 0 + i32.const 4 + i32.sub i32.load16_u i32.const 105 i32.ne - br_if 11 (;@28;) + br_if 0 (;@39;) + local.get 0 + i32.const 2 + i32.sub + i32.load16_u + i32.const 108 + i32.ne + br_if 0 (;@39;) + local.get 0 + i32.load16_u + i32.const 101 + i32.ne + br_if 0 (;@39;) + local.get 1 + local.get 2 + i32.eq + br_if 20 (;@19;) + local.get 0 + i32.const 10 + i32.sub + i32.load16_u + call 7 + br_if 20 (;@19;) + end + block ;; label = @39 local.get 0 + i32.const 4 + i32.sub + local.tee 4 + local.get 1 + i32.lt_u + br_if 0 (;@39;) + local.get 4 i32.load16_u i32.const 102 i32.ne - br_if 11 (;@28;) - local.get 5 - local.get 7 + br_if 0 (;@39;) + local.get 0 + i32.const 2 + i32.sub + i32.load16_u + i32.const 111 + i32.ne + br_if 0 (;@39;) + local.get 0 + i32.load16_u + i32.const 114 + i32.ne + br_if 0 (;@39;) + local.get 1 + local.get 4 i32.eq - br_if 12 (;@27;) - local.get 6 + br_if 20 (;@19;) + local.get 0 + i32.const 6 + i32.sub i32.load16_u - call 6 - i32.eqz - br_if 11 (;@28;) - br 12 (;@27;) + call 7 + br_if 20 (;@19;) + end + local.get 0 + i32.const 2 + i32.sub + local.tee 2 + local.get 1 + i32.lt_u + br_if 17 (;@21;) + local.get 2 + i32.load16_u + i32.const 105 + i32.ne + br_if 17 (;@21;) + local.get 0 + i32.load16_u + i32.const 102 + i32.ne + br_if 17 (;@21;) + local.get 1 + local.get 2 + i32.eq + br_if 19 (;@19;) + i32.const 0 + local.set 2 + local.get 4 + i32.load16_u + call 7 + i32.eqz + br_if 18 (;@20;) + br 19 (;@19;) + end + local.get 4 + i32.const 2 + i32.shl + i32.const 8240 + i32.add + i32.load + local.tee 0 + call 14 + br_if 18 (;@19;) + local.get 4 + i32.const 16464 + i32.add + i32.load8_u + i32.const 1 + i32.and + br_if 18 (;@19;) + i32.const 4113 + i32.load8_u + i32.eqz + br_if 17 (;@20;) + i32.const 4024 + i32.load + local.tee 9 + i32.const 6 + i32.add + local.set 12 + loop ;; label = @38 + local.get 0 + i32.eqz + local.get 0 + i32.const 1024 + i32.eq + i32.or + br_if 19 (;@19;) + local.get 4 + i32.const 65535 + i32.and + i32.eqz + local.get 0 + i32.load16_u + local.tee 6 + i32.const 123 + i32.ne + i32.or + i32.eqz + if ;; label = @39 + local.get 4 + i32.const 1 + i32.sub + local.tee 4 + i32.const 65535 + i32.and + i32.const 2 + i32.shl + i32.const 8240 + i32.add + i32.load + local.set 0 + br 1 (;@38;) end block ;; label = @39 + local.get 6 + i32.const 58 + i32.ne + if ;; label = @40 + local.get 6 + i32.const 125 + i32.eq + br_if 21 (;@19;) + local.get 0 + call 14 + i32.eqz + br_if 1 (;@39;) + br 21 (;@19;) + end + local.get 0 + local.get 9 + i32.eq + br_if 0 (;@39;) + local.get 0 + i32.const 2 + i32.sub + call 15 + local.tee 6 + i32.eqz + br_if 0 (;@39;) block ;; label = @40 - block ;; label = @41 - block ;; label = @42 - block ;; label = @43 + local.get 6 + i32.load16_u + local.tee 10 + i32.const 34 + i32.eq + local.get 10 + i32.const 39 + i32.eq + i32.or + i32.eqz + if ;; label = @41 + i32.const 0 + local.set 8 + loop ;; label = @42 + local.get 6 + local.get 9 + i32.lt_u + br_if 2 (;@40;) + local.get 6 + i32.load16_u + local.tee 0 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + local.tee 10 + if (result i32) ;; label = @43 + local.get 0 + else + local.get 0 + i32.const 1023 + i32.and local.get 6 i32.const 2 + i32.sub + i32.load16_u + i32.const 1023 + i32.and + i32.const 10 i32.shl - i32.const 8208 + i32.or + i32.const 65536 i32.add - i32.load - local.tee 0 - i32.load16_u - local.tee 5 - i32.const 59 - i32.sub - br_table 16 (;@27;) 4 (;@39;) 4 (;@39;) 1 (;@42;) 0 (;@43;) end - block ;; label = @43 - local.get 5 - i32.const 101 + call 16 + i32.eqz + br_if 2 (;@40;) + local.get 10 + i32.eqz + if ;; label = @43 + local.get 0 + i32.const 1023 + i32.and + local.get 6 + i32.const 2 i32.sub - br_table 3 (;@40;) 4 (;@39;) 4 (;@39;) 2 (;@41;) 0 (;@43;) + i32.load16_u + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.or + i32.const 65536 + i32.add + local.set 0 end - local.get 5 - i32.const 41 - i32.eq - br_if 15 (;@27;) - local.get 5 - i32.const 121 - i32.ne - br_if 3 (;@39;) - local.get 0 - i32.const 12 + local.get 6 + local.get 9 i32.sub - local.tee 5 - i32.const 3992 - i32.load - local.tee 7 - i32.lt_u - br_if 3 (;@39;) - local.get 5 - i32.load16_u - i32.const 102 - i32.ne - br_if 3 (;@39;) - local.get 0 - i32.const 10 - i32.sub - i32.load16_u - i32.const 105 - i32.ne - br_if 3 (;@39;) + local.get 6 + i32.const -2 + i32.const -4 local.get 0 - i32.const 8 - i32.sub - i32.load16_u - i32.const 110 - i32.ne - br_if 3 (;@39;) + i32.const 65536 + i32.lt_u + local.tee 13 + select + i32.add + local.set 6 local.get 0 - i32.const 6 + call 17 + local.set 8 + i32.const 1 + i32.shr_s + i32.const 1 + i32.const 2 + local.get 13 + select + i32.ge_u + br_if 0 (;@42;) + end + local.get 8 + i32.eqz + br_if 2 (;@39;) + br 22 (;@19;) + end + loop ;; label = @41 + local.get 6 + local.get 9 + i32.gt_u + if ;; label = @42 + local.get 6 + i32.const 2 i32.sub + local.tee 6 i32.load16_u - i32.const 97 + local.get 10 i32.ne - br_if 3 (;@39;) - local.get 0 - i32.const 4 + br_if 1 (;@41;) + local.get 6 + local.set 0 + loop ;; label = @43 + local.get 9 + local.get 0 + local.tee 8 + i32.lt_u + if ;; label = @44 + local.get 0 + i32.const 2 + i32.sub + local.tee 0 + i32.load16_u + i32.const 92 + i32.eq + br_if 1 (;@43;) + end + end + local.get 6 + local.get 8 i32.sub - i32.load16_u - i32.const 108 - i32.ne - br_if 3 (;@39;) - local.get 0 i32.const 2 - i32.sub + i32.and + br_if 1 (;@41;) + end + end + local.get 6 + local.get 9 + i32.eq + br_if 1 (;@39;) + local.get 6 + i32.const 2 + i32.sub + local.set 6 + i32.const 0 + local.set 8 + end + i32.const 0 + local.set 0 + block ;; label = @40 + local.get 6 + call 15 + local.tee 6 + i32.eqz + br_if 0 (;@40;) + block ;; label = @41 + block ;; label = @42 + local.get 6 i32.load16_u - i32.const 108 - i32.ne - br_if 3 (;@39;) - local.get 5 - local.get 7 - i32.eq - br_if 15 (;@27;) - local.get 0 - i32.const 14 + i32.const 43 i32.sub - i32.load16_u - call 6 - i32.eqz - br_if 3 (;@39;) - br 15 (;@27;) + br_table 0 (;@42;) 1 (;@41;) 0 (;@42;) 1 (;@41;) end - local.get 0 + local.get 6 + local.get 9 + i32.eq + br_if 1 (;@40;) + local.get 6 i32.const 2 i32.sub + call 15 + local.tee 6 + i32.eqz + br_if 1 (;@40;) + end + block ;; label = @41 + local.get 6 + local.get 9 + i32.sub + i32.const 5 + i32.lt_s + br_if 0 (;@41;) + local.get 6 + i32.const 6 + i32.sub i32.load16_u - i32.const 61 + i32.const 99 i32.ne - br_if 2 (;@39;) - br 14 (;@27;) - end - local.get 0 - i32.const 8 - i32.sub - local.tee 5 - i32.const 3992 - i32.load - local.tee 7 - i32.lt_u - br_if 1 (;@39;) - local.get 5 - i32.load16_u - i32.const 99 - i32.ne - br_if 1 (;@39;) - local.get 0 - i32.const 6 - i32.sub - i32.load16_u - i32.const 97 - i32.ne - br_if 1 (;@39;) - local.get 0 - i32.const 4 - i32.sub - i32.load16_u - i32.const 116 - i32.ne - br_if 1 (;@39;) - local.get 0 - i32.const 2 - i32.sub - i32.load16_u - i32.const 99 - i32.ne - br_if 1 (;@39;) - local.get 5 - local.get 7 - i32.eq - br_if 13 (;@27;) - local.get 0 - i32.const 10 - i32.sub - i32.load16_u - call 6 - i32.eqz - br_if 1 (;@39;) - br 13 (;@27;) + br_if 0 (;@41;) + local.get 6 + i32.const 4 + i32.sub + i32.load16_u + i32.const 97 + i32.ne + br_if 0 (;@41;) + local.get 6 + i32.const 2 + i32.sub + i32.load16_u + i32.const 115 + i32.ne + br_if 0 (;@41;) + local.get 6 + i32.load16_u + i32.const 101 + i32.ne + br_if 0 (;@41;) + local.get 6 + local.get 12 + i32.eq + br_if 22 (;@19;) + local.get 6 + i32.const 8 + i32.sub + i32.load16_u + local.tee 0 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if (result i32) ;; label = @42 + local.get 0 + i32.const 1023 + i32.and + local.get 6 + i32.const 10 + i32.sub + i32.load16_u + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.or + i32.const 65536 + i32.add + else + local.get 0 + end + call 16 + local.get 0 + i32.const 46 + i32.eq + br_if 0 (;@41;) + local.get 6 + local.set 0 + i32.eqz + br_if 22 (;@19;) + br 1 (;@40;) + end + local.get 6 + local.set 0 end - local.get 0 - i32.const 6 - i32.sub - local.tee 5 - i32.const 3992 - i32.load - local.tee 7 - i32.lt_u - br_if 0 (;@39;) - local.get 5 - i32.load16_u - i32.const 101 - i32.ne - br_if 0 (;@39;) - local.get 0 - i32.const 4 - i32.sub - i32.load16_u - i32.const 108 - i32.ne - br_if 0 (;@39;) - local.get 0 - i32.const 2 - i32.sub - i32.load16_u - i32.const 115 - i32.ne - br_if 0 (;@39;) - local.get 5 - local.get 7 - i32.eq - br_if 12 (;@27;) - local.get 0 - i32.const 8 - i32.sub - i32.load16_u - call 6 - br_if 12 (;@27;) + local.get 8 + i32.const 1 + i32.and + br_if 1 (;@38;) end - local.get 6 - i32.const 16432 - i32.add - i32.load8_u - i32.eqz - br_if 10 (;@28;) - br 11 (;@27;) end - i32.const 4092 - i32.load8_u - i32.eqz - br_if 9 (;@28;) - br 10 (;@27;) + local.get 11 + br_table 0 (;@37;) 1 (;@36;) 2 (;@35;) 17 (;@20;) 17 (;@20;) 17 (;@20;) 17 (;@20;) 17 (;@20;) 17 (;@20;) 17 (;@20;) 3 (;@34;) 4 (;@33;) 17 (;@20;) 17 (;@20;) 5 (;@32;) 17 (;@20;) 6 (;@31;) 17 (;@20;) 17 (;@20;) 7 (;@30;) 17 (;@20;) end block ;; label = @37 block ;; label = @38 - local.get 5 + local.get 1 i32.const 2 i32.sub i32.load16_u i32.const 105 i32.sub - br_table 0 (;@38;) 10 (;@28;) 10 (;@28;) 1 (;@37;) 10 (;@28;) + br_table 0 (;@38;) 18 (;@20;) 18 (;@20;) 1 (;@37;) 18 (;@20;) end - local.get 5 + local.get 1 i32.const 6 i32.sub local.tee 0 - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 + local.tee 4 i32.lt_u - br_if 9 (;@28;) + br_if 17 (;@20;) local.get 0 i32.load16_u i32.const 118 i32.ne - br_if 9 (;@28;) - local.get 5 + br_if 17 (;@20;) + local.get 1 i32.const 4 i32.sub i32.load16_u i32.const 111 i32.ne - br_if 9 (;@28;) + br_if 17 (;@20;) i32.const -4 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 8 (;@29;) - br 10 (;@27;) + br 18 (;@19;) end - local.get 5 + local.get 1 i32.const 8 i32.sub local.tee 0 - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 + local.tee 4 i32.lt_u - br_if 8 (;@28;) + br_if 16 (;@20;) local.get 0 i32.load16_u i32.const 121 i32.ne - br_if 8 (;@28;) - local.get 5 + br_if 16 (;@20;) + local.get 1 i32.const 6 i32.sub i32.load16_u i32.const 105 i32.ne - br_if 8 (;@28;) - local.get 5 + br_if 16 (;@20;) + local.get 1 i32.const 4 i32.sub i32.load16_u i32.const 101 i32.ne - br_if 8 (;@28;) + br_if 16 (;@20;) i32.const -5 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 7 (;@29;) - br 9 (;@27;) + br 17 (;@19;) end block ;; label = @36 block ;; label = @37 - local.get 5 + local.get 1 i32.const 2 i32.sub i32.load16_u i32.const 115 i32.sub - br_table 0 (;@37;) 1 (;@36;) 9 (;@28;) + br_table 0 (;@37;) 1 (;@36;) 17 (;@20;) end - local.get 5 + local.get 1 i32.const 4 i32.sub i32.load16_u @@ -4434,109 +5136,109 @@ local.get 0 i32.const 108 i32.ne - br_if 9 (;@28;) - i32.const 3992 + br_if 17 (;@20;) + i32.const 4024 i32.load - local.tee 6 - local.get 5 + local.tee 4 + local.get 1 i32.const 6 i32.sub local.tee 0 i32.gt_u - br_if 9 (;@28;) + br_if 17 (;@20;) local.get 0 i32.load16_u i32.const 101 i32.ne - br_if 9 (;@28;) + br_if 17 (;@20;) i32.const -4 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 8 (;@29;) - br 10 (;@27;) + br 18 (;@19;) end - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 - local.get 5 + local.tee 4 + local.get 1 i32.const 6 i32.sub local.tee 0 i32.gt_u - br_if 8 (;@28;) + br_if 16 (;@20;) local.get 0 i32.load16_u i32.const 99 i32.ne - br_if 8 (;@28;) + br_if 16 (;@20;) i32.const -4 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 7 (;@29;) - br 9 (;@27;) + br 17 (;@19;) end - local.get 5 + local.get 1 i32.const 10 i32.sub local.tee 0 - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 + local.tee 4 i32.lt_u - br_if 7 (;@28;) + br_if 15 (;@20;) local.get 0 i32.load16_u i32.const 100 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 8 i32.sub i32.load16_u i32.const 101 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 6 i32.sub i32.load16_u i32.const 108 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 4 i32.sub i32.load16_u i32.const 101 i32.ne - br_if 7 (;@28;) + br_if 15 (;@20;) i32.const -6 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 6 (;@29;) - br 8 (;@27;) + br 16 (;@19;) end - local.get 5 + local.get 1 i32.const 2 i32.sub i32.load16_u i32.const 111 i32.ne - br_if 6 (;@28;) - local.get 5 + br_if 13 (;@21;) + local.get 1 i32.const 4 i32.sub i32.load16_u i32.const 101 i32.ne - br_if 6 (;@28;) - local.get 5 + br_if 13 (;@21;) + local.get 1 i32.const 6 i32.sub i32.load16_u @@ -4547,295 +5249,295 @@ local.get 0 i32.const 99 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 18 i32.sub local.tee 0 - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 + local.tee 4 i32.lt_u - br_if 7 (;@28;) + br_if 15 (;@20;) local.get 0 i32.load16_u i32.const 105 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 16 i32.sub i32.load16_u i32.const 110 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 14 i32.sub i32.load16_u i32.const 115 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 12 i32.sub i32.load16_u i32.const 116 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 10 i32.sub i32.load16_u i32.const 97 i32.ne - br_if 7 (;@28;) - local.get 5 + br_if 15 (;@20;) + local.get 1 i32.const 8 i32.sub i32.load16_u i32.const 110 i32.ne - br_if 7 (;@28;) + br_if 15 (;@20;) i32.const -10 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 6 (;@29;) - br 8 (;@27;) + br 16 (;@19;) end - local.get 5 + local.get 1 i32.const 10 i32.sub local.tee 0 - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 + local.tee 4 i32.lt_u - br_if 6 (;@28;) + br_if 14 (;@20;) local.get 0 i32.load16_u i32.const 116 i32.ne - br_if 6 (;@28;) - local.get 5 + br_if 14 (;@20;) + local.get 1 i32.const 8 i32.sub i32.load16_u i32.const 121 i32.ne - br_if 6 (;@28;) + br_if 14 (;@20;) i32.const -6 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 5 (;@29;) - br 7 (;@27;) + br 15 (;@19;) end block ;; label = @34 - i32.const 3992 + i32.const 4024 i32.load local.tee 0 - local.get 5 + local.get 1 i32.const 2 i32.sub - local.tee 6 + local.tee 4 i32.gt_u br_if 0 (;@34;) - local.get 6 + local.get 4 i32.load16_u i32.const 105 i32.ne br_if 0 (;@34;) local.get 0 - local.get 6 + local.get 4 i32.eq - br_if 7 (;@27;) - local.get 5 + br_if 15 (;@19;) + local.get 1 i32.const 4 i32.sub i32.load16_u - call 6 - br_if 7 (;@27;) + call 7 + br_if 15 (;@19;) end - local.get 5 + local.get 1 i32.const 10 i32.sub - local.tee 7 + local.tee 6 local.get 0 i32.lt_u - br_if 5 (;@28;) - local.get 7 + br_if 12 (;@21;) + local.get 6 i32.load16_u i32.const 114 i32.ne - br_if 5 (;@28;) - local.get 5 + br_if 12 (;@21;) + local.get 1 i32.const 8 i32.sub i32.load16_u i32.const 101 i32.ne - br_if 5 (;@28;) - local.get 5 + br_if 12 (;@21;) + local.get 1 i32.const 6 i32.sub i32.load16_u i32.const 116 i32.ne - br_if 5 (;@28;) - local.get 5 + br_if 12 (;@21;) + local.get 1 i32.const 4 i32.sub i32.load16_u i32.const 117 i32.ne - br_if 5 (;@28;) - local.get 6 + br_if 12 (;@21;) + local.get 4 i32.load16_u i32.const 114 i32.ne - br_if 5 (;@28;) + br_if 13 (;@20;) i32.const -6 - local.set 1 + local.set 2 local.get 0 - local.get 7 + local.get 6 i32.ne br_if 4 (;@29;) - br 6 (;@27;) + br 14 (;@19;) end - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 - local.get 5 + local.tee 4 + local.get 1 i32.const 2 i32.sub local.tee 0 i32.gt_u - br_if 4 (;@28;) + br_if 12 (;@20;) local.get 0 i32.load16_u i32.const 100 i32.ne - br_if 4 (;@28;) + br_if 12 (;@20;) i32.const -2 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 3 (;@29;) - br 5 (;@27;) + br 13 (;@19;) end - local.get 5 + local.get 1 i32.const 14 i32.sub local.tee 0 - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 + local.tee 4 i32.lt_u - br_if 3 (;@28;) + br_if 11 (;@20;) local.get 0 i32.load16_u i32.const 100 i32.ne - br_if 3 (;@28;) - local.get 5 + br_if 11 (;@20;) + local.get 1 i32.const 12 i32.sub i32.load16_u i32.const 101 i32.ne - br_if 3 (;@28;) - local.get 5 + br_if 11 (;@20;) + local.get 1 i32.const 10 i32.sub i32.load16_u i32.const 98 i32.ne - br_if 3 (;@28;) - local.get 5 + br_if 11 (;@20;) + local.get 1 i32.const 8 i32.sub i32.load16_u i32.const 117 i32.ne - br_if 3 (;@28;) - local.get 5 + br_if 11 (;@20;) + local.get 1 i32.const 6 i32.sub i32.load16_u i32.const 103 i32.ne - br_if 3 (;@28;) - local.get 5 + br_if 11 (;@20;) + local.get 1 i32.const 4 i32.sub i32.load16_u i32.const 103 i32.ne - br_if 3 (;@28;) - local.get 5 + br_if 11 (;@20;) + local.get 1 i32.const 2 i32.sub i32.load16_u i32.const 101 i32.ne - br_if 3 (;@28;) + br_if 11 (;@20;) i32.const -8 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 2 (;@29;) - br 4 (;@27;) + br 12 (;@19;) end - local.get 5 + local.get 1 i32.const 8 i32.sub local.tee 0 - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 + local.tee 4 i32.lt_u - br_if 2 (;@28;) + br_if 10 (;@20;) local.get 0 i32.load16_u i32.const 97 i32.ne - br_if 2 (;@28;) - local.get 5 + br_if 10 (;@20;) + local.get 1 i32.const 6 i32.sub i32.load16_u i32.const 119 i32.ne - br_if 2 (;@28;) - local.get 5 + br_if 10 (;@20;) + local.get 1 i32.const 4 i32.sub i32.load16_u i32.const 97 i32.ne - br_if 2 (;@28;) - local.get 5 + br_if 10 (;@20;) + local.get 1 i32.const 2 i32.sub i32.load16_u i32.const 105 i32.ne - br_if 2 (;@28;) + br_if 10 (;@20;) i32.const -5 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 1 (;@29;) - br 3 (;@27;) + br 11 (;@19;) end - local.get 5 + local.get 1 i32.const 2 i32.sub i32.load16_u @@ -4846,853 +5548,1381 @@ local.get 0 i32.const 101 i32.ne - br_if 2 (;@28;) - i32.const 3992 + br_if 10 (;@20;) + i32.const 4024 i32.load - local.tee 6 - local.get 5 + local.tee 4 + local.get 1 i32.const 4 i32.sub local.tee 0 i32.gt_u - br_if 2 (;@28;) + br_if 10 (;@20;) local.get 0 i32.load16_u i32.const 110 i32.ne - br_if 2 (;@28;) + br_if 10 (;@20;) i32.const -3 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.ne br_if 1 (;@29;) - br 3 (;@27;) + br 11 (;@19;) end - local.get 5 + local.get 1 i32.const 8 i32.sub local.tee 0 - i32.const 3992 + i32.const 4024 i32.load - local.tee 6 + local.tee 4 i32.lt_u - br_if 1 (;@28;) + br_if 9 (;@20;) local.get 0 i32.load16_u i32.const 116 i32.ne - br_if 1 (;@28;) - local.get 5 + br_if 9 (;@20;) + local.get 1 i32.const 6 i32.sub i32.load16_u i32.const 104 i32.ne - br_if 1 (;@28;) - local.get 5 + br_if 9 (;@20;) + local.get 1 i32.const 4 i32.sub i32.load16_u i32.const 114 i32.ne - br_if 1 (;@28;) + br_if 9 (;@20;) i32.const -5 - local.set 1 + local.set 2 local.get 0 - local.get 6 + local.get 4 i32.eq - br_if 2 (;@27;) + br_if 10 (;@19;) end - local.get 5 local.get 1 + local.get 2 i32.const 1 i32.shl i32.add i32.load16_u - call 6 - local.set 1 + call 7 + local.set 2 + br 8 (;@20;) end - local.get 3 - i32.eqz - br_if 0 (;@27;) - i32.const 1 - local.get 1 + i32.const 4124 + i32.load8_u i32.eqz - br_if 1 (;@26;) - drop + br_if 7 (;@20;) + br 8 (;@19;) end - local.get 2 - i32.const 2 - i32.add - local.set 5 - i32.const 3992 - i32.load - local.set 3 - i32.const 4076 + i32.const 4108 i32.load - local.set 1 - block ;; label = @27 - loop ;; label = @28 - local.get 4 - i32.const 2 - i32.add - local.set 0 - block ;; label = @29 - block ;; label = @30 - local.get 2 - local.get 4 - i32.le_u - br_if 0 (;@30;) - block ;; label = @31 - block ;; label = @32 - block ;; label = @33 - local.get 0 - i32.load16_u - local.tee 6 - i32.const 91 - i32.sub - br_table 1 (;@32;) 2 (;@31;) 0 (;@33;) - end - local.get 0 - local.set 4 - local.get 6 - i32.const 10 - i32.sub - br_table 2 (;@30;) 4 (;@28;) 4 (;@28;) 2 (;@30;) 3 (;@29;) - end - loop ;; label = @32 - block ;; label = @33 - local.get 0 - i32.const 2 - i32.add - local.set 4 - local.get 0 - local.get 2 - i32.ge_u - br_if 0 (;@33;) - block ;; label = @34 - block ;; label = @35 - local.get 4 - i32.load16_u - local.tee 6 - i32.const 92 - i32.sub - br_table 0 (;@35;) 7 (;@28;) 1 (;@34;) - end - local.get 0 - i32.const 4 - i32.add - local.set 0 - br 2 (;@32;) - end - local.get 4 - local.set 0 - local.get 6 - i32.const 10 - i32.sub - br_table 0 (;@33;) 1 (;@32;) 1 (;@32;) 0 (;@33;) 1 (;@32;) - end - end - local.get 1 - i32.eqz - if ;; label = @32 - i32.const 4076 - i32.const 10 - i32.store - i32.const 10 - local.set 1 - end - i32.const 4072 - local.get 4 - local.get 3 - i32.sub - i32.const 1 - i32.shr_s - i32.store - local.get 5 - local.set 4 - br 3 (;@28;) - end - local.get 4 - i32.const 4 - i32.add - local.set 4 - br 2 (;@28;) - end - local.get 1 - i32.eqz - if ;; label = @30 - i32.const 4076 - i32.const 11 - i32.store - end - i32.const 4072 - local.get 0 - local.get 3 - i32.sub - i32.const 1 - i32.shr_s - i32.store - br 2 (;@27;) - end - local.get 6 - i32.const 47 - i32.ne - br_if 0 (;@28;) - end - local.get 0 - local.set 5 - end - i32.const 16412 - local.get 5 - i32.store + local.tee 0 i32.const 0 + i32.const 4118 + i32.load16_u + i32.const 65535 + i32.ne + i32.const 4116 + i32.load16_u + i32.const 0 + i32.ne + i32.or + local.get 0 + i32.const 0 + i32.ne + i32.or + local.tee 1 + select + local.set 4 + i32.const 1 + local.set 2 + local.get 1 + i32.eqz + local.get 0 + i32.or + br_if 25 (;@1;) + br 15 (;@11;) end - i32.store8 + i32.const 4113 + i32.load8_u + br_if 11 (;@14;) br 22 (;@3;) end + i32.const 16448 local.get 0 - i32.const 2 + i32.const 12 i32.add - local.set 4 + i32.store + br 20 (;@4;) end - i32.const 16412 - local.get 4 - i32.store - br 21 (;@2;) + i32.const 4118 + i32.load16_u + i32.const 65534 + i32.ne + br_if 6 (;@17;) + i32.const 4108 + i32.load + local.tee 2 + br_if 13 (;@10;) + i32.const 4 + local.set 2 + br 12 (;@11;) end - i32.const 4084 - local.get 6 - i32.const 1 - i32.sub - local.tee 1 - i32.store16 - local.get 6 - i32.const 4086 - i32.load16_u - local.tee 0 - i32.ne - br_if 1 (;@21;) - i32.const 4082 - i32.const 4082 - i32.load16_u - i32.const 1 - i32.sub - local.tee 0 - i32.store16 - i32.const 4086 local.get 0 - i32.const 65535 - i32.and - i32.const 1 - i32.shl - i32.const 4096 + i32.const 2 i32.add - i32.load16_u - i32.store16 + local.set 5 end - i32.const 16412 - i32.load - local.set 0 - i32.const 16416 - i32.load - local.set 2 + i32.const 16448 + local.get 5 + i32.store + br 19 (;@2;) + end + i32.const 0 + local.set 2 + end + local.get 7 + i32.eqz + br_if 0 (;@19;) + i32.const 1 + local.get 2 + i32.eqz + br_if 1 (;@18;) + drop + end + local.get 3 + i32.const 2 + i32.add + local.set 1 + i32.const 4024 + i32.load + local.set 4 + i32.const 4108 + i32.load + local.set 2 + block ;; label = @19 + loop ;; label = @20 + local.get 5 + i32.const 2 + i32.add + local.set 0 + block ;; label = @21 block ;; label = @22 + local.get 3 + local.get 5 + i32.le_u + br_if 0 (;@22;) block ;; label = @23 block ;; label = @24 - loop ;; label = @25 + block ;; label = @25 + local.get 0 + i32.load16_u + local.tee 6 + i32.const 91 + i32.sub + br_table 1 (;@24;) 2 (;@23;) 0 (;@25;) + end + local.get 0 + local.set 5 + local.get 6 + i32.const 10 + i32.sub + br_table 2 (;@22;) 4 (;@20;) 4 (;@20;) 2 (;@22;) 3 (;@21;) + end + loop ;; label = @24 + block ;; label = @25 + local.get 0 + i32.const 2 + i32.add + local.set 5 + local.get 0 + local.get 3 + i32.ge_u + br_if 0 (;@25;) block ;; label = @26 - local.get 0 - local.tee 1 - i32.const 2 - i32.add - local.set 0 - local.get 1 - local.get 2 - i32.ge_u - br_if 0 (;@26;) block ;; label = @27 - block ;; label = @28 - local.get 0 - i32.load16_u - local.tee 3 - i32.const 92 - i32.sub - br_table 1 (;@27;) 3 (;@25;) 3 (;@25;) 3 (;@25;) 4 (;@24;) 0 (;@28;) - end - local.get 3 - i32.const 36 - i32.ne - br_if 2 (;@25;) - local.get 1 - i32.load16_u offset=4 - i32.const 123 - i32.ne - br_if 2 (;@25;) - i32.const 16412 - local.get 1 - i32.const 4 - i32.add - local.tee 0 - i32.store - block ;; label = @28 - i32.const 4082 - i32.load16_u - local.tee 1 - i32.const 2048 - i32.ne - if ;; label = @29 - i32.const 4084 - i32.load16_u - local.tee 3 - i32.const 2048 - i32.ne - br_if 1 (;@28;) - end - i32.const 4076 - i32.load - i32.eqz - if ;; label = @29 - i32.const 4076 - i32.const 12 - i32.store - end - br 5 (;@23;) - end - i32.const 4082 - local.get 1 - i32.const 1 - i32.add - i32.store16 - i32.const 8192 - i32.load - local.get 1 - i32.const 1 - i32.shl - i32.add - i32.const 4086 + local.get 5 i32.load16_u - i32.store16 - i32.const 4086 - local.get 3 - i32.const 1 - i32.add - local.tee 0 - i32.store16 - i32.const 4084 - local.get 0 - i32.store16 - br 5 (;@22;) + local.tee 6 + i32.const 92 + i32.sub + br_table 0 (;@27;) 7 (;@20;) 1 (;@26;) end - local.get 1 + local.get 0 i32.const 4 i32.add local.set 0 - br 1 (;@25;) + br 2 (;@24;) end + local.get 5 + local.set 0 + local.get 6 + i32.const 10 + i32.sub + br_table 0 (;@25;) 1 (;@24;) 1 (;@24;) 0 (;@25;) 1 (;@24;) end - i32.const 4076 - i32.load - i32.eqz - if ;; label = @25 - i32.const 4076 - i32.const 8 - i32.store - end - br 1 (;@23;) end - i32.const 16412 - local.get 0 + local.get 2 + i32.eqz + if ;; label = @24 + i32.const 4108 + i32.const 10 + i32.store + i32.const 10 + local.set 2 + end + i32.const 4104 + local.get 5 + local.get 4 + i32.sub + i32.const 1 + i32.shr_s i32.store - br 1 (;@22;) + local.get 1 + local.set 5 + br 3 (;@20;) + end + local.get 5 + i32.const 4 + i32.add + local.set 5 + br 2 (;@20;) + end + local.get 2 + i32.eqz + if ;; label = @22 + i32.const 4108 + i32.const 11 + i32.store + end + i32.const 4104 + local.get 0 + local.get 4 + i32.sub + i32.const 1 + i32.shr_s + i32.store + br 2 (;@19;) + end + local.get 6 + i32.const 47 + i32.ne + br_if 0 (;@20;) + end + local.get 0 + local.set 1 + end + i32.const 16448 + local.get 1 + i32.store + i32.const 0 + end + i32.store8 + br 14 (;@3;) + end + i32.const 16448 + i32.load + local.set 0 + i32.const 16452 + i32.load + local.set 2 + block ;; label = @17 + block ;; label = @18 + loop ;; label = @19 + block ;; label = @20 + local.get 0 + local.tee 1 + i32.const 2 + i32.add + local.set 0 + local.get 1 + local.get 2 + i32.ge_u + br_if 0 (;@20;) + block ;; label = @21 + block ;; label = @22 + local.get 0 + i32.load16_u + local.tee 3 + i32.const 92 + i32.sub + br_table 1 (;@21;) 3 (;@19;) 3 (;@19;) 3 (;@19;) 4 (;@18;) 0 (;@22;) + end + local.get 3 + i32.const 36 + i32.ne + br_if 2 (;@19;) + local.get 1 + i32.load16_u offset=4 + i32.const 123 + i32.ne + br_if 2 (;@19;) + i32.const 16448 + local.get 1 + i32.const 4 + i32.add + local.tee 3 + i32.store + block ;; label = @22 + i32.const 4114 + i32.load16_u + local.tee 0 + i32.const 2048 + i32.ne + if ;; label = @23 + i32.const 4116 + i32.load16_u + local.tee 1 + i32.const 2048 + i32.ne + br_if 1 (;@22;) end - i32.const 16412 + i32.const 4108 + i32.load + i32.eqz + if ;; label = @23 + i32.const 4108 + i32.const 12 + i32.store + end + i32.const 16448 local.get 2 i32.const 2 i32.add i32.store - i32.const 4072 - local.get 0 - i32.const 3992 + i32.const 4104 + local.get 3 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s i32.store + br 5 (;@17;) end - br 18 (;@3;) + i32.const 4114 + local.get 0 + i32.const 1 + i32.add + i32.store16 + i32.const 8224 + i32.load + local.get 0 + i32.const 1 + i32.shl + i32.add + i32.const 4118 + i32.load16_u + i32.store16 + i32.const 4113 + i32.load8_u + if ;; label = @22 + local.get 1 + i32.const 16464 + i32.add + i32.const 0 + i32.store8 + end + i32.const 4118 + local.get 1 + i32.const 1 + i32.add + local.tee 0 + i32.store16 + i32.const 4116 + local.get 0 + i32.store16 + br 4 (;@17;) end - local.get 0 - i32.const 65535 - i32.eq local.get 1 - i32.const 65535 - i32.and + i32.const 4 + i32.add + local.set 0 + br 1 (;@19;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @19 + i32.const 4108 + i32.const 8 + i32.store + end + i32.const 16448 + local.get 2 + i32.const 2 + i32.add + i32.store + i32.const 4104 + local.get 0 + i32.const 4024 + i32.load + i32.sub + i32.const 1 + i32.shr_s + i32.store + br 1 (;@17;) + end + i32.const 16448 + local.get 0 + i32.store + end + br 13 (;@3;) + end + i32.const 0 + local.set 5 + i32.const 16448 + i32.const 16448 + i32.load + local.tee 8 + i32.const 2 + i32.add + i32.store + block ;; label = @16 + block ;; label = @17 + block ;; label = @18 + block ;; label = @19 + block ;; label = @20 + block ;; label = @21 + block ;; label = @22 + call 8 + local.tee 0 + i32.const 42 + i32.sub + br_table 1 (;@21;) 2 (;@20;) 2 (;@20;) 2 (;@20;) 0 (;@22;) 2 (;@20;) + end + i32.const 46 + local.set 1 + i32.const 16452 + i32.load + i32.const 16448 + i32.load + local.tee 2 + i32.sub + i32.const 3 + i32.lt_s + br_if 2 (;@19;) + local.get 2 + i32.load16_u offset=2 + i32.const 46 + i32.ne + br_if 2 (;@19;) + local.get 2 + i32.load16_u offset=4 + i32.const 46 + i32.ne + br_if 2 (;@19;) + i32.const 16448 + local.get 2 + i32.const 6 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 5 (;@16;) + i32.const 1 + call 6 + drop + br 5 (;@16;) + end + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 0 + end + local.get 0 + local.set 1 + local.get 0 + i32.const 91 + i32.eq + if ;; label = @20 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 1 + end + i32.const 16448 + i32.load + local.set 2 + local.get 1 + i32.const 39 + i32.ne + local.get 1 + i32.const 34 + i32.ne + i32.and + i32.eqz + if ;; label = @20 local.get 0 - i32.ge_u - i32.or - br_if 17 (;@3;) - i32.const 4076 + i32.const 91 + i32.eq + local.set 5 + i32.const 16452 i32.load + local.set 3 + local.get 2 + local.set 0 + block ;; label = @21 + loop ;; label = @22 + block ;; label = @23 + local.get 0 + local.tee 4 + i32.const 2 + i32.add + local.set 0 + local.get 3 + local.get 4 + i32.le_u + br_if 0 (;@23;) + local.get 1 + local.get 0 + i32.load16_u + local.tee 6 + i32.eq + if ;; label = @24 + local.get 4 + local.set 3 + br 3 (;@21;) + end + local.get 6 + i32.const 92 + i32.ne + if ;; label = @24 + local.get 6 + i32.const 10 + i32.sub + br_table 1 (;@23;) 2 (;@22;) 2 (;@22;) 1 (;@23;) 2 (;@22;) + end + local.get 4 + i32.const 4 + i32.add + local.set 0 + local.get 4 + i32.load16_u offset=4 + i32.const 13 + i32.ne + br_if 1 (;@22;) + local.get 4 + i32.const 6 + i32.add + local.get 0 + local.get 4 + i32.load16_u offset=6 + i32.const 10 + i32.eq + select + local.set 0 + br 1 (;@22;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @22 + i32.const 4108 + i32.const 9 + i32.store + end + i32.const 4104 + local.get 0 + i32.const 4024 + i32.load + i32.sub + i32.const 1 + i32.shr_s + i32.store + end + i32.const 16448 + local.get 3 + i32.const 4 + i32.add local.tee 1 - br_if 9 (;@11;) - i32.const 3 - local.set 1 - br 8 (;@12;) + i32.store + br 3 (;@17;) + end + local.get 0 + i32.const 91 + i32.eq + br_if 1 (;@18;) + end + local.get 1 + call 12 + i32.eqz + if ;; label = @19 + i32.const 0 + local.set 1 + br 2 (;@17;) + end + i32.const 16448 + i32.load + local.set 1 + call 8 + local.set 0 + block ;; label = @19 + block ;; label = @20 + block ;; label = @21 + block ;; label = @22 + block ;; label = @23 + block ;; label = @24 + local.get 1 + local.get 2 + i32.sub + i32.const 6 + i32.sub + br_table 0 (;@24;) 7 (;@17;) 7 (;@17;) 7 (;@17;) 1 (;@23;) 7 (;@17;) + end + block ;; label = @24 + local.get 2 + i32.load16_u + local.tee 3 + i32.const 115 + i32.ne + if ;; label = @25 + local.get 3 + i32.const 103 + i32.ne + br_if 8 (;@17;) + local.get 2 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 8 (;@17;) + local.get 2 + i32.load16_u offset=4 + i32.const 116 + i32.eq + br_if 1 (;@24;) + br 8 (;@17;) + end + local.get 2 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 7 (;@17;) + local.get 2 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 7 (;@17;) + end + local.get 0 + i32.const 40 + i32.sub + br_table 6 (;@17;) 4 (;@19;) 3 (;@20;) 4 (;@19;) 6 (;@17;) 1 (;@22;) + end + local.get 2 + i32.load16_u + i32.const 97 + i32.ne + br_if 5 (;@17;) + local.get 2 + i32.load16_u offset=2 + i32.const 115 + i32.ne + br_if 5 (;@17;) + local.get 2 + i32.load16_u offset=4 + i32.const 121 + i32.ne + br_if 5 (;@17;) + local.get 2 + i32.load16_u offset=6 + i32.const 110 + i32.ne + br_if 5 (;@17;) + local.get 0 + i32.const 58 + i32.eq + local.get 2 + i32.load16_u offset=8 + i32.const 99 + i32.ne + i32.or + br_if 5 (;@17;) + local.get 0 + i32.const 40 + i32.sub + br_table 5 (;@17;) 3 (;@19;) 2 (;@20;) 3 (;@19;) 5 (;@17;) 1 (;@21;) + end + local.get 0 + i32.const 58 + i32.eq + br_if 4 (;@17;) + local.get 0 + i32.const 125 + i32.ne + br_if 2 (;@19;) + br 4 (;@17;) + end + local.get 0 + i32.const 125 + i32.ne + br_if 1 (;@19;) + br 3 (;@17;) end - i32.const 4076 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 0 + end + local.get 0 + local.set 1 + local.get 0 + i32.const 91 + i32.eq + if ;; label = @19 + i32.const 16448 + i32.const 16448 i32.load - local.tee 1 - br_if 8 (;@11;) i32.const 2 + i32.add + i32.store + call 8 local.set 1 - br 7 (;@12;) end - local.get 6 - i32.const 2048 + i32.const 16448 + i32.load + local.set 2 + local.get 1 + i32.const 39 i32.ne + local.get 1 + i32.const 34 + i32.ne + i32.and + i32.eqz + if ;; label = @19 + local.get 0 + i32.const 91 + i32.eq + local.set 5 + i32.const 16452 + i32.load + local.set 3 + local.get 2 + local.set 0 + block ;; label = @20 + loop ;; label = @21 + block ;; label = @22 + local.get 0 + local.tee 4 + i32.const 2 + i32.add + local.set 0 + local.get 3 + local.get 4 + i32.le_u + br_if 0 (;@22;) + local.get 1 + local.get 0 + i32.load16_u + local.tee 6 + i32.eq + if ;; label = @23 + local.get 4 + local.set 3 + br 3 (;@20;) + end + local.get 6 + i32.const 92 + i32.ne + if ;; label = @23 + local.get 6 + i32.const 10 + i32.sub + br_table 1 (;@22;) 2 (;@21;) 2 (;@21;) 1 (;@22;) 2 (;@21;) + end + local.get 4 + i32.const 4 + i32.add + local.set 0 + local.get 4 + i32.load16_u offset=4 + i32.const 13 + i32.ne + br_if 1 (;@21;) + local.get 4 + i32.const 6 + i32.add + local.get 0 + local.get 4 + i32.load16_u offset=6 + i32.const 10 + i32.eq + select + local.set 0 + br 1 (;@21;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @21 + i32.const 4108 + i32.const 9 + i32.store + end + i32.const 4104 + local.get 0 + i32.const 4024 + i32.load + i32.sub + i32.const 1 + i32.shr_s + i32.store + end + i32.const 16448 + local.get 3 + i32.const 4 + i32.add + local.tee 1 + i32.store + br 2 (;@17;) + end + local.get 0 + i32.const 91 + i32.eq br_if 0 (;@18;) - i32.const 4076 + local.get 1 + call 12 + local.set 0 + i32.const 16448 i32.load - local.tee 1 - i32.eqz - br_if 4 (;@14;) - br 7 (;@11;) + i32.const 0 + local.get 0 + select + local.set 1 + br 1 (;@17;) end - i32.const 4084 - local.get 6 + i32.const 0 + local.set 1 i32.const 1 - i32.add - local.tee 0 - i32.store16 - local.get 6 + local.set 5 + end + call 8 + local.set 0 + local.get 5 + if ;; label = @17 + local.get 0 + i32.const 93 + i32.ne + br_if 1 (;@16;) + i32.const 16448 + i32.const 16448 + i32.load i32.const 2 - i32.shl - i32.const 8208 i32.add - local.get 5 i32.store + call 8 + local.set 0 + end + local.get 1 + i32.eqz + br_if 0 (;@16;) + block ;; label = @17 local.get 0 - i32.const 65535 - i32.and - i32.const 16431 - i32.add - i32.const 16408 - i32.load8_u - i32.store8 - i32.const 16408 - i32.const 0 - i32.store8 - br 14 (;@3;) + i32.const 40 + i32.eq + local.get 0 + i32.const 58 + i32.eq + i32.or + br_if 0 (;@17;) + local.get 5 + br_if 1 (;@16;) + local.get 0 + i32.const 125 + i32.eq + br_if 0 (;@17;) + local.get 0 + i32.const 44 + i32.ne + br_if 1 (;@16;) end - i32.const 4084 - local.get 6 - i32.const 1 - i32.sub - i32.store16 - br 13 (;@3;) + local.get 2 + local.get 1 + i32.const 4028 + i32.load + call_indirect (type 0) end - i32.const 4076 - i32.load - local.tee 1 - br_if 4 (;@11;) - i32.const 8 - local.set 1 - br 3 (;@12;) + i32.const 16448 + local.get 8 + i32.store + br 12 (;@3;) end - local.get 6 - i32.const 2048 - i32.ne - br_if 1 (;@13;) - i32.const 4076 - i32.load - local.tee 1 - br_if 3 (;@11;) + i32.const 8 + local.set 2 + br 3 (;@11;) end - i32.const 12 - local.set 1 - br 1 (;@12;) + local.get 4 + i32.const 2048 + i32.ne + br_if 0 (;@13;) + i32.const 4108 + i32.load + local.tee 2 + i32.eqz + br_if 1 (;@12;) + br 3 (;@10;) end - i32.const 4084 - local.get 6 + i32.const 4116 + local.get 4 i32.const 1 i32.add i32.store16 - local.get 6 + local.get 4 + i32.const 16464 + i32.add + i32.const 0 + i32.store8 + local.get 4 i32.const 2 i32.shl - i32.const 8208 + i32.const 8240 i32.add - local.get 5 + local.get 1 i32.store br 9 (;@3;) end - i32.const 4076 - local.get 1 - i32.store + i32.const 12 + local.set 2 end - i32.const 16412 + i32.const 4108 local.get 2 - i32.const 2 - i32.add - i32.store - i32.const 4072 - local.get 4 - i32.const 3992 - i32.load - i32.sub - i32.const 1 - i32.shr_s i32.store - local.get 1 - local.set 3 - br 9 (;@1;) end - local.get 1 + i32.const 16448 + local.get 3 + i32.const 2 + i32.add + i32.store + i32.const 4104 local.get 5 - i32.const 4004 + i32.const 4024 i32.load - call_indirect (type 0) + i32.sub + i32.const 1 + i32.shr_s + i32.store + local.get 2 + local.set 4 + br 8 (;@1;) end - i32.const 16412 local.get 4 - i32.store - br 3 (;@5;) - end - local.get 0 - i32.const 160 - i32.ne - br_if 2 (;@5;) + local.get 5 + i32.const 4036 + i32.load + call_indirect (type 0) + end + i32.const 16448 + local.get 2 + i32.store + br 3 (;@4;) end - i32.const 16408 - i32.const 1 - i32.store8 - br 1 (;@5;) + local.get 0 + i32.const 160 + i32.ne + br_if 2 (;@4;) end - i32.const 3992 - i32.load - local.set 3 + i32.const 16440 + i32.const 1 + i32.store8 + br 1 (;@4;) + end + i32.const 4024 + i32.load + local.set 3 + loop ;; label = @5 + block ;; label = @6 + local.get 0 + i32.const 2 + i32.sub + local.set 1 + local.get 0 + i32.load16_u + local.tee 2 + i32.const 32 + i32.ne + br_if 0 (;@6;) + local.get 0 + local.get 3 + i32.gt_u + local.get 1 + local.set 0 + br_if 1 (;@5;) + end + end + block ;; label = @5 + local.get 2 + i32.const 61 + i32.ne + br_if 0 (;@5;) loop ;; label = @6 - block ;; label = @7 + local.get 1 + local.tee 0 + i32.load16_u + local.tee 2 + i32.const 32 + i32.eq + if ;; label = @7 local.get 0 i32.const 2 i32.sub local.set 1 local.get 0 - i32.load16_u - local.tee 2 - i32.const 32 - i32.ne - br_if 0 (;@7;) - local.get 0 local.get 3 i32.gt_u - local.get 1 - local.set 0 br_if 1 (;@6;) end end - block ;; label = @6 - local.get 2 - i32.const 61 - i32.ne - br_if 0 (;@6;) - loop ;; label = @7 - local.get 1 - local.tee 0 - i32.load16_u - local.tee 2 - i32.const 32 + local.get 0 + i32.const 2 + i32.add + local.set 5 + i32.const 0 + local.set 4 + loop ;; label = @6 + block ;; label = @7 + local.get 2 + local.tee 1 + i32.const 64512 + i32.and + i32.const 56320 i32.eq if ;; label = @8 + local.get 1 + i32.const 1023 + i32.and local.get 0 i32.const 2 i32.sub - local.set 1 - local.get 0 - local.get 3 - i32.gt_u - br_if 1 (;@7;) - end - end - local.get 0 - i32.const 2 - i32.add - local.set 5 - i32.const 0 - local.set 4 - loop ;; label = @7 - block ;; label = @8 - local.get 2 - local.tee 1 - i32.const 64512 + i32.load16_u + i32.const 1023 i32.and - i32.const 56320 - i32.eq - if ;; label = @9 - local.get 1 - i32.const 1023 - i32.and - local.get 0 - i32.const 2 - i32.sub - i32.load16_u - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.or - i32.const 65536 - i32.add - local.set 1 - end - local.get 1 - i32.eqz - local.get 0 - local.get 3 - i32.le_u + i32.const 10 + i32.shl i32.or - br_if 0 (;@8;) - local.get 1 - i32.const 92 - i32.eq - br_if 2 (;@6;) - local.get 1 - call 13 - i32.eqz - br_if 0 (;@8;) - local.get 1 - call 14 - local.set 4 - local.get 0 - i32.const -2 - i32.const -4 - local.get 1 i32.const 65536 - i32.lt_u - select i32.add - local.tee 0 - i32.load16_u - local.set 2 - br 1 (;@7;) + local.set 1 end + local.get 1 + i32.eqz + local.get 0 + local.get 3 + i32.le_u + i32.or + br_if 0 (;@7;) + local.get 1 + i32.const 92 + i32.eq + br_if 2 (;@5;) + local.get 1 + call 16 + i32.eqz + br_if 0 (;@7;) + local.get 1 + call 17 + local.set 4 + local.get 0 + i32.const -2 + i32.const -4 + local.get 1 + i32.const 65536 + i32.lt_u + select + i32.add + local.tee 0 + i32.load16_u + local.set 2 + br 1 (;@6;) end - local.get 4 - i32.const -1 - i32.xor - local.get 2 - i32.const 32 - i32.ne - i32.or - i32.const 1 - i32.and - br_if 0 (;@6;) - i32.const 18492 - local.get 5 - i32.store - i32.const 18488 - local.get 0 - i32.const 2 - i32.add - i32.store - loop ;; label = @7 - block ;; label = @8 - local.get 0 - local.tee 1 - i32.const 2 - i32.sub - local.set 0 - local.get 1 - i32.load16_u - local.tee 2 - i32.const 32 - i32.ne - br_if 0 (;@8;) - local.get 1 - local.get 3 - i32.gt_u - br_if 1 (;@7;) - end + end + local.get 4 + i32.const -1 + i32.xor + local.get 2 + i32.const 32 + i32.ne + i32.or + i32.const 1 + i32.and + br_if 0 (;@5;) + i32.const 18524 + local.get 5 + i32.store + i32.const 18520 + local.get 0 + i32.const 2 + i32.add + i32.store + loop ;; label = @6 + block ;; label = @7 + local.get 0 + local.tee 1 + i32.const 2 + i32.sub + local.set 0 + local.get 1 + i32.load16_u + local.tee 2 + i32.const 32 + i32.ne + br_if 0 (;@7;) + local.get 1 + local.get 3 + i32.gt_u + br_if 1 (;@6;) end + end + block ;; label = @6 block ;; label = @7 block ;; label = @8 - block ;; label = @9 - local.get 2 - i32.const 114 - i32.sub - br_table 0 (;@9;) 3 (;@6;) 1 (;@8;) 3 (;@6;) - end - local.get 1 - i32.const 4 - i32.sub - local.tee 2 - local.get 3 - i32.lt_u - br_if 2 (;@6;) - local.get 2 - i32.load16_u - i32.const 118 - i32.ne - br_if 2 (;@6;) - local.get 0 - i32.load16_u - i32.const 97 - i32.ne - br_if 2 (;@6;) - local.get 2 - local.get 3 - i32.eq - br_if 1 (;@7;) - local.get 1 - i32.const 6 - i32.sub - i32.load16_u - call 6 - br_if 1 (;@7;) - br 2 (;@6;) - end - block ;; label = @8 - local.get 1 - i32.const 4 - i32.sub - local.tee 2 - local.get 3 - i32.lt_u - br_if 0 (;@8;) - local.get 2 - i32.load16_u - i32.const 108 - i32.ne - br_if 0 (;@8;) - local.get 0 - i32.load16_u - i32.const 101 - i32.ne - br_if 0 (;@8;) local.get 2 - local.get 3 - i32.eq - br_if 1 (;@7;) - local.get 1 - i32.const 6 + i32.const 114 i32.sub - i32.load16_u - call 6 - br_if 1 (;@7;) + br_table 0 (;@8;) 3 (;@5;) 1 (;@7;) 3 (;@5;) end local.get 1 - i32.const 8 + i32.const 4 i32.sub - local.tee 4 + local.tee 2 local.get 3 i32.lt_u - br_if 1 (;@6;) - local.get 4 + br_if 2 (;@5;) + local.get 2 + i32.load16_u + i32.const 118 + i32.ne + br_if 2 (;@5;) + local.get 0 i32.load16_u - i32.const 99 + i32.const 97 i32.ne + br_if 2 (;@5;) + local.get 2 + local.get 3 + i32.eq + br_if 1 (;@6;) + local.get 1 + i32.const 6 + i32.sub + i32.load16_u + call 7 br_if 1 (;@6;) + br 2 (;@5;) + end + block ;; label = @7 local.get 1 - i32.const 6 + i32.const 4 i32.sub - i32.load16_u - i32.const 111 - i32.ne - br_if 1 (;@6;) + local.tee 2 + local.get 3 + i32.lt_u + br_if 0 (;@7;) local.get 2 i32.load16_u - i32.const 110 + i32.const 108 i32.ne - br_if 1 (;@6;) + br_if 0 (;@7;) local.get 0 i32.load16_u - i32.const 115 + i32.const 101 i32.ne - br_if 1 (;@6;) + br_if 0 (;@7;) + local.get 2 local.get 3 - local.get 4 i32.eq - br_if 0 (;@7;) + br_if 1 (;@6;) local.get 1 - i32.const 10 + i32.const 6 i32.sub i32.load16_u - call 6 - i32.eqz + call 7 br_if 1 (;@6;) end - i32.const 4056 - i32.const 4056 - i64.load - local.tee 10 - i64.const 20 - i64.add - local.tee 11 - i32.const 4064 - i64.load - i64.gt_u - if (result i64) ;; label = @7 - local.get 11 - call 2 - i32.const 4056 - i64.load - local.tee 10 - i64.const 20 - i64.add - else - local.get 11 - end - i64.store - local.get 10 - i32.wrap_i64 - local.tee 0 - i32.const 18480 - i64.load align=4 - i64.store align=4 - local.get 0 - i32.const 0 - i32.store offset=16 - local.get 0 + local.get 1 i32.const 8 - i32.add - i32.const 18488 - i64.load align=4 - i64.store align=4 - i32.const 16404 - i32.load - local.set 1 - i32.const 16404 - local.get 0 - i32.store + i32.sub + local.tee 4 + local.get 3 + i32.lt_u + br_if 1 (;@5;) + local.get 4 + i32.load16_u + i32.const 99 + i32.ne + br_if 1 (;@5;) local.get 1 - i32.const 16 - i32.add - i32.const 16400 + i32.const 6 + i32.sub + i32.load16_u + i32.const 111 + i32.ne + br_if 1 (;@5;) + local.get 2 + i32.load16_u + i32.const 110 + i32.ne + br_if 1 (;@5;) + local.get 0 + i32.load16_u + i32.const 115 + i32.ne + br_if 1 (;@5;) + local.get 3 + local.get 4 + i32.eq + br_if 0 (;@6;) local.get 1 - select + i32.const 10 + i32.sub + i32.load16_u + call 7 + i32.eqz + br_if 1 (;@5;) + end + i32.const 4088 + i32.const 4088 + i64.load + local.tee 14 + i64.const 20 + i64.add + local.tee 15 + i32.const 4096 + i64.load + i64.gt_u + if (result i64) ;; label = @6 + local.get 15 + call 2 + i32.const 4088 + i64.load + local.tee 14 + i64.const 20 + i64.add + else + local.get 15 + end + i64.store + local.get 14 + i32.wrap_i64 + local.tee 0 + i32.const 18512 + i64.load align=4 + i64.store align=4 + local.get 0 + i32.const 0 + i32.store offset=16 + local.get 0 + i32.const 8 + i32.add + i32.const 18520 + i64.load align=4 + i64.store align=4 + i32.const 16436 + i32.load + local.set 1 + i32.const 16436 + local.get 0 + i32.store + local.get 1 + i32.const 16 + i32.add + i32.const 16432 + local.get 1 + select + local.get 0 + i32.store + end + end + block ;; label = @4 + i32.const 16448 + i32.load + local.tee 1 + i32.load16_u + local.tee 0 + i32.const 48 + i32.sub + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + local.get 0 + i32.const 32 + i32.or + i32.const 97 + i32.sub + i32.const 65535 + i32.and + i32.const 26 + i32.lt_u + i32.or + br_if 0 (;@4;) + block ;; label = @5 + block ;; label = @6 local.get 0 - i32.store + i32.const 92 + i32.sub + br_table 2 (;@4;) 1 (;@5;) 1 (;@5;) 2 (;@4;) 0 (;@6;) end + local.get 0 + i32.const 36 + i32.eq + br_if 1 (;@4;) end + local.get 0 + i32.const 160 + i32.eq + local.get 0 + i32.const 128 + i32.lt_u + i32.or + br_if 1 (;@3;) + end + local.get 1 + i32.const 2 + i32.add + local.set 5 + loop ;; label = @4 + local.get 5 + i32.load16_u + local.tee 0 + i32.const 32 + i32.or + i32.const 97 + i32.sub + local.set 1 block ;; label = @5 - i32.const 16412 - i32.load - local.tee 1 - i32.load16_u - local.tee 0 + local.get 0 i32.const 48 i32.sub i32.const 65535 i32.and i32.const 10 i32.lt_u - local.get 0 - i32.const 32 - i32.or - i32.const 97 - i32.sub + local.get 1 i32.const 65535 i32.and i32.const 26 @@ -5720,156 +6950,211 @@ i32.or br_if 2 (;@3;) end - local.get 1 + i32.const 16448 + local.get 5 + i32.store + local.get 5 i32.const 2 i32.add - local.set 4 - loop ;; label = @5 - local.get 4 - i32.load16_u - local.tee 0 - i32.const 32 - i32.or - i32.const 97 - i32.sub - local.set 1 - block ;; label = @6 - local.get 0 - i32.const 48 - i32.sub - i32.const 65535 - i32.and - i32.const 10 - i32.lt_u - local.get 1 - i32.const 65535 - i32.and - i32.const 26 - i32.lt_u - i32.or - br_if 0 (;@6;) - block ;; label = @7 - block ;; label = @8 - local.get 0 - i32.const 92 - i32.sub - br_table 2 (;@6;) 1 (;@7;) 1 (;@7;) 2 (;@6;) 0 (;@8;) - end - local.get 0 - i32.const 36 - i32.eq - br_if 1 (;@6;) - end - local.get 0 - i32.const 160 - i32.eq - local.get 0 - i32.const 128 - i32.lt_u - i32.or - br_if 3 (;@3;) - end - i32.const 16412 - local.get 4 - i32.store - local.get 4 - i32.const 2 - i32.add - local.set 4 - br 0 (;@5;) - end - unreachable + local.set 5 + br 0 (;@4;) end + unreachable + end + i32.const 4120 + i32.const 16448 + i32.load + local.tee 1 + i32.store + i32.const 16452 + i32.load + local.set 3 + local.get 1 + local.set 5 + br 0 (;@2;) + end + unreachable + end + local.get 4) + (func (;6;) (type 2) (param i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32) + block ;; label = @1 + block ;; label = @2 + i32.const 16448 + i32.load + local.tee 2 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 0 (;@2;) + local.get 2 + i32.load16_u offset=4 + i32.const 113 + i32.ne + br_if 0 (;@2;) + local.get 2 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 0 (;@2;) + local.get 2 + i32.load16_u offset=8 + i32.const 105 + i32.ne + br_if 0 (;@2;) + local.get 2 + i32.load16_u offset=10 + i32.const 114 + i32.ne + br_if 0 (;@2;) + local.get 2 + i32.load16_u offset=12 + i32.const 101 + i32.ne + br_if 0 (;@2;) + i32.const 16448 + local.get 2 + i32.const 14 + i32.add + i32.store + block ;; label = @3 + call 8 + i32.const 40 + i32.ne + br_if 0 (;@3;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 5 + i32.const 16448 + i32.load + local.set 4 + local.get 5 + i32.const 39 + i32.ne + local.get 5 + i32.const 34 + i32.ne + i32.and + br_if 0 (;@3;) + i32.const 16452 + i32.load + local.set 6 + local.get 4 + local.set 1 block ;; label = @4 loop ;; label = @5 block ;; label = @6 - local.get 4 - local.tee 0 + local.get 1 + local.tee 3 i32.const 2 i32.add - local.set 4 - local.get 0 - local.get 2 + local.set 1 + local.get 3 + local.get 6 i32.ge_u br_if 0 (;@6;) - local.get 4 - i32.load16_u - local.tee 3 + local.get 5 local.get 1 + i32.load16_u + local.tee 7 i32.eq - br_if 2 (;@4;) - local.get 3 + if ;; label = @7 + local.get 3 + local.set 6 + br 3 (;@4;) + end + local.get 7 i32.const 92 i32.ne if ;; label = @7 - local.get 3 + local.get 7 i32.const 10 i32.sub br_table 1 (;@6;) 2 (;@5;) 2 (;@5;) 1 (;@6;) 2 (;@5;) end - local.get 0 + local.get 3 i32.const 4 i32.add - local.set 4 - local.get 0 + local.set 1 + local.get 3 i32.load16_u offset=4 i32.const 13 i32.ne br_if 1 (;@5;) - local.get 0 + local.get 3 i32.const 6 i32.add - local.get 4 - local.get 0 + local.get 1 + local.get 3 i32.load16_u offset=6 i32.const 10 i32.eq select - local.set 4 + local.set 1 br 1 (;@5;) end end - i32.const 4076 + i32.const 4108 i32.load i32.eqz if ;; label = @5 - i32.const 4076 + i32.const 4108 i32.const 9 i32.store end - i32.const 4072 - local.get 4 - i32.const 3992 + i32.const 4104 + local.get 1 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s i32.store - local.get 2 - i32.const 2 - i32.add - local.set 4 end - i32.const 16412 + i32.const 16448 + local.get 6 + i32.const 4 + i32.add + local.tee 1 + i32.store + call 8 + i32.const 41 + i32.ne + br_if 0 (;@3;) + block ;; label = @4 + local.get 0 + i32.const 1 + i32.sub + br_table 3 (;@1;) 3 (;@1;) 0 (;@4;) + end + i32.const 18516 + local.get 1 + i32.store + i32.const 18512 local.get 4 i32.store + i32.const 1 + return end - i32.const 4088 - i32.const 16412 - i32.load - local.tee 5 + i32.const 16448 + local.get 2 i32.store - i32.const 16416 - i32.load - local.set 2 - local.get 5 - local.set 4 - br 0 (;@2;) end - unreachable + i32.const 0 + return end - local.get 3) - (func (;6;) (type 2) (param i32) (result i32) + local.get 4 + local.get 1 + i32.const 4032 + i32.load + call_indirect (type 0) + i32.const 1) + (func (;7;) (type 2) (param i32) (result i32) (local i32 i32) i32.const 1 local.set 1 @@ -5934,12 +7219,12 @@ local.set 1 end local.get 1) - (func (;7;) (type 1) (result i32) + (func (;8;) (type 1) (result i32) (local i32 i32 i32 i32 i32) - i32.const 16416 + i32.const 16452 i32.load local.set 3 - i32.const 16412 + i32.const 16448 i32.load local.set 1 loop ;; label = @1 @@ -6048,7 +7333,7 @@ local.get 1 local.set 0 end - i32.const 16412 + i32.const 16448 local.get 0 i32.const 2 i32.add @@ -6060,200 +7345,26 @@ local.get 3 i32.lt_u br_if 1 (;@1;) - end - end - local.get 4) - (func (;8;) (type 2) (param i32) (result i32) - (local i32 i32 i32 i32 i32 i32 i32) - block ;; label = @1 - block ;; label = @2 - i32.const 16412 - i32.load - local.tee 2 - i32.load16_u offset=2 - i32.const 101 - i32.ne - br_if 0 (;@2;) - local.get 2 - i32.load16_u offset=4 - i32.const 113 - i32.ne - br_if 0 (;@2;) - local.get 2 - i32.load16_u offset=6 - i32.const 117 - i32.ne - br_if 0 (;@2;) - local.get 2 - i32.load16_u offset=8 - i32.const 105 - i32.ne - br_if 0 (;@2;) - local.get 2 - i32.load16_u offset=10 - i32.const 114 - i32.ne - br_if 0 (;@2;) - local.get 2 - i32.load16_u offset=12 - i32.const 101 - i32.ne - br_if 0 (;@2;) - i32.const 16412 - local.get 2 - i32.const 14 - i32.add - i32.store - block ;; label = @3 - call 7 - i32.const 40 - i32.ne - br_if 0 (;@3;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - local.set 5 - i32.const 16412 - i32.load - local.set 4 - local.get 5 - i32.const 39 - i32.ne - local.get 5 - i32.const 34 - i32.ne - i32.and - br_if 0 (;@3;) - i32.const 16416 - i32.load - local.set 6 - local.get 4 - local.set 1 - block ;; label = @4 - loop ;; label = @5 - block ;; label = @6 - local.get 1 - local.tee 3 - i32.const 2 - i32.add - local.set 1 - local.get 3 - local.get 6 - i32.ge_u - br_if 0 (;@6;) - local.get 5 - local.get 1 - i32.load16_u - local.tee 7 - i32.eq - if ;; label = @7 - local.get 3 - local.set 6 - br 3 (;@4;) - end - local.get 7 - i32.const 92 - i32.ne - if ;; label = @7 - local.get 7 - i32.const 10 - i32.sub - br_table 1 (;@6;) 2 (;@5;) 2 (;@5;) 1 (;@6;) 2 (;@5;) - end - local.get 3 - i32.const 4 - i32.add - local.set 1 - local.get 3 - i32.load16_u offset=4 - i32.const 13 - i32.ne - br_if 1 (;@5;) - local.get 3 - i32.const 6 - i32.add - local.get 1 - local.get 3 - i32.load16_u offset=6 - i32.const 10 - i32.eq - select - local.set 1 - br 1 (;@5;) - end - end - i32.const 4076 - i32.load - i32.eqz - if ;; label = @5 - i32.const 4076 - i32.const 9 - i32.store - end - i32.const 4072 - local.get 1 - i32.const 3992 - i32.load - i32.sub - i32.const 1 - i32.shr_s - i32.store - end - i32.const 16412 - local.get 6 - i32.const 4 - i32.add - local.tee 1 - i32.store - call 7 - i32.const 41 - i32.ne - br_if 0 (;@3;) - block ;; label = @4 - local.get 0 - i32.const 1 - i32.sub - br_table 3 (;@1;) 3 (;@1;) 0 (;@4;) - end - i32.const 18484 - local.get 1 - i32.store - i32.const 18480 - local.get 4 - i32.store - i32.const 1 - return - end - i32.const 16412 - local.get 2 - i32.store - end - i32.const 0 - return - end - local.get 4 - local.get 1 - i32.const 4000 - i32.load - call_indirect (type 0) - i32.const 1) + end + end + local.get 4) (func (;9;) (type 7) (param i32) (local i32 i32 i32 i32 i32 i32) - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load - local.tee 5 + local.tee 1 i32.const 14 i32.add i32.store + local.get 1 + i32.const 12 + i32.add + local.set 2 block ;; label = @1 block ;; label = @2 block ;; label = @3 - call 7 + call 8 local.tee 1 i32.const 91 i32.ne @@ -6266,52 +7377,52 @@ i32.const 46 i32.ne br_if 2 (;@2;) - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - call 7 - i32.const 16412 + call 8 + i32.const 16448 i32.load local.set 1 - call 11 + call 12 i32.eqz br_if 2 (;@2;) - i32.const 16412 + i32.const 16448 i32.load local.set 0 - call 7 + call 8 i32.const 61 i32.ne br_if 2 (;@2;) local.get 1 local.get 0 - i32.const 3996 + i32.const 4028 i32.load call_indirect (type 0) return end - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - call 7 - local.tee 2 + call 8 + local.tee 4 i32.const 39 i32.ne - local.get 2 + local.get 4 i32.const 34 i32.ne i32.and br_if 1 (;@2;) - i32.const 16416 + i32.const 16452 i32.load local.set 3 - i32.const 16412 + i32.const 16448 i32.load local.tee 6 local.set 0 @@ -6327,21 +7438,21 @@ local.get 3 i32.ge_u br_if 0 (;@6;) - local.get 2 + local.get 4 local.get 0 i32.load16_u - local.tee 4 + local.tee 5 i32.eq if ;; label = @7 local.get 1 local.set 3 br 3 (;@4;) end - local.get 4 + local.get 5 i32.const 92 i32.ne if ;; label = @7 - local.get 4 + local.get 5 i32.const 10 i32.sub br_table 1 (;@6;) 2 (;@5;) 2 (;@5;) 1 (;@6;) 2 (;@5;) @@ -6368,46 +7479,46 @@ br 1 (;@5;) end end - i32.const 4076 + i32.const 4108 i32.load i32.eqz if ;; label = @5 - i32.const 4076 + i32.const 4108 i32.const 9 i32.store end - i32.const 4072 + i32.const 4104 local.get 0 - i32.const 3992 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s i32.store end - i32.const 16412 + i32.const 16448 local.get 3 i32.const 4 i32.add local.tee 0 i32.store - call 7 + call 8 i32.const 93 i32.ne br_if 1 (;@2;) - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - call 7 + call 8 i32.const 61 i32.ne br_if 1 (;@2;) local.get 6 local.get 0 - i32.const 3996 + i32.const 4028 i32.load call_indirect (type 0) br 1 (;@2;) @@ -6415,20 +7526,60 @@ local.get 0 i32.eqz br_if 0 (;@2;) - i32.const 16412 - i32.const 16412 + i32.const 4113 + i32.load8_u + local.tee 1 + i32.eqz + if ;; label = @3 + i32.const 4060 + i32.const 0 + i32.store + i32.const 4068 + i32.const 0 + i32.store + end + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - i32.const 4028 - i32.const 0 - i32.store - i32.const 4036 - i32.const 0 - i32.store - call 7 - local.tee 0 + call 8 + local.set 0 + local.get 1 + if ;; label = @3 + local.get 0 + i32.const 40 + i32.eq + if ;; label = @4 + call 11 + local.set 0 + end + block ;; label = @4 + local.get 0 + i32.const 114 + i32.ne + if ;; label = @5 + local.get 0 + i32.const 123 + i32.ne + br_if 1 (;@4;) + i32.const 16444 + i32.const 16448 + i32.load + i32.store + br 1 (;@4;) + end + i32.const 1 + call 6 + drop + end + i32.const 16448 + local.get 2 + i32.store + return + end + local.get 0 i32.const 114 i32.ne if ;; label = @3 @@ -6436,41 +7587,41 @@ i32.const 123 i32.ne br_if 1 (;@2;) - i32.const 16412 + i32.const 16448 i32.load i32.const 2 i32.sub local.set 5 block ;; label = @4 loop ;; label = @5 - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load local.tee 0 i32.const 2 i32.add i32.store local.get 0 - i32.const 16416 + i32.const 16452 i32.load local.tee 3 i32.ge_u br_if 4 (;@1;) - call 7 + call 8 local.set 2 - i32.const 16412 + i32.const 16448 i32.load local.set 1 block ;; label = @6 local.get 2 - call 11 + call 12 if ;; label = @7 - i32.const 16412 + i32.const 16448 i32.load local.set 3 block ;; label = @8 block ;; label = @9 - call 7 + call 8 local.tee 0 i32.const 40 i32.sub @@ -6489,15 +7640,15 @@ br_if 1 (;@8;) br 5 (;@4;) end - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - call 7 - call 11 - i32.const 16412 + call 8 + call 12 + i32.const 16448 i32.load i32.load16_u local.set 0 @@ -6513,7 +7664,7 @@ end local.get 1 local.get 3 - i32.const 3996 + i32.const 4028 i32.load call_indirect (type 0) br 1 (;@6;) @@ -6532,7 +7683,7 @@ i32.ne br_if 4 (;@4;) end - i32.const 16412 + i32.const 16448 i32.load local.tee 6 local.set 0 @@ -6589,44 +7740,44 @@ br 1 (;@9;) end end - i32.const 4076 + i32.const 4108 i32.load i32.eqz if ;; label = @9 - i32.const 4076 + i32.const 4108 i32.const 9 i32.store end - i32.const 4072 + i32.const 4104 local.get 0 - i32.const 3992 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s i32.store end - i32.const 16412 + i32.const 16448 local.get 3 i32.const 4 i32.add local.tee 1 i32.store - call 7 + call 8 local.tee 0 i32.const 58 i32.ne br_if 1 (;@6;) - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - call 7 - call 11 + call 8 + call 12 i32.eqz - i32.const 16412 + i32.const 16448 i32.load i32.load16_u local.tee 0 @@ -6636,12 +7787,12 @@ br_if 3 (;@4;) local.get 6 local.get 1 - i32.const 3996 + i32.const 4028 i32.load call_indirect (type 0) br 1 (;@6;) end - i32.const 16412 + i32.const 16448 i32.load local.tee 0 i32.load16_u offset=2 @@ -6653,7 +7804,7 @@ i32.const 46 i32.ne br_if 2 (;@4;) - i32.const 16412 + i32.const 16448 local.get 0 i32.const 6 i32.add @@ -6667,8 +7818,8 @@ i32.eq if (result i32) ;; label = @9 i32.const 1 - call 8 - i32.const 16412 + call 6 + i32.const 16448 i32.load local.set 0 br_if 1 (;@8;) @@ -6679,18 +7830,18 @@ end i32.const 65535 i32.and - call 11 + call 12 i32.eqz br_if 4 (;@4;) br 1 (;@7;) end - i32.const 16412 + i32.const 16448 local.get 0 i32.const 2 i32.add i32.store end - call 7 + call 8 local.set 0 end local.get 0 @@ -6706,24 +7857,22 @@ i32.eq br_if 3 (;@1;) end - i32.const 16412 + i32.const 16448 local.get 5 i32.store return end i32.const 1 - call 8 + call 6 drop end - i32.const 16412 - local.get 5 - i32.const 12 - i32.add + i32.const 16448 + local.get 2 i32.store end) (func (;10;) (type 2) (param i32) (result i32) (local i32 i32) - i32.const 16412 + i32.const 16448 i32.load local.set 1 block ;; label = @1 @@ -6756,74 +7905,296 @@ i32.const 101 i32.ne br_if 1 (;@1;) - i32.const 16412 + i32.const 16448 local.get 1 i32.const 12 i32.add i32.store - call 7 + call 8 i32.const 46 i32.ne if ;; label = @3 br 2 (;@1;) end - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - call 7 + call 8 else local.get 0 end - i32.const 101 - i32.ne - br_if 0 (;@1;) - i32.const 16412 - i32.load - local.tee 0 - i32.load16_u offset=2 - i32.const 120 - i32.ne - br_if 0 (;@1;) - local.get 0 - i32.load16_u offset=4 - i32.const 112 - i32.ne - br_if 0 (;@1;) - local.get 0 - i32.load16_u offset=6 - i32.const 111 - i32.ne - br_if 0 (;@1;) - local.get 0 - i32.load16_u offset=8 - i32.const 114 - i32.ne - br_if 0 (;@1;) - local.get 0 - i32.load16_u offset=10 - i32.const 116 - i32.ne - br_if 0 (;@1;) - local.get 0 - i32.const 14 - i32.add - local.get 1 - local.get 0 - i32.load16_u offset=12 - i32.const 115 - i32.eq - local.tee 2 - select - local.set 1 + i32.const 101 + i32.ne + br_if 0 (;@1;) + i32.const 16448 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 120 + i32.ne + br_if 0 (;@1;) + local.get 0 + i32.load16_u offset=4 + i32.const 112 + i32.ne + br_if 0 (;@1;) + local.get 0 + i32.load16_u offset=6 + i32.const 111 + i32.ne + br_if 0 (;@1;) + local.get 0 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 0 (;@1;) + local.get 0 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 0 (;@1;) + local.get 0 + i32.const 14 + i32.add + local.get 1 + local.get 0 + i32.load16_u offset=12 + i32.const 115 + i32.eq + local.tee 2 + select + local.set 1 + end + i32.const 16448 + local.get 1 + i32.store + local.get 2) + (func (;11;) (type 1) (result i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + i32.const 4108 + i32.load + local.set 5 + i32.const 4024 + i32.load + local.set 7 + i32.const 16452 + i32.load + local.set 6 + loop ;; label = @1 + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 2 + i32.const 40 + i32.eq + br_if 0 (;@1;) + i32.const 16448 + i32.load + local.set 3 + block ;; label = @2 + block ;; label = @3 + i32.const 16448 + block (result i32) ;; label = @4 + block ;; label = @5 + block ;; label = @6 + local.get 2 + i32.const 34 + i32.eq + local.get 2 + i32.const 39 + i32.eq + i32.or + i32.eqz + if ;; label = @7 + local.get 3 + local.set 0 + local.get 2 + i32.const 123 + i32.ne + br_if 1 (;@6;) + i32.const 16448 + local.get 0 + i32.const 2 + i32.add + i32.store + call 8 + i32.const 125 + i32.eq + br_if 2 (;@5;) + i32.const 123 + local.set 2 + br 5 (;@2;) + end + local.get 3 + local.set 0 + block ;; label = @7 + loop ;; label = @8 + block ;; label = @9 + local.get 0 + local.tee 1 + i32.const 2 + i32.add + local.set 0 + local.get 1 + local.get 6 + i32.ge_u + br_if 0 (;@9;) + local.get 0 + i32.load16_u + local.tee 4 + local.get 2 + i32.eq + br_if 2 (;@7;) + local.get 4 + i32.const 92 + i32.ne + if ;; label = @10 + local.get 4 + i32.const 10 + i32.sub + br_table 1 (;@9;) 2 (;@8;) 2 (;@8;) 1 (;@9;) 2 (;@8;) + end + local.get 1 + i32.const 4 + i32.add + local.set 0 + local.get 1 + i32.load16_u offset=4 + i32.const 13 + i32.ne + br_if 1 (;@8;) + local.get 1 + i32.const 6 + i32.add + local.get 0 + local.get 1 + i32.load16_u offset=6 + i32.const 10 + i32.eq + select + local.set 0 + br 1 (;@8;) + end + end + local.get 5 + i32.eqz + if ;; label = @8 + i32.const 4108 + i32.const 9 + i32.store + i32.const 9 + local.set 5 + end + i32.const 4104 + local.get 0 + local.get 7 + i32.sub + i32.const 1 + i32.shr_s + i32.store + local.get 6 + local.set 1 + end + local.get 1 + i32.const 4 + i32.add + br 2 (;@4;) + end + loop ;; label = @6 + local.get 0 + local.get 6 + i32.gt_u + br_if 3 (;@3;) + local.get 0 + i32.load16_u + local.tee 1 + local.set 4 + local.get 1 + i32.const 64512 + i32.and + i32.const 55296 + i32.ne + local.tee 8 + if (result i32) ;; label = @7 + local.get 4 + else + local.get 1 + i32.const 10 + i32.shl + i32.const 1047552 + i32.and + local.get 0 + i32.load16_u offset=2 + i32.const 1023 + i32.and + i32.or + i32.const 65536 + i32.add + end + call 16 + i32.eqz + br_if 3 (;@3;) + i32.const 16448 + local.get 0 + i32.const 2 + i32.const 4 + local.get 8 + if (result i32) ;; label = @7 + local.get 1 + else + local.get 1 + i32.const 10 + i32.shl + i32.const 1047552 + i32.and + local.get 0 + i32.load16_u offset=2 + i32.const 1023 + i32.and + i32.or + i32.const 65536 + i32.add + end + i32.const 65536 + i32.lt_u + select + i32.add + local.tee 0 + i32.store + br 0 (;@6;) + end + unreachable + end + i32.const 16448 + i32.load + i32.const 2 + i32.add + end + local.tee 0 + i32.store + end + local.get 0 + local.get 3 + i32.eq + br_if 0 (;@2;) + call 8 + i32.const 44 + i32.eq + br_if 1 (;@1;) + end end - i32.const 16412 - local.get 1 + i32.const 16448 + local.get 3 i32.store local.get 2) - (func (;11;) (type 2) (param i32) (result i32) + (func (;12;) (type 2) (param i32) (result i32) (local i32) block (result i32) ;; label = @1 local.get 0 @@ -6837,7 +8208,7 @@ i32.shl i32.const 1047552 i32.and - i32.const 16412 + i32.const 16448 i32.load i32.load16_u offset=2 i32.const 1023 @@ -6849,11 +8220,11 @@ end i32.const 0 local.get 0 - call 14 + call 17 i32.eqz br_if 0 (;@1;) drop - i32.const 16412 + i32.const 16448 i32.load i32.const 2 i32.const 4 @@ -6865,7 +8236,7 @@ local.set 1 block ;; label = @2 loop ;; label = @3 - i32.const 16412 + i32.const 16448 local.get 1 i32.store block ;; label = @4 @@ -6897,7 +8268,7 @@ br_if 2 (;@2;) end local.get 0 - call 13 + call 16 if ;; label = @4 local.get 1 i32.const 2 @@ -6920,14 +8291,14 @@ end i32.const 1 end) - (func (;12;) (type 4) (param i32 i32) (result i32) + (func (;13;) (type 4) (param i32 i32) (result i32) (local i32 i32) block ;; label = @1 - call 7 + call 8 i32.const 79 i32.ne br_if 0 (;@1;) - i32.const 16412 + i32.const 16448 i32.load local.tee 2 i32.load16_u offset=2 @@ -6954,27 +8325,27 @@ i32.const 116 i32.ne br_if 0 (;@1;) - i32.const 16412 + i32.const 16448 local.get 2 i32.const 12 i32.add i32.store - call 7 + call 8 i32.const 46 i32.ne br_if 0 (;@1;) - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - call 7 + call 8 local.tee 2 i32.const 112 i32.eq if ;; label = @2 - i32.const 16412 + i32.const 16448 i32.load local.tee 2 i32.load16_u offset=2 @@ -7016,29 +8387,29 @@ i32.const 101 i32.ne br_if 1 (;@1;) - i32.const 16412 + i32.const 16448 local.get 2 i32.const 18 i32.add i32.store - call 7 + call 8 i32.const 46 i32.ne br_if 1 (;@1;) - i32.const 16412 - i32.const 16412 + i32.const 16448 + i32.const 16448 i32.load i32.const 2 i32.add i32.store - call 7 + call 8 local.set 2 end local.get 2 i32.const 104 i32.ne br_if 0 (;@1;) - i32.const 16412 + i32.const 16448 i32.load local.tee 2 i32.load16_u offset=2 @@ -7100,108 +8471,430 @@ i32.const 116 i32.ne br_if 0 (;@1;) - local.get 2 - i32.load16_u offset=26 - i32.const 121 + local.get 2 + i32.load16_u offset=26 + i32.const 121 + i32.ne + br_if 0 (;@1;) + i32.const 16448 + local.get 2 + i32.const 28 + i32.add + i32.store + call 8 + i32.const 46 + i32.ne + br_if 0 (;@1;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 99 + i32.ne + br_if 0 (;@1;) + i32.const 16448 + i32.load + local.tee 2 + i32.load16_u offset=2 + i32.const 97 + i32.ne + br_if 0 (;@1;) + local.get 2 + i32.load16_u offset=4 + i32.const 108 + i32.ne + br_if 0 (;@1;) + local.get 2 + i32.load16_u offset=6 + i32.const 108 + i32.ne + br_if 0 (;@1;) + i32.const 16448 + local.get 2 + i32.const 8 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 0 (;@1;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + call 12 + i32.eqz + br_if 0 (;@1;) + call 8 + i32.const 44 + i32.ne + br_if 0 (;@1;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16448 + i32.load + local.tee 2 + local.get 0 + local.get 1 + i32.const 1 + i32.shl + local.tee 0 + call 0 + br_if 0 (;@1;) + i32.const 16448 + local.get 0 + local.get 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 0 (;@1;) + i32.const 16448 + i32.const 16448 + i32.load + i32.const 2 + i32.add + i32.store + i32.const 1 + local.set 3 + end + local.get 3) + (func (;14;) (type 2) (param i32) (result i32) + (local i32 i32 i32) + i32.const 1 + local.set 2 + block ;; label = @1 + block ;; label = @2 + block ;; label = @3 + block ;; label = @4 + block ;; label = @5 + block ;; label = @6 + block ;; label = @7 + block ;; label = @8 + local.get 0 + i32.load16_u + local.tee 1 + i32.const 59 + i32.sub + br_table 7 (;@1;) 5 (;@3;) 5 (;@3;) 1 (;@7;) 0 (;@8;) + end + block ;; label = @8 + local.get 1 + i32.const 101 + i32.sub + br_table 3 (;@5;) 5 (;@3;) 5 (;@3;) 2 (;@6;) 0 (;@8;) + end + local.get 1 + i32.const 41 + i32.ne + br_if 3 (;@4;) + i32.const 1 + return + end + local.get 0 + i32.const 2 + i32.sub + i32.load16_u + i32.const 61 + i32.eq + return + end + i32.const 0 + local.set 2 + local.get 0 + i32.const 8 + i32.sub + local.tee 1 + i32.const 4024 + i32.load + local.tee 3 + i32.lt_u + br_if 4 (;@1;) + local.get 1 + i32.load16_u + i32.const 99 + i32.ne + br_if 4 (;@1;) + local.get 0 + i32.const 6 + i32.sub + i32.load16_u + i32.const 97 + i32.ne + br_if 4 (;@1;) + local.get 0 + i32.const 4 + i32.sub + i32.load16_u + i32.const 116 + i32.ne + br_if 4 (;@1;) + local.get 0 + i32.const 2 + i32.sub + i32.load16_u + i32.const 99 + i32.ne + br_if 4 (;@1;) + i32.const 1 + local.set 2 + local.get 1 + local.get 3 + i32.eq + br_if 4 (;@1;) + local.get 0 + i32.const 10 + i32.sub + i32.load16_u + call 7 + return + end + i32.const 0 + local.set 2 + local.get 0 + i32.const 6 + i32.sub + local.tee 1 + i32.const 4024 + i32.load + local.tee 3 + i32.lt_u + br_if 3 (;@1;) + local.get 1 + i32.load16_u + i32.const 101 + i32.ne + br_if 3 (;@1;) + local.get 0 + i32.const 4 + i32.sub + i32.load16_u + i32.const 108 + i32.ne + br_if 3 (;@1;) + local.get 0 + i32.const 2 + i32.sub + i32.load16_u + i32.const 115 + i32.ne + br_if 3 (;@1;) + i32.const 1 + local.set 2 + local.get 1 + local.get 3 + i32.eq + br_if 3 (;@1;) + local.get 0 + i32.const 8 + i32.sub + i32.load16_u + call 7 + return + end + local.get 1 + i32.const 121 + i32.eq + br_if 1 (;@2;) + end + i32.const 0 + local.set 2 + br 1 (;@1;) + end + i32.const 0 + local.set 2 + local.get 0 + i32.const 12 + i32.sub + local.tee 1 + i32.const 4024 + i32.load + local.tee 3 + i32.lt_u + br_if 0 (;@1;) + local.get 1 + i32.load16_u + i32.const 102 i32.ne br_if 0 (;@1;) - i32.const 16412 - local.get 2 - i32.const 28 - i32.add - i32.store - call 7 - i32.const 46 + local.get 0 + i32.const 10 + i32.sub + i32.load16_u + i32.const 105 i32.ne br_if 0 (;@1;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - i32.const 99 + local.get 0 + i32.const 8 + i32.sub + i32.load16_u + i32.const 110 i32.ne br_if 0 (;@1;) - i32.const 16412 - i32.load - local.tee 2 - i32.load16_u offset=2 + local.get 0 + i32.const 6 + i32.sub + i32.load16_u i32.const 97 i32.ne br_if 0 (;@1;) - local.get 2 - i32.load16_u offset=4 - i32.const 108 - i32.ne - br_if 0 (;@1;) - local.get 2 - i32.load16_u offset=6 + local.get 0 + i32.const 4 + i32.sub + i32.load16_u i32.const 108 i32.ne br_if 0 (;@1;) - i32.const 16412 - local.get 2 - i32.const 8 - i32.add - i32.store - call 7 - i32.const 40 - i32.ne - br_if 0 (;@1;) - i32.const 16412 - i32.const 16412 - i32.load + local.get 0 i32.const 2 - i32.add - i32.store - call 7 - call 11 - i32.eqz - br_if 0 (;@1;) - call 7 - i32.const 44 + i32.sub + i32.load16_u + i32.const 108 i32.ne br_if 0 (;@1;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - call 7 - drop - i32.const 16412 - i32.load - local.tee 2 - local.get 0 - local.get 1 i32.const 1 - i32.shl - local.tee 0 - call 0 + local.set 2 + local.get 1 + local.get 3 + i32.eq br_if 0 (;@1;) - i32.const 16412 local.get 0 - local.get 2 - i32.add - i32.store + i32.const 14 + i32.sub + i32.load16_u call 7 - i32.const 41 - i32.ne - br_if 0 (;@1;) - i32.const 16412 - i32.const 16412 - i32.load - i32.const 2 - i32.add - i32.store - i32.const 1 - local.set 3 + return end - local.get 3) - (func (;13;) (type 2) (param i32) (result i32) + local.get 2) + (func (;15;) (type 2) (param i32) (result i32) + (local i32 i32 i32 i32) + i32.const 4024 + i32.load + local.tee 3 + i32.const 2 + i32.add + local.set 4 + block ;; label = @1 + loop ;; label = @2 + block ;; label = @3 + local.get 0 + i32.eqz + br_if 0 (;@3;) + local.get 0 + i32.const 6 + i32.sub + local.set 2 + loop ;; label = @4 + block ;; label = @5 + local.get 0 + i32.load16_u + local.tee 1 + i32.const 9 + i32.sub + i32.const 5 + i32.lt_u + local.get 1 + i32.const 32 + i32.eq + i32.or + local.get 1 + i32.const 160 + i32.eq + i32.or + i32.eqz + if ;; label = @6 + local.get 1 + i32.const 47 + i32.ne + br_if 5 (;@1;) + local.get 0 + local.get 3 + i32.ne + br_if 1 (;@5;) + local.get 3 + return + end + local.get 0 + local.get 3 + i32.eq + br_if 2 (;@3;) + local.get 2 + i32.const 2 + i32.sub + local.set 2 + local.get 0 + i32.const 2 + i32.sub + local.set 0 + br 1 (;@4;) + end + end + local.get 0 + i32.const 2 + i32.sub + i32.load16_u + i32.const 42 + i32.ne + br_if 2 (;@1;) + local.get 0 + local.get 4 + i32.eq + br_if 0 (;@3;) + loop ;; label = @4 + block ;; label = @5 + local.get 2 + i32.const 2 + i32.add + local.tee 1 + local.get 3 + i32.le_u + br_if 0 (;@5;) + local.get 1 + i32.load16_u + i32.const 42 + i32.eq + if ;; label = @6 + local.get 2 + i32.load16_u + i32.const 47 + i32.eq + br_if 1 (;@5;) + end + local.get 2 + i32.const 2 + i32.sub + local.set 2 + br 1 (;@4;) + end + end + local.get 1 + i32.const 4 + i32.sub + local.set 0 + local.get 1 + local.get 4 + i32.gt_u + br_if 1 (;@2;) + end + end + i32.const 0 + local.set 0 + end + local.get 0) + (func (;16;) (type 2) (param i32) (result i32) (local i32 i32 i32 i32) local.get 0 i32.const 47 @@ -7246,7 +8939,7 @@ i32.const 65536 i32.ge_u if ;; label = @4 - i32.const 1040 + i32.const 1072 local.set 1 i32.const -2 local.set 2 @@ -7290,7 +8983,7 @@ i32.lt_u br_if 1 (;@2;) local.get 0 - call 15 + call 18 local.get 0 i32.const 8204 i32.sub @@ -8438,7 +10131,7 @@ end i32.const 65536 local.set 4 - i32.const 2992 + i32.const 3024 local.set 1 i32.const -2 local.set 2 @@ -8494,7 +10187,7 @@ return end i32.const 1) - (func (;14;) (type 2) (param i32) (result i32) + (func (;17;) (type 2) (param i32) (result i32) (local i32 i32 i32 i32) local.get 0 i32.const 64 @@ -8531,7 +10224,7 @@ i32.const 65536 i32.ge_u if ;; label = @2 - i32.const 1040 + i32.const 1072 local.set 1 i32.const -2 local.set 4 @@ -8591,11 +10284,11 @@ i32.lt_u br_if 0 (;@1;) local.get 0 - call 15 + call 18 return end local.get 1) - (func (;15;) (type 2) (param i32) (result i32) + (func (;18;) (type 2) (param i32) (result i32) (local i32 i32 i32 i32 i32) block ;; label = @1 local.get 0 @@ -10515,9 +12208,9 @@ return end i32.const 1) - (func (;16;) (type 2) (param i32) (result i32) + (func (;19;) (type 2) (param i32) (result i32) (local i32) - i32.const 3992 + i32.const 4024 i32.load local.tee 1 local.get 0 @@ -10527,7 +12220,7 @@ local.tee 0 i32.const 0 i32.store16 - i32.const 4052 + i32.const 4084 local.get 0 i32.const 5 i32.add @@ -10535,114 +12228,114 @@ i32.and local.tee 0 i32.store - i32.const 4056 + i32.const 4088 local.get 0 i64.extend_i32_u i64.store - i32.const 4064 + i32.const 4096 memory.size i64.extend_i32_u i64.const 16 i64.shl i64.store - i32.const 4016 + i32.const 4048 i32.const 0 i32.store - i32.const 4024 + i32.const 4056 i32.const 0 i32.store - i32.const 4020 + i32.const 4052 i32.const 0 i32.store - i32.const 4028 + i32.const 4060 i32.const 0 i32.store - i32.const 4036 + i32.const 4068 i32.const 0 i32.store - i32.const 4032 + i32.const 4064 i32.const 0 i32.store - i32.const 4040 + i32.const 4072 i32.const 0 i32.store - i32.const 4048 + i32.const 4080 i32.const 0 i32.store - i32.const 4044 + i32.const 4076 i32.const 0 i32.store local.get 1) - (func (;17;) (type 1) (result i32) - i32.const 4072 + (func (;20;) (type 1) (result i32) + i32.const 4104 i32.load) - (func (;18;) (type 1) (result i32) - i32.const 4020 + (func (;21;) (type 1) (result i32) + i32.const 4052 i32.load i32.load - i32.const 3992 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s) - (func (;19;) (type 1) (result i32) - i32.const 4020 + (func (;22;) (type 1) (result i32) + i32.const 4052 i32.load i32.load offset=4 - i32.const 3992 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s) - (func (;20;) (type 1) (result i32) - i32.const 4032 + (func (;23;) (type 1) (result i32) + i32.const 4064 i32.load i32.load - i32.const 3992 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s) - (func (;21;) (type 1) (result i32) - i32.const 4032 + (func (;24;) (type 1) (result i32) + i32.const 4064 i32.load i32.load offset=4 - i32.const 3992 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s) - (func (;22;) (type 1) (result i32) - i32.const 4044 + (func (;25;) (type 1) (result i32) + i32.const 4076 i32.load i32.load - i32.const 3992 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s) - (func (;23;) (type 1) (result i32) - i32.const 4044 + (func (;26;) (type 1) (result i32) + i32.const 4076 i32.load i32.load offset=4 - i32.const 3992 + i32.const 4024 i32.load i32.sub i32.const 1 i32.shr_s) - (func (;24;) (type 1) (result i32) - i32.const 4016 - i32.const 4020 - call 30) - (func (;25;) (type 1) (result i32) - i32.const 4028 - i32.const 4032 - call 30) - (func (;26;) (type 1) (result i32) - i32.const 4040 - i32.const 4044 - call 30) - (func (;27;) (type 3) (param i32 i32 i32 i32 i32 i32) (result i32) + (func (;27;) (type 1) (result i32) + i32.const 4048 + i32.const 4052 + call 33) + (func (;28;) (type 1) (result i32) + i32.const 4060 + i32.const 4064 + call 33) + (func (;29;) (type 1) (result i32) + i32.const 4072 + i32.const 4076 + call 33) + (func (;30;) (type 3) (param i32 i32 i32 i32 i32 i32) (result i32) local.get 0 local.get 1 local.get 2 @@ -10650,7 +12343,7 @@ local.get 4 i32.const 0 call 5) - (func (;28;) (type 8) (param i32 i32 i32 i32 i32 i32 i32) (result i32) + (func (;31;) (type 8) (param i32 i32 i32 i32 i32 i32 i32) (result i32) local.get 0 local.get 1 local.get 2 @@ -10658,21 +12351,21 @@ local.get 4 local.get 6 call 5) - (func (;29;) (type 9) (param i32 i32 i32 i32) + (func (;32;) (type 9) (param i32 i32 i32 i32) (local i64 i64 i32 i32) - i32.const 4056 + i32.const 4088 i64.load local.tee 5 i64.const 12 i64.add local.tee 4 - i32.const 4064 + i32.const 4096 i64.load i64.gt_u if ;; label = @1 local.get 4 call 2 - i32.const 4056 + i32.const 4088 i64.load local.tee 5 i64.const 12 @@ -10695,7 +12388,7 @@ select local.get 6 i32.store - i32.const 4056 + i32.const 4088 local.get 4 i64.store local.get 6 @@ -10707,7 +12400,7 @@ local.get 6 local.get 1 i32.store offset=4) - (func (;30;) (type 4) (param i32 i32) (result i32) + (func (;33;) (type 4) (param i32 i32) (result i32) (local i32) local.get 1 local.get 1 @@ -10726,22 +12419,23 @@ i32.ne) (table (;0;) 4 4 funcref) (memory (;0;) 1) - (global (;0;) i32 (i32.const 31824)) + (global (;0;) i32 (i32.const 31856)) (export "memory" (memory 0)) (export "__heap_base" (global 0)) - (export "sa" (func 16)) - (export "e" (func 17)) - (export "es" (func 18)) - (export "ee" (func 19)) - (export "res" (func 20)) - (export "ree" (func 21)) - (export "us" (func 22)) - (export "ue" (func 23)) - (export "re" (func 24)) - (export "rre" (func 25)) - (export "ru" (func 26)) - (export "parseCJS" (func 27)) - (export "parseCJSWithOptions" (func 28)) + (export "sa" (func 19)) + (export "e" (func 20)) + (export "es" (func 21)) + (export "ee" (func 22)) + (export "res" (func 23)) + (export "ree" (func 24)) + (export "us" (func 25)) + (export "ue" (func 26)) + (export "re" (func 27)) + (export "rre" (func 28)) + (export "ru" (func 29)) + (export "parseCJS" (func 30)) + (export "parseCJSWithOptions" (func 31)) (elem (;0;) (i32.const 1) func 1 3 4) - (data (;0;) (i32.const 1044) "\0b\00\00\00\02\00\00\00\19\00\00\00\02\00\00\00\12\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\0e\00\00\00\03\00\00\00\0d\00\00\00#\00\00\00z\00\00\00F\00\00\004\00\00\00\0c\01\00\00\1c\00\00\00\04\00\00\000\00\00\000\00\00\00\1f\00\00\00\0e\00\00\00\1d\00\00\00\06\00\00\00%\00\00\00\0b\00\00\00\1d\00\00\00\03\00\00\00#\00\00\00\05\00\00\00\07\00\00\00\02\00\00\00\04\00\00\00+\00\00\00\9d\00\00\00\13\00\00\00#\00\00\00\05\00\00\00#\00\00\00\05\00\00\00'\00\00\00\09\00\00\003\00\00\00\9d\00\00\006\01\00\00\0a\00\00\00\15\00\00\00\0b\00\00\00\07\00\00\00\99\00\00\00\05\00\00\00\03\00\00\00\00\00\00\00\02\00\00\00+\00\00\00\02\00\00\00\01\00\00\00\04\00\00\00\00\00\00\00\03\00\00\00\16\00\00\00\0b\00\00\00\16\00\00\00\0a\00\00\00\1e\00\00\00B\00\00\00\12\00\00\00\02\00\00\00\01\00\00\00\0b\00\00\00\15\00\00\00\0b\00\00\00\19\00\00\00G\00\00\007\00\00\00\07\00\00\00\01\00\00\00A\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\02\00\00\00\02\00\00\00\1c\00\00\00+\00\00\00\1c\00\00\00\04\00\00\00\1c\00\00\00$\00\00\00\07\00\00\00\02\00\00\00\1b\00\00\00\1c\00\00\005\00\00\00\0b\00\00\00\15\00\00\00\0b\00\00\00\12\00\00\00\0e\00\00\00\11\00\00\00o\00\00\00H\00\00\008\00\00\002\00\00\00\0e\00\00\002\00\00\00\0e\00\00\00#\00\00\00]\01\00\00)\00\00\00\07\00\00\00\01\00\00\00O\00\00\00\1c\00\00\00\0b\00\00\00\00\00\00\00\09\00\00\00\15\00\00\00k\00\00\00\14\00\00\00\1c\00\00\00\16\00\00\00\0d\00\00\004\00\00\00L\00\00\00,\00\00\00!\00\00\00\18\00\00\00\1b\00\00\00#\00\00\00\1e\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\09\00\00\00\22\00\00\00\04\00\00\00\00\00\00\00\0d\00\00\00/\00\00\00\0f\00\00\00\03\00\00\00\16\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00$\00\00\00\11\00\00\00\02\00\00\00\18\00\00\00U\00\00\00\06\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\0e\00\00\00\02\00\00\00\09\00\00\00\08\00\00\00.\00\00\00'\00\00\00\07\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\15\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\04\00\00\00\04\00\00\00\00\00\00\00\13\00\00\00\00\00\00\00\0d\00\00\00\04\00\00\00\9f\00\00\004\00\00\00\13\00\00\00\03\00\00\00\15\00\00\00\02\00\00\00\1f\00\00\00/\00\00\00\15\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\b9\00\00\00.\00\00\00*\00\00\00\03\00\00\00%\00\00\00/\00\00\00\15\00\00\00\00\00\00\00<\00\00\00*\00\00\00\0e\00\00\00\00\00\00\00H\00\00\00\1a\00\00\00\e6\00\00\00+\00\00\00u\00\00\00?\00\00\00 \00\00\00\07\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\07\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\17\00\00\00\10\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00_\00\00\00\07\00\00\00\03\00\00\00&\00\00\00\11\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\1d\00\00\00\00\00\00\00\0b\00\00\00'\00\00\00\08\00\00\00\00\00\00\00\16\00\00\00\00\00\00\00\0c\00\00\00-\00\00\00\14\00\00\00\00\00\00\00#\00\00\008\00\00\00\08\01\00\00\08\00\00\00\02\00\00\00$\00\00\00\12\00\00\00\00\00\00\002\00\00\00\1d\00\00\00q\00\00\00\06\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00%\00\00\00\16\00\00\00\00\00\00\00\1a\00\00\00\05\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\1f\00\00\00\0f\00\00\00\00\00\00\00H\01\00\00\12\00\00\00\be\00\00\00\00\00\00\00P\00\00\00\99\03\00\00g\00\00\00n\00\00\00\12\00\00\00\c3\00\00\00\bd\0a\00\00.\04\00\00\d2\0f\00\00F\02\00\00\ba!\00\008\02\00\00\08\00\00\00\1e\00\00\00r\00\00\00\1d\00\00\00\13\00\00\00/\00\00\00\11\00\00\00\03\00\00\00 \00\00\00\14\00\00\00\06\00\00\00\12\00\00\00\b1\02\00\00?\00\00\00\81\00\00\00J\00\00\00\06\00\00\00\00\00\00\00C\00\00\00\0c\00\00\00A\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\1d\00\00\00\f7\17\00\00\09\00\00\00\d5\04\00\00+\00\00\00\08\00\00\00\f8\22\00\00\1e\01\00\002\00\00\00\02\00\00\00\12\00\00\00\03\00\00\00\09\00\00\00\8b\01\00\00\05\09\00\00j\00\00\00\06\00\00\00\0c\00\00\00\04\00\00\00\08\00\00\00\08\00\00\00\09\00\00\00g\17\00\00T\00\00\00\02\00\00\00F\00\00\00\02\00\00\00\01\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\02\00\00\00\0b\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00@\00\00\00\02\00\00\00\03\00\00\00\03\00\00\00\07\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00\1b\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\04\00\00\00\06\00\00\00\02\00\00\00S\01\00\00\03\00\00\00\18\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\1e\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\1e\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\1e\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\1e\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\07\00\00\005\09\00\00,\00\00\00\0b\00\00\00\06\00\00\00\11\00\00\00\00\00\00\00r\01\00\00+\00\00\00\15\05\00\00\c4\00\00\00<\00\00\00C\00\00\00\08\00\00\00\00\00\00\00\b5\04\00\00\03\00\00\00\02\00\00\00\1a\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\02\00\00\00\09\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\03\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\09\00\00\00\02\00\00\00\10\00\00\00\06\00\00\00\02\00\00\00\02\00\00\00\04\00\00\00\02\00\00\00\10\00\00\00E\11\00\00\dd\a6\00\00#\00\00\004\10\00\00\0c\00\00\00\dd\00\00\00\03\00\00\00\81\16\00\00\0f\00\00\000\1d\00\00 \0c\00\00\1d\02\00\00\e3\05\00\00J\13\00\00\fd\01\00\00\00\00\00\00\e3\00\00\00\00\00\00\00\96\00\00\00\04\00\00\00&\01\00\00\09\00\00\00X\05\00\00\02\00\00\00\02\00\00\00\01\00\00\00\06\00\00\00\03\00\00\00)\00\00\00\02\00\00\00\05\00\00\00\00\00\00\00\a6\00\00\00\01\00\00\00>\02\00\00\03\00\00\00\09\00\00\00\09\00\00\00r\01\00\00\01\00\00\00\9a\00\00\00\0a\00\00\00\b0\00\00\00\02\00\00\006\00\00\00\0e\00\00\00 \00\00\00\09\00\00\00\10\00\00\00\03\00\00\00.\00\00\00\0a\00\00\006\00\00\00\09\00\00\00\07\00\00\00\02\00\00\00%\00\00\00\0d\00\00\00\02\00\00\00\09\00\00\00\06\00\00\00\01\00\00\00-\00\00\00\00\00\00\00\0d\00\00\00\02\00\00\001\00\00\00\0d\00\00\00\09\00\00\00\03\00\00\00\02\00\00\00\0b\00\00\00S\00\00\00\0b\00\00\00\07\00\00\00\00\00\00\00\a1\00\00\00\0b\00\00\00\06\00\00\00\09\00\00\00\07\00\00\00\03\00\00\008\00\00\00\01\00\00\00\02\00\00\00\06\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\02\00\00\00\0a\00\00\00\00\00\00\00\0b\00\00\00\01\00\00\00\03\00\00\00\06\00\00\00\04\00\00\00\04\00\00\00\c1\00\00\00\11\00\00\00\0a\00\00\00\09\00\00\00\05\00\00\00\00\00\00\00R\00\00\00\13\00\00\00\0d\00\00\00\09\00\00\00\d6\00\00\00\06\00\00\00\03\00\00\00\08\00\00\00\1c\00\00\00\01\00\00\00S\00\00\00\10\00\00\00\10\00\00\00\09\00\00\00R\00\00\00\0c\00\00\00\09\00\00\00\09\00\00\00T\00\00\00\0e\00\00\00\05\00\00\00\09\00\00\00\f3\00\00\00\0e\00\00\00\a6\00\00\00\09\00\00\00G\00\00\00\05\00\00\00\02\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\0d\00\00\00\09\00\00\00x\00\00\00\06\00\00\00\03\00\00\00\06\00\00\00\04\00\00\00\00\00\00\00\1d\00\00\00\09\00\00\00)\00\00\00\06\00\00\00\02\00\00\00\03\00\00\00\09\00\00\00\00\00\00\00\0a\00\00\00\0a\00\00\00/\00\00\00\0f\00\00\00\96\01\00\00\07\00\00\00\02\00\00\00\07\00\00\00\11\00\00\00\09\00\00\009\00\00\00\15\00\00\00\02\00\00\00\0d\00\00\00{\00\00\00\05\00\00\00\04\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00\00\00\00\00\09\00\00\00\09\00\00\001\00\00\00\04\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\04\00\00\00\09\00\00\00\09\00\00\00J\01\00\00\03\00\00\00jK\00\00\09\00\00\00\87\00\00\00\04\00\00\00<\00\00\00\06\00\00\00\1a\00\00\00\09\00\00\00\f6\03\00\00\00\00\00\00\02\00\00\006\00\00\00\08\00\00\00\03\00\00\00R\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\acL\00\00\01\00\00\00\c7\14\00\00\04\00\00\00\04\00\00\00\05\00\00\00\09\00\00\00\07\00\00\00\03\00\00\00\06\00\00\00\1f\00\00\00\03\00\00\00\95\00\00\00\02\00\00\00\8a\05\00\001\00\00\00\01\02\00\006\00\00\00\05\00\00\001\00\00\00\09\00\00\00\00\00\00\00\0f\00\00\00\00\00\00\00\17\00\00\00\04\00\00\00\02\00\00\00\0e\00\00\00Q\05\00\00\06\00\00\00\02\00\00\00\10\00\00\00\03\00\00\00\06\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\04\00\00\00\06\01\00\00\06\00\00\00\0a\00\00\00\09\00\00\00\a3\01\00\00\0d\00\00\00\d7\05\00\00\06\00\00\00n\00\00\00\06\00\00\00\06\00\00\00\09\00\00\00\97\12\00\00\09\00\00\00\07\05\0c\00\ef") - (data (;1;) (i32.const 3992) "P|\00\00\01\00\00\00\02\00\00\00\03")) + (data (;0;) (i32.const 1026) "defineProperty\00defineProperties") + (data (;1;) (i32.const 1076) "\0b\00\00\00\02\00\00\00\19\00\00\00\02\00\00\00\12\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\0e\00\00\00\03\00\00\00\0d\00\00\00#\00\00\00z\00\00\00F\00\00\004\00\00\00\0c\01\00\00\1c\00\00\00\04\00\00\000\00\00\000\00\00\00\1f\00\00\00\0e\00\00\00\1d\00\00\00\06\00\00\00%\00\00\00\0b\00\00\00\1d\00\00\00\03\00\00\00#\00\00\00\05\00\00\00\07\00\00\00\02\00\00\00\04\00\00\00+\00\00\00\9d\00\00\00\13\00\00\00#\00\00\00\05\00\00\00#\00\00\00\05\00\00\00'\00\00\00\09\00\00\003\00\00\00\9d\00\00\006\01\00\00\0a\00\00\00\15\00\00\00\0b\00\00\00\07\00\00\00\99\00\00\00\05\00\00\00\03\00\00\00\00\00\00\00\02\00\00\00+\00\00\00\02\00\00\00\01\00\00\00\04\00\00\00\00\00\00\00\03\00\00\00\16\00\00\00\0b\00\00\00\16\00\00\00\0a\00\00\00\1e\00\00\00B\00\00\00\12\00\00\00\02\00\00\00\01\00\00\00\0b\00\00\00\15\00\00\00\0b\00\00\00\19\00\00\00G\00\00\007\00\00\00\07\00\00\00\01\00\00\00A\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\02\00\00\00\02\00\00\00\1c\00\00\00+\00\00\00\1c\00\00\00\04\00\00\00\1c\00\00\00$\00\00\00\07\00\00\00\02\00\00\00\1b\00\00\00\1c\00\00\005\00\00\00\0b\00\00\00\15\00\00\00\0b\00\00\00\12\00\00\00\0e\00\00\00\11\00\00\00o\00\00\00H\00\00\008\00\00\002\00\00\00\0e\00\00\002\00\00\00\0e\00\00\00#\00\00\00]\01\00\00)\00\00\00\07\00\00\00\01\00\00\00O\00\00\00\1c\00\00\00\0b\00\00\00\00\00\00\00\09\00\00\00\15\00\00\00k\00\00\00\14\00\00\00\1c\00\00\00\16\00\00\00\0d\00\00\004\00\00\00L\00\00\00,\00\00\00!\00\00\00\18\00\00\00\1b\00\00\00#\00\00\00\1e\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\09\00\00\00\22\00\00\00\04\00\00\00\00\00\00\00\0d\00\00\00/\00\00\00\0f\00\00\00\03\00\00\00\16\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00$\00\00\00\11\00\00\00\02\00\00\00\18\00\00\00U\00\00\00\06\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\0e\00\00\00\02\00\00\00\09\00\00\00\08\00\00\00.\00\00\00'\00\00\00\07\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\15\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\04\00\00\00\04\00\00\00\00\00\00\00\13\00\00\00\00\00\00\00\0d\00\00\00\04\00\00\00\9f\00\00\004\00\00\00\13\00\00\00\03\00\00\00\15\00\00\00\02\00\00\00\1f\00\00\00/\00\00\00\15\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\b9\00\00\00.\00\00\00*\00\00\00\03\00\00\00%\00\00\00/\00\00\00\15\00\00\00\00\00\00\00<\00\00\00*\00\00\00\0e\00\00\00\00\00\00\00H\00\00\00\1a\00\00\00\e6\00\00\00+\00\00\00u\00\00\00?\00\00\00 \00\00\00\07\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\07\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\17\00\00\00\10\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00_\00\00\00\07\00\00\00\03\00\00\00&\00\00\00\11\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\1d\00\00\00\00\00\00\00\0b\00\00\00'\00\00\00\08\00\00\00\00\00\00\00\16\00\00\00\00\00\00\00\0c\00\00\00-\00\00\00\14\00\00\00\00\00\00\00#\00\00\008\00\00\00\08\01\00\00\08\00\00\00\02\00\00\00$\00\00\00\12\00\00\00\00\00\00\002\00\00\00\1d\00\00\00q\00\00\00\06\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00%\00\00\00\16\00\00\00\00\00\00\00\1a\00\00\00\05\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\1f\00\00\00\0f\00\00\00\00\00\00\00H\01\00\00\12\00\00\00\be\00\00\00\00\00\00\00P\00\00\00\99\03\00\00g\00\00\00n\00\00\00\12\00\00\00\c3\00\00\00\bd\0a\00\00.\04\00\00\d2\0f\00\00F\02\00\00\ba!\00\008\02\00\00\08\00\00\00\1e\00\00\00r\00\00\00\1d\00\00\00\13\00\00\00/\00\00\00\11\00\00\00\03\00\00\00 \00\00\00\14\00\00\00\06\00\00\00\12\00\00\00\b1\02\00\00?\00\00\00\81\00\00\00J\00\00\00\06\00\00\00\00\00\00\00C\00\00\00\0c\00\00\00A\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\1d\00\00\00\f7\17\00\00\09\00\00\00\d5\04\00\00+\00\00\00\08\00\00\00\f8\22\00\00\1e\01\00\002\00\00\00\02\00\00\00\12\00\00\00\03\00\00\00\09\00\00\00\8b\01\00\00\05\09\00\00j\00\00\00\06\00\00\00\0c\00\00\00\04\00\00\00\08\00\00\00\08\00\00\00\09\00\00\00g\17\00\00T\00\00\00\02\00\00\00F\00\00\00\02\00\00\00\01\00\00\00\03\00\00\00\00\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\02\00\00\00\0b\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00@\00\00\00\02\00\00\00\03\00\00\00\03\00\00\00\07\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00\1b\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\04\00\00\00\02\00\00\00\00\00\00\00\04\00\00\00\06\00\00\00\02\00\00\00S\01\00\00\03\00\00\00\18\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\1e\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\1e\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\1e\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\1e\00\00\00\02\00\00\00\18\00\00\00\02\00\00\00\07\00\00\005\09\00\00,\00\00\00\0b\00\00\00\06\00\00\00\11\00\00\00\00\00\00\00r\01\00\00+\00\00\00\15\05\00\00\c4\00\00\00<\00\00\00C\00\00\00\08\00\00\00\00\00\00\00\b5\04\00\00\03\00\00\00\02\00\00\00\1a\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\02\00\00\00\09\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\07\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\03\00\00\00\03\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\03\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\09\00\00\00\02\00\00\00\10\00\00\00\06\00\00\00\02\00\00\00\02\00\00\00\04\00\00\00\02\00\00\00\10\00\00\00E\11\00\00\dd\a6\00\00#\00\00\004\10\00\00\0c\00\00\00\dd\00\00\00\03\00\00\00\81\16\00\00\0f\00\00\000\1d\00\00 \0c\00\00\1d\02\00\00\e3\05\00\00J\13\00\00\fd\01\00\00\00\00\00\00\e3\00\00\00\00\00\00\00\96\00\00\00\04\00\00\00&\01\00\00\09\00\00\00X\05\00\00\02\00\00\00\02\00\00\00\01\00\00\00\06\00\00\00\03\00\00\00)\00\00\00\02\00\00\00\05\00\00\00\00\00\00\00\a6\00\00\00\01\00\00\00>\02\00\00\03\00\00\00\09\00\00\00\09\00\00\00r\01\00\00\01\00\00\00\9a\00\00\00\0a\00\00\00\b0\00\00\00\02\00\00\006\00\00\00\0e\00\00\00 \00\00\00\09\00\00\00\10\00\00\00\03\00\00\00.\00\00\00\0a\00\00\006\00\00\00\09\00\00\00\07\00\00\00\02\00\00\00%\00\00\00\0d\00\00\00\02\00\00\00\09\00\00\00\06\00\00\00\01\00\00\00-\00\00\00\00\00\00\00\0d\00\00\00\02\00\00\001\00\00\00\0d\00\00\00\09\00\00\00\03\00\00\00\02\00\00\00\0b\00\00\00S\00\00\00\0b\00\00\00\07\00\00\00\00\00\00\00\a1\00\00\00\0b\00\00\00\06\00\00\00\09\00\00\00\07\00\00\00\03\00\00\008\00\00\00\01\00\00\00\02\00\00\00\06\00\00\00\03\00\00\00\01\00\00\00\03\00\00\00\02\00\00\00\0a\00\00\00\00\00\00\00\0b\00\00\00\01\00\00\00\03\00\00\00\06\00\00\00\04\00\00\00\04\00\00\00\c1\00\00\00\11\00\00\00\0a\00\00\00\09\00\00\00\05\00\00\00\00\00\00\00R\00\00\00\13\00\00\00\0d\00\00\00\09\00\00\00\d6\00\00\00\06\00\00\00\03\00\00\00\08\00\00\00\1c\00\00\00\01\00\00\00S\00\00\00\10\00\00\00\10\00\00\00\09\00\00\00R\00\00\00\0c\00\00\00\09\00\00\00\09\00\00\00T\00\00\00\0e\00\00\00\05\00\00\00\09\00\00\00\f3\00\00\00\0e\00\00\00\a6\00\00\00\09\00\00\00G\00\00\00\05\00\00\00\02\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\02\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\0d\00\00\00\09\00\00\00x\00\00\00\06\00\00\00\03\00\00\00\06\00\00\00\04\00\00\00\00\00\00\00\1d\00\00\00\09\00\00\00)\00\00\00\06\00\00\00\02\00\00\00\03\00\00\00\09\00\00\00\00\00\00\00\0a\00\00\00\0a\00\00\00/\00\00\00\0f\00\00\00\96\01\00\00\07\00\00\00\02\00\00\00\07\00\00\00\11\00\00\00\09\00\00\009\00\00\00\15\00\00\00\02\00\00\00\0d\00\00\00{\00\00\00\05\00\00\00\04\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\06\00\00\00\02\00\00\00\00\00\00\00\09\00\00\00\09\00\00\001\00\00\00\04\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\04\00\00\00\09\00\00\00\09\00\00\00J\01\00\00\03\00\00\00jK\00\00\09\00\00\00\87\00\00\00\04\00\00\00<\00\00\00\06\00\00\00\1a\00\00\00\09\00\00\00\f6\03\00\00\00\00\00\00\02\00\00\006\00\00\00\08\00\00\00\03\00\00\00R\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\acL\00\00\01\00\00\00\c7\14\00\00\04\00\00\00\04\00\00\00\05\00\00\00\09\00\00\00\07\00\00\00\03\00\00\00\06\00\00\00\1f\00\00\00\03\00\00\00\95\00\00\00\02\00\00\00\8a\05\00\001\00\00\00\01\02\00\006\00\00\00\05\00\00\001\00\00\00\09\00\00\00\00\00\00\00\0f\00\00\00\00\00\00\00\17\00\00\00\04\00\00\00\02\00\00\00\0e\00\00\00Q\05\00\00\06\00\00\00\02\00\00\00\10\00\00\00\03\00\00\00\06\00\00\00\02\00\00\00\01\00\00\00\02\00\00\00\04\00\00\00\06\01\00\00\06\00\00\00\0a\00\00\00\09\00\00\00\a3\01\00\00\0d\00\00\00\d7\05\00\00\06\00\00\00n\00\00\00\06\00\00\00\06\00\00\00\09\00\00\00\97\12\00\00\09\00\00\00\07\05\0c\00\ef") + (data (;2;) (i32.const 4024) "p|\00\00\01\00\00\00\02\00\00\00\03")) diff --git a/src/lexer.c b/src/lexer.c index d14a9e2..dab3336 100755 --- a/src/lexer.c +++ b/src/lexer.c @@ -6,6 +6,7 @@ const uint16_t __empty_char = '\0'; const uint16_t* EMPTY_CHAR = &__empty_char; // tracked depth of template and brackets #define STACK_DEPTH 2048 +enum TokenType { ClassToken = 1, ExportObjectToken = 2 }; const uint16_t* source; bool lastSlashWasDivision; @@ -20,6 +21,8 @@ uint16_t* templateStack; uint16_t** openTokenPosStack; bool nextBraceIsClass; bool allowMinifiedEnumerable; +static bool extended; +static uint16_t* exportObjectPos; uint16_t* lastReexportStart; uint16_t* lastReexportEnd; @@ -33,7 +36,7 @@ uint32_t sourceLen; uint16_t templateStack_[STACK_DEPTH]; uint16_t* openTokenPosStack_[STACK_DEPTH]; -bool openClassPosStack[STACK_DEPTH]; +uint8_t openTokenTypeStack[STACK_DEPTH]; StarExportBinding starExportBinding_; StarExportBinding* firstStarExport; StarExportBinding* lastStarExport; @@ -43,6 +46,9 @@ void (*addReexport)(const uint16_t*, const uint16_t*); void (*addUnsafeGetter)(const uint16_t*, const uint16_t*); void (*clearReexports)(); +static bool isStatementBrace (uint16_t* curPos, uint16_t depth); +static uint16_t readExportExpressionStart (); + static inline __attribute__((always_inline)) bool isTokenRunChar (uint16_t ch) { return (uint16_t)((ch | 32) - 'a') < 26 || (uint16_t)(ch - '0') < 10 || ch == '$' || ch == '_' || ch == '\\' || (ch > 127 && ch != 160); @@ -53,6 +59,7 @@ static inline __attribute__((always_inline)) bool pushOpenToken (uint16_t* token syntaxError(12); return false; } + if (extended) openTokenTypeStack[openTokenDepth] = 0; openTokenPosStack[openTokenDepth++] = tokenPos; return true; } @@ -63,6 +70,7 @@ static inline __attribute__((always_inline)) bool pushTemplate () { return false; } templateStack[templateStackDepth++] = templateDepth; + if (extended) openTokenTypeStack[openTokenDepth] = 0; templateDepth = ++openTokenDepth; return true; } @@ -76,6 +84,7 @@ uint32_t parseCJSWithOptions (uint16_t* _source, uint32_t _sourceLen, void (*_ad source = _source; sourceLen = _sourceLen; allowMinifiedEnumerable = (options & 1) != 0; + extended = (options & 2) != 0; if (_addExport) addExport = _addExport; if (_addReexport) @@ -95,6 +104,7 @@ uint32_t parseCJSWithOptions (uint16_t* _source, uint32_t _sourceLen, void (*_ad firstStarExport = NULL; lastStarExport = NULL; nextBraceIsClass = false; + exportObjectPos = 0; pos = (uint16_t*)(source - 1); uint16_t ch = '\0'; @@ -184,6 +194,21 @@ uint32_t parseCJSWithOptions (uint16_t* _source, uint32_t _sourceLen, void (*_ad if (!pushOpenToken(lastTokenPos)) return error; break; + case '[': + if (extended && !pushOpenToken(lastTokenPos)) + return error; + break; + case ']': + if (extended) { + if (openTokenDepth == 0) + return syntaxError(8), error; + openTokenDepth--; + } + break; + case ',': + if (extended && openTokenDepth && (openTokenTypeStack[openTokenDepth - 1] & ExportObjectToken)) + readExportProperty(); + break; case ')': if (openTokenDepth == 0) return syntaxError(8), error; @@ -192,8 +217,13 @@ uint32_t parseCJSWithOptions (uint16_t* _source, uint32_t _sourceLen, void (*_ad case '{': if (!pushOpenToken(lastTokenPos)) return error; - openClassPosStack[openTokenDepth - 1] = nextBraceIsClass; + openTokenTypeStack[openTokenDepth - 1] = nextBraceIsClass ? ClassToken : 0; nextBraceIsClass = false; + if (extended && pos == exportObjectPos) { + openTokenTypeStack[openTokenDepth - 1] |= ExportObjectToken; + exportObjectPos = 0; + readExportProperty(); + } break; case '}': if (openTokenDepth == 0) @@ -236,7 +266,9 @@ uint32_t parseCJSWithOptions (uint16_t* _source, uint32_t _sourceLen, void (*_ad !(lastToken == '.' && (*(lastTokenPos - 1) >= '0' && *(lastTokenPos - 1) <= '9')) && !(lastToken == '+' && *(lastTokenPos - 1) == '+') && !(lastToken == '-' && *(lastTokenPos - 1) == '-') || lastToken == ')' && isParenKeyword(openTokenPosStack[openTokenDepth]) || - lastToken == '}' && (isExpressionTerminator(openTokenPosStack[openTokenDepth]) || openClassPosStack[openTokenDepth]) || + lastToken == '}' && (isExpressionTerminator(openTokenPosStack[openTokenDepth]) || + (openTokenTypeStack[openTokenDepth] & ClassToken) || + extended && isStatementBrace(openTokenPosStack[openTokenDepth], openTokenDepth)) || lastToken == '/' && lastSlashWasDivision || isExpressionKeyword(lastTokenPos) || !lastToken) { @@ -378,6 +410,11 @@ void tryParseObjectDefineOrKeys (bool keys) { if (ch == '.') { pos++; ch = commentWhitespace(); + if (extended && ch == 'd') { + readExportDefinition(); + pos = revertPos; + return; + } if (ch == 'd' && str_eq13(pos + 1, 'e', 'f', 'i', 'n', 'e', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y')) { uint16_t* exportStart = 0; uint16_t* exportEnd = 0; @@ -967,9 +1004,16 @@ void tryParseExportsDotAssign (bool assign) { // module.exports = case '=': { if (assign) { - clearReexports(); + if (!extended) clearReexports(); pos++; ch = commentWhitespace(); + if (extended) { + if (ch == '(') ch = readExportExpressionStart(); + if (ch == '{') exportObjectPos = pos; + else if (ch == 'r') tryParseRequire(ExportAssign); + pos = revertPos; + return; + } // { ... } if (ch == '{') { tryParseLiteralExports(); @@ -1020,6 +1064,131 @@ bool tryParseRequire (enum RequireType requireType) { return false; } +static bool matchesKeyword (const char* keyword, uint32_t length) { + if (pos > end || (uint32_t)(end - pos + 1) < length) return false; + for (uint32_t i = 0; i < length; i++) { + if (pos[i] != keyword[i]) return false; + } + return true; +} + +static uint16_t readExportExpressionStart () { + while (true) { + pos++; + uint16_t ch = commentWhitespace(); + if (ch == '(') continue; + uint16_t* start = pos; + if (ch == '\'' || ch == '"') { + stringLiteral(ch); + pos++; + } + else if (ch == '{') { + pos++; + if (commentWhitespace() == '}') pos++; + else { + pos = start; + return ch; + } + } + else { + while (pos <= end && isIdentifierChar(fullCharCode(*pos))) + pos += charCodeByteLen(fullCharCode(*pos)); + } + if (pos == start || commentWhitespace() != ',') { + pos = start; + return ch; + } + } +} + +void readExportDefinition () { + bool property = matchesKeyword("defineProperty", 14); + bool properties = matchesKeyword("defineProperties", 16); + if (!property && !properties) return; + pos += property ? 14 : 16; + uint16_t ch = commentWhitespace(); + if (ch != '(') return; + pos++; + ch = commentWhitespace(); + if (!readExportsOrModuleDotExports(ch)) return; + if (commentWhitespace() != ',') return; + pos++; + ch = commentWhitespace(); + if (properties) { + if (ch == '(') ch = readExportExpressionStart(); + if (ch == '{') exportObjectPos = pos; + } + else if (ch == '\'' || ch == '"') { + uint16_t* nameStart = pos; + stringLiteral(ch); + uint16_t* nameEnd = ++pos; + if (commentWhitespace() == ',') addExport(nameStart, nameEnd); + } +} + +void readExportProperty () { + uint16_t* revertPos = pos; + pos++; + uint16_t ch = commentWhitespace(); + if (ch == '.' && end - pos >= 2 && str_eq2(pos + 1, '.', '.')) { + pos += 3; + ch = commentWhitespace(); + if (ch == 'r') tryParseRequire(ExportAssign); + pos = revertPos; + return; + } + if (ch == '*') { + pos++; + ch = commentWhitespace(); + } + bool computed = ch == '['; + if (computed) { + pos++; + ch = commentWhitespace(); + } + uint16_t* nameStart = pos; + uint16_t* nameEnd = 0; + if (ch == '\'' || ch == '"') { + stringLiteral(ch); + nameEnd = ++pos; + } + else if (!computed && identifier(ch)) { + nameEnd = pos; + ch = commentWhitespace(); + if ((nameEnd - nameStart == 3 && (str_eq3(nameStart, 'g', 'e', 't') || str_eq3(nameStart, 's', 'e', 't')) || + nameEnd - nameStart == 5 && str_eq5(nameStart, 'a', 's', 'y', 'n', 'c')) && + ch != ':' && ch != '(' && ch != ',' && ch != '}') { + if (ch == '*') { + pos++; + ch = commentWhitespace(); + } + computed = ch == '['; + if (computed) { + pos++; + ch = commentWhitespace(); + } + nameStart = pos; + if (ch == '\'' || ch == '"') { + stringLiteral(ch); + nameEnd = ++pos; + } + else if (!computed && identifier(ch)) nameEnd = pos; + else nameEnd = 0; + } + } + ch = commentWhitespace(); + if (computed) { + if (ch != ']') nameEnd = 0; + else { + pos++; + ch = commentWhitespace(); + } + } + if (nameEnd && (ch == ':' || ch == '(' || !computed && (ch == ',' || ch == '}'))) + addExport(nameStart, nameEnd); + pos = revertPos; +} + void tryParseLiteralExports () { uint16_t* revertPos = pos - 1; while (pos++ < end) { @@ -1549,6 +1718,70 @@ bool isExpressionPunctuator (uint16_t ch) { ch == '[' || ch == '^' || ch > 122 && ch < 127 && ch != '}'; } +static uint16_t* precedingToken (uint16_t* curPos) { + while (curPos) { + while (isBrOrWs(*curPos)) { + if (curPos == source) return NULL; + curPos--; + } + if (*curPos != '/' || curPos == source || *(curPos - 1) != '*') + return curPos; + if (curPos == source + 1) return NULL; + curPos -= 2; + while (curPos > source && !(*curPos == '*' && *(curPos - 1) == '/')) curPos--; + if (curPos <= source + 1) return NULL; + curPos -= 2; + } + return NULL; +} + +static bool isStatementBrace (uint16_t* curPos, uint16_t depth) { + while (curPos && curPos != EMPTY_CHAR) { + uint16_t ch = *curPos; + if (ch == '{' && depth) { + curPos = openTokenPosStack[--depth]; + continue; + } + if (ch != ':') + return ch == '}' || isExpressionTerminator(curPos); + if (curPos == source) return false; + curPos = precedingToken(curPos - 1); + if (!curPos) return false; + uint16_t* start = curPos; + bool identifierStart = false; + uint16_t quote = *start; + if (quote == '\'' || quote == '"') { + while (start > source) { + start--; + if (*start != quote) continue; + uint16_t* before = start; + while (before > source && *(before - 1) == '\\') before--; + if ((start - before) % 2 == 0) break; + } + if (start == source) return false; + start--; + } + else { + while (start >= source && isIdentifierChar(fullCharCodeAtLast(start))) { + uint32_t codePoint = fullCharCodeAtLast(start); + identifierStart = isIdentifierStart(codePoint); + uint32_t length = charCodeByteLen(codePoint); + if ((size_t)(start - source) < length) return identifierStart; + start -= length; + } + } + curPos = precedingToken(start); + if (curPos && (*curPos == '+' || *curPos == '-')) + curPos = curPos == source ? NULL : precedingToken(curPos - 1); + if (curPos && curPos - source >= 3 && str_eq4(curPos - 3, 'c', 'a', 's', 'e') && + (curPos == source + 3 || !isIdentifierChar(fullCharCodeAtLast(curPos - 4)) && *(curPos - 4) != '.')) + return true; + if (!identifierStart) + return false; + } + return true; +} + bool isExpressionTerminator (uint16_t* curPos) { // detects: // > ; ) -1 finally catch diff --git a/src/lexer.js b/src/lexer.js index 44706d4..cb6509e 100755 --- a/src/lexer.js +++ b/src/lexer.js @@ -9,7 +9,11 @@ const hasBuffer = typeof Buffer !== 'undefined'; * @param {import('../lexer').ParseOptions} [options] */ export function parse (source, name = '@', options) { - const flags = options && options.allowMinifiedEnumerable === true ? 1 : 0; + const mode = options ? options.mode : undefined; + if (mode !== undefined && mode !== 'default' && mode !== 'extended') + throw new TypeError('Expected options.mode to be "default" or "extended".'); + const flags = (options && options.allowMinifiedEnumerable === true ? 1 : 0) | + (mode === 'extended' ? 2 : 0); if (!wasm) initSync(); diff --git a/test/extended.js b/test/extended.js new file mode 100644 index 0000000..765909f --- /dev/null +++ b/test/extended.js @@ -0,0 +1,389 @@ +const assert = require('node:assert/strict'); + +let parse; +const options = { mode: 'extended' }; + +suite('Extended parsing', () => { + suiteSetup(async () => { + if (process.env.WASM) { + const lexer = await import('../dist/lexer.mjs'); + await lexer.init(); + parse = lexer.parse; + } else if (process.env.WASM_SYNC) { + const lexer = require('../dist/lexer.js'); + lexer.initSync(); + parse = lexer.parse; + } else { + parse = require('../lexer.js').parse; + } + }); + + const descriptors = [ + '{ value: require("dep") }', + '({ value: require("dep") })', + '((/* descriptor */ { value: require("dep") }))', + '{ enumerable: !0, get: () => value }', + '{ configurable: true, get() { return load().default; } }', + '{ get: function () { throw new Error("must not execute"); } }' + ]; + + for (const descriptor of descriptors) { + test(`property descriptor ${descriptor}`, () => { + const result = parse(`Object.defineProperty(exports, 'name', ${descriptor});`, 'fixture.cjs', options); + assert.deepEqual(result, { exports: ['name'], reexports: [] }); + }); + } + + const values = [ + 'require("dep")', 'utility.member', 'utility["member"]', + 'condition ? first() : second()', '(first(), second())', + '`value ${`${1, 2}`}`', '/[,}]/.test(value)', + 'function () { return { nested: true }; }', + 'class { #value = 1; get value() { return this.#value; } }', + '[1, 2, { nested: [3, 4] }]', '(() => ({ inner: 1, other: 2 }))()', + '(numerator / denominator) / 2', '/* comma, brace } */ 1' + ]; + + for (const value of values) { + test(`object value ${value}`, () => { + const result = parse(`module.exports = { first: ${value}, second: 2 };`, 'fixture.cjs', options); + assert.deepEqual(result, { exports: ['first', 'second'], reexports: [] }); + }); + } + + test('descriptors with computed constant names', () => { + const result = parse(`Object.defineProperties(module.exports, { + ['first']: { get() { return factory().value; } }, second: { value: 2 } + });`, 'fixture.cjs', options); + assert.deepEqual(result, { exports: ['first', 'second'], reexports: [] }); + }); + + test('property methods and accessors', () => { + const result = parse(`module.exports = { + method() {}, get value() { return 1; }, set value(input) {}, ['computed']: 2 + };`, 'fixture.cjs', options); + assert.deepEqual(result, { exports: ['method', 'value', 'computed'], reexports: [] }); + }); + + test('quoted and computed accessor names and generator methods', () => { + assert.deepEqual(parse(`module.exports = ({ + get ['first']() {}, set 'second'(value) {}, async *third() {}, + *fourth() {}, async ['fifth']() {}, get: 1, async: 2 + });`, 'fixture.cjs', options), + { exports: ['first', 'second', 'third', 'fourth', 'fifth', 'get', 'async'], reexports: [] }); + }); + + test('dynamic property expressions preserve following keys', () => { + assert.deepEqual(parse(`module.exports = { [getName(1, 2)]: 1, after: 2 };`, 'fixture.cjs', options), + { exports: ['after'], reexports: [] }); + }); + + test('unsupported getters cannot veto other declarations', () => { + assert.deepEqual(parse(`exports.name = 1; + (function () { Object.defineProperty(exports, 'name', { get: () => load() }); })();`, + 'fixture.cjs', options), { exports: ['name'], reexports: [] }); + }); + + test('webpack parenthesized descriptors', () => { + assert.deepEqual(parse(`Object.defineProperty(exports, 'BaseWatchPlugin', ({ + enumerable: true, get: function () { return _BaseWatchPlugin.default; } + }));`, 'jest-watcher.cjs', options), { exports: ['BaseWatchPlugin'], reexports: [] }); + }); + + test('published jest-watcher webpack modules', () => { + // Extracts from jest-watcher@30.2.0/build/index.js (Meta Platforms, Inc., MIT). + const source = ` + /***/ "./src/BaseWatchPlugin.ts": + /***/ ((__unused_webpack_module, exports) => { + Object.defineProperty(exports, "__esModule", ({ + value: true + })); + exports["default"] = void 0; + class BaseWatchPlugin {} + var _default = exports["default"] = BaseWatchPlugin; + }), + /***/ "./src/index.ts": + /***/ ((__unused_webpack_module, exports, __webpack_require__) => { + Object.defineProperty(exports, "__esModule", ({ + value: true + })); + Object.defineProperty(exports, "BaseWatchPlugin", ({ + enumerable: true, + get: function () { + return _BaseWatchPlugin.default; + } + })); + var _BaseWatchPlugin = _interopRequireDefault(__webpack_require__("./src/BaseWatchPlugin.ts")); + }) + `; + assert.deepEqual(parse('({' + source + '});', 'jest-watcher.cjs'), + { exports: ['default'], reexports: [] }); + assert.deepEqual(parse('({' + source + '});', 'jest-watcher.cjs', options), + { exports: ['__esModule', 'default', 'BaseWatchPlugin'], reexports: [] }); + }); + + test('object spreads preserve reexports', () => { + const result = parse(`module.exports = { first: 1, ...require('one'), second: require('value') };`, + 'fixture.cjs', options); + assert.deepEqual(result, { exports: ['first', 'second'], reexports: ['one'] }); + }); + + test('conditional reexport alternatives', () => { + const result = parse(`if (condition) module.exports = require('one'); + else module.exports = require('two');`, 'fixture.cjs', options); + assert.deepEqual(result, { exports: [], reexports: ['one', 'two'] }); + }); + + test('names are syntactic candidates without binding analysis', () => { + assert.deepEqual(parse('function internal(exports) { exports.internal = 1; } exports.public = 2;', + 'fixture.cjs', options), { exports: ['internal', 'public'], reexports: [] }); + assert.deepEqual(parse('const target = exports; target.name = 1;', 'fixture.cjs', options), + { exports: [], reexports: [] }); + }); + + test('property names do not depend on descriptor comma expressions', () => { + const result = parse(`Object.defineProperty(exports, 'name', + ({ get() { throw new Error('unreachable'); } }, { value: 1 }));`, 'fixture.cjs', options); + assert.deepEqual(result, { exports: ['name'], reexports: [] }); + }); + + test('parenthesized comma expressions detect only the first object', () => { + for (const source of [ + 'module.exports = ({ a: 1 }, { b: 2 });', + 'Object.defineProperties(exports, ({ a: { value: 1 } }, { b: { value: 2 } }));', + 'Object.defineProperties(module.exports, ({ a: { value: 1 } }, { b: { value: 2 } }));' + ]) { + assert.deepEqual(parse(source, 'fixture.cjs', options), { exports: ['a'], reexports: [] }); + assert.deepEqual(parse(source, 'fixture.cjs'), { exports: [], reexports: [] }); + } + }); + + test('regex after labelled and nested statement blocks', () => { + for (const block of [ + 'a: {}', 'a: b: {}', 'a /* label */ : {}', '/**/ a: {}', 'a/**//**/: {}', '0; a: {}', '{} a: {}', + 'function run() { a: {}', '{ a: {}', 'if (x) a: {}', '{}', '{ {}', 'α: {}', '𐀀: {}' + ]) { + const suffix = block === 'function run() { a: {}' || block === '{ a: {}' || block === '{ {}' ? '}' : ''; + const source = block + String.raw` /[\]]exports.fake = 1/.test(x); exports.z = 1;` + suffix; + assert.deepEqual(parse(source, 'labelled.cjs', options), { exports: ['z'], reexports: [] }); + assert.deepEqual(parse('exports.after = 1;', 'after.cjs', options), + { exports: ['after'], reexports: [] }); + } + }); + + test('regex after simple switch case blocks', () => { + for (const value of [ + 'name', 'α', '𐀀', 'true', 'null', '1', '-1', '+1', '1n', '0xFF', '1_000', + "''", "'text'", '"text"', String.raw`'it\'s'`, String.raw`"a\\"`, 'name /* value */' + ]) { + const source = `switch (value) { case ${value}: label: {}` + + String.raw` /[\]]exports.fake = 1/.test(value); exports.z = 1; }`; + assert.deepEqual(parse(source, 'switch.cjs', options), { exports: ['z'], reexports: [] }); + } + assert.deepEqual(parse(String.raw`switch (value) { default: {} /[\]]/.test(value); exports.z = 1; }`, + 'switch.cjs', options), { exports: ['z'], reexports: [] }); + }); + + test('comma expressions can skip leading simple operands', () => { + for (const prefix of [ + '0', '1n', '0xFF', 'ignored', 'α', '𐀀', 'null', 'true', "'exports.fake = 1,'", '{}', '{ /* empty */ }', + '0, ignored, "text"', '0, (ignored', '0 /* comma */, {}' + ]) { + const suffix = prefix === '0, (ignored' ? ')' : ''; + for (const source of [ + `module.exports = (${prefix}, { name: 1 }${suffix});`, + `Object.defineProperties(exports, (${prefix}, { name: { value: 1 } }${suffix}));`, + `Object.defineProperties(module.exports, (${prefix}, { name: { value: 1 } }${suffix}));` + ]) { + assert.deepEqual(parse(source, 'comma.cjs', options), { exports: ['name'], reexports: [] }); + assert.deepEqual(parse(source, 'comma.cjs'), { exports: [], reexports: [] }); + } + } + assert.deepEqual(parse("module.exports = (0, require('dep'));", 'comma.cjs', options), + { exports: [], reexports: ['dep'] }); + }); + + test('comma operands outside grouping and compound prefixes remain separate', () => { + for (const source of [ + 'module.exports = 0, { fake: 1 };', + 'Object.defineProperties(exports, 0, { fake: { value: 1 } });', + 'module.exports = (ignored + 1, { fake: 1 });', + 'module.exports = (call(), { fake: 1 });', + 'module.exports = ("exports.fake = 1");', 'module.exports = (0);', + 'module.exports = (/exports.fake = 1/, { fake: 1 });', + 'module.exports = (`exports.fake = 1`, { fake: 1 });' + ]) { + assert.deepEqual(parse(source + ' exports.after = 1;', 'comma.cjs', options), + { exports: ['after'], reexports: [] }); + } + assert.deepEqual(parse('module.exports = (exports.before = 1, { fake: 1 });', 'comma.cjs', options), + { exports: ['before'], reexports: [] }); + }); + + test('object and conditional expressions followed by division remain expressions', () => { + for (const expression of [ + '{} / 2', '{ a: {} / 2 }', 'condition ? value : {} / 2', + 'condition ? left ? first : second : {} / 2', '({ label: {} / 2 })', + '({ label: {} / /exports.fake = 1/.test(x) })', + '({ "label": {} / 2 })', '({ [label]: {} / 2 })', '({ case: {} / 2 })', + 'condition ? 12 : {} / 2', 'condition ? -12 : {} / 2', 'condition ? +12 : {} / 2', + 'condition ? "text" : {} / 2', 'condition ? object.case : {} / 2' + ]) { + assert.deepEqual(parse(`const value = ${expression}; exports.z = 1;`, 'division.cjs', options), + { exports: ['z'], reexports: [] }); + } + }); + + test('dynamic names and dependencies are not invented', () => { + const result = parse(`exports[getName()] = 1; + module.exports = require(getSpecifier());`, 'fixture.cjs', options); + assert.deepEqual(result, { exports: [], reexports: [] }); + }); + + test('source code never executes', () => { + const result = parse(`throw new Error('source must not execute'); + exports.name = globalThis.sideEffect = 1;`, 'fixture.cjs', options); + assert.equal(Object.hasOwn(globalThis, 'sideEffect'), false); + assert.deepEqual(result, { exports: ['name'], reexports: [] }); + }); + + test('valid CommonJS grammar and parser state', () => { + assert.deepEqual(parse('#!/usr/bin/env node\nexports.name = 1; return;', 'fixture.cjs', options), + { exports: ['name'], reexports: [] }); + assert.deepEqual(parse('', 'empty.cjs', options), { exports: [], reexports: [] }); + }); + + test('unterminated lexical structures report the filename', () => { + assert.throws(() => parse('module.exports = { name: 1', 'broken.cjs', options), + /** @param {Error} error */ + error => error instanceof Error && error.message.includes('broken.cjs')); + assert.deepEqual(parse('', 'empty.cjs', options), { exports: [], reexports: [] }); + assert.deepEqual(parse('exports.after = 1;', 'after.cjs'), { exports: ['after'], reexports: [] }); + }); + + test('early scanner errors propagate in extended mode', () => { + assert.throws(() => parse('}', 'broken.cjs', options), + /** @param {Error} error */ + error => error.message.includes('broken.cjs')); + assert.deepEqual(parse('exports.after = 1;', 'after.cjs', options), + { exports: ['after'], reexports: [] }); + }); + + test('default and explicit default mode preserve behavior', () => { + const source = `Object.defineProperty(exports, 'name', ({ value: 1 })); exports.other = 2;`; + assert.deepEqual(parse(source, 'fixture.cjs'), { exports: ['other'], reexports: [] }); + assert.deepEqual(parse(source, 'fixture.cjs', { mode: 'default' }), parse(source, 'fixture.cjs')); + assert.deepEqual(parse(source, 'fixture.cjs', {}), parse(source, 'fixture.cjs')); + }); + + test('invalid modes fail at the API boundary', () => { + assert.throws(() => parse('', 'fixture.cjs', { mode: 'unknown' }), { name: 'TypeError' }); + }); + + test('existing option values preserve default detection', () => { + for (const value of [null, true, 'extended', []]) { + assert.deepEqual(parse('exports.name = 1;', 'fixture.cjs', value), + { exports: ['name'], reexports: [] }); + } + assert.throws(() => parse('', 'fixture.cjs', { mode: false }), { name: 'TypeError' }); + }); + + test('mode is read once', () => { + let reads = 0; + const result = parse("Object.defineProperty(exports, 'name', descriptor);", 'fixture.cjs', { + get mode() { reads++; return 'extended'; } + }); + assert.equal(reads, 1); + assert.deepEqual(result, { exports: ['name'], reexports: [] }); + }); + + test('detection options compose and reset independently', () => { + const source = ` + Object.defineProperty(exports, 'extended', ({ value: 1 })); + Object.defineProperty(exports, 'minified', { enumerable: !0, value: 1 }); + var external = require('external'); + Object.keys(external).forEach(function (key) { + if (key === 'default' || key === '__esModule') return; + Object.defineProperty(exports, key, { + enumerable: !0, get: function () { return external[key]; } + }); + }); + `; + for (const mode of [undefined, 'default', 'extended']) { + for (const allowMinifiedEnumerable of [false, true]) { + const combined = { mode, allowMinifiedEnumerable }; + const names = mode === 'extended' ? ['extended', 'minified'] : + allowMinifiedEnumerable ? ['minified'] : []; + assert.deepEqual(parse(source, 'fixture.cjs', combined), { + exports: names, reexports: allowMinifiedEnumerable ? ['external'] : [] + }); + assert.throws(() => parse('(', 'broken.cjs', combined), /broken\.cjs/); + assert.deepEqual(parse(source, 'fixture.cjs'), { exports: [], reexports: [] }); + } + } + }); + + test('option getters can reenter either parsing mode', () => { + const source = "Object.defineProperty(exports, 'outer', ({ value: 1 }));"; + for (const mode of ['default', 'extended']) { + for (const nested of ['exports.inner = 1;', '('.repeat(2049)]) { + let reads = 0; + const combined = { + get mode () { + reads++; + if (nested.startsWith('(')) { + assert.throws(() => parse(nested, 'nested.cjs', options), /nested\.cjs/); + } else { + parse(nested, 'nested.cjs', options); + } + return mode; + }, + get allowMinifiedEnumerable () { + parse('exports.inner = 1;', 'nested.cjs', options); + return true; + } + }; + assert.deepEqual(parse(source, 'fixture.cjs', combined), { + exports: mode === 'extended' ? ['outer'] : [], reexports: [] + }); + assert.equal(reads, 1); + } + } + }); + + test('export targets and names must match', () => { + assert.deepEqual(parse(`Object.defineProperty(other, 'name', { value: 1 }); + Object.defineProperty(exports, getName(), { value: 2 }); + Object.defineProperties(other, { name: { value: 3 } }); + Object.defineProperties(exports, dynamicDescriptors);`, 'fixture.cjs', options), + { exports: [], reexports: [] }); + }); + + test('extended bracket nesting boundaries', () => { + assert.deepEqual(parse('['.repeat(2048) + '0' + ']'.repeat(2048), 'fixture.cjs', options), + { exports: [], reexports: [] }); + assert.throws(() => parse('['.repeat(2049) + '0' + ']'.repeat(2049), 'fixture.cjs', options)); + }); + + test('extended Wasm initializes on first use', async () => { + const lexer = await import('../dist/lexer.mjs?extended-first-use'); + assert.deepEqual(lexer.parse("Object.defineProperty(exports, 'name', descriptor);", 'fixture.cjs', options), + { exports: ['name'], reexports: [] }); + }); + + test('browser source copying preserves extended names', async () => { + const originalBuffer = global.Buffer; + let lexer; + global.Buffer = undefined; + try { + lexer = await import('../dist/lexer.mjs?extended-browser'); + } + finally { + global.Buffer = originalBuffer; + } + await lexer.init(); + assert.deepEqual(lexer.parse(`const text = '${'𓀀'.repeat(40000)}'; + Object.defineProperty(exports, 'name', ({ get: () => text }));`, 'fixture.cjs', options), + { exports: ['name'], reexports: [] }); + }); +});