objdiff-wasm 2.0.0-beta.8 → 2.0.0
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/dist/main.d.ts +25 -92
- package/dist/main.js +21 -19
- package/dist/main.js.map +1 -1
- package/dist/objdiff_core_bg.wasm +0 -0
- package/dist/worker.d.ts +56 -0
- package/dist/worker.js +2 -427
- package/dist/worker.js.map +1 -1
- package/package.json +6 -6
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../gen/diff_pb.ts","../src/main.ts"],"sourcesContent":["/* eslint-disable */\n// @generated by protobuf-ts 2.9.4 with parameter add_pb_suffix,eslint_disable,ts_nocheck,use_proto_field_name\n// @generated from protobuf file \"diff.proto\" (package \"objdiff.diff\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A symbol\n *\n * @generated from protobuf message objdiff.diff.Symbol\n */\nexport interface Symbol {\n /**\n * Name of the symbol\n *\n * @generated from protobuf field: string name = 1;\n */\n name: string;\n /**\n * Demangled name of the symbol\n *\n * @generated from protobuf field: optional string demangled_name = 2;\n */\n demangled_name?: string;\n /**\n * Symbol address\n *\n * @generated from protobuf field: uint64 address = 3;\n */\n address: bigint;\n /**\n * Symbol size\n *\n * @generated from protobuf field: uint64 size = 4;\n */\n size: bigint;\n /**\n * Bitmask of SymbolFlag\n *\n * @generated from protobuf field: uint32 flags = 5;\n */\n flags: number;\n}\n/**\n * A single parsed instruction\n *\n * @generated from protobuf message objdiff.diff.Instruction\n */\nexport interface Instruction {\n /**\n * Instruction address\n *\n * @generated from protobuf field: uint64 address = 1;\n */\n address: bigint;\n /**\n * Instruction size\n *\n * @generated from protobuf field: uint32 size = 2;\n */\n size: number;\n /**\n * Instruction opcode\n *\n * @generated from protobuf field: uint32 opcode = 3;\n */\n opcode: number;\n /**\n * Instruction mnemonic\n *\n * @generated from protobuf field: string mnemonic = 4;\n */\n mnemonic: string;\n /**\n * Instruction formatted string\n *\n * @generated from protobuf field: string formatted = 5;\n */\n formatted: string;\n /**\n * Original (unsimplified) instruction string\n *\n * @generated from protobuf field: optional string original = 6;\n */\n original?: string;\n /**\n * Instruction arguments\n *\n * @generated from protobuf field: repeated objdiff.diff.Argument arguments = 7;\n */\n arguments: Argument[];\n /**\n * Instruction relocation\n *\n * @generated from protobuf field: optional objdiff.diff.Relocation relocation = 8;\n */\n relocation?: Relocation;\n /**\n * Instruction branch destination\n *\n * @generated from protobuf field: optional uint64 branch_dest = 9;\n */\n branch_dest?: bigint;\n /**\n * Instruction line number\n *\n * @generated from protobuf field: optional uint32 line_number = 10;\n */\n line_number?: number;\n}\n/**\n * An instruction argument\n *\n * @generated from protobuf message objdiff.diff.Argument\n */\nexport interface Argument {\n /**\n * @generated from protobuf oneof: value\n */\n value: {\n oneofKind: \"plain_text\";\n /**\n * Plain text\n *\n * @generated from protobuf field: string plain_text = 1;\n */\n plain_text: string;\n } | {\n oneofKind: \"argument\";\n /**\n * Value\n *\n * @generated from protobuf field: objdiff.diff.ArgumentValue argument = 2;\n */\n argument: ArgumentValue;\n } | {\n oneofKind: \"relocation\";\n /**\n * Relocation\n *\n * @generated from protobuf field: objdiff.diff.ArgumentRelocation relocation = 3;\n */\n relocation: ArgumentRelocation;\n } | {\n oneofKind: \"branch_dest\";\n /**\n * Branch destination\n *\n * @generated from protobuf field: uint64 branch_dest = 4;\n */\n branch_dest: bigint;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * An instruction argument value\n *\n * @generated from protobuf message objdiff.diff.ArgumentValue\n */\nexport interface ArgumentValue {\n /**\n * @generated from protobuf oneof: value\n */\n value: {\n oneofKind: \"signed\";\n /**\n * Signed integer\n *\n * @generated from protobuf field: int64 signed = 1;\n */\n signed: bigint;\n } | {\n oneofKind: \"unsigned\";\n /**\n * Unsigned integer\n *\n * @generated from protobuf field: uint64 unsigned = 2;\n */\n unsigned: bigint;\n } | {\n oneofKind: \"opaque\";\n /**\n * Opaque value\n *\n * @generated from protobuf field: string opaque = 3;\n */\n opaque: string;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * Marker type for relocation arguments\n *\n * @generated from protobuf message objdiff.diff.ArgumentRelocation\n */\nexport interface ArgumentRelocation {\n}\n/**\n * @generated from protobuf message objdiff.diff.Relocation\n */\nexport interface Relocation {\n /**\n * @generated from protobuf field: uint32 type = 1;\n */\n type: number;\n /**\n * @generated from protobuf field: string type_name = 2;\n */\n type_name: string;\n /**\n * @generated from protobuf field: objdiff.diff.RelocationTarget target = 3;\n */\n target?: RelocationTarget;\n}\n/**\n * @generated from protobuf message objdiff.diff.RelocationTarget\n */\nexport interface RelocationTarget {\n /**\n * @generated from protobuf field: objdiff.diff.Symbol symbol = 1;\n */\n symbol?: Symbol;\n /**\n * @generated from protobuf field: int64 addend = 2;\n */\n addend: bigint;\n}\n/**\n * @generated from protobuf message objdiff.diff.InstructionDiff\n */\nexport interface InstructionDiff {\n /**\n * @generated from protobuf field: objdiff.diff.DiffKind diff_kind = 1;\n */\n diff_kind: DiffKind;\n /**\n * @generated from protobuf field: optional objdiff.diff.Instruction instruction = 2;\n */\n instruction?: Instruction;\n /**\n * @generated from protobuf field: optional objdiff.diff.InstructionBranchFrom branch_from = 3;\n */\n branch_from?: InstructionBranchFrom;\n /**\n * @generated from protobuf field: optional objdiff.diff.InstructionBranchTo branch_to = 4;\n */\n branch_to?: InstructionBranchTo;\n /**\n * @generated from protobuf field: repeated objdiff.diff.ArgumentDiff arg_diff = 5;\n */\n arg_diff: ArgumentDiff[];\n}\n/**\n * @generated from protobuf message objdiff.diff.ArgumentDiff\n */\nexport interface ArgumentDiff {\n /**\n * @generated from protobuf field: optional uint32 diff_index = 1;\n */\n diff_index?: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.InstructionBranchFrom\n */\nexport interface InstructionBranchFrom {\n /**\n * @generated from protobuf field: repeated uint32 instruction_index = 1;\n */\n instruction_index: number[];\n /**\n * @generated from protobuf field: uint32 branch_index = 2;\n */\n branch_index: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.InstructionBranchTo\n */\nexport interface InstructionBranchTo {\n /**\n * @generated from protobuf field: uint32 instruction_index = 1;\n */\n instruction_index: number;\n /**\n * @generated from protobuf field: uint32 branch_index = 2;\n */\n branch_index: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.FunctionDiff\n */\nexport interface FunctionDiff {\n /**\n * @generated from protobuf field: objdiff.diff.Symbol symbol = 1;\n */\n symbol?: Symbol;\n /**\n * @generated from protobuf field: repeated objdiff.diff.InstructionDiff instructions = 2;\n */\n instructions: InstructionDiff[];\n /**\n * @generated from protobuf field: optional float match_percent = 3;\n */\n match_percent?: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.DataDiff\n */\nexport interface DataDiff {\n /**\n * @generated from protobuf field: objdiff.diff.DiffKind kind = 1;\n */\n kind: DiffKind;\n /**\n * @generated from protobuf field: bytes data = 2;\n */\n data: Uint8Array;\n /**\n * May be larger than data\n *\n * @generated from protobuf field: uint64 size = 3;\n */\n size: bigint;\n}\n/**\n * @generated from protobuf message objdiff.diff.SectionDiff\n */\nexport interface SectionDiff {\n /**\n * @generated from protobuf field: string name = 1;\n */\n name: string;\n /**\n * @generated from protobuf field: objdiff.diff.SectionKind kind = 2;\n */\n kind: SectionKind;\n /**\n * @generated from protobuf field: uint64 size = 3;\n */\n size: bigint;\n /**\n * @generated from protobuf field: uint64 address = 4;\n */\n address: bigint;\n /**\n * @generated from protobuf field: repeated objdiff.diff.FunctionDiff functions = 5;\n */\n functions: FunctionDiff[];\n /**\n * @generated from protobuf field: repeated objdiff.diff.DataDiff data = 6;\n */\n data: DataDiff[];\n /**\n * @generated from protobuf field: optional float match_percent = 7;\n */\n match_percent?: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.ObjectDiff\n */\nexport interface ObjectDiff {\n /**\n * @generated from protobuf field: repeated objdiff.diff.SectionDiff sections = 1;\n */\n sections: SectionDiff[];\n}\n/**\n * @generated from protobuf message objdiff.diff.DiffResult\n */\nexport interface DiffResult {\n /**\n * @generated from protobuf field: optional objdiff.diff.ObjectDiff left = 1;\n */\n left?: ObjectDiff;\n /**\n * @generated from protobuf field: optional objdiff.diff.ObjectDiff right = 2;\n */\n right?: ObjectDiff;\n}\n/**\n * Symbol visibility flags\n *\n * @generated from protobuf enum objdiff.diff.SymbolFlag\n */\nexport enum SymbolFlag {\n /**\n * @generated from protobuf enum value: SYMBOL_NONE = 0;\n */\n SYMBOL_NONE = 0,\n /**\n * @generated from protobuf enum value: SYMBOL_GLOBAL = 1;\n */\n SYMBOL_GLOBAL = 1,\n /**\n * @generated from protobuf enum value: SYMBOL_LOCAL = 2;\n */\n SYMBOL_LOCAL = 2,\n /**\n * @generated from protobuf enum value: SYMBOL_WEAK = 3;\n */\n SYMBOL_WEAK = 3,\n /**\n * @generated from protobuf enum value: SYMBOL_COMMON = 4;\n */\n SYMBOL_COMMON = 4,\n /**\n * @generated from protobuf enum value: SYMBOL_HIDDEN = 5;\n */\n SYMBOL_HIDDEN = 5\n}\n/**\n * @generated from protobuf enum objdiff.diff.DiffKind\n */\nexport enum DiffKind {\n /**\n * @generated from protobuf enum value: DIFF_NONE = 0;\n */\n DIFF_NONE = 0,\n /**\n * @generated from protobuf enum value: DIFF_REPLACE = 1;\n */\n DIFF_REPLACE = 1,\n /**\n * @generated from protobuf enum value: DIFF_DELETE = 2;\n */\n DIFF_DELETE = 2,\n /**\n * @generated from protobuf enum value: DIFF_INSERT = 3;\n */\n DIFF_INSERT = 3,\n /**\n * @generated from protobuf enum value: DIFF_OP_MISMATCH = 4;\n */\n DIFF_OP_MISMATCH = 4,\n /**\n * @generated from protobuf enum value: DIFF_ARG_MISMATCH = 5;\n */\n DIFF_ARG_MISMATCH = 5\n}\n/**\n * @generated from protobuf enum objdiff.diff.SectionKind\n */\nexport enum SectionKind {\n /**\n * @generated from protobuf enum value: SECTION_UNKNOWN = 0;\n */\n SECTION_UNKNOWN = 0,\n /**\n * @generated from protobuf enum value: SECTION_TEXT = 1;\n */\n SECTION_TEXT = 1,\n /**\n * @generated from protobuf enum value: SECTION_DATA = 2;\n */\n SECTION_DATA = 2,\n /**\n * @generated from protobuf enum value: SECTION_BSS = 3;\n */\n SECTION_BSS = 3,\n /**\n * @generated from protobuf enum value: SECTION_COMMON = 4;\n */\n SECTION_COMMON = 4\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Symbol$Type extends MessageType<Symbol> {\n constructor() {\n super(\"objdiff.diff.Symbol\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"demangled_name\", kind: \"scalar\", localName: \"demangled_name\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"address\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 4, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 5, name: \"flags\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<Symbol>): Symbol {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n message.address = 0n;\n message.size = 0n;\n message.flags = 0;\n if (value !== undefined)\n reflectionMergePartial<Symbol>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Symbol): Symbol {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n case /* optional string demangled_name */ 2:\n message.demangled_name = reader.string();\n break;\n case /* uint64 address */ 3:\n message.address = reader.uint64().toBigInt();\n break;\n case /* uint64 size */ 4:\n message.size = reader.uint64().toBigInt();\n break;\n case /* uint32 flags */ 5:\n message.flags = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Symbol, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n /* optional string demangled_name = 2; */\n if (message.demangled_name !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.demangled_name);\n /* uint64 address = 3; */\n if (message.address !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.address);\n /* uint64 size = 4; */\n if (message.size !== 0n)\n writer.tag(4, WireType.Varint).uint64(message.size);\n /* uint32 flags = 5; */\n if (message.flags !== 0)\n writer.tag(5, WireType.Varint).uint32(message.flags);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.Symbol\n */\nexport const Symbol = new Symbol$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Instruction$Type extends MessageType<Instruction> {\n constructor() {\n super(\"objdiff.diff.Instruction\", [\n { no: 1, name: \"address\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"size\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 3, name: \"opcode\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 4, name: \"mnemonic\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 5, name: \"formatted\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 6, name: \"original\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 7, name: \"arguments\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Argument },\n { no: 8, name: \"relocation\", kind: \"message\", T: () => Relocation },\n { no: 9, name: \"branch_dest\", kind: \"scalar\", localName: \"branch_dest\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 10, name: \"line_number\", kind: \"scalar\", localName: \"line_number\", opt: true, T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<Instruction>): Instruction {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.address = 0n;\n message.size = 0;\n message.opcode = 0;\n message.mnemonic = \"\";\n message.formatted = \"\";\n message.arguments = [];\n if (value !== undefined)\n reflectionMergePartial<Instruction>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Instruction): Instruction {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 address */ 1:\n message.address = reader.uint64().toBigInt();\n break;\n case /* uint32 size */ 2:\n message.size = reader.uint32();\n break;\n case /* uint32 opcode */ 3:\n message.opcode = reader.uint32();\n break;\n case /* string mnemonic */ 4:\n message.mnemonic = reader.string();\n break;\n case /* string formatted */ 5:\n message.formatted = reader.string();\n break;\n case /* optional string original */ 6:\n message.original = reader.string();\n break;\n case /* repeated objdiff.diff.Argument arguments */ 7:\n message.arguments.push(Argument.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* optional objdiff.diff.Relocation relocation */ 8:\n message.relocation = Relocation.internalBinaryRead(reader, reader.uint32(), options, message.relocation);\n break;\n case /* optional uint64 branch_dest */ 9:\n message.branch_dest = reader.uint64().toBigInt();\n break;\n case /* optional uint32 line_number */ 10:\n message.line_number = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Instruction, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 address = 1; */\n if (message.address !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.address);\n /* uint32 size = 2; */\n if (message.size !== 0)\n writer.tag(2, WireType.Varint).uint32(message.size);\n /* uint32 opcode = 3; */\n if (message.opcode !== 0)\n writer.tag(3, WireType.Varint).uint32(message.opcode);\n /* string mnemonic = 4; */\n if (message.mnemonic !== \"\")\n writer.tag(4, WireType.LengthDelimited).string(message.mnemonic);\n /* string formatted = 5; */\n if (message.formatted !== \"\")\n writer.tag(5, WireType.LengthDelimited).string(message.formatted);\n /* optional string original = 6; */\n if (message.original !== undefined)\n writer.tag(6, WireType.LengthDelimited).string(message.original);\n /* repeated objdiff.diff.Argument arguments = 7; */\n for (let i = 0; i < message.arguments.length; i++)\n Argument.internalBinaryWrite(message.arguments[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* optional objdiff.diff.Relocation relocation = 8; */\n if (message.relocation)\n Relocation.internalBinaryWrite(message.relocation, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n /* optional uint64 branch_dest = 9; */\n if (message.branch_dest !== undefined)\n writer.tag(9, WireType.Varint).uint64(message.branch_dest);\n /* optional uint32 line_number = 10; */\n if (message.line_number !== undefined)\n writer.tag(10, WireType.Varint).uint32(message.line_number);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.Instruction\n */\nexport const Instruction = new Instruction$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Argument$Type extends MessageType<Argument> {\n constructor() {\n super(\"objdiff.diff.Argument\", [\n { no: 1, name: \"plain_text\", kind: \"scalar\", localName: \"plain_text\", oneof: \"value\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"argument\", kind: \"message\", oneof: \"value\", T: () => ArgumentValue },\n { no: 3, name: \"relocation\", kind: \"message\", oneof: \"value\", T: () => ArgumentRelocation },\n { no: 4, name: \"branch_dest\", kind: \"scalar\", localName: \"branch_dest\", oneof: \"value\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<Argument>): Argument {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<Argument>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Argument): Argument {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string plain_text */ 1:\n message.value = {\n oneofKind: \"plain_text\",\n plain_text: reader.string()\n };\n break;\n case /* objdiff.diff.ArgumentValue argument */ 2:\n message.value = {\n oneofKind: \"argument\",\n argument: ArgumentValue.internalBinaryRead(reader, reader.uint32(), options, (message.value as any).argument)\n };\n break;\n case /* objdiff.diff.ArgumentRelocation relocation */ 3:\n message.value = {\n oneofKind: \"relocation\",\n relocation: ArgumentRelocation.internalBinaryRead(reader, reader.uint32(), options, (message.value as any).relocation)\n };\n break;\n case /* uint64 branch_dest */ 4:\n message.value = {\n oneofKind: \"branch_dest\",\n branch_dest: reader.uint64().toBigInt()\n };\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Argument, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string plain_text = 1; */\n if (message.value.oneofKind === \"plain_text\")\n writer.tag(1, WireType.LengthDelimited).string(message.value.plain_text);\n /* objdiff.diff.ArgumentValue argument = 2; */\n if (message.value.oneofKind === \"argument\")\n ArgumentValue.internalBinaryWrite(message.value.argument, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* objdiff.diff.ArgumentRelocation relocation = 3; */\n if (message.value.oneofKind === \"relocation\")\n ArgumentRelocation.internalBinaryWrite(message.value.relocation, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* uint64 branch_dest = 4; */\n if (message.value.oneofKind === \"branch_dest\")\n writer.tag(4, WireType.Varint).uint64(message.value.branch_dest);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.Argument\n */\nexport const Argument = new Argument$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ArgumentValue$Type extends MessageType<ArgumentValue> {\n constructor() {\n super(\"objdiff.diff.ArgumentValue\", [\n { no: 1, name: \"signed\", kind: \"scalar\", oneof: \"value\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"unsigned\", kind: \"scalar\", oneof: \"value\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"opaque\", kind: \"scalar\", oneof: \"value\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ArgumentValue>): ArgumentValue {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<ArgumentValue>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ArgumentValue): ArgumentValue {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 signed */ 1:\n message.value = {\n oneofKind: \"signed\",\n signed: reader.int64().toBigInt()\n };\n break;\n case /* uint64 unsigned */ 2:\n message.value = {\n oneofKind: \"unsigned\",\n unsigned: reader.uint64().toBigInt()\n };\n break;\n case /* string opaque */ 3:\n message.value = {\n oneofKind: \"opaque\",\n opaque: reader.string()\n };\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ArgumentValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 signed = 1; */\n if (message.value.oneofKind === \"signed\")\n writer.tag(1, WireType.Varint).int64(message.value.signed);\n /* uint64 unsigned = 2; */\n if (message.value.oneofKind === \"unsigned\")\n writer.tag(2, WireType.Varint).uint64(message.value.unsigned);\n /* string opaque = 3; */\n if (message.value.oneofKind === \"opaque\")\n writer.tag(3, WireType.LengthDelimited).string(message.value.opaque);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.ArgumentValue\n */\nexport const ArgumentValue = new ArgumentValue$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ArgumentRelocation$Type extends MessageType<ArgumentRelocation> {\n constructor() {\n super(\"objdiff.diff.ArgumentRelocation\", []);\n }\n create(value?: PartialMessage<ArgumentRelocation>): ArgumentRelocation {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ArgumentRelocation>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ArgumentRelocation): ArgumentRelocation {\n return target ?? this.create();\n }\n internalBinaryWrite(message: ArgumentRelocation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.ArgumentRelocation\n */\nexport const ArgumentRelocation = new ArgumentRelocation$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Relocation$Type extends MessageType<Relocation> {\n constructor() {\n super(\"objdiff.diff.Relocation\", [\n { no: 1, name: \"type\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 2, name: \"type_name\", kind: \"scalar\", localName: \"type_name\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"target\", kind: \"message\", T: () => RelocationTarget }\n ]);\n }\n create(value?: PartialMessage<Relocation>): Relocation {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.type = 0;\n message.type_name = \"\";\n if (value !== undefined)\n reflectionMergePartial<Relocation>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Relocation): Relocation {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint32 type */ 1:\n message.type = reader.uint32();\n break;\n case /* string type_name */ 2:\n message.type_name = reader.string();\n break;\n case /* objdiff.diff.RelocationTarget target */ 3:\n message.target = RelocationTarget.internalBinaryRead(reader, reader.uint32(), options, message.target);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Relocation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint32 type = 1; */\n if (message.type !== 0)\n writer.tag(1, WireType.Varint).uint32(message.type);\n /* string type_name = 2; */\n if (message.type_name !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.type_name);\n /* objdiff.diff.RelocationTarget target = 3; */\n if (message.target)\n RelocationTarget.internalBinaryWrite(message.target, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.Relocation\n */\nexport const Relocation = new Relocation$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass RelocationTarget$Type extends MessageType<RelocationTarget> {\n constructor() {\n super(\"objdiff.diff.RelocationTarget\", [\n { no: 1, name: \"symbol\", kind: \"message\", T: () => Symbol },\n { no: 2, name: \"addend\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<RelocationTarget>): RelocationTarget {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.addend = 0n;\n if (value !== undefined)\n reflectionMergePartial<RelocationTarget>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RelocationTarget): RelocationTarget {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* objdiff.diff.Symbol symbol */ 1:\n message.symbol = Symbol.internalBinaryRead(reader, reader.uint32(), options, message.symbol);\n break;\n case /* int64 addend */ 2:\n message.addend = reader.int64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: RelocationTarget, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* objdiff.diff.Symbol symbol = 1; */\n if (message.symbol)\n Symbol.internalBinaryWrite(message.symbol, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* int64 addend = 2; */\n if (message.addend !== 0n)\n writer.tag(2, WireType.Varint).int64(message.addend);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.RelocationTarget\n */\nexport const RelocationTarget = new RelocationTarget$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass InstructionDiff$Type extends MessageType<InstructionDiff> {\n constructor() {\n super(\"objdiff.diff.InstructionDiff\", [\n { no: 1, name: \"diff_kind\", kind: \"enum\", localName: \"diff_kind\", T: () => [\"objdiff.diff.DiffKind\", DiffKind] },\n { no: 2, name: \"instruction\", kind: \"message\", T: () => Instruction },\n { no: 3, name: \"branch_from\", kind: \"message\", localName: \"branch_from\", T: () => InstructionBranchFrom },\n { no: 4, name: \"branch_to\", kind: \"message\", localName: \"branch_to\", T: () => InstructionBranchTo },\n { no: 5, name: \"arg_diff\", kind: \"message\", localName: \"arg_diff\", repeat: 1 /*RepeatType.PACKED*/, T: () => ArgumentDiff }\n ]);\n }\n create(value?: PartialMessage<InstructionDiff>): InstructionDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.diff_kind = 0;\n message.arg_diff = [];\n if (value !== undefined)\n reflectionMergePartial<InstructionDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstructionDiff): InstructionDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* objdiff.diff.DiffKind diff_kind */ 1:\n message.diff_kind = reader.int32();\n break;\n case /* optional objdiff.diff.Instruction instruction */ 2:\n message.instruction = Instruction.internalBinaryRead(reader, reader.uint32(), options, message.instruction);\n break;\n case /* optional objdiff.diff.InstructionBranchFrom branch_from */ 3:\n message.branch_from = InstructionBranchFrom.internalBinaryRead(reader, reader.uint32(), options, message.branch_from);\n break;\n case /* optional objdiff.diff.InstructionBranchTo branch_to */ 4:\n message.branch_to = InstructionBranchTo.internalBinaryRead(reader, reader.uint32(), options, message.branch_to);\n break;\n case /* repeated objdiff.diff.ArgumentDiff arg_diff */ 5:\n message.arg_diff.push(ArgumentDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: InstructionDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* objdiff.diff.DiffKind diff_kind = 1; */\n if (message.diff_kind !== 0)\n writer.tag(1, WireType.Varint).int32(message.diff_kind);\n /* optional objdiff.diff.Instruction instruction = 2; */\n if (message.instruction)\n Instruction.internalBinaryWrite(message.instruction, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* optional objdiff.diff.InstructionBranchFrom branch_from = 3; */\n if (message.branch_from)\n InstructionBranchFrom.internalBinaryWrite(message.branch_from, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* optional objdiff.diff.InstructionBranchTo branch_to = 4; */\n if (message.branch_to)\n InstructionBranchTo.internalBinaryWrite(message.branch_to, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* repeated objdiff.diff.ArgumentDiff arg_diff = 5; */\n for (let i = 0; i < message.arg_diff.length; i++)\n ArgumentDiff.internalBinaryWrite(message.arg_diff[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.InstructionDiff\n */\nexport const InstructionDiff = new InstructionDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ArgumentDiff$Type extends MessageType<ArgumentDiff> {\n constructor() {\n super(\"objdiff.diff.ArgumentDiff\", [\n { no: 1, name: \"diff_index\", kind: \"scalar\", localName: \"diff_index\", opt: true, T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<ArgumentDiff>): ArgumentDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ArgumentDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ArgumentDiff): ArgumentDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* optional uint32 diff_index */ 1:\n message.diff_index = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ArgumentDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* optional uint32 diff_index = 1; */\n if (message.diff_index !== undefined)\n writer.tag(1, WireType.Varint).uint32(message.diff_index);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.ArgumentDiff\n */\nexport const ArgumentDiff = new ArgumentDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass InstructionBranchFrom$Type extends MessageType<InstructionBranchFrom> {\n constructor() {\n super(\"objdiff.diff.InstructionBranchFrom\", [\n { no: 1, name: \"instruction_index\", kind: \"scalar\", localName: \"instruction_index\", repeat: 1 /*RepeatType.PACKED*/, T: 13 /*ScalarType.UINT32*/ },\n { no: 2, name: \"branch_index\", kind: \"scalar\", localName: \"branch_index\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<InstructionBranchFrom>): InstructionBranchFrom {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.instruction_index = [];\n message.branch_index = 0;\n if (value !== undefined)\n reflectionMergePartial<InstructionBranchFrom>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstructionBranchFrom): InstructionBranchFrom {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated uint32 instruction_index */ 1:\n if (wireType === WireType.LengthDelimited)\n for (let e = reader.int32() + reader.pos; reader.pos < e;)\n message.instruction_index.push(reader.uint32());\n else\n message.instruction_index.push(reader.uint32());\n break;\n case /* uint32 branch_index */ 2:\n message.branch_index = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: InstructionBranchFrom, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated uint32 instruction_index = 1; */\n if (message.instruction_index.length) {\n writer.tag(1, WireType.LengthDelimited).fork();\n for (let i = 0; i < message.instruction_index.length; i++)\n writer.uint32(message.instruction_index[i]);\n writer.join();\n }\n /* uint32 branch_index = 2; */\n if (message.branch_index !== 0)\n writer.tag(2, WireType.Varint).uint32(message.branch_index);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.InstructionBranchFrom\n */\nexport const InstructionBranchFrom = new InstructionBranchFrom$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass InstructionBranchTo$Type extends MessageType<InstructionBranchTo> {\n constructor() {\n super(\"objdiff.diff.InstructionBranchTo\", [\n { no: 1, name: \"instruction_index\", kind: \"scalar\", localName: \"instruction_index\", T: 13 /*ScalarType.UINT32*/ },\n { no: 2, name: \"branch_index\", kind: \"scalar\", localName: \"branch_index\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<InstructionBranchTo>): InstructionBranchTo {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.instruction_index = 0;\n message.branch_index = 0;\n if (value !== undefined)\n reflectionMergePartial<InstructionBranchTo>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstructionBranchTo): InstructionBranchTo {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint32 instruction_index */ 1:\n message.instruction_index = reader.uint32();\n break;\n case /* uint32 branch_index */ 2:\n message.branch_index = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: InstructionBranchTo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint32 instruction_index = 1; */\n if (message.instruction_index !== 0)\n writer.tag(1, WireType.Varint).uint32(message.instruction_index);\n /* uint32 branch_index = 2; */\n if (message.branch_index !== 0)\n writer.tag(2, WireType.Varint).uint32(message.branch_index);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.InstructionBranchTo\n */\nexport const InstructionBranchTo = new InstructionBranchTo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FunctionDiff$Type extends MessageType<FunctionDiff> {\n constructor() {\n super(\"objdiff.diff.FunctionDiff\", [\n { no: 1, name: \"symbol\", kind: \"message\", T: () => Symbol },\n { no: 2, name: \"instructions\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => InstructionDiff },\n { no: 3, name: \"match_percent\", kind: \"scalar\", localName: \"match_percent\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n ]);\n }\n create(value?: PartialMessage<FunctionDiff>): FunctionDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.instructions = [];\n if (value !== undefined)\n reflectionMergePartial<FunctionDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FunctionDiff): FunctionDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* objdiff.diff.Symbol symbol */ 1:\n message.symbol = Symbol.internalBinaryRead(reader, reader.uint32(), options, message.symbol);\n break;\n case /* repeated objdiff.diff.InstructionDiff instructions */ 2:\n message.instructions.push(InstructionDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* optional float match_percent */ 3:\n message.match_percent = reader.float();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FunctionDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* objdiff.diff.Symbol symbol = 1; */\n if (message.symbol)\n Symbol.internalBinaryWrite(message.symbol, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* repeated objdiff.diff.InstructionDiff instructions = 2; */\n for (let i = 0; i < message.instructions.length; i++)\n InstructionDiff.internalBinaryWrite(message.instructions[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* optional float match_percent = 3; */\n if (message.match_percent !== undefined)\n writer.tag(3, WireType.Bit32).float(message.match_percent);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.FunctionDiff\n */\nexport const FunctionDiff = new FunctionDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DataDiff$Type extends MessageType<DataDiff> {\n constructor() {\n super(\"objdiff.diff.DataDiff\", [\n { no: 1, name: \"kind\", kind: \"enum\", T: () => [\"objdiff.diff.DiffKind\", DiffKind] },\n { no: 2, name: \"data\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 3, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<DataDiff>): DataDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.kind = 0;\n message.data = new Uint8Array(0);\n message.size = 0n;\n if (value !== undefined)\n reflectionMergePartial<DataDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DataDiff): DataDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* objdiff.diff.DiffKind kind */ 1:\n message.kind = reader.int32();\n break;\n case /* bytes data */ 2:\n message.data = reader.bytes();\n break;\n case /* uint64 size */ 3:\n message.size = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: DataDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* objdiff.diff.DiffKind kind = 1; */\n if (message.kind !== 0)\n writer.tag(1, WireType.Varint).int32(message.kind);\n /* bytes data = 2; */\n if (message.data.length)\n writer.tag(2, WireType.LengthDelimited).bytes(message.data);\n /* uint64 size = 3; */\n if (message.size !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.size);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.DataDiff\n */\nexport const DataDiff = new DataDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SectionDiff$Type extends MessageType<SectionDiff> {\n constructor() {\n super(\"objdiff.diff.SectionDiff\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"kind\", kind: \"enum\", T: () => [\"objdiff.diff.SectionKind\", SectionKind] },\n { no: 3, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 4, name: \"address\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 5, name: \"functions\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => FunctionDiff },\n { no: 6, name: \"data\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => DataDiff },\n { no: 7, name: \"match_percent\", kind: \"scalar\", localName: \"match_percent\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n ]);\n }\n create(value?: PartialMessage<SectionDiff>): SectionDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n message.kind = 0;\n message.size = 0n;\n message.address = 0n;\n message.functions = [];\n message.data = [];\n if (value !== undefined)\n reflectionMergePartial<SectionDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SectionDiff): SectionDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n case /* objdiff.diff.SectionKind kind */ 2:\n message.kind = reader.int32();\n break;\n case /* uint64 size */ 3:\n message.size = reader.uint64().toBigInt();\n break;\n case /* uint64 address */ 4:\n message.address = reader.uint64().toBigInt();\n break;\n case /* repeated objdiff.diff.FunctionDiff functions */ 5:\n message.functions.push(FunctionDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* repeated objdiff.diff.DataDiff data */ 6:\n message.data.push(DataDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* optional float match_percent */ 7:\n message.match_percent = reader.float();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SectionDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n /* objdiff.diff.SectionKind kind = 2; */\n if (message.kind !== 0)\n writer.tag(2, WireType.Varint).int32(message.kind);\n /* uint64 size = 3; */\n if (message.size !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.size);\n /* uint64 address = 4; */\n if (message.address !== 0n)\n writer.tag(4, WireType.Varint).uint64(message.address);\n /* repeated objdiff.diff.FunctionDiff functions = 5; */\n for (let i = 0; i < message.functions.length; i++)\n FunctionDiff.internalBinaryWrite(message.functions[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* repeated objdiff.diff.DataDiff data = 6; */\n for (let i = 0; i < message.data.length; i++)\n DataDiff.internalBinaryWrite(message.data[i], writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n /* optional float match_percent = 7; */\n if (message.match_percent !== undefined)\n writer.tag(7, WireType.Bit32).float(message.match_percent);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.SectionDiff\n */\nexport const SectionDiff = new SectionDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObjectDiff$Type extends MessageType<ObjectDiff> {\n constructor() {\n super(\"objdiff.diff.ObjectDiff\", [\n { no: 1, name: \"sections\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => SectionDiff }\n ]);\n }\n create(value?: PartialMessage<ObjectDiff>): ObjectDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.sections = [];\n if (value !== undefined)\n reflectionMergePartial<ObjectDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObjectDiff): ObjectDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated objdiff.diff.SectionDiff sections */ 1:\n message.sections.push(SectionDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ObjectDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated objdiff.diff.SectionDiff sections = 1; */\n for (let i = 0; i < message.sections.length; i++)\n SectionDiff.internalBinaryWrite(message.sections[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.ObjectDiff\n */\nexport const ObjectDiff = new ObjectDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DiffResult$Type extends MessageType<DiffResult> {\n constructor() {\n super(\"objdiff.diff.DiffResult\", [\n { no: 1, name: \"left\", kind: \"message\", T: () => ObjectDiff },\n { no: 2, name: \"right\", kind: \"message\", T: () => ObjectDiff }\n ]);\n }\n create(value?: PartialMessage<DiffResult>): DiffResult {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<DiffResult>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DiffResult): DiffResult {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* optional objdiff.diff.ObjectDiff left */ 1:\n message.left = ObjectDiff.internalBinaryRead(reader, reader.uint32(), options, message.left);\n break;\n case /* optional objdiff.diff.ObjectDiff right */ 2:\n message.right = ObjectDiff.internalBinaryRead(reader, reader.uint32(), options, message.right);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: DiffResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* optional objdiff.diff.ObjectDiff left = 1; */\n if (message.left)\n ObjectDiff.internalBinaryWrite(message.left, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* optional objdiff.diff.ObjectDiff right = 2; */\n if (message.right)\n ObjectDiff.internalBinaryWrite(message.right, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.DiffResult\n */\nexport const DiffResult = new DiffResult$Type();\n","import {ArgumentValue, DiffResult, InstructionDiff, RelocationTarget} from \"../gen/diff_pb\";\nimport type {\n ArmArchVersion,\n ArmR9Usage,\n DiffObjConfig as WasmDiffObjConfig,\n MipsAbi,\n MipsInstrCategory,\n X86Formatter\n} from '../pkg';\nimport {HandlerData, InMessage, OutMessage} from './worker';\n\n// Export wasm types\nexport type DiffObjConfig = Omit<Partial<WasmDiffObjConfig>, 'free'>;\nexport {ArmArchVersion, ArmR9Usage, MipsAbi, MipsInstrCategory, X86Formatter};\n\n// Export protobuf types\nexport * from '../gen/diff_pb';\n\ninterface PromiseCallbacks<T> {\n start: number;\n resolve: (value: T) => void;\n reject: (reason?: unknown) => void;\n}\n\nlet workerInit = false;\nlet workerCallbacks: PromiseCallbacks<Worker> | null = null;\nconst workerReady = new Promise<Worker>((resolve, reject) => {\n workerCallbacks = {start: performance.now(), resolve, reject};\n});\n\nexport async function initialize(data?: {\n workerUrl?: string | URL,\n wasmUrl?: string | URL, // Relative to worker URL\n}) {\n if (workerInit) {\n return;\n }\n workerInit = true;\n let {workerUrl, wasmUrl} = data || {};\n if (!workerUrl) {\n // Bundlers will convert this into an asset URL\n workerUrl = new URL('./worker.js', import.meta.url);\n }\n if (!wasmUrl) {\n // Bundlers will convert this into an asset URL\n wasmUrl = new URL('./objdiff_core_bg.wasm', import.meta.url);\n }\n const worker = new Worker(workerUrl, {type: 'module'});\n worker.onmessage = onMessage;\n worker.onerror = (event) => {\n console.error(\"Worker error\", event);\n workerCallbacks.reject(event);\n };\n await defer<boolean>({\n type: 'init',\n // URL can't be sent directly\n wasmUrl: wasmUrl.toString(),\n }, worker).then(() => {\n workerCallbacks.resolve(worker);\n }, (e) => {\n workerCallbacks.reject(e);\n throw e;\n });\n}\n\nlet globalMessageId = 0;\nconst messageCallbacks = new Map<number, PromiseCallbacks<unknown>>();\n\nfunction onMessage(event: MessageEvent<OutMessage>) {\n switch (event.data.type) {\n case 'result': {\n const {result, error, messageId} = event.data;\n const callbacks = messageCallbacks.get(messageId);\n if (callbacks) {\n const end = performance.now();\n console.debug(`Message ${messageId} took ${end - callbacks.start}ms`);\n messageCallbacks.delete(messageId);\n if (error != null) {\n callbacks.reject(error);\n } else {\n callbacks.resolve(result);\n }\n } else {\n console.warn(`Unknown message ID ${messageId}`);\n }\n break;\n }\n }\n}\n\nasync function defer<T>(message: HandlerData, worker?: Worker): Promise<T> {\n if (worker == null) {\n if (!workerInit) {\n throw new Error('Worker not initialized');\n }\n worker = await workerReady;\n }\n const messageId = globalMessageId++;\n const promise = new Promise<T>((resolve, reject) => {\n messageCallbacks.set(messageId, {start: performance.now(), resolve, reject});\n });\n worker.postMessage({\n ...message,\n messageId\n });\n return promise;\n}\n\nexport async function runDiff(left: Uint8Array | undefined, right: Uint8Array | undefined, config?: DiffObjConfig): Promise<DiffResult> {\n const data = await defer<Uint8Array>({\n type: 'run_diff_proto',\n left,\n right,\n config\n } as InMessage);\n const parseStart = performance.now();\n const result = DiffResult.fromBinary(data, {readUnknownField: false});\n const end = performance.now();\n console.debug(`Parsing message took ${end - parseStart}ms`);\n return result;\n}\n\nexport type DiffText =\n DiffTextBasic\n | DiffTextBasicColor\n | DiffTextAddress\n | DiffTextLine\n | DiffTextOpcode\n | DiffTextArgument\n | DiffTextSymbol\n | DiffTextBranchDest\n | DiffTextSpacing;\n\ntype DiffTextBase = {\n diff_index?: number,\n};\nexport type DiffTextBasic = DiffTextBase & {\n type: 'basic',\n text: string,\n};\nexport type DiffTextBasicColor = DiffTextBase & {\n type: 'basic_color',\n text: string,\n index: number,\n};\nexport type DiffTextAddress = DiffTextBase & {\n type: 'address',\n address: bigint,\n};\nexport type DiffTextLine = DiffTextBase & {\n type: 'line',\n line_number: number,\n};\nexport type DiffTextOpcode = DiffTextBase & {\n type: 'opcode',\n mnemonic: string,\n opcode: number,\n};\nexport type DiffTextArgument = DiffTextBase & {\n type: 'argument',\n value: ArgumentValue,\n};\nexport type DiffTextSymbol = DiffTextBase & {\n type: 'symbol',\n target: RelocationTarget,\n};\nexport type DiffTextBranchDest = DiffTextBase & {\n type: 'branch_dest',\n address: bigint,\n};\nexport type DiffTextSpacing = DiffTextBase & {\n type: 'spacing',\n count: number,\n};\n\n// TypeScript workaround for oneof types\nexport function oneof<T extends { oneofKind: string }>(type: T): T & { oneofKind: string } {\n return type as T & { oneofKind: string };\n}\n\n// Native JavaScript implementation of objdiff_core::diff::display::display_diff\nexport function displayDiff(diff: InstructionDiff, baseAddr: bigint, cb: (text: DiffText) => void) {\n const ins = diff.instruction;\n if (!ins) {\n return;\n }\n if (ins.line_number != null) {\n cb({type: 'line', line_number: ins.line_number});\n }\n cb({type: 'address', address: ins.address - baseAddr});\n if (diff.branch_from) {\n cb({type: 'basic_color', text: ' ~> ', index: diff.branch_from.branch_index});\n } else {\n cb({type: 'spacing', count: 4});\n }\n cb({type: 'opcode', mnemonic: ins.mnemonic, opcode: ins.opcode});\n for (let i = 0; i < ins.arguments.length; i++) {\n if (i === 0) {\n cb({type: 'spacing', count: 1});\n }\n const arg = oneof(ins.arguments[i].value);\n const diff_index = diff.arg_diff[i]?.diff_index;\n switch (arg.oneofKind) {\n case \"plain_text\":\n cb({type: 'basic', text: arg.plain_text, diff_index});\n break;\n case \"argument\":\n cb({type: 'argument', value: arg.argument, diff_index});\n break;\n case \"relocation\": {\n const reloc = ins.relocation!;\n cb({type: 'symbol', target: reloc.target, diff_index});\n break;\n }\n case \"branch_dest\":\n if (arg.branch_dest < baseAddr) {\n cb({type: 'basic', text: '<unknown>', diff_index});\n } else {\n cb({type: 'branch_dest', address: arg.branch_dest - baseAddr, diff_index});\n }\n break;\n }\n }\n if (diff.branch_to) {\n cb({type: 'basic_color', text: ' ~> ', index: diff.branch_to.branch_index});\n }\n}\n"],"mappings":"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","names":["SymbolFlag","DiffKind","SectionKind"]}
|
|
1
|
+
{"version":3,"sources":["../gen/diff_pb.ts","../src/main.ts"],"sourcesContent":["/* eslint-disable */\n// @generated by protobuf-ts 2.9.4 with parameter add_pb_suffix,eslint_disable,ts_nocheck,use_proto_field_name\n// @generated from protobuf file \"diff.proto\" (package \"objdiff.diff\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A symbol\n *\n * @generated from protobuf message objdiff.diff.Symbol\n */\nexport interface Symbol {\n /**\n * Name of the symbol\n *\n * @generated from protobuf field: string name = 1;\n */\n name: string;\n /**\n * Demangled name of the symbol\n *\n * @generated from protobuf field: optional string demangled_name = 2;\n */\n demangled_name?: string;\n /**\n * Symbol address\n *\n * @generated from protobuf field: uint64 address = 3;\n */\n address: bigint;\n /**\n * Symbol size\n *\n * @generated from protobuf field: uint64 size = 4;\n */\n size: bigint;\n /**\n * Bitmask of SymbolFlag\n *\n * @generated from protobuf field: uint32 flags = 5;\n */\n flags: number;\n}\n/**\n * A single parsed instruction\n *\n * @generated from protobuf message objdiff.diff.Instruction\n */\nexport interface Instruction {\n /**\n * Instruction address\n *\n * @generated from protobuf field: uint64 address = 1;\n */\n address: bigint;\n /**\n * Instruction size\n *\n * @generated from protobuf field: uint32 size = 2;\n */\n size: number;\n /**\n * Instruction opcode\n *\n * @generated from protobuf field: uint32 opcode = 3;\n */\n opcode: number;\n /**\n * Instruction mnemonic\n *\n * @generated from protobuf field: string mnemonic = 4;\n */\n mnemonic: string;\n /**\n * Instruction formatted string\n *\n * @generated from protobuf field: string formatted = 5;\n */\n formatted: string;\n /**\n * Original (unsimplified) instruction string\n *\n * @generated from protobuf field: optional string original = 6;\n */\n original?: string;\n /**\n * Instruction arguments\n *\n * @generated from protobuf field: repeated objdiff.diff.Argument arguments = 7;\n */\n arguments: Argument[];\n /**\n * Instruction relocation\n *\n * @generated from protobuf field: optional objdiff.diff.Relocation relocation = 8;\n */\n relocation?: Relocation;\n /**\n * Instruction branch destination\n *\n * @generated from protobuf field: optional uint64 branch_dest = 9;\n */\n branch_dest?: bigint;\n /**\n * Instruction line number\n *\n * @generated from protobuf field: optional uint32 line_number = 10;\n */\n line_number?: number;\n}\n/**\n * An instruction argument\n *\n * @generated from protobuf message objdiff.diff.Argument\n */\nexport interface Argument {\n /**\n * @generated from protobuf oneof: value\n */\n value: {\n oneofKind: \"plain_text\";\n /**\n * Plain text\n *\n * @generated from protobuf field: string plain_text = 1;\n */\n plain_text: string;\n } | {\n oneofKind: \"argument\";\n /**\n * Value\n *\n * @generated from protobuf field: objdiff.diff.ArgumentValue argument = 2;\n */\n argument: ArgumentValue;\n } | {\n oneofKind: \"relocation\";\n /**\n * Relocation\n *\n * @generated from protobuf field: objdiff.diff.ArgumentRelocation relocation = 3;\n */\n relocation: ArgumentRelocation;\n } | {\n oneofKind: \"branch_dest\";\n /**\n * Branch destination\n *\n * @generated from protobuf field: uint64 branch_dest = 4;\n */\n branch_dest: bigint;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * An instruction argument value\n *\n * @generated from protobuf message objdiff.diff.ArgumentValue\n */\nexport interface ArgumentValue {\n /**\n * @generated from protobuf oneof: value\n */\n value: {\n oneofKind: \"signed\";\n /**\n * Signed integer\n *\n * @generated from protobuf field: int64 signed = 1;\n */\n signed: bigint;\n } | {\n oneofKind: \"unsigned\";\n /**\n * Unsigned integer\n *\n * @generated from protobuf field: uint64 unsigned = 2;\n */\n unsigned: bigint;\n } | {\n oneofKind: \"opaque\";\n /**\n * Opaque value\n *\n * @generated from protobuf field: string opaque = 3;\n */\n opaque: string;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * Marker type for relocation arguments\n *\n * @generated from protobuf message objdiff.diff.ArgumentRelocation\n */\nexport interface ArgumentRelocation {\n}\n/**\n * @generated from protobuf message objdiff.diff.Relocation\n */\nexport interface Relocation {\n /**\n * @generated from protobuf field: uint32 type = 1;\n */\n type: number;\n /**\n * @generated from protobuf field: string type_name = 2;\n */\n type_name: string;\n /**\n * @generated from protobuf field: objdiff.diff.RelocationTarget target = 3;\n */\n target?: RelocationTarget;\n}\n/**\n * @generated from protobuf message objdiff.diff.RelocationTarget\n */\nexport interface RelocationTarget {\n /**\n * @generated from protobuf field: objdiff.diff.Symbol symbol = 1;\n */\n symbol?: Symbol;\n /**\n * @generated from protobuf field: int64 addend = 2;\n */\n addend: bigint;\n}\n/**\n * @generated from protobuf message objdiff.diff.InstructionDiff\n */\nexport interface InstructionDiff {\n /**\n * @generated from protobuf field: objdiff.diff.DiffKind diff_kind = 1;\n */\n diff_kind: DiffKind;\n /**\n * @generated from protobuf field: optional objdiff.diff.Instruction instruction = 2;\n */\n instruction?: Instruction;\n /**\n * @generated from protobuf field: optional objdiff.diff.InstructionBranchFrom branch_from = 3;\n */\n branch_from?: InstructionBranchFrom;\n /**\n * @generated from protobuf field: optional objdiff.diff.InstructionBranchTo branch_to = 4;\n */\n branch_to?: InstructionBranchTo;\n /**\n * @generated from protobuf field: repeated objdiff.diff.ArgumentDiff arg_diff = 5;\n */\n arg_diff: ArgumentDiff[];\n}\n/**\n * @generated from protobuf message objdiff.diff.ArgumentDiff\n */\nexport interface ArgumentDiff {\n /**\n * @generated from protobuf field: optional uint32 diff_index = 1;\n */\n diff_index?: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.InstructionBranchFrom\n */\nexport interface InstructionBranchFrom {\n /**\n * @generated from protobuf field: repeated uint32 instruction_index = 1;\n */\n instruction_index: number[];\n /**\n * @generated from protobuf field: uint32 branch_index = 2;\n */\n branch_index: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.InstructionBranchTo\n */\nexport interface InstructionBranchTo {\n /**\n * @generated from protobuf field: uint32 instruction_index = 1;\n */\n instruction_index: number;\n /**\n * @generated from protobuf field: uint32 branch_index = 2;\n */\n branch_index: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.FunctionDiff\n */\nexport interface FunctionDiff {\n /**\n * @generated from protobuf field: objdiff.diff.Symbol symbol = 1;\n */\n symbol?: Symbol;\n /**\n * @generated from protobuf field: repeated objdiff.diff.InstructionDiff instructions = 2;\n */\n instructions: InstructionDiff[];\n /**\n * @generated from protobuf field: optional float match_percent = 3;\n */\n match_percent?: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.DataDiff\n */\nexport interface DataDiff {\n /**\n * @generated from protobuf field: objdiff.diff.DiffKind kind = 1;\n */\n kind: DiffKind;\n /**\n * @generated from protobuf field: bytes data = 2;\n */\n data: Uint8Array;\n /**\n * May be larger than data\n *\n * @generated from protobuf field: uint64 size = 3;\n */\n size: bigint;\n}\n/**\n * @generated from protobuf message objdiff.diff.SectionDiff\n */\nexport interface SectionDiff {\n /**\n * @generated from protobuf field: string name = 1;\n */\n name: string;\n /**\n * @generated from protobuf field: objdiff.diff.SectionKind kind = 2;\n */\n kind: SectionKind;\n /**\n * @generated from protobuf field: uint64 size = 3;\n */\n size: bigint;\n /**\n * @generated from protobuf field: uint64 address = 4;\n */\n address: bigint;\n /**\n * @generated from protobuf field: repeated objdiff.diff.FunctionDiff functions = 5;\n */\n functions: FunctionDiff[];\n /**\n * @generated from protobuf field: repeated objdiff.diff.DataDiff data = 6;\n */\n data: DataDiff[];\n /**\n * @generated from protobuf field: optional float match_percent = 7;\n */\n match_percent?: number;\n}\n/**\n * @generated from protobuf message objdiff.diff.ObjectDiff\n */\nexport interface ObjectDiff {\n /**\n * @generated from protobuf field: repeated objdiff.diff.SectionDiff sections = 1;\n */\n sections: SectionDiff[];\n}\n/**\n * @generated from protobuf message objdiff.diff.DiffResult\n */\nexport interface DiffResult {\n /**\n * @generated from protobuf field: optional objdiff.diff.ObjectDiff left = 1;\n */\n left?: ObjectDiff;\n /**\n * @generated from protobuf field: optional objdiff.diff.ObjectDiff right = 2;\n */\n right?: ObjectDiff;\n}\n/**\n * Symbol visibility flags\n *\n * @generated from protobuf enum objdiff.diff.SymbolFlag\n */\nexport enum SymbolFlag {\n /**\n * @generated from protobuf enum value: SYMBOL_NONE = 0;\n */\n SYMBOL_NONE = 0,\n /**\n * @generated from protobuf enum value: SYMBOL_GLOBAL = 1;\n */\n SYMBOL_GLOBAL = 1,\n /**\n * @generated from protobuf enum value: SYMBOL_LOCAL = 2;\n */\n SYMBOL_LOCAL = 2,\n /**\n * @generated from protobuf enum value: SYMBOL_WEAK = 3;\n */\n SYMBOL_WEAK = 3,\n /**\n * @generated from protobuf enum value: SYMBOL_COMMON = 4;\n */\n SYMBOL_COMMON = 4,\n /**\n * @generated from protobuf enum value: SYMBOL_HIDDEN = 5;\n */\n SYMBOL_HIDDEN = 5\n}\n/**\n * @generated from protobuf enum objdiff.diff.DiffKind\n */\nexport enum DiffKind {\n /**\n * @generated from protobuf enum value: DIFF_NONE = 0;\n */\n DIFF_NONE = 0,\n /**\n * @generated from protobuf enum value: DIFF_REPLACE = 1;\n */\n DIFF_REPLACE = 1,\n /**\n * @generated from protobuf enum value: DIFF_DELETE = 2;\n */\n DIFF_DELETE = 2,\n /**\n * @generated from protobuf enum value: DIFF_INSERT = 3;\n */\n DIFF_INSERT = 3,\n /**\n * @generated from protobuf enum value: DIFF_OP_MISMATCH = 4;\n */\n DIFF_OP_MISMATCH = 4,\n /**\n * @generated from protobuf enum value: DIFF_ARG_MISMATCH = 5;\n */\n DIFF_ARG_MISMATCH = 5\n}\n/**\n * @generated from protobuf enum objdiff.diff.SectionKind\n */\nexport enum SectionKind {\n /**\n * @generated from protobuf enum value: SECTION_UNKNOWN = 0;\n */\n SECTION_UNKNOWN = 0,\n /**\n * @generated from protobuf enum value: SECTION_TEXT = 1;\n */\n SECTION_TEXT = 1,\n /**\n * @generated from protobuf enum value: SECTION_DATA = 2;\n */\n SECTION_DATA = 2,\n /**\n * @generated from protobuf enum value: SECTION_BSS = 3;\n */\n SECTION_BSS = 3,\n /**\n * @generated from protobuf enum value: SECTION_COMMON = 4;\n */\n SECTION_COMMON = 4\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Symbol$Type extends MessageType<Symbol> {\n constructor() {\n super(\"objdiff.diff.Symbol\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"demangled_name\", kind: \"scalar\", localName: \"demangled_name\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"address\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 4, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 5, name: \"flags\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<Symbol>): Symbol {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n message.address = 0n;\n message.size = 0n;\n message.flags = 0;\n if (value !== undefined)\n reflectionMergePartial<Symbol>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Symbol): Symbol {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n case /* optional string demangled_name */ 2:\n message.demangled_name = reader.string();\n break;\n case /* uint64 address */ 3:\n message.address = reader.uint64().toBigInt();\n break;\n case /* uint64 size */ 4:\n message.size = reader.uint64().toBigInt();\n break;\n case /* uint32 flags */ 5:\n message.flags = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Symbol, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n /* optional string demangled_name = 2; */\n if (message.demangled_name !== undefined)\n writer.tag(2, WireType.LengthDelimited).string(message.demangled_name);\n /* uint64 address = 3; */\n if (message.address !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.address);\n /* uint64 size = 4; */\n if (message.size !== 0n)\n writer.tag(4, WireType.Varint).uint64(message.size);\n /* uint32 flags = 5; */\n if (message.flags !== 0)\n writer.tag(5, WireType.Varint).uint32(message.flags);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.Symbol\n */\nexport const Symbol = new Symbol$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Instruction$Type extends MessageType<Instruction> {\n constructor() {\n super(\"objdiff.diff.Instruction\", [\n { no: 1, name: \"address\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"size\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 3, name: \"opcode\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 4, name: \"mnemonic\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 5, name: \"formatted\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 6, name: \"original\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n { no: 7, name: \"arguments\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => Argument },\n { no: 8, name: \"relocation\", kind: \"message\", T: () => Relocation },\n { no: 9, name: \"branch_dest\", kind: \"scalar\", localName: \"branch_dest\", opt: true, T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 10, name: \"line_number\", kind: \"scalar\", localName: \"line_number\", opt: true, T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<Instruction>): Instruction {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.address = 0n;\n message.size = 0;\n message.opcode = 0;\n message.mnemonic = \"\";\n message.formatted = \"\";\n message.arguments = [];\n if (value !== undefined)\n reflectionMergePartial<Instruction>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Instruction): Instruction {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 address */ 1:\n message.address = reader.uint64().toBigInt();\n break;\n case /* uint32 size */ 2:\n message.size = reader.uint32();\n break;\n case /* uint32 opcode */ 3:\n message.opcode = reader.uint32();\n break;\n case /* string mnemonic */ 4:\n message.mnemonic = reader.string();\n break;\n case /* string formatted */ 5:\n message.formatted = reader.string();\n break;\n case /* optional string original */ 6:\n message.original = reader.string();\n break;\n case /* repeated objdiff.diff.Argument arguments */ 7:\n message.arguments.push(Argument.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* optional objdiff.diff.Relocation relocation */ 8:\n message.relocation = Relocation.internalBinaryRead(reader, reader.uint32(), options, message.relocation);\n break;\n case /* optional uint64 branch_dest */ 9:\n message.branch_dest = reader.uint64().toBigInt();\n break;\n case /* optional uint32 line_number */ 10:\n message.line_number = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Instruction, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 address = 1; */\n if (message.address !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.address);\n /* uint32 size = 2; */\n if (message.size !== 0)\n writer.tag(2, WireType.Varint).uint32(message.size);\n /* uint32 opcode = 3; */\n if (message.opcode !== 0)\n writer.tag(3, WireType.Varint).uint32(message.opcode);\n /* string mnemonic = 4; */\n if (message.mnemonic !== \"\")\n writer.tag(4, WireType.LengthDelimited).string(message.mnemonic);\n /* string formatted = 5; */\n if (message.formatted !== \"\")\n writer.tag(5, WireType.LengthDelimited).string(message.formatted);\n /* optional string original = 6; */\n if (message.original !== undefined)\n writer.tag(6, WireType.LengthDelimited).string(message.original);\n /* repeated objdiff.diff.Argument arguments = 7; */\n for (let i = 0; i < message.arguments.length; i++)\n Argument.internalBinaryWrite(message.arguments[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* optional objdiff.diff.Relocation relocation = 8; */\n if (message.relocation)\n Relocation.internalBinaryWrite(message.relocation, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n /* optional uint64 branch_dest = 9; */\n if (message.branch_dest !== undefined)\n writer.tag(9, WireType.Varint).uint64(message.branch_dest);\n /* optional uint32 line_number = 10; */\n if (message.line_number !== undefined)\n writer.tag(10, WireType.Varint).uint32(message.line_number);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.Instruction\n */\nexport const Instruction = new Instruction$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Argument$Type extends MessageType<Argument> {\n constructor() {\n super(\"objdiff.diff.Argument\", [\n { no: 1, name: \"plain_text\", kind: \"scalar\", localName: \"plain_text\", oneof: \"value\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"argument\", kind: \"message\", oneof: \"value\", T: () => ArgumentValue },\n { no: 3, name: \"relocation\", kind: \"message\", oneof: \"value\", T: () => ArgumentRelocation },\n { no: 4, name: \"branch_dest\", kind: \"scalar\", localName: \"branch_dest\", oneof: \"value\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<Argument>): Argument {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<Argument>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Argument): Argument {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string plain_text */ 1:\n message.value = {\n oneofKind: \"plain_text\",\n plain_text: reader.string()\n };\n break;\n case /* objdiff.diff.ArgumentValue argument */ 2:\n message.value = {\n oneofKind: \"argument\",\n argument: ArgumentValue.internalBinaryRead(reader, reader.uint32(), options, (message.value as any).argument)\n };\n break;\n case /* objdiff.diff.ArgumentRelocation relocation */ 3:\n message.value = {\n oneofKind: \"relocation\",\n relocation: ArgumentRelocation.internalBinaryRead(reader, reader.uint32(), options, (message.value as any).relocation)\n };\n break;\n case /* uint64 branch_dest */ 4:\n message.value = {\n oneofKind: \"branch_dest\",\n branch_dest: reader.uint64().toBigInt()\n };\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Argument, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string plain_text = 1; */\n if (message.value.oneofKind === \"plain_text\")\n writer.tag(1, WireType.LengthDelimited).string(message.value.plain_text);\n /* objdiff.diff.ArgumentValue argument = 2; */\n if (message.value.oneofKind === \"argument\")\n ArgumentValue.internalBinaryWrite(message.value.argument, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* objdiff.diff.ArgumentRelocation relocation = 3; */\n if (message.value.oneofKind === \"relocation\")\n ArgumentRelocation.internalBinaryWrite(message.value.relocation, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* uint64 branch_dest = 4; */\n if (message.value.oneofKind === \"branch_dest\")\n writer.tag(4, WireType.Varint).uint64(message.value.branch_dest);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.Argument\n */\nexport const Argument = new Argument$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ArgumentValue$Type extends MessageType<ArgumentValue> {\n constructor() {\n super(\"objdiff.diff.ArgumentValue\", [\n { no: 1, name: \"signed\", kind: \"scalar\", oneof: \"value\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"unsigned\", kind: \"scalar\", oneof: \"value\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"opaque\", kind: \"scalar\", oneof: \"value\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ArgumentValue>): ArgumentValue {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<ArgumentValue>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ArgumentValue): ArgumentValue {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 signed */ 1:\n message.value = {\n oneofKind: \"signed\",\n signed: reader.int64().toBigInt()\n };\n break;\n case /* uint64 unsigned */ 2:\n message.value = {\n oneofKind: \"unsigned\",\n unsigned: reader.uint64().toBigInt()\n };\n break;\n case /* string opaque */ 3:\n message.value = {\n oneofKind: \"opaque\",\n opaque: reader.string()\n };\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ArgumentValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 signed = 1; */\n if (message.value.oneofKind === \"signed\")\n writer.tag(1, WireType.Varint).int64(message.value.signed);\n /* uint64 unsigned = 2; */\n if (message.value.oneofKind === \"unsigned\")\n writer.tag(2, WireType.Varint).uint64(message.value.unsigned);\n /* string opaque = 3; */\n if (message.value.oneofKind === \"opaque\")\n writer.tag(3, WireType.LengthDelimited).string(message.value.opaque);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.ArgumentValue\n */\nexport const ArgumentValue = new ArgumentValue$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ArgumentRelocation$Type extends MessageType<ArgumentRelocation> {\n constructor() {\n super(\"objdiff.diff.ArgumentRelocation\", []);\n }\n create(value?: PartialMessage<ArgumentRelocation>): ArgumentRelocation {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ArgumentRelocation>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ArgumentRelocation): ArgumentRelocation {\n return target ?? this.create();\n }\n internalBinaryWrite(message: ArgumentRelocation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.ArgumentRelocation\n */\nexport const ArgumentRelocation = new ArgumentRelocation$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Relocation$Type extends MessageType<Relocation> {\n constructor() {\n super(\"objdiff.diff.Relocation\", [\n { no: 1, name: \"type\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 2, name: \"type_name\", kind: \"scalar\", localName: \"type_name\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"target\", kind: \"message\", T: () => RelocationTarget }\n ]);\n }\n create(value?: PartialMessage<Relocation>): Relocation {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.type = 0;\n message.type_name = \"\";\n if (value !== undefined)\n reflectionMergePartial<Relocation>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Relocation): Relocation {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint32 type */ 1:\n message.type = reader.uint32();\n break;\n case /* string type_name */ 2:\n message.type_name = reader.string();\n break;\n case /* objdiff.diff.RelocationTarget target */ 3:\n message.target = RelocationTarget.internalBinaryRead(reader, reader.uint32(), options, message.target);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Relocation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint32 type = 1; */\n if (message.type !== 0)\n writer.tag(1, WireType.Varint).uint32(message.type);\n /* string type_name = 2; */\n if (message.type_name !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.type_name);\n /* objdiff.diff.RelocationTarget target = 3; */\n if (message.target)\n RelocationTarget.internalBinaryWrite(message.target, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.Relocation\n */\nexport const Relocation = new Relocation$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass RelocationTarget$Type extends MessageType<RelocationTarget> {\n constructor() {\n super(\"objdiff.diff.RelocationTarget\", [\n { no: 1, name: \"symbol\", kind: \"message\", T: () => Symbol },\n { no: 2, name: \"addend\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<RelocationTarget>): RelocationTarget {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.addend = 0n;\n if (value !== undefined)\n reflectionMergePartial<RelocationTarget>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RelocationTarget): RelocationTarget {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* objdiff.diff.Symbol symbol */ 1:\n message.symbol = Symbol.internalBinaryRead(reader, reader.uint32(), options, message.symbol);\n break;\n case /* int64 addend */ 2:\n message.addend = reader.int64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: RelocationTarget, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* objdiff.diff.Symbol symbol = 1; */\n if (message.symbol)\n Symbol.internalBinaryWrite(message.symbol, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* int64 addend = 2; */\n if (message.addend !== 0n)\n writer.tag(2, WireType.Varint).int64(message.addend);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.RelocationTarget\n */\nexport const RelocationTarget = new RelocationTarget$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass InstructionDiff$Type extends MessageType<InstructionDiff> {\n constructor() {\n super(\"objdiff.diff.InstructionDiff\", [\n { no: 1, name: \"diff_kind\", kind: \"enum\", localName: \"diff_kind\", T: () => [\"objdiff.diff.DiffKind\", DiffKind] },\n { no: 2, name: \"instruction\", kind: \"message\", T: () => Instruction },\n { no: 3, name: \"branch_from\", kind: \"message\", localName: \"branch_from\", T: () => InstructionBranchFrom },\n { no: 4, name: \"branch_to\", kind: \"message\", localName: \"branch_to\", T: () => InstructionBranchTo },\n { no: 5, name: \"arg_diff\", kind: \"message\", localName: \"arg_diff\", repeat: 1 /*RepeatType.PACKED*/, T: () => ArgumentDiff }\n ]);\n }\n create(value?: PartialMessage<InstructionDiff>): InstructionDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.diff_kind = 0;\n message.arg_diff = [];\n if (value !== undefined)\n reflectionMergePartial<InstructionDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstructionDiff): InstructionDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* objdiff.diff.DiffKind diff_kind */ 1:\n message.diff_kind = reader.int32();\n break;\n case /* optional objdiff.diff.Instruction instruction */ 2:\n message.instruction = Instruction.internalBinaryRead(reader, reader.uint32(), options, message.instruction);\n break;\n case /* optional objdiff.diff.InstructionBranchFrom branch_from */ 3:\n message.branch_from = InstructionBranchFrom.internalBinaryRead(reader, reader.uint32(), options, message.branch_from);\n break;\n case /* optional objdiff.diff.InstructionBranchTo branch_to */ 4:\n message.branch_to = InstructionBranchTo.internalBinaryRead(reader, reader.uint32(), options, message.branch_to);\n break;\n case /* repeated objdiff.diff.ArgumentDiff arg_diff */ 5:\n message.arg_diff.push(ArgumentDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: InstructionDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* objdiff.diff.DiffKind diff_kind = 1; */\n if (message.diff_kind !== 0)\n writer.tag(1, WireType.Varint).int32(message.diff_kind);\n /* optional objdiff.diff.Instruction instruction = 2; */\n if (message.instruction)\n Instruction.internalBinaryWrite(message.instruction, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* optional objdiff.diff.InstructionBranchFrom branch_from = 3; */\n if (message.branch_from)\n InstructionBranchFrom.internalBinaryWrite(message.branch_from, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* optional objdiff.diff.InstructionBranchTo branch_to = 4; */\n if (message.branch_to)\n InstructionBranchTo.internalBinaryWrite(message.branch_to, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* repeated objdiff.diff.ArgumentDiff arg_diff = 5; */\n for (let i = 0; i < message.arg_diff.length; i++)\n ArgumentDiff.internalBinaryWrite(message.arg_diff[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.InstructionDiff\n */\nexport const InstructionDiff = new InstructionDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ArgumentDiff$Type extends MessageType<ArgumentDiff> {\n constructor() {\n super(\"objdiff.diff.ArgumentDiff\", [\n { no: 1, name: \"diff_index\", kind: \"scalar\", localName: \"diff_index\", opt: true, T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<ArgumentDiff>): ArgumentDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ArgumentDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ArgumentDiff): ArgumentDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* optional uint32 diff_index */ 1:\n message.diff_index = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ArgumentDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* optional uint32 diff_index = 1; */\n if (message.diff_index !== undefined)\n writer.tag(1, WireType.Varint).uint32(message.diff_index);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.ArgumentDiff\n */\nexport const ArgumentDiff = new ArgumentDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass InstructionBranchFrom$Type extends MessageType<InstructionBranchFrom> {\n constructor() {\n super(\"objdiff.diff.InstructionBranchFrom\", [\n { no: 1, name: \"instruction_index\", kind: \"scalar\", localName: \"instruction_index\", repeat: 1 /*RepeatType.PACKED*/, T: 13 /*ScalarType.UINT32*/ },\n { no: 2, name: \"branch_index\", kind: \"scalar\", localName: \"branch_index\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<InstructionBranchFrom>): InstructionBranchFrom {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.instruction_index = [];\n message.branch_index = 0;\n if (value !== undefined)\n reflectionMergePartial<InstructionBranchFrom>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstructionBranchFrom): InstructionBranchFrom {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated uint32 instruction_index */ 1:\n if (wireType === WireType.LengthDelimited)\n for (let e = reader.int32() + reader.pos; reader.pos < e;)\n message.instruction_index.push(reader.uint32());\n else\n message.instruction_index.push(reader.uint32());\n break;\n case /* uint32 branch_index */ 2:\n message.branch_index = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: InstructionBranchFrom, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated uint32 instruction_index = 1; */\n if (message.instruction_index.length) {\n writer.tag(1, WireType.LengthDelimited).fork();\n for (let i = 0; i < message.instruction_index.length; i++)\n writer.uint32(message.instruction_index[i]);\n writer.join();\n }\n /* uint32 branch_index = 2; */\n if (message.branch_index !== 0)\n writer.tag(2, WireType.Varint).uint32(message.branch_index);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.InstructionBranchFrom\n */\nexport const InstructionBranchFrom = new InstructionBranchFrom$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass InstructionBranchTo$Type extends MessageType<InstructionBranchTo> {\n constructor() {\n super(\"objdiff.diff.InstructionBranchTo\", [\n { no: 1, name: \"instruction_index\", kind: \"scalar\", localName: \"instruction_index\", T: 13 /*ScalarType.UINT32*/ },\n { no: 2, name: \"branch_index\", kind: \"scalar\", localName: \"branch_index\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<InstructionBranchTo>): InstructionBranchTo {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.instruction_index = 0;\n message.branch_index = 0;\n if (value !== undefined)\n reflectionMergePartial<InstructionBranchTo>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstructionBranchTo): InstructionBranchTo {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint32 instruction_index */ 1:\n message.instruction_index = reader.uint32();\n break;\n case /* uint32 branch_index */ 2:\n message.branch_index = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: InstructionBranchTo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint32 instruction_index = 1; */\n if (message.instruction_index !== 0)\n writer.tag(1, WireType.Varint).uint32(message.instruction_index);\n /* uint32 branch_index = 2; */\n if (message.branch_index !== 0)\n writer.tag(2, WireType.Varint).uint32(message.branch_index);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.InstructionBranchTo\n */\nexport const InstructionBranchTo = new InstructionBranchTo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FunctionDiff$Type extends MessageType<FunctionDiff> {\n constructor() {\n super(\"objdiff.diff.FunctionDiff\", [\n { no: 1, name: \"symbol\", kind: \"message\", T: () => Symbol },\n { no: 2, name: \"instructions\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => InstructionDiff },\n { no: 3, name: \"match_percent\", kind: \"scalar\", localName: \"match_percent\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n ]);\n }\n create(value?: PartialMessage<FunctionDiff>): FunctionDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.instructions = [];\n if (value !== undefined)\n reflectionMergePartial<FunctionDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FunctionDiff): FunctionDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* objdiff.diff.Symbol symbol */ 1:\n message.symbol = Symbol.internalBinaryRead(reader, reader.uint32(), options, message.symbol);\n break;\n case /* repeated objdiff.diff.InstructionDiff instructions */ 2:\n message.instructions.push(InstructionDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* optional float match_percent */ 3:\n message.match_percent = reader.float();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FunctionDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* objdiff.diff.Symbol symbol = 1; */\n if (message.symbol)\n Symbol.internalBinaryWrite(message.symbol, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* repeated objdiff.diff.InstructionDiff instructions = 2; */\n for (let i = 0; i < message.instructions.length; i++)\n InstructionDiff.internalBinaryWrite(message.instructions[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* optional float match_percent = 3; */\n if (message.match_percent !== undefined)\n writer.tag(3, WireType.Bit32).float(message.match_percent);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.FunctionDiff\n */\nexport const FunctionDiff = new FunctionDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DataDiff$Type extends MessageType<DataDiff> {\n constructor() {\n super(\"objdiff.diff.DataDiff\", [\n { no: 1, name: \"kind\", kind: \"enum\", T: () => [\"objdiff.diff.DiffKind\", DiffKind] },\n { no: 2, name: \"data\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 3, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<DataDiff>): DataDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.kind = 0;\n message.data = new Uint8Array(0);\n message.size = 0n;\n if (value !== undefined)\n reflectionMergePartial<DataDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DataDiff): DataDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* objdiff.diff.DiffKind kind */ 1:\n message.kind = reader.int32();\n break;\n case /* bytes data */ 2:\n message.data = reader.bytes();\n break;\n case /* uint64 size */ 3:\n message.size = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: DataDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* objdiff.diff.DiffKind kind = 1; */\n if (message.kind !== 0)\n writer.tag(1, WireType.Varint).int32(message.kind);\n /* bytes data = 2; */\n if (message.data.length)\n writer.tag(2, WireType.LengthDelimited).bytes(message.data);\n /* uint64 size = 3; */\n if (message.size !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.size);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.DataDiff\n */\nexport const DataDiff = new DataDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SectionDiff$Type extends MessageType<SectionDiff> {\n constructor() {\n super(\"objdiff.diff.SectionDiff\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"kind\", kind: \"enum\", T: () => [\"objdiff.diff.SectionKind\", SectionKind] },\n { no: 3, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 4, name: \"address\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 5, name: \"functions\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => FunctionDiff },\n { no: 6, name: \"data\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => DataDiff },\n { no: 7, name: \"match_percent\", kind: \"scalar\", localName: \"match_percent\", opt: true, T: 2 /*ScalarType.FLOAT*/ }\n ]);\n }\n create(value?: PartialMessage<SectionDiff>): SectionDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n message.kind = 0;\n message.size = 0n;\n message.address = 0n;\n message.functions = [];\n message.data = [];\n if (value !== undefined)\n reflectionMergePartial<SectionDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SectionDiff): SectionDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n case /* objdiff.diff.SectionKind kind */ 2:\n message.kind = reader.int32();\n break;\n case /* uint64 size */ 3:\n message.size = reader.uint64().toBigInt();\n break;\n case /* uint64 address */ 4:\n message.address = reader.uint64().toBigInt();\n break;\n case /* repeated objdiff.diff.FunctionDiff functions */ 5:\n message.functions.push(FunctionDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* repeated objdiff.diff.DataDiff data */ 6:\n message.data.push(DataDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* optional float match_percent */ 7:\n message.match_percent = reader.float();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SectionDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n /* objdiff.diff.SectionKind kind = 2; */\n if (message.kind !== 0)\n writer.tag(2, WireType.Varint).int32(message.kind);\n /* uint64 size = 3; */\n if (message.size !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.size);\n /* uint64 address = 4; */\n if (message.address !== 0n)\n writer.tag(4, WireType.Varint).uint64(message.address);\n /* repeated objdiff.diff.FunctionDiff functions = 5; */\n for (let i = 0; i < message.functions.length; i++)\n FunctionDiff.internalBinaryWrite(message.functions[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* repeated objdiff.diff.DataDiff data = 6; */\n for (let i = 0; i < message.data.length; i++)\n DataDiff.internalBinaryWrite(message.data[i], writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n /* optional float match_percent = 7; */\n if (message.match_percent !== undefined)\n writer.tag(7, WireType.Bit32).float(message.match_percent);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.SectionDiff\n */\nexport const SectionDiff = new SectionDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObjectDiff$Type extends MessageType<ObjectDiff> {\n constructor() {\n super(\"objdiff.diff.ObjectDiff\", [\n { no: 1, name: \"sections\", kind: \"message\", repeat: 1 /*RepeatType.PACKED*/, T: () => SectionDiff }\n ]);\n }\n create(value?: PartialMessage<ObjectDiff>): ObjectDiff {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.sections = [];\n if (value !== undefined)\n reflectionMergePartial<ObjectDiff>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObjectDiff): ObjectDiff {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated objdiff.diff.SectionDiff sections */ 1:\n message.sections.push(SectionDiff.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ObjectDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated objdiff.diff.SectionDiff sections = 1; */\n for (let i = 0; i < message.sections.length; i++)\n SectionDiff.internalBinaryWrite(message.sections[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.ObjectDiff\n */\nexport const ObjectDiff = new ObjectDiff$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DiffResult$Type extends MessageType<DiffResult> {\n constructor() {\n super(\"objdiff.diff.DiffResult\", [\n { no: 1, name: \"left\", kind: \"message\", T: () => ObjectDiff },\n { no: 2, name: \"right\", kind: \"message\", T: () => ObjectDiff }\n ]);\n }\n create(value?: PartialMessage<DiffResult>): DiffResult {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<DiffResult>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DiffResult): DiffResult {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* optional objdiff.diff.ObjectDiff left */ 1:\n message.left = ObjectDiff.internalBinaryRead(reader, reader.uint32(), options, message.left);\n break;\n case /* optional objdiff.diff.ObjectDiff right */ 2:\n message.right = ObjectDiff.internalBinaryRead(reader, reader.uint32(), options, message.right);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: DiffResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* optional objdiff.diff.ObjectDiff left = 1; */\n if (message.left)\n ObjectDiff.internalBinaryWrite(message.left, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* optional objdiff.diff.ObjectDiff right = 2; */\n if (message.right)\n ObjectDiff.internalBinaryWrite(message.right, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message objdiff.diff.DiffResult\n */\nexport const DiffResult = new DiffResult$Type();\n","import {ArgumentValue, DiffResult, InstructionDiff, RelocationTarget} from \"../gen/diff_pb\";\nimport type {\n ArmArchVersion,\n ArmR9Usage,\n DiffObjConfig,\n MipsAbi,\n MipsInstrCategory,\n X86Formatter\n} from '../pkg';\nimport {AnyHandlerData, InMessage, OutMessage} from './worker';\n\n// Export wasm types\nexport {ArmArchVersion, ArmR9Usage, MipsAbi, MipsInstrCategory, X86Formatter, DiffObjConfig};\n\n// Export protobuf types\nexport * from '../gen/diff_pb';\n\ninterface PromiseCallbacks<T> {\n start: number;\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: string) => void;\n}\n\nlet workerInit = false;\nlet workerCallbacks: PromiseCallbacks<Worker>;\nconst workerReady = new Promise<Worker>((resolve, reject) => {\n workerCallbacks = {start: performance.now(), resolve, reject};\n});\n\nexport async function initialize(data?: {\n workerUrl?: string | URL,\n wasmUrl?: string | URL, // Relative to worker URL\n}): Promise<Worker> {\n if (workerInit) {\n return workerReady;\n }\n workerInit = true;\n let {workerUrl, wasmUrl} = data || {};\n if (!workerUrl) {\n try {\n // Bundlers will convert this into an asset URL\n workerUrl = new URL('./worker.js', import.meta.url);\n } catch (_) {\n workerUrl = 'worker.js';\n }\n }\n if (!wasmUrl) {\n try {\n // Bundlers will convert this into an asset URL\n wasmUrl = new URL('./objdiff_core_bg.wasm', import.meta.url);\n } catch (_) {\n wasmUrl = 'objdiff_core_bg.js';\n }\n }\n const worker = new Worker(workerUrl, {\n name: 'objdiff',\n type: 'module',\n });\n worker.onmessage = onMessage;\n worker.onerror = (event) => {\n console.error(\"Worker error\", event);\n workerCallbacks.reject(\"Worker failed to initialize, wrong URL?\");\n };\n defer<void>({\n type: 'init',\n // URL can't be sent directly\n wasmUrl: wasmUrl.toString(),\n }, worker).then(() => {\n workerCallbacks.resolve(worker);\n }, (e) => {\n workerCallbacks.reject(e);\n });\n return workerReady;\n}\n\nlet globalMessageId = 0;\nconst messageCallbacks = new Map<number, PromiseCallbacks<never>>();\n\nfunction onMessage(event: MessageEvent<OutMessage>) {\n switch (event.data.type) {\n case 'result': {\n const {result, error, messageId} = event.data;\n const callbacks = messageCallbacks.get(messageId);\n if (callbacks) {\n const end = performance.now();\n console.debug(`Message ${messageId} took ${end - callbacks.start}ms`);\n messageCallbacks.delete(messageId);\n if (error != null) {\n callbacks.reject(error);\n } else {\n callbacks.resolve(result as never);\n }\n } else {\n console.warn(`Unknown message ID ${messageId}`);\n }\n break;\n }\n }\n}\n\nasync function defer<T>(message: AnyHandlerData, worker?: Worker): Promise<T> {\n worker = worker || await initialize();\n const messageId = globalMessageId++;\n const promise = new Promise<T>((resolve, reject) => {\n messageCallbacks.set(messageId, {start: performance.now(), resolve, reject});\n });\n worker.postMessage({\n ...message,\n messageId\n } as InMessage);\n return promise;\n}\n\nexport async function runDiff(left: Uint8Array | undefined, right: Uint8Array | undefined, config?: DiffObjConfig): Promise<DiffResult> {\n const data = await defer<Uint8Array>({\n type: 'run_diff_proto',\n left,\n right,\n config\n });\n const parseStart = performance.now();\n const result = DiffResult.fromBinary(data, {readUnknownField: false});\n const end = performance.now();\n console.debug(`Parsing message took ${end - parseStart}ms`);\n return result;\n}\n\nexport type DiffText =\n DiffTextBasic\n | DiffTextBasicColor\n | DiffTextAddress\n | DiffTextLine\n | DiffTextOpcode\n | DiffTextArgument\n | DiffTextSymbol\n | DiffTextBranchDest\n | DiffTextSpacing;\n\ntype DiffTextBase = {\n diff_index?: number,\n};\nexport type DiffTextBasic = DiffTextBase & {\n type: 'basic',\n text: string,\n};\nexport type DiffTextBasicColor = DiffTextBase & {\n type: 'basic_color',\n text: string,\n index: number,\n};\nexport type DiffTextAddress = DiffTextBase & {\n type: 'address',\n address: bigint,\n};\nexport type DiffTextLine = DiffTextBase & {\n type: 'line',\n line_number: number,\n};\nexport type DiffTextOpcode = DiffTextBase & {\n type: 'opcode',\n mnemonic: string,\n opcode: number,\n};\nexport type DiffTextArgument = DiffTextBase & {\n type: 'argument',\n value: ArgumentValue,\n};\nexport type DiffTextSymbol = DiffTextBase & {\n type: 'symbol',\n target: RelocationTarget,\n};\nexport type DiffTextBranchDest = DiffTextBase & {\n type: 'branch_dest',\n address: bigint,\n};\nexport type DiffTextSpacing = DiffTextBase & {\n type: 'spacing',\n count: number,\n};\n\n// Native JavaScript implementation of objdiff_core::diff::display::display_diff\nexport function displayDiff(diff: InstructionDiff, baseAddr: bigint, cb: (text: DiffText) => void) {\n const ins = diff.instruction;\n if (!ins) {\n return;\n }\n if (ins.line_number != null) {\n cb({type: 'line', line_number: ins.line_number});\n }\n cb({type: 'address', address: ins.address - baseAddr});\n if (diff.branch_from) {\n cb({type: 'basic_color', text: ' ~> ', index: diff.branch_from.branch_index});\n } else {\n cb({type: 'spacing', count: 4});\n }\n cb({type: 'opcode', mnemonic: ins.mnemonic, opcode: ins.opcode});\n for (let i = 0; i < ins.arguments.length; i++) {\n if (i === 0) {\n cb({type: 'spacing', count: 1});\n }\n const arg = ins.arguments[i].value;\n const diff_index = diff.arg_diff[i]?.diff_index;\n switch (arg.oneofKind) {\n case \"plain_text\":\n cb({type: 'basic', text: arg.plain_text, diff_index});\n break;\n case \"argument\":\n cb({type: 'argument', value: arg.argument, diff_index});\n break;\n case \"relocation\": {\n const reloc = ins.relocation!;\n cb({type: 'symbol', target: reloc.target!, diff_index});\n break;\n }\n case \"branch_dest\":\n if (arg.branch_dest < baseAddr) {\n cb({type: 'basic', text: '<unknown>', diff_index});\n } else {\n cb({type: 'branch_dest', address: arg.branch_dest - baseAddr, diff_index});\n }\n break;\n }\n }\n if (diff.branch_to) {\n cb({type: 'basic_color', text: ' ~> ', index: diff.branch_to.branch_index});\n }\n}\n"],"mappings":"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","names":["SymbolFlag","DiffKind","SectionKind"]}
|
|
Binary file
|
package/dist/worker.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
interface DiffObjConfig {
|
|
2
|
+
relax_reloc_diffs?: boolean;
|
|
3
|
+
space_between_args?: boolean;
|
|
4
|
+
combine_data_sections?: boolean;
|
|
5
|
+
x86_formatter?: X86Formatter;
|
|
6
|
+
mips_abi?: MipsAbi;
|
|
7
|
+
mips_instr_category?: MipsInstrCategory;
|
|
8
|
+
arm_arch_version?: ArmArchVersion;
|
|
9
|
+
arm_unified_syntax?: boolean;
|
|
10
|
+
arm_av_registers?: boolean;
|
|
11
|
+
arm_r9_usage?: ArmR9Usage;
|
|
12
|
+
arm_sl_usage?: boolean;
|
|
13
|
+
arm_fp_usage?: boolean;
|
|
14
|
+
arm_ip_usage?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
type ArmR9Usage = "GeneralPurpose" | "Sb" | "Tr";
|
|
18
|
+
|
|
19
|
+
type ArmArchVersion = "Auto" | "V4T" | "V5TE" | "V6K";
|
|
20
|
+
|
|
21
|
+
type MipsInstrCategory = "Auto" | "Cpu" | "Rsp" | "R3000Gte" | "R4000Allegrex" | "R5900";
|
|
22
|
+
|
|
23
|
+
type MipsAbi = "Auto" | "O32" | "N32" | "N64";
|
|
24
|
+
|
|
25
|
+
type X86Formatter = "Intel" | "Gas" | "Nasm" | "Masm";
|
|
26
|
+
|
|
27
|
+
declare const handlers: {
|
|
28
|
+
readonly init: typeof init;
|
|
29
|
+
readonly run_diff_proto: typeof run_diff_proto;
|
|
30
|
+
};
|
|
31
|
+
type ExtractData<T> = T extends (arg: infer U) => Promise<unknown> ? U : never;
|
|
32
|
+
type HandlerData = {
|
|
33
|
+
[K in keyof typeof handlers]: {
|
|
34
|
+
type: K;
|
|
35
|
+
} & ExtractData<typeof handlers[K]>;
|
|
36
|
+
};
|
|
37
|
+
declare function init({ wasmUrl }: {
|
|
38
|
+
wasmUrl?: string;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
declare function run_diff_proto({ left, right, config }: {
|
|
41
|
+
left: Uint8Array | undefined;
|
|
42
|
+
right: Uint8Array | undefined;
|
|
43
|
+
config?: DiffObjConfig;
|
|
44
|
+
}): Promise<Uint8Array>;
|
|
45
|
+
type AnyHandlerData = HandlerData[keyof HandlerData];
|
|
46
|
+
type InMessage = AnyHandlerData & {
|
|
47
|
+
messageId: number;
|
|
48
|
+
};
|
|
49
|
+
type OutMessage = {
|
|
50
|
+
type: 'result';
|
|
51
|
+
result: unknown | null;
|
|
52
|
+
error: string | null;
|
|
53
|
+
messageId: number;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export type { AnyHandlerData, InMessage, OutMessage };
|