diff --git a/include-wasm/cjs-module-lexer.h b/include-wasm/cjs-module-lexer.h index 77911fe..edf3173 100755 --- a/include-wasm/cjs-module-lexer.h +++ b/include-wasm/cjs-module-lexer.h @@ -211,7 +211,7 @@ uint16_t readExportAs (uint16_t* startPos, uint16_t* endPos); uint16_t commentWhitespace (); void stringLiteral (uint16_t quote); void regularExpression (); -void templateString (); +bool templateString (bool track); void blockComment (); void lineComment (); diff --git a/lexer.js b/lexer.js index 2217554..2d47a04 100755 --- a/lexer.js +++ b/lexer.js @@ -1,5 +1,6 @@ let source, pos, end; let extended, exportObjectPos; +let yieldContext; const STACK_DEPTH = 2048; const ClassToken = 1; const ExportObjectToken = 2; @@ -20,6 +21,7 @@ let openTokenDepth, reexports; function resetState () { + yieldContext = undefined; openTokenDepth = 0; templateDepth = -1; lastTokenPos = -1; @@ -1598,16 +1600,17 @@ function commentWhitespace () { return ch; } -function templateString () { +/** @param {boolean} [track] */ +function templateString (track = true) { while (pos++ < end) { const ch = source.charCodeAt(pos); if (ch === 36/*$*/ && source.charCodeAt(pos + 1) === 123/*{*/) { pos++; - pushTemplate(); - return; + if (track) pushTemplate(); + return true; } if (ch === 96/*`*/) - return; + return false; if (ch === 92/*\*/) pos++; } @@ -1730,7 +1733,7 @@ function isExpressionKeyword (pos) { return readPrecedingKeyword(pos - 2, 'vo'); case 108/*l*/: // yield - return readPrecedingKeyword(pos - 2, 'yie'); + return readPrecedingKeyword(pos - 2, 'yie') && isYieldKeyword(pos); default: return false; } @@ -1793,6 +1796,357 @@ function isExpressionKeyword (pos) { return false; } +const YieldBlock = 0; +const YieldObject = 1; +const YieldClass = 2; +const YieldParen = 3; +const YieldControl = 4; +const YieldBracket = 5; +const YieldComputed = 6; +const YieldTemplate = 7; +const YieldInterpolation = 8; +const YieldFunction = 9; +const YieldClassHeader = 10; +const YieldParameters = 11; +const YieldBody = 12; +const YieldPendingBody = 13; +const YieldArrow = 14; +const YieldArrowBody = 15; +const yieldControlKeywords = new Set(['if', 'for', 'while', 'with', 'switch', 'catch']); +const yieldExpressionKeywords = new Set([ + 'return', 'throw', 'case', 'delete', 'void', 'typeof', 'new', 'in', 'instanceof', 'await', 'extends' +]); +const yieldKeywords = new Set([ + ...yieldControlKeywords, ...yieldExpressionKeywords, 'function', 'class', 'yield', 'else', 'do', 'try', 'finally', + 'var', 'const', 'let', 'of' +]); + +/** + * @typedef {object} YieldFrame + * @property {number} type + * @property {boolean} generator + * @property {boolean} expression + * @property {boolean} bodyGenerator + * @property {boolean} forLoop + * @property {number} conditional + * @property {number} member + * + * @typedef {object} YieldContext + * @property {number} firstStar + * @property {number} cursor + * @property {number} tokenEnd + * @property {string} token + * @property {boolean} expression + * @property {boolean} generator + * @property {boolean} asyncExpression + * @property {number} depth + * @property {YieldFrame[]} stack + */ + +/** + * @param {YieldContext} context + * @param {number} type + * @param {boolean} [expression] + */ +function pushYieldFrame (context, type, expression = false) { + const frame = context.stack[context.depth] || (context.stack[context.depth] = {}); + frame.type = type; + frame.generator = context.generator; + frame.expression = expression; + frame.bodyGenerator = false; + frame.forLoop = false; + frame.conditional = 0; + frame.member = type === YieldObject || type === YieldClass ? 1 : 0; + context.depth++; + return frame; +} + +/** @param {YieldContext} context */ +function popYieldFrame (context) { + const frame = context.stack[context.depth > 1 ? --context.depth : 0]; + context.generator = frame.generator; + return frame; +} + +/** + * @param {number} start + * @param {number} end + */ +function yieldLineBreak (start, end) { + for (; start < end; start++) { + const ch = source.charCodeAt(start); + if (ch === 13 || ch === 10 || ch === 0x2028 || ch === 0x2029) return true; + } + return false; +} + +/** @param {number} ch */ +function isYieldWhitespace (ch) { + return isBrOrWs(ch) || ch === 0x1680 || ch >= 0x2000 && ch <= 0x200a || + ch === 0x2028 || ch === 0x2029 || ch === 0x202f || ch === 0x205f || ch === 0x3000 || ch === 0xfeff; +} + +/** @param {string} token */ +function isYieldStatementStart (token) { + return token === 'name' || yieldKeywords.has(token) && token !== 'in' && token !== 'instanceof' || + token === '{' || token === '++'; +} + +/** @param {number} type */ +function isYieldStatementBody (type) { + return type === YieldBlock || type === YieldBody || type === YieldArrowBody; +} + +/** + * @param {string} previous + * @param {number} type + */ +function isYieldDeclarationBoundary (previous, type) { + return previous === '' || previous === ';' || previous === 'else' || previous === ')' || previous === '}' || + previous === '{' && isYieldStatementBody(type) || previous === 'label'; +} + +/** @param {number} tokenEnd */ +function isYieldKeyword (tokenEnd) { + if (!yieldContext) { + yieldContext = { + firstStar: source.indexOf('*'), cursor: -1, tokenEnd: -1, token: '', expression: true, + generator: false, asyncExpression: false, depth: 0, stack: [] + }; + } + const context = yieldContext; + if (context.firstStar === -1 || context.firstStar > tokenEnd) return false; + const savedPos = pos; + try { + pos = context.cursor; + if (context.depth === 0) { + pushYieldFrame(context, YieldBlock); + if (source.startsWith('#!')) { + pos = 1; + lineComment(); + } + } + while (pos < tokenEnd) readYieldContext(context); + context.cursor = pos; + return context.generator && context.token === 'yield'; + } + finally { + pos = savedPos; + } +} + +/** @param {YieldContext} context */ +function readYieldContext (context) { + pos++; + const ch = source.charCodeAt(pos); + if (isYieldWhitespace(ch)) return; + if (ch === 47/*/*/ && source.charCodeAt(pos + 1) === 47/*/*/) { + lineComment(); + return; + } + if (ch === 47/*/*/ && source.charCodeAt(pos + 1) === 42/***/) { + blockComment(); + return; + } + const start = pos; + const previous = context.token; + let token = source[pos]; + let word; + if (isTokenRunChar(ch)) { + while (isTokenRunChar(source.charCodeAt(pos + 1)) && !isYieldWhitespace(source.charCodeAt(pos + 1))) pos++; + word = source.slice(start, pos + 1); + token = yieldKeywords.has(word) ? word : 'name'; + } + else if (ch === 39/*'*/ || ch === 34/*"*/) { + stringLiteral(ch); + token = 'name'; + } + else if (ch === 47/*/*/ && context.expression) { + regularExpression(); + skipTokenRun(); + token = 'name'; + } + else if (ch === 61/*=*/ && source.charCodeAt(pos + 1) === 62/*>*/) { + pos++; + token = '=>'; + } + else if (ch === 63/*?*/ && source.charCodeAt(pos + 1) === 46/*.*/) { + pos++; + token = '.'; + } + else if ((ch === 43/*+*/ || ch === 45/*-*/ || ch === 63/*?*/) && source.charCodeAt(pos + 1) === ch) { + pos++; + token = ch === 63/*?*/ ? '=' : '++'; + } + while (context.stack[context.depth - 1].type === YieldArrow && + (token === ')' || token === ']' || token === '}' || token === ',' || token === ';' || + token === ':' && context.stack[context.depth - 1].conditional === 0 || + (!context.expression || previous === 'arrowBody') && previous !== '.' && + (isYieldStatementStart(token) || token === '*' && previous === 'arrowBody') && + yieldLineBreak(context.tokenEnd + 1, start))) { + popYieldFrame(context); + } + let frame = context.stack[context.depth - 1]; + if (frame.type === YieldClass && !frame.member && previous !== '.' && + (!context.expression || previous === 'arrowBody') && + (isYieldStatementStart(token) || token === '*' && previous === 'arrowBody') && + yieldLineBreak(context.tokenEnd + 1, start)) frame.member = 1; + const member = frame.member !== 0; + switch (token) { + case 'function': + case 'class': + if (previous === '.' || member) { + frame.member |= member ? 2 : 0; + token = 'name'; + context.expression = false; + } + else { + const expression = previous === 'async' && + !yieldLineBreak(context.tokenEnd + 1, start) ? context.asyncExpression : + context.expression && !isYieldDeclarationBoundary(previous, frame.type); + pushYieldFrame(context, token === 'function' ? YieldFunction : YieldClassHeader, expression); + context.expression = false; + } + break; + case '(': + if (frame.type === YieldFunction) { + frame.type = YieldParameters; + context.generator = false; + } + else if (member && frame.member & 2) { + const parameters = pushYieldFrame(context, YieldParameters, true); + parameters.bodyGenerator = (frame.member & 4) !== 0; + context.generator = false; + } + else { + const control = pushYieldFrame(context, yieldControlKeywords.has(previous) ? YieldControl : YieldParen); + control.forLoop = previous === 'for'; + } + context.expression = true; + break; + case ')': + if (frame.type === YieldParameters) { + frame.type = YieldPendingBody; + context.generator = frame.generator; + context.expression = false; + } + else { + frame = popYieldFrame(context); + context.expression = frame.type === YieldControl; + } + break; + case '[': + pushYieldFrame(context, member ? YieldComputed : YieldBracket); + context.expression = true; + break; + case ']': + frame = popYieldFrame(context); + if (frame.type === YieldComputed) context.stack[context.depth - 1].member |= 2; + context.expression = false; + break; + case '{': + if (frame.type === YieldPendingBody || frame.type === YieldArrow && previous === '=>') { + if (frame.type === YieldArrow) frame.bodyGenerator = false; + frame.type = frame.type === YieldArrow ? YieldArrowBody : YieldBody; + context.generator = frame.bodyGenerator; + } + else if (frame.type === YieldClassHeader && !context.expression) { + frame.type = YieldClass; + frame.member = 1; + } + else { + const statement = previous === '' || previous === ';' || previous === ')' || previous === 'else' || + previous === 'do' || previous === 'try' || previous === 'finally' || previous === 'label' || + previous === '{' && isYieldStatementBody(frame.type) || !context.expression || + (previous === 'return' || previous === 'yield') && yieldLineBreak(context.tokenEnd + 1, start); + pushYieldFrame(context, statement ? YieldBlock : YieldObject); + } + context.expression = true; + break; + case '}': + frame = popYieldFrame(context); + context.expression = frame.type === YieldBlock || frame.type === YieldArrowBody || + (frame.type === YieldBody || frame.type === YieldClass) && !frame.expression; + if (frame.type === YieldArrowBody) token = 'arrowBody'; + if (frame.type === YieldBody && context.stack[context.depth - 1].member) { + context.stack[context.depth - 1].member = 1; + } + if (frame.type === YieldInterpolation) { + if (templateString(false)) pushYieldFrame(context, YieldInterpolation); + else { + popYieldFrame(context); + context.expression = false; + } + } + break; + case '`': + pushYieldFrame(context, YieldTemplate); + if (templateString(false)) { + pushYieldFrame(context, YieldInterpolation); + context.expression = true; + } + else { + popYieldFrame(context); + context.expression = false; + } + break; + case '=>': + pushYieldFrame(context, YieldArrow, true); + context.generator = false; + context.expression = true; + break; + case '?': + frame.conditional++; + context.expression = true; + break; + case ':': + if (frame.conditional) frame.conditional--; + else if (isYieldStatementBody(frame.type) || frame.type === YieldControl) token = 'label'; + else frame.member = 0; + context.expression = true; + break; + case ',': + case ';': + if (frame.type === YieldObject || frame.type === YieldClass) frame.member = 1; + context.expression = true; + break; + case '*': + if (frame.type === YieldFunction) frame.bodyGenerator = true; + else if (member) frame.member = 1 | 4; + context.expression = true; + break; + case '.': + context.expression = false; + break; + case '++': + break; + case 'name': + case 'of': + case 'yield': + if (word === 'async') { + context.asyncExpression = context.expression && !isYieldDeclarationBoundary(previous, frame.type); + token = 'async'; + } + if (member) frame.member |= 2; + if (previous === '.') token = 'name'; + context.expression = token === 'yield' && context.generator || token === 'of' && frame.forLoop; + break; + default: + if (member && token !== '=') frame.member |= 2; + else if (token === '=') frame.member = 0; + if (previous === '.') { + token = 'name'; + context.expression = false; + } + else { + context.expression = yieldExpressionKeywords.has(token) || isExpressionPunctuator(ch); + if (token === 'await' && previous === 'for') token = 'for'; + } + } + context.token = token; + context.tokenEnd = pos; +} + function isParenKeyword (curPos) { return source.charCodeAt(curPos) === 101/*e*/ && source.startsWith('whil', curPos - 4) || source.charCodeAt(curPos) === 114/*r*/ && source.startsWith('fo', curPos - 2) || diff --git a/lib/lexer.wasm b/lib/lexer.wasm index fd7050a..400be01 100755 Binary files a/lib/lexer.wasm and b/lib/lexer.wasm differ diff --git a/lib/lexer.wat b/lib/lexer.wat index a6cd568..ce36490 100644 --- a/lib/lexer.wat +++ b/lib/lexer.wat @@ -2,13 +2,14 @@ (type (;0;) (func (param i32 i32))) (type (;1;) (func (result i32))) (type (;2;) (func (param i32) (result i32))) - (type (;3;) (func (param i32 i32 i32 i32 i32 i32) (result i32))) - (type (;4;) (func (param i32 i32) (result i32))) + (type (;3;) (func (param i32 i32) (result i32))) + (type (;4;) (func (param i32 i32 i32 i32 i32 i32) (result i32))) (type (;5;) (func (param i32 i32 i32) (result i32))) (type (;6;) (func (param i64))) (type (;7;) (func (param i32))) - (type (;8;) (func (param i32 i32 i32 i32 i32 i32 i32) (result i32))) - (type (;9;) (func (param i32 i32 i32 i32))) + (type (;8;) (func)) + (type (;9;) (func (param i32 i32 i32 i32 i32 i32 i32) (result i32))) + (type (;10;) (func (param i32 i32 i32 i32))) (func (;0;) (type 5) (param i32 i32 i32) (result i32) (local i32 i32 i32) block ;; label = @1 @@ -51,7 +52,7 @@ local.get 1 i32.const 4048 i32.const 4056 - call 32) + call 35) (func (;2;) (type 6) (param i64) local.get 0 i32.const 4096 @@ -82,30 +83,36 @@ local.get 1 i32.const 4060 i32.const 4068 - call 32) + call 35) (func (;4;) (type 0) (param i32 i32) local.get 0 local.get 1 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 i32 i32 i32 i32 i64 i64) + call 35) + (func (;5;) (type 4) (param i32 i32 i32 i32 i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i64 i64) + i32.const 4112 + local.get 1 + i32.store i32.const 4024 local.get 0 i32.store - i32.const 4112 + i32.const 4152 local.get 5 i32.const 1 i32.and i32.store8 - i32.const 4113 + i32.const 4153 local.get 5 i32.const 1 i32.shr_u i32.const 1 i32.and i32.store8 + i32.const 4116 + i32.const 0 + i32.store local.get 2 if ;; label = @1 i32.const 4028 @@ -124,33 +131,33 @@ local.get 4 i32.store end - i32.const 4118 + i32.const 4158 i32.const 65535 i32.store16 - i32.const 8224 - i32.const 4128 + i32.const 8272 + i32.const 4176 i32.store - i32.const 16448 + i32.const 16496 local.get 0 i32.const 2 i32.sub local.tee 5 i32.store - i32.const 16452 + i32.const 16500 local.get 5 local.get 1 i32.const 1 i32.shl i32.add - local.tee 3 + local.tee 4 i32.store - i32.const 4116 + i32.const 4156 i32.const 0 i32.store16 - i32.const 4114 + i32.const 4154 i32.const 0 i32.store16 - i32.const 4124 + i32.const 4164 i32.const 0 i32.store8 i32.const 4104 @@ -159,16 +166,16 @@ i32.const 4108 i32.const 0 i32.store - i32.const 16432 + i32.const 16480 i32.const 0 i32.store - i32.const 16436 + i32.const 16484 i32.const 0 i32.store - i32.const 16440 + i32.const 16488 i32.const 0 i32.store8 - i32.const 16444 + i32.const 16492 i32.const 0 i32.store block ;; label = @1 @@ -184,7 +191,7 @@ i32.ne br_if 0 (;@2;) i32.const 0 - local.set 4 + local.set 3 local.get 1 i32.const 2 i32.eq @@ -198,7 +205,7 @@ local.tee 5 i32.const 2 i32.sub - local.get 3 + local.get 4 i32.ge_u br_if 1 (;@2;) local.get 0 @@ -214,11 +221,11 @@ unreachable end i32.const 1024 - local.set 1 + local.set 2 loop ;; label = @2 - i32.const 16448 + i32.const 16496 local.get 5 - local.tee 0 + local.tee 6 i32.const 2 i32.add local.tee 5 @@ -238,7 +245,7 @@ block ;; label = @15 block ;; label = @16 block ;; label = @17 - i32.const 4124 + i32.const 4164 block (result i32) ;; label = @18 block ;; label = @19 block ;; label = @20 @@ -247,27 +254,27 @@ block ;; label = @23 block ;; label = @24 block ;; label = @25 - block ;; label = @26 + local.get 4 + local.get 6 + i32.gt_u + if ;; label = @26 + local.get 5 + i32.load16_u + local.tee 3 + i32.const 9 + i32.sub + local.tee 0 + i32.const 23 + i32.le_u + i32.const 0 + i32.const 1 local.get 0 - local.get 3 - i32.lt_u - if ;; label = @27 - local.get 5 - i32.load16_u - local.tee 6 - i32.const 9 - i32.sub - local.tee 2 - i32.const 23 - i32.le_u - i32.const 0 - i32.const 1 - local.get 2 - i32.shl - i32.const 8388639 - i32.and - select - br_if 25 (;@2;) + i32.shl + i32.const 8388639 + i32.and + select + br_if 24 (;@2;) + block ;; label = @27 block ;; label = @28 block ;; label = @29 block ;; label = @30 @@ -285,398 +292,308 @@ 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 + i32.const 4156 + i32.load16_u + local.tee 1 + i32.eqz + if ;; label = @45 + block ;; 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;) + local.get 3 + i32.const 91 + i32.sub + br_table 10 (;@38;) 44 (;@4;) 11 (;@37;) 44 (;@4;) 2 (;@46;) 25 (;@23;) 44 (;@4;) 44 (;@4;) 6 (;@42;) 44 (;@4;) 5 (;@43;) 44 (;@4;) 44 (;@4;) 44 (;@4;) 1 (;@47;) 44 (;@4;) 44 (;@4;) 44 (;@4;) 4 (;@44;) 0 (;@48;) 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 0 + local.set 0 + block ;; label = @48 + local.get 3 + i32.const 34 + i32.sub + br_table 20 (;@28;) 44 (;@4;) 44 (;@4;) 44 (;@4;) 44 (;@4;) 20 (;@28;) 9 (;@39;) 14 (;@34;) 44 (;@4;) 44 (;@4;) 13 (;@35;) 44 (;@4;) 44 (;@4;) 21 (;@27;) 0 (;@48;) + end + block ;; label = @48 + local.get 3 + i32.const 123 + i32.sub + br_table 17 (;@31;) 44 (;@4;) 18 (;@30;) 0 (;@48;) + end + local.get 3 + i32.const 60 + i32.eq + br_if 44 (;@3;) + local.get 3 + i32.const 79 + i32.eq + br_if 6 (;@41;) + local.get 3 i32.const 114 i32.ne br_if 43 (;@4;) - local.get 0 - i32.load16_u offset=12 - i32.const 116 - i32.ne + i32.const 0 + call 6 + i32.eqz 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 + local.get 5 + i32.eq + br_if 42 (;@5;) + local.get 6 + i32.load16_u + call 7 + i32.eqz + br_if 43 (;@4;) + br 42 (;@5;) + end + local.get 6 + i32.load16_u offset=4 + i32.const 109 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=6 + i32.const 112 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=8 + i32.const 111 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=10 + i32.const 114 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=12 + i32.const 116 + i32.ne + br_if 42 (;@4;) + local.get 5 + i32.const 4024 + i32.load + local.tee 0 + i32.ne + if ;; label = @47 + local.get 6 + i32.load16_u + call 7 + i32.eqz + br_if 43 (;@4;) + end + i32.const 16496 + local.get 6 + i32.const 14 + i32.add + local.tee 2 + i32.store + block ;; label = @47 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;) + call 8 + local.tee 1 + i32.const 39 + i32.sub + br_table 2 (;@49;) 3 (;@48;) 1 (;@50;) 2 (;@49;) 1 (;@50;) 1 (;@50;) 1 (;@50;) 4 (;@47;) 0 (;@51;) end - i32.const 16448 - i32.load - local.get 2 + local.get 1 + i32.const 34 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 + local.get 1 + i32.const 123 + i32.eq + i32.or + br_if 1 (;@49;) end - i32.const 16448 + i32.const 16496 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;) + local.get 2 + i32.eq + br_if 45 (;@4;) end - i32.const 4113 - i32.load8_u + i32.const 4108 + i32.load + i32.eqz if ;; label = @49 - i32.const 16464 - i32.const 0 - i32.store8 + i32.const 4108 + i32.const 6 + i32.store end - i32.const 8240 - local.get 5 + i32.const 16496 + i32.load + local.set 1 + i32.const 16496 + local.get 4 + i32.const 2 + i32.add i32.store - i32.const 4116 + i32.const 4104 + local.get 1 + local.get 0 + i32.sub i32.const 1 - i32.store16 + i32.shr_s + i32.store br 44 (;@4;) end - i32.const 4108 - i32.load - i32.eqz + i32.const 4153 + i32.load8_u if ;; label = @48 - i32.const 4108 - i32.const 5 - i32.store + i32.const 16512 + i32.const 0 + i32.store8 end - i32.const 16448 - i32.load - local.set 0 - i32.const 16448 - local.get 3 - i32.const 2 - i32.add + i32.const 8288 + local.get 5 i32.store - i32.const 4104 - local.get 0 - local.get 1 - i32.sub + i32.const 4156 i32.const 1 - i32.shr_s - i32.store + i32.store16 br 43 (;@4;) end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @47 + i32.const 4108 + i32.const 5 + i32.store + end + i32.const 16496 + i32.load + local.set 1 + i32.const 16496 + local.get 4 + i32.const 2 + i32.add + i32.store + i32.const 4104 + local.get 1 local.get 0 - i32.load16_u offset=4 - local.tee 2 - i32.const 95 + i32.sub + i32.const 1 + i32.shr_s + i32.store + br 42 (;@4;) + end + local.get 6 + i32.load16_u offset=4 + local.tee 0 + i32.const 95 + i32.ne + if ;; label = @46 + local.get 0 + i32.const 105 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 + br_if 42 (;@4;) + local.get 6 i32.load16_u offset=6 - i32.const 101 + i32.const 110 i32.ne br_if 42 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=8 - i32.const 120 + i32.const 116 i32.ne br_if 42 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=10 - i32.const 112 + i32.const 101 i32.ne br_if 42 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=12 - i32.const 111 + i32.const 114 i32.ne br_if 42 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=14 - i32.const 114 + i32.const 111 i32.ne br_if 42 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=16 - i32.const 116 + i32.const 112 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=18 + i32.const 82 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=22 + i32.const 113 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=24 + i32.const 117 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=26 + i32.const 105 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=28 + i32.const 114 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=30 + i32.const 101 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=32 + i32.const 87 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=34 + i32.const 105 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=36 + i32.const 108 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=38 + i32.const 100 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=40 + i32.const 99 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=42 + i32.const 97 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=44 + i32.const 114 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=46 + i32.const 100 i32.ne br_if 42 (;@4;) block ;; label = @47 @@ -685,498 +602,633 @@ local.get 5 i32.eq br_if 0 (;@47;) - local.get 0 + local.get 6 i32.load16_u - local.tee 2 + local.tee 0 call 7 br_if 0 (;@47;) - local.get 2 + local.get 0 i32.const 46 i32.ne br_if 43 (;@4;) end - i32.const 16448 - local.get 0 - i32.const 18 + i32.const 16496 + local.get 6 + i32.const 48 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 + local.get 6 + i32.load16_u offset=48 i32.const 40 i32.ne br_if 42 (;@4;) - i32.const 4113 + i32.const 16496 + local.get 6 + i32.const 50 + i32.add + i32.store + i32.const 4153 i32.load8_u if ;; label = @47 - i32.const 16464 + i32.const 16512 i32.const 0 i32.store8 end - i32.const 4116 - i32.const 1 - i32.store16 - i32.const 8240 - local.get 1 + i32.const 8288 + local.get 2 i32.store - local.get 0 - local.get 4 + i32.const 4156 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 + i32.store16 + i32.const 0 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 + i32.eqz + br_if 42 (;@4;) + i32.const 4024 + i32.load + local.get 5 + i32.eq + br_if 41 (;@5;) 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;) + i32.load16_u + call 7 + br_if 41 (;@5;) + br 42 (;@4;) end - block ;; label = @46 - local.get 6 - i32.const 123 - i32.sub - br_table 13 (;@33;) 42 (;@4;) 16 (;@30;) 0 (;@46;) + local.get 6 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 41 (;@4;) + local.get 6 + i32.load16_u offset=8 + i32.const 120 + i32.ne + br_if 41 (;@4;) + local.get 6 + i32.load16_u offset=10 + i32.const 112 + i32.ne + br_if 41 (;@4;) + local.get 6 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 41 (;@4;) + local.get 6 + i32.load16_u offset=14 + i32.const 114 + i32.ne + br_if 41 (;@4;) + local.get 6 + i32.load16_u offset=16 + i32.const 116 + i32.ne + br_if 41 (;@4;) + block ;; label = @46 + i32.const 4024 + i32.load + local.get 5 + i32.eq + br_if 0 (;@46;) + local.get 6 + i32.load16_u + local.tee 0 + call 7 + br_if 0 (;@46;) + local.get 0 + i32.const 46 + i32.ne + br_if 42 (;@4;) end + i32.const 16496 local.get 6 - i32.const 60 - i32.eq - br_if 42 (;@3;) + i32.const 18 + i32.add + i32.store + i32.const 9 + local.set 1 local.get 6 - i32.const 79 + i32.load16_u offset=18 + local.tee 5 + i32.const 83 i32.eq - br_if 3 (;@42;) + if ;; label = @46 + local.get 6 + i32.load16_u offset=20 + i32.const 116 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=22 + i32.const 97 + i32.ne + br_if 42 (;@4;) + local.get 6 + i32.load16_u offset=24 + i32.const 114 + i32.ne + br_if 42 (;@4;) + i32.const 16496 + local.get 6 + i32.const 26 + i32.add + i32.store + local.get 6 + i32.load16_u offset=26 + local.set 5 + i32.const 13 + local.set 1 + end + local.get 5 + i32.const 65535 + i32.and + i32.const 40 + i32.ne + br_if 41 (;@4;) + i32.const 4153 + i32.load8_u + if ;; label = @46 + i32.const 16512 + i32.const 0 + i32.store8 + end + i32.const 4156 + i32.const 1 + i32.store16 + i32.const 8288 + local.get 2 + i32.store local.get 6 - i32.const 109 + local.get 1 + i32.const 1 + i32.shl + i32.add + local.tee 0 + i32.load16_u offset=2 + i32.const 114 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 + i32.const 16496 local.get 0 - i32.load16_u - call 7 - i32.eqz - br_if 41 (;@4;) + i32.const 2 + i32.add + i32.store + i32.const 2 + call 6 + drop + br 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 + block ;; label = @45 + local.get 3 + i32.const 34 + i32.sub + br_table 17 (;@28;) 41 (;@4;) 41 (;@4;) 41 (;@4;) 41 (;@4;) 17 (;@28;) 5 (;@40;) 12 (;@33;) 41 (;@4;) 41 (;@4;) 10 (;@35;) 41 (;@4;) 41 (;@4;) 18 (;@27;) 0 (;@45;) + end + block ;; label = @45 + local.get 3 + i32.const 91 + i32.sub + br_table 20 (;@25;) 41 (;@4;) 9 (;@36;) 41 (;@4;) 41 (;@4;) 22 (;@23;) 41 (;@4;) 41 (;@4;) 3 (;@42;) 41 (;@4;) 2 (;@43;) 0 (;@45;) + end + block ;; label = @45 + local.get 3 + i32.const 123 + i32.sub + br_table 13 (;@32;) 41 (;@4;) 16 (;@29;) 0 (;@45;) + end + local.get 3 + i32.const 60 + i32.eq + br_if 41 (;@3;) + local.get 3 + i32.const 79 + i32.eq + br_if 3 (;@41;) + local.get 3 + i32.const 109 i32.ne - br_if 19 (;@25;) - i32.const 1 - call 9 - br 40 (;@4;) + br_if 40 (;@4;) end - local.get 0 + local.get 6 i32.load16_u offset=4 - i32.const 120 + i32.const 111 i32.ne br_if 39 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=6 - i32.const 112 + i32.const 100 i32.ne br_if 39 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=8 - i32.const 111 + i32.const 117 i32.ne br_if 39 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=10 - i32.const 114 + i32.const 108 i32.ne br_if 39 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=12 - i32.const 116 + i32.const 101 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 + local.get 6 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 16496 + local.get 6 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.const 46 + i32.ne + br_if 19 (;@24;) + i32.const 16496 + i32.const 16496 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 + call 8 + i32.const 101 + i32.ne + br_if 19 (;@24;) + i32.const 16496 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 120 + i32.ne + br_if 19 (;@24;) + local.get 0 + i32.load16_u offset=4 + i32.const 112 + i32.ne + br_if 19 (;@24;) + local.get 0 + i32.load16_u offset=6 + i32.const 111 + i32.ne + br_if 19 (;@24;) + local.get 0 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 19 (;@24;) + local.get 0 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 19 (;@24;) + local.get 0 + i32.load16_u offset=12 + i32.const 115 + i32.ne + br_if 19 (;@24;) i32.const 1 - i32.shr_s - i32.store + call 9 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 + local.get 6 i32.load16_u offset=4 - i32.const 108 + i32.const 120 i32.ne br_if 38 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=6 - i32.const 97 + i32.const 112 i32.ne br_if 38 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=8 - i32.const 115 + i32.const 111 i32.ne br_if 38 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=10 - i32.const 115 + i32.const 114 i32.ne br_if 38 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=12 - local.tee 0 - i32.const 9 - i32.sub + i32.const 116 + i32.ne + br_if 38 (;@4;) + local.get 5 + i32.const 4024 + i32.load + local.tee 2 + i32.ne + if ;; label = @43 + local.get 6 + i32.load16_u + call 7 + i32.eqz + br_if 39 (;@4;) + end + local.get 6 + i32.load16_u offset=14 + i32.const 115 + i32.eq + if ;; label = @43 + i32.const 0 + call 9 + br 39 (;@4;) + end + local.get 1 + br_if 38 (;@4;) + i32.const 16496 + local.get 6 + i32.const 14 + i32.add local.tee 1 - i32.const 23 - i32.gt_u + i32.store + call 8 + local.set 0 + block ;; label = @43 + local.get 1 + i32.const 16496 + i32.load + local.tee 3 + i32.ne + br_if 0 (;@43;) + 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 (;@43;) + 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 (;@43;) + local.get 0 + i32.const 123 + i32.sub + i32.const 65535 + i32.and + i32.const 3 + i32.gt_u + br_if 39 (;@4;) + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @43 + i32.const 4108 + i32.const 7 + i32.store + end + i32.const 16496 + local.get 4 + i32.const 2 + i32.add + i32.store + i32.const 4104 + local.get 3 + local.get 2 + i32.sub i32.const 1 - local.get 1 - i32.shl - i32.const 8388639 - i32.and + i32.shr_s + i32.store + br 38 (;@4;) + end + local.get 5 + i32.const 4024 + i32.load + i32.ne + if ;; label = @42 + local.get 6 + i32.load16_u + call 7 i32.eqz - i32.or - br_if 35 (;@7;) - br 36 (;@6;) + br_if 38 (;@4;) end - local.get 0 + local.get 6 i32.load16_u offset=4 - i32.const 98 + i32.const 108 i32.ne br_if 37 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=6 - i32.const 106 + i32.const 97 i32.ne br_if 37 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=8 - i32.const 101 + i32.const 115 i32.ne br_if 37 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=10 - i32.const 99 + i32.const 115 i32.ne br_if 37 (;@4;) - local.get 0 + local.get 6 i32.load16_u offset=12 - i32.const 116 - i32.ne + 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 34 (;@7;) + br 35 (;@6;) + end + local.get 6 + i32.load16_u offset=4 + i32.const 98 + i32.ne + br_if 36 (;@4;) + local.get 6 + i32.load16_u offset=6 + i32.const 106 + i32.ne + br_if 36 (;@4;) + local.get 6 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 36 (;@4;) + local.get 6 + i32.load16_u offset=10 + i32.const 99 + i32.ne + br_if 36 (;@4;) + local.get 6 + i32.load16_u offset=12 + i32.const 116 + i32.ne + br_if 36 (;@4;) + local.get 5 + i32.const 4024 + i32.load + local.tee 2 + i32.ne + if ;; label = @41 + local.get 6 + i32.load16_u + call 7 + i32.eqz br_if 37 (;@4;) - local.get 5 - i32.const 4024 + end + i32.const 16496 + local.get 6 + i32.const 14 + i32.add + i32.store + local.get 6 + i32.const 12 + i32.add + local.set 3 + call 8 + i32.const 46 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 0 + i32.const 4153 + i32.load8_u + i32.eqz + local.get 0 + i32.const 100 + i32.ne + i32.or + i32.eqz + if ;; label = @41 + i32.const 16496 i32.load + local.tee 1 + local.get 4 + i32.gt_u + br_if 33 (;@8;) + local.get 4 + local.get 1 + i32.sub + i32.const 1 + i32.shr_s + i32.const 1 + i32.add 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 + i32.lt_u br_if 33 (;@8;) - i32.const 16448 - i32.const 16448 - i32.load - i32.const 2 - i32.add - i32.store - call 8 + i32.const -1 + local.set 5 + local.get 1 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 + loop ;; label = @42 + block ;; label = @43 + local.get 5 + i32.const 13 + i32.eq + if ;; label = @44 + i32.const 14 + local.set 6 + br 1 (;@43;) + 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 (;@42;) + end + end + block ;; label = @42 + local.get 8 + i32.const 16 + i32.ge_u + if ;; label = @43 + i32.const -1 + local.set 5 + local.get 1 + local.set 0 + loop ;; label = @44 local.get 5 - i32.const 13 + i32.const 15 i32.eq if ;; label = @45 i32.const 14 - local.set 6 - br 1 (;@44;) + i32.const 16 + local.get 6 + i32.const 13 + i32.gt_u + select + local.set 5 + i32.const 1 + local.set 0 + br 3 (;@42;) end local.get 5 - i32.const 1027 + i32.const 1042 i32.add - local.set 7 + local.set 8 local.get 0 i32.load16_u local.get 0 @@ -1186,1489 +1238,1534 @@ local.get 5 i32.const 1 i32.add - local.tee 6 + local.tee 9 local.set 5 - local.get 7 + local.get 8 i32.load8_s i32.eq - br_if 1 (;@43;) + br_if 0 (;@44;) end - end - block ;; label = @43 - local.get 4 + i32.const 14 i32.const 16 - i32.ge_u - if ;; label = @44 - i32.const -1 + local.get 6 + i32.const 13 + i32.gt_u + local.tee 6 + select + local.set 5 + local.get 6 + local.get 9 + i32.const 15 + i32.gt_u + local.tee 0 + i32.or + br_if 1 (;@42;) + br 35 (;@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 34 (;@8;) + end + i32.const 16496 + local.get 1 + local.get 5 + i32.const 1 + i32.shl + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 33 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + call 10 + i32.eqz + br_if 33 (;@8;) + call 8 + i32.const 44 + i32.ne + br_if 33 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.set 1 + local.get 0 + if ;; label = @42 + local.get 1 + i32.const 40 + i32.eq + if (result i32) ;; label = @43 + call 11 + else + local.get 1 + end + i32.const 123 + i32.ne + br_if 34 (;@8;) + i32.const 16492 + i32.const 16496 + i32.load + i32.store + br 34 (;@8;) + end + local.get 1 + i32.const 39 + i32.ne + local.get 1 + i32.const 34 + i32.ne + i32.and + br_if 33 (;@8;) + i32.const 16496 + i32.load + local.tee 8 + local.set 5 + block ;; label = @42 + loop ;; label = @43 + block ;; label = @44 + local.get 5 + local.tee 0 + i32.const 2 + i32.add local.set 5 + local.get 0 + local.get 4 + i32.ge_u + br_if 0 (;@44;) 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 5 + i32.load16_u + local.tee 6 + i32.eq + if ;; label = @45 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;) + local.set 4 + br 3 (;@42;) end - i32.const 14 - i32.const 16 local.get 6 + i32.const 92 + i32.ne + if ;; label = @45 + local.get 6 + i32.const 10 + i32.sub + br_table 1 (;@44;) 2 (;@43;) 2 (;@43;) 1 (;@44;) 2 (;@43;) + end + local.get 0 + i32.const 4 + i32.add + local.set 5 + local.get 0 + i32.load16_u offset=4 i32.const 13 - i32.gt_u - local.tee 4 + i32.ne + br_if 1 (;@43;) + 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 - local.get 4 - local.get 9 - i32.const 15 - i32.gt_u - local.tee 0 - i32.or - br_if 1 (;@43;) - br 36 (;@8;) + br 1 (;@43;) 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 + i32.const 4108 + i32.load + i32.eqz + if ;; label = @43 + i32.const 4108 + i32.const 9 + i32.store + end + i32.const 4104 local.get 5 + local.get 2 + i32.sub 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.shr_s 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 + end + i32.const 16496 + local.get 4 + i32.const 4 + i32.add + local.tee 0 + i32.store + call 8 + i32.const 44 + i32.ne + br_if 33 (;@8;) + local.get 8 + local.get 0 + i32.const 4028 + i32.load + call_indirect (type 0) + br 33 (;@8;) + end + local.get 0 + i32.const 100 + i32.eq + if ;; label = @41 + i32.const 16496 + 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 102 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=6 + i32.const 105 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=8 + i32.const 110 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=10 + i32.const 101 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=12 + i32.const 80 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=14 + i32.const 114 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=16 + i32.const 111 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=18 + i32.const 112 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=22 + i32.const 114 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=24 + i32.const 116 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.load16_u offset=26 + i32.const 121 + i32.ne + br_if 33 (;@8;) + local.get 0 + i32.const 26 + i32.add + local.set 3 + i32.const 16496 + local.get 0 + i32.const 28 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 33 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + call 10 + i32.eqz + br_if 33 (;@8;) + call 8 + i32.const 44 + i32.ne + br_if 33 (;@8;) + i32.const 16496 + i32.const 16496 + 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 33 (;@8;) + i32.const 16496 + i32.load + local.tee 6 + local.set 5 + block ;; label = @42 + loop ;; label = @43 + block ;; label = @44 + local.get 5 + local.tee 0 + i32.const 2 + i32.add + local.set 5 + local.get 0 + local.get 4 + i32.ge_u + br_if 0 (;@44;) + local.get 5 + i32.load16_u + local.tee 8 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.eq + br_if 2 (;@42;) + local.get 8 + i32.const 92 + i32.ne + if ;; label = @45 + local.get 8 i32.const 10 - i32.eq - select - local.set 5 - br 1 (;@44;) + i32.sub + br_table 1 (;@44;) 2 (;@43;) 2 (;@43;) 1 (;@44;) 2 (;@43;) 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 (;@43;) + 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 (;@43;) end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @43 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.const 9 i32.store end - i32.const 16448 - local.get 3 - i32.const 4 - i32.add - local.tee 0 + i32.const 4104 + local.get 5 + local.get 2 + i32.sub + i32.const 1 + i32.shr_s 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;) + local.get 4 + local.set 0 end + i32.const 16496 local.get 0 - i32.const 100 - i32.eq - if ;; label = @42 - i32.const 16448 - i32.load + i32.const 4 + i32.add + local.tee 5 + i32.store + call 8 + i32.const 44 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 101 + i32.eq + if ;; label = @42 + i32.const 16496 + i32.load local.tee 0 i32.load16_u offset=2 - i32.const 101 + i32.const 110 i32.ne - br_if 34 (;@8;) + br_if 33 (;@9;) local.get 0 i32.load16_u offset=4 - i32.const 102 + i32.const 117 i32.ne - br_if 34 (;@8;) + br_if 33 (;@9;) local.get 0 i32.load16_u offset=6 - i32.const 105 + i32.const 109 i32.ne - br_if 34 (;@8;) + br_if 33 (;@9;) local.get 0 i32.load16_u offset=8 - i32.const 110 + i32.const 101 i32.ne - br_if 34 (;@8;) + br_if 33 (;@9;) local.get 0 i32.load16_u offset=10 - i32.const 101 + i32.const 114 i32.ne - br_if 34 (;@8;) + br_if 33 (;@9;) local.get 0 i32.load16_u offset=12 - i32.const 80 + i32.const 97 i32.ne - br_if 34 (;@8;) + br_if 33 (;@9;) local.get 0 i32.load16_u offset=14 - i32.const 114 + i32.const 98 i32.ne - br_if 34 (;@8;) + br_if 33 (;@9;) local.get 0 i32.load16_u offset=16 - i32.const 111 + i32.const 108 i32.ne - br_if 34 (;@8;) + br_if 33 (;@9;) 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 + br_if 33 (;@9;) + i32.const 16496 local.get 0 - i32.const 28 + i32.const 20 i32.add i32.store call 8 - i32.const 40 + i32.const 58 i32.ne - br_if 34 (;@8;) - i32.const 16448 - i32.const 16448 + br_if 33 (;@9;) + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store - call 8 - call 10 - i32.eqz - br_if 34 (;@8;) + i32.const 16496 + block (result i32) ;; label = @43 + block ;; label = @44 + call 8 + local.tee 1 + i32.const 116 + i32.ne + br_if 0 (;@44;) + i32.const 16496 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 114 + i32.ne + br_if 0 (;@44;) + local.get 0 + i32.load16_u offset=4 + i32.const 117 + i32.ne + br_if 0 (;@44;) + local.get 0 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 0 (;@44;) + local.get 0 + i32.const 8 + i32.add + br 1 (;@43;) + end + local.get 1 + i32.const 33 + i32.ne + br_if 34 (;@9;) + i32.const 4152 + i32.load8_u + i32.eqz + br_if 34 (;@9;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 48 + i32.ne + br_if 34 (;@9;) + i32.const 16496 + i32.load + i32.const 2 + i32.add + end + i32.store call 8 i32.const 44 i32.ne - br_if 34 (;@8;) - i32.const 16448 - i32.const 16448 + br_if 33 (;@9;) + i32.const 16496 + i32.const 16496 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 + local.set 0 + end + local.get 0 + i32.const 103 + i32.ne + if ;; label = @42 + local.get 0 + i32.const 118 i32.ne - i32.and - br_if 34 (;@8;) - i32.const 16448 + br_if 33 (;@9;) + i32.const 16496 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.tee 0 + i32.load16_u offset=2 + i32.const 97 + i32.ne + br_if 33 (;@9;) local.get 0 - i32.const 4 + i32.load16_u offset=4 + i32.const 108 + 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 101 + i32.ne + br_if 33 (;@9;) + i32.const 16496 + local.get 0 + i32.const 10 i32.add - local.tee 5 i32.store call 8 - i32.const 44 + i32.const 58 i32.ne br_if 33 (;@9;) - i32.const 16448 - i32.const 16448 + local.get 6 + local.get 5 + i32.const 4028 + i32.load + call_indirect (type 0) + br 34 (;@8;) + end + i32.const 16496 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 32 (;@9;) + local.get 0 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + local.get 0 + i32.const 6 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 58 + i32.eq + if (result i32) ;; label = @42 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 - i32.const 123 + i32.const 102 i32.ne br_if 33 (;@9;) - i32.const 16448 - i32.const 16448 + i32.const 16496 i32.load - i32.const 2 - i32.add - i32.store - call 8 local.tee 0 - i32.const 101 - i32.eq + i32.load16_u offset=2 + i32.const 117 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=4 + i32.const 110 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=6 + i32.const 99 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=10 + i32.const 105 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 33 (;@9;) + local.get 0 + i32.load16_u offset=14 + i32.const 110 + i32.ne + br_if 33 (;@9;) + i32.const 16496 + 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 = @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 + i32.const 16496 + i32.load + i32.eq br_if 34 (;@9;) - local.get 0 - i32.load16_u offset=18 - i32.const 101 - i32.ne + local.get 1 + call 12 + i32.eqz br_if 34 (;@9;) - i32.const 16448 - local.get 0 - i32.const 20 - i32.add - i32.store + end + call 8 + else + local.get 0 + end + i32.const 40 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 32 (;@9;) + local.get 0 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 32 (;@9;) + local.get 0 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 32 (;@9;) + local.get 0 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 32 (;@9;) + local.get 0 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + local.get 0 + i32.const 12 + i32.add + i32.store + call 8 + call 12 + i32.eqz + br_if 32 (;@9;) + block ;; label = @42 + block ;; label = @43 call 8 - i32.const 58 + local.tee 0 + i32.const 91 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 + if ;; label = @44 + local.get 0 + i32.const 46 i32.ne - br_if 35 (;@9;) - i32.const 4112 - i32.load8_u - i32.eqz - br_if 35 (;@9;) - i32.const 16448 - i32.const 16448 + br_if 2 (;@42;) + i32.const 16496 + i32.const 16496 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 + call 12 + br_if 1 (;@43;) + br 35 (;@9;) end - i32.store - call 8 - i32.const 44 - i32.ne - br_if 34 (;@9;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 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 + local.tee 8 + i32.const 39 i32.ne - br_if 34 (;@9;) - i32.const 16448 - local.get 0 - i32.const 10 - i32.add - i32.store - call 8 - i32.const 58 + local.get 8 + i32.const 34 i32.ne + i32.and br_if 34 (;@9;) - local.get 4 - local.get 5 - i32.const 4028 + i32.const 16496 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 + local.set 0 + block ;; label = @44 + loop ;; label = @45 + block ;; label = @46 + local.get 0 + local.tee 1 + i32.const 2 + i32.add + local.set 0 + local.get 1 + local.get 4 + i32.ge_u + br_if 0 (;@46;) + local.get 8 + local.get 0 + i32.load16_u + local.tee 7 + i32.eq + if ;; label = @47 + local.get 1 + local.set 4 + br 3 (;@44;) + end + local.get 7 + i32.const 92 + i32.ne + if ;; label = @47 + local.get 7 + i32.const 10 + i32.sub + br_table 1 (;@46;) 2 (;@45;) 2 (;@45;) 1 (;@46;) 2 (;@45;) + 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 (;@45;) + 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 (;@45;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @45 + i32.const 4108 + i32.const 9 + i32.store + end + i32.const 4104 + local.get 0 + local.get 2 + i32.sub + i32.const 1 + i32.shr_s + i32.store + end + i32.const 16496 + local.get 4 + i32.const 4 i32.add i32.store call 8 - i32.const 102 + i32.const 93 i32.ne br_if 34 (;@9;) - i32.const 16448 + i32.const 16496 + i32.const 16496 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.const 2 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 + local.set 0 + end + local.get 0 + i32.const 59 + i32.eq + if (result i32) ;; label = @42 + i32.const 16496 + i32.const 16496 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 + else + local.get 0 + end + i32.const 125 + i32.ne + br_if 32 (;@9;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 44 + i32.eq + if (result i32) ;; label = @42 + i32.const 16496 + i32.const 16496 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 + else 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.const 125 i32.ne - br_if 33 (;@8;) - i32.const 16448 - i32.const 16448 + br_if 32 (;@9;) + i32.const 16496 + i32.const 16496 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 + br_if 32 (;@9;) + local.get 6 + local.get 5 + i32.const 4028 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 + call_indirect (type 0) + br 37 (;@4;) + end + local.get 1 + local.get 0 + i32.const 107 + i32.ne + i32.or + br_if 32 (;@8;) + i32.const 16496 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=4 + i32.const 121 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=6 + i32.const 115 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.const 6 + i32.add + local.set 3 + i32.const 16496 + local.get 0 + i32.const 8 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 16496 + i32.load + local.set 6 + call 12 + i32.eqz + br_if 32 (;@8;) + i32.const 16496 + i32.load + call 8 + i32.const 41 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + local.tee 3 + i32.const 2 + i32.add + i32.store + call 8 + i32.const 46 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 102 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 111 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=4 + i32.const 114 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=6 + i32.const 69 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=8 + i32.const 97 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=10 + i32.const 99 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=12 + i32.const 104 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + local.get 0 + i32.const 14 + i32.add + i32.store + call 8 + i32.const 16496 + i32.load + local.tee 2 + i32.const 2 + i32.sub + local.set 3 + i32.const 40 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + local.get 2 + i32.const 2 + i32.add + i32.store + call 8 + i32.const 102 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.load + local.tee 0 + i32.load16_u offset=2 + i32.const 117 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=4 + i32.const 110 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=6 + i32.const 99 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=10 + i32.const 105 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 32 (;@8;) + local.get 0 + i32.load16_u offset=14 + i32.const 110 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + local.get 0 + i32.const 16 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 16496 + i32.load + local.set 0 + call 12 + i32.eqz + br_if 32 (;@8;) + i32.const 16496 + i32.load + local.set 2 + call 8 + i32.const 41 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 105 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.load + local.tee 4 + i32.load16_u offset=2 + i32.const 102 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + local.get 4 + i32.const 4 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 5 + local.get 0 + local.get 2 + local.get 0 + i32.sub + local.tee 2 + call 0 + br_if 32 (;@8;) + local.get 6 + i32.sub + local.tee 8 + i32.const 1 + i32.shr_s + local.set 7 + i32.const 16496 + local.get 5 + local.get 2 + i32.const 1 + i32.shr_s + local.tee 9 + i32.const 1 + i32.shl + local.tee 4 + i32.add + i32.store + block ;; label = @41 block ;; label = @42 block ;; label = @43 - block ;; label = @44 + call 8 + local.tee 1 + i32.const 33 + i32.ne + if ;; label = @44 + local.get 1 + i32.const 61 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + 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 16496 + 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 16496 + i32.load local.tee 1 - i32.const 33 + i32.load16_u offset=2 + i32.const 100 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 + 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 16496 + local.get 1 + i32.const 16 + i32.add + i32.store + call 8 + local.get 5 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 124 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 124 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + local.get 1 + i32.const 4 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 1 + local.get 0 + local.get 2 + call 0 + br_if 36 (;@8;) + i32.const 16496 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 61 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + 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 16496 + 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 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 95 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 95 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 115 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 77 + 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 100 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=16 + i32.const 117 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=18 + i32.const 108 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + local.get 1 + i32.const 22 + i32.add + i32.store + call 8 + local.get 5 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + i32.const 59 + i32.eq + if ;; label = @45 + i32.const 16496 + i32.const 16496 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.const 2 i32.add i32.store + end + call 8 + local.tee 5 + i32.const 105 + i32.ne + br_if 3 (;@41;) + i32.const 105 + local.set 5 + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 102 + i32.ne + br_if 3 (;@41;) + i32.const 16496 + local.get 1 + i32.const 4 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + local.tee 5 + i32.store + local.get 0 + local.get 9 + call 13 + if ;; label = @45 call 8 - drop - i32.const 16448 - i32.load - local.tee 1 - local.get 0 - local.get 3 - call 0 + i32.const 41 + i32.ne br_if 37 (;@8;) - i32.const 16448 - local.get 1 - local.get 4 + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 i32.add i32.store call 8 - i32.const 61 + i32.const 114 i32.ne br_if 37 (;@8;) - i32.const 16448 + i32.const 16496 i32.load local.tee 1 i32.load16_u offset=2 - i32.const 61 + i32.const 101 i32.ne br_if 37 (;@8;) local.get 1 i32.load16_u offset=4 - i32.const 61 + i32.const 116 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.load16_u offset=6 + i32.const 117 i32.ne br_if 37 (;@8;) local.get 1 @@ -2681,7 +2778,7 @@ i32.const 110 i32.ne br_if 37 (;@8;) - i32.const 16448 + i32.const 16496 local.get 1 i32.const 12 i32.add @@ -2690,8 +2787,8 @@ i32.const 59 i32.eq if ;; label = @46 - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -2701,17 +2798,17 @@ local.tee 5 i32.const 105 i32.ne - br_if 3 (;@42;) + br_if 4 (;@41;) i32.const 105 local.set 5 - i32.const 16448 + i32.const 16496 i32.load local.tee 1 i32.load16_u offset=2 i32.const 102 i32.ne - br_if 3 (;@42;) - i32.const 16448 + br_if 4 (;@41;) + i32.const 16496 local.get 1 i32.const 4 i32.add @@ -2720,1200 +2817,579 @@ 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.const 16496 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;) + local.set 5 end - i32.const 16448 + i32.const 16496 + local.get 5 + i32.store + local.get 5 + local.get 0 + local.get 2 + call 0 + br_if 36 (;@8;) + i32.const 16496 + local.get 4 + local.get 5 + i32.add + i32.store + call 8 + i32.const 105 + i32.ne + br_if 36 (;@8;) + i32.const 16496 i32.load local.tee 1 i32.load16_u offset=2 - i32.const 61 + i32.const 110 i32.ne br_if 36 (;@8;) local.get 1 i32.load16_u offset=4 - i32.const 61 + i32.const 32 i32.ne br_if 36 (;@8;) - i32.const 16448 + i32.const 16496 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 + call 10 + i32.eqz + br_if 36 (;@8;) + call 8 + i32.const 38 i32.ne - i32.and br_if 36 (;@8;) - i32.const 16448 + i32.const 16496 i32.load local.tee 1 i32.load16_u offset=2 - i32.const 100 + i32.const 38 i32.ne br_if 36 (;@8;) + i32.const 16496 local.get 1 - i32.load16_u offset=4 - i32.const 101 + i32.const 4 + i32.add + i32.store + call 8 + call 10 + i32.eqz + br_if 36 (;@8;) + call 8 + i32.const 91 i32.ne br_if 36 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 1 + local.get 0 + local.get 2 + call 0 + br_if 36 (;@8;) + i32.const 16496 local.get 1 - i32.load16_u offset=6 - i32.const 102 + local.get 4 + i32.add + i32.store + call 8 + i32.const 93 i32.ne br_if 36 (;@8;) - local.get 1 - i32.load16_u offset=8 - i32.const 97 + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 61 i32.ne br_if 36 (;@8;) - local.get 1 - i32.load16_u offset=10 - i32.const 117 + i32.const 16496 + 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=12 - i32.const 108 + i32.load16_u offset=4 + i32.const 61 i32.ne br_if 36 (;@8;) + i32.const 16496 local.get 1 - i32.load16_u offset=14 - i32.const 116 + i32.const 6 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 1 + local.get 6 + local.get 8 + call 0 + br_if 36 (;@8;) + i32.const 16496 + 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 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 1 + local.get 0 + local.get 2 + call 0 + br_if 36 (;@8;) + i32.const 16496 local.get 1 - i32.const 16 + local.get 4 i32.add i32.store call 8 - local.get 5 + i32.const 93 i32.ne br_if 36 (;@8;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 + i32.const 41 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.load local.tee 1 - i32.const 38 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 36 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + i32.const 59 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;) + br_if 1 (;@43;) + br 2 (;@42;) end - i32.const 16448 - i32.const 16448 + i32.const 16496 i32.load - i32.const 2 + local.tee 1 + i32.load16_u offset=2 + i32.const 61 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 61 + i32.ne + br_if 35 (;@8;) + i32.const 16496 + local.get 1 + i32.const 6 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 + call 8 + local.tee 5 + i32.const 39 + i32.ne local.get 5 - i32.const 79 + i32.const 34 i32.ne + i32.and br_if 35 (;@8;) - i32.const 16448 + i32.const 16496 i32.load local.tee 1 i32.load16_u offset=2 - i32.const 98 + i32.const 100 i32.ne br_if 35 (;@8;) local.get 1 i32.load16_u offset=4 - i32.const 106 + i32.const 101 i32.ne br_if 35 (;@8;) local.get 1 i32.load16_u offset=6 - i32.const 101 + i32.const 102 i32.ne br_if 35 (;@8;) local.get 1 i32.load16_u offset=8 - i32.const 99 + i32.const 97 i32.ne br_if 35 (;@8;) local.get 1 i32.load16_u offset=10 + i32.const 117 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 108 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=14 i32.const 116 i32.ne br_if 35 (;@8;) - i32.const 16448 + i32.const 16496 local.get 1 - i32.const 12 + i32.const 16 i32.add i32.store call 8 - i32.const 46 + local.get 5 i32.ne br_if 35 (;@8;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 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.const 38 + i32.eq + if (result i32) ;; label = @44 + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 38 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + local.get 1 + i32.const 4 + i32.add + i32.store + call 8 + i32.const 33 + i32.ne + br_if 36 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + block ;; label = @45 + block ;; label = @46 + call 8 + local.tee 5 + i32.const 79 + i32.ne + br_if 0 (;@46;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 98 + i32.ne + br_if 0 (;@46;) + local.get 1 + i32.load16_u offset=4 + i32.const 106 + i32.ne + br_if 0 (;@46;) + local.get 1 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 0 (;@46;) + local.get 1 + i32.load16_u offset=8 + i32.const 99 + i32.ne + br_if 0 (;@46;) + local.get 1 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 0 (;@46;) + local.get 1 + i32.load16_u offset=12 + i32.const 46 + i32.ne + br_if 0 (;@46;) + local.get 0 + local.get 9 + call 13 + br_if 1 (;@45;) + br 38 (;@8;) + end + local.get 5 + call 12 + i32.eqz + br_if 0 (;@45;) + call 8 + i32.const 46 + i32.ne + br_if 37 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 104 + i32.ne + br_if 37 (;@8;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 97 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 115 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 79 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 119 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 80 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 114 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=16 + i32.const 111 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=18 + i32.const 112 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=22 + i32.const 114 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=24 + i32.const 116 + i32.ne + br_if 37 (;@8;) + local.get 1 + i32.load16_u offset=26 + i32.const 121 + i32.ne + br_if 37 (;@8;) + i32.const 16496 + local.get 1 + i32.const 28 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 37 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 1 + local.get 0 + local.get 2 + call 0 + br_if 37 (;@8;) + i32.const 16496 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 37 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + end + call 8 + else + local.get 1 + end + 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 - call 10 - i32.eqz - br_if 35 (;@8;) + end + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + end + call 8 + local.set 5 + end + block ;; label = @41 + block ;; label = @42 + local.get 5 + call 10 + if ;; label = @43 call 8 - i32.const 44 + i32.const 91 i32.ne br_if 35 (;@8;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 drop - i32.const 16448 + i32.const 16496 i32.load local.tee 1 local.get 0 - local.get 3 + local.get 2 call 0 br_if 35 (;@8;) - i32.const 16448 + i32.const 16496 local.get 1 local.get 4 i32.add i32.store call 8 - i32.const 44 + i32.const 93 i32.ne br_if 35 (;@8;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 - i32.const 123 + i32.const 61 i32.ne br_if 35 (;@8;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 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.const 16496 i32.load local.tee 1 local.get 6 local.get 8 call 0 br_if 35 (;@8;) - i32.const 16448 + i32.const 16496 local.get 1 local.get 7 i32.const 1 @@ -3924,22 +3400,22 @@ i32.const 91 i32.ne br_if 35 (;@8;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 drop - i32.const 16448 + i32.const 16496 i32.load local.tee 1 local.get 0 - local.get 3 + local.get 2 call 0 br_if 35 (;@8;) - i32.const 16448 + i32.const 16496 local.get 1 local.get 4 i32.add @@ -3948,598 +3424,1129 @@ i32.const 93 i32.ne br_if 35 (;@8;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 - local.tee 0 + local.tee 5 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;) + br 2 (;@41;) end - i32.const 16448 - i32.const 16448 + local.get 5 + i32.const 79 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 98 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 106 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 99 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + i32.const 46 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 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.const 100 + i32.ne + br_if 34 (;@8;) + i32.const 16496 i32.load - local.tee 0 + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 102 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 105 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 110 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 80 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 114 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=16 + i32.const 111 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=18 + i32.const 112 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=20 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=22 + i32.const 114 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=24 + i32.const 116 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=26 + i32.const 121 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + local.get 1 + i32.const 28 + i32.add + i32.store + call 8 + i32.const 40 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + call 10 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 + br_if 34 (;@8;) + call 8 + i32.const 44 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 1 local.get 0 - i32.const 16 + local.get 2 + call 0 + br_if 34 (;@8;) + i32.const 16496 + local.get 1 + local.get 4 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.store + call 8 + i32.const 44 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 101 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 110 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 117 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 109 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 114 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 97 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 98 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=16 + i32.const 108 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=18 + i32.const 101 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + local.get 1 + i32.const 20 + i32.add + i32.store + call 8 + i32.const 58 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + i32.const 16496 + block (result i32) ;; label = @43 + block ;; label = @44 + call 8 + local.tee 5 + i32.const 116 + i32.ne + br_if 0 (;@44;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 114 + i32.ne + br_if 0 (;@44;) + local.get 1 + i32.load16_u offset=4 + i32.const 117 + i32.ne + br_if 0 (;@44;) + local.get 1 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 0 (;@44;) + local.get 1 + i32.const 8 + i32.add + br 1 (;@43;) + end + local.get 5 + i32.const 33 + i32.ne + br_if 35 (;@8;) + i32.const 4152 + i32.load8_u + i32.eqz + br_if 35 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 48 + i32.ne + br_if 35 (;@8;) + i32.const 16496 + i32.load + i32.const 2 + i32.add + end + i32.store + call 8 + i32.const 44 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 103 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + local.get 1 + i32.const 6 + i32.add + i32.store + call 8 + local.tee 1 + i32.const 58 + i32.eq + if (result i32) ;; label = @43 + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 102 + i32.ne + br_if 35 (;@8;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 117 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 110 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 99 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 105 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=12 + i32.const 111 + i32.ne + br_if 35 (;@8;) + local.get 1 + i32.load16_u offset=14 + i32.const 110 + i32.ne + br_if 35 (;@8;) + i32.const 16496 + 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 = @44 + local.get 1 + i32.const 16496 + i32.load + i32.eq + br_if 36 (;@8;) + local.get 5 + call 12 + i32.eqz + br_if 36 (;@8;) + end + call 8 + else + local.get 1 + end + i32.const 40 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 123 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 114 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.load + local.tee 1 + i32.load16_u offset=2 + i32.const 101 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=4 + i32.const 116 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=6 + i32.const 117 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=8 + i32.const 114 + i32.ne + br_if 34 (;@8;) + local.get 1 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + local.get 1 + i32.const 12 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 1 + local.get 6 + local.get 8 + call 0 + br_if 34 (;@8;) + i32.const 16496 + local.get 1 + local.get 7 + i32.const 1 + i32.shl + i32.add + i32.store + call 8 + i32.const 91 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + drop + i32.const 16496 + i32.load + local.tee 1 + local.get 0 + local.get 2 + call 0 + br_if 34 (;@8;) + i32.const 16496 + local.get 1 + local.get 4 + i32.add + i32.store + call 8 + i32.const 93 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 0 + i32.const 59 + i32.eq + if (result i32) ;; label = @43 + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + else + local.get 0 + end + i32.const 125 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + 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 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + else + local.get 0 + end + i32.const 125 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 34 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + local.tee 5 + i32.const 59 + i32.ne + br_if 1 (;@41;) + end + i32.const 16496 + i32.const 16496 + 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 32 (;@8;) + i32.const 16496 + i32.const 16496 + i32.load + i32.const 2 + i32.add + i32.store + call 8 + i32.const 41 + i32.ne + br_if 32 (;@8;) + i32.const 16480 + local.set 5 + loop ;; label = @41 + local.get 5 + i32.load + local.tee 0 + i32.eqz + br_if 37 (;@4;) + block ;; label = @42 + 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 (;@42;) + local.get 6 + local.get 1 + local.get 8 + call 0 + br_if 0 (;@42;) + local.get 0 + i32.load + local.get 0 + i32.load offset=4 + i32.const 4032 + i32.load + call_indirect (type 0) + br 34 (;@8;) + end + local.get 0 + i32.const 16 + i32.add + local.set 5 + br 0 (;@41;) + end + unreachable + end + local.get 1 + local.tee 0 + i32.const 2048 + i32.ne + br_if 0 (;@39;) + i32.const 4108 + i32.load + local.tee 1 + br_if 29 (;@10;) + br 27 (;@12;) + end + i32.const 4153 + i32.load8_u + if ;; label = @39 + local.get 0 + i32.const 16512 + i32.add + i32.const 0 + i32.store8 + end + i32.const 4156 + local.get 1 + i32.const 1 + i32.add + i32.store16 + local.get 0 + i32.const 2 + i32.shl + i32.const 8288 + i32.add + local.get 2 + i32.store + br 35 (;@3;) + end + i32.const 4153 + i32.load8_u + i32.eqz + br_if 34 (;@3;) + br 24 (;@13;) + end + i32.const 4153 + i32.load8_u + i32.eqz + br_if 33 (;@3;) + i32.const 4108 + i32.load + local.tee 1 + br_if 26 (;@10;) + br 21 (;@15;) + end + i32.const 4153 i32.load8_u - i32.const 2 - i32.and i32.eqz br_if 32 (;@3;) - br 19 (;@16;) + i32.const 4156 + local.get 1 + i32.const 1 + i32.sub + i32.store16 + br 32 (;@3;) end - i32.const 4108 - i32.load - local.tee 2 + local.get 1 + i32.eqz + br_if 31 (;@3;) + i32.const 4153 + i32.load8_u i32.eqz - br_if 19 (;@15;) - br 24 (;@10;) + br_if 31 (;@3;) + local.get 1 + i32.const 16511 + i32.add + i32.load8_u + i32.const 2 + i32.and + i32.eqz + br_if 31 (;@3;) + br 18 (;@16;) end - i32.const 4116 - local.get 4 - i32.const 1 - i32.sub - i32.store16 - br 30 (;@3;) + i32.const 4108 + i32.load + local.tee 1 + i32.eqz + br_if 18 (;@15;) + br 23 (;@10;) end - local.get 4 - local.set 2 - local.get 4 - i32.const 2048 - i32.ne - br_if 0 (;@32;) - i32.const 4108 - i32.load - local.tee 2 - i32.eqz - br_if 20 (;@12;) - br 22 (;@10;) - end - i32.const 4113 - i32.load8_u - local.tee 0 - if ;; label = @32 - local.get 2 - i32.const 16464 - i32.add - i32.const 0 - i32.store8 + i32.const 4156 + local.get 1 + i32.const 1 + i32.sub + i32.store16 + br 29 (;@3;) 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.eqz - br_if 28 (;@3;) - local.get 5 - i32.const 16444 - i32.load - i32.ne - br_if 28 (;@3;) local.get 1 - i32.const 16463 + local.tee 0 + i32.const 2048 + i32.ne + br_if 0 (;@31;) + i32.const 4108 + i32.load + local.tee 1 + i32.eqz + br_if 19 (;@12;) + br 21 (;@10;) + end + i32.const 4153 + i32.load8_u + local.tee 3 + if ;; label = @31 + local.get 0 + i32.const 16512 i32.add - local.get 2 - i32.const 2 - i32.or - i32.store8 - i32.const 16444 i32.const 0 - i32.store - br 15 (;@16;) + i32.store8 end - i32.const 4108 - i32.load - local.tee 2 - br_if 20 (;@10;) - i32.const 2 - local.set 2 - br 19 (;@11;) - end - 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 - local.get 4 - i32.eq - if ;; label = @30 - i32.const 4114 - i32.const 4114 - i32.load16_u + i32.const 4156 + local.get 1 i32.const 1 - i32.sub - local.tee 0 + i32.add + local.tee 1 i32.store16 - i32.const 4118 local.get 0 + i32.const 2 + i32.shl + i32.const 8288 + i32.add + local.get 2 + i32.store + local.get 1 i32.const 65535 i32.and - i32.const 1 - i32.shl - i32.const 4128 + local.tee 0 + i32.const 16511 i32.add - i32.load16_u - i32.store16 - br 13 (;@17;) + i32.const 16488 + i32.load8_u + local.tee 1 + i32.store8 + i32.const 16488 + i32.const 0 + i32.store8 + local.get 3 + i32.eqz + br_if 27 (;@3;) + local.get 5 + i32.const 16492 + i32.load + i32.ne + br_if 27 (;@3;) + local.get 0 + i32.const 16511 + i32.add + local.get 1 + i32.const 2 + i32.or + i32.store8 + i32.const 16492 + i32.const 0 + i32.store + br 14 (;@16;) end - local.get 0 - i32.const 65535 - i32.eq - local.get 1 - i32.const 65535 - i32.and - local.get 0 - i32.ge_u - i32.or - br_if 26 (;@3;) i32.const 4108 i32.load - local.tee 2 + local.tee 1 br_if 19 (;@10;) - i32.const 3 - local.set 2 + i32.const 2 + local.set 1 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;) + i32.const 4156 + local.get 1 + i32.const 1 + i32.sub + local.tee 2 + i32.store16 + i32.const 4158 + i32.load16_u + local.tee 0 + local.get 1 + i32.eq + if ;; label = @29 + i32.const 4154 + i32.const 4154 + i32.load16_u + i32.const 1 + i32.sub + local.tee 0 + i32.store16 + i32.const 4158 + local.get 0 + i32.const 65535 + i32.and + i32.const 1 + i32.shl + i32.const 4176 + i32.add + i32.load16_u + i32.store16 + br 12 (;@17;) + end + local.get 0 + i32.const 65535 + i32.eq + local.get 2 + i32.const 65535 + i32.and + local.get 0 + i32.ge_u + i32.or + br_if 25 (;@3;) + i32.const 4108 + i32.load + local.tee 1 + br_if 18 (;@10;) + i32.const 3 + local.set 1 + br 17 (;@11;) + end + block ;; label = @28 + loop ;; label = @29 + block ;; label = @30 + local.get 5 + local.tee 0 + i32.const 2 + i32.add + local.set 5 + local.get 0 + local.get 4 + i32.ge_u + br_if 0 (;@30;) + local.get 5 + i32.load16_u + local.tee 1 + local.get 3 + i32.eq + br_if 2 (;@28;) + local.get 1 + i32.const 92 + i32.ne + if ;; label = @31 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;) + i32.sub + br_table 1 (;@30;) 2 (;@29;) 2 (;@29;) 1 (;@30;) 2 (;@29;) 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 (;@29;) + 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 (;@29;) end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @29 i32.const 4108 - i32.load - i32.eqz - if ;; label = @30 - i32.const 4108 - i32.const 9 - i32.store - end - i32.const 4104 - local.get 5 - i32.const 4024 - i32.load - i32.sub - i32.const 1 - i32.shr_s + i32.const 9 i32.store - local.get 3 - i32.const 2 - i32.add - local.set 5 end - i32.const 16448 + i32.const 4104 local.get 5 + i32.const 4024 + i32.load + i32.sub + i32.const 1 + i32.shr_s i32.store - br 25 (;@3;) + local.get 4 + i32.const 2 + i32.add + local.set 5 end - local.get 0 - i32.const 4 - i32.add - local.set 2 + i32.const 16496 + local.get 5 + i32.store + br 24 (;@3;) + end + local.get 6 + i32.const 4 + i32.add + local.set 3 + block ;; label = @27 block ;; label = @28 block ;; label = @29 block ;; label = @30 - block ;; label = @31 + local.get 6 + i32.load16_u offset=4 + local.tee 0 + i32.const 47 + i32.ne + if ;; label = @31 local.get 0 - i32.load16_u offset=4 + i32.const 42 + i32.eq + br_if 1 (;@30;) + local.get 2 + i32.load16_u + local.tee 12 + 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 12 (;@19;) + local.get 12 + i32.const 41 i32.ne - if ;; label = @32 - local.get 0 - 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 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 - 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 2 - local.tee 5 - i32.const 2 - i32.sub - local.get 3 - i32.ge_u - br_if 10 (;@22;) - local.get 5 - i32.const 2 - i32.add - local.set 2 - local.get 5 - i32.load16_u - i32.const 10 - i32.sub - br_table 10 (;@22;) 0 (;@32;) 0 (;@32;) 10 (;@22;) 0 (;@32;) - end - unreachable + local.get 12 + i32.const 40 + i32.sub + i32.const 65535 + i32.and + i32.const 7 + i32.lt_u + i32.and + br_if 3 (;@28;) + local.get 12 + i32.const 58 + i32.sub + i32.const 6 + i32.lt_u + br_if 12 (;@19;) + local.get 12 + i32.const 91 + i32.sub + br_table 12 (;@19;) 2 (;@29;) 2 (;@29;) 12 (;@19;) 2 (;@29;) end loop ;; label = @31 - local.get 2 - local.tee 0 local.get 3 + local.tee 5 + i32.const 2 + i32.sub + local.get 4 i32.ge_u - br_if 8 (;@23;) - local.get 0 + br_if 10 (;@21;) + local.get 5 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 + local.set 3 + local.get 5 i32.load16_u - i32.const 47 - i32.ne - br_if 0 (;@31;) + i32.const 10 + i32.sub + br_table 10 (;@21;) 0 (;@31;) 0 (;@31;) 10 (;@21;) 0 (;@31;) end - br 8 (;@22;) + unreachable 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;) + loop ;; label = @30 + local.get 3 + local.tee 0 + local.get 4 + i32.ge_u + br_if 8 (;@22;) + local.get 0 + 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 (;@30;) + local.get 0 + i32.const 4 + i32.add + local.tee 5 + i32.load16_u + i32.const 47 + i32.ne + br_if 0 (;@30;) + end + br 8 (;@21;) end + local.get 12 + i32.const 125 + i32.eq + local.tee 0 + local.get 12 + i32.const 123 + i32.sub + i32.const 65535 + i32.and + i32.const 3 + i32.gt_u + i32.or + br_if 1 (;@27;) + end + block ;; label = @28 block ;; label = @29 block ;; label = @30 - block ;; label = @31 - local.get 7 - i32.const 43 - i32.sub - br_table 1 (;@30;) 12 (;@19;) 2 (;@29;) 0 (;@31;) 12 (;@19;) - end - i32.const 0 - local.set 2 - local.get 1 - i32.const 2 - i32.sub - i32.load16_u - i32.const 48 + local.get 12 + i32.const 43 i32.sub - i32.const 65535 - i32.and - i32.const 10 - i32.lt_u - br_if 10 (;@20;) - br 11 (;@19;) + br_table 1 (;@29;) 11 (;@19;) 2 (;@28;) 0 (;@30;) 11 (;@19;) end i32.const 0 - local.set 2 - local.get 1 + local.set 4 + local.get 2 i32.const 2 i32.sub i32.load16_u - i32.const 43 - i32.eq + i32.const 48 + i32.sub + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u br_if 9 (;@20;) br 10 (;@19;) end i32.const 0 - local.set 2 - local.get 1 + local.set 4 + local.get 2 i32.const 2 i32.sub i32.load16_u - i32.const 45 + i32.const 43 i32.eq br_if 8 (;@20;) br 9 (;@19;) end i32.const 0 - local.set 2 + local.set 4 + local.get 2 + i32.const 2 + i32.sub + i32.load16_u + i32.const 45 + i32.eq + br_if 7 (;@20;) + br 8 (;@19;) + end + i32.const 0 + local.set 4 + block ;; label = @27 block ;; label = @28 block ;; label = @29 block ;; label = @30 @@ -4549,1289 +4556,4027 @@ block ;; label = @34 block ;; label = @35 block ;; label = @36 + local.get 12 + i32.const 100 + i32.sub + local.tee 7 + br_table 1 (;@35;) 2 (;@34;) 3 (;@33;) 16 (;@20;) 16 (;@20;) 16 (;@20;) 16 (;@20;) 16 (;@20;) 16 (;@20;) 16 (;@20;) 4 (;@32;) 5 (;@31;) 16 (;@20;) 16 (;@20;) 6 (;@30;) 16 (;@20;) 7 (;@29;) 16 (;@20;) 16 (;@20;) 8 (;@28;) 0 (;@36;) + end + local.get 0 + i32.eqz + if ;; label = @36 + local.get 12 + i32.const 47 + i32.eq + br_if 9 (;@27;) + local.get 12 + i32.const 41 + i32.ne + br_if 16 (;@20;) + block ;; label = @37 + local.get 1 + i32.const 2 + i32.shl + i32.const 8288 + i32.add + i32.load + local.tee 0 + i32.const 8 + i32.sub + local.tee 2 + i32.const 4024 + i32.load + local.tee 1 + i32.lt_u + br_if 0 (;@37;) + local.get 2 + i32.load16_u + i32.const 119 + i32.ne + br_if 0 (;@37;) + local.get 0 + i32.const 6 + i32.sub + i32.load16_u + i32.const 104 + i32.ne + br_if 0 (;@37;) + local.get 0 + i32.const 4 + i32.sub + i32.load16_u + i32.const 105 + i32.ne + br_if 0 (;@37;) + local.get 0 + i32.const 2 + i32.sub + i32.load16_u + i32.const 108 + i32.ne + br_if 0 (;@37;) + local.get 0 + i32.load16_u + i32.const 101 + i32.ne + br_if 0 (;@37;) + local.get 1 + local.get 2 + i32.eq + br_if 18 (;@19;) + local.get 0 + i32.const 10 + i32.sub + i32.load16_u + call 7 + br_if 18 (;@19;) + end + block ;; label = @37 + local.get 0 + i32.const 4 + i32.sub + local.tee 2 + local.get 1 + i32.lt_u + br_if 0 (;@37;) + local.get 2 + i32.load16_u + i32.const 102 + i32.ne + br_if 0 (;@37;) + local.get 0 + i32.const 2 + i32.sub + i32.load16_u + i32.const 111 + i32.ne + br_if 0 (;@37;) + local.get 0 + i32.load16_u + i32.const 114 + i32.ne + br_if 0 (;@37;) + local.get 1 + local.get 2 + i32.eq + br_if 18 (;@19;) + local.get 0 + i32.const 6 + i32.sub + i32.load16_u + call 7 + br_if 18 (;@19;) + end + local.get 0 + i32.const 2 + i32.sub + local.tee 3 + local.get 1 + i32.lt_u + br_if 16 (;@20;) + local.get 3 + i32.load16_u + i32.const 105 + i32.ne + br_if 16 (;@20;) + local.get 0 + i32.load16_u + i32.const 102 + i32.ne + br_if 16 (;@20;) + local.get 1 + local.get 3 + i32.eq + br_if 17 (;@19;) + local.get 2 + i32.load16_u + call 7 + i32.eqz + br_if 16 (;@20;) + br 17 (;@19;) + end + local.get 1 + i32.const 2 + i32.shl + i32.const 8288 + i32.add + i32.load + local.tee 5 + call 14 + br_if 16 (;@19;) + local.get 1 + i32.const 16512 + i32.add + i32.load8_u + i32.const 1 + i32.and + br_if 16 (;@19;) + i32.const 4153 + i32.load8_u + i32.eqz + br_if 15 (;@20;) + i32.const 4024 + i32.load + local.tee 8 + i32.const 6 + i32.add + local.set 9 + loop ;; label = @36 + local.get 5 + i32.eqz + local.get 5 + i32.const 1024 + i32.eq + i32.or + br_if 17 (;@19;) + local.get 1 + i32.const 65535 + i32.and + i32.eqz + local.get 5 + i32.load16_u + local.tee 0 + i32.const 123 + i32.ne + i32.or + i32.eqz + if ;; label = @37 + local.get 1 + i32.const 1 + i32.sub + local.tee 1 + i32.const 65535 + i32.and + i32.const 2 + i32.shl + i32.const 8288 + i32.add + i32.load + local.set 5 + br 1 (;@36;) + end + block ;; label = @37 + local.get 0 + i32.const 58 + i32.ne + if ;; label = @38 + local.get 0 + i32.const 125 + i32.eq + br_if 19 (;@19;) + local.get 5 + call 14 + i32.eqz + br_if 1 (;@37;) + br 19 (;@19;) + end + local.get 5 + local.get 8 + i32.eq + br_if 0 (;@37;) + local.get 5 + i32.const 2 + i32.sub + call 15 + local.tee 6 + i32.eqz + br_if 0 (;@37;) + block ;; label = @38 + local.get 6 + i32.load16_u + local.tee 3 + i32.const 34 + i32.eq + local.get 3 + i32.const 39 + i32.eq + i32.or + i32.eqz + if ;; label = @39 + i32.const 0 + local.set 0 + loop ;; label = @40 + local.get 6 + local.get 8 + i32.lt_u + br_if 2 (;@38;) + local.get 6 + i32.load16_u + local.tee 5 + local.set 3 + local.get 5 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + local.tee 10 + if (result i32) ;; label = @41 + local.get 3 + else + local.get 5 + 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.or + i32.const 65536 + i32.add + end + call 16 + i32.eqz + br_if 2 (;@38;) + local.get 6 + local.get 8 + i32.sub + local.get 10 + i32.eqz + if ;; label = @41 + local.get 5 + 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.or + i32.const 65536 + i32.add + local.set 5 + end + local.get 6 + i32.const -2 + i32.const -4 + local.get 5 + i32.const 65536 + i32.lt_u + local.tee 10 + select + i32.add + local.set 6 + local.get 5 + call 17 + local.set 0 + i32.const 1 + i32.shr_s + i32.const 1 + i32.const 2 + local.get 10 + select + i32.ge_u + br_if 0 (;@40;) + end + local.get 0 + i32.eqz + br_if 2 (;@37;) + br 20 (;@19;) + end + loop ;; label = @39 + local.get 6 + local.get 8 + i32.gt_u + if ;; label = @40 + local.get 6 + i32.const 2 + i32.sub + local.tee 6 + i32.load16_u + local.get 3 + i32.ne + br_if 1 (;@39;) + local.get 6 + local.set 5 + loop ;; label = @41 + local.get 8 + local.get 5 + local.tee 0 + i32.lt_u + if ;; label = @42 + local.get 0 + i32.const 2 + i32.sub + local.tee 5 + i32.load16_u + i32.const 92 + i32.eq + br_if 1 (;@41;) + end + end + local.get 6 + local.get 0 + i32.sub + i32.const 2 + i32.and + br_if 1 (;@39;) + end + end + local.get 6 + local.get 8 + i32.eq + br_if 1 (;@37;) + local.get 6 + i32.const 2 + i32.sub + local.set 6 + i32.const 0 + local.set 0 + end + i32.const 0 + local.set 5 + block ;; label = @38 + local.get 6 + call 15 + local.tee 3 + i32.eqz + br_if 0 (;@38;) + block ;; label = @39 + block ;; label = @40 + local.get 3 + i32.load16_u + i32.const 43 + i32.sub + br_table 0 (;@40;) 1 (;@39;) 0 (;@40;) 1 (;@39;) + end + local.get 3 + local.get 8 + i32.eq + br_if 1 (;@38;) + local.get 3 + i32.const 2 + i32.sub + call 15 + local.tee 3 + i32.eqz + br_if 1 (;@38;) + end + block ;; label = @39 + local.get 3 + local.get 8 + i32.sub + i32.const 5 + i32.lt_s + br_if 0 (;@39;) + local.get 3 + i32.const 6 + i32.sub + i32.load16_u + i32.const 99 + i32.ne + br_if 0 (;@39;) + local.get 3 + i32.const 4 + i32.sub + i32.load16_u + i32.const 97 + i32.ne + br_if 0 (;@39;) + local.get 3 + i32.const 2 + i32.sub + i32.load16_u + i32.const 115 + i32.ne + br_if 0 (;@39;) + local.get 3 + i32.load16_u + i32.const 101 + i32.ne + br_if 0 (;@39;) + local.get 3 + local.get 9 + i32.eq + br_if 20 (;@19;) + local.get 3 + i32.const 8 + i32.sub + i32.load16_u + local.tee 5 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if (result i32) ;; label = @40 + local.get 5 + i32.const 1023 + i32.and + local.get 3 + 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 5 + end + call 16 + local.get 5 + i32.const 46 + i32.eq + br_if 0 (;@39;) + local.get 3 + local.set 5 + i32.eqz + br_if 20 (;@19;) + br 1 (;@38;) + end + local.get 3 + local.set 5 + end + local.get 0 + i32.const 1 + i32.and + br_if 1 (;@36;) + end + end + local.get 7 + br_table 0 (;@35;) 1 (;@34;) 2 (;@33;) 15 (;@20;) 15 (;@20;) 15 (;@20;) 15 (;@20;) 15 (;@20;) 15 (;@20;) 15 (;@20;) 3 (;@32;) 4 (;@31;) 15 (;@20;) 15 (;@20;) 5 (;@30;) 15 (;@20;) 6 (;@29;) 15 (;@20;) 15 (;@20;) 7 (;@28;) 15 (;@20;) + end + block ;; label = @35 + block ;; label = @36 + local.get 2 + i32.const 2 + i32.sub + i32.load16_u + i32.const 105 + i32.sub + br_table 0 (;@36;) 16 (;@20;) 16 (;@20;) 1 (;@35;) 16 (;@20;) + end + local.get 2 + i32.const 6 + i32.sub + local.tee 0 + i32.const 4024 + i32.load + local.tee 1 + i32.lt_u + br_if 15 (;@20;) + local.get 0 + i32.load16_u + i32.const 118 + i32.ne + br_if 15 (;@20;) + local.get 2 + i32.const 4 + i32.sub + i32.load16_u + i32.const 111 + i32.ne + br_if 15 (;@20;) + local.get 0 + local.get 1 + i32.eq + br_if 16 (;@19;) + local.get 2 + i32.const 8 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 15 (;@20;) + end + local.get 2 + i32.const 8 + i32.sub + local.tee 0 + i32.const 4024 + i32.load + local.tee 1 + i32.lt_u + br_if 14 (;@20;) + local.get 0 + i32.load16_u + i32.const 121 + i32.ne + br_if 14 (;@20;) + local.get 2 + i32.const 6 + i32.sub + i32.load16_u + i32.const 105 + i32.ne + br_if 14 (;@20;) + local.get 2 + i32.const 4 + i32.sub + i32.load16_u + i32.const 101 + i32.ne + br_if 14 (;@20;) + local.get 0 + local.get 1 + i32.ne + if ;; label = @35 + local.get 2 + i32.const 10 + i32.sub + i32.load16_u + call 7 + i32.eqz + br_if 15 (;@20;) + end + local.get 2 + local.set 8 + block ;; label = @35 + i32.const 4116 + i32.load + local.tee 3 + if ;; label = @36 + i32.const 4124 + i32.load + local.set 2 + br 1 (;@35;) + end + block (result i32) ;; label = @36 + i32.const 4112 + i32.load + i32.const 1 + i32.shl + local.tee 2 + i32.const 0 + i32.ne + local.set 4 block ;; label = @37 block ;; label = @38 - local.get 7 - i32.const 100 + block ;; label = @39 + i32.const 4024 + i32.load + local.tee 3 + i32.const 3 + i32.and + i32.eqz + local.get 2 + i32.eqz + i32.or + i32.eqz + if ;; label = @40 + local.get 3 + i32.load8_u + i32.const 42 + i32.eq + if ;; label = @41 + local.get 3 + local.set 0 + local.get 2 + local.set 1 + br 3 (;@38;) + end + local.get 2 + i32.const 1 + i32.sub + local.tee 1 + i32.const 0 + i32.ne + local.set 4 + local.get 3 + i32.const 1 + i32.add + local.tee 0 + i32.const 3 + i32.and + i32.eqz + local.get 1 + i32.eqz + i32.or + br_if 1 (;@39;) + local.get 0 + i32.load8_u + i32.const 42 + i32.eq + br_if 2 (;@38;) + local.get 2 + i32.const 2 + i32.sub + local.tee 1 + i32.const 0 + i32.ne + local.set 4 + local.get 3 + i32.const 2 + i32.add + local.tee 0 + i32.const 3 + i32.and + i32.eqz + local.get 1 + i32.eqz + i32.or + br_if 1 (;@39;) + local.get 0 + i32.load8_u + i32.const 42 + i32.eq + br_if 2 (;@38;) + local.get 2 + i32.const 3 + i32.sub + local.tee 1 + i32.const 0 + i32.ne + local.set 4 + local.get 3 + i32.const 3 + i32.add + local.tee 0 + i32.const 3 + i32.and + i32.eqz + local.get 1 + i32.eqz + i32.or + br_if 1 (;@39;) + local.get 0 + i32.load8_u + i32.const 42 + i32.eq + br_if 2 (;@38;) + local.get 3 + i32.const 4 + i32.add + local.set 0 + local.get 2 + i32.const 4 + i32.sub + local.tee 1 + i32.const 0 + i32.ne + local.set 4 + br 1 (;@39;) + end + local.get 2 + local.set 1 + local.get 3 + local.set 0 + end + local.get 4 + i32.eqz + br_if 1 (;@37;) + local.get 0 + i32.load8_u + i32.const 42 + i32.eq + local.get 1 + i32.const 4 + i32.lt_u + i32.or + i32.eqz + if ;; label = @39 + loop ;; label = @40 + local.get 0 + i32.load + i32.const 707406378 + i32.xor + local.tee 2 + i32.const -1 + i32.xor + local.get 2 + i32.const 16843009 + i32.sub + i32.and + i32.const -2139062144 + i32.and + br_if 2 (;@38;) + local.get 0 + i32.const 4 + i32.add + local.set 0 + local.get 1 + i32.const 4 + i32.sub + local.tee 1 + i32.const 3 + i32.gt_u + br_if 0 (;@40;) + end + end + local.get 1 + i32.eqz + br_if 1 (;@37;) + end + loop ;; label = @38 + local.get 0 + local.get 0 + i32.load8_u + i32.const 42 + i32.eq + br_if 2 (;@36;) + drop + local.get 0 + i32.const 1 + i32.add + local.set 0 + local.get 1 + i32.const 1 + i32.sub + local.tee 1 + br_if 0 (;@38;) + end + end + i32.const 0 + end + local.set 2 + i32.const 4120 + local.get 3 + i32.const 2 + i32.sub + local.tee 3 + i32.store + i32.const 4116 + local.get 3 + i32.store + i32.const 4124 + local.get 2 + i32.store + i32.const 4130 + i32.const 1 + i32.store8 + i32.const 4128 + i32.const 0 + i32.store16 + i32.const 4132 + i32.const 0 + i32.store8 + i32.const 4136 + i32.const 0 + i32.store8 + i32.const 4140 + i32.const 0 + i32.store + i32.const 4144 + i32.const 0 + i32.store + i32.const 4148 + i32.const 0 + i32.store + end + i32.const 0 + local.set 1 + block ;; label = @35 + local.get 2 + i32.eqz + local.get 2 + local.get 8 + i32.const 1 + i32.add + i32.gt_u + i32.or + br_if 0 (;@35;) + i32.const 16496 + i32.load + local.set 18 + i32.const 16496 + local.get 3 + i32.store + block ;; label = @36 + i32.const 4140 + i32.load + br_if 0 (;@36;) + i32.const 0 + i32.const 0 + call 20 + drop + i32.const 4024 + i32.load + local.tee 0 + i32.load16_u + i32.const 35 + i32.ne + br_if 0 (;@36;) + local.get 0 + i32.load16_u offset=2 + i32.const 33 + i32.ne + br_if 0 (;@36;) + local.get 0 + i32.const 4 + i32.add + local.set 1 + i32.const 16500 + i32.load + local.set 2 + loop ;; label = @37 + block ;; label = @38 + local.get 1 + local.tee 0 + i32.const 2 + i32.sub + local.get 2 + i32.ge_u + br_if 0 (;@38;) + local.get 0 + i32.const 2 + i32.add + local.set 1 + local.get 0 + i32.load16_u + i32.const 10 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;) + br_table 0 (;@38;) 1 (;@37;) 1 (;@37;) 0 (;@38;) 1 (;@37;) 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;) + end + i32.const 16496 + local.get 0 + i32.store + end + i32.const 16496 + i32.load + local.set 0 + loop ;; label = @36 + block ;; label = @37 + block ;; label = @38 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 2 - i32.const 4024 - i32.load - local.tee 1 - i32.lt_u - 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 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 + block ;; label = @40 + local.get 0 + local.tee 5 + local.get 8 + i32.ge_u + br_if 0 (;@40;) + i32.const 4108 + i32.load + br_if 0 (;@40;) + i32.const 16496 + local.get 0 + i32.const 2 + i32.add + local.tee 0 + i32.store + local.get 5 + i32.load16_u offset=2 + local.tee 6 + call 21 + br_if 4 (;@36;) + block ;; label = @41 + local.get 6 + i32.const 47 + i32.ne + local.tee 3 + br_if 0 (;@41;) + local.get 5 + i32.const 4 + i32.add + local.set 1 + block ;; label = @42 + local.get 5 + i32.load16_u offset=4 + local.tee 2 + i32.const 42 + i32.ne + if ;; label = @43 + local.get 2 + i32.const 47 + i32.ne + br_if 2 (;@41;) + i32.const 16500 + i32.load + local.set 2 + loop ;; label = @44 + local.get 1 + local.tee 0 + i32.const 2 + i32.sub + local.get 2 + i32.ge_u + br_if 2 (;@42;) + local.get 0 + i32.const 2 + i32.add + local.set 1 + local.get 0 + i32.load16_u + i32.const 10 + i32.sub + br_table 2 (;@42;) 0 (;@44;) 0 (;@44;) 2 (;@42;) 0 (;@44;) + end + unreachable + end + i32.const 16500 + i32.load + local.set 2 + loop ;; label = @43 + local.get 2 + local.get 1 + local.tee 0 + i32.gt_u + if ;; label = @44 + local.get 0 + i32.const 2 + i32.add + local.tee 1 + i32.load16_u + i32.const 42 + i32.ne + br_if 1 (;@43;) + local.get 0 + i32.const 4 + i32.add + local.tee 0 + i32.load16_u + i32.const 47 + i32.ne + br_if 1 (;@43;) + br 2 (;@42;) + end + end + local.get 0 + i32.const 2 + i32.add + local.set 0 + end + i32.const 16496 + local.get 0 + i32.store + br 5 (;@36;) + end + i32.const 4128 + i32.load16_u + local.set 7 + block ;; label = @41 + block ;; label = @42 + local.get 6 + i32.const 48 + i32.sub + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + local.get 6 + 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 (;@42;) + block ;; label = @43 + block ;; label = @44 + local.get 6 + i32.const 92 + i32.sub + br_table 2 (;@42;) 1 (;@43;) 1 (;@43;) 2 (;@42;) 0 (;@44;) + end + local.get 6 + i32.const 36 + i32.eq + br_if 1 (;@42;) + end + local.get 6 + i32.const 160 + i32.eq + local.get 6 + i32.const 128 + i32.lt_u + i32.or + br_if 1 (;@41;) + end + local.get 5 + i32.const 4 + i32.add + local.set 2 + loop ;; label = @42 + block ;; label = @43 + block ;; label = @44 + local.get 2 + i32.load16_u + local.tee 1 + i32.const 48 + i32.sub + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + local.get 1 + 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 (;@44;) + block ;; label = @45 + block ;; label = @46 + local.get 1 + i32.const 92 + i32.sub + br_table 2 (;@44;) 1 (;@45;) 1 (;@45;) 2 (;@44;) 0 (;@46;) + end + local.get 1 + i32.const 36 + i32.eq + br_if 1 (;@44;) + end + local.get 1 + i32.const 160 + i32.eq + local.get 1 + i32.const 128 + i32.lt_u + i32.or + br_if 1 (;@43;) + end + local.get 1 + call 21 + br_if 0 (;@43;) + i32.const 16496 + local.get 2 + i32.store + local.get 2 + i32.const 2 + i32.add + local.set 2 + br 1 (;@42;) + end + end + block ;; label = @42 + block ;; label = @43 + block ;; label = @44 + block ;; label = @45 + block ;; label = @46 + block ;; label = @47 + block ;; label = @48 + block ;; label = @49 + local.get 2 + i32.const 2 + i32.sub + local.get 0 + i32.sub + i32.const 1 + i32.shr_s + i32.const 1 + i32.sub + br_table 0 (;@49;) 1 (;@48;) 2 (;@47;) 3 (;@46;) 4 (;@45;) 5 (;@44;) 6 (;@43;) 10 (;@39;) 7 (;@42;) 10 (;@39;) + end + local.get 6 + i32.const 100 + i32.ne + if ;; label = @49 + local.get 6 + i32.const 105 + i32.ne + if ;; label = @50 + local.get 6 + i32.const 111 + i32.ne + br_if 11 (;@39;) + i32.const 288 + local.set 1 + local.get 5 + i32.load16_u offset=4 + i32.const 102 + i32.ne + br_if 11 (;@39;) + br 12 (;@38;) + end + i32.const 257 + i32.const 270 + i32.const 256 + local.get 5 + i32.load16_u offset=4 + local.tee 0 + i32.const 110 + i32.eq + select + local.get 0 + i32.const 102 + i32.eq + select + local.set 1 + br 11 (;@38;) + end + i32.const 278 + local.set 1 + local.get 5 + i32.load16_u offset=4 + i32.const 111 + i32.ne + br_if 9 (;@39;) + br 10 (;@38;) + end + block ;; label = @48 + block ;; label = @49 + block ;; label = @50 + block ;; label = @51 + block ;; label = @52 + local.get 6 + i32.const 15 + i32.shl + local.get 6 + i32.const 16 + i32.shl + i32.const 6684672 + i32.sub + i32.const 17 + i32.shr_u + i32.or + i32.const 65535 + i32.and + br_table 0 (;@52;) 13 (;@39;) 13 (;@39;) 4 (;@48;) 1 (;@51;) 13 (;@39;) 13 (;@39;) 2 (;@50;) 3 (;@49;) 13 (;@39;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 111 + i32.ne + br_if 12 (;@39;) + i32.const 258 + local.set 1 + local.get 5 + i32.load16_u offset=6 + i32.const 114 + i32.ne + br_if 12 (;@39;) + br 13 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 101 + i32.ne + br_if 11 (;@39;) + i32.const 269 + local.set 1 + local.get 5 + i32.load16_u offset=6 + i32.const 119 + i32.ne + br_if 11 (;@39;) + br 12 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 114 + i32.ne + br_if 10 (;@39;) + i32.const 279 + local.set 1 + local.get 5 + i32.load16_u offset=6 + i32.const 121 + i32.ne + br_if 10 (;@39;) + br 11 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 97 + i32.ne + br_if 9 (;@39;) + i32.const 281 + local.set 1 + local.get 5 + i32.load16_u offset=6 + i32.const 114 + i32.ne + br_if 9 (;@39;) + br 10 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 101 + i32.ne + br_if 8 (;@39;) + i32.const 283 + local.set 1 + local.get 5 + i32.load16_u offset=6 + i32.const 116 + i32.ne + br_if 8 (;@39;) + br 9 (;@38;) + end + block ;; label = @47 + block ;; label = @48 + block ;; label = @49 + block ;; label = @50 + local.get 6 + i32.const 99 + i32.sub + br_table 1 (;@49;) 11 (;@39;) 3 (;@47;) 0 (;@50;) + end + block ;; label = @50 + local.get 6 + i32.const 118 + i32.sub + br_table 2 (;@48;) 0 (;@50;) 11 (;@39;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 105 + i32.ne + br_if 10 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 116 + i32.ne + br_if 10 (;@39;) + i32.const 260 + local.set 1 + local.get 5 + i32.load16_u offset=8 + i32.const 104 + i32.ne + br_if 10 (;@39;) + br 11 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 97 + i32.ne + br_if 9 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 115 + i32.ne + br_if 9 (;@39;) + i32.const 265 + local.set 1 + local.get 5 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 9 (;@39;) + br 10 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 111 + i32.ne + br_if 8 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 105 + i32.ne + br_if 8 (;@39;) + i32.const 267 + local.set 1 + local.get 5 + i32.load16_u offset=8 + i32.const 100 + i32.ne + br_if 8 (;@39;) + br 9 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 108 + i32.ne + br_if 7 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 115 + i32.ne + br_if 7 (;@39;) + i32.const 277 + local.set 1 + local.get 5 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 7 (;@39;) + br 8 (;@38;) + end + block ;; label = @46 + block ;; label = @47 + block ;; label = @48 + block ;; label = @49 + block ;; label = @50 + block ;; label = @51 + block ;; label = @52 + block ;; label = @53 + block ;; label = @54 + local.get 6 + i32.const 116 + i32.sub + br_table 3 (;@51;) 15 (;@39;) 15 (;@39;) 1 (;@53;) 15 (;@39;) 6 (;@48;) 0 (;@54;) + end + local.get 6 + i32.const 97 + i32.sub + br_table 3 (;@50;) 14 (;@39;) 1 (;@52;) 14 (;@39;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 104 + i32.ne + br_if 13 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 105 + i32.ne + br_if 13 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 108 + i32.ne + br_if 13 (;@39;) + i32.const 259 + local.set 1 + local.get 5 + i32.load16_u offset=10 + i32.const 101 + i32.ne + br_if 13 (;@39;) + br 14 (;@38;) + end + block ;; label = @52 + local.get 5 + i32.load16_u offset=4 + local.tee 0 + i32.const 108 + i32.sub + br_table 3 (;@49;) 13 (;@39;) 13 (;@39;) 5 (;@47;) 0 (;@52;) + end + local.get 0 + i32.const 97 + i32.ne + br_if 12 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 116 + i32.ne + br_if 12 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 99 + i32.ne + br_if 12 (;@39;) + i32.const 262 + local.set 1 + local.get 5 + i32.load16_u offset=10 + i32.const 104 + i32.ne + br_if 12 (;@39;) + br 13 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 104 + i32.ne + br_if 11 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 114 + i32.ne + br_if 11 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 111 + i32.ne + br_if 11 (;@39;) + i32.const 264 + local.set 1 + local.get 5 + i32.load16_u offset=10 + i32.const 119 + i32.ne + br_if 11 (;@39;) + br 12 (;@38;) + end + block ;; label = @50 + local.get 5 + i32.load16_u offset=4 + i32.const 115 + i32.sub + br_table 4 (;@46;) 11 (;@39;) 11 (;@39;) 11 (;@39;) 0 (;@50;) 11 (;@39;) + end + local.get 5 + i32.load16_u offset=6 + i32.const 97 + i32.ne + br_if 10 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 105 + i32.ne + br_if 10 (;@39;) + i32.const 272 + local.set 1 + local.get 5 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 10 (;@39;) + br 11 (;@38;) + end + local.get 5 + i32.load16_u offset=6 + i32.const 97 + i32.ne + br_if 9 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 115 + i32.ne + br_if 9 (;@39;) + i32.const 275 + local.set 1 + local.get 5 + i32.load16_u offset=10 + i32.const 115 + i32.ne + br_if 9 (;@39;) + br 10 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 105 + i32.ne + br_if 8 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 101 + i32.ne + br_if 8 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 108 + i32.ne + br_if 8 (;@39;) + i32.const 276 + local.set 1 + local.get 5 + i32.load16_u offset=10 + i32.const 100 + i32.ne + br_if 8 (;@39;) + br 9 (;@38;) + end + local.get 5 + i32.load16_u offset=6 + i32.const 110 + i32.ne + br_if 7 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 115 + i32.ne + br_if 7 (;@39;) + i32.const 282 + local.set 1 + local.get 5 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 7 (;@39;) + br 8 (;@38;) + end + local.get 5 + i32.load16_u offset=6 + i32.const 121 + i32.ne + br_if 6 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 110 + i32.ne + br_if 6 (;@39;) + i32.const 284 + local.set 1 + local.get 5 + i32.load16_u offset=10 + i32.const 99 + i32.ne + br_if 6 (;@39;) + br 7 (;@38;) + end + block ;; label = @45 + block ;; label = @46 + block ;; label = @47 + block ;; label = @48 + local.get 6 + i32.const 114 + i32.sub + br_table 1 (;@47;) 0 (;@48;) 3 (;@45;) 2 (;@46;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 119 + i32.ne + br_if 8 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 105 + i32.ne + br_if 8 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 8 (;@39;) + local.get 5 + i32.load16_u offset=10 + i32.const 99 + i32.ne + br_if 8 (;@39;) + i32.const 261 + local.set 1 + local.get 5 + i32.load16_u offset=12 + i32.const 104 + i32.ne + br_if 8 (;@39;) + br 9 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 101 + i32.ne + br_if 7 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 116 + i32.ne + br_if 7 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 117 + i32.ne + br_if 7 (;@39;) + local.get 5 + i32.load16_u offset=10 + i32.const 114 + i32.ne + br_if 7 (;@39;) + i32.const 263 + local.set 1 + local.get 5 + i32.load16_u offset=12 + i32.const 110 + i32.ne + br_if 7 (;@39;) + br 8 (;@38;) + end + local.get 6 + i32.const 100 + i32.ne + br_if 6 (;@39;) + local.get 5 + i32.load16_u offset=4 + i32.const 101 + i32.ne + br_if 6 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 108 + i32.ne + br_if 6 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 6 (;@39;) + local.get 5 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 6 (;@39;) + i32.const 266 + local.set 1 + local.get 5 + i32.load16_u offset=12 + i32.const 101 + i32.ne + br_if 6 (;@39;) + br 7 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 121 + i32.ne + br_if 5 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 112 + i32.ne + br_if 5 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 5 (;@39;) + local.get 5 + i32.load16_u offset=10 + i32.const 111 + i32.ne + br_if 5 (;@39;) + i32.const 268 + local.set 1 + local.get 5 + i32.load16_u offset=12 + i32.const 102 + i32.ne + br_if 5 (;@39;) + br 6 (;@38;) + end + block ;; label = @44 + block ;; label = @45 + local.get 6 + i32.const 101 + i32.sub + br_table 0 (;@45;) 1 (;@44;) 6 (;@39;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 120 + i32.ne + br_if 5 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 116 + i32.ne + br_if 5 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 101 + i32.ne + br_if 5 (;@39;) + local.get 5 + i32.load16_u offset=10 + i32.const 110 + i32.ne + br_if 5 (;@39;) + local.get 5 + i32.load16_u offset=12 + i32.const 100 + i32.ne + br_if 5 (;@39;) + i32.const 273 + local.set 1 + local.get 5 + i32.load16_u offset=14 + i32.const 115 + i32.ne + br_if 5 (;@39;) + br 6 (;@38;) + end + local.get 5 + i32.load16_u offset=4 + i32.const 105 + i32.ne + br_if 4 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 110 + i32.ne + br_if 4 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 97 + i32.ne + br_if 4 (;@39;) + local.get 5 + i32.load16_u offset=10 + i32.const 108 + i32.ne + br_if 4 (;@39;) + local.get 5 + i32.load16_u offset=12 + i32.const 108 + i32.ne + br_if 4 (;@39;) + i32.const 280 + local.set 1 + local.get 5 + i32.load16_u offset=14 + i32.const 121 + i32.ne + br_if 4 (;@39;) + br 5 (;@38;) + end + local.get 6 + i32.const 102 + i32.ne + br_if 3 (;@39;) + local.get 5 + i32.load16_u offset=4 + i32.const 117 + i32.ne + br_if 3 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 110 + i32.ne + br_if 3 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 99 + i32.ne + br_if 3 (;@39;) + local.get 5 + i32.load16_u offset=10 + i32.const 116 + i32.ne + br_if 3 (;@39;) + local.get 5 + i32.load16_u offset=12 + i32.const 105 + i32.ne + br_if 3 (;@39;) + local.get 5 + i32.load16_u offset=14 + i32.const 111 + i32.ne + br_if 3 (;@39;) + i32.const 274 + local.set 1 + local.get 5 + i32.load16_u offset=16 + i32.const 110 + i32.ne + br_if 3 (;@39;) + br 4 (;@38;) + end + local.get 6 + i32.const 105 + i32.ne + br_if 2 (;@39;) + local.get 5 + i32.load16_u offset=4 + i32.const 110 + i32.ne + br_if 2 (;@39;) + local.get 5 + i32.load16_u offset=6 + i32.const 115 + i32.ne + br_if 2 (;@39;) + local.get 5 + i32.load16_u offset=8 + i32.const 116 + i32.ne + br_if 2 (;@39;) + local.get 5 + i32.load16_u offset=10 + i32.const 97 + i32.ne + br_if 2 (;@39;) + local.get 5 + i32.load16_u offset=12 + i32.const 110 + i32.ne + br_if 2 (;@39;) + local.get 5 + i32.load16_u offset=14 + i32.const 99 + i32.ne + br_if 2 (;@39;) + local.get 5 + i32.load16_u offset=16 + i32.const 101 + i32.ne + br_if 2 (;@39;) + local.get 5 + i32.load16_u offset=18 + i32.const 111 + i32.ne + br_if 2 (;@39;) + i32.const 271 + local.set 1 + local.get 5 + i32.load16_u offset=20 + i32.const 102 + i32.eq + br_if 3 (;@38;) + br 2 (;@39;) + end + local.get 6 + i32.const 39 + i32.ne + local.get 6 + i32.const 34 + i32.ne + i32.and + i32.eqz + if ;; label = @41 + i32.const 16500 + i32.load + local.set 2 + block ;; label = @42 + loop ;; label = @43 + block ;; label = @44 + 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 (;@44;) + local.get 0 + i32.load16_u + local.tee 3 + local.get 6 + i32.eq + br_if 2 (;@42;) + local.get 3 + i32.const 92 + i32.ne + if ;; label = @45 + local.get 3 + i32.const 10 + i32.sub + br_table 1 (;@44;) 2 (;@43;) 2 (;@43;) 1 (;@44;) 2 (;@43;) + 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 (;@43;) + 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 (;@43;) + end + end + i32.const 4108 + i32.const 9 + i32.store + i32.const 4104 + local.get 0 + 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 0 + end + i32.const 16496 + local.get 0 + i32.store + br 2 (;@39;) + end + local.get 3 + i32.const 4130 + i32.load8_u + local.tee 2 + i32.eqz + i32.or + i32.eqz + if ;; label = @41 + call 18 + br 2 (;@39;) + end + i32.const 286 + local.set 0 + block ;; label = @41 + block ;; label = @42 + local.get 6 + local.tee 1 + i32.const 43 + i32.sub + br_table 1 (;@41;) 5 (;@37;) 1 (;@41;) 0 (;@42;) + end + block ;; label = @42 + block ;; label = @43 + local.get 6 + i32.const 61 + i32.sub + br_table 0 (;@43;) 6 (;@37;) 1 (;@42;) 6 (;@37;) + end + i32.const 61 + local.set 1 + local.get 5 + i32.load16_u offset=4 + i32.const 62 + i32.ne + br_if 4 (;@38;) + i32.const 16496 + local.get 5 + i32.const 4 + i32.add + i32.store + i32.const 285 + local.set 1 + br 4 (;@38;) + end + i32.const 61 + local.set 0 + local.get 5 + i32.load16_u offset=4 + i32.const 46 + i32.ne + br_if 0 (;@41;) + i32.const 16496 + local.get 5 + i32.const 4 + i32.add + i32.store + i32.const 46 + local.set 1 + br 3 (;@38;) + end + local.get 6 + local.get 5 + i32.load16_u offset=4 + i32.ne + br_if 2 (;@38;) + i32.const 16496 + local.get 5 + i32.const 4 + i32.add + i32.store + local.get 0 + local.set 1 + br 2 (;@38;) + end + i32.const 16496 + local.get 18 + i32.store + i32.const 4116 + local.get 5 + i32.store + i32.const 4128 i32.load16_u - i32.const 101 - i32.ne - br_if 0 (;@39;) - local.get 1 - local.get 2 + i32.const 276 i32.eq - br_if 20 (;@19;) - local.get 0 - i32.const 10 - i32.sub - i32.load16_u - call 7 - br_if 20 (;@19;) + i32.const 4132 + i32.load8_u + i32.const 0 + i32.ne + i32.and + local.set 1 + br 4 (;@35;) end + i32.const 256 + local.set 1 + end + i32.const 4130 + i32.load8_u + local.set 2 + end + local.get 7 + i32.const 289 + i32.eq + local.tee 0 + local.get 1 + i32.const 42 + i32.eq + i32.and + local.set 11 + local.get 1 + i32.const 256 + i32.sub + i32.const 65535 + i32.and + i32.const 29 + i32.lt_u + local.get 1 + i32.const 272 + i32.sub + i32.const 65535 + i32.and + i32.const 65534 + i32.lt_u + i32.and + local.set 14 + local.get 2 + i32.const 255 + i32.and + local.tee 15 + i32.eqz + local.get 0 + i32.or + local.tee 19 + local.get 7 + i32.const 46 + i32.ne + local.tee 17 + i32.and + local.set 20 + i32.const 4120 + i32.load + local.set 4 + i32.const 4140 + i32.load + local.set 0 + i32.const 4148 + i32.load + local.set 13 + block ;; label = @37 + block ;; label = @38 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 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;) + loop ;; label = @40 + block ;; label = @41 + local.get 13 + local.get 0 + i32.const 1 + i32.sub + local.tee 3 + i32.const 12 + i32.mul + i32.add + local.tee 9 + i32.load8_u + local.tee 10 + i32.const 14 + i32.ne + if ;; label = @42 + i32.const 0 + local.set 16 + local.get 10 + i32.const 2 + i32.ne + br_if 5 (;@37;) + i32.const 2 + local.set 10 + local.get 9 + i32.load8_u offset=1 + i32.eqz + local.get 17 + i32.and + local.get 19 + i32.and + i32.eqz + br_if 5 (;@37;) + local.get 14 + br_if 4 (;@38;) + local.get 1 + i32.const 286 + i32.sub + br_table 4 (;@38;) 3 (;@39;) 4 (;@38;) 1 (;@41;) + end + block ;; label = @42 + block ;; label = @43 + block ;; label = @44 + local.get 1 + i32.const 41 + i32.sub + br_table 2 (;@42;) 1 (;@43;) 1 (;@43;) 2 (;@42;) 0 (;@44;) + end + block ;; label = @44 + block ;; label = @45 + local.get 1 + i32.const 58 + i32.sub + br_table 1 (;@44;) 3 (;@42;) 0 (;@45;) + end + local.get 1 + i32.const 93 + i32.eq + br_if 2 (;@42;) + local.get 1 + i32.const 125 + i32.ne + br_if 1 (;@43;) + br 2 (;@42;) + end + local.get 9 + i32.load offset=8 + i32.eqz + br_if 1 (;@42;) + end + i32.const 1 + local.set 16 + i32.const 14 + local.set 10 + local.get 20 + i32.eqz + br_if 5 (;@37;) + block ;; label = @43 + local.get 14 + br_if 0 (;@43;) + block ;; label = @44 + block ;; label = @45 + local.get 1 + i32.const 286 + i32.sub + br_table 2 (;@43;) 1 (;@44;) 2 (;@43;) 0 (;@45;) + end + local.get 1 + i32.const 123 + i32.eq + br_if 1 (;@43;) + end + local.get 11 + i32.eqz + br_if 6 (;@37;) + end + local.get 4 + local.set 2 + loop ;; label = @43 + local.get 2 + local.get 5 + i32.ge_u + br_if 6 (;@37;) + block ;; label = @44 + local.get 2 + i32.const 2 + i32.add + local.tee 2 + i32.load16_u + local.tee 21 + i32.const 10 + i32.sub + br_table 2 (;@42;) 1 (;@43;) 1 (;@43;) 2 (;@42;) 0 (;@44;) + end + local.get 21 + i32.const 8232 + i32.sub + i32.const 2 + i32.ge_u + br_if 0 (;@43;) + end + end + i32.const 4132 + local.get 13 + local.get 0 + i32.const 2 + i32.ge_u + if (result i32) ;; label = @42 + i32.const 4140 + local.get 3 + i32.store + local.get 3 + local.tee 0 + else + i32.const 0 + end + i32.const 12 + i32.mul + i32.add + i32.load8_u offset=2 + i32.store8 + br 1 (;@40;) + end + end local.get 1 - local.get 4 + i32.const 123 i32.eq - br_if 20 (;@19;) - local.get 0 - i32.const 6 - i32.sub - i32.load16_u - call 7 - br_if 20 (;@19;) + br_if 1 (;@38;) 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 + local.get 11 i32.eqz - br_if 18 (;@20;) - br 19 (;@19;) + br_if 1 (;@37;) 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 + local.get 9 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 + local.get 4 + local.set 2 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 + local.get 2 + local.get 5 + i32.ge_u + br_if 1 (;@37;) + block ;; label = @39 + block ;; label = @40 + local.get 2 + i32.const 2 + i32.add + local.tee 2 + i32.load16_u + local.tee 14 + i32.const 10 + i32.sub + br_table 1 (;@39;) 2 (;@38;) 2 (;@38;) 1 (;@39;) 0 (;@40;) + end + local.get 14 + i32.const 8232 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;) + i32.ge_u + br_if 1 (;@38;) end + end + i32.const 1 + i32.store8 + end + local.get 9 + i32.const 1 + i32.add + local.set 11 + local.get 9 + i32.load8_u offset=1 + local.set 2 + block ;; label = @37 + block ;; label = @38 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 - 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.or - i32.const 65536 - i32.add + block ;; label = @41 + block ;; label = @42 + block ;; label = @43 + block ;; label = @44 + block ;; label = @45 + block ;; label = @46 + block ;; label = @47 + block ;; label = @48 + block ;; label = @49 + block ;; label = @50 + block ;; label = @51 + block ;; label = @52 + block ;; label = @53 + block ;; label = @54 + block ;; label = @55 + block ;; label = @56 + block ;; label = @57 + block ;; label = @58 + block ;; label = @59 + block ;; label = @60 + block ;; label = @61 + block ;; label = @62 + block ;; label = @63 + local.get 1 + i32.const 274 + i32.sub + br_table 1 (;@62;) 1 (;@62;) 20 (;@43;) 16 (;@47;) 16 (;@47;) 16 (;@47;) 16 (;@47;) 16 (;@47;) 16 (;@47;) 16 (;@47;) 20 (;@43;) 9 (;@54;) 26 (;@37;) 16 (;@47;) 20 (;@43;) 0 (;@63;) + end + block ;; label = @63 + local.get 1 + i32.const 40 + i32.sub + br_table 2 (;@61;) 3 (;@60;) 13 (;@50;) 16 (;@47;) 12 (;@51;) 16 (;@47;) 14 (;@49;) 0 (;@63;) + end + block ;; label = @63 + local.get 1 + i32.const 58 + i32.sub + br_table 11 (;@52;) 12 (;@51;) 16 (;@47;) 16 (;@47;) 16 (;@47;) 10 (;@53;) 0 (;@63;) + end + block ;; label = @63 + local.get 1 + i32.const 91 + i32.sub + br_table 4 (;@59;) 16 (;@47;) 5 (;@58;) 16 (;@47;) 16 (;@47;) 8 (;@55;) 0 (;@63;) + end + local.get 1 + i32.const 123 + i32.sub + br_table 5 (;@57;) 15 (;@47;) 6 (;@56;) 14 (;@48;) + end + local.get 2 + i32.eqz + local.get 7 + i32.const 46 + i32.ne + i32.and + i32.eqz + if ;; label = @62 + local.get 2 + i32.eqz + br_if 24 (;@38;) + local.get 11 + local.get 2 + i32.const 2 + i32.or + i32.store8 + br 24 (;@38;) + end + block ;; label = @62 + block ;; label = @63 + local.get 7 + i32.const 284 + i32.ne + br_if 0 (;@63;) + loop ;; label = @64 + block ;; label = @65 + local.get 4 + local.get 5 + i32.lt_u + if ;; label = @66 + local.get 4 + i32.const 2 + i32.add + local.tee 4 + i32.load16_u + local.tee 0 + i32.const 10 + i32.sub + br_table 3 (;@63;) 2 (;@64;) 2 (;@64;) 3 (;@63;) 1 (;@65;) + end + i32.const 4136 + i32.load8_u + i32.const 0 + i32.ne + local.set 2 + br 3 (;@62;) + end + local.get 0 + i32.const 8232 + i32.sub + i32.const 2 + i32.ge_u + br_if 0 (;@64;) + end + end + i32.const 0 + local.set 2 + local.get 15 + i32.eqz + br_if 0 (;@62;) + block ;; label = @63 + block ;; label = @64 + block ;; label = @65 + local.get 7 + i32.const 123 + i32.sub + br_table 1 (;@64;) 2 (;@63;) 3 (;@62;) 0 (;@65;) + end + local.get 7 + i32.eqz + local.get 7 + i32.const 41 + i32.eq + i32.or + local.get 7 + i32.const 59 + i32.eq + i32.or + br_if 2 (;@62;) + local.get 7 + i32.const 277 + i32.ne + br_if 1 (;@63;) + br 2 (;@62;) + end + block ;; label = @64 + local.get 10 + i32.const 12 + i32.sub + br_table 2 (;@62;) 1 (;@63;) 1 (;@63;) 2 (;@62;) 0 (;@64;) + end + local.get 10 + i32.eqz + br_if 1 (;@62;) + end + local.get 7 + i32.const 287 + i32.ne + local.set 2 + end + i32.const 9 + i32.const 10 + local.get 1 + i32.const 274 + i32.eq + select + local.get 2 + call 20 + drop + i32.const 4130 + i32.const 0 + i32.store8 + br 24 (;@37;) + end + block ;; label = @61 + local.get 10 + i32.const 9 + i32.eq + if ;; label = @62 + local.get 9 + i32.const 11 + i32.store8 + i32.const 4132 + i32.const 0 + i32.store8 + br 1 (;@61;) + end + local.get 2 + i32.const 2 + i32.and + if ;; label = @62 + i32.const 11 + i32.const 1 + call 20 + local.get 11 + i32.load8_u + i32.const 2 + i32.shr_u + i32.const 1 + i32.and + i32.store8 offset=4 + i32.const 4132 + i32.const 0 + i32.store8 + br 1 (;@61;) + end + i32.const 4 + i32.const 3 + local.get 7 + i32.const 257 + i32.sub + i32.const 65535 + i32.and + i32.const 6 + i32.lt_u + select + i32.const 0 + call 20 + local.get 7 + i32.const 258 + i32.eq + i32.store8 offset=5 + end + i32.const 4130 + i32.const 1 + i32.store8 + i32.const 40 + local.set 1 + br 23 (;@37;) + end + local.get 10 + i32.const 11 + i32.eq + if ;; label = @60 + local.get 9 + i32.const 13 + i32.store8 + i32.const 4132 + local.get 9 + i32.load8_u offset=2 + i32.store8 + i32.const 4130 + i32.const 0 + i32.store8 + i32.const 41 + local.set 1 + br 23 (;@37;) + end + local.get 13 + local.get 0 + i32.const 2 + i32.ge_u + if (result i32) ;; label = @60 + i32.const 4140 + local.get 3 + i32.store + local.get 3 + else + i32.const 0 + end + i32.const 12 + i32.mul + i32.add + local.tee 0 + i32.load8_u + local.set 1 + i32.const 4132 + local.get 0 + i32.load8_u offset=2 + i32.store8 + i32.const 4130 + local.get 1 + i32.const 4 + i32.eq + i32.store8 + i32.const 41 + local.set 1 + br 22 (;@37;) + end + i32.const 6 + i32.const 5 + local.get 2 + select + i32.const 0 + call 20 + drop + i32.const 4130 + i32.const 1 + i32.store8 + i32.const 91 + local.set 1 + br 21 (;@37;) + end + local.get 13 + local.get 0 + i32.const 2 + i32.ge_u + if (result i32) ;; label = @58 + i32.const 4140 + local.get 3 + i32.store + local.get 3 + local.tee 0 + else + i32.const 0 + end + i32.const 12 + i32.mul + i32.add + local.tee 1 + i32.load8_u + i32.const 4132 + local.get 1 + i32.load8_u offset=2 + i32.store8 + i32.const 6 + i32.eq + if ;; label = @58 + local.get 0 + i32.const 12 + i32.mul + local.get 13 + i32.add + i32.const 11 + i32.sub + local.tee 0 + local.get 0 + i32.load8_u + i32.const 2 + i32.or + i32.store8 + end + i32.const 4130 + i32.const 0 + i32.store8 + i32.const 93 + local.set 1 + br 20 (;@37;) + end + block ;; label = @57 + i32.const 4132 + block (result i32) ;; label = @58 + local.get 10 + i32.const 13 + i32.eq + if ;; label = @59 + local.get 9 + i32.load8_u offset=4 + br 1 (;@58;) + end + local.get 16 + local.get 7 + i32.const 285 + i32.eq + i32.and + i32.eqz + br_if 1 (;@57;) + local.get 9 + i32.const 0 + i32.store8 offset=4 + i32.const 0 + end + i32.store8 + local.get 9 + i32.const 15 + i32.const 12 + local.get 16 + select + i32.store8 + br 18 (;@39;) + end + local.get 10 + i32.const 10 + i32.ne + local.get 15 + i32.or + i32.eqz + if ;; label = @57 + local.get 11 + i32.const 1 + i32.store8 + local.get 9 + i32.const 2 + i32.store8 + br 18 (;@39;) + end + block ;; label = @57 + local.get 7 + i32.const 276 + i32.ne + if ;; label = @58 + i32.const 0 + local.set 1 + local.get 7 + i32.const 263 + i32.ne + br_if 1 (;@57;) + end + loop ;; label = @58 + local.get 4 + local.get 5 + i32.lt_u + local.set 1 + local.get 4 + local.get 5 + i32.ge_u + br_if 1 (;@57;) + block ;; label = @59 + local.get 4 + i32.const 2 + i32.add + local.tee 4 + i32.load16_u + local.tee 0 + i32.const 10 + i32.sub + br_table 2 (;@57;) 1 (;@58;) 1 (;@58;) 2 (;@57;) 0 (;@59;) + end + local.get 0 + i32.const 8232 + i32.sub + i32.const 2 + i32.ge_u + br_if 0 (;@58;) + end + end + i32.const 1 + local.set 2 + local.get 7 + i32.const 277 + i32.sub + local.tee 0 + i32.const 10 + i32.le_u + br_if 10 (;@46;) + br 15 (;@41;) + end + local.get 13 + local.get 0 + i32.const 2 + i32.ge_u + if (result i32) ;; label = @56 + i32.const 4140 + local.get 3 + i32.store + local.get 3 + local.tee 0 + else + i32.const 0 + end + i32.const 12 + i32.mul + i32.add + local.tee 1 + i32.load8_u offset=3 + local.set 3 + local.get 1 + i32.load8_u + local.set 2 + i32.const 4132 + local.get 1 + i32.load8_u offset=2 + i32.store8 + i32.const 4130 + local.get 3 + i32.eqz + local.get 2 + i32.const 12 + i32.eq + local.get 2 + i32.const 2 + i32.eq + i32.or + i32.and + local.get 2 + i32.const 15 + i32.eq + local.tee 1 + local.get 2 + i32.eqz + i32.or + i32.or + i32.store8 + i32.const 289 + i32.const 125 + local.get 1 + select + local.set 1 + block ;; label = @56 + block ;; label = @57 + local.get 2 + i32.const 8 + i32.sub + br_table 1 (;@56;) 20 (;@37;) 20 (;@37;) 20 (;@37;) 0 (;@57;) 20 (;@37;) + end + local.get 0 + i32.const 12 + i32.mul + local.get 13 + i32.add + i32.const 11 + i32.sub + local.tee 0 + i32.load8_u + i32.eqz + br_if 19 (;@37;) + local.get 0 + i32.const 1 + i32.store8 + br 19 (;@37;) + end + i32.const 16496 + i32.load + local.set 2 + i32.const 16500 + i32.load + local.set 4 + block ;; label = @56 + loop ;; label = @57 + block ;; label = @58 + local.get 2 + local.tee 3 + i32.const 2 + i32.add + local.set 2 + local.get 3 + local.get 4 + i32.ge_u + br_if 0 (;@58;) + block ;; label = @59 + block ;; label = @60 + local.get 2 + i32.load16_u + local.tee 5 + i32.const 92 + i32.sub + br_table 1 (;@59;) 3 (;@57;) 3 (;@57;) 3 (;@57;) 4 (;@56;) 0 (;@60;) + end + local.get 5 + i32.const 36 + i32.ne + br_if 2 (;@57;) + local.get 3 + i32.load16_u offset=4 + i32.const 123 + i32.ne + br_if 2 (;@57;) + i32.const 16496 + local.get 3 + i32.const 4 + i32.add + i32.store + i32.const 8 + i32.const 0 + call 20 + drop + br 22 (;@37;) + end + local.get 3 + i32.const 4 + i32.add + local.set 2 + br 1 (;@57;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @57 + i32.const 4108 + i32.const 8 + i32.store + end + i32.const 4104 + local.get 2 + i32.const 4024 + i32.load + i32.sub + i32.const 1 + i32.shr_s + i32.store + local.get 4 + i32.const 2 + i32.add + local.set 2 + end + i32.const 0 + local.set 3 + i32.const 16496 + local.get 2 + i32.store + local.get 0 + i32.const 2 + i32.ge_u + if ;; label = @56 + i32.const 4140 + local.get 0 + i32.const 1 + i32.sub + local.tee 3 + i32.store + end + i32.const 4132 + local.get 13 + local.get 3 + i32.const 12 + i32.mul + i32.add + i32.load8_u offset=2 + i32.store8 + i32.const 4130 + i32.const 0 + i32.store8 + br 18 (;@37;) + end + i32.const 7 + i32.const 0 + call 20 + drop + i32.const 16496 + i32.load + local.set 2 + i32.const 16500 + i32.load + local.set 1 + block ;; label = @55 + loop ;; label = @56 + block ;; label = @57 + local.get 2 + local.tee 0 + i32.const 2 + i32.add + local.set 2 + local.get 0 + local.get 1 + i32.ge_u + br_if 0 (;@57;) + block ;; label = @58 + block ;; label = @59 + local.get 2 + i32.load16_u + local.tee 3 + i32.const 92 + i32.sub + br_table 1 (;@58;) 3 (;@56;) 3 (;@56;) 3 (;@56;) 4 (;@55;) 0 (;@59;) + end + local.get 3 + i32.const 36 + i32.ne + br_if 2 (;@56;) + local.get 0 + i32.load16_u offset=4 + i32.const 123 + i32.ne + br_if 2 (;@56;) + i32.const 16496 + local.get 0 + i32.const 4 + i32.add + i32.store + i32.const 8 + i32.const 0 + call 20 + drop + i32.const 4130 + i32.const 1 + i32.store8 + i32.const 96 + local.set 1 + br 21 (;@37;) + end + local.get 0 + i32.const 4 + i32.add + local.set 2 + br 1 (;@56;) + end + end + i32.const 4108 + i32.load + i32.eqz + if ;; label = @56 + i32.const 4108 + i32.const 8 + i32.store + end + i32.const 4104 + local.get 2 + i32.const 4024 + i32.load + i32.sub + i32.const 1 + i32.shr_s + i32.store + local.get 1 + i32.const 2 + i32.add + local.set 2 + end + i32.const 0 + local.set 1 + i32.const 16496 + local.get 2 + i32.store + i32.const 4148 + i32.load + local.set 0 + i32.const 4140 + i32.load + local.tee 2 + i32.const 2 + i32.ge_u + if ;; label = @55 + i32.const 4140 + local.get 2 + i32.const 1 + i32.sub + local.tee 1 + i32.store + end + i32.const 4132 + local.get 0 + local.get 1 + i32.const 12 + i32.mul + i32.add + i32.load8_u offset=2 + i32.store8 + i32.const 4130 + i32.const 0 + i32.store8 + i32.const 96 + local.set 1 + br 17 (;@37;) + end + i32.const 14 + i32.const 1 + call 20 + drop + i32.const 4130 + i32.const 1 + i32.store8 + i32.const 4132 + i32.const 0 + i32.store8 + i32.const 285 + local.set 1 + br 16 (;@37;) + end + i32.const 4130 + i32.const 1 + i32.store8 + local.get 9 + local.get 9 + i32.load offset=8 + i32.const 1 + i32.add + i32.store offset=8 + i32.const 63 + local.set 1 + br 15 (;@37;) + end + block ;; label = @52 + local.get 9 + i32.load offset=8 + local.tee 0 + if ;; label = @53 + local.get 9 + i32.const 8 + i32.add + local.get 0 + i32.const 1 + i32.sub + i32.store + br 1 (;@52;) + end + i32.const 287 + local.set 1 + block ;; label = @53 + block ;; label = @54 + local.get 10 + br_table 12 (;@42;) 1 (;@53;) 1 (;@53;) 1 (;@53;) 12 (;@42;) 0 (;@54;) + end + local.get 10 + i32.const 12 + i32.sub + br_table 11 (;@42;) 0 (;@53;) 0 (;@53;) 11 (;@42;) 0 (;@53;) + end + local.get 11 + i32.const 0 + i32.store8 + end + i32.const 58 + local.set 1 + br 9 (;@42;) + end + local.get 10 + i32.const 1 + i32.sub + i32.const 255 + i32.and + i32.const 1 + i32.gt_u + br_if 8 (;@42;) + local.get 11 + i32.const 1 + i32.store8 + br 8 (;@42;) + end + block ;; label = @50 + local.get 10 + i32.const 9 + i32.eq + if ;; label = @51 + local.get 9 + i32.const 1 + i32.store8 offset=4 + br 1 (;@50;) + end + local.get 2 + i32.eqz + br_if 0 (;@50;) + local.get 11 + i32.const 5 + i32.store8 + end + i32.const 4130 + i32.const 1 + i32.store8 + i32.const 42 + local.set 1 + br 12 (;@37;) + end + i32.const 4130 + i32.const 0 + i32.store8 + i32.const 46 + local.set 1 + br 11 (;@37;) + end + local.get 1 + i32.const 256 + i32.eq + br_if 4 (;@43;) + end + block ;; label = @47 + block ;; label = @48 + local.get 2 + i32.eqz + local.get 1 + i32.const 61 + i32.eq + i32.or + i32.eqz + if ;; label = @49 + local.get 2 + i32.const 2 + i32.or + local.set 2 + br 1 (;@48;) + end + i32.const 0 + local.set 2 + local.get 1 + i32.const 61 + i32.ne + br_if 1 (;@47;) + end + local.get 11 + local.get 2 + i32.store8 + end + local.get 17 + i32.eqz + br_if 8 (;@38;) + i32.const 1 + local.set 2 + local.get 1 + i32.const 263 + i32.sub + i32.const 65535 + i32.and + i32.const 11 + i32.lt_u + br_if 2 (;@44;) + local.get 6 + i32.const 41 + i32.ne + local.get 6 + i32.const 40 + i32.sub + i32.const 65535 + i32.and + i32.const 7 + i32.lt_u + i32.and + local.get 6 + 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 + i32.or + br_if 2 (;@44;) + local.get 6 + i32.const 58 + i32.sub + local.tee 0 + i32.const 65535 + i32.and + i32.const 37 + i32.ge_u + i64.const 77309411391 + local.get 0 + i64.extend_i32_u + i64.shr_u + i64.const 1 + i64.and + i64.eqz + i32.or + br_if 1 (;@45;) + br 2 (;@44;) + end + i32.const 1 + local.get 0 + i32.shl + i32.const 1039 + i32.and + i32.eqz + br_if 4 (;@41;) + br 5 (;@40;) + end + local.get 6 + i32.const 125 + i32.ne + local.get 6 + i32.const 123 + i32.sub + i32.const 65535 + i32.and + i32.const 4 + i32.lt_u + i32.and + local.set 2 + end + i32.const 4130 + local.get 2 + i32.store8 + i32.const 258 + local.get 1 + local.get 7 + i32.const 258 + i32.eq + select + local.get 1 + local.get 1 + i32.const 272 + i32.eq + select + local.set 1 + br 6 (;@37;) end - call 16 - i32.eqz - br_if 2 (;@40;) - local.get 10 - i32.eqz + local.get 1 + i32.const 284 + i32.eq if ;; label = @43 - local.get 0 - i32.const 1023 - i32.and - local.get 6 + i32.const 0 + local.set 3 + block ;; label = @44 + local.get 15 + i32.eqz + br_if 0 (;@44;) + block ;; label = @45 + block ;; label = @46 + block ;; label = @47 + local.get 7 + i32.const 123 + i32.sub + br_table 1 (;@46;) 2 (;@45;) 3 (;@44;) 0 (;@47;) + end + local.get 7 + i32.eqz + local.get 7 + i32.const 41 + i32.eq + i32.or + local.get 7 + i32.const 59 + i32.eq + i32.or + br_if 2 (;@44;) + local.get 7 + i32.const 277 + i32.ne + br_if 1 (;@45;) + br 2 (;@44;) + end + block ;; label = @46 + local.get 10 + i32.const 12 + i32.sub + br_table 2 (;@44;) 1 (;@45;) 1 (;@45;) 2 (;@44;) 0 (;@46;) + end + local.get 10 + i32.eqz + br_if 1 (;@44;) + end + local.get 7 + i32.const 287 + i32.ne + local.set 3 + end + i32.const 4136 + local.get 3 + i32.store8 + end + local.get 2 + if ;; label = @43 + local.get 11 + local.get 2 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 0 + i32.store8 end - local.get 6 - local.get 9 - i32.sub - local.get 6 - i32.const -2 - i32.const -4 - local.get 0 - i32.const 65536 - i32.lt_u - local.tee 13 - select - i32.add - local.set 6 - local.get 0 - 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 - local.get 10 - i32.ne - 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 + i32.const 4130 + block (result i32) ;; label = @43 + i32.const 256 + local.get 1 + local.get 7 + i32.const 46 + i32.eq + select + local.tee 1 + i32.const 276 + i32.eq if ;; label = @44 - local.get 0 - i32.const 2 - i32.sub - local.tee 0 - i32.load16_u - i32.const 92 - i32.eq + i32.const 1 + i32.const 4132 + i32.load8_u br_if 1 (;@43;) + drop end - end - local.get 6 - local.get 8 - i32.sub - i32.const 2 - 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 43 - i32.sub - br_table 0 (;@42;) 1 (;@41;) 0 (;@42;) 1 (;@41;) - end - 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 99 - i32.ne - 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 + i32.const 0 + local.get 1 + i32.const 288 + i32.ne + br_if 0 (;@43;) + drop + local.get 9 + i32.load8_u offset=5 + i32.const 0 + i32.ne + end + i32.store8 + br 5 (;@37;) end - call 16 - local.get 0 - i32.const 46 - i32.eq + i32.const 4130 + i32.const 1 + i32.store8 + br 4 (;@37;) + end + local.get 7 + i32.eqz + local.get 7 + i32.const 41 + i32.eq + i32.or + local.get 7 + i32.const 59 + i32.eq + i32.or + br_if 0 (;@40;) + block ;; label = @41 + local.get 7 + i32.const 123 + i32.ne br_if 0 (;@41;) - local.get 6 - local.set 0 + block ;; label = @42 + local.get 10 + i32.const 12 + i32.sub + br_table 2 (;@40;) 1 (;@41;) 1 (;@41;) 2 (;@40;) 0 (;@42;) + end + local.get 10 i32.eqz - br_if 22 (;@19;) - br 1 (;@40;) + br_if 1 (;@40;) end - local.get 6 - local.set 0 + local.get 15 + i32.eqz + br_if 0 (;@40;) + local.get 1 + local.set 2 end - local.get 8 + local.get 2 i32.const 1 - i32.and - br_if 1 (;@38;) + i32.xor + i32.const 0 + call 20 + drop end + i32.const 4130 + i32.const 1 + i32.store8 + i32.const 123 + local.set 1 + br 1 (;@37;) end - 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 1 - i32.const 2 - i32.sub - i32.load16_u - i32.const 105 - i32.sub - br_table 0 (;@38;) 18 (;@20;) 18 (;@20;) 1 (;@37;) 18 (;@20;) - end - local.get 1 - i32.const 6 - i32.sub - local.tee 0 - i32.const 4024 - i32.load - local.tee 4 - i32.lt_u - br_if 17 (;@20;) - local.get 0 - i32.load16_u - i32.const 118 - i32.ne - br_if 17 (;@20;) - local.get 1 - i32.const 4 - i32.sub - i32.load16_u - i32.const 111 - i32.ne - br_if 17 (;@20;) - i32.const -4 - local.set 2 - local.get 0 - local.get 4 - i32.ne - br_if 8 (;@29;) - br 18 (;@19;) - end - local.get 1 - i32.const 8 - i32.sub - local.tee 0 - i32.const 4024 - i32.load - local.tee 4 - i32.lt_u - br_if 16 (;@20;) - local.get 0 - i32.load16_u - i32.const 121 - i32.ne - br_if 16 (;@20;) - local.get 1 - i32.const 6 - i32.sub - i32.load16_u - i32.const 105 - i32.ne - br_if 16 (;@20;) - local.get 1 - i32.const 4 - i32.sub - i32.load16_u - i32.const 101 - i32.ne - br_if 16 (;@20;) - i32.const -5 - local.set 2 - local.get 0 - local.get 4 - i32.ne - br_if 7 (;@29;) - br 17 (;@19;) - end - block ;; label = @36 - block ;; label = @37 - local.get 1 - i32.const 2 - i32.sub - i32.load16_u - i32.const 115 - i32.sub - br_table 0 (;@37;) 1 (;@36;) 17 (;@20;) + i32.const 4130 + i32.const 0 + i32.store8 + i32.const 256 + local.set 1 end + i32.const 4128 local.get 1 - i32.const 4 - i32.sub - i32.load16_u - local.tee 0 - i32.const 97 - i32.ne - if ;; label = @37 - local.get 0 - i32.const 108 - i32.ne - br_if 17 (;@20;) - i32.const 4024 - i32.load - local.tee 4 - local.get 1 - i32.const 6 - i32.sub - local.tee 0 - i32.gt_u - br_if 17 (;@20;) - local.get 0 - i32.load16_u - i32.const 101 - i32.ne - br_if 17 (;@20;) - i32.const -4 - local.set 2 - local.get 0 - local.get 4 - i32.ne - br_if 8 (;@29;) - br 18 (;@19;) - end - i32.const 4024 + i32.store16 + i32.const 4120 + i32.const 16496 i32.load - local.tee 4 - local.get 1 - i32.const 6 - i32.sub local.tee 0 - i32.gt_u - br_if 16 (;@20;) - local.get 0 - i32.load16_u - i32.const 99 - i32.ne - br_if 16 (;@20;) - i32.const -4 - local.set 2 - local.get 0 - local.get 4 - i32.ne - br_if 7 (;@29;) - br 17 (;@19;) + i32.store + br 0 (;@36;) end - local.get 1 - i32.const 10 - i32.sub - local.tee 0 - i32.const 4024 - i32.load - local.tee 4 - i32.lt_u - br_if 15 (;@20;) - local.get 0 - i32.load16_u - i32.const 100 - i32.ne - br_if 15 (;@20;) - local.get 1 - i32.const 8 - i32.sub - i32.load16_u - i32.const 101 - i32.ne - br_if 15 (;@20;) - local.get 1 - i32.const 6 + unreachable + end + local.get 1 + local.set 4 + br 14 (;@20;) + end + block ;; label = @34 + block ;; label = @35 + local.get 2 + i32.const 2 i32.sub i32.load16_u - i32.const 108 - i32.ne - br_if 15 (;@20;) - local.get 1 - i32.const 4 + i32.const 115 i32.sub - i32.load16_u - i32.const 101 - i32.ne - br_if 15 (;@20;) - i32.const -6 - local.set 2 - local.get 0 - local.get 4 - i32.ne - br_if 6 (;@29;) - br 16 (;@19;) + br_table 0 (;@35;) 1 (;@34;) 15 (;@20;) end - local.get 1 - i32.const 2 - i32.sub - i32.load16_u - i32.const 111 - i32.ne - br_if 13 (;@21;) - local.get 1 + local.get 2 i32.const 4 i32.sub i32.load16_u - i32.const 101 - i32.ne - br_if 13 (;@21;) - local.get 1 - i32.const 6 - i32.sub - i32.load16_u local.tee 0 - i32.const 112 + i32.const 97 i32.ne if ;; label = @35 local.get 0 - i32.const 99 + i32.const 108 i32.ne br_if 15 (;@20;) - local.get 1 - i32.const 18 - i32.sub - local.tee 0 i32.const 4024 i32.load - local.tee 4 - i32.lt_u - br_if 15 (;@20;) - local.get 0 - i32.load16_u - i32.const 105 - i32.ne - br_if 15 (;@20;) - local.get 1 - i32.const 16 - i32.sub - i32.load16_u - i32.const 110 - i32.ne - br_if 15 (;@20;) - local.get 1 - i32.const 14 - i32.sub - i32.load16_u - i32.const 115 - i32.ne - br_if 15 (;@20;) - local.get 1 - i32.const 12 - i32.sub - i32.load16_u - i32.const 116 - i32.ne - br_if 15 (;@20;) - local.get 1 - i32.const 10 + local.tee 1 + local.get 2 + i32.const 6 i32.sub - i32.load16_u - i32.const 97 - i32.ne + local.tee 0 + i32.gt_u br_if 15 (;@20;) - local.get 1 - i32.const 8 - i32.sub + local.get 0 i32.load16_u - i32.const 110 + i32.const 101 i32.ne br_if 15 (;@20;) - i32.const -10 - local.set 2 local.get 0 - local.get 4 - i32.ne - br_if 6 (;@29;) - br 16 (;@19;) - end - local.get 1 - i32.const 10 - i32.sub - local.tee 0 - i32.const 4024 - i32.load - local.tee 4 - i32.lt_u - br_if 14 (;@20;) - local.get 0 - i32.load16_u - i32.const 116 - i32.ne - br_if 14 (;@20;) - local.get 1 - i32.const 8 - i32.sub - i32.load16_u - i32.const 121 - i32.ne - br_if 14 (;@20;) - i32.const -6 - local.set 2 - local.get 0 - local.get 4 - i32.ne - br_if 5 (;@29;) - br 15 (;@19;) - end - block ;; label = @34 + local.get 1 + i32.eq + br_if 16 (;@19;) + local.get 2 + i32.const 8 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 15 (;@20;) + end i32.const 4024 i32.load - local.tee 0 - local.get 1 - i32.const 2 + local.tee 1 + local.get 2 + i32.const 6 i32.sub - local.tee 4 + local.tee 0 i32.gt_u - br_if 0 (;@34;) - local.get 4 + br_if 14 (;@20;) + local.get 0 i32.load16_u - i32.const 105 + i32.const 99 i32.ne - br_if 0 (;@34;) + br_if 14 (;@20;) local.get 0 - local.get 4 + local.get 1 i32.eq br_if 15 (;@19;) - local.get 1 - i32.const 4 + local.get 2 + i32.const 8 i32.sub i32.load16_u call 7 - br_if 15 (;@19;) + local.set 4 + br 14 (;@20;) end - local.get 1 + local.get 2 i32.const 10 i32.sub - local.tee 6 - local.get 0 + local.tee 0 + i32.const 4024 + i32.load + local.tee 1 i32.lt_u - br_if 12 (;@21;) - local.get 6 + br_if 13 (;@20;) + local.get 0 i32.load16_u - i32.const 114 + i32.const 100 i32.ne - br_if 12 (;@21;) - local.get 1 + br_if 13 (;@20;) + local.get 2 i32.const 8 i32.sub i32.load16_u i32.const 101 i32.ne - br_if 12 (;@21;) - local.get 1 + br_if 13 (;@20;) + local.get 2 i32.const 6 i32.sub i32.load16_u - i32.const 116 + i32.const 108 i32.ne - br_if 12 (;@21;) - local.get 1 + br_if 13 (;@20;) + local.get 2 i32.const 4 i32.sub i32.load16_u - i32.const 117 + i32.const 101 i32.ne - br_if 12 (;@21;) - local.get 4 + br_if 13 (;@20;) + local.get 0 + local.get 1 + i32.eq + br_if 14 (;@19;) + local.get 2 + i32.const 12 + i32.sub i32.load16_u - i32.const 114 + call 7 + local.set 4 + br 13 (;@20;) + end + local.get 2 + i32.const 2 + i32.sub + i32.load16_u + i32.const 111 + i32.ne + br_if 12 (;@20;) + local.get 2 + i32.const 4 + i32.sub + i32.load16_u + i32.const 101 + i32.ne + br_if 12 (;@20;) + local.get 2 + i32.const 6 + i32.sub + i32.load16_u + local.tee 0 + i32.const 112 + i32.ne + if ;; label = @33 + local.get 0 + i32.const 99 i32.ne br_if 13 (;@20;) - i32.const -6 - local.set 2 + local.get 2 + i32.const 18 + i32.sub + local.tee 0 + i32.const 4024 + i32.load + local.tee 1 + i32.lt_u + br_if 13 (;@20;) local.get 0 - local.get 6 + i32.load16_u + i32.const 105 + i32.ne + br_if 13 (;@20;) + local.get 2 + i32.const 16 + i32.sub + i32.load16_u + i32.const 110 + i32.ne + br_if 13 (;@20;) + local.get 2 + i32.const 14 + i32.sub + i32.load16_u + i32.const 115 + i32.ne + br_if 13 (;@20;) + local.get 2 + i32.const 12 + i32.sub + i32.load16_u + i32.const 116 + i32.ne + br_if 13 (;@20;) + local.get 2 + i32.const 10 + i32.sub + i32.load16_u + i32.const 97 + i32.ne + br_if 13 (;@20;) + local.get 2 + i32.const 8 + i32.sub + i32.load16_u + i32.const 110 i32.ne - br_if 4 (;@29;) - br 14 (;@19;) + br_if 13 (;@20;) + local.get 0 + local.get 1 + i32.eq + br_if 14 (;@19;) + local.get 2 + i32.const 20 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 13 (;@20;) end - i32.const 4024 - i32.load - local.tee 4 - local.get 1 - i32.const 2 + local.get 2 + i32.const 10 i32.sub local.tee 0 - i32.gt_u + i32.const 4024 + i32.load + local.tee 1 + i32.lt_u br_if 12 (;@20;) local.get 0 i32.load16_u - i32.const 100 + i32.const 116 + i32.ne + br_if 12 (;@20;) + local.get 2 + i32.const 8 + i32.sub + i32.load16_u + i32.const 121 i32.ne br_if 12 (;@20;) - i32.const -2 - local.set 2 local.get 0 - local.get 4 + local.get 1 + i32.eq + br_if 13 (;@19;) + local.get 2 + i32.const 12 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 12 (;@20;) + end + block ;; label = @32 + i32.const 4024 + i32.load + local.tee 0 + local.get 2 + i32.const 2 + i32.sub + local.tee 1 + i32.gt_u + br_if 0 (;@32;) + local.get 1 + i32.load16_u + i32.const 105 i32.ne - br_if 3 (;@29;) - br 13 (;@19;) + br_if 0 (;@32;) + local.get 0 + local.get 1 + i32.eq + br_if 13 (;@19;) + local.get 2 + i32.const 4 + i32.sub + i32.load16_u + call 7 + br_if 13 (;@19;) end - local.get 1 - i32.const 14 + local.get 2 + i32.const 10 i32.sub - local.tee 0 - i32.const 4024 - i32.load - local.tee 4 - i32.lt_u - br_if 11 (;@20;) + local.tee 3 local.get 0 - i32.load16_u - i32.const 100 - i32.ne - br_if 11 (;@20;) - local.get 1 - i32.const 12 - i32.sub - i32.load16_u - i32.const 101 - i32.ne + i32.lt_u br_if 11 (;@20;) - local.get 1 - i32.const 10 - i32.sub + local.get 3 i32.load16_u - i32.const 98 + i32.const 114 i32.ne br_if 11 (;@20;) - local.get 1 + local.get 2 i32.const 8 i32.sub i32.load16_u - i32.const 117 + i32.const 101 i32.ne br_if 11 (;@20;) - local.get 1 + local.get 2 i32.const 6 i32.sub i32.load16_u - i32.const 103 + i32.const 116 i32.ne br_if 11 (;@20;) - local.get 1 + local.get 2 i32.const 4 i32.sub i32.load16_u - i32.const 103 + i32.const 117 i32.ne br_if 11 (;@20;) local.get 1 - i32.const 2 - i32.sub i32.load16_u - i32.const 101 + i32.const 114 i32.ne br_if 11 (;@20;) - i32.const -8 - local.set 2 local.get 0 - local.get 4 - i32.ne - br_if 2 (;@29;) - br 12 (;@19;) + local.get 3 + i32.eq + br_if 12 (;@19;) + local.get 2 + i32.const 12 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 11 (;@20;) end - local.get 1 - i32.const 8 - i32.sub - local.tee 0 i32.const 4024 i32.load - local.tee 4 - i32.lt_u - br_if 10 (;@20;) - local.get 0 - i32.load16_u - i32.const 97 - i32.ne - br_if 10 (;@20;) - local.get 1 - i32.const 6 - i32.sub - i32.load16_u - i32.const 119 - i32.ne - br_if 10 (;@20;) - local.get 1 - i32.const 4 - i32.sub - i32.load16_u - i32.const 97 - i32.ne - br_if 10 (;@20;) - local.get 1 + local.tee 1 + local.get 2 i32.const 2 i32.sub - i32.load16_u - i32.const 105 - i32.ne - br_if 10 (;@20;) - i32.const -5 - local.set 2 - local.get 0 - local.get 4 - i32.ne - br_if 1 (;@29;) - br 11 (;@19;) - end - local.get 1 - i32.const 2 - i32.sub - i32.load16_u - local.tee 0 - i32.const 111 - i32.ne - if ;; label = @30 - local.get 0 - i32.const 101 - i32.ne - br_if 10 (;@20;) - i32.const 4024 - i32.load - local.tee 4 - local.get 1 - i32.const 4 - i32.sub local.tee 0 i32.gt_u br_if 10 (;@20;) local.get 0 i32.load16_u - i32.const 110 + i32.const 100 i32.ne br_if 10 (;@20;) - i32.const -3 - local.set 2 local.get 0 - local.get 4 - i32.ne - br_if 1 (;@29;) - br 11 (;@19;) + local.get 1 + i32.eq + br_if 11 (;@19;) + local.get 2 + i32.const 4 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 10 (;@20;) end - local.get 1 - i32.const 8 + local.get 2 + i32.const 14 i32.sub local.tee 0 i32.const 4024 i32.load - local.tee 4 + local.tee 1 i32.lt_u br_if 9 (;@20;) local.get 0 i32.load16_u - i32.const 116 + i32.const 100 i32.ne br_if 9 (;@20;) - local.get 1 + local.get 2 + i32.const 12 + i32.sub + i32.load16_u + i32.const 101 + i32.ne + br_if 9 (;@20;) + local.get 2 + i32.const 10 + i32.sub + i32.load16_u + i32.const 98 + i32.ne + br_if 9 (;@20;) + local.get 2 + i32.const 8 + i32.sub + i32.load16_u + i32.const 117 + i32.ne + br_if 9 (;@20;) + local.get 2 i32.const 6 i32.sub i32.load16_u - i32.const 104 + i32.const 103 i32.ne br_if 9 (;@20;) - local.get 1 + local.get 2 i32.const 4 i32.sub i32.load16_u - i32.const 114 + i32.const 103 + i32.ne + br_if 9 (;@20;) + local.get 2 + i32.const 2 + i32.sub + i32.load16_u + i32.const 101 i32.ne br_if 9 (;@20;) - i32.const -5 - local.set 2 local.get 0 - local.get 4 + local.get 1 i32.eq br_if 10 (;@19;) + local.get 2 + i32.const 16 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 9 (;@20;) end + local.get 2 + i32.const 8 + i32.sub + local.tee 0 + i32.const 4024 + i32.load + local.tee 1 + i32.lt_u + br_if 8 (;@20;) + local.get 0 + i32.load16_u + i32.const 97 + i32.ne + br_if 8 (;@20;) + local.get 2 + i32.const 6 + i32.sub + i32.load16_u + i32.const 119 + i32.ne + br_if 8 (;@20;) + local.get 2 + i32.const 4 + i32.sub + i32.load16_u + i32.const 97 + i32.ne + br_if 8 (;@20;) + local.get 2 + i32.const 2 + i32.sub + i32.load16_u + i32.const 105 + i32.ne + br_if 8 (;@20;) + local.get 0 local.get 1 + i32.eq + br_if 9 (;@19;) local.get 2 - i32.const 1 - i32.shl - i32.add + i32.const 10 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 8 (;@20;) + end + local.get 2 + i32.const 2 + i32.sub + i32.load16_u + local.tee 0 + i32.const 111 + i32.ne + if ;; label = @28 + local.get 0 + i32.const 101 + i32.ne + br_if 8 (;@20;) + i32.const 4024 + i32.load + local.tee 1 + local.get 2 + i32.const 4 + i32.sub + local.tee 0 + i32.gt_u + br_if 8 (;@20;) + local.get 0 + i32.load16_u + i32.const 110 + i32.ne + br_if 8 (;@20;) + local.get 0 + local.get 1 + i32.eq + br_if 9 (;@19;) + local.get 2 + i32.const 6 + i32.sub i32.load16_u call 7 - local.set 2 + local.set 4 br 8 (;@20;) end - i32.const 4124 - i32.load8_u - i32.eqz + local.get 2 + i32.const 8 + i32.sub + local.tee 0 + i32.const 4024 + i32.load + local.tee 1 + i32.lt_u br_if 7 (;@20;) - br 8 (;@19;) + local.get 0 + i32.load16_u + i32.const 116 + i32.ne + br_if 7 (;@20;) + local.get 2 + i32.const 6 + i32.sub + i32.load16_u + i32.const 104 + i32.ne + br_if 7 (;@20;) + local.get 2 + i32.const 4 + i32.sub + i32.load16_u + i32.const 114 + i32.ne + br_if 7 (;@20;) + local.get 0 + local.get 1 + i32.eq + br_if 8 (;@19;) + local.get 2 + i32.const 10 + i32.sub + i32.load16_u + call 7 + local.set 4 + br 7 (;@20;) end - i32.const 4108 - i32.load - 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.const 4164 + i32.load8_u i32.eqz - local.get 0 - i32.or - br_if 25 (;@1;) - br 15 (;@11;) + br_if 6 (;@20;) + br 7 (;@19;) end - i32.const 4113 - i32.load8_u - br_if 11 (;@14;) - br 22 (;@3;) - end - i32.const 16448 - local.get 0 - i32.const 12 - i32.add - i32.store - br 20 (;@4;) - end - 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 - local.get 0 - i32.const 2 - i32.add - local.set 5 - end - 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 - block ;; label = @25 - local.get 0 + i32.const 4108 + i32.load + local.tee 0 + i32.const 0 + i32.const 4158 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 + i32.const 65535 + i32.ne + i32.const 4156 + i32.load16_u + i32.const 0 + i32.ne + i32.or local.get 0 - i32.const 2 - i32.add - local.set 5 + i32.const 0 + i32.ne + i32.or + local.tee 2 + select + local.set 3 + i32.const 1 + local.set 1 + local.get 2 + i32.eqz local.get 0 - local.get 3 - i32.ge_u - br_if 0 (;@25;) - block ;; label = @26 - block ;; label = @27 - local.get 5 - i32.load16_u - local.tee 6 - i32.const 92 - i32.sub - br_table 0 (;@27;) 7 (;@20;) 1 (;@26;) - end - local.get 0 - i32.const 4 - i32.add - local.set 0 - 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;) + i32.or + br_if 24 (;@1;) + br 14 (;@11;) end + i32.const 4153 + i32.load8_u + br_if 10 (;@14;) + br 21 (;@3;) end - 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.const 16496 + local.get 6 + i32.const 12 + i32.add i32.store - local.get 1 - local.set 5 - br 3 (;@20;) + br 19 (;@4;) 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 4158 + i32.load16_u + i32.const 65534 + i32.ne + br_if 5 (;@17;) i32.const 4108 - i32.const 11 - i32.store + i32.load + local.tee 1 + br_if 12 (;@10;) + i32.const 4 + local.set 1 + br 11 (;@11;) end - i32.const 4104 local.get 0 - local.get 4 - i32.sub - i32.const 1 - i32.shr_s - i32.store - br 2 (;@19;) + i32.const 2 + i32.add + local.set 5 end - local.get 6 - i32.const 47 - i32.ne - br_if 0 (;@20;) + i32.const 16496 + local.get 5 + i32.store + br 18 (;@2;) end - local.get 0 - local.set 1 + local.get 12 + i32.eqz + br_if 0 (;@19;) + i32.const 1 + local.get 4 + i32.eqz + br_if 1 (;@18;) + drop end - i32.const 16448 - local.get 1 - i32.store + call 18 i32.const 0 end i32.store8 br 14 (;@3;) end - i32.const 16448 + i32.const 16496 i32.load local.set 0 - i32.const 16452 + i32.const 16500 i32.load local.set 2 block ;; label = @17 @@ -5865,20 +8610,20 @@ i32.const 123 i32.ne br_if 2 (;@19;) - i32.const 16448 + i32.const 16496 local.get 1 i32.const 4 i32.add local.tee 3 i32.store block ;; label = @22 - i32.const 4114 + i32.const 4154 i32.load16_u local.tee 0 i32.const 2048 i32.ne if ;; label = @23 - i32.const 4116 + i32.const 4156 i32.load16_u local.tee 1 i32.const 2048 @@ -5893,7 +8638,7 @@ i32.const 12 i32.store end - i32.const 16448 + i32.const 16496 local.get 2 i32.const 2 i32.add @@ -5908,36 +8653,36 @@ i32.store br 5 (;@17;) end - i32.const 4114 + i32.const 4154 local.get 0 i32.const 1 i32.add i32.store16 - i32.const 8224 + i32.const 8272 i32.load local.get 0 i32.const 1 i32.shl i32.add - i32.const 4118 + i32.const 4158 i32.load16_u i32.store16 - i32.const 4113 + i32.const 4153 i32.load8_u if ;; label = @22 local.get 1 - i32.const 16464 + i32.const 16512 i32.add i32.const 0 i32.store8 end - i32.const 4118 + i32.const 4158 local.get 1 i32.const 1 i32.add local.tee 0 i32.store16 - i32.const 4116 + i32.const 4156 local.get 0 i32.store16 br 4 (;@17;) @@ -5957,7 +8702,7 @@ i32.const 8 i32.store end - i32.const 16448 + i32.const 16496 local.get 2 i32.const 2 i32.add @@ -5972,7 +8717,7 @@ i32.store br 1 (;@17;) end - i32.const 16448 + i32.const 16496 local.get 0 i32.store end @@ -5980,8 +8725,8 @@ end i32.const 0 local.set 5 - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load local.tee 8 i32.const 2 @@ -6002,9 +8747,9 @@ end i32.const 46 local.set 1 - i32.const 16452 + i32.const 16500 i32.load - i32.const 16448 + i32.const 16496 i32.load local.tee 2 i32.sub @@ -6021,7 +8766,7 @@ i32.const 46 i32.ne br_if 2 (;@19;) - i32.const 16448 + i32.const 16496 local.get 2 i32.const 6 i32.add @@ -6035,8 +8780,8 @@ drop br 5 (;@16;) end - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -6050,8 +8795,8 @@ i32.const 91 i32.eq if ;; label = @20 - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -6059,7 +8804,7 @@ call 8 local.set 1 end - i32.const 16448 + i32.const 16496 i32.load local.set 2 local.get 1 @@ -6075,7 +8820,7 @@ i32.const 91 i32.eq local.set 5 - i32.const 16452 + i32.const 16500 i32.load local.set 3 local.get 2 @@ -6150,7 +8895,7 @@ i32.shr_s i32.store end - i32.const 16448 + i32.const 16496 local.get 3 i32.const 4 i32.add @@ -6171,7 +8916,7 @@ local.set 1 br 2 (;@17;) end - i32.const 16448 + i32.const 16496 i32.load local.set 1 call 8 @@ -6278,8 +9023,8 @@ br_if 1 (;@19;) br 3 (;@17;) end - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -6293,8 +9038,8 @@ i32.const 91 i32.eq if ;; label = @19 - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -6302,7 +9047,7 @@ call 8 local.set 1 end - i32.const 16448 + i32.const 16496 i32.load local.set 2 local.get 1 @@ -6318,7 +9063,7 @@ i32.const 91 i32.eq local.set 5 - i32.const 16452 + i32.const 16500 i32.load local.set 3 local.get 2 @@ -6393,7 +9138,7 @@ i32.shr_s i32.store end - i32.const 16448 + i32.const 16496 local.get 3 i32.const 4 i32.add @@ -6408,7 +9153,7 @@ local.get 1 call 12 local.set 0 - i32.const 16448 + i32.const 16496 i32.load i32.const 0 local.get 0 @@ -6429,8 +9174,8 @@ i32.const 93 i32.ne br_if 1 (;@16;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -6467,54 +9212,54 @@ i32.load call_indirect (type 0) end - i32.const 16448 + i32.const 16496 local.get 8 i32.store br 12 (;@3;) end i32.const 8 - local.set 2 + local.set 1 br 3 (;@11;) end - local.get 4 + local.get 1 i32.const 2048 i32.ne br_if 0 (;@13;) i32.const 4108 i32.load - local.tee 2 + local.tee 1 i32.eqz br_if 1 (;@12;) br 3 (;@10;) end - i32.const 4116 - local.get 4 + i32.const 4156 + local.get 1 i32.const 1 i32.add i32.store16 - local.get 4 - i32.const 16464 + local.get 1 + i32.const 16512 i32.add i32.const 0 i32.store8 - local.get 4 + local.get 1 i32.const 2 i32.shl - i32.const 8240 + i32.const 8288 i32.add - local.get 1 + local.get 2 i32.store br 9 (;@3;) end i32.const 12 - local.set 2 + local.set 1 end i32.const 4108 - local.get 2 + local.get 1 i32.store end - i32.const 16448 - local.get 3 + i32.const 16496 + local.get 4 i32.const 2 i32.add i32.store @@ -6526,18 +9271,18 @@ i32.const 1 i32.shr_s i32.store - local.get 2 - local.set 4 + local.get 1 + local.set 3 br 8 (;@1;) end - local.get 4 + local.get 6 local.get 5 i32.const 4036 i32.load call_indirect (type 0) end - i32.const 16448 - local.get 2 + i32.const 16496 + local.get 3 i32.store br 3 (;@4;) end @@ -6546,11 +9291,13 @@ i32.ne br_if 2 (;@4;) end - i32.const 16440 + i32.const 16488 i32.const 1 i32.store8 br 1 (;@4;) end + local.get 6 + local.set 0 i32.const 4024 i32.load local.set 3 @@ -6670,10 +9417,10 @@ i32.const 1 i32.and br_if 0 (;@5;) - i32.const 18524 + i32.const 18572 local.get 5 i32.store - i32.const 18520 + i32.const 18568 local.get 0 i32.const 2 i32.add @@ -6807,29 +9554,29 @@ i32.const 4088 i32.const 4088 i64.load - local.tee 14 + local.tee 22 i64.const 20 i64.add - local.tee 15 + local.tee 23 i32.const 4096 i64.load i64.gt_u if (result i64) ;; label = @6 - local.get 15 + local.get 23 call 2 i32.const 4088 i64.load - local.tee 14 + local.tee 22 i64.const 20 i64.add else - local.get 15 + local.get 23 end i64.store - local.get 14 + local.get 22 i32.wrap_i64 local.tee 0 - i32.const 18512 + i32.const 18560 i64.load align=4 i64.store align=4 local.get 0 @@ -6838,19 +9585,19 @@ local.get 0 i32.const 8 i32.add - i32.const 18520 + i32.const 18568 i64.load align=4 i64.store align=4 - i32.const 16436 + i32.const 16484 i32.load local.set 1 - i32.const 16436 + i32.const 16484 local.get 0 i32.store local.get 1 i32.const 16 i32.add - i32.const 16432 + i32.const 16480 local.get 1 select local.get 0 @@ -6858,7 +9605,7 @@ end end block ;; label = @4 - i32.const 16448 + i32.const 16496 i32.load local.tee 1 i32.load16_u @@ -6950,7 +9697,7 @@ i32.or br_if 2 (;@3;) end - i32.const 16448 + i32.const 16496 local.get 5 i32.store local.get 5 @@ -6961,26 +9708,26 @@ end unreachable end - i32.const 4120 - i32.const 16448 + i32.const 4160 + i32.const 16496 i32.load - local.tee 1 + local.tee 2 i32.store - i32.const 16452 + i32.const 16500 i32.load - local.set 3 - local.get 1 + local.set 4 + local.get 2 local.set 5 br 0 (;@2;) end unreachable end - local.get 4) + local.get 3) (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.const 16496 i32.load local.tee 2 i32.load16_u offset=2 @@ -7012,7 +9759,7 @@ i32.const 101 i32.ne br_if 0 (;@2;) - i32.const 16448 + i32.const 16496 local.get 2 i32.const 14 i32.add @@ -7022,15 +9769,15 @@ i32.const 40 i32.ne br_if 0 (;@3;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 local.set 5 - i32.const 16448 + i32.const 16496 i32.load local.set 4 local.get 5 @@ -7041,7 +9788,7 @@ i32.ne i32.and br_if 0 (;@3;) - i32.const 16452 + i32.const 16500 i32.load local.set 6 local.get 4 @@ -7116,7 +9863,7 @@ i32.shr_s i32.store end - i32.const 16448 + i32.const 16496 local.get 6 i32.const 4 i32.add @@ -7132,16 +9879,16 @@ i32.sub br_table 3 (;@1;) 3 (;@1;) 0 (;@4;) end - i32.const 18516 + i32.const 18564 local.get 1 i32.store - i32.const 18512 + i32.const 18560 local.get 4 i32.store i32.const 1 return end - i32.const 16448 + i32.const 16496 local.get 2 i32.store end @@ -7221,10 +9968,10 @@ local.get 1) (func (;8;) (type 1) (result i32) (local i32 i32 i32 i32 i32) - i32.const 16452 + i32.const 16500 i32.load local.set 3 - i32.const 16448 + i32.const 16496 i32.load local.set 1 loop ;; label = @1 @@ -7333,7 +10080,7 @@ local.get 1 local.set 0 end - i32.const 16448 + i32.const 16496 local.get 0 i32.const 2 i32.add @@ -7350,8 +10097,8 @@ local.get 4) (func (;9;) (type 7) (param i32) (local i32 i32 i32 i32 i32 i32) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load local.tee 1 i32.const 14 @@ -7377,20 +10124,20 @@ i32.const 46 i32.ne br_if 2 (;@2;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 - i32.const 16448 + i32.const 16496 i32.load local.set 1 call 12 i32.eqz br_if 2 (;@2;) - i32.const 16448 + i32.const 16496 i32.load local.set 0 call 8 @@ -7404,8 +10151,8 @@ call_indirect (type 0) return end - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -7419,10 +10166,10 @@ i32.ne i32.and br_if 1 (;@2;) - i32.const 16452 + i32.const 16500 i32.load local.set 3 - i32.const 16448 + i32.const 16496 i32.load local.tee 6 local.set 0 @@ -7496,7 +10243,7 @@ i32.shr_s i32.store end - i32.const 16448 + i32.const 16496 local.get 3 i32.const 4 i32.add @@ -7506,8 +10253,8 @@ i32.const 93 i32.ne br_if 1 (;@2;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -7526,7 +10273,7 @@ local.get 0 i32.eqz br_if 0 (;@2;) - i32.const 4113 + i32.const 4153 i32.load8_u local.tee 1 i32.eqz @@ -7538,8 +10285,8 @@ i32.const 0 i32.store end - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -7564,8 +10311,8 @@ i32.const 123 i32.ne br_if 1 (;@4;) - i32.const 16444 - i32.const 16448 + i32.const 16492 + i32.const 16496 i32.load i32.store br 1 (;@4;) @@ -7574,7 +10321,7 @@ call 6 drop end - i32.const 16448 + i32.const 16496 local.get 2 i32.store return @@ -7587,36 +10334,36 @@ i32.const 123 i32.ne br_if 1 (;@2;) - i32.const 16448 + i32.const 16496 i32.load i32.const 2 i32.sub local.set 5 block ;; label = @4 loop ;; label = @5 - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load local.tee 0 i32.const 2 i32.add i32.store local.get 0 - i32.const 16452 + i32.const 16500 i32.load local.tee 3 i32.ge_u br_if 4 (;@1;) call 8 local.set 2 - i32.const 16448 + i32.const 16496 i32.load local.set 1 block ;; label = @6 local.get 2 call 12 if ;; label = @7 - i32.const 16448 + i32.const 16496 i32.load local.set 3 block ;; label = @8 @@ -7640,15 +10387,15 @@ br_if 1 (;@8;) br 5 (;@4;) end - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 call 12 - i32.const 16448 + i32.const 16496 i32.load i32.load16_u local.set 0 @@ -7683,7 +10430,7 @@ i32.ne br_if 4 (;@4;) end - i32.const 16448 + i32.const 16496 i32.load local.tee 6 local.set 0 @@ -7757,7 +10504,7 @@ i32.shr_s i32.store end - i32.const 16448 + i32.const 16496 local.get 3 i32.const 4 i32.add @@ -7768,8 +10515,8 @@ i32.const 58 i32.ne br_if 1 (;@6;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -7777,7 +10524,7 @@ call 8 call 12 i32.eqz - i32.const 16448 + i32.const 16496 i32.load i32.load16_u local.tee 0 @@ -7792,7 +10539,7 @@ call_indirect (type 0) br 1 (;@6;) end - i32.const 16448 + i32.const 16496 i32.load local.tee 0 i32.load16_u offset=2 @@ -7804,7 +10551,7 @@ i32.const 46 i32.ne br_if 2 (;@4;) - i32.const 16448 + i32.const 16496 local.get 0 i32.const 6 i32.add @@ -7819,7 +10566,7 @@ if (result i32) ;; label = @9 i32.const 1 call 6 - i32.const 16448 + i32.const 16496 i32.load local.set 0 br_if 1 (;@8;) @@ -7835,7 +10582,7 @@ br_if 4 (;@4;) br 1 (;@7;) end - i32.const 16448 + i32.const 16496 local.get 0 i32.const 2 i32.add @@ -7857,7 +10604,7 @@ i32.eq br_if 3 (;@1;) end - i32.const 16448 + i32.const 16496 local.get 5 i32.store return @@ -7866,13 +10613,13 @@ call 6 drop end - i32.const 16448 + i32.const 16496 local.get 2 i32.store end) (func (;10;) (type 2) (param i32) (result i32) (local i32 i32) - i32.const 16448 + i32.const 16496 i32.load local.set 1 block ;; label = @1 @@ -7905,7 +10652,7 @@ i32.const 101 i32.ne br_if 1 (;@1;) - i32.const 16448 + i32.const 16496 local.get 1 i32.const 12 i32.add @@ -7916,8 +10663,8 @@ if ;; label = @3 br 2 (;@1;) end - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -7929,7 +10676,7 @@ i32.const 101 i32.ne br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 i32.load local.tee 0 i32.load16_u offset=2 @@ -7968,7 +10715,7 @@ select local.set 1 end - i32.const 16448 + i32.const 16496 local.get 1 i32.store local.get 2) @@ -7980,12 +10727,12 @@ i32.const 4024 i32.load local.set 7 - i32.const 16452 + i32.const 16500 i32.load local.set 6 loop ;; label = @1 - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -7995,12 +10742,12 @@ i32.const 40 i32.eq br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 i32.load local.set 3 block ;; label = @2 block ;; label = @3 - i32.const 16448 + i32.const 16496 block (result i32) ;; label = @4 block ;; label = @5 block ;; label = @6 @@ -8019,7 +10766,7 @@ i32.const 123 i32.ne br_if 1 (;@6;) - i32.const 16448 + i32.const 16496 local.get 0 i32.const 2 i32.add @@ -8141,7 +10888,7 @@ call 16 i32.eqz br_if 3 (;@3;) - i32.const 16448 + i32.const 16496 local.get 0 i32.const 2 i32.const 4 @@ -8172,7 +10919,7 @@ end unreachable end - i32.const 16448 + i32.const 16496 i32.load i32.const 2 i32.add @@ -8190,7 +10937,7 @@ br_if 1 (;@1;) end end - i32.const 16448 + i32.const 16496 local.get 3 i32.store local.get 2) @@ -8208,7 +10955,7 @@ i32.shl i32.const 1047552 i32.and - i32.const 16448 + i32.const 16496 i32.load i32.load16_u offset=2 i32.const 1023 @@ -8224,7 +10971,7 @@ i32.eqz br_if 0 (;@1;) drop - i32.const 16448 + i32.const 16496 i32.load i32.const 2 i32.const 4 @@ -8236,7 +10983,7 @@ local.set 1 block ;; label = @2 loop ;; label = @3 - i32.const 16448 + i32.const 16496 local.get 1 i32.store block ;; label = @4 @@ -8291,14 +11038,14 @@ end i32.const 1 end) - (func (;13;) (type 4) (param i32 i32) (result i32) + (func (;13;) (type 3) (param i32 i32) (result i32) (local i32 i32) block ;; label = @1 call 8 i32.const 79 i32.ne br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 i32.load local.tee 2 i32.load16_u offset=2 @@ -8325,7 +11072,7 @@ i32.const 116 i32.ne br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 local.get 2 i32.const 12 i32.add @@ -8334,8 +11081,8 @@ i32.const 46 i32.ne br_if 0 (;@1;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -8345,7 +11092,7 @@ i32.const 112 i32.eq if ;; label = @2 - i32.const 16448 + i32.const 16496 i32.load local.tee 2 i32.load16_u offset=2 @@ -8387,7 +11134,7 @@ i32.const 101 i32.ne br_if 1 (;@1;) - i32.const 16448 + i32.const 16496 local.get 2 i32.const 18 i32.add @@ -8396,8 +11143,8 @@ i32.const 46 i32.ne br_if 1 (;@1;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -8409,7 +11156,7 @@ i32.const 104 i32.ne br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 i32.load local.tee 2 i32.load16_u offset=2 @@ -8476,7 +11223,7 @@ i32.const 121 i32.ne br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 local.get 2 i32.const 28 i32.add @@ -8485,8 +11232,8 @@ i32.const 46 i32.ne br_if 0 (;@1;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -8495,7 +11242,7 @@ i32.const 99 i32.ne br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 i32.load local.tee 2 i32.load16_u offset=2 @@ -8512,7 +11259,7 @@ i32.const 108 i32.ne br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 local.get 2 i32.const 8 i32.add @@ -8521,8 +11268,8 @@ i32.const 40 i32.ne br_if 0 (;@1;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -8535,15 +11282,15 @@ i32.const 44 i32.ne br_if 0 (;@1;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add i32.store call 8 drop - i32.const 16448 + i32.const 16496 i32.load local.tee 2 local.get 0 @@ -8553,7 +11300,7 @@ local.tee 0 call 0 br_if 0 (;@1;) - i32.const 16448 + i32.const 16496 local.get 0 local.get 2 i32.add @@ -8562,8 +11309,8 @@ i32.const 41 i32.ne br_if 0 (;@1;) - i32.const 16448 - i32.const 16448 + i32.const 16496 + i32.const 16496 i32.load i32.const 2 i32.add @@ -8983,7 +11730,7 @@ i32.lt_u br_if 1 (;@2;) local.get 0 - call 18 + call 19 local.get 0 i32.const 8204 i32.sub @@ -10249,46 +12996,178 @@ local.set 3 br 2 (;@3;) end - local.get 1 + local.get 1 + i32.const 4 + i32.add + local.set 3 + local.get 1 + i32.const 8 + i32.add + local.set 1 + local.get 3 + i32.load + local.get 2 + i32.add + local.tee 2 + local.get 0 + i32.lt_u + br_if 0 (;@4;) + end + i32.const 1 + local.set 3 + end + local.get 4 + i32.const 488 + i32.lt_u + local.get 3 + i32.and + local.set 1 + br 1 (;@1;) + end + i32.const 0 + local.set 1 + local.get 0 + i32.const 170 + i32.lt_u + br_if 0 (;@1;) + local.get 0 + call 19 + return + end + local.get 1) + (func (;18;) (type 8) + (local i32 i32 i32 i32 i32 i32 i32) + i32.const 16500 + i32.load + local.tee 5 + i32.const 2 + i32.add + local.set 4 + i32.const 4024 + i32.load + local.set 6 + i32.const 4108 + i32.load + local.set 2 + i32.const 16496 + i32.load + local.set 0 + block ;; label = @1 + loop ;; label = @2 + local.get 0 + i32.const 2 + i32.add + local.set 1 + block ;; label = @3 + block ;; label = @4 + local.get 0 + local.get 5 + i32.ge_u + br_if 0 (;@4;) + block ;; label = @5 + block ;; label = @6 + block ;; label = @7 + local.get 1 + i32.load16_u + local.tee 3 + i32.const 91 + i32.sub + br_table 1 (;@6;) 2 (;@5;) 0 (;@7;) + end + local.get 1 + local.set 0 + local.get 3 + i32.const 10 + i32.sub + br_table 2 (;@4;) 4 (;@2;) 4 (;@2;) 2 (;@4;) 3 (;@3;) + end + loop ;; label = @6 + block ;; label = @7 + local.get 1 + i32.const 2 + i32.add + local.set 0 + local.get 1 + local.get 5 + i32.ge_u + br_if 0 (;@7;) + block ;; label = @8 + block ;; label = @9 + local.get 0 + i32.load16_u + local.tee 3 + i32.const 92 + i32.sub + br_table 0 (;@9;) 7 (;@2;) 1 (;@8;) + end + local.get 1 + i32.const 4 + i32.add + local.set 1 + br 2 (;@6;) + end + local.get 0 + local.set 1 + local.get 3 + i32.const 10 + i32.sub + br_table 0 (;@7;) 1 (;@6;) 1 (;@6;) 0 (;@7;) 1 (;@6;) + end + end + local.get 2 + i32.eqz + if ;; label = @6 + i32.const 4108 + i32.const 10 + i32.store + i32.const 10 + local.set 2 + end + i32.const 4104 + local.get 0 + local.get 6 + i32.sub + i32.const 1 + i32.shr_s + i32.store + local.get 4 + local.set 0 + br 3 (;@2;) + end + local.get 0 i32.const 4 i32.add - local.set 3 - local.get 1 - i32.const 8 - i32.add - local.set 1 - local.get 3 - i32.load - local.get 2 - i32.add - local.tee 2 - local.get 0 - i32.lt_u - br_if 0 (;@4;) + local.set 0 + br 2 (;@2;) + end + local.get 2 + i32.eqz + if ;; label = @4 + i32.const 4108 + i32.const 11 + i32.store end + i32.const 4104 + local.get 1 + local.get 6 + i32.sub i32.const 1 - local.set 3 + i32.shr_s + i32.store + br 2 (;@1;) end - local.get 4 - i32.const 488 - i32.lt_u local.get 3 - i32.and - local.set 1 - br 1 (;@1;) + i32.const 47 + i32.ne + br_if 0 (;@2;) end - i32.const 0 - local.set 1 - local.get 0 - i32.const 170 - i32.lt_u - br_if 0 (;@1;) - local.get 0 - call 18 - return + local.get 1 + local.set 4 end - local.get 1) - (func (;18;) (type 2) (param i32) (result i32) + i32.const 16496 + local.get 4 + i32.store) + (func (;19;) (type 2) (param i32) (result i32) (local i32 i32 i32 i32 i32) block ;; label = @1 local.get 0 @@ -12208,7 +15087,226 @@ return end i32.const 1) - (func (;19;) (type 2) (param i32) (result i32) + (func (;20;) (type 3) (param i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32 i64 i64 i64 i64) + block ;; label = @1 + i32.const 4140 + i32.load + local.tee 2 + i32.const 4144 + i32.load + i32.ne + if ;; label = @2 + i32.const 4148 + i32.load + local.set 4 + br 1 (;@1;) + end + local.get 2 + i64.extend_i32_u + i64.const 1 + i64.shl + i64.const 16 + local.get 2 + select + local.tee 10 + i64.const 357913942 + i64.lt_u + if ;; label = @2 + i32.const 4088 + i64.load + local.tee 9 + local.get 10 + i64.const 12 + i64.mul + local.tee 11 + i64.const 4294967288 + i64.and + i64.add + local.tee 12 + i32.const 4096 + i64.load + i64.gt_u + if ;; label = @3 + local.get 12 + call 2 + i32.const 4088 + i64.load + local.set 9 + i32.const 4140 + i32.load + local.set 2 + end + i32.const 4088 + local.get 9 + local.get 11 + i64.add + i64.store + i32.const 4148 + i32.load + local.set 8 + local.get 9 + i32.wrap_i64 + local.set 4 + local.get 2 + local.set 3 + loop ;; label = @3 + local.get 3 + if ;; label = @4 + local.get 4 + local.get 5 + i32.add + local.tee 6 + local.get 5 + local.get 8 + i32.add + local.tee 7 + i32.load16_u + i32.store16 + local.get 6 + i32.const 2 + i32.add + local.get 7 + i32.const 2 + i32.add + i32.load align=2 + i32.store align=2 + local.get 6 + i32.const 8 + i32.add + local.get 7 + i32.const 8 + i32.add + i32.load + i32.store + local.get 3 + i32.const 1 + i32.sub + local.set 3 + local.get 5 + i32.const 12 + i32.add + local.set 5 + br 1 (;@3;) + else + i32.const 4144 + local.get 10 + i64.store32 + i32.const 4148 + local.get 4 + i32.store + br 3 (;@1;) + end + unreachable + end + unreachable + end + unreachable + end + i32.const 4140 + local.get 2 + i32.const 1 + i32.add + i32.store + i32.const 4132 + i32.load8_u + local.set 3 + local.get 4 + local.get 2 + i32.const 12 + i32.mul + i32.add + local.tee 2 + i32.const 0 + i32.store offset=8 + local.get 2 + i32.const 0 + i32.store16 offset=4 + local.get 2 + local.get 1 + i32.store8 offset=3 + local.get 2 + local.get 3 + i32.store8 offset=2 + local.get 2 + local.get 0 + i32.store8 + local.get 2 + local.get 0 + i32.const 1 + i32.sub + i32.const 255 + i32.and + i32.const 2 + i32.lt_u + i32.store8 offset=1 + local.get 2) + (func (;21;) (type 2) (param i32) (result i32) + (local i32 i32) + i32.const 1 + local.set 1 + block ;; label = @1 + local.get 0 + i32.const 160 + i32.eq + local.get 0 + i32.const 9 + i32.sub + local.tee 2 + i32.const 23 + i32.le_u + i32.const 0 + i32.const 1 + local.get 2 + i32.shl + i32.const 8388639 + i32.and + select + i32.or + local.get 0 + i32.const 5760 + i32.eq + local.get 0 + i32.const -8192 + i32.add + i32.const 65535 + i32.and + i32.const 11 + i32.lt_u + i32.or + i32.or + br_if 0 (;@1;) + local.get 0 + i32.const 8287 + i32.eq + local.get 0 + i32.const 12288 + i32.eq + i32.or + local.get 0 + i32.const 8232 + i32.sub + local.tee 1 + i32.const 7 + i32.le_u + i32.const 0 + i32.const 1 + local.get 1 + i32.shl + i32.const 131 + i32.and + select + i32.or + local.get 0 + i32.const 65279 + i32.eq + i32.or + br_if 0 (;@1;) + i32.const 0 + return + end + i32.const 1) + (func (;22;) (type 2) (param i32) (result i32) (local i32) i32.const 4024 i32.load @@ -12266,10 +15364,10 @@ i32.const 0 i32.store local.get 1) - (func (;20;) (type 1) (result i32) + (func (;23;) (type 1) (result i32) i32.const 4104 i32.load) - (func (;21;) (type 1) (result i32) + (func (;24;) (type 1) (result i32) i32.const 4052 i32.load i32.load @@ -12278,7 +15376,7 @@ i32.sub i32.const 1 i32.shr_s) - (func (;22;) (type 1) (result i32) + (func (;25;) (type 1) (result i32) i32.const 4052 i32.load i32.load offset=4 @@ -12287,7 +15385,7 @@ i32.sub i32.const 1 i32.shr_s) - (func (;23;) (type 1) (result i32) + (func (;26;) (type 1) (result i32) i32.const 4064 i32.load i32.load @@ -12296,7 +15394,7 @@ i32.sub i32.const 1 i32.shr_s) - (func (;24;) (type 1) (result i32) + (func (;27;) (type 1) (result i32) i32.const 4064 i32.load i32.load offset=4 @@ -12305,7 +15403,7 @@ i32.sub i32.const 1 i32.shr_s) - (func (;25;) (type 1) (result i32) + (func (;28;) (type 1) (result i32) i32.const 4076 i32.load i32.load @@ -12314,7 +15412,7 @@ i32.sub i32.const 1 i32.shr_s) - (func (;26;) (type 1) (result i32) + (func (;29;) (type 1) (result i32) i32.const 4076 i32.load i32.load offset=4 @@ -12323,19 +15421,19 @@ i32.sub i32.const 1 i32.shr_s) - (func (;27;) (type 1) (result i32) + (func (;30;) (type 1) (result i32) i32.const 4048 i32.const 4052 - call 33) - (func (;28;) (type 1) (result i32) + call 36) + (func (;31;) (type 1) (result i32) i32.const 4060 i32.const 4064 - call 33) - (func (;29;) (type 1) (result i32) + call 36) + (func (;32;) (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) + call 36) + (func (;33;) (type 4) (param i32 i32 i32 i32 i32 i32) (result i32) local.get 0 local.get 1 local.get 2 @@ -12343,7 +15441,7 @@ local.get 4 i32.const 0 call 5) - (func (;31;) (type 8) (param i32 i32 i32 i32 i32 i32 i32) (result i32) + (func (;34;) (type 9) (param i32 i32 i32 i32 i32 i32 i32) (result i32) local.get 0 local.get 1 local.get 2 @@ -12351,7 +15449,7 @@ local.get 4 local.get 6 call 5) - (func (;32;) (type 9) (param i32 i32 i32 i32) + (func (;35;) (type 10) (param i32 i32 i32 i32) (local i64 i64 i32 i32) i32.const 4088 i64.load @@ -12400,7 +15498,7 @@ local.get 6 local.get 1 i32.store offset=4) - (func (;33;) (type 4) (param i32 i32) (result i32) + (func (;36;) (type 3) (param i32 i32) (result i32) (local i32) local.get 1 local.get 1 @@ -12419,23 +15517,23 @@ i32.ne) (table (;0;) 4 4 funcref) (memory (;0;) 1) - (global (;0;) i32 (i32.const 31856)) + (global (;0;) i32 (i32.const 31904)) (export "memory" (memory 0)) (export "__heap_base" (global 0)) - (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)) + (export "sa" (func 22)) + (export "e" (func 23)) + (export "es" (func 24)) + (export "ee" (func 25)) + (export "res" (func 26)) + (export "ree" (func 27)) + (export "us" (func 28)) + (export "ue" (func 29)) + (export "re" (func 30)) + (export "rre" (func 31)) + (export "ru" (func 32)) + (export "parseCJS" (func 33)) + (export "parseCJSWithOptions" (func 34)) (elem (;0;) (i32.const 1) func 1 3 4) (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")) + (data (;2;) (i32.const 4024) "\a0|\00\00\01\00\00\00\02\00\00\00\03")) diff --git a/src/lexer.c b/src/lexer.c index dab3336..1996364 100755 --- a/src/lexer.c +++ b/src/lexer.c @@ -24,6 +24,42 @@ bool allowMinifiedEnumerable; static bool extended; static uint16_t* exportObjectPos; +enum YieldFrameType { + YieldBlock, YieldObject, YieldClass, YieldParen, YieldControl, YieldBracket, YieldComputed, + YieldTemplate, YieldInterpolation, YieldFunction, YieldClassHeader, YieldParameters, YieldBody, + YieldPendingBody, YieldArrow, YieldArrowBody +}; +enum YieldToken { + YieldName = 256, YieldIf, YieldFor, YieldWhile, YieldWith, YieldSwitch, YieldCatch, YieldReturn, + YieldThrow, YieldCase, YieldDelete, YieldVoid, YieldTypeof, YieldNew, YieldIn, YieldInstanceof, + YieldAwait, YieldExtends, YieldFunctionWord, YieldClassWord, YieldWord, YieldElse, YieldDo, + YieldTry, YieldFinally, YieldVar, YieldConst, YieldLet, YieldAsync, YieldArrowToken, YieldIncrement, + YieldLabel, YieldOf, YieldArrowBodyEnd +}; +typedef struct { + uint8_t type; + uint8_t member; + bool generator; + bool expression; + bool bodyGenerator; + bool forLoop; + uint32_t conditional; +} YieldFrame; +typedef struct { + uint16_t* cursor; + uint16_t* tokenEnd; + const unsigned char* firstStar; + uint16_t token; + bool expression; + bool generator; + bool asyncExpression; + uint32_t depth; + uint32_t capacity; + YieldFrame* stack; +} YieldContext; +static YieldContext yieldContext; +static __attribute__((noinline)) bool isYieldKeyword (uint16_t* tokenEnd); + uint16_t* lastReexportStart; uint16_t* lastReexportEnd; @@ -83,6 +119,7 @@ uint32_t parseCJS (uint16_t* _source, uint32_t _sourceLen, void (*_addExport)(co uint32_t parseCJSWithOptions (uint16_t* _source, uint32_t _sourceLen, void (*_addExport)(const uint16_t*, const uint16_t*), void (*_addReexport)(const uint16_t*, const uint16_t*), void (*_addUnsafeGetter)(const uint16_t*, const uint16_t*), void (*_clearReexports)(), uint32_t options) { source = _source; sourceLen = _sourceLen; + yieldContext.cursor = NULL; allowMinifiedEnumerable = (options & 1) != 0; extended = (options & 2) != 0; if (_addExport) @@ -230,7 +267,7 @@ uint32_t parseCJSWithOptions (uint16_t* _source, uint32_t _sourceLen, void (*_ad return syntaxError(2), error; if (openTokenDepth-- == templateDepth) { templateDepth = templateStack[--templateStackDepth]; - templateString(); + templateString(true); } else { if (templateDepth != UINT16_MAX && openTokenDepth < templateDepth) @@ -284,7 +321,7 @@ uint32_t parseCJSWithOptions (uint16_t* _source, uint32_t _sourceLen, void (*_ad case '`': if (templateDepth == UINT16_MAX - 1) return syntaxError(4), error; - templateString(); + templateString(true); break; default: skipTokenRun: @@ -1439,21 +1476,21 @@ uint16_t commentWhitespace () { return ch; } -void templateString () { +bool templateString (bool track) { while (pos++ < end) { uint16_t ch = *pos; if (ch == '$' && *(pos + 1) == '{') { pos++; - if (!pushTemplate()) - return; - return; + if (track) pushTemplate(); + return true; } if (ch == '`') - return; + return false; if (ch == '\\') pos++; } syntaxError(8); + return false; } void blockComment () { @@ -1634,7 +1671,7 @@ bool isExpressionKeyword (uint16_t* pos) { return readPrecedingKeyword2(pos - 2, 'v', 'o'); case 'l': // yield - return readPrecedingKeyword3(pos - 2, 'y', 'i', 'e'); + return readPrecedingKeyword3(pos - 2, 'y', 'i', 'e') && isYieldKeyword(pos); default: return false; } @@ -1697,6 +1734,361 @@ bool isExpressionKeyword (uint16_t* pos) { return false; } +static bool isYieldControl (uint16_t token) { + return token >= YieldIf && token <= YieldCatch; +} + +static bool isYieldExpression (uint16_t token) { + return token >= YieldReturn && token <= YieldExtends; +} + +static uint16_t yieldWord (uint16_t* start) { + switch (pos - start + 1) { + case 2: + if (str_eq2(start, 'o', 'f')) return YieldOf; + if (str_eq2(start, 'i', 'f')) return YieldIf; + if (str_eq2(start, 'i', 'n')) return YieldIn; + if (str_eq2(start, 'd', 'o')) return YieldDo; + break; + case 3: + if (str_eq3(start, 'f', 'o', 'r')) return YieldFor; + if (str_eq3(start, 'n', 'e', 'w')) return YieldNew; + if (str_eq3(start, 't', 'r', 'y')) return YieldTry; + if (str_eq3(start, 'v', 'a', 'r')) return YieldVar; + if (str_eq3(start, 'l', 'e', 't')) return YieldLet; + break; + case 4: + if (str_eq4(start, 'w', 'i', 't', 'h')) return YieldWith; + if (str_eq4(start, 'c', 'a', 's', 'e')) return YieldCase; + if (str_eq4(start, 'v', 'o', 'i', 'd')) return YieldVoid; + if (str_eq4(start, 'e', 'l', 's', 'e')) return YieldElse; + break; + case 5: + if (str_eq5(start, 'w', 'h', 'i', 'l', 'e')) return YieldWhile; + if (str_eq5(start, 'c', 'a', 't', 'c', 'h')) return YieldCatch; + if (str_eq5(start, 't', 'h', 'r', 'o', 'w')) return YieldThrow; + if (str_eq5(start, 'a', 'w', 'a', 'i', 't')) return YieldAwait; + if (str_eq5(start, 'c', 'l', 'a', 's', 's')) return YieldClassWord; + if (str_eq5(start, 'y', 'i', 'e', 'l', 'd')) return YieldWord; + if (str_eq5(start, 'c', 'o', 'n', 's', 't')) return YieldConst; + if (str_eq5(start, 'a', 's', 'y', 'n', 'c')) return YieldAsync; + break; + case 6: + if (str_eq6(start, 's', 'w', 'i', 't', 'c', 'h')) return YieldSwitch; + if (str_eq6(start, 'r', 'e', 't', 'u', 'r', 'n')) return YieldReturn; + if (str_eq6(start, 'd', 'e', 'l', 'e', 't', 'e')) return YieldDelete; + if (str_eq6(start, 't', 'y', 'p', 'e', 'o', 'f')) return YieldTypeof; + break; + case 7: + if (str_eq7(start, 'e', 'x', 't', 'e', 'n', 'd', 's')) return YieldExtends; + if (str_eq7(start, 'f', 'i', 'n', 'a', 'l', 'l', 'y')) return YieldFinally; + break; + case 8: + if (str_eq8(start, 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n')) return YieldFunctionWord; + break; + case 10: + if (str_eq10(start, 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', 'o', 'f')) return YieldInstanceof; + } + return YieldName; +} + +static YieldFrame* pushYieldFrame (YieldContext* context, uint8_t type, bool expression) { + if (context->depth == context->capacity) { + uint64_t capacity = context->capacity ? (uint64_t)context->capacity * 2 : 16; + uint64_t size = capacity * sizeof(YieldFrame); + if (size > UINT32_MAX) __builtin_trap(); + ensureAnalysisCapacity((size_t)size); + YieldFrame* stack = (YieldFrame*)(uintptr_t)analysis_head; + analysis_head += size; + for (uint32_t index = 0; index < context->depth; index++) { + stack[index].type = context->stack[index].type; + stack[index].member = context->stack[index].member; + stack[index].generator = context->stack[index].generator; + stack[index].expression = context->stack[index].expression; + stack[index].bodyGenerator = context->stack[index].bodyGenerator; + stack[index].forLoop = context->stack[index].forLoop; + stack[index].conditional = context->stack[index].conditional; + } + context->stack = stack; + context->capacity = capacity; + } + YieldFrame* frame = &context->stack[context->depth++]; + *frame = (YieldFrame){ + .type = type, + .generator = context->generator, + .expression = expression, + .member = type == YieldObject || type == YieldClass ? 1 : 0 + }; + return frame; +} + +static YieldFrame popYieldFrame (YieldContext* context) { + YieldFrame frame = context->stack[context->depth > 1 ? --context->depth : 0]; + context->generator = frame.generator; + return frame; +} + +static bool yieldLineBreak (uint16_t* start, uint16_t* end) { + for (; start < end; start++) { + if (*start == '\r' || *start == '\n' || *start == 0x2028 || *start == 0x2029) return true; + } + return false; +} + +static bool isYieldWhitespace (uint16_t ch) { + return isBrOrWs(ch) || ch == 0x1680 || ch >= 0x2000 && ch <= 0x200a || + ch == 0x2028 || ch == 0x2029 || ch == 0x202f || ch == 0x205f || ch == 0x3000 || ch == 0xfeff; +} + +static bool isYieldStatementStart (uint16_t token) { + return token >= YieldName && token <= YieldAsync && token != YieldIn && token != YieldInstanceof || + token == YieldOf || token == '{' || token == YieldIncrement; +} + +static bool isYieldStatementBody (uint8_t type) { + return type == YieldBlock || type == YieldBody || type == YieldArrowBody; +} + +static bool isYieldDeclarationBoundary (uint16_t previous, uint8_t type) { + return previous == 0 || previous == ';' || previous == YieldElse || previous == ')' || previous == '}' || + previous == '{' && isYieldStatementBody(type) || previous == YieldLabel; +} + +static void readYieldContext (YieldContext* context) { + pos++; + uint16_t ch = *pos; + if (isYieldWhitespace(ch)) return; + if (ch == '/' && *(pos + 1) == '/') { + lineComment(); + return; + } + if (ch == '/' && *(pos + 1) == '*') { + blockComment(); + return; + } + uint16_t* start = pos; + uint16_t previous = context->token; + uint16_t token = ch; + if (isTokenRunChar(ch)) { + while (isTokenRunChar(*(pos + 1)) && !isYieldWhitespace(*(pos + 1))) pos++; + token = yieldWord(start); + } + else if (ch == '\'' || ch == '"') { + stringLiteral(ch); + token = YieldName; + } + else if (ch == '/' && context->expression) { + regularExpression(); + token = YieldName; + } + else if (ch == '=' && *(pos + 1) == '>') { + pos++; + token = YieldArrowToken; + } + else if (ch == '?' && *(pos + 1) == '.') { + pos++; + token = '.'; + } + else if ((ch == '+' || ch == '-' || ch == '?') && *(pos + 1) == ch) { + pos++; + token = ch == '?' ? '=' : YieldIncrement; + } + while (context->stack[context->depth - 1].type == YieldArrow && + (token == ')' || token == ']' || token == '}' || token == ',' || token == ';' || + token == ':' && context->stack[context->depth - 1].conditional == 0 || + (!context->expression || previous == YieldArrowBodyEnd) && previous != '.' && + (isYieldStatementStart(token) || token == '*' && previous == YieldArrowBodyEnd) && + yieldLineBreak(context->tokenEnd + 1, start))) { + popYieldFrame(context); + } + YieldFrame* frame = &context->stack[context->depth - 1]; + if (frame->type == YieldClass && !frame->member && previous != '.' && + (!context->expression || previous == YieldArrowBodyEnd) && + (isYieldStatementStart(token) || token == '*' && previous == YieldArrowBodyEnd) && + yieldLineBreak(context->tokenEnd + 1, start)) frame->member = 1; + bool member = frame->member != 0; + switch (token) { + case YieldFunctionWord: + case YieldClassWord: + if (previous == '.' || member) { + if (member) frame->member |= 2; + token = YieldName; + context->expression = false; + } + else { + bool expression = previous == YieldAsync && + !yieldLineBreak(context->tokenEnd + 1, start) ? context->asyncExpression : + context->expression && !isYieldDeclarationBoundary(previous, frame->type); + pushYieldFrame(context, token == YieldFunctionWord ? YieldFunction : YieldClassHeader, expression); + context->expression = false; + } + break; + case '(': + if (frame->type == YieldFunction) { + frame->type = YieldParameters; + context->generator = false; + } + else if (member && frame->member & 2) { + YieldFrame* parameters = pushYieldFrame(context, YieldParameters, true); + parameters->bodyGenerator = (frame->member & 4) != 0; + context->generator = false; + } + else { + YieldFrame* control = pushYieldFrame(context, isYieldControl(previous) ? YieldControl : YieldParen, false); + control->forLoop = previous == YieldFor; + } + context->expression = true; + break; + case ')': + if (frame->type == YieldParameters) { + frame->type = YieldPendingBody; + context->generator = frame->generator; + context->expression = false; + } + else { + YieldFrame closed = popYieldFrame(context); + context->expression = closed.type == YieldControl; + } + break; + case '[': + pushYieldFrame(context, member ? YieldComputed : YieldBracket, false); + context->expression = true; + break; + case ']': { + YieldFrame closed = popYieldFrame(context); + if (closed.type == YieldComputed) context->stack[context->depth - 1].member |= 2; + context->expression = false; + break; + } + case '{': + if (frame->type == YieldPendingBody || frame->type == YieldArrow && previous == YieldArrowToken) { + if (frame->type == YieldArrow) frame->bodyGenerator = false; + frame->type = frame->type == YieldArrow ? YieldArrowBody : YieldBody; + context->generator = frame->bodyGenerator; + } + else if (frame->type == YieldClassHeader && !context->expression) { + frame->type = YieldClass; + frame->member = 1; + } + else { + bool lineBreak = (previous == YieldReturn || previous == YieldWord) && + yieldLineBreak(context->tokenEnd + 1, start); + bool statement = previous == 0 || previous == ';' || previous == ')' || previous == YieldElse || + previous == YieldDo || previous == YieldTry || previous == YieldFinally || previous == YieldLabel || + previous == '{' && isYieldStatementBody(frame->type) || !context->expression || lineBreak; + pushYieldFrame(context, statement ? YieldBlock : YieldObject, false); + } + context->expression = true; + break; + case '}': { + YieldFrame closed = popYieldFrame(context); + context->expression = closed.type == YieldBlock || closed.type == YieldArrowBody || + (closed.type == YieldBody || closed.type == YieldClass) && !closed.expression; + if (closed.type == YieldArrowBody) token = YieldArrowBodyEnd; + if (closed.type == YieldBody && context->stack[context->depth - 1].member) + context->stack[context->depth - 1].member = 1; + if (closed.type == YieldInterpolation) { + if (templateString(false)) pushYieldFrame(context, YieldInterpolation, false); + else { + popYieldFrame(context); + context->expression = false; + } + } + break; + } + case '`': + pushYieldFrame(context, YieldTemplate, false); + if (templateString(false)) { + pushYieldFrame(context, YieldInterpolation, false); + context->expression = true; + } + else { + popYieldFrame(context); + context->expression = false; + } + break; + case YieldArrowToken: + pushYieldFrame(context, YieldArrow, true); + context->generator = false; + context->expression = true; + break; + case '?': + frame->conditional++; + context->expression = true; + break; + case ':': + if (frame->conditional) frame->conditional--; + else if (isYieldStatementBody(frame->type) || frame->type == YieldControl) token = YieldLabel; + else frame->member = 0; + context->expression = true; + break; + case ',': + case ';': + if (frame->type == YieldObject || frame->type == YieldClass) frame->member = 1; + context->expression = true; + break; + case '*': + if (frame->type == YieldFunction) frame->bodyGenerator = true; + else if (member) frame->member = 1 | 4; + context->expression = true; + break; + case '.': + context->expression = false; + break; + case YieldIncrement: + break; + case YieldName: + case YieldOf: + case YieldAsync: + case YieldWord: + if (token == YieldAsync) + context->asyncExpression = context->expression && !isYieldDeclarationBoundary(previous, frame->type); + if (member) frame->member |= 2; + if (previous == '.') token = YieldName; + context->expression = token == YieldWord && context->generator || token == YieldOf && frame->forLoop; + break; + default: + if (member && token != '=') frame->member |= 2; + else if (token == '=') frame->member = 0; + if (previous == '.') { + token = YieldName; + context->expression = false; + } + else { + context->expression = isYieldExpression(token) || isExpressionPunctuator(ch); + if (token == YieldAwait && previous == YieldFor) token = YieldFor; + } + } + context->token = token; + context->tokenEnd = pos; +} + +static bool isYieldKeyword (uint16_t* tokenEnd) { + YieldContext* context = &yieldContext; + if (!context->cursor) { + *context = (YieldContext){ + .firstStar = memchr(source, '*', sourceLen * sizeof(uint16_t)), + .cursor = (uint16_t*)source - 1, + .tokenEnd = (uint16_t*)source - 1, + .expression = true + }; + } + if (!context->firstStar || context->firstStar > (unsigned char*)tokenEnd + 1) return false; + uint16_t* savedPos = pos; + pos = context->cursor; + if (context->depth == 0) { + pushYieldFrame(context, YieldBlock, false); + if (*source == '#' && *(source + 1) == '!') { + pos = (uint16_t*)source + 1; + lineComment(); + } + } + while (pos < tokenEnd && !error) readYieldContext(context); + context->cursor = pos; + pos = savedPos; + return context->generator && context->token == YieldWord; +} + bool isParenKeyword (uint16_t* curPos) { return readPrecedingKeyword5(curPos, 'w', 'h', 'i', 'l', 'e') || readPrecedingKeyword3(curPos, 'f', 'o', 'r') || diff --git a/test/_unit.js b/test/_unit.js index 3eccde1..c66d1d5 100755 --- a/test/_unit.js +++ b/test/_unit.js @@ -50,6 +50,131 @@ function createRequireDeclarations (count) { suite('Lexer', () => { suiteSetup(async () => await loadParser()); + test('Yield distinguishes division from regular expressions in function contexts', () => { + const expression = 'yield / (exports.division = 1) / +1; exports.after = 1;'; + const cases = [ + [`function f() { ${expression} }`, ['division', 'after']], + [`function* f() { ${expression} }`, ['after']], + [`function* outer() { function f() { ${expression} } }`, ['division', 'after']], + [`function outer() { function* f() { ${expression} } }`, ['after']], + [`const object = { f() { ${expression} } };`, ['division', 'after']], + [`const object = { *f() { ${expression} } };`, ['after']], + [`const object = { async *f() { ${expression} } };`, ['after']], + [`const object = { *['f']() { ${expression} } };`, ['after']], + [`class C { *f() { ${expression} } }`, ['after']], + [`class C { static async *f() { ${expression} } }`, ['after']], + [`function* outer() { const f = () => { ${expression} }; }`, ['division', 'after']], + ['function* f() { const arrow = () => yield / (exports.division = 1) / +1; }', ['division']], + ['function* f() { const arrow = () => 0\n yield /"/; } exports.after = 1;', ['after']], + ['function* f() { const arrow = () => 0 /*\n*/ yield /"/; } exports.after = 1;', ['after']], + ['function* f() { const arrow = () => 0\n call(); yield /"/; } exports.after = 1;', ['after']], + ['function* f() { const arrow = () => 0\n + yield / (exports.division = 1) / +1; }', ['division']], + ['function* f() { const arrow = () => object\n .yield / (exports.division = 1) / +1; }', ['division']], + ['function* f() { const arrow = () => condition ? {} : yield / (exports.division = 1) / +1; }', + ['division']], + ['function* f() { object. yield / (exports.division = 1) / +1; }', ['division']] + ]; + for (const [source, exports] of cases) { + assert.deepStrictEqual(parse(source), { exports, reexports: [] }, source); + assert.deepStrictEqual(parse(source, 'yield.cjs', { mode: 'extended' }), { exports, reexports: [] }, source); + } + }); + + test('Yield context scanning skips hashbangs and contextual loop expressions', () => { + const cases = [ + '#!/bin/node --flag="\nfunction* f() { yield /"/; } exports.after = 1;', + 'function* f() { for (const value of /values/) {} yield /"/; } exports.after = 1;', + 'async function* f() { for await (const value of /values/) {} yield /"/; } exports.after = 1;', + 'function\u2028* f() { yield /"/; } exports.after = 1;' + ]; + for (const source of cases) { + assert.deepStrictEqual(parse(source), { exports: ['after'], reexports: [] }, source); + assert.deepStrictEqual(parse(source, 'yield.cjs', { mode: 'extended' }), + { exports: ['after'], reexports: [] }, source); + } + }); + + test('Yield slash ambiguity does not hide exports after a comment', () => { + const source = 'function f() {\n yield / "/ //" /*\n}\n/*/\n}\nexports.value = 1;\n// */'; + assert.deepStrictEqual(parse(source), { exports: ['value'], reexports: [] }); + assert.deepStrictEqual(parse(source.replace('function f', 'function* f')), { exports: [], reexports: [] }); + }); + + test('Yield context follows nested expressions and restores enclosing functions', () => { + const expression = 'yield / (exports.division = 1) / +1'; + const cases = [ + [`function* f() { call(() => ${expression}, ${expression}); }`, ['division']], + [`function* f() { const arrow = () => [${expression}, ${expression}]; ${expression}; }`, ['division']], + [`function* f() { const arrow = () => ({ value: ${expression} }); ${expression}; }`, ['division']], + [`function* f() { condition ? () => () => ${expression} : ${expression}; }`, ['division']], + [`function* f() { const text = \`head \${(() => ${expression})()} tail\`; ${expression}; }`, ['division']], + [`function* f() { const object = { *[(() => 'key')()]() { ${expression}; }, + method(value = ${expression}) { ${expression}; } }; }`, ['division']], + [`function* f() { function ordinary(value = ${expression}) { ${expression}; } }`, ['division']], + [`function* f() { const nested = async function* () { ${expression}; }; ${expression}; }`, []], + [`function* f() { const value = async function() { ${expression}; }; yield /value/; }`, ['division']], + [`function* f() { label: { ${expression}; } switch (key) { case 1: { ${expression}; } } }`, []], + [`function* f() { try { ${expression}; } catch (error) { ${expression}; } finally {} }`, []], + [`function* f() { do { ${expression}; } while (condition); }`, []], + [`class C { *first() { ${expression}; } } function f() { ${expression}; }`, ['division']], + [`/* * */ const object = { function() { ${expression}; }, *class() { ${expression}; } };`, ['division']], + [`/* * */ function f() { object?.yield / (exports.division = 1) / +1; }`, ['division']] + ]; + for (const [source, exports] of cases) { + assert.deepStrictEqual(parse(source), { exports, reexports: [] }, source); + assert.deepStrictEqual(parse(source, 'yield.cjs', { mode: 'extended' }), { exports, reexports: [] }, source); + } + }); + + test('Yield context preserves declarations and class member boundaries', () => { + const cases = [ + 'class C { field = () => {}\n *gen() { yield /"/; } } exports.after = 1;', + 'class C { field = 1\n method() {} *gen() { yield /"/; } } exports.after = 1;', + 'class C { field = 1\n static {} *gen() { yield /"/; } } exports.after = 1;', + 'class C { field = () => 0\n method() {} *gen() { yield /"/; } } exports.after = 1;', + 'class C { field = {}\n * value(); *gen() { yield /"/; } } exports.after = 1;', + 'function* f() { const arrow = () => 0\n of = yield /"/; } exports.after = 1;', + 'function* f() { const arrow = () => 0\n of(yield /"/); } exports.after = 1;', + 'function* f() { class C {} /"/; yield /"/; } exports.after = 1;', + 'function* f() { function inner() {} /"/; yield /"/; } exports.after = 1;', + 'function* f() { {} function inner() {} /"/; yield /"/; } exports.after = 1;', + 'function* f() { if (condition) function inner() {} /"/; yield /"/; } exports.after = 1;', + 'function* f() { label: { class C {} /"/; } yield /"/; } exports.after = 1;', + 'function* f() { const arrow = () => {}\n /"/; yield /"/; } exports.after = 1;', + 'function* f() { async function inner() {} /"/; yield /"/; } exports.after = 1;', + 'async function inner() {} /"/; function* f() { yield /"/; } exports.after = 1;', + 'function* f() { ; async function inner() {} /"/; yield /"/; } exports.after = 1;', + 'function* f() { label: { async function inner() {} /"/; } yield /"/; } exports.after = 1;', + 'function* f() { const arrow = () => () => {}\n yield /"/; } exports.after = 1;', + 'function* f() { const arrow = () => () => {} /*\n*/ yield /"/; } exports.after = 1;', + 'function* f() { const arrow = () => value ? () => {} : () => {}\n yield /"/; } exports.after = 1;', + 'class C { field = () => () => {}\n *gen() { yield /"/; } } exports.after = 1;', + 'let value = async\n function inner() {} /"/; function* f() { yield /"/; } exports.after = 1;', + 'let value = async\n class C {} /"/; function* f() { yield /"/; } exports.after = 1;', + 'let value = async /*\n*/ function inner() {} /"/; function* f() { yield /"/; } exports.after = 1;', + 'let value = async /*\n*/ class C {} /"/; function* f() { yield /"/; } exports.after = 1;' + ]; + for (const source of cases) { + assert.deepStrictEqual(parse(source), { exports: ['after'], reexports: [] }, source); + assert.deepStrictEqual(parse(source, 'yield.cjs', { mode: 'extended' }), + { exports: ['after'], reexports: [] }, source); + } + }); + + test('Yield context storage grows and resets between parses', () => { + const nested = 'function* f() {' + '('.repeat(1536) + 'yield /value/' + ')'.repeat(1536) + + '; } exports.deep = 1;'; + const repeated = 'function* f() {' + 'yield /value/;'.repeat(5000) + '} exports.repeated = 1;'; + const ordinary = '/* * */ function f() { yield / (exports.division = 1) / +1; }'; + for (let index = 0; index < 3; index++) { + assert.deepStrictEqual(parse(nested), { exports: ['deep'], reexports: [] }); + assert.deepStrictEqual(parse(repeated), { exports: ['repeated'], reexports: [] }); + assert.throws(() => parse('function* f() { const arrow = () => yield /"/; }'), + process.env.WASM || process.env.WASM_SYNC ? /^Error: Parse error @/ : /^Error: Unterminated string\./); + assert.deepStrictEqual(parse(ordinary), { exports: ['division'], reexports: [] }); + } + }); + test('Repeated parsing preserves scanner state and earlier results', () => { const first = parse("exports.first = 1; __exportStar(require('first'));"); const nested = '('.repeat(1536) + '0' + ')'.repeat(1536) + '; exports.deep = 1;';