From 59503f753d630efedb60e0b88a1787e1639d83d5 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 26 Oct 2026 11:26:41 -0700 Subject: [PATCH] feat(lexer): add opt-in extended export detection The default matcher rejects parenthesized property descriptors generated by webpack. Its unsafe-getter veto then suppresses declarations with the same names. This adds `parse(source, filename, { mode: 'extended' })` for broader syntactic export detection. Extended mode accepts arbitrary object values and descriptor bodies, skips simple leading comma operands, and recognizes regex after labelled and switch case blocks. Its candidates can include getters with side effects. Default detection remains frozen. C and JavaScript retain separate scanners to preserve native Wasm scanning and the standalone JavaScript build. Refs: https://github.com/nodejs/cjs-module-lexer/issues/88 Refs: https://github.com/nodejs/cjs-module-lexer/issues/101 --- README.md | 37 +- include-wasm/cjs-module-lexer.h | 2 + lexer.d.ts | 1 + lexer.js | 233 +- lib/lexer.wasm | Bin 25495 -> 28959 bytes lib/lexer.wat | 12542 +++++++++++++++++------------- src/lexer.c | 241 +- src/lexer.js | 6 +- test/extended.js | 389 + 9 files changed, 8017 insertions(+), 5434 deletions(-) create mode 100644 test/extended.js 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 6b8ce189436f380e50ff3a9ddda2756e6d2c9ba7..fd7050af5d28867e4b123c01bb484ff15fc7f724 100755 GIT binary patch literal 28959 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 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: [] }); + }); +});