@futpib/parser 1.0.3 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +24 -0
- package/.github/workflows/main.yml +1 -0
- package/build/androidPackageParser.js +30 -32
- package/build/arbitraryDalvikBytecode.d.ts +3 -3
- package/build/arbitraryDalvikBytecode.js +33 -27
- package/build/arbitraryDalvikExecutable.js +55 -17
- package/build/arbitraryJava.d.ts +31 -0
- package/build/arbitraryJava.js +532 -0
- package/build/arbitraryJavaScript.d.ts +3 -0
- package/build/arbitraryJavaScript.js +263 -0
- package/build/arbitraryJavascript.d.ts +3 -0
- package/build/arbitraryJavascript.js +263 -0
- package/build/arbitraryZig.d.ts +3 -0
- package/build/arbitraryZig.js +240 -0
- package/build/arbitraryZipStream.d.ts +1 -1
- package/build/arrayParser.js +72 -13
- package/build/backsmali.d.ts +4 -3
- package/build/backsmali.js +26 -6
- package/build/bash.d.ts +89 -0
- package/build/bash.js +1 -0
- package/build/bashParser.d.ts +6 -0
- package/build/bashParser.js +335 -0
- package/build/bashParser.test.d.ts +1 -0
- package/build/bashParser.test.js +343 -0
- package/build/bashParserEdgeCases.test.d.ts +1 -0
- package/build/bashParserEdgeCases.test.js +117 -0
- package/build/dalvikBytecodeParser/addressConversion.d.ts +110 -0
- package/build/dalvikBytecodeParser/addressConversion.js +334 -0
- package/build/dalvikBytecodeParser/formatParsers.d.ts +7 -6
- package/build/dalvikBytecodeParser/formatParsers.js +13 -14
- package/build/dalvikBytecodeParser.d.ts +60 -31
- package/build/dalvikBytecodeParser.js +92 -35
- package/build/dalvikBytecodeParser.test-d.d.ts +1 -0
- package/build/dalvikBytecodeParser.test-d.js +268 -0
- package/build/dalvikBytecodeUnparser/formatUnparsers.d.ts +9 -8
- package/build/dalvikBytecodeUnparser/formatUnparsers.js +13 -12
- package/build/dalvikBytecodeUnparser.d.ts +2 -2
- package/build/dalvikBytecodeUnparser.js +23 -23
- package/build/dalvikBytecodeUnparser.test.js +7 -7
- package/build/dalvikExecutable.d.ts +3 -3
- package/build/dalvikExecutable.test-d.d.ts +1 -0
- package/build/dalvikExecutable.test-d.js +59 -0
- package/build/dalvikExecutableParser/typedNumbers.d.ts +18 -0
- package/build/dalvikExecutableParser/typedNumbers.js +3 -0
- package/build/dalvikExecutableParser.d.ts +2 -1
- package/build/dalvikExecutableParser.js +96 -77
- package/build/dalvikExecutableParser.test.js +24 -3
- package/build/dalvikExecutableParserAgainstSmaliParser.test.js +3 -0
- package/build/dalvikExecutableUnparser/poolScanners.d.ts +2 -2
- package/build/dalvikExecutableUnparser/sectionUnparsers.d.ts +3 -3
- package/build/dalvikExecutableUnparser/sectionUnparsers.js +26 -11
- package/build/dalvikExecutableUnparser.d.ts +2 -2
- package/build/dalvikExecutableUnparser.test.js +2 -1
- package/build/disjunctionParser.d.ts +5 -3
- package/build/disjunctionParser.js +79 -17
- package/build/disjunctionParser.test-d.d.ts +1 -0
- package/build/disjunctionParser.test-d.js +72 -0
- package/build/elementSwitchParser.d.ts +4 -0
- package/build/{exactElementSwitchParser.js → elementSwitchParser.js} +3 -4
- package/build/elementSwitchParser.test-d.d.ts +1 -0
- package/build/elementSwitchParser.test-d.js +44 -0
- package/build/exactSequenceParser.d.ts +4 -2
- package/build/exactSequenceParser.test-d.d.ts +1 -0
- package/build/exactSequenceParser.test-d.js +36 -0
- package/build/fetchCid.js +2 -66
- package/build/index.d.ts +25 -2
- package/build/index.js +23 -1
- package/build/index.test.js +16 -1
- package/build/inputReader.d.ts +10 -0
- package/build/inputReader.js +36 -0
- package/build/java.d.ts +502 -0
- package/build/java.js +2 -0
- package/build/javaKeyStoreParser.js +14 -17
- package/build/javaParser.d.ts +51 -0
- package/build/javaParser.js +1538 -0
- package/build/javaParser.test.d.ts +1 -0
- package/build/javaParser.test.js +1287 -0
- package/build/javaScript.d.ts +35 -0
- package/build/javaScript.js +1 -0
- package/build/javaScriptParser.d.ts +9 -0
- package/build/javaScriptParser.js +34 -0
- package/build/javaScriptUnparser.d.ts +3 -0
- package/build/javaScriptUnparser.js +4 -0
- package/build/javaScriptUnparser.test.d.ts +1 -0
- package/build/javaScriptUnparser.test.js +24 -0
- package/build/javaUnparser.d.ts +2 -0
- package/build/javaUnparser.js +519 -0
- package/build/javaUnparser.test.d.ts +1 -0
- package/build/javaUnparser.test.js +24 -0
- package/build/javascript.d.ts +35 -0
- package/build/javascript.js +1 -0
- package/build/javascriptParser.d.ts +9 -0
- package/build/javascriptParser.js +34 -0
- package/build/javascriptUnparser.d.ts +3 -0
- package/build/javascriptUnparser.js +4 -0
- package/build/javascriptUnparser.test.d.ts +1 -0
- package/build/javascriptUnparser.test.js +24 -0
- package/build/jsonParser.js +2 -12
- package/build/lazyMessageError.d.ts +3 -0
- package/build/lookaheadParser.js +60 -3
- package/build/negativeLookaheadParser.js +70 -11
- package/build/nonEmptyArrayParser.js +72 -13
- package/build/objectParser.d.ts +12 -0
- package/build/objectParser.js +31 -0
- package/build/objectParser.test-d.d.ts +1 -0
- package/build/objectParser.test-d.js +112 -0
- package/build/objectParser.test.d.ts +1 -0
- package/build/objectParser.test.js +55 -0
- package/build/optionalParser.js +69 -10
- package/build/parser.d.ts +4 -0
- package/build/parser.js +3 -1
- package/build/parser.test.js +114 -1
- package/build/parserConsumedSequenceParser.js +66 -7
- package/build/parserContext.d.ts +6 -0
- package/build/parserContext.js +20 -11
- package/build/parserError.d.ts +119 -27
- package/build/parserError.js +16 -8
- package/build/regexpParser.d.ts +2 -0
- package/build/regexpParser.js +101 -0
- package/build/regexpParser.test.d.ts +1 -0
- package/build/regexpParser.test.js +114 -0
- package/build/regularExpression.d.ts +63 -0
- package/build/regularExpression.js +1 -0
- package/build/regularExpressionParser.d.ts +3 -0
- package/build/regularExpressionParser.js +600 -0
- package/build/regularExpressionParser.test.d.ts +1 -0
- package/build/regularExpressionParser.test.js +89 -0
- package/build/separatedArrayParser.js +73 -14
- package/build/separatedNonEmptyArrayParser.js +73 -14
- package/build/sliceBoundedParser.js +62 -5
- package/build/smaliParser.d.ts +7 -7
- package/build/smaliParser.js +185 -268
- package/build/smaliParser.test.js +58 -0
- package/build/stringEscapes.d.ts +5 -0
- package/build/stringEscapes.js +244 -0
- package/build/symbolicExpression.d.ts +29 -0
- package/build/symbolicExpression.js +1 -0
- package/build/symbolicExpressionParser.d.ts +4 -0
- package/build/symbolicExpressionParser.js +123 -0
- package/build/symbolicExpressionParser.test.d.ts +1 -0
- package/build/symbolicExpressionParser.test.js +289 -0
- package/build/terminatedArrayParser.js +113 -38
- package/build/terminatedArrayParser.test.js +4 -2
- package/build/tupleParser.d.ts +7 -15
- package/build/tupleParser.js +1 -0
- package/build/unionParser.d.ts +5 -3
- package/build/unionParser.js +7 -2
- package/build/unionParser.test-d.d.ts +1 -0
- package/build/unionParser.test-d.js +72 -0
- package/build/unionParser.test.js +10 -11
- package/build/zig.d.ts +280 -0
- package/build/zig.js +2 -0
- package/build/zigParser.d.ts +3 -0
- package/build/zigParser.js +1119 -0
- package/build/zigParser.test.d.ts +1 -0
- package/build/zigParser.test.js +1590 -0
- package/build/zigUnparser.d.ts +2 -0
- package/build/zigUnparser.js +460 -0
- package/build/zigUnparser.test.d.ts +1 -0
- package/build/zigUnparser.test.js +24 -0
- package/build/zipParser.js +19 -32
- package/build/zipUnparser.js +19 -7
- package/build/zipUnparser.test.js +1 -1
- package/node_modules-@types/s-expression/index.d.ts +5 -0
- package/package.json +25 -6
- package/src/androidPackageParser.ts +33 -60
- package/src/arbitraryDalvikBytecode.ts +39 -31
- package/src/arbitraryDalvikExecutable.ts +65 -20
- package/src/arbitraryJava.ts +804 -0
- package/src/arbitraryJavaScript.ts +410 -0
- package/src/arbitraryZig.ts +380 -0
- package/src/arrayParser.ts +1 -3
- package/src/backsmali.ts +35 -4
- package/src/bash.ts +127 -0
- package/src/bashParser.test.ts +590 -0
- package/src/bashParser.ts +498 -0
- package/src/dalvikBytecodeParser/addressConversion.ts +496 -0
- package/src/dalvikBytecodeParser/formatParsers.ts +19 -29
- package/src/dalvikBytecodeParser.test-d.ts +310 -0
- package/src/dalvikBytecodeParser.ts +194 -69
- package/src/dalvikBytecodeUnparser/formatUnparsers.ts +27 -26
- package/src/dalvikBytecodeUnparser.test.ts +7 -7
- package/src/dalvikBytecodeUnparser.ts +31 -30
- package/src/dalvikExecutable.test-d.ts +132 -0
- package/src/dalvikExecutable.ts +3 -3
- package/src/dalvikExecutableParser/typedNumbers.ts +11 -0
- package/src/dalvikExecutableParser.test.ts +37 -3
- package/src/dalvikExecutableParser.test.ts.md +163 -2
- package/src/dalvikExecutableParser.test.ts.snap +0 -0
- package/src/dalvikExecutableParser.ts +121 -139
- package/src/dalvikExecutableParserAgainstSmaliParser.test.ts +4 -0
- package/src/dalvikExecutableUnparser/poolScanners.ts +6 -6
- package/src/dalvikExecutableUnparser/sectionUnparsers.ts +38 -14
- package/src/dalvikExecutableUnparser.test.ts +3 -2
- package/src/dalvikExecutableUnparser.ts +4 -4
- package/src/disjunctionParser.test-d.ts +105 -0
- package/src/disjunctionParser.ts +18 -15
- package/src/elementSwitchParser.test-d.ts +74 -0
- package/src/elementSwitchParser.ts +51 -0
- package/src/exactSequenceParser.test-d.ts +43 -0
- package/src/exactSequenceParser.ts +13 -8
- package/src/fetchCid.ts +2 -76
- package/src/index.test.ts +22 -1
- package/src/index.ts +119 -2
- package/src/inputReader.ts +53 -0
- package/src/java.ts +708 -0
- package/src/javaKeyStoreParser.ts +18 -32
- package/src/javaParser.test.ts +1592 -0
- package/src/javaParser.ts +2640 -0
- package/src/javaScript.ts +36 -0
- package/src/javaScriptParser.ts +57 -0
- package/src/javaScriptUnparser.test.ts +37 -0
- package/src/javaScriptUnparser.ts +7 -0
- package/src/javaUnparser.test.ts +37 -0
- package/src/javaUnparser.ts +640 -0
- package/src/jsonParser.ts +6 -27
- package/src/lookaheadParser.ts +2 -6
- package/src/negativeLookaheadParser.ts +1 -3
- package/src/nonEmptyArrayParser.ts +1 -3
- package/src/objectParser.test-d.ts +152 -0
- package/src/objectParser.test.ts +71 -0
- package/src/objectParser.ts +69 -0
- package/src/optionalParser.ts +1 -3
- package/src/parser.test.ts +151 -4
- package/src/parser.ts +11 -1
- package/src/parserConsumedSequenceParser.ts +2 -4
- package/src/parserContext.ts +26 -11
- package/src/parserError.ts +17 -3
- package/src/regexpParser.test.ts +264 -0
- package/src/regexpParser.ts +126 -0
- package/src/regularExpression.ts +24 -0
- package/src/regularExpressionParser.test.ts +102 -0
- package/src/regularExpressionParser.ts +920 -0
- package/src/separatedArrayParser.ts +1 -3
- package/src/separatedNonEmptyArrayParser.ts +1 -3
- package/src/sliceBoundedParser.test.ts +2 -2
- package/src/sliceBoundedParser.ts +15 -19
- package/src/smaliParser.test.ts +64 -0
- package/src/smaliParser.test.ts.md +12 -12
- package/src/smaliParser.test.ts.snap +0 -0
- package/src/smaliParser.ts +246 -534
- package/src/stringEscapes.ts +253 -0
- package/src/symbolicExpression.ts +17 -0
- package/src/symbolicExpressionParser.test.ts +466 -0
- package/src/symbolicExpressionParser.ts +190 -0
- package/src/terminatedArrayParser.test.ts +9 -6
- package/src/terminatedArrayParser.ts +25 -29
- package/src/tupleParser.ts +21 -18
- package/src/unionParser.test-d.ts +105 -0
- package/src/unionParser.test.ts +18 -17
- package/src/unionParser.ts +28 -16
- package/src/zig.ts +411 -0
- package/src/zigParser.test.ts +1693 -0
- package/src/zigParser.ts +1745 -0
- package/src/zigUnparser.test.ts +37 -0
- package/src/zigUnparser.ts +615 -0
- package/src/zipParser.ts +20 -56
- package/src/zipUnparser.test.ts +1 -1
- package/src/zipUnparser.ts +22 -7
- package/tsconfig.json +2 -2
- package/build/exactElementSwitchParser.d.ts +0 -3
- package/src/exactElementSwitchParser.ts +0 -41
|
@@ -21,7 +21,7 @@ export const createSeparatedArrayParser = <ElementOutput, Sequence>(
|
|
|
21
21
|
const elements: ElementOutput[] = [];
|
|
22
22
|
|
|
23
23
|
while (true) {
|
|
24
|
-
|
|
24
|
+
using elementParserContext = parserContext.lookahead();
|
|
25
25
|
const initialPosition = elementParserContext.position;
|
|
26
26
|
|
|
27
27
|
try {
|
|
@@ -39,8 +39,6 @@ export const createSeparatedArrayParser = <ElementOutput, Sequence>(
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
throw error;
|
|
42
|
-
} finally {
|
|
43
|
-
elementParserContext.dispose();
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
parser = separatorThenElementParser;
|
|
@@ -21,7 +21,7 @@ export const createSeparatedNonEmptyArrayParser = <ElementOutput, Sequence>(
|
|
|
21
21
|
const elements: ElementOutput[] = [];
|
|
22
22
|
|
|
23
23
|
while (true) {
|
|
24
|
-
|
|
24
|
+
using elementParserContext = parserContext.lookahead();
|
|
25
25
|
const initialPosition = elementParserContext.position;
|
|
26
26
|
|
|
27
27
|
try {
|
|
@@ -39,8 +39,6 @@ export const createSeparatedNonEmptyArrayParser = <ElementOutput, Sequence>(
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
throw error;
|
|
42
|
-
} finally {
|
|
43
|
-
elementParserContext.dispose();
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
parser = separatorThenElementParser;
|
|
@@ -32,7 +32,7 @@ test('sliceBoundedParser', async t => {
|
|
|
32
32
|
test('sliceBoundedParser mustConsumeAll: true fail to cosume all', async t => {
|
|
33
33
|
const parser = createTupleParser([
|
|
34
34
|
createElementParser<string>(),
|
|
35
|
-
createSliceBoundedParser(createArrayParser(createExactElementParser('b'
|
|
35
|
+
createSliceBoundedParser(createArrayParser(createExactElementParser<string>('b')), 2),
|
|
36
36
|
createElementParser(),
|
|
37
37
|
]);
|
|
38
38
|
|
|
@@ -45,7 +45,7 @@ test('sliceBoundedParser mustConsumeAll: true fail to cosume all', async t => {
|
|
|
45
45
|
test('sliceBoundedParser mustConsumeAll: false', async t => {
|
|
46
46
|
const parser = createTupleParser([
|
|
47
47
|
createElementParser<string>(),
|
|
48
|
-
createSliceBoundedParser(createArrayParser(createExactElementParser('b'
|
|
48
|
+
createSliceBoundedParser(createArrayParser(createExactElementParser<string>('b')), 2, false),
|
|
49
49
|
createElementParser(),
|
|
50
50
|
]);
|
|
51
51
|
|
|
@@ -8,30 +8,26 @@ export const createSliceBoundedParser = <Output, Sequence>(
|
|
|
8
8
|
const sliceBoundedParser: typeof childParser = async parserContext => {
|
|
9
9
|
const absoluteSliceEnd = parserContext.position + sliceEnd;
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
using childParserContext = parserContext.lookahead({
|
|
12
12
|
sliceEnd: absoluteSliceEnd,
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
const value = await childParser(childParserContext);
|
|
15
|
+
const value = await childParser(childParserContext);
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
childParserContext.invariant(
|
|
18
|
+
(
|
|
19
|
+
!mustConsumeAll
|
|
20
|
+
|| childParserContext.position === absoluteSliceEnd
|
|
21
|
+
),
|
|
22
|
+
'child parser must consume all input in the slice (%s in total, up to position %s), instead consumed %s up to position %s',
|
|
23
|
+
sliceEnd,
|
|
24
|
+
absoluteSliceEnd,
|
|
25
|
+
childParserContext.position - parserContext.position,
|
|
26
|
+
childParserContext.position,
|
|
27
|
+
);
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
} finally {
|
|
33
|
-
childParserContext.dispose();
|
|
34
|
-
}
|
|
29
|
+
childParserContext.unlookahead();
|
|
30
|
+
return value;
|
|
35
31
|
};
|
|
36
32
|
|
|
37
33
|
setParserName(sliceBoundedParser, [
|
package/src/smaliParser.test.ts
CHANGED
|
@@ -441,3 +441,67 @@ test('parse smali with virtual method after direct methods (a0/n issue)', async
|
|
|
441
441
|
t.truthy(actual);
|
|
442
442
|
t.is(actual.classData?.virtualMethods.length, 1);
|
|
443
443
|
});
|
|
444
|
+
|
|
445
|
+
// Minimal failing test case for .end local directive
|
|
446
|
+
test('parse smali with .end local directive', async t => {
|
|
447
|
+
const smali = `.class public Lpl/czak/minimal/MainActivity;
|
|
448
|
+
.super Landroid/app/Activity;
|
|
449
|
+
|
|
450
|
+
# direct methods
|
|
451
|
+
.method private sumToN(I)I
|
|
452
|
+
.registers 4
|
|
453
|
+
.param p1, "n" # I
|
|
454
|
+
|
|
455
|
+
const/4 v0, 0x0
|
|
456
|
+
|
|
457
|
+
.local v0, "sum":I
|
|
458
|
+
const/4 v1, 0x1
|
|
459
|
+
|
|
460
|
+
.local v1, "i":I
|
|
461
|
+
:goto_2
|
|
462
|
+
if-gt v1, p1, :cond_8
|
|
463
|
+
|
|
464
|
+
add-int/2addr v0, v1
|
|
465
|
+
|
|
466
|
+
add-int/lit8 v1, v1, 0x1
|
|
467
|
+
|
|
468
|
+
goto :goto_2
|
|
469
|
+
|
|
470
|
+
.end local v1 # "i":I
|
|
471
|
+
:cond_8
|
|
472
|
+
return v0
|
|
473
|
+
.end method
|
|
474
|
+
`;
|
|
475
|
+
|
|
476
|
+
const actual = await runParser(smaliParser, smali, stringParserInputCompanion, {
|
|
477
|
+
errorJoinMode: 'all',
|
|
478
|
+
});
|
|
479
|
+
|
|
480
|
+
t.truthy(actual);
|
|
481
|
+
t.is(actual.classData?.directMethods.length, 1);
|
|
482
|
+
});
|
|
483
|
+
|
|
484
|
+
// Minimal test case for .local with generic type signature
|
|
485
|
+
test('parse smali with .local directive with generic type signature', async t => {
|
|
486
|
+
const smali = `.class public Lpl/czak/minimal/MainActivity;
|
|
487
|
+
.super Landroid/app/Activity;
|
|
488
|
+
|
|
489
|
+
# direct methods
|
|
490
|
+
.method private useLambda()Ljava/lang/String;
|
|
491
|
+
.registers 3
|
|
492
|
+
|
|
493
|
+
new-instance v0, Lpl/czak/minimal/MainActivity$$ExternalSyntheticLambda0;
|
|
494
|
+
|
|
495
|
+
.local v0, "supplier":Ljava/util/function/Supplier;, "Ljava/util/function/Supplier<Ljava/lang/String;>;"
|
|
496
|
+
|
|
497
|
+
return-object v0
|
|
498
|
+
.end method
|
|
499
|
+
`;
|
|
500
|
+
|
|
501
|
+
const actual = await runParser(smaliParser, smali, stringParserInputCompanion, {
|
|
502
|
+
errorJoinMode: 'all',
|
|
503
|
+
});
|
|
504
|
+
|
|
505
|
+
t.truthy(actual);
|
|
506
|
+
t.is(actual.classData?.directMethods.length, 1);
|
|
507
|
+
});
|
|
@@ -252,11 +252,11 @@ Generated by [AVA](https://avajs.dev).
|
|
|
252
252
|
],
|
|
253
253
|
},
|
|
254
254
|
{
|
|
255
|
-
branchOffset: 10,
|
|
256
255
|
operation: 'packed-switch',
|
|
257
256
|
registers: [
|
|
258
257
|
0,
|
|
259
258
|
],
|
|
259
|
+
targetInstructionIndex: 6,
|
|
260
260
|
},
|
|
261
261
|
{
|
|
262
262
|
field: {
|
|
@@ -300,10 +300,10 @@ Generated by [AVA](https://avajs.dev).
|
|
|
300
300
|
],
|
|
301
301
|
},
|
|
302
302
|
{
|
|
303
|
-
branchOffsets: [
|
|
304
|
-
3,
|
|
305
|
-
],
|
|
306
303
|
operation: 'packed-switch-payload',
|
|
304
|
+
targetInstructionIndices: [
|
|
305
|
+
2,
|
|
306
|
+
],
|
|
307
307
|
value: 0,
|
|
308
308
|
},
|
|
309
309
|
],
|
|
@@ -718,11 +718,11 @@ Generated by [AVA](https://avajs.dev).
|
|
|
718
718
|
value: 2130903347,
|
|
719
719
|
},
|
|
720
720
|
{
|
|
721
|
-
branchOffset: 17,
|
|
722
721
|
operation: 'if-nez',
|
|
723
722
|
registers: [
|
|
724
723
|
6,
|
|
725
724
|
],
|
|
725
|
+
targetInstructionIndex: 10,
|
|
726
726
|
},
|
|
727
727
|
{
|
|
728
728
|
operation: 'new-instance',
|
|
@@ -802,8 +802,8 @@ Generated by [AVA](https://avajs.dev).
|
|
|
802
802
|
],
|
|
803
803
|
},
|
|
804
804
|
{
|
|
805
|
-
branchOffset: 2,
|
|
806
805
|
operation: 'goto',
|
|
806
|
+
targetInstructionIndex: 11,
|
|
807
807
|
},
|
|
808
808
|
{
|
|
809
809
|
operation: 'move',
|
|
@@ -905,11 +905,11 @@ Generated by [AVA](https://avajs.dev).
|
|
|
905
905
|
],
|
|
906
906
|
},
|
|
907
907
|
{
|
|
908
|
-
branchOffset: 16,
|
|
909
908
|
operation: 'if-nez',
|
|
910
909
|
registers: [
|
|
911
910
|
6,
|
|
912
911
|
],
|
|
912
|
+
targetInstructionIndex: 26,
|
|
913
913
|
},
|
|
914
914
|
{
|
|
915
915
|
operation: 'new-instance',
|
|
@@ -1474,11 +1474,11 @@ Generated by [AVA](https://avajs.dev).
|
|
|
1474
1474
|
],
|
|
1475
1475
|
},
|
|
1476
1476
|
{
|
|
1477
|
-
branchOffset: 19,
|
|
1478
1477
|
operation: 'if-nez',
|
|
1479
1478
|
registers: [
|
|
1480
1479
|
0,
|
|
1481
1480
|
],
|
|
1481
|
+
targetInstructionIndex: 10,
|
|
1482
1482
|
},
|
|
1483
1483
|
{
|
|
1484
1484
|
field: {
|
|
@@ -3423,11 +3423,11 @@ Generated by [AVA](https://avajs.dev).
|
|
|
3423
3423
|
],
|
|
3424
3424
|
},
|
|
3425
3425
|
{
|
|
3426
|
-
branchOffset: 11,
|
|
3427
3426
|
operation: 'if-nez',
|
|
3428
3427
|
registers: [
|
|
3429
3428
|
0,
|
|
3430
3429
|
],
|
|
3430
|
+
targetInstructionIndex: 10,
|
|
3431
3431
|
},
|
|
3432
3432
|
{
|
|
3433
3433
|
method: {
|
|
@@ -3456,15 +3456,15 @@ Generated by [AVA](https://avajs.dev).
|
|
|
3456
3456
|
],
|
|
3457
3457
|
},
|
|
3458
3458
|
{
|
|
3459
|
-
branchOffset: 3,
|
|
3460
3459
|
operation: 'if-eqz',
|
|
3461
3460
|
registers: [
|
|
3462
3461
|
2,
|
|
3463
3462
|
],
|
|
3463
|
+
targetInstructionIndex: 8,
|
|
3464
3464
|
},
|
|
3465
3465
|
{
|
|
3466
|
-
branchOffset: 3,
|
|
3467
3466
|
operation: 'goto',
|
|
3467
|
+
targetInstructionIndex: 10,
|
|
3468
3468
|
},
|
|
3469
3469
|
{
|
|
3470
3470
|
operation: 'const/4',
|
|
@@ -3474,8 +3474,8 @@ Generated by [AVA](https://avajs.dev).
|
|
|
3474
3474
|
value: 0,
|
|
3475
3475
|
},
|
|
3476
3476
|
{
|
|
3477
|
-
branchOffset: 2,
|
|
3478
3477
|
operation: 'goto',
|
|
3478
|
+
targetInstructionIndex: 11,
|
|
3479
3479
|
},
|
|
3480
3480
|
{
|
|
3481
3481
|
operation: 'const/4',
|
|
Binary file
|