objdiff-wasm 3.0.0-beta.9 → 3.0.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.
@@ -25,6 +25,20 @@
25
25
  }
26
26
  ]
27
27
  },
28
+ {
29
+ "id": "analyzeDataFlow",
30
+ "type": "boolean",
31
+ "default": false,
32
+ "name": "(Experimental) Perform data flow analysis",
33
+ "description": "Use data flow analysis to display known information about register contents where possible"
34
+ },
35
+ {
36
+ "id": "showDataFlow",
37
+ "type": "boolean",
38
+ "default": true,
39
+ "name": "Show data flow",
40
+ "description": "Show data flow analysis results in place of register name where present"
41
+ },
28
42
  {
29
43
  "id": "spaceBetweenArgs",
30
44
  "type": "boolean",
@@ -264,7 +278,8 @@
264
278
  "id": "ppc",
265
279
  "name": "PowerPC",
266
280
  "properties": [
267
- "ppc.calculatePoolRelocations"
281
+ "ppc.calculatePoolRelocations",
282
+ "analyzeDataFlow"
268
283
  ]
269
284
  },
270
285
  {
@@ -146,7 +146,7 @@ export interface DiffTextSpacing {
146
146
  export interface DiffTextEol {
147
147
  tag: 'eol',
148
148
  }
149
- export type DiffTextColor = DiffTextColorNormal | DiffTextColorDim | DiffTextColorBright | DiffTextColorReplace | DiffTextColorDelete | DiffTextColorInsert | DiffTextColorRotating;
149
+ export type DiffTextColor = DiffTextColorNormal | DiffTextColorDim | DiffTextColorBright | DiffTextColorReplace | DiffTextColorDataFlow | DiffTextColorDelete | DiffTextColorInsert | DiffTextColorRotating;
150
150
  export interface DiffTextColorNormal {
151
151
  tag: 'normal',
152
152
  }
@@ -159,6 +159,9 @@ export interface DiffTextColorBright {
159
159
  export interface DiffTextColorReplace {
160
160
  tag: 'replace',
161
161
  }
162
+ export interface DiffTextColorDataFlow {
163
+ tag: 'data-flow',
164
+ }
162
165
  export interface DiffTextColorDelete {
163
166
  tag: 'delete',
164
167
  }
Binary file
package/dist/objdiff.js CHANGED
@@ -76,7 +76,7 @@ function utf8Encode(s, realloc, memory) {
76
76
  let exports0;
77
77
  let exports1;
78
78
  let memory0;
79
- function trampoline3(arg0, arg1, arg2, arg3, arg4) {
79
+ function trampoline4(arg0, arg1, arg2, arg3, arg4) {
80
80
  let enum0;
81
81
  switch(arg0){
82
82
  case 0:
@@ -139,6 +139,10 @@ const finalizationRegistry1 = finalizationRegistryCreate((handle)=>{
139
139
  });
140
140
  handleTables[1] = handleTable1;
141
141
  const trampoline1 = rscTableCreateOwn.bind(null, handleTable1);
142
+ function trampoline2(handle) {
143
+ const handleEntry = rscTableRemove(handleTable0, handle);
144
+ if (handleEntry.own) exports0['3'](handleEntry.rep);
145
+ }
142
146
  const handleTable2 = [
143
147
  T_FLAG,
144
148
  0
@@ -148,7 +152,7 @@ const finalizationRegistry2 = finalizationRegistryCreate((handle)=>{
148
152
  exports0['1'](rep);
149
153
  });
150
154
  handleTables[2] = handleTable2;
151
- const trampoline2 = rscTableCreateOwn.bind(null, handleTable2);
155
+ const trampoline3 = rscTableCreateOwn.bind(null, handleTable2);
152
156
  let exports1Init;
153
157
  function init(arg0) {
154
158
  var val0 = arg0;
@@ -1171,15 +1175,20 @@ function displayInstructionRow(arg0, arg1, arg2, arg3) {
1171
1175
  break;
1172
1176
  case 4:
1173
1177
  variant11 = {
1174
- tag: 'delete'
1178
+ tag: 'data-flow'
1175
1179
  };
1176
1180
  break;
1177
1181
  case 5:
1178
1182
  variant11 = {
1179
- tag: 'insert'
1183
+ tag: 'delete'
1180
1184
  };
1181
1185
  break;
1182
1186
  case 6:
1187
+ variant11 = {
1188
+ tag: 'insert'
1189
+ };
1190
+ break;
1191
+ case 7:
1183
1192
  variant11 = {
1184
1193
  tag: 'rotating',
1185
1194
  val: clampGuest(dataView(memory0).getUint8(base + 33, true), 0, 255)
@@ -1525,12 +1534,13 @@ function instructionHover(arg0, arg1, arg2, arg3) {
1525
1534
  const $init = (()=>{
1526
1535
  let gen = function*() {
1527
1536
  const module0 = fetchCompile(new URL('./objdiff.core.wasm', import.meta.url));
1528
- const module1 = base64Compile('AGFzbQEAAAABDQJgAX8AYAV/f39/fwADBQQBAAAABAUBcAEEBAccBQEwAAABMQABATIAAgEzAAMIJGltcG9ydHMBAAoxBBEAIAAgASACIAMgBEEAEQEACwkAIABBAREAAAsJACAAQQIRAAALCQAgAEEDEQAACwAvCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BzAuMjI5LjA');
1529
- const module2 = base64Compile('AGFzbQEAAAABDQJgAX8AYAV/f39/fwACJAUAATAAAQABMQAAAAEyAAAAATMAAAAIJGltcG9ydHMBcAEEBAkKAQBBAAsEAAECAwAvCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BzAuMjI5LjA');
1537
+ const module1 = base64Compile('AGFzbQEAAAABDQJgAX8AYAV/f39/fwADBQQBAAAABAUBcAEEBAccBQEwAAABMQABATIAAgEzAAMIJGltcG9ydHMBAAoxBBEAIAAgASACIAMgBEEAEQEACwkAIABBAREAAAsJACAAQQIRAAALCQAgAEEDEQAACwAvCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BzAuMjM3LjA');
1538
+ const module2 = base64Compile('AGFzbQEAAAABDQJgAX8AYAV/f39/fwACJAUAATAAAQABMQAAAAEyAAAAATMAAAAIJGltcG9ydHMBcAEEBAkKAQBBAAsEAAECAwAvCXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AQ13aXQtY29tcG9uZW50BzAuMjM3LjA');
1530
1539
  ({ exports: exports0 } = yield instantiateCore((yield module1)));
1531
1540
  ({ exports: exports1 } = yield instantiateCore((yield module0), {
1532
1541
  '[export]objdiff:core/diff': {
1533
- '[resource-new]diff-config': trampoline2,
1542
+ '[resource-drop]object-diff': trampoline2,
1543
+ '[resource-new]diff-config': trampoline3,
1534
1544
  '[resource-new]object': trampoline1,
1535
1545
  '[resource-new]object-diff': trampoline0
1536
1546
  },
@@ -1542,7 +1552,7 @@ const $init = (()=>{
1542
1552
  ({ exports: exports2 } = yield instantiateCore((yield module2), {
1543
1553
  '': {
1544
1554
  $imports: exports0.$imports,
1545
- 0: trampoline3,
1555
+ 0: trampoline4,
1546
1556
  1: exports1['objdiff:core/diff#[dtor]diff-config'],
1547
1557
  2: exports1['objdiff:core/diff#[dtor]object'],
1548
1558
  3: exports1['objdiff:core/diff#[dtor]object-diff']
@@ -1556,7 +1566,7 @@ const $init = (()=>{
1556
1566
  postReturn4 = exports1['cabi_post_objdiff:core/display#display-sections'];
1557
1567
  postReturn5 = exports1['cabi_post_objdiff:core/display#display-symbol'];
1558
1568
  postReturn6 = exports1['cabi_post_objdiff:core/display#display-instruction-row'];
1559
- postReturn7 = exports1['cabi_post_objdiff:core/display#symbol-context'];
1569
+ postReturn7 = exports1['cabi_post_objdiff:core/display#instruction-context'];
1560
1570
  postReturn8 = exports1['cabi_post_objdiff:core/display#instruction-hover'];
1561
1571
  exports1Init = exports1.init;
1562
1572
  exports1Version = exports1.version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "objdiff-wasm",
3
- "version": "3.0.0-beta.9",
3
+ "version": "3.0.1",
4
4
  "description": "A local diffing tool for decompilation projects.",
5
5
  "author": {
6
6
  "name": "Luke Street",
@@ -19,8 +19,8 @@
19
19
  "types": "dist/objdiff.d.ts",
20
20
  "scripts": {
21
21
  "build": "npm run build:wasm && npm run build:transpile && npm run build:lib",
22
- "build:wasm": "cargo +nightly -Zbuild-std=panic_abort,core,alloc -Zbuild-std-features=compiler-builtins-mem build --target wasm32-wasip2 --release --no-default-features",
23
- "build:transpile": "jco transpile ../target/wasm32-wasip2/release/objdiff_wasm.wasm --no-nodejs-compat --no-wasi-shim --no-namespaced-exports --map wasi:logging/logging=./wasi-logging.js --optimize -o pkg --name objdiff",
22
+ "build:wasm": "cargo build --profile release-min --no-default-features",
23
+ "build:transpile": "jco transpile ../target/wasm32-wasip2/release-min/objdiff_wasm.wasm --no-nodejs-compat --no-wasi-shim --no-namespaced-exports --map wasi:logging/logging=./wasi-logging.js --optimize -o pkg --name objdiff",
24
24
  "build:lib": "rslib build"
25
25
  },
26
26
  "devDependencies": {