objdiff-wasm 3.1.1 → 3.2.1

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.
@@ -28,6 +28,32 @@ export interface SymbolFlags {
28
28
  sizeInferred?: boolean,
29
29
  ignored?: boolean,
30
30
  }
31
+ export interface DiffResult {
32
+ left?: ObjectDiff,
33
+ right?: ObjectDiff,
34
+ }
35
+ /**
36
+ * # Variants
37
+ *
38
+ * ## `"target"`
39
+ *
40
+ * ## `"base"`
41
+ */
42
+ export type DiffSide = 'target' | 'base';
43
+ /**
44
+ * # Variants
45
+ *
46
+ * ## `"unknown"`
47
+ *
48
+ * ## `"code"`
49
+ *
50
+ * ## `"data"`
51
+ *
52
+ * ## `"bss"`
53
+ *
54
+ * ## `"common"`
55
+ */
56
+ export type SectionKind = 'unknown' | 'code' | 'data' | 'bss' | 'common';
31
57
  export interface SymbolInfo {
32
58
  id: SymbolRef,
33
59
  name: string,
@@ -37,22 +63,11 @@ export interface SymbolInfo {
37
63
  kind: SymbolKind,
38
64
  section?: number,
39
65
  sectionName?: string,
66
+ sectionKind: SectionKind,
40
67
  flags: SymbolFlags,
41
68
  align?: number,
42
69
  virtualAddress?: bigint,
43
70
  }
44
- export interface DiffResult {
45
- left?: ObjectDiff,
46
- right?: ObjectDiff,
47
- }
48
- /**
49
- * # Variants
50
- *
51
- * ## `"target"`
52
- *
53
- * ## `"base"`
54
- */
55
- export type DiffSide = 'target' | 'base';
56
71
 
57
72
  export class DiffConfig {
58
73
  constructor()
@@ -6,11 +6,15 @@ export function symbolContext(diff: ObjectDiff, symbol: SymbolRef): Array<Contex
6
6
  export function symbolHover(diff: ObjectDiff, symbol: SymbolRef): Array<HoverItem>;
7
7
  export function instructionContext(diff: ObjectDiff, symbol: SymbolRef, rowIndex: number, config: DiffConfig): Array<ContextItem>;
8
8
  export function instructionHover(diff: ObjectDiff, symbol: SymbolRef, rowIndex: number, config: DiffConfig): Array<HoverItem>;
9
+ export function displayDataRow(diff: ObjectDiff, symbol: SymbolRef, rowIndex: number): DataDiffRow;
10
+ export function dataContext(diff: ObjectDiff, symbol: SymbolRef, rowIndex: number): Array<ContextItem>;
11
+ export function dataHover(diff: ObjectDiff, symbol: SymbolRef, rowIndex: number): Array<HoverItem>;
9
12
  export type Object = import('./objdiff-core-diff.js').Object;
10
13
  export type ObjectDiff = import('./objdiff-core-diff.js').ObjectDiff;
11
14
  export type DiffConfig = import('./objdiff-core-diff.js').DiffConfig;
12
15
  export type SymbolInfo = import('./objdiff-core-diff.js').SymbolInfo;
13
16
  export type SymbolRef = import('./objdiff-core-diff.js').SymbolRef;
17
+ export type SectionKind = import('./objdiff-core-diff.js').SectionKind;
14
18
  export interface DisplayConfig {
15
19
  showHiddenSymbols: boolean,
16
20
  showMappedSymbols: boolean,
@@ -26,6 +30,7 @@ export interface SectionDisplay {
26
30
  size: bigint,
27
31
  matchPercent?: number,
28
32
  symbols: Uint32Array,
33
+ kind: SectionKind,
29
34
  }
30
35
  export interface SymbolDisplay {
31
36
  info: SymbolInfo,
@@ -197,3 +202,30 @@ export interface InstructionDiffRow {
197
202
  segments: Array<DiffTextSegment>,
198
203
  diffKind: InstructionDiffKind,
199
204
  }
205
+ /**
206
+ * # Variants
207
+ *
208
+ * ## `"none"`
209
+ *
210
+ * ## `"replace"`
211
+ *
212
+ * ## `"delete"`
213
+ *
214
+ * ## `"insert"`
215
+ */
216
+ export type DataDiffKind = 'none' | 'replace' | 'delete' | 'insert';
217
+ export interface DataDiff {
218
+ data: Uint8Array,
219
+ size: number,
220
+ kind: DataDiffKind,
221
+ }
222
+ export interface DataRelocationDiff {
223
+ address: bigint,
224
+ size: number,
225
+ kind: DataDiffKind,
226
+ }
227
+ export interface DataDiffRow {
228
+ address: bigint,
229
+ segments: Array<DataDiff>,
230
+ relocations: Array<DataRelocationDiff>,
231
+ }
Binary file
package/dist/objdiff.js CHANGED
@@ -119,6 +119,7 @@ let postReturn5;
119
119
  let postReturn6;
120
120
  let postReturn7;
121
121
  let postReturn8;
122
+ let postReturn9;
122
123
  const handleTable0 = [
123
124
  T_FLAG,
124
125
  0
@@ -395,10 +396,10 @@ ObjectDiff.prototype.findSymbol = function(arg1, arg2) {
395
396
  variant4_2 = len3;
396
397
  }
397
398
  const ret = diffMethodObjectDiffFindSymbol(handle0, ptr2, len2, variant4_0, variant4_1, variant4_2);
398
- let variant15;
399
+ let variant16;
399
400
  switch(dataView(memory0).getUint8(ret + 0, true)){
400
401
  case 0:
401
- variant15 = void 0;
402
+ variant16 = void 0;
402
403
  break;
403
404
  case 1:
404
405
  {
@@ -461,40 +462,60 @@ ObjectDiff.prototype.findSymbol = function(arg1, arg2) {
461
462
  default:
462
463
  throw new TypeError('invalid variant discriminant for option');
463
464
  }
464
- if ((4294967040 & dataView(memory0).getUint8(ret + 72, true)) !== 0) throw new TypeError('flags have extraneous bits set');
465
- var flags12 = {
466
- global: Boolean(1 & dataView(memory0).getUint8(ret + 72, true)),
467
- local: Boolean(2 & dataView(memory0).getUint8(ret + 72, true)),
468
- weak: Boolean(4 & dataView(memory0).getUint8(ret + 72, true)),
469
- common: Boolean(8 & dataView(memory0).getUint8(ret + 72, true)),
470
- hidden: Boolean(16 & dataView(memory0).getUint8(ret + 72, true)),
471
- hasExtra: Boolean(32 & dataView(memory0).getUint8(ret + 72, true)),
472
- sizeInferred: Boolean(64 & dataView(memory0).getUint8(ret + 72, true)),
473
- ignored: Boolean(128 & dataView(memory0).getUint8(ret + 72, true))
465
+ let enum12;
466
+ switch(dataView(memory0).getUint8(ret + 72, true)){
467
+ case 0:
468
+ enum12 = 'unknown';
469
+ break;
470
+ case 1:
471
+ enum12 = 'code';
472
+ break;
473
+ case 2:
474
+ enum12 = 'data';
475
+ break;
476
+ case 3:
477
+ enum12 = 'bss';
478
+ break;
479
+ case 4:
480
+ enum12 = 'common';
481
+ break;
482
+ default:
483
+ throw new TypeError('invalid discriminant specified for SectionKind');
484
+ }
485
+ if ((4294967040 & dataView(memory0).getUint8(ret + 73, true)) !== 0) throw new TypeError('flags have extraneous bits set');
486
+ var flags13 = {
487
+ global: Boolean(1 & dataView(memory0).getUint8(ret + 73, true)),
488
+ local: Boolean(2 & dataView(memory0).getUint8(ret + 73, true)),
489
+ weak: Boolean(4 & dataView(memory0).getUint8(ret + 73, true)),
490
+ common: Boolean(8 & dataView(memory0).getUint8(ret + 73, true)),
491
+ hidden: Boolean(16 & dataView(memory0).getUint8(ret + 73, true)),
492
+ hasExtra: Boolean(32 & dataView(memory0).getUint8(ret + 73, true)),
493
+ sizeInferred: Boolean(64 & dataView(memory0).getUint8(ret + 73, true)),
494
+ ignored: Boolean(128 & dataView(memory0).getUint8(ret + 73, true))
474
495
  };
475
- let variant13;
496
+ let variant14;
476
497
  switch(dataView(memory0).getUint8(ret + 76, true)){
477
498
  case 0:
478
- variant13 = void 0;
499
+ variant14 = void 0;
479
500
  break;
480
501
  case 1:
481
- variant13 = dataView(memory0).getInt32(ret + 80, true) >>> 0;
502
+ variant14 = dataView(memory0).getInt32(ret + 80, true) >>> 0;
482
503
  break;
483
504
  default:
484
505
  throw new TypeError('invalid variant discriminant for option');
485
506
  }
486
- let variant14;
507
+ let variant15;
487
508
  switch(dataView(memory0).getUint8(ret + 88, true)){
488
509
  case 0:
489
- variant14 = void 0;
510
+ variant15 = void 0;
490
511
  break;
491
512
  case 1:
492
- variant14 = BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 96, true));
513
+ variant15 = BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 96, true));
493
514
  break;
494
515
  default:
495
516
  throw new TypeError('invalid variant discriminant for option');
496
517
  }
497
- variant15 = {
518
+ variant16 = {
498
519
  id: dataView(memory0).getInt32(ret + 8, true) >>> 0,
499
520
  name: result5,
500
521
  demangledName: variant7,
@@ -503,16 +524,17 @@ ObjectDiff.prototype.findSymbol = function(arg1, arg2) {
503
524
  kind: enum8,
504
525
  section: variant9,
505
526
  sectionName: variant11,
506
- flags: flags12,
507
- align: variant13,
508
- virtualAddress: variant14
527
+ sectionKind: enum12,
528
+ flags: flags13,
529
+ align: variant14,
530
+ virtualAddress: variant15
509
531
  };
510
532
  break;
511
533
  }
512
534
  default:
513
535
  throw new TypeError('invalid variant discriminant for option');
514
536
  }
515
- const retVal = variant15;
537
+ const retVal = variant16;
516
538
  postReturn3(ret);
517
539
  return retVal;
518
540
  };
@@ -522,10 +544,10 @@ ObjectDiff.prototype.getSymbol = function(arg1) {
522
544
  if (!handle1 || (handleTable0[(handle1 << 1) + 1] & T_FLAG) === 0) throw new TypeError('Resource error: Not a valid "ObjectDiff" resource.');
523
545
  var handle0 = handleTable0[(handle1 << 1) + 1] & ~T_FLAG;
524
546
  const ret = diffMethodObjectDiffGetSymbol(handle0, toUint32(arg1));
525
- let variant12;
547
+ let variant13;
526
548
  switch(dataView(memory0).getUint8(ret + 0, true)){
527
549
  case 0:
528
- variant12 = void 0;
550
+ variant13 = void 0;
529
551
  break;
530
552
  case 1:
531
553
  {
@@ -588,40 +610,60 @@ ObjectDiff.prototype.getSymbol = function(arg1) {
588
610
  default:
589
611
  throw new TypeError('invalid variant discriminant for option');
590
612
  }
591
- if ((4294967040 & dataView(memory0).getUint8(ret + 72, true)) !== 0) throw new TypeError('flags have extraneous bits set');
592
- var flags9 = {
593
- global: Boolean(1 & dataView(memory0).getUint8(ret + 72, true)),
594
- local: Boolean(2 & dataView(memory0).getUint8(ret + 72, true)),
595
- weak: Boolean(4 & dataView(memory0).getUint8(ret + 72, true)),
596
- common: Boolean(8 & dataView(memory0).getUint8(ret + 72, true)),
597
- hidden: Boolean(16 & dataView(memory0).getUint8(ret + 72, true)),
598
- hasExtra: Boolean(32 & dataView(memory0).getUint8(ret + 72, true)),
599
- sizeInferred: Boolean(64 & dataView(memory0).getUint8(ret + 72, true)),
600
- ignored: Boolean(128 & dataView(memory0).getUint8(ret + 72, true))
613
+ let enum9;
614
+ switch(dataView(memory0).getUint8(ret + 72, true)){
615
+ case 0:
616
+ enum9 = 'unknown';
617
+ break;
618
+ case 1:
619
+ enum9 = 'code';
620
+ break;
621
+ case 2:
622
+ enum9 = 'data';
623
+ break;
624
+ case 3:
625
+ enum9 = 'bss';
626
+ break;
627
+ case 4:
628
+ enum9 = 'common';
629
+ break;
630
+ default:
631
+ throw new TypeError('invalid discriminant specified for SectionKind');
632
+ }
633
+ if ((4294967040 & dataView(memory0).getUint8(ret + 73, true)) !== 0) throw new TypeError('flags have extraneous bits set');
634
+ var flags10 = {
635
+ global: Boolean(1 & dataView(memory0).getUint8(ret + 73, true)),
636
+ local: Boolean(2 & dataView(memory0).getUint8(ret + 73, true)),
637
+ weak: Boolean(4 & dataView(memory0).getUint8(ret + 73, true)),
638
+ common: Boolean(8 & dataView(memory0).getUint8(ret + 73, true)),
639
+ hidden: Boolean(16 & dataView(memory0).getUint8(ret + 73, true)),
640
+ hasExtra: Boolean(32 & dataView(memory0).getUint8(ret + 73, true)),
641
+ sizeInferred: Boolean(64 & dataView(memory0).getUint8(ret + 73, true)),
642
+ ignored: Boolean(128 & dataView(memory0).getUint8(ret + 73, true))
601
643
  };
602
- let variant10;
644
+ let variant11;
603
645
  switch(dataView(memory0).getUint8(ret + 76, true)){
604
646
  case 0:
605
- variant10 = void 0;
647
+ variant11 = void 0;
606
648
  break;
607
649
  case 1:
608
- variant10 = dataView(memory0).getInt32(ret + 80, true) >>> 0;
650
+ variant11 = dataView(memory0).getInt32(ret + 80, true) >>> 0;
609
651
  break;
610
652
  default:
611
653
  throw new TypeError('invalid variant discriminant for option');
612
654
  }
613
- let variant11;
655
+ let variant12;
614
656
  switch(dataView(memory0).getUint8(ret + 88, true)){
615
657
  case 0:
616
- variant11 = void 0;
658
+ variant12 = void 0;
617
659
  break;
618
660
  case 1:
619
- variant11 = BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 96, true));
661
+ variant12 = BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 96, true));
620
662
  break;
621
663
  default:
622
664
  throw new TypeError('invalid variant discriminant for option');
623
665
  }
624
- variant12 = {
666
+ variant13 = {
625
667
  id: dataView(memory0).getInt32(ret + 8, true) >>> 0,
626
668
  name: result2,
627
669
  demangledName: variant4,
@@ -630,16 +672,17 @@ ObjectDiff.prototype.getSymbol = function(arg1) {
630
672
  kind: enum5,
631
673
  section: variant6,
632
674
  sectionName: variant8,
633
- flags: flags9,
634
- align: variant10,
635
- virtualAddress: variant11
675
+ sectionKind: enum9,
676
+ flags: flags10,
677
+ align: variant11,
678
+ virtualAddress: variant12
636
679
  };
637
680
  break;
638
681
  }
639
682
  default:
640
683
  throw new TypeError('invalid variant discriminant for option');
641
684
  }
642
- const retVal = variant12;
685
+ const retVal = variant13;
643
686
  postReturn3(ret);
644
687
  return retVal;
645
688
  };
@@ -847,11 +890,11 @@ function displaySections(arg0, arg1, arg2) {
847
890
  }
848
891
  var { showHiddenSymbols: v6_0, showMappedSymbols: v6_1, reverseFnOrder: v6_2 } = arg2;
849
892
  const ret = displayDisplaySections(handle0, variant4_0, variant4_1, variant4_2, variant5_0, variant5_1, v6_0 ? 1 : 0, v6_1 ? 1 : 0, v6_2 ? 1 : 0);
850
- var len11 = dataView(memory0).getInt32(ret + 4, true);
851
- var base11 = dataView(memory0).getInt32(ret + 0, true);
852
- var result11 = [];
853
- for(let i = 0; i < len11; i++){
854
- const base = base11 + 40 * i;
893
+ var len12 = dataView(memory0).getInt32(ret + 4, true);
894
+ var base12 = dataView(memory0).getInt32(ret + 0, true);
895
+ var result12 = [];
896
+ for(let i = 0; i < len12; i++){
897
+ const base = base12 + 48 * i;
855
898
  var ptr7 = dataView(memory0).getInt32(base + 0, true);
856
899
  var len7 = dataView(memory0).getInt32(base + 4, true);
857
900
  var result7 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr7, len7));
@@ -872,15 +915,36 @@ function displaySections(arg0, arg1, arg2) {
872
915
  var ptr10 = dataView(memory0).getInt32(base + 32, true);
873
916
  var len10 = dataView(memory0).getInt32(base + 36, true);
874
917
  var result10 = new Uint32Array(memory0.buffer.slice(ptr10, ptr10 + 4 * len10));
875
- result11.push({
918
+ let enum11;
919
+ switch(dataView(memory0).getUint8(base + 40, true)){
920
+ case 0:
921
+ enum11 = 'unknown';
922
+ break;
923
+ case 1:
924
+ enum11 = 'code';
925
+ break;
926
+ case 2:
927
+ enum11 = 'data';
928
+ break;
929
+ case 3:
930
+ enum11 = 'bss';
931
+ break;
932
+ case 4:
933
+ enum11 = 'common';
934
+ break;
935
+ default:
936
+ throw new TypeError('invalid discriminant specified for SectionKind');
937
+ }
938
+ result12.push({
876
939
  id: result7,
877
940
  name: result8,
878
941
  size: BigInt.asUintN(64, dataView(memory0).getBigInt64(base + 16, true)),
879
942
  matchPercent: variant9,
880
- symbols: result10
943
+ symbols: result10,
944
+ kind: enum11
881
945
  });
882
946
  }
883
- const retVal = result11;
947
+ const retVal = result12;
884
948
  postReturn4(ret);
885
949
  return retVal;
886
950
  }
@@ -949,68 +1013,88 @@ function displaySymbol(arg0, arg1) {
949
1013
  default:
950
1014
  throw new TypeError('invalid variant discriminant for option');
951
1015
  }
952
- if ((4294967040 & dataView(memory0).getUint8(ret + 64, true)) !== 0) throw new TypeError('flags have extraneous bits set');
953
- var flags9 = {
954
- global: Boolean(1 & dataView(memory0).getUint8(ret + 64, true)),
955
- local: Boolean(2 & dataView(memory0).getUint8(ret + 64, true)),
956
- weak: Boolean(4 & dataView(memory0).getUint8(ret + 64, true)),
957
- common: Boolean(8 & dataView(memory0).getUint8(ret + 64, true)),
958
- hidden: Boolean(16 & dataView(memory0).getUint8(ret + 64, true)),
959
- hasExtra: Boolean(32 & dataView(memory0).getUint8(ret + 64, true)),
960
- sizeInferred: Boolean(64 & dataView(memory0).getUint8(ret + 64, true)),
961
- ignored: Boolean(128 & dataView(memory0).getUint8(ret + 64, true))
962
- };
963
- let variant10;
964
- switch(dataView(memory0).getUint8(ret + 68, true)){
1016
+ let enum9;
1017
+ switch(dataView(memory0).getUint8(ret + 64, true)){
965
1018
  case 0:
966
- variant10 = void 0;
1019
+ enum9 = 'unknown';
967
1020
  break;
968
1021
  case 1:
969
- variant10 = dataView(memory0).getInt32(ret + 72, true) >>> 0;
1022
+ enum9 = 'code';
1023
+ break;
1024
+ case 2:
1025
+ enum9 = 'data';
1026
+ break;
1027
+ case 3:
1028
+ enum9 = 'bss';
1029
+ break;
1030
+ case 4:
1031
+ enum9 = 'common';
970
1032
  break;
971
1033
  default:
972
- throw new TypeError('invalid variant discriminant for option');
1034
+ throw new TypeError('invalid discriminant specified for SectionKind');
973
1035
  }
1036
+ if ((4294967040 & dataView(memory0).getUint8(ret + 65, true)) !== 0) throw new TypeError('flags have extraneous bits set');
1037
+ var flags10 = {
1038
+ global: Boolean(1 & dataView(memory0).getUint8(ret + 65, true)),
1039
+ local: Boolean(2 & dataView(memory0).getUint8(ret + 65, true)),
1040
+ weak: Boolean(4 & dataView(memory0).getUint8(ret + 65, true)),
1041
+ common: Boolean(8 & dataView(memory0).getUint8(ret + 65, true)),
1042
+ hidden: Boolean(16 & dataView(memory0).getUint8(ret + 65, true)),
1043
+ hasExtra: Boolean(32 & dataView(memory0).getUint8(ret + 65, true)),
1044
+ sizeInferred: Boolean(64 & dataView(memory0).getUint8(ret + 65, true)),
1045
+ ignored: Boolean(128 & dataView(memory0).getUint8(ret + 65, true))
1046
+ };
974
1047
  let variant11;
975
- switch(dataView(memory0).getUint8(ret + 80, true)){
1048
+ switch(dataView(memory0).getUint8(ret + 68, true)){
976
1049
  case 0:
977
1050
  variant11 = void 0;
978
1051
  break;
979
1052
  case 1:
980
- variant11 = BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 88, true));
1053
+ variant11 = dataView(memory0).getInt32(ret + 72, true) >>> 0;
981
1054
  break;
982
1055
  default:
983
1056
  throw new TypeError('invalid variant discriminant for option');
984
1057
  }
985
1058
  let variant12;
986
- switch(dataView(memory0).getUint8(ret + 96, true)){
1059
+ switch(dataView(memory0).getUint8(ret + 80, true)){
987
1060
  case 0:
988
1061
  variant12 = void 0;
989
1062
  break;
990
1063
  case 1:
991
- variant12 = dataView(memory0).getInt32(ret + 100, true) >>> 0;
1064
+ variant12 = BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 88, true));
992
1065
  break;
993
1066
  default:
994
1067
  throw new TypeError('invalid variant discriminant for option');
995
1068
  }
996
1069
  let variant13;
997
- switch(dataView(memory0).getUint8(ret + 104, true)){
1070
+ switch(dataView(memory0).getUint8(ret + 96, true)){
998
1071
  case 0:
999
1072
  variant13 = void 0;
1000
1073
  break;
1001
1074
  case 1:
1002
- variant13 = dataView(memory0).getFloat32(ret + 108, true);
1075
+ variant13 = dataView(memory0).getInt32(ret + 100, true) >>> 0;
1003
1076
  break;
1004
1077
  default:
1005
1078
  throw new TypeError('invalid variant discriminant for option');
1006
1079
  }
1007
1080
  let variant14;
1008
- switch(dataView(memory0).getUint8(ret + 112, true)){
1081
+ switch(dataView(memory0).getUint8(ret + 104, true)){
1009
1082
  case 0:
1010
1083
  variant14 = void 0;
1011
1084
  break;
1012
1085
  case 1:
1013
- variant14 = [
1086
+ variant14 = dataView(memory0).getFloat32(ret + 108, true);
1087
+ break;
1088
+ default:
1089
+ throw new TypeError('invalid variant discriminant for option');
1090
+ }
1091
+ let variant15;
1092
+ switch(dataView(memory0).getUint8(ret + 112, true)){
1093
+ case 0:
1094
+ variant15 = void 0;
1095
+ break;
1096
+ case 1:
1097
+ variant15 = [
1014
1098
  BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 120, true)),
1015
1099
  BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 128, true))
1016
1100
  ];
@@ -1028,13 +1112,14 @@ function displaySymbol(arg0, arg1) {
1028
1112
  kind: enum5,
1029
1113
  section: variant6,
1030
1114
  sectionName: variant8,
1031
- flags: flags9,
1032
- align: variant10,
1033
- virtualAddress: variant11
1115
+ sectionKind: enum9,
1116
+ flags: flags10,
1117
+ align: variant11,
1118
+ virtualAddress: variant12
1034
1119
  },
1035
- targetSymbol: variant12,
1036
- matchPercent: variant13,
1037
- diffScore: variant14,
1120
+ targetSymbol: variant13,
1121
+ matchPercent: variant14,
1122
+ diffScore: variant15,
1038
1123
  rowCount: dataView(memory0).getInt32(ret + 136, true) >>> 0
1039
1124
  };
1040
1125
  postReturn5(ret);
@@ -1544,6 +1629,225 @@ function instructionHover(arg0, arg1, arg2, arg3) {
1544
1629
  postReturn8(ret);
1545
1630
  return retVal;
1546
1631
  }
1632
+ let displayDisplayDataRow;
1633
+ function displayDataRow(arg0, arg1, arg2) {
1634
+ var handle1 = arg0[symbolRscHandle];
1635
+ if (!handle1 || (handleTable0[(handle1 << 1) + 1] & T_FLAG) === 0) throw new TypeError('Resource error: Not a valid "ObjectDiff" resource.');
1636
+ var handle0 = handleTable0[(handle1 << 1) + 1] & ~T_FLAG;
1637
+ const ret = displayDisplayDataRow(handle0, toUint32(arg1), toUint32(arg2));
1638
+ var len4 = dataView(memory0).getInt32(ret + 12, true);
1639
+ var base4 = dataView(memory0).getInt32(ret + 8, true);
1640
+ var result4 = [];
1641
+ for(let i = 0; i < len4; i++){
1642
+ const base = base4 + 16 * i;
1643
+ var ptr2 = dataView(memory0).getInt32(base + 0, true);
1644
+ var len2 = dataView(memory0).getInt32(base + 4, true);
1645
+ var result2 = new Uint8Array(memory0.buffer.slice(ptr2, ptr2 + +len2));
1646
+ let enum3;
1647
+ switch(dataView(memory0).getUint8(base + 12, true)){
1648
+ case 0:
1649
+ enum3 = 'none';
1650
+ break;
1651
+ case 1:
1652
+ enum3 = 'replace';
1653
+ break;
1654
+ case 2:
1655
+ enum3 = 'delete';
1656
+ break;
1657
+ case 3:
1658
+ enum3 = 'insert';
1659
+ break;
1660
+ default:
1661
+ throw new TypeError('invalid discriminant specified for DataDiffKind');
1662
+ }
1663
+ result4.push({
1664
+ data: result2,
1665
+ size: dataView(memory0).getInt32(base + 8, true) >>> 0,
1666
+ kind: enum3
1667
+ });
1668
+ }
1669
+ var len6 = dataView(memory0).getInt32(ret + 20, true);
1670
+ var base6 = dataView(memory0).getInt32(ret + 16, true);
1671
+ var result6 = [];
1672
+ for(let i = 0; i < len6; i++){
1673
+ const base = base6 + 16 * i;
1674
+ let enum5;
1675
+ switch(dataView(memory0).getUint8(base + 12, true)){
1676
+ case 0:
1677
+ enum5 = 'none';
1678
+ break;
1679
+ case 1:
1680
+ enum5 = 'replace';
1681
+ break;
1682
+ case 2:
1683
+ enum5 = 'delete';
1684
+ break;
1685
+ case 3:
1686
+ enum5 = 'insert';
1687
+ break;
1688
+ default:
1689
+ throw new TypeError('invalid discriminant specified for DataDiffKind');
1690
+ }
1691
+ result6.push({
1692
+ address: BigInt.asUintN(64, dataView(memory0).getBigInt64(base + 0, true)),
1693
+ size: dataView(memory0).getInt32(base + 8, true) >>> 0,
1694
+ kind: enum5
1695
+ });
1696
+ }
1697
+ const retVal = {
1698
+ address: BigInt.asUintN(64, dataView(memory0).getBigInt64(ret + 0, true)),
1699
+ segments: result4,
1700
+ relocations: result6
1701
+ };
1702
+ postReturn9(ret);
1703
+ return retVal;
1704
+ }
1705
+ let displayDataContext;
1706
+ function dataContext(arg0, arg1, arg2) {
1707
+ var handle1 = arg0[symbolRscHandle];
1708
+ if (!handle1 || (handleTable0[(handle1 << 1) + 1] & T_FLAG) === 0) throw new TypeError('Resource error: Not a valid "ObjectDiff" resource.');
1709
+ var handle0 = handleTable0[(handle1 << 1) + 1] & ~T_FLAG;
1710
+ const ret = displayDataContext(handle0, toUint32(arg1), toUint32(arg2));
1711
+ var len8 = dataView(memory0).getInt32(ret + 4, true);
1712
+ var base8 = dataView(memory0).getInt32(ret + 0, true);
1713
+ var result8 = [];
1714
+ for(let i = 0; i < len8; i++){
1715
+ const base = base8 + 24 * i;
1716
+ let variant7;
1717
+ switch(dataView(memory0).getUint8(base + 0, true)){
1718
+ case 0:
1719
+ {
1720
+ var ptr2 = dataView(memory0).getInt32(base + 4, true);
1721
+ var len2 = dataView(memory0).getInt32(base + 8, true);
1722
+ var result2 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr2, len2));
1723
+ let variant4;
1724
+ switch(dataView(memory0).getUint8(base + 12, true)){
1725
+ case 0:
1726
+ variant4 = void 0;
1727
+ break;
1728
+ case 1:
1729
+ var ptr3 = dataView(memory0).getInt32(base + 16, true);
1730
+ var len3 = dataView(memory0).getInt32(base + 20, true);
1731
+ var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3));
1732
+ variant4 = result3;
1733
+ break;
1734
+ default:
1735
+ throw new TypeError('invalid variant discriminant for option');
1736
+ }
1737
+ variant7 = {
1738
+ tag: 'copy',
1739
+ val: {
1740
+ value: result2,
1741
+ label: variant4
1742
+ }
1743
+ };
1744
+ break;
1745
+ }
1746
+ case 1:
1747
+ {
1748
+ var ptr5 = dataView(memory0).getInt32(base + 4, true);
1749
+ var len5 = dataView(memory0).getInt32(base + 8, true);
1750
+ var result5 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr5, len5));
1751
+ let enum6;
1752
+ switch(dataView(memory0).getUint8(base + 16, true)){
1753
+ case 0:
1754
+ enum6 = 'normal';
1755
+ break;
1756
+ case 1:
1757
+ enum6 = 'extab';
1758
+ break;
1759
+ default:
1760
+ throw new TypeError('invalid discriminant specified for SymbolNavigationKind');
1761
+ }
1762
+ variant7 = {
1763
+ tag: 'navigate',
1764
+ val: {
1765
+ label: result5,
1766
+ symbol: dataView(memory0).getInt32(base + 12, true) >>> 0,
1767
+ kind: enum6
1768
+ }
1769
+ };
1770
+ break;
1771
+ }
1772
+ case 2:
1773
+ variant7 = {
1774
+ tag: 'separator'
1775
+ };
1776
+ break;
1777
+ default:
1778
+ throw new TypeError('invalid variant discriminant for ContextItem');
1779
+ }
1780
+ result8.push(variant7);
1781
+ }
1782
+ const retVal = result8;
1783
+ postReturn7(ret);
1784
+ return retVal;
1785
+ }
1786
+ let displayDataHover;
1787
+ function dataHover(arg0, arg1, arg2) {
1788
+ var handle1 = arg0[symbolRscHandle];
1789
+ if (!handle1 || (handleTable0[(handle1 << 1) + 1] & T_FLAG) === 0) throw new TypeError('Resource error: Not a valid "ObjectDiff" resource.');
1790
+ var handle0 = handleTable0[(handle1 << 1) + 1] & ~T_FLAG;
1791
+ const ret = displayDataHover(handle0, toUint32(arg1), toUint32(arg2));
1792
+ var len6 = dataView(memory0).getInt32(ret + 4, true);
1793
+ var base6 = dataView(memory0).getInt32(ret + 0, true);
1794
+ var result6 = [];
1795
+ for(let i = 0; i < len6; i++){
1796
+ const base = base6 + 24 * i;
1797
+ let variant5;
1798
+ switch(dataView(memory0).getUint8(base + 0, true)){
1799
+ case 0:
1800
+ {
1801
+ var ptr2 = dataView(memory0).getInt32(base + 4, true);
1802
+ var len2 = dataView(memory0).getInt32(base + 8, true);
1803
+ var result2 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr2, len2));
1804
+ var ptr3 = dataView(memory0).getInt32(base + 12, true);
1805
+ var len3 = dataView(memory0).getInt32(base + 16, true);
1806
+ var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3));
1807
+ let enum4;
1808
+ switch(dataView(memory0).getUint8(base + 20, true)){
1809
+ case 0:
1810
+ enum4 = 'normal';
1811
+ break;
1812
+ case 1:
1813
+ enum4 = 'emphasized';
1814
+ break;
1815
+ case 2:
1816
+ enum4 = 'special';
1817
+ break;
1818
+ case 3:
1819
+ enum4 = 'delete';
1820
+ break;
1821
+ case 4:
1822
+ enum4 = 'insert';
1823
+ break;
1824
+ default:
1825
+ throw new TypeError('invalid discriminant specified for HoverItemColor');
1826
+ }
1827
+ variant5 = {
1828
+ tag: 'text',
1829
+ val: {
1830
+ label: result2,
1831
+ value: result3,
1832
+ color: enum4
1833
+ }
1834
+ };
1835
+ break;
1836
+ }
1837
+ case 1:
1838
+ variant5 = {
1839
+ tag: 'separator'
1840
+ };
1841
+ break;
1842
+ default:
1843
+ throw new TypeError('invalid variant discriminant for HoverItem');
1844
+ }
1845
+ result6.push(variant5);
1846
+ }
1847
+ const retVal = result6;
1848
+ postReturn8(ret);
1849
+ return retVal;
1850
+ }
1547
1851
  const $init = (()=>{
1548
1852
  let gen = function*() {
1549
1853
  const module0 = fetchCompile(new URL('./objdiff.core.wasm', import.meta.url));
@@ -1579,8 +1883,9 @@ const $init = (()=>{
1579
1883
  postReturn4 = exports1['cabi_post_objdiff:core/display#display-sections'];
1580
1884
  postReturn5 = exports1['cabi_post_objdiff:core/display#display-symbol'];
1581
1885
  postReturn6 = exports1['cabi_post_objdiff:core/display#display-instruction-row'];
1582
- postReturn7 = exports1['cabi_post_objdiff:core/display#instruction-context'];
1583
- postReturn8 = exports1['cabi_post_objdiff:core/display#instruction-hover'];
1886
+ postReturn7 = exports1['cabi_post_objdiff:core/display#data-context'];
1887
+ postReturn8 = exports1['cabi_post_objdiff:core/display#data-hover'];
1888
+ postReturn9 = exports1['cabi_post_objdiff:core/display#display-data-row'];
1584
1889
  exports1Init = exports1.init;
1585
1890
  exports1Version = exports1.version;
1586
1891
  diffConstructorDiffConfig = exports1['objdiff:core/diff#[constructor]diff-config'];
@@ -1598,6 +1903,9 @@ const $init = (()=>{
1598
1903
  displaySymbolHover = exports1['objdiff:core/display#symbol-hover'];
1599
1904
  displayInstructionContext = exports1['objdiff:core/display#instruction-context'];
1600
1905
  displayInstructionHover = exports1['objdiff:core/display#instruction-hover'];
1906
+ displayDisplayDataRow = exports1['objdiff:core/display#display-data-row'];
1907
+ displayDataContext = exports1['objdiff:core/display#data-context'];
1908
+ displayDataHover = exports1['objdiff:core/display#data-hover'];
1601
1909
  }();
1602
1910
  let promise, resolve, reject;
1603
1911
  function runNext(value) {
@@ -1627,6 +1935,9 @@ const diff = {
1627
1935
  runDiff: runDiff
1628
1936
  };
1629
1937
  const display = {
1938
+ dataContext: dataContext,
1939
+ dataHover: dataHover,
1940
+ displayDataRow: displayDataRow,
1630
1941
  displayInstructionRow: displayInstructionRow,
1631
1942
  displaySections: displaySections,
1632
1943
  displaySymbol: displaySymbol,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "objdiff-wasm",
3
- "version": "3.1.1",
3
+ "version": "3.2.1",
4
4
  "description": "A local diffing tool for decompilation projects.",
5
5
  "author": {
6
6
  "name": "Luke Street",