From 0f079c6a29bfb7e44d035c16e24a6a3d108d58c1 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Tue, 7 Oct 2025 16:04:31 +0200 Subject: [PATCH 01/61] [tools] Add minimal presubmit script Bug: 449893303 Change-Id: I2621ec4f20fa4fdec65c6aba9f1fb468b363fcde Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8643956 Reviewed-by: Pawel Krawczyk Reviewed-by: Michael Achenbach Commit-Queue: Matthias Liedtke Auto-Submit: Matthias Liedtke --- .github/workflows/swift.yml | 7 ++++++ Tools/presubmit.py | 49 +++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 Tools/presubmit.py diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index d2822a14b..302f577f4 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -34,6 +34,13 @@ jobs: - uses: actions/checkout@v2 - name: Build run: swift build -c ${{ matrix.kind }} -v + - name: Install protobuf + # Install protoc so the presubmit can also validate the generated *.pb.swift files. + if: ${{ matrix.os == 'ubuntu-latest' && matrix.kind == 'debug' }} + run: sudo apt install -y protobuf-compiler + - name: Run presubmit checks + if: ${{ matrix.os == 'ubuntu-latest' && matrix.kind == 'debug' }} + run: python3 Tools/presubmit.py - name: Run tests with Node.js run: swift test -c ${{ matrix.kind }} -v - name: Install jsvu diff --git a/Tools/presubmit.py b/Tools/presubmit.py new file mode 100644 index 000000000..2fd903e52 --- /dev/null +++ b/Tools/presubmit.py @@ -0,0 +1,49 @@ +import os +import shutil +import subprocess + +KNOWN_PROTO_FILES = [ + "program.proto", + "operations.proto", + "sync.proto", + "ast.proto" +] + +def check_git_clean(): + """Check that the git repository does not have any uncommitted changes.""" + result = subprocess.run(["git", "status", "--porcelain", "--untracked-files=no"], capture_output=True, check=True) + assert result.stdout.decode().strip() == "", f"Unexpected modified files: {result.stdout.decode()}" + +def check_proto(): + """Check that program.proto is up-to-date.""" + print("Checking generated protobuf files...") + proto_dir = "Sources/Fuzzilli/Protobuf" + subprocess.run(["python3", "./gen_programproto.py"], cwd=proto_dir, check=True) + # gen_programproto.py should be a no-op. + check_git_clean() + + if not shutil.which("protoc"): + print("Skipping protobuf validation as protoc is not available.") + return + + swift_protobuf_path = os.getcwd() + "/.build/checkouts/swift-protobuf" + assert os.path.exists(swift_protobuf_path), \ + "The presubmit requires a swift-protobuf checkout, e.g. via \"swift build\"" + # Build swift-protobuf (for simplicity reuse the fetched repository from the swift-protobuf library). + # Use a debug build as running it is very quick while building it with reelase might be slow. + subprocess.run(["swift", "build", "-c", "debug"], cwd=swift_protobuf_path, check=True) + env = os.environ.copy() + env["PATH"] = f"{swift_protobuf_path}/.build/debug:" + env["PATH"] + cmd = ["protoc", "--swift_opt=Visibility=Public", "--swift_out=."] + KNOWN_PROTO_FILES + subprocess.run(cmd, cwd=proto_dir, check=True, env=env) + # Regenerating the protobuf files should be a no-op. + check_git_clean() + +def main(): + check_git_clean() + check_proto() + # TODO(mliedtke): Ensure formatting delta is zero once we enable automated formatting. + + +if __name__ == '__main__': + main() From 88d0e33041bea3f57a573b10bc4503df279dda74 Mon Sep 17 00:00:00 2001 From: Pawel Krawczyk Date: Thu, 9 Oct 2025 10:49:16 +0000 Subject: [PATCH 02/61] Add support for table.init and table.copy instructions. Bug: 427115604 Change-Id: I0a79b5dc133a09c1ec84b78b966bc6c27d9aa3f2 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8643536 Auto-Submit: Pawel Krawczyk Commit-Queue: Matthias Liedtke Reviewed-by: Matthias Liedtke --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 29 +- .../Fuzzilli/CodeGen/WasmCodeGenerators.swift | 12 +- Sources/Fuzzilli/FuzzIL/JSTyper.swift | 5 +- Sources/Fuzzilli/FuzzIL/WasmOperations.swift | 2 +- Sources/Fuzzilli/Protobuf/program.pb.swift | 1374 ++++++++--------- Sources/Fuzzilli/Protobuf/program.proto | 592 +++---- Tests/FuzzilliTests/WasmTests.swift | 100 +- 7 files changed, 1106 insertions(+), 1008 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index e8990e253..d6cf99689 100644 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -3823,17 +3823,20 @@ public class ProgramBuilder { } public func wasmTableInit(elementSegment: Variable, table: Variable, tableOffset: Variable, elementSegmentOffset: Variable, nrOfElementsToUpdate: Variable) { - // TODO: b/427115604 - assert that table.elemType IS_SUBTYPE_OF elementSegment.elemType (depending on refactor outcome). + let elementSegmentType = ILType.wasmFuncRef + let tableElemType = b.type(of: table).wasmTableType!.elementType + assert(elementSegmentType.Is(tableElemType)) + let addrType = b.type(of: table).wasmTableType!.isTable64 ? ILType.wasmi64 : ILType.wasmi32 b.emit(WasmTableInit(), withInputs: [elementSegment, table, tableOffset, elementSegmentOffset, nrOfElementsToUpdate], - types: [.wasmElementSegment(), .object(ofGroup: "WasmTable"), addrType, addrType, addrType]) + types: [.wasmElementSegment(), .object(ofGroup: "WasmTable"), addrType, .wasmi32, .wasmi32]) } public func wasmTableCopy(dstTable: Variable, srcTable: Variable, dstOffset: Variable, srcOffset: Variable, count: Variable) { - // TODO: b/427115604 - assert that srcTable.elemType IS_SUBTYPE_OF dstTable.elemType (depending on refactor outcome). let dstTableType = b.type(of: dstTable).wasmTableType! let srcTableType = b.type(of: srcTable).wasmTableType! assert(dstTableType.isTable64 == srcTableType.isTable64) + assert(srcTableType.elementType.Is(dstTableType.elementType)) let addrType = dstTableType.isTable64 ? ILType.wasmi64 : ILType.wasmi32 b.emit(WasmTableCopy(), withInputs: [dstTable, srcTable, dstOffset, srcOffset, count], @@ -4354,21 +4357,27 @@ public class ProgramBuilder { @discardableResult public func addTable(elementType: ILType, minSize: Int, maxSize: Int? = nil, definedEntries: [WasmTableType.IndexInTableAndWasmSignature] = [], definedEntryValues: [Variable] = [], isTable64: Bool) -> Variable { - let inputTypes = if elementType == .wasmFuncRef { - Array(repeating: .wasmFunctionDef() | .function(), count: definedEntries.count) - } else { - [ILType]() - } + let inputTypes = Array(repeating: getEntryTypeForTable(elementType: elementType), count: definedEntries.count) return b.emit(WasmDefineTable(elementType: elementType, limits: Limits(min: minSize, max: maxSize), definedEntries: definedEntries, isTable64: isTable64), withInputs: definedEntryValues, types: inputTypes).output } @discardableResult - public func addElementSegment(elementsType: ILType, elements: [Variable]) -> Variable { - let inputTypes = Array(repeating: elementsType, count: elements.count) + public func addElementSegment(elements: [Variable]) -> Variable { + let inputTypes = Array(repeating: getEntryTypeForTable(elementType: ILType.wasmFuncRef), count: elements.count) return b.emit(WasmDefineElementSegment(size: UInt32(elements.count)), withInputs: elements, types: inputTypes).output } + public func getEntryTypeForTable(elementType: ILType) -> ILType { + switch elementType { + case .wasmFuncRef: + return .wasmFunctionDef() | .function() + default: + return .object() + } + } + + // This result can be ignored right now, as we can only define one memory per module // Also this should be tracked like a global / table. @discardableResult diff --git a/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift b/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift index 685cb0c0f..865b94a7a 100644 --- a/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift @@ -632,9 +632,7 @@ public let WasmCodeGenerators: [CodeGenerator] = [ // For funcref tables, we need to look for functions to populate the entries. // These are going to be either wasm function definitions (.wasmFunctionDef()) or JS functions (.function()). // TODO(manoskouk): When we have support for constant expressions, consider looking for .wasmFuncRef instead. - let expectedEntryType = - elementType == .wasmFuncRef - ? .wasmFunctionDef() | .function() : .object() + let expectedEntryType = module.getEntryTypeForTable(elementType: elementType) // Currently, only generate entries for funcref tables. // TODO(manoskouk): Generalize this. @@ -667,13 +665,13 @@ public let WasmCodeGenerators: [CodeGenerator] = [ }, CodeGenerator("WasmDefineElementSegmentGenerator", inContext: .single(.wasm)) { b in - let elementsType: ILType = .wasmFunctionDef() | .function() - if b.randomVariable(ofType: elementsType) == nil { + let expectedEntryType = b.currentWasmModule.getEntryTypeForTable(elementType: ILType.wasmFuncRef) + if b.randomVariable(ofType: expectedEntryType) == nil { return } - var elements: [Variable] = (0...Int.random(in: 0...8)).map {_ in b.randomVariable(ofType: elementsType)!} - b.currentWasmModule.addElementSegment(elementsType: elementsType, elements: elements) + var elements: [Variable] = (0...Int.random(in: 0...8)).map {_ in b.randomVariable(ofType: expectedEntryType)!} + b.currentWasmModule.addElementSegment(elements: elements) }, CodeGenerator("WasmDropElementSegmentGenerator", inContext: .single(.wasmFunction), inputs: .required(.wasmElementSegment())) { b, elementSegment in diff --git a/Sources/Fuzzilli/FuzzIL/JSTyper.swift b/Sources/Fuzzilli/FuzzIL/JSTyper.swift index 6157ea39d..63a3ed41a 100644 --- a/Sources/Fuzzilli/FuzzIL/JSTyper.swift +++ b/Sources/Fuzzilli/FuzzIL/JSTyper.swift @@ -728,8 +728,9 @@ public struct JSTyper: Analyzer { type(of: instr.input(0)).wasmElementSegmentType!.markAsDropped() case .wasmTableInit(_), .wasmTableCopy(_): - // TODO(427115604): - implement both init and copy instructions. - break + let definingInstruction = defUseAnalyzer.definition(of: instr.input(0)) + dynamicObjectGroupManager.addWasmTable(withType: type(of: instr.input(0)), forDefinition: definingInstruction, forVariable: instr.input(0)) + // Ignore changed function signatures - it is too hard to reason about them statically. case .wasmDefineMemory(let op): setType(of: instr.output, to: op.wasmMemory) registerWasmMemoryUse(for: instr.output) diff --git a/Sources/Fuzzilli/FuzzIL/WasmOperations.swift b/Sources/Fuzzilli/FuzzIL/WasmOperations.swift index c05115eba..bed8bd6ae 100644 --- a/Sources/Fuzzilli/FuzzIL/WasmOperations.swift +++ b/Sources/Fuzzilli/FuzzIL/WasmOperations.swift @@ -813,7 +813,7 @@ final class WasmDefineTable: WasmOperation { final class WasmDefineElementSegment: WasmOperation { override var opcode: Opcode { .wasmDefineElementSegment(self) } - public let size: UInt32 + let size: UInt32 init(size: UInt32) { self.size = size diff --git a/Sources/Fuzzilli/Protobuf/program.pb.swift b/Sources/Fuzzilli/Protobuf/program.pb.swift index e13009f1f..bf4e21f82 100644 --- a/Sources/Fuzzilli/Protobuf/program.pb.swift +++ b/Sources/Fuzzilli/Protobuf/program.pb.swift @@ -353,6 +353,22 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { set {operation = .endClassInstanceMethod(newValue)} } + public var beginClassInstanceComputedMethod: Fuzzilli_Protobuf_BeginClassInstanceComputedMethod { + get { + if case .beginClassInstanceComputedMethod(let v)? = operation {return v} + return Fuzzilli_Protobuf_BeginClassInstanceComputedMethod() + } + set {operation = .beginClassInstanceComputedMethod(newValue)} + } + + public var endClassInstanceComputedMethod: Fuzzilli_Protobuf_EndClassInstanceComputedMethod { + get { + if case .endClassInstanceComputedMethod(let v)? = operation {return v} + return Fuzzilli_Protobuf_EndClassInstanceComputedMethod() + } + set {operation = .endClassInstanceComputedMethod(newValue)} + } + public var beginClassInstanceGetter: Fuzzilli_Protobuf_BeginClassInstanceGetter { get { if case .beginClassInstanceGetter(let v)? = operation {return v} @@ -441,6 +457,22 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { set {operation = .endClassStaticMethod(newValue)} } + public var beginClassStaticComputedMethod: Fuzzilli_Protobuf_BeginClassStaticComputedMethod { + get { + if case .beginClassStaticComputedMethod(let v)? = operation {return v} + return Fuzzilli_Protobuf_BeginClassStaticComputedMethod() + } + set {operation = .beginClassStaticComputedMethod(newValue)} + } + + public var endClassStaticComputedMethod: Fuzzilli_Protobuf_EndClassStaticComputedMethod { + get { + if case .endClassStaticComputedMethod(let v)? = operation {return v} + return Fuzzilli_Protobuf_EndClassStaticComputedMethod() + } + set {operation = .endClassStaticComputedMethod(newValue)} + } + public var beginClassStaticGetter: Fuzzilli_Protobuf_BeginClassStaticGetter { get { if case .beginClassStaticGetter(let v)? = operation {return v} @@ -2689,38 +2721,6 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { set {operation = .createNamedAsyncDisposableVariable(newValue)} } - public var beginClassInstanceComputedMethod: Fuzzilli_Protobuf_BeginClassInstanceComputedMethod { - get { - if case .beginClassInstanceComputedMethod(let v)? = operation {return v} - return Fuzzilli_Protobuf_BeginClassInstanceComputedMethod() - } - set {operation = .beginClassInstanceComputedMethod(newValue)} - } - - public var endClassInstanceComputedMethod: Fuzzilli_Protobuf_EndClassInstanceComputedMethod { - get { - if case .endClassInstanceComputedMethod(let v)? = operation {return v} - return Fuzzilli_Protobuf_EndClassInstanceComputedMethod() - } - set {operation = .endClassInstanceComputedMethod(newValue)} - } - - public var beginClassStaticComputedMethod: Fuzzilli_Protobuf_BeginClassStaticComputedMethod { - get { - if case .beginClassStaticComputedMethod(let v)? = operation {return v} - return Fuzzilli_Protobuf_BeginClassStaticComputedMethod() - } - set {operation = .beginClassStaticComputedMethod(newValue)} - } - - public var endClassStaticComputedMethod: Fuzzilli_Protobuf_EndClassStaticComputedMethod { - get { - if case .endClassStaticComputedMethod(let v)? = operation {return v} - return Fuzzilli_Protobuf_EndClassStaticComputedMethod() - } - set {operation = .endClassStaticComputedMethod(newValue)} - } - public var unknownFields = SwiftProtobuf.UnknownStorage() public enum OneOf_Operation: Equatable, Sendable { @@ -2762,6 +2762,8 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { case classAddInstanceComputedProperty(Fuzzilli_Protobuf_ClassAddInstanceComputedProperty) case beginClassInstanceMethod(Fuzzilli_Protobuf_BeginClassInstanceMethod) case endClassInstanceMethod(Fuzzilli_Protobuf_EndClassInstanceMethod) + case beginClassInstanceComputedMethod(Fuzzilli_Protobuf_BeginClassInstanceComputedMethod) + case endClassInstanceComputedMethod(Fuzzilli_Protobuf_EndClassInstanceComputedMethod) case beginClassInstanceGetter(Fuzzilli_Protobuf_BeginClassInstanceGetter) case endClassInstanceGetter(Fuzzilli_Protobuf_EndClassInstanceGetter) case beginClassInstanceSetter(Fuzzilli_Protobuf_BeginClassInstanceSetter) @@ -2773,6 +2775,8 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { case endClassStaticInitializer(Fuzzilli_Protobuf_EndClassStaticInitializer) case beginClassStaticMethod(Fuzzilli_Protobuf_BeginClassStaticMethod) case endClassStaticMethod(Fuzzilli_Protobuf_EndClassStaticMethod) + case beginClassStaticComputedMethod(Fuzzilli_Protobuf_BeginClassStaticComputedMethod) + case endClassStaticComputedMethod(Fuzzilli_Protobuf_EndClassStaticComputedMethod) case beginClassStaticGetter(Fuzzilli_Protobuf_BeginClassStaticGetter) case endClassStaticGetter(Fuzzilli_Protobuf_EndClassStaticGetter) case beginClassStaticSetter(Fuzzilli_Protobuf_BeginClassStaticSetter) @@ -3054,10 +3058,6 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { case wasmDefineSignatureType(Fuzzilli_Protobuf_WasmDefineSignatureType) case createNamedDisposableVariable(Fuzzilli_Protobuf_CreateNamedDisposableVariable) case createNamedAsyncDisposableVariable(Fuzzilli_Protobuf_CreateNamedAsyncDisposableVariable) - case beginClassInstanceComputedMethod(Fuzzilli_Protobuf_BeginClassInstanceComputedMethod) - case endClassInstanceComputedMethod(Fuzzilli_Protobuf_EndClassInstanceComputedMethod) - case beginClassStaticComputedMethod(Fuzzilli_Protobuf_BeginClassStaticComputedMethod) - case endClassStaticComputedMethod(Fuzzilli_Protobuf_EndClassStaticComputedMethod) } @@ -3106,7 +3106,7 @@ fileprivate let _protobuf_package = "fuzzilli.protobuf" extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { public static let protoMessageName: String = _protobuf_package + ".Instruction" - public static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}inouts\0\u{1}opIdx\0\u{1}nop\0\u{1}loadInteger\0\u{1}loadBigInt\0\u{1}loadFloat\0\u{1}loadString\0\u{1}loadBoolean\0\u{1}loadUndefined\0\u{1}loadNull\0\u{1}loadThis\0\u{1}loadArguments\0\u{1}createNamedVariable\0\u{1}loadDisposableVariable\0\u{1}loadAsyncDisposableVariable\0\u{1}loadRegExp\0\u{1}beginObjectLiteral\0\u{1}objectLiteralAddProperty\0\u{1}objectLiteralAddElement\0\u{1}objectLiteralAddComputedProperty\0\u{1}objectLiteralCopyProperties\0\u{1}objectLiteralSetPrototype\0\u{1}beginObjectLiteralMethod\0\u{1}endObjectLiteralMethod\0\u{1}beginObjectLiteralComputedMethod\0\u{1}endObjectLiteralComputedMethod\0\u{1}beginObjectLiteralGetter\0\u{1}endObjectLiteralGetter\0\u{1}beginObjectLiteralSetter\0\u{1}endObjectLiteralSetter\0\u{1}endObjectLiteral\0\u{1}beginClassDefinition\0\u{1}beginClassConstructor\0\u{1}endClassConstructor\0\u{1}classAddInstanceProperty\0\u{1}classAddInstanceElement\0\u{1}classAddInstanceComputedProperty\0\u{1}beginClassInstanceMethod\0\u{1}endClassInstanceMethod\0\u{1}beginClassInstanceGetter\0\u{1}endClassInstanceGetter\0\u{1}beginClassInstanceSetter\0\u{1}endClassInstanceSetter\0\u{1}classAddStaticProperty\0\u{1}classAddStaticElement\0\u{1}classAddStaticComputedProperty\0\u{1}beginClassStaticInitializer\0\u{1}endClassStaticInitializer\0\u{1}beginClassStaticMethod\0\u{1}endClassStaticMethod\0\u{1}beginClassStaticGetter\0\u{1}endClassStaticGetter\0\u{1}beginClassStaticSetter\0\u{1}endClassStaticSetter\0\u{1}classAddPrivateInstanceProperty\0\u{1}beginClassPrivateInstanceMethod\0\u{1}endClassPrivateInstanceMethod\0\u{1}classAddPrivateStaticProperty\0\u{1}beginClassPrivateStaticMethod\0\u{1}endClassPrivateStaticMethod\0\u{1}endClassDefinition\0\u{1}createArray\0\u{1}createIntArray\0\u{1}createFloatArray\0\u{1}createArrayWithSpread\0\u{1}createTemplateString\0\u{1}getProperty\0\u{1}setProperty\0\u{1}updateProperty\0\u{1}deleteProperty\0\u{1}configureProperty\0\u{1}getElement\0\u{1}setElement\0\u{1}updateElement\0\u{1}deleteElement\0\u{1}configureElement\0\u{1}getComputedProperty\0\u{1}setComputedProperty\0\u{1}updateComputedProperty\0\u{1}deleteComputedProperty\0\u{1}configureComputedProperty\0\u{1}typeOf\0\u{1}void\0\u{1}testInstanceOf\0\u{1}testIn\0\u{1}beginPlainFunction\0\u{1}endPlainFunction\0\u{1}beginArrowFunction\0\u{1}endArrowFunction\0\u{1}beginGeneratorFunction\0\u{1}endGeneratorFunction\0\u{1}beginAsyncFunction\0\u{1}endAsyncFunction\0\u{1}beginAsyncArrowFunction\0\u{1}endAsyncArrowFunction\0\u{1}beginAsyncGeneratorFunction\0\u{1}endAsyncGeneratorFunction\0\u{1}beginConstructor\0\u{1}endConstructor\0\u{1}directive\0\u{1}return\0\u{1}yield\0\u{1}yieldEach\0\u{1}await\0\u{1}callFunction\0\u{1}callFunctionWithSpread\0\u{1}construct\0\u{1}constructWithSpread\0\u{1}callMethod\0\u{1}callMethodWithSpread\0\u{1}callComputedMethod\0\u{1}callComputedMethodWithSpread\0\u{1}unaryOperation\0\u{1}binaryOperation\0\u{1}ternaryOperation\0\u{1}update\0\u{1}dup\0\u{1}reassign\0\u{1}destructArray\0\u{1}destructArrayAndReassign\0\u{1}destructObject\0\u{1}destructObjectAndReassign\0\u{1}compare\0\u{1}eval\0\u{1}beginWith\0\u{1}endWith\0\u{1}callSuperConstructor\0\u{1}callSuperMethod\0\u{1}getPrivateProperty\0\u{1}setPrivateProperty\0\u{1}updatePrivateProperty\0\u{1}callPrivateMethod\0\u{1}getSuperProperty\0\u{1}setSuperProperty\0\u{1}getComputedSuperProperty\0\u{1}setComputedSuperProperty\0\u{1}updateSuperProperty\0\u{1}beginIf\0\u{1}beginElse\0\u{1}endIf\0\u{1}beginWhileLoopHeader\0\u{1}beginWhileLoopBody\0\u{1}endWhileLoop\0\u{1}beginDoWhileLoopBody\0\u{1}beginDoWhileLoopHeader\0\u{1}endDoWhileLoop\0\u{1}beginForLoopInitializer\0\u{1}beginForLoopCondition\0\u{1}beginForLoopAfterthought\0\u{1}beginForLoopBody\0\u{1}endForLoop\0\u{1}beginForInLoop\0\u{1}endForInLoop\0\u{1}beginForOfLoop\0\u{1}beginForOfLoopWithDestruct\0\u{1}endForOfLoop\0\u{1}beginRepeatLoop\0\u{1}endRepeatLoop\0\u{1}loopBreak\0\u{1}loopContinue\0\u{1}beginTry\0\u{1}beginCatch\0\u{1}beginFinally\0\u{1}endTryCatchFinally\0\u{1}throwException\0\u{1}beginCodeString\0\u{1}endCodeString\0\u{1}beginBlockStatement\0\u{1}endBlockStatement\0\u{1}beginSwitch\0\u{1}beginSwitchCase\0\u{1}beginSwitchDefaultCase\0\u{1}endSwitchCase\0\u{1}endSwitch\0\u{1}switchBreak\0\u{1}loadNewTarget\0\u{1}print\0\u{1}explore\0\u{1}probe\0\u{1}fixup\0\u{1}beginWasmModule\0\u{1}endWasmModule\0\u{1}createWasmGlobal\0\u{1}createWasmMemory\0\u{1}createWasmTable\0\u{1}createWasmJSTag\0\u{1}createWasmTag\0\u{1}wrapPromising\0\u{1}wrapSuspending\0\u{1}bindMethod\0\u{1}bindFunction\0\u{1}consti64\0\u{1}consti32\0\u{1}constf32\0\u{1}constf64\0\u{1}wasmReturn\0\u{1}wasmJsCall\0\u{1}wasmi32CompareOp\0\u{1}wasmi64CompareOp\0\u{1}wasmf32CompareOp\0\u{1}wasmf64CompareOp\0\u{1}wasmi32EqualZero\0\u{1}wasmi64EqualZero\0\u{1}wasmi32BinOp\0\u{1}wasmi64BinOp\0\u{1}wasmi32UnOp\0\u{1}wasmi64UnOp\0\u{1}wasmf32BinOp\0\u{1}wasmf64BinOp\0\u{1}wasmf32UnOp\0\u{1}wasmf64UnOp\0\u{1}wasmWrapi64Toi32\0\u{1}wasmTruncatef32Toi32\0\u{1}wasmTruncatef64Toi32\0\u{1}wasmExtendi32Toi64\0\u{1}wasmTruncatef32Toi64\0\u{1}wasmTruncatef64Toi64\0\u{1}wasmConverti32Tof32\0\u{1}wasmConverti64Tof32\0\u{1}wasmDemotef64Tof32\0\u{1}wasmConverti32Tof64\0\u{1}wasmConverti64Tof64\0\u{1}wasmPromotef32Tof64\0\u{1}wasmReinterpretf32Asi32\0\u{1}wasmReinterpretf64Asi64\0\u{1}wasmReinterpreti32Asf32\0\u{1}wasmReinterpreti64Asf64\0\u{1}wasmSignExtend8Intoi32\0\u{1}wasmSignExtend16Intoi32\0\u{1}wasmSignExtend8Intoi64\0\u{1}wasmSignExtend16Intoi64\0\u{1}wasmSignExtend32Intoi64\0\u{1}wasmTruncateSatf32Toi32\0\u{1}wasmTruncateSatf64Toi32\0\u{1}wasmTruncateSatf32Toi64\0\u{1}wasmTruncateSatf64Toi64\0\u{1}wasmReassign\0\u{1}wasmDefineGlobal\0\u{1}wasmDefineTable\0\u{1}wasmDefineMemory\0\u{1}wasmDefineDataSegment\0\u{1}wasmLoadGlobal\0\u{1}wasmStoreGlobal\0\u{1}wasmTableGet\0\u{1}wasmTableSet\0\u{1}wasmTableSize\0\u{1}wasmTableGrow\0\u{1}wasmCallIndirect\0\u{1}wasmCallDirect\0\u{1}wasmReturnCallDirect\0\u{1}wasmReturnCallIndirect\0\u{1}wasmMemoryLoad\0\u{1}wasmMemoryStore\0\u{1}wasmAtomicLoad\0\u{1}wasmAtomicStore\0\u{1}wasmAtomicRMW\0\u{1}wasmAtomicCmpxchg\0\u{1}wasmMemorySize\0\u{1}wasmMemoryGrow\0\u{1}wasmMemoryFill\0\u{1}wasmMemoryInit\0\u{1}wasmDropDataSegment\0\u{1}beginWasmFunction\0\u{1}endWasmFunction\0\u{1}wasmBeginBlock\0\u{1}wasmEndBlock\0\u{1}wasmBeginLoop\0\u{1}wasmEndLoop\0\u{1}wasmBranch\0\u{1}wasmBranchIf\0\u{1}wasmBranchTable\0\u{1}wasmNop\0\u{1}wasmBeginIf\0\u{1}wasmBeginElse\0\u{1}wasmEndIf\0\u{1}wasmBeginTryTable\0\u{1}wasmEndTryTable\0\u{1}wasmBeginTry\0\u{1}wasmBeginCatchAll\0\u{1}wasmBeginCatch\0\u{1}wasmEndTry\0\u{1}wasmBeginTryDelegate\0\u{1}wasmEndTryDelegate\0\u{1}wasmThrow\0\u{1}wasmRethrow\0\u{1}wasmThrowRef\0\u{1}wasmDefineTag\0\u{1}constSimd128\0\u{1}wasmSimd128Compare\0\u{1}wasmSimd128IntegerUnOp\0\u{1}wasmSimd128IntegerBinOp\0\u{1}wasmSimd128IntegerTernaryOp\0\u{1}wasmSimd128FloatUnOp\0\u{1}wasmSimd128FloatBinOp\0\u{1}wasmSimd128FloatTernaryOp\0\u{1}wasmSimdSplat\0\u{1}wasmSimdExtractLane\0\u{1}wasmSimdReplaceLane\0\u{1}wasmSimdStoreLane\0\u{1}wasmSimdLoadLane\0\u{1}wasmSimdLoad\0\u{1}wasmUnreachable\0\u{1}wasmSelect\0\u{1}wasmBeginTypeGroup\0\u{1}wasmEndTypeGroup\0\u{1}wasmDefineArrayType\0\u{1}wasmDefineStructType\0\u{1}wasmDefineForwardOrSelfReference\0\u{1}wasmResolveForwardReference\0\u{1}wasmArrayNewFixed\0\u{1}wasmArrayNewDefault\0\u{1}wasmArrayLen\0\u{1}wasmArrayGet\0\u{1}wasmArraySet\0\u{1}wasmStructNewDefault\0\u{1}wasmStructGet\0\u{1}wasmStructSet\0\u{1}wasmRefNull\0\u{1}wasmRefIsNull\0\u{1}wasmRefI31\0\u{1}wasmI31Get\0\u{1}wasmAnyConvertExtern\0\u{1}wasmExternConvertAny\0\u{1}wasmMemoryCopy\0\u{1}wasmDefineElementSegment\0\u{1}wasmTableInit\0\u{1}wasmDropElementSegment\0\u{1}wasmTableCopy\0\u{1}wasmDefineSignatureType\0\u{1}createNamedDisposableVariable\0\u{1}createNamedAsyncDisposableVariable\0\u{1}beginClassInstanceComputedMethod\0\u{1}endClassInstanceComputedMethod\0\u{1}beginClassStaticComputedMethod\0\u{1}endClassStaticComputedMethod\0") + public static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}inouts\0\u{1}opIdx\0\u{1}nop\0\u{1}loadInteger\0\u{1}loadBigInt\0\u{1}loadFloat\0\u{1}loadString\0\u{1}loadBoolean\0\u{1}loadUndefined\0\u{1}loadNull\0\u{1}loadThis\0\u{1}loadArguments\0\u{1}createNamedVariable\0\u{1}loadDisposableVariable\0\u{1}loadAsyncDisposableVariable\0\u{1}loadRegExp\0\u{1}beginObjectLiteral\0\u{1}objectLiteralAddProperty\0\u{1}objectLiteralAddElement\0\u{1}objectLiteralAddComputedProperty\0\u{1}objectLiteralCopyProperties\0\u{1}objectLiteralSetPrototype\0\u{1}beginObjectLiteralMethod\0\u{1}endObjectLiteralMethod\0\u{1}beginObjectLiteralComputedMethod\0\u{1}endObjectLiteralComputedMethod\0\u{1}beginObjectLiteralGetter\0\u{1}endObjectLiteralGetter\0\u{1}beginObjectLiteralSetter\0\u{1}endObjectLiteralSetter\0\u{1}endObjectLiteral\0\u{1}beginClassDefinition\0\u{1}beginClassConstructor\0\u{1}endClassConstructor\0\u{1}classAddInstanceProperty\0\u{1}classAddInstanceElement\0\u{1}classAddInstanceComputedProperty\0\u{1}beginClassInstanceMethod\0\u{1}endClassInstanceMethod\0\u{1}beginClassInstanceComputedMethod\0\u{1}endClassInstanceComputedMethod\0\u{1}beginClassInstanceGetter\0\u{1}endClassInstanceGetter\0\u{1}beginClassInstanceSetter\0\u{1}endClassInstanceSetter\0\u{1}classAddStaticProperty\0\u{1}classAddStaticElement\0\u{1}classAddStaticComputedProperty\0\u{1}beginClassStaticInitializer\0\u{1}endClassStaticInitializer\0\u{1}beginClassStaticMethod\0\u{1}endClassStaticMethod\0\u{1}beginClassStaticComputedMethod\0\u{1}endClassStaticComputedMethod\0\u{1}beginClassStaticGetter\0\u{1}endClassStaticGetter\0\u{1}beginClassStaticSetter\0\u{1}endClassStaticSetter\0\u{1}classAddPrivateInstanceProperty\0\u{1}beginClassPrivateInstanceMethod\0\u{1}endClassPrivateInstanceMethod\0\u{1}classAddPrivateStaticProperty\0\u{1}beginClassPrivateStaticMethod\0\u{1}endClassPrivateStaticMethod\0\u{1}endClassDefinition\0\u{1}createArray\0\u{1}createIntArray\0\u{1}createFloatArray\0\u{1}createArrayWithSpread\0\u{1}createTemplateString\0\u{1}getProperty\0\u{1}setProperty\0\u{1}updateProperty\0\u{1}deleteProperty\0\u{1}configureProperty\0\u{1}getElement\0\u{1}setElement\0\u{1}updateElement\0\u{1}deleteElement\0\u{1}configureElement\0\u{1}getComputedProperty\0\u{1}setComputedProperty\0\u{1}updateComputedProperty\0\u{1}deleteComputedProperty\0\u{1}configureComputedProperty\0\u{1}typeOf\0\u{1}void\0\u{1}testInstanceOf\0\u{1}testIn\0\u{1}beginPlainFunction\0\u{1}endPlainFunction\0\u{1}beginArrowFunction\0\u{1}endArrowFunction\0\u{1}beginGeneratorFunction\0\u{1}endGeneratorFunction\0\u{1}beginAsyncFunction\0\u{1}endAsyncFunction\0\u{1}beginAsyncArrowFunction\0\u{1}endAsyncArrowFunction\0\u{1}beginAsyncGeneratorFunction\0\u{1}endAsyncGeneratorFunction\0\u{1}beginConstructor\0\u{1}endConstructor\0\u{1}directive\0\u{1}return\0\u{1}yield\0\u{1}yieldEach\0\u{1}await\0\u{1}callFunction\0\u{1}callFunctionWithSpread\0\u{1}construct\0\u{1}constructWithSpread\0\u{1}callMethod\0\u{1}callMethodWithSpread\0\u{1}callComputedMethod\0\u{1}callComputedMethodWithSpread\0\u{1}unaryOperation\0\u{1}binaryOperation\0\u{1}ternaryOperation\0\u{1}update\0\u{1}dup\0\u{1}reassign\0\u{1}destructArray\0\u{1}destructArrayAndReassign\0\u{1}destructObject\0\u{1}destructObjectAndReassign\0\u{1}compare\0\u{1}eval\0\u{1}beginWith\0\u{1}endWith\0\u{1}callSuperConstructor\0\u{1}callSuperMethod\0\u{1}getPrivateProperty\0\u{1}setPrivateProperty\0\u{1}updatePrivateProperty\0\u{1}callPrivateMethod\0\u{1}getSuperProperty\0\u{1}setSuperProperty\0\u{1}getComputedSuperProperty\0\u{1}setComputedSuperProperty\0\u{1}updateSuperProperty\0\u{1}beginIf\0\u{1}beginElse\0\u{1}endIf\0\u{1}beginWhileLoopHeader\0\u{1}beginWhileLoopBody\0\u{1}endWhileLoop\0\u{1}beginDoWhileLoopBody\0\u{1}beginDoWhileLoopHeader\0\u{1}endDoWhileLoop\0\u{1}beginForLoopInitializer\0\u{1}beginForLoopCondition\0\u{1}beginForLoopAfterthought\0\u{1}beginForLoopBody\0\u{1}endForLoop\0\u{1}beginForInLoop\0\u{1}endForInLoop\0\u{1}beginForOfLoop\0\u{1}beginForOfLoopWithDestruct\0\u{1}endForOfLoop\0\u{1}beginRepeatLoop\0\u{1}endRepeatLoop\0\u{1}loopBreak\0\u{1}loopContinue\0\u{1}beginTry\0\u{1}beginCatch\0\u{1}beginFinally\0\u{1}endTryCatchFinally\0\u{1}throwException\0\u{1}beginCodeString\0\u{1}endCodeString\0\u{1}beginBlockStatement\0\u{1}endBlockStatement\0\u{1}beginSwitch\0\u{1}beginSwitchCase\0\u{1}beginSwitchDefaultCase\0\u{1}endSwitchCase\0\u{1}endSwitch\0\u{1}switchBreak\0\u{1}loadNewTarget\0\u{1}print\0\u{1}explore\0\u{1}probe\0\u{1}fixup\0\u{1}beginWasmModule\0\u{1}endWasmModule\0\u{1}createWasmGlobal\0\u{1}createWasmMemory\0\u{1}createWasmTable\0\u{1}createWasmJSTag\0\u{1}createWasmTag\0\u{1}wrapPromising\0\u{1}wrapSuspending\0\u{1}bindMethod\0\u{1}bindFunction\0\u{1}consti64\0\u{1}consti32\0\u{1}constf32\0\u{1}constf64\0\u{1}wasmReturn\0\u{1}wasmJsCall\0\u{1}wasmi32CompareOp\0\u{1}wasmi64CompareOp\0\u{1}wasmf32CompareOp\0\u{1}wasmf64CompareOp\0\u{1}wasmi32EqualZero\0\u{1}wasmi64EqualZero\0\u{1}wasmi32BinOp\0\u{1}wasmi64BinOp\0\u{1}wasmi32UnOp\0\u{1}wasmi64UnOp\0\u{1}wasmf32BinOp\0\u{1}wasmf64BinOp\0\u{1}wasmf32UnOp\0\u{1}wasmf64UnOp\0\u{1}wasmWrapi64Toi32\0\u{1}wasmTruncatef32Toi32\0\u{1}wasmTruncatef64Toi32\0\u{1}wasmExtendi32Toi64\0\u{1}wasmTruncatef32Toi64\0\u{1}wasmTruncatef64Toi64\0\u{1}wasmConverti32Tof32\0\u{1}wasmConverti64Tof32\0\u{1}wasmDemotef64Tof32\0\u{1}wasmConverti32Tof64\0\u{1}wasmConverti64Tof64\0\u{1}wasmPromotef32Tof64\0\u{1}wasmReinterpretf32Asi32\0\u{1}wasmReinterpretf64Asi64\0\u{1}wasmReinterpreti32Asf32\0\u{1}wasmReinterpreti64Asf64\0\u{1}wasmSignExtend8Intoi32\0\u{1}wasmSignExtend16Intoi32\0\u{1}wasmSignExtend8Intoi64\0\u{1}wasmSignExtend16Intoi64\0\u{1}wasmSignExtend32Intoi64\0\u{1}wasmTruncateSatf32Toi32\0\u{1}wasmTruncateSatf64Toi32\0\u{1}wasmTruncateSatf32Toi64\0\u{1}wasmTruncateSatf64Toi64\0\u{1}wasmReassign\0\u{1}wasmDefineGlobal\0\u{1}wasmDefineTable\0\u{1}wasmDefineMemory\0\u{1}wasmDefineDataSegment\0\u{1}wasmLoadGlobal\0\u{1}wasmStoreGlobal\0\u{1}wasmTableGet\0\u{1}wasmTableSet\0\u{1}wasmTableSize\0\u{1}wasmTableGrow\0\u{1}wasmCallIndirect\0\u{1}wasmCallDirect\0\u{1}wasmReturnCallDirect\0\u{1}wasmReturnCallIndirect\0\u{1}wasmMemoryLoad\0\u{1}wasmMemoryStore\0\u{1}wasmAtomicLoad\0\u{1}wasmAtomicStore\0\u{1}wasmAtomicRMW\0\u{1}wasmAtomicCmpxchg\0\u{1}wasmMemorySize\0\u{1}wasmMemoryGrow\0\u{1}wasmMemoryFill\0\u{1}wasmMemoryInit\0\u{1}wasmDropDataSegment\0\u{1}beginWasmFunction\0\u{1}endWasmFunction\0\u{1}wasmBeginBlock\0\u{1}wasmEndBlock\0\u{1}wasmBeginLoop\0\u{1}wasmEndLoop\0\u{1}wasmBranch\0\u{1}wasmBranchIf\0\u{1}wasmBranchTable\0\u{1}wasmNop\0\u{1}wasmBeginIf\0\u{1}wasmBeginElse\0\u{1}wasmEndIf\0\u{1}wasmBeginTryTable\0\u{1}wasmEndTryTable\0\u{1}wasmBeginTry\0\u{1}wasmBeginCatchAll\0\u{1}wasmBeginCatch\0\u{1}wasmEndTry\0\u{1}wasmBeginTryDelegate\0\u{1}wasmEndTryDelegate\0\u{1}wasmThrow\0\u{1}wasmRethrow\0\u{1}wasmThrowRef\0\u{1}wasmDefineTag\0\u{1}constSimd128\0\u{1}wasmSimd128Compare\0\u{1}wasmSimd128IntegerUnOp\0\u{1}wasmSimd128IntegerBinOp\0\u{1}wasmSimd128IntegerTernaryOp\0\u{1}wasmSimd128FloatUnOp\0\u{1}wasmSimd128FloatBinOp\0\u{1}wasmSimd128FloatTernaryOp\0\u{1}wasmSimdSplat\0\u{1}wasmSimdExtractLane\0\u{1}wasmSimdReplaceLane\0\u{1}wasmSimdStoreLane\0\u{1}wasmSimdLoadLane\0\u{1}wasmSimdLoad\0\u{1}wasmUnreachable\0\u{1}wasmSelect\0\u{1}wasmBeginTypeGroup\0\u{1}wasmEndTypeGroup\0\u{1}wasmDefineArrayType\0\u{1}wasmDefineStructType\0\u{1}wasmDefineForwardOrSelfReference\0\u{1}wasmResolveForwardReference\0\u{1}wasmArrayNewFixed\0\u{1}wasmArrayNewDefault\0\u{1}wasmArrayLen\0\u{1}wasmArrayGet\0\u{1}wasmArraySet\0\u{1}wasmStructNewDefault\0\u{1}wasmStructGet\0\u{1}wasmStructSet\0\u{1}wasmRefNull\0\u{1}wasmRefIsNull\0\u{1}wasmRefI31\0\u{1}wasmI31Get\0\u{1}wasmAnyConvertExtern\0\u{1}wasmExternConvertAny\0\u{1}wasmMemoryCopy\0\u{1}wasmDefineElementSegment\0\u{1}wasmTableInit\0\u{1}wasmDropElementSegment\0\u{1}wasmTableCopy\0\u{1}wasmDefineSignatureType\0\u{1}createNamedDisposableVariable\0\u{1}createNamedAsyncDisposableVariable\0") public mutating func decodeMessage(decoder: inout D) throws { while let fieldNumber = try decoder.nextFieldNumber() { @@ -3605,6 +3605,32 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M } }() case 40: try { + var v: Fuzzilli_Protobuf_BeginClassInstanceComputedMethod? + var hadOneofValue = false + if let current = self.operation { + hadOneofValue = true + if case .beginClassInstanceComputedMethod(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.operation = .beginClassInstanceComputedMethod(v) + } + }() + case 41: try { + var v: Fuzzilli_Protobuf_EndClassInstanceComputedMethod? + var hadOneofValue = false + if let current = self.operation { + hadOneofValue = true + if case .endClassInstanceComputedMethod(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.operation = .endClassInstanceComputedMethod(v) + } + }() + case 42: try { var v: Fuzzilli_Protobuf_BeginClassInstanceGetter? var hadOneofValue = false if let current = self.operation { @@ -3617,7 +3643,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassInstanceGetter(v) } }() - case 41: try { + case 43: try { var v: Fuzzilli_Protobuf_EndClassInstanceGetter? var hadOneofValue = false if let current = self.operation { @@ -3630,7 +3656,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassInstanceGetter(v) } }() - case 42: try { + case 44: try { var v: Fuzzilli_Protobuf_BeginClassInstanceSetter? var hadOneofValue = false if let current = self.operation { @@ -3643,7 +3669,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassInstanceSetter(v) } }() - case 43: try { + case 45: try { var v: Fuzzilli_Protobuf_EndClassInstanceSetter? var hadOneofValue = false if let current = self.operation { @@ -3656,7 +3682,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassInstanceSetter(v) } }() - case 44: try { + case 46: try { var v: Fuzzilli_Protobuf_ClassAddStaticProperty? var hadOneofValue = false if let current = self.operation { @@ -3669,7 +3695,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddStaticProperty(v) } }() - case 45: try { + case 47: try { var v: Fuzzilli_Protobuf_ClassAddStaticElement? var hadOneofValue = false if let current = self.operation { @@ -3682,7 +3708,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddStaticElement(v) } }() - case 46: try { + case 48: try { var v: Fuzzilli_Protobuf_ClassAddStaticComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -3695,7 +3721,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddStaticComputedProperty(v) } }() - case 47: try { + case 49: try { var v: Fuzzilli_Protobuf_BeginClassStaticInitializer? var hadOneofValue = false if let current = self.operation { @@ -3708,7 +3734,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassStaticInitializer(v) } }() - case 48: try { + case 50: try { var v: Fuzzilli_Protobuf_EndClassStaticInitializer? var hadOneofValue = false if let current = self.operation { @@ -3721,7 +3747,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassStaticInitializer(v) } }() - case 49: try { + case 51: try { var v: Fuzzilli_Protobuf_BeginClassStaticMethod? var hadOneofValue = false if let current = self.operation { @@ -3734,7 +3760,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassStaticMethod(v) } }() - case 50: try { + case 52: try { var v: Fuzzilli_Protobuf_EndClassStaticMethod? var hadOneofValue = false if let current = self.operation { @@ -3747,7 +3773,33 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassStaticMethod(v) } }() - case 51: try { + case 53: try { + var v: Fuzzilli_Protobuf_BeginClassStaticComputedMethod? + var hadOneofValue = false + if let current = self.operation { + hadOneofValue = true + if case .beginClassStaticComputedMethod(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.operation = .beginClassStaticComputedMethod(v) + } + }() + case 54: try { + var v: Fuzzilli_Protobuf_EndClassStaticComputedMethod? + var hadOneofValue = false + if let current = self.operation { + hadOneofValue = true + if case .endClassStaticComputedMethod(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.operation = .endClassStaticComputedMethod(v) + } + }() + case 55: try { var v: Fuzzilli_Protobuf_BeginClassStaticGetter? var hadOneofValue = false if let current = self.operation { @@ -3760,7 +3812,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassStaticGetter(v) } }() - case 52: try { + case 56: try { var v: Fuzzilli_Protobuf_EndClassStaticGetter? var hadOneofValue = false if let current = self.operation { @@ -3773,7 +3825,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassStaticGetter(v) } }() - case 53: try { + case 57: try { var v: Fuzzilli_Protobuf_BeginClassStaticSetter? var hadOneofValue = false if let current = self.operation { @@ -3786,7 +3838,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassStaticSetter(v) } }() - case 54: try { + case 58: try { var v: Fuzzilli_Protobuf_EndClassStaticSetter? var hadOneofValue = false if let current = self.operation { @@ -3799,7 +3851,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassStaticSetter(v) } }() - case 55: try { + case 59: try { var v: Fuzzilli_Protobuf_ClassAddPrivateInstanceProperty? var hadOneofValue = false if let current = self.operation { @@ -3812,7 +3864,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddPrivateInstanceProperty(v) } }() - case 56: try { + case 60: try { var v: Fuzzilli_Protobuf_BeginClassPrivateInstanceMethod? var hadOneofValue = false if let current = self.operation { @@ -3825,7 +3877,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassPrivateInstanceMethod(v) } }() - case 57: try { + case 61: try { var v: Fuzzilli_Protobuf_EndClassPrivateInstanceMethod? var hadOneofValue = false if let current = self.operation { @@ -3838,7 +3890,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassPrivateInstanceMethod(v) } }() - case 58: try { + case 62: try { var v: Fuzzilli_Protobuf_ClassAddPrivateStaticProperty? var hadOneofValue = false if let current = self.operation { @@ -3851,7 +3903,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddPrivateStaticProperty(v) } }() - case 59: try { + case 63: try { var v: Fuzzilli_Protobuf_BeginClassPrivateStaticMethod? var hadOneofValue = false if let current = self.operation { @@ -3864,7 +3916,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassPrivateStaticMethod(v) } }() - case 60: try { + case 64: try { var v: Fuzzilli_Protobuf_EndClassPrivateStaticMethod? var hadOneofValue = false if let current = self.operation { @@ -3877,7 +3929,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassPrivateStaticMethod(v) } }() - case 61: try { + case 65: try { var v: Fuzzilli_Protobuf_EndClassDefinition? var hadOneofValue = false if let current = self.operation { @@ -3890,7 +3942,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassDefinition(v) } }() - case 62: try { + case 66: try { var v: Fuzzilli_Protobuf_CreateArray? var hadOneofValue = false if let current = self.operation { @@ -3903,7 +3955,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createArray(v) } }() - case 63: try { + case 67: try { var v: Fuzzilli_Protobuf_CreateIntArray? var hadOneofValue = false if let current = self.operation { @@ -3916,7 +3968,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createIntArray(v) } }() - case 64: try { + case 68: try { var v: Fuzzilli_Protobuf_CreateFloatArray? var hadOneofValue = false if let current = self.operation { @@ -3929,7 +3981,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createFloatArray(v) } }() - case 65: try { + case 69: try { var v: Fuzzilli_Protobuf_CreateArrayWithSpread? var hadOneofValue = false if let current = self.operation { @@ -3942,7 +3994,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createArrayWithSpread(v) } }() - case 66: try { + case 70: try { var v: Fuzzilli_Protobuf_CreateTemplateString? var hadOneofValue = false if let current = self.operation { @@ -3955,7 +4007,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createTemplateString(v) } }() - case 67: try { + case 71: try { var v: Fuzzilli_Protobuf_GetProperty? var hadOneofValue = false if let current = self.operation { @@ -3968,7 +4020,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getProperty(v) } }() - case 68: try { + case 72: try { var v: Fuzzilli_Protobuf_SetProperty? var hadOneofValue = false if let current = self.operation { @@ -3981,7 +4033,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setProperty(v) } }() - case 69: try { + case 73: try { var v: Fuzzilli_Protobuf_UpdateProperty? var hadOneofValue = false if let current = self.operation { @@ -3994,7 +4046,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updateProperty(v) } }() - case 70: try { + case 74: try { var v: Fuzzilli_Protobuf_DeleteProperty? var hadOneofValue = false if let current = self.operation { @@ -4007,7 +4059,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .deleteProperty(v) } }() - case 71: try { + case 75: try { var v: Fuzzilli_Protobuf_ConfigureProperty? var hadOneofValue = false if let current = self.operation { @@ -4020,7 +4072,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .configureProperty(v) } }() - case 72: try { + case 76: try { var v: Fuzzilli_Protobuf_GetElement? var hadOneofValue = false if let current = self.operation { @@ -4033,7 +4085,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getElement(v) } }() - case 73: try { + case 77: try { var v: Fuzzilli_Protobuf_SetElement? var hadOneofValue = false if let current = self.operation { @@ -4046,7 +4098,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setElement(v) } }() - case 74: try { + case 78: try { var v: Fuzzilli_Protobuf_UpdateElement? var hadOneofValue = false if let current = self.operation { @@ -4059,7 +4111,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updateElement(v) } }() - case 75: try { + case 79: try { var v: Fuzzilli_Protobuf_DeleteElement? var hadOneofValue = false if let current = self.operation { @@ -4072,7 +4124,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .deleteElement(v) } }() - case 76: try { + case 80: try { var v: Fuzzilli_Protobuf_ConfigureElement? var hadOneofValue = false if let current = self.operation { @@ -4085,7 +4137,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .configureElement(v) } }() - case 77: try { + case 81: try { var v: Fuzzilli_Protobuf_GetComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4098,7 +4150,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getComputedProperty(v) } }() - case 78: try { + case 82: try { var v: Fuzzilli_Protobuf_SetComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4111,7 +4163,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setComputedProperty(v) } }() - case 79: try { + case 83: try { var v: Fuzzilli_Protobuf_UpdateComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4124,7 +4176,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updateComputedProperty(v) } }() - case 80: try { + case 84: try { var v: Fuzzilli_Protobuf_DeleteComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4137,7 +4189,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .deleteComputedProperty(v) } }() - case 81: try { + case 85: try { var v: Fuzzilli_Protobuf_ConfigureComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4150,7 +4202,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .configureComputedProperty(v) } }() - case 82: try { + case 86: try { var v: Fuzzilli_Protobuf_TypeOf? var hadOneofValue = false if let current = self.operation { @@ -4163,7 +4215,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .typeOf(v) } }() - case 83: try { + case 87: try { var v: Fuzzilli_Protobuf_Void? var hadOneofValue = false if let current = self.operation { @@ -4176,7 +4228,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .void(v) } }() - case 84: try { + case 88: try { var v: Fuzzilli_Protobuf_TestInstanceOf? var hadOneofValue = false if let current = self.operation { @@ -4189,7 +4241,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .testInstanceOf(v) } }() - case 85: try { + case 89: try { var v: Fuzzilli_Protobuf_TestIn? var hadOneofValue = false if let current = self.operation { @@ -4202,7 +4254,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .testIn(v) } }() - case 86: try { + case 90: try { var v: Fuzzilli_Protobuf_BeginPlainFunction? var hadOneofValue = false if let current = self.operation { @@ -4215,7 +4267,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginPlainFunction(v) } }() - case 87: try { + case 91: try { var v: Fuzzilli_Protobuf_EndPlainFunction? var hadOneofValue = false if let current = self.operation { @@ -4228,7 +4280,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endPlainFunction(v) } }() - case 88: try { + case 92: try { var v: Fuzzilli_Protobuf_BeginArrowFunction? var hadOneofValue = false if let current = self.operation { @@ -4241,7 +4293,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginArrowFunction(v) } }() - case 89: try { + case 93: try { var v: Fuzzilli_Protobuf_EndArrowFunction? var hadOneofValue = false if let current = self.operation { @@ -4254,7 +4306,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endArrowFunction(v) } }() - case 90: try { + case 94: try { var v: Fuzzilli_Protobuf_BeginGeneratorFunction? var hadOneofValue = false if let current = self.operation { @@ -4267,7 +4319,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginGeneratorFunction(v) } }() - case 91: try { + case 95: try { var v: Fuzzilli_Protobuf_EndGeneratorFunction? var hadOneofValue = false if let current = self.operation { @@ -4280,7 +4332,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endGeneratorFunction(v) } }() - case 92: try { + case 96: try { var v: Fuzzilli_Protobuf_BeginAsyncFunction? var hadOneofValue = false if let current = self.operation { @@ -4293,7 +4345,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginAsyncFunction(v) } }() - case 93: try { + case 97: try { var v: Fuzzilli_Protobuf_EndAsyncFunction? var hadOneofValue = false if let current = self.operation { @@ -4306,7 +4358,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endAsyncFunction(v) } }() - case 94: try { + case 98: try { var v: Fuzzilli_Protobuf_BeginAsyncArrowFunction? var hadOneofValue = false if let current = self.operation { @@ -4319,7 +4371,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginAsyncArrowFunction(v) } }() - case 95: try { + case 99: try { var v: Fuzzilli_Protobuf_EndAsyncArrowFunction? var hadOneofValue = false if let current = self.operation { @@ -4332,7 +4384,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endAsyncArrowFunction(v) } }() - case 96: try { + case 100: try { var v: Fuzzilli_Protobuf_BeginAsyncGeneratorFunction? var hadOneofValue = false if let current = self.operation { @@ -4345,7 +4397,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginAsyncGeneratorFunction(v) } }() - case 97: try { + case 101: try { var v: Fuzzilli_Protobuf_EndAsyncGeneratorFunction? var hadOneofValue = false if let current = self.operation { @@ -4358,7 +4410,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endAsyncGeneratorFunction(v) } }() - case 98: try { + case 102: try { var v: Fuzzilli_Protobuf_BeginConstructor? var hadOneofValue = false if let current = self.operation { @@ -4371,7 +4423,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginConstructor(v) } }() - case 99: try { + case 103: try { var v: Fuzzilli_Protobuf_EndConstructor? var hadOneofValue = false if let current = self.operation { @@ -4384,7 +4436,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endConstructor(v) } }() - case 100: try { + case 104: try { var v: Fuzzilli_Protobuf_Directive? var hadOneofValue = false if let current = self.operation { @@ -4397,7 +4449,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .directive(v) } }() - case 101: try { + case 105: try { var v: Fuzzilli_Protobuf_Return? var hadOneofValue = false if let current = self.operation { @@ -4410,7 +4462,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .return(v) } }() - case 102: try { + case 106: try { var v: Fuzzilli_Protobuf_Yield? var hadOneofValue = false if let current = self.operation { @@ -4423,7 +4475,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .yield(v) } }() - case 103: try { + case 107: try { var v: Fuzzilli_Protobuf_YieldEach? var hadOneofValue = false if let current = self.operation { @@ -4436,7 +4488,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .yieldEach(v) } }() - case 104: try { + case 108: try { var v: Fuzzilli_Protobuf_Await? var hadOneofValue = false if let current = self.operation { @@ -4449,7 +4501,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .await(v) } }() - case 105: try { + case 109: try { var v: Fuzzilli_Protobuf_CallFunction? var hadOneofValue = false if let current = self.operation { @@ -4462,7 +4514,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callFunction(v) } }() - case 106: try { + case 110: try { var v: Fuzzilli_Protobuf_CallFunctionWithSpread? var hadOneofValue = false if let current = self.operation { @@ -4475,7 +4527,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callFunctionWithSpread(v) } }() - case 107: try { + case 111: try { var v: Fuzzilli_Protobuf_Construct? var hadOneofValue = false if let current = self.operation { @@ -4488,7 +4540,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .construct(v) } }() - case 108: try { + case 112: try { var v: Fuzzilli_Protobuf_ConstructWithSpread? var hadOneofValue = false if let current = self.operation { @@ -4501,7 +4553,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .constructWithSpread(v) } }() - case 109: try { + case 113: try { var v: Fuzzilli_Protobuf_CallMethod? var hadOneofValue = false if let current = self.operation { @@ -4514,7 +4566,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callMethod(v) } }() - case 110: try { + case 114: try { var v: Fuzzilli_Protobuf_CallMethodWithSpread? var hadOneofValue = false if let current = self.operation { @@ -4527,7 +4579,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callMethodWithSpread(v) } }() - case 111: try { + case 115: try { var v: Fuzzilli_Protobuf_CallComputedMethod? var hadOneofValue = false if let current = self.operation { @@ -4540,7 +4592,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callComputedMethod(v) } }() - case 112: try { + case 116: try { var v: Fuzzilli_Protobuf_CallComputedMethodWithSpread? var hadOneofValue = false if let current = self.operation { @@ -4553,7 +4605,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callComputedMethodWithSpread(v) } }() - case 113: try { + case 117: try { var v: Fuzzilli_Protobuf_UnaryOperation? var hadOneofValue = false if let current = self.operation { @@ -4566,7 +4618,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .unaryOperation(v) } }() - case 114: try { + case 118: try { var v: Fuzzilli_Protobuf_BinaryOperation? var hadOneofValue = false if let current = self.operation { @@ -4579,7 +4631,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .binaryOperation(v) } }() - case 115: try { + case 119: try { var v: Fuzzilli_Protobuf_TernaryOperation? var hadOneofValue = false if let current = self.operation { @@ -4592,7 +4644,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .ternaryOperation(v) } }() - case 116: try { + case 120: try { var v: Fuzzilli_Protobuf_Update? var hadOneofValue = false if let current = self.operation { @@ -4605,7 +4657,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .update(v) } }() - case 117: try { + case 121: try { var v: Fuzzilli_Protobuf_Dup? var hadOneofValue = false if let current = self.operation { @@ -4618,7 +4670,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .dup(v) } }() - case 118: try { + case 122: try { var v: Fuzzilli_Protobuf_Reassign? var hadOneofValue = false if let current = self.operation { @@ -4631,7 +4683,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .reassign(v) } }() - case 119: try { + case 123: try { var v: Fuzzilli_Protobuf_DestructArray? var hadOneofValue = false if let current = self.operation { @@ -4644,7 +4696,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .destructArray(v) } }() - case 120: try { + case 124: try { var v: Fuzzilli_Protobuf_DestructArrayAndReassign? var hadOneofValue = false if let current = self.operation { @@ -4657,7 +4709,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .destructArrayAndReassign(v) } }() - case 121: try { + case 125: try { var v: Fuzzilli_Protobuf_DestructObject? var hadOneofValue = false if let current = self.operation { @@ -4670,7 +4722,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .destructObject(v) } }() - case 122: try { + case 126: try { var v: Fuzzilli_Protobuf_DestructObjectAndReassign? var hadOneofValue = false if let current = self.operation { @@ -4683,7 +4735,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .destructObjectAndReassign(v) } }() - case 123: try { + case 127: try { var v: Fuzzilli_Protobuf_Compare? var hadOneofValue = false if let current = self.operation { @@ -4696,7 +4748,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .compare(v) } }() - case 124: try { + case 128: try { var v: Fuzzilli_Protobuf_Eval? var hadOneofValue = false if let current = self.operation { @@ -4709,7 +4761,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .eval(v) } }() - case 125: try { + case 129: try { var v: Fuzzilli_Protobuf_BeginWith? var hadOneofValue = false if let current = self.operation { @@ -4722,7 +4774,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWith(v) } }() - case 126: try { + case 130: try { var v: Fuzzilli_Protobuf_EndWith? var hadOneofValue = false if let current = self.operation { @@ -4735,7 +4787,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endWith(v) } }() - case 127: try { + case 131: try { var v: Fuzzilli_Protobuf_CallSuperConstructor? var hadOneofValue = false if let current = self.operation { @@ -4748,7 +4800,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callSuperConstructor(v) } }() - case 128: try { + case 132: try { var v: Fuzzilli_Protobuf_CallSuperMethod? var hadOneofValue = false if let current = self.operation { @@ -4761,7 +4813,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callSuperMethod(v) } }() - case 129: try { + case 133: try { var v: Fuzzilli_Protobuf_GetPrivateProperty? var hadOneofValue = false if let current = self.operation { @@ -4774,7 +4826,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getPrivateProperty(v) } }() - case 130: try { + case 134: try { var v: Fuzzilli_Protobuf_SetPrivateProperty? var hadOneofValue = false if let current = self.operation { @@ -4787,7 +4839,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setPrivateProperty(v) } }() - case 131: try { + case 135: try { var v: Fuzzilli_Protobuf_UpdatePrivateProperty? var hadOneofValue = false if let current = self.operation { @@ -4800,7 +4852,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updatePrivateProperty(v) } }() - case 132: try { + case 136: try { var v: Fuzzilli_Protobuf_CallPrivateMethod? var hadOneofValue = false if let current = self.operation { @@ -4813,7 +4865,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callPrivateMethod(v) } }() - case 133: try { + case 137: try { var v: Fuzzilli_Protobuf_GetSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4826,7 +4878,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getSuperProperty(v) } }() - case 134: try { + case 138: try { var v: Fuzzilli_Protobuf_SetSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4839,7 +4891,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setSuperProperty(v) } }() - case 135: try { + case 139: try { var v: Fuzzilli_Protobuf_GetComputedSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4852,7 +4904,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getComputedSuperProperty(v) } }() - case 136: try { + case 140: try { var v: Fuzzilli_Protobuf_SetComputedSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4865,7 +4917,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setComputedSuperProperty(v) } }() - case 137: try { + case 141: try { var v: Fuzzilli_Protobuf_UpdateSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4878,7 +4930,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updateSuperProperty(v) } }() - case 138: try { + case 142: try { var v: Fuzzilli_Protobuf_BeginIf? var hadOneofValue = false if let current = self.operation { @@ -4891,7 +4943,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginIf(v) } }() - case 139: try { + case 143: try { var v: Fuzzilli_Protobuf_BeginElse? var hadOneofValue = false if let current = self.operation { @@ -4904,7 +4956,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginElse(v) } }() - case 140: try { + case 144: try { var v: Fuzzilli_Protobuf_EndIf? var hadOneofValue = false if let current = self.operation { @@ -4917,7 +4969,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endIf(v) } }() - case 141: try { + case 145: try { var v: Fuzzilli_Protobuf_BeginWhileLoopHeader? var hadOneofValue = false if let current = self.operation { @@ -4930,7 +4982,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWhileLoopHeader(v) } }() - case 142: try { + case 146: try { var v: Fuzzilli_Protobuf_BeginWhileLoopBody? var hadOneofValue = false if let current = self.operation { @@ -4943,7 +4995,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWhileLoopBody(v) } }() - case 143: try { + case 147: try { var v: Fuzzilli_Protobuf_EndWhileLoop? var hadOneofValue = false if let current = self.operation { @@ -4956,7 +5008,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endWhileLoop(v) } }() - case 144: try { + case 148: try { var v: Fuzzilli_Protobuf_BeginDoWhileLoopBody? var hadOneofValue = false if let current = self.operation { @@ -4969,7 +5021,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginDoWhileLoopBody(v) } }() - case 145: try { + case 149: try { var v: Fuzzilli_Protobuf_BeginDoWhileLoopHeader? var hadOneofValue = false if let current = self.operation { @@ -4982,7 +5034,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginDoWhileLoopHeader(v) } }() - case 146: try { + case 150: try { var v: Fuzzilli_Protobuf_EndDoWhileLoop? var hadOneofValue = false if let current = self.operation { @@ -4995,7 +5047,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endDoWhileLoop(v) } }() - case 147: try { + case 151: try { var v: Fuzzilli_Protobuf_BeginForLoopInitializer? var hadOneofValue = false if let current = self.operation { @@ -5008,7 +5060,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForLoopInitializer(v) } }() - case 148: try { + case 152: try { var v: Fuzzilli_Protobuf_BeginForLoopCondition? var hadOneofValue = false if let current = self.operation { @@ -5021,7 +5073,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForLoopCondition(v) } }() - case 149: try { + case 153: try { var v: Fuzzilli_Protobuf_BeginForLoopAfterthought? var hadOneofValue = false if let current = self.operation { @@ -5034,7 +5086,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForLoopAfterthought(v) } }() - case 150: try { + case 154: try { var v: Fuzzilli_Protobuf_BeginForLoopBody? var hadOneofValue = false if let current = self.operation { @@ -5047,7 +5099,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForLoopBody(v) } }() - case 151: try { + case 155: try { var v: Fuzzilli_Protobuf_EndForLoop? var hadOneofValue = false if let current = self.operation { @@ -5060,7 +5112,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endForLoop(v) } }() - case 152: try { + case 156: try { var v: Fuzzilli_Protobuf_BeginForInLoop? var hadOneofValue = false if let current = self.operation { @@ -5073,7 +5125,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForInLoop(v) } }() - case 153: try { + case 157: try { var v: Fuzzilli_Protobuf_EndForInLoop? var hadOneofValue = false if let current = self.operation { @@ -5086,7 +5138,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endForInLoop(v) } }() - case 154: try { + case 158: try { var v: Fuzzilli_Protobuf_BeginForOfLoop? var hadOneofValue = false if let current = self.operation { @@ -5099,7 +5151,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForOfLoop(v) } }() - case 155: try { + case 159: try { var v: Fuzzilli_Protobuf_BeginForOfLoopWithDestruct? var hadOneofValue = false if let current = self.operation { @@ -5112,7 +5164,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForOfLoopWithDestruct(v) } }() - case 156: try { + case 160: try { var v: Fuzzilli_Protobuf_EndForOfLoop? var hadOneofValue = false if let current = self.operation { @@ -5125,7 +5177,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endForOfLoop(v) } }() - case 157: try { + case 161: try { var v: Fuzzilli_Protobuf_BeginRepeatLoop? var hadOneofValue = false if let current = self.operation { @@ -5138,7 +5190,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginRepeatLoop(v) } }() - case 158: try { + case 162: try { var v: Fuzzilli_Protobuf_EndRepeatLoop? var hadOneofValue = false if let current = self.operation { @@ -5151,7 +5203,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endRepeatLoop(v) } }() - case 159: try { + case 163: try { var v: Fuzzilli_Protobuf_LoopBreak? var hadOneofValue = false if let current = self.operation { @@ -5164,7 +5216,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .loopBreak(v) } }() - case 160: try { + case 164: try { var v: Fuzzilli_Protobuf_LoopContinue? var hadOneofValue = false if let current = self.operation { @@ -5177,7 +5229,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .loopContinue(v) } }() - case 161: try { + case 165: try { var v: Fuzzilli_Protobuf_BeginTry? var hadOneofValue = false if let current = self.operation { @@ -5190,7 +5242,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginTry(v) } }() - case 162: try { + case 166: try { var v: Fuzzilli_Protobuf_BeginCatch? var hadOneofValue = false if let current = self.operation { @@ -5203,7 +5255,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginCatch(v) } }() - case 163: try { + case 167: try { var v: Fuzzilli_Protobuf_BeginFinally? var hadOneofValue = false if let current = self.operation { @@ -5216,7 +5268,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginFinally(v) } }() - case 164: try { + case 168: try { var v: Fuzzilli_Protobuf_EndTryCatchFinally? var hadOneofValue = false if let current = self.operation { @@ -5229,7 +5281,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endTryCatchFinally(v) } }() - case 165: try { + case 169: try { var v: Fuzzilli_Protobuf_ThrowException? var hadOneofValue = false if let current = self.operation { @@ -5242,7 +5294,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .throwException(v) } }() - case 166: try { + case 170: try { var v: Fuzzilli_Protobuf_BeginCodeString? var hadOneofValue = false if let current = self.operation { @@ -5255,7 +5307,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginCodeString(v) } }() - case 167: try { + case 171: try { var v: Fuzzilli_Protobuf_EndCodeString? var hadOneofValue = false if let current = self.operation { @@ -5268,7 +5320,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endCodeString(v) } }() - case 168: try { + case 172: try { var v: Fuzzilli_Protobuf_BeginBlockStatement? var hadOneofValue = false if let current = self.operation { @@ -5281,7 +5333,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginBlockStatement(v) } }() - case 169: try { + case 173: try { var v: Fuzzilli_Protobuf_EndBlockStatement? var hadOneofValue = false if let current = self.operation { @@ -5294,7 +5346,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endBlockStatement(v) } }() - case 170: try { + case 174: try { var v: Fuzzilli_Protobuf_BeginSwitch? var hadOneofValue = false if let current = self.operation { @@ -5307,7 +5359,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginSwitch(v) } }() - case 171: try { + case 175: try { var v: Fuzzilli_Protobuf_BeginSwitchCase? var hadOneofValue = false if let current = self.operation { @@ -5320,7 +5372,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginSwitchCase(v) } }() - case 172: try { + case 176: try { var v: Fuzzilli_Protobuf_BeginSwitchDefaultCase? var hadOneofValue = false if let current = self.operation { @@ -5333,7 +5385,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginSwitchDefaultCase(v) } }() - case 173: try { + case 177: try { var v: Fuzzilli_Protobuf_EndSwitchCase? var hadOneofValue = false if let current = self.operation { @@ -5346,7 +5398,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endSwitchCase(v) } }() - case 174: try { + case 178: try { var v: Fuzzilli_Protobuf_EndSwitch? var hadOneofValue = false if let current = self.operation { @@ -5359,7 +5411,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endSwitch(v) } }() - case 175: try { + case 179: try { var v: Fuzzilli_Protobuf_SwitchBreak? var hadOneofValue = false if let current = self.operation { @@ -5372,7 +5424,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .switchBreak(v) } }() - case 176: try { + case 180: try { var v: Fuzzilli_Protobuf_LoadNewTarget? var hadOneofValue = false if let current = self.operation { @@ -5385,7 +5437,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .loadNewTarget(v) } }() - case 177: try { + case 181: try { var v: Fuzzilli_Protobuf_Print? var hadOneofValue = false if let current = self.operation { @@ -5398,7 +5450,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .print(v) } }() - case 178: try { + case 182: try { var v: Fuzzilli_Protobuf_Explore? var hadOneofValue = false if let current = self.operation { @@ -5411,7 +5463,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .explore(v) } }() - case 179: try { + case 183: try { var v: Fuzzilli_Protobuf_Probe? var hadOneofValue = false if let current = self.operation { @@ -5424,7 +5476,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .probe(v) } }() - case 180: try { + case 184: try { var v: Fuzzilli_Protobuf_Fixup? var hadOneofValue = false if let current = self.operation { @@ -5437,7 +5489,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .fixup(v) } }() - case 181: try { + case 185: try { var v: Fuzzilli_Protobuf_BeginWasmModule? var hadOneofValue = false if let current = self.operation { @@ -5450,7 +5502,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWasmModule(v) } }() - case 182: try { + case 186: try { var v: Fuzzilli_Protobuf_EndWasmModule? var hadOneofValue = false if let current = self.operation { @@ -5463,7 +5515,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endWasmModule(v) } }() - case 183: try { + case 187: try { var v: Fuzzilli_Protobuf_CreateWasmGlobal? var hadOneofValue = false if let current = self.operation { @@ -5476,7 +5528,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmGlobal(v) } }() - case 184: try { + case 188: try { var v: Fuzzilli_Protobuf_CreateWasmMemory? var hadOneofValue = false if let current = self.operation { @@ -5489,7 +5541,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmMemory(v) } }() - case 185: try { + case 189: try { var v: Fuzzilli_Protobuf_CreateWasmTable? var hadOneofValue = false if let current = self.operation { @@ -5502,7 +5554,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmTable(v) } }() - case 186: try { + case 190: try { var v: Fuzzilli_Protobuf_CreateWasmJSTag? var hadOneofValue = false if let current = self.operation { @@ -5515,7 +5567,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmJstag(v) } }() - case 187: try { + case 191: try { var v: Fuzzilli_Protobuf_CreateWasmTag? var hadOneofValue = false if let current = self.operation { @@ -5528,7 +5580,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmTag(v) } }() - case 188: try { + case 192: try { var v: Fuzzilli_Protobuf_WrapPromising? var hadOneofValue = false if let current = self.operation { @@ -5541,7 +5593,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wrapPromising(v) } }() - case 189: try { + case 193: try { var v: Fuzzilli_Protobuf_WrapSuspending? var hadOneofValue = false if let current = self.operation { @@ -5554,7 +5606,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wrapSuspending(v) } }() - case 190: try { + case 194: try { var v: Fuzzilli_Protobuf_BindMethod? var hadOneofValue = false if let current = self.operation { @@ -5567,7 +5619,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .bindMethod(v) } }() - case 191: try { + case 195: try { var v: Fuzzilli_Protobuf_BindFunction? var hadOneofValue = false if let current = self.operation { @@ -5580,7 +5632,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .bindFunction(v) } }() - case 192: try { + case 196: try { var v: Fuzzilli_Protobuf_Consti64? var hadOneofValue = false if let current = self.operation { @@ -5593,7 +5645,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .consti64(v) } }() - case 193: try { + case 197: try { var v: Fuzzilli_Protobuf_Consti32? var hadOneofValue = false if let current = self.operation { @@ -5606,7 +5658,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .consti32(v) } }() - case 194: try { + case 198: try { var v: Fuzzilli_Protobuf_Constf32? var hadOneofValue = false if let current = self.operation { @@ -5619,7 +5671,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .constf32(v) } }() - case 195: try { + case 199: try { var v: Fuzzilli_Protobuf_Constf64? var hadOneofValue = false if let current = self.operation { @@ -5632,7 +5684,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .constf64(v) } }() - case 196: try { + case 200: try { var v: Fuzzilli_Protobuf_WasmReturn? var hadOneofValue = false if let current = self.operation { @@ -5645,7 +5697,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReturn(v) } }() - case 197: try { + case 201: try { var v: Fuzzilli_Protobuf_WasmJsCall? var hadOneofValue = false if let current = self.operation { @@ -5658,7 +5710,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmJsCall(v) } }() - case 198: try { + case 202: try { var v: Fuzzilli_Protobuf_Wasmi32CompareOp? var hadOneofValue = false if let current = self.operation { @@ -5671,7 +5723,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi32CompareOp(v) } }() - case 199: try { + case 203: try { var v: Fuzzilli_Protobuf_Wasmi64CompareOp? var hadOneofValue = false if let current = self.operation { @@ -5684,7 +5736,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi64CompareOp(v) } }() - case 200: try { + case 204: try { var v: Fuzzilli_Protobuf_Wasmf32CompareOp? var hadOneofValue = false if let current = self.operation { @@ -5697,7 +5749,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf32CompareOp(v) } }() - case 201: try { + case 205: try { var v: Fuzzilli_Protobuf_Wasmf64CompareOp? var hadOneofValue = false if let current = self.operation { @@ -5710,7 +5762,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf64CompareOp(v) } }() - case 202: try { + case 206: try { var v: Fuzzilli_Protobuf_Wasmi32EqualZero? var hadOneofValue = false if let current = self.operation { @@ -5723,7 +5775,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi32EqualZero(v) } }() - case 203: try { + case 207: try { var v: Fuzzilli_Protobuf_Wasmi64EqualZero? var hadOneofValue = false if let current = self.operation { @@ -5736,7 +5788,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi64EqualZero(v) } }() - case 204: try { + case 208: try { var v: Fuzzilli_Protobuf_Wasmi32BinOp? var hadOneofValue = false if let current = self.operation { @@ -5749,7 +5801,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi32BinOp(v) } }() - case 205: try { + case 209: try { var v: Fuzzilli_Protobuf_Wasmi64BinOp? var hadOneofValue = false if let current = self.operation { @@ -5762,7 +5814,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi64BinOp(v) } }() - case 206: try { + case 210: try { var v: Fuzzilli_Protobuf_Wasmi32UnOp? var hadOneofValue = false if let current = self.operation { @@ -5775,7 +5827,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi32UnOp(v) } }() - case 207: try { + case 211: try { var v: Fuzzilli_Protobuf_Wasmi64UnOp? var hadOneofValue = false if let current = self.operation { @@ -5788,7 +5840,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi64UnOp(v) } }() - case 208: try { + case 212: try { var v: Fuzzilli_Protobuf_Wasmf32BinOp? var hadOneofValue = false if let current = self.operation { @@ -5801,7 +5853,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf32BinOp(v) } }() - case 209: try { + case 213: try { var v: Fuzzilli_Protobuf_Wasmf64BinOp? var hadOneofValue = false if let current = self.operation { @@ -5814,7 +5866,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf64BinOp(v) } }() - case 210: try { + case 214: try { var v: Fuzzilli_Protobuf_Wasmf32UnOp? var hadOneofValue = false if let current = self.operation { @@ -5827,7 +5879,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf32UnOp(v) } }() - case 211: try { + case 215: try { var v: Fuzzilli_Protobuf_Wasmf64UnOp? var hadOneofValue = false if let current = self.operation { @@ -5840,7 +5892,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf64UnOp(v) } }() - case 212: try { + case 216: try { var v: Fuzzilli_Protobuf_WasmWrapi64Toi32? var hadOneofValue = false if let current = self.operation { @@ -5853,7 +5905,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmWrapi64Toi32(v) } }() - case 213: try { + case 217: try { var v: Fuzzilli_Protobuf_WasmTruncatef32Toi32? var hadOneofValue = false if let current = self.operation { @@ -5866,7 +5918,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncatef32Toi32(v) } }() - case 214: try { + case 218: try { var v: Fuzzilli_Protobuf_WasmTruncatef64Toi32? var hadOneofValue = false if let current = self.operation { @@ -5879,7 +5931,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncatef64Toi32(v) } }() - case 215: try { + case 219: try { var v: Fuzzilli_Protobuf_WasmExtendi32Toi64? var hadOneofValue = false if let current = self.operation { @@ -5892,7 +5944,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmExtendi32Toi64(v) } }() - case 216: try { + case 220: try { var v: Fuzzilli_Protobuf_WasmTruncatef32Toi64? var hadOneofValue = false if let current = self.operation { @@ -5905,7 +5957,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncatef32Toi64(v) } }() - case 217: try { + case 221: try { var v: Fuzzilli_Protobuf_WasmTruncatef64Toi64? var hadOneofValue = false if let current = self.operation { @@ -5918,7 +5970,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncatef64Toi64(v) } }() - case 218: try { + case 222: try { var v: Fuzzilli_Protobuf_WasmConverti32Tof32? var hadOneofValue = false if let current = self.operation { @@ -5931,7 +5983,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmConverti32Tof32(v) } }() - case 219: try { + case 223: try { var v: Fuzzilli_Protobuf_WasmConverti64Tof32? var hadOneofValue = false if let current = self.operation { @@ -5944,7 +5996,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmConverti64Tof32(v) } }() - case 220: try { + case 224: try { var v: Fuzzilli_Protobuf_WasmDemotef64Tof32? var hadOneofValue = false if let current = self.operation { @@ -5957,7 +6009,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDemotef64Tof32(v) } }() - case 221: try { + case 225: try { var v: Fuzzilli_Protobuf_WasmConverti32Tof64? var hadOneofValue = false if let current = self.operation { @@ -5970,7 +6022,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmConverti32Tof64(v) } }() - case 222: try { + case 226: try { var v: Fuzzilli_Protobuf_WasmConverti64Tof64? var hadOneofValue = false if let current = self.operation { @@ -5983,7 +6035,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmConverti64Tof64(v) } }() - case 223: try { + case 227: try { var v: Fuzzilli_Protobuf_WasmPromotef32Tof64? var hadOneofValue = false if let current = self.operation { @@ -5996,7 +6048,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmPromotef32Tof64(v) } }() - case 224: try { + case 228: try { var v: Fuzzilli_Protobuf_WasmReinterpretf32Asi32? var hadOneofValue = false if let current = self.operation { @@ -6009,7 +6061,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReinterpretf32Asi32(v) } }() - case 225: try { + case 229: try { var v: Fuzzilli_Protobuf_WasmReinterpretf64Asi64? var hadOneofValue = false if let current = self.operation { @@ -6022,7 +6074,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReinterpretf64Asi64(v) } }() - case 226: try { + case 230: try { var v: Fuzzilli_Protobuf_WasmReinterpreti32Asf32? var hadOneofValue = false if let current = self.operation { @@ -6035,7 +6087,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReinterpreti32Asf32(v) } }() - case 227: try { + case 231: try { var v: Fuzzilli_Protobuf_WasmReinterpreti64Asf64? var hadOneofValue = false if let current = self.operation { @@ -6048,7 +6100,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReinterpreti64Asf64(v) } }() - case 228: try { + case 232: try { var v: Fuzzilli_Protobuf_WasmSignExtend8Intoi32? var hadOneofValue = false if let current = self.operation { @@ -6061,7 +6113,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend8Intoi32(v) } }() - case 229: try { + case 233: try { var v: Fuzzilli_Protobuf_WasmSignExtend16Intoi32? var hadOneofValue = false if let current = self.operation { @@ -6074,7 +6126,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend16Intoi32(v) } }() - case 230: try { + case 234: try { var v: Fuzzilli_Protobuf_WasmSignExtend8Intoi64? var hadOneofValue = false if let current = self.operation { @@ -6087,7 +6139,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend8Intoi64(v) } }() - case 231: try { + case 235: try { var v: Fuzzilli_Protobuf_WasmSignExtend16Intoi64? var hadOneofValue = false if let current = self.operation { @@ -6100,7 +6152,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend16Intoi64(v) } }() - case 232: try { + case 236: try { var v: Fuzzilli_Protobuf_WasmSignExtend32Intoi64? var hadOneofValue = false if let current = self.operation { @@ -6113,7 +6165,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend32Intoi64(v) } }() - case 233: try { + case 237: try { var v: Fuzzilli_Protobuf_WasmTruncateSatf32Toi32? var hadOneofValue = false if let current = self.operation { @@ -6126,7 +6178,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncateSatf32Toi32(v) } }() - case 234: try { + case 238: try { var v: Fuzzilli_Protobuf_WasmTruncateSatf64Toi32? var hadOneofValue = false if let current = self.operation { @@ -6139,7 +6191,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncateSatf64Toi32(v) } }() - case 235: try { + case 239: try { var v: Fuzzilli_Protobuf_WasmTruncateSatf32Toi64? var hadOneofValue = false if let current = self.operation { @@ -6152,7 +6204,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncateSatf32Toi64(v) } }() - case 236: try { + case 240: try { var v: Fuzzilli_Protobuf_WasmTruncateSatf64Toi64? var hadOneofValue = false if let current = self.operation { @@ -6165,7 +6217,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncateSatf64Toi64(v) } }() - case 237: try { + case 241: try { var v: Fuzzilli_Protobuf_WasmReassign? var hadOneofValue = false if let current = self.operation { @@ -6178,7 +6230,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReassign(v) } }() - case 238: try { + case 242: try { var v: Fuzzilli_Protobuf_WasmDefineGlobal? var hadOneofValue = false if let current = self.operation { @@ -6191,7 +6243,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineGlobal(v) } }() - case 239: try { + case 243: try { var v: Fuzzilli_Protobuf_WasmDefineTable? var hadOneofValue = false if let current = self.operation { @@ -6204,7 +6256,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineTable(v) } }() - case 240: try { + case 244: try { var v: Fuzzilli_Protobuf_WasmDefineMemory? var hadOneofValue = false if let current = self.operation { @@ -6217,7 +6269,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineMemory(v) } }() - case 241: try { + case 245: try { var v: Fuzzilli_Protobuf_WasmDefineDataSegment? var hadOneofValue = false if let current = self.operation { @@ -6230,7 +6282,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineDataSegment(v) } }() - case 242: try { + case 246: try { var v: Fuzzilli_Protobuf_WasmLoadGlobal? var hadOneofValue = false if let current = self.operation { @@ -6243,7 +6295,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmLoadGlobal(v) } }() - case 243: try { + case 247: try { var v: Fuzzilli_Protobuf_WasmStoreGlobal? var hadOneofValue = false if let current = self.operation { @@ -6256,7 +6308,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmStoreGlobal(v) } }() - case 244: try { + case 248: try { var v: Fuzzilli_Protobuf_WasmTableGet? var hadOneofValue = false if let current = self.operation { @@ -6269,7 +6321,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableGet(v) } }() - case 245: try { + case 249: try { var v: Fuzzilli_Protobuf_WasmTableSet? var hadOneofValue = false if let current = self.operation { @@ -6282,7 +6334,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableSet(v) } }() - case 246: try { + case 250: try { var v: Fuzzilli_Protobuf_WasmTableSize? var hadOneofValue = false if let current = self.operation { @@ -6295,7 +6347,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableSize(v) } }() - case 247: try { + case 251: try { var v: Fuzzilli_Protobuf_WasmTableGrow? var hadOneofValue = false if let current = self.operation { @@ -6308,7 +6360,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableGrow(v) } }() - case 248: try { + case 252: try { var v: Fuzzilli_Protobuf_WasmCallIndirect? var hadOneofValue = false if let current = self.operation { @@ -6321,7 +6373,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmCallIndirect(v) } }() - case 249: try { + case 253: try { var v: Fuzzilli_Protobuf_WasmCallDirect? var hadOneofValue = false if let current = self.operation { @@ -6334,7 +6386,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmCallDirect(v) } }() - case 250: try { + case 254: try { var v: Fuzzilli_Protobuf_WasmReturnCallDirect? var hadOneofValue = false if let current = self.operation { @@ -6347,7 +6399,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReturnCallDirect(v) } }() - case 251: try { + case 255: try { var v: Fuzzilli_Protobuf_WasmReturnCallIndirect? var hadOneofValue = false if let current = self.operation { @@ -6360,7 +6412,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReturnCallIndirect(v) } }() - case 252: try { + case 256: try { var v: Fuzzilli_Protobuf_WasmMemoryLoad? var hadOneofValue = false if let current = self.operation { @@ -6373,7 +6425,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryLoad(v) } }() - case 253: try { + case 257: try { var v: Fuzzilli_Protobuf_WasmMemoryStore? var hadOneofValue = false if let current = self.operation { @@ -6386,7 +6438,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryStore(v) } }() - case 254: try { + case 258: try { var v: Fuzzilli_Protobuf_WasmAtomicLoad? var hadOneofValue = false if let current = self.operation { @@ -6399,7 +6451,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAtomicLoad(v) } }() - case 255: try { + case 259: try { var v: Fuzzilli_Protobuf_WasmAtomicStore? var hadOneofValue = false if let current = self.operation { @@ -6412,7 +6464,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAtomicStore(v) } }() - case 256: try { + case 260: try { var v: Fuzzilli_Protobuf_WasmAtomicRMW? var hadOneofValue = false if let current = self.operation { @@ -6425,7 +6477,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAtomicRmw(v) } }() - case 257: try { + case 261: try { var v: Fuzzilli_Protobuf_WasmAtomicCmpxchg? var hadOneofValue = false if let current = self.operation { @@ -6438,7 +6490,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAtomicCmpxchg(v) } }() - case 258: try { + case 262: try { var v: Fuzzilli_Protobuf_WasmMemorySize? var hadOneofValue = false if let current = self.operation { @@ -6451,7 +6503,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemorySize(v) } }() - case 259: try { + case 263: try { var v: Fuzzilli_Protobuf_WasmMemoryGrow? var hadOneofValue = false if let current = self.operation { @@ -6464,7 +6516,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryGrow(v) } }() - case 260: try { + case 264: try { var v: Fuzzilli_Protobuf_WasmMemoryFill? var hadOneofValue = false if let current = self.operation { @@ -6477,7 +6529,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryFill(v) } }() - case 261: try { + case 265: try { var v: Fuzzilli_Protobuf_WasmMemoryInit? var hadOneofValue = false if let current = self.operation { @@ -6490,7 +6542,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryInit(v) } }() - case 262: try { + case 266: try { var v: Fuzzilli_Protobuf_WasmDropDataSegment? var hadOneofValue = false if let current = self.operation { @@ -6503,7 +6555,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDropDataSegment(v) } }() - case 263: try { + case 267: try { var v: Fuzzilli_Protobuf_BeginWasmFunction? var hadOneofValue = false if let current = self.operation { @@ -6516,7 +6568,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWasmFunction(v) } }() - case 264: try { + case 268: try { var v: Fuzzilli_Protobuf_EndWasmFunction? var hadOneofValue = false if let current = self.operation { @@ -6529,7 +6581,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endWasmFunction(v) } }() - case 265: try { + case 269: try { var v: Fuzzilli_Protobuf_WasmBeginBlock? var hadOneofValue = false if let current = self.operation { @@ -6542,7 +6594,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginBlock(v) } }() - case 266: try { + case 270: try { var v: Fuzzilli_Protobuf_WasmEndBlock? var hadOneofValue = false if let current = self.operation { @@ -6555,7 +6607,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndBlock(v) } }() - case 267: try { + case 271: try { var v: Fuzzilli_Protobuf_WasmBeginLoop? var hadOneofValue = false if let current = self.operation { @@ -6568,7 +6620,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginLoop(v) } }() - case 268: try { + case 272: try { var v: Fuzzilli_Protobuf_WasmEndLoop? var hadOneofValue = false if let current = self.operation { @@ -6581,7 +6633,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndLoop(v) } }() - case 269: try { + case 273: try { var v: Fuzzilli_Protobuf_WasmBranch? var hadOneofValue = false if let current = self.operation { @@ -6594,7 +6646,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBranch(v) } }() - case 270: try { + case 274: try { var v: Fuzzilli_Protobuf_WasmBranchIf? var hadOneofValue = false if let current = self.operation { @@ -6607,7 +6659,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBranchIf(v) } }() - case 271: try { + case 275: try { var v: Fuzzilli_Protobuf_WasmBranchTable? var hadOneofValue = false if let current = self.operation { @@ -6620,7 +6672,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBranchTable(v) } }() - case 272: try { + case 276: try { var v: Fuzzilli_Protobuf_WasmNop? var hadOneofValue = false if let current = self.operation { @@ -6633,7 +6685,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmNop(v) } }() - case 273: try { + case 277: try { var v: Fuzzilli_Protobuf_WasmBeginIf? var hadOneofValue = false if let current = self.operation { @@ -6646,7 +6698,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginIf(v) } }() - case 274: try { + case 278: try { var v: Fuzzilli_Protobuf_WasmBeginElse? var hadOneofValue = false if let current = self.operation { @@ -6659,7 +6711,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginElse(v) } }() - case 275: try { + case 279: try { var v: Fuzzilli_Protobuf_WasmEndIf? var hadOneofValue = false if let current = self.operation { @@ -6672,7 +6724,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndIf(v) } }() - case 276: try { + case 280: try { var v: Fuzzilli_Protobuf_WasmBeginTryTable? var hadOneofValue = false if let current = self.operation { @@ -6685,7 +6737,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginTryTable(v) } }() - case 277: try { + case 281: try { var v: Fuzzilli_Protobuf_WasmEndTryTable? var hadOneofValue = false if let current = self.operation { @@ -6698,7 +6750,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndTryTable(v) } }() - case 278: try { + case 282: try { var v: Fuzzilli_Protobuf_WasmBeginTry? var hadOneofValue = false if let current = self.operation { @@ -6711,7 +6763,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginTry(v) } }() - case 279: try { + case 283: try { var v: Fuzzilli_Protobuf_WasmBeginCatchAll? var hadOneofValue = false if let current = self.operation { @@ -6724,7 +6776,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginCatchAll(v) } }() - case 280: try { + case 284: try { var v: Fuzzilli_Protobuf_WasmBeginCatch? var hadOneofValue = false if let current = self.operation { @@ -6737,7 +6789,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginCatch(v) } }() - case 281: try { + case 285: try { var v: Fuzzilli_Protobuf_WasmEndTry? var hadOneofValue = false if let current = self.operation { @@ -6750,7 +6802,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndTry(v) } }() - case 282: try { + case 286: try { var v: Fuzzilli_Protobuf_WasmBeginTryDelegate? var hadOneofValue = false if let current = self.operation { @@ -6763,7 +6815,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginTryDelegate(v) } }() - case 283: try { + case 287: try { var v: Fuzzilli_Protobuf_WasmEndTryDelegate? var hadOneofValue = false if let current = self.operation { @@ -6776,7 +6828,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndTryDelegate(v) } }() - case 284: try { + case 288: try { var v: Fuzzilli_Protobuf_WasmThrow? var hadOneofValue = false if let current = self.operation { @@ -6789,7 +6841,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmThrow(v) } }() - case 285: try { + case 289: try { var v: Fuzzilli_Protobuf_WasmRethrow? var hadOneofValue = false if let current = self.operation { @@ -6802,7 +6854,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmRethrow(v) } }() - case 286: try { + case 290: try { var v: Fuzzilli_Protobuf_WasmThrowRef? var hadOneofValue = false if let current = self.operation { @@ -6815,7 +6867,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmThrowRef(v) } }() - case 287: try { + case 291: try { var v: Fuzzilli_Protobuf_WasmDefineTag? var hadOneofValue = false if let current = self.operation { @@ -6828,7 +6880,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineTag(v) } }() - case 288: try { + case 292: try { var v: Fuzzilli_Protobuf_ConstSimd128? var hadOneofValue = false if let current = self.operation { @@ -6841,7 +6893,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .constSimd128(v) } }() - case 289: try { + case 293: try { var v: Fuzzilli_Protobuf_WasmSimd128Compare? var hadOneofValue = false if let current = self.operation { @@ -6854,7 +6906,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128Compare(v) } }() - case 290: try { + case 294: try { var v: Fuzzilli_Protobuf_WasmSimd128IntegerUnOp? var hadOneofValue = false if let current = self.operation { @@ -6867,7 +6919,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128IntegerUnOp(v) } }() - case 291: try { + case 295: try { var v: Fuzzilli_Protobuf_WasmSimd128IntegerBinOp? var hadOneofValue = false if let current = self.operation { @@ -6880,7 +6932,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128IntegerBinOp(v) } }() - case 292: try { + case 296: try { var v: Fuzzilli_Protobuf_WasmSimd128IntegerTernaryOp? var hadOneofValue = false if let current = self.operation { @@ -6893,7 +6945,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128IntegerTernaryOp(v) } }() - case 293: try { + case 297: try { var v: Fuzzilli_Protobuf_WasmSimd128FloatUnOp? var hadOneofValue = false if let current = self.operation { @@ -6906,7 +6958,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128FloatUnOp(v) } }() - case 294: try { + case 298: try { var v: Fuzzilli_Protobuf_WasmSimd128FloatBinOp? var hadOneofValue = false if let current = self.operation { @@ -6919,7 +6971,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128FloatBinOp(v) } }() - case 295: try { + case 299: try { var v: Fuzzilli_Protobuf_WasmSimd128FloatTernaryOp? var hadOneofValue = false if let current = self.operation { @@ -6932,7 +6984,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128FloatTernaryOp(v) } }() - case 296: try { + case 300: try { var v: Fuzzilli_Protobuf_WasmSimdSplat? var hadOneofValue = false if let current = self.operation { @@ -6945,7 +6997,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdSplat(v) } }() - case 297: try { + case 301: try { var v: Fuzzilli_Protobuf_WasmSimdExtractLane? var hadOneofValue = false if let current = self.operation { @@ -6958,7 +7010,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdExtractLane(v) } }() - case 298: try { + case 302: try { var v: Fuzzilli_Protobuf_WasmSimdReplaceLane? var hadOneofValue = false if let current = self.operation { @@ -6971,7 +7023,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdReplaceLane(v) } }() - case 299: try { + case 303: try { var v: Fuzzilli_Protobuf_WasmSimdStoreLane? var hadOneofValue = false if let current = self.operation { @@ -6984,7 +7036,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdStoreLane(v) } }() - case 300: try { + case 304: try { var v: Fuzzilli_Protobuf_WasmSimdLoadLane? var hadOneofValue = false if let current = self.operation { @@ -6997,7 +7049,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdLoadLane(v) } }() - case 301: try { + case 305: try { var v: Fuzzilli_Protobuf_WasmSimdLoad? var hadOneofValue = false if let current = self.operation { @@ -7010,7 +7062,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdLoad(v) } }() - case 302: try { + case 306: try { var v: Fuzzilli_Protobuf_WasmUnreachable? var hadOneofValue = false if let current = self.operation { @@ -7023,7 +7075,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmUnreachable(v) } }() - case 303: try { + case 307: try { var v: Fuzzilli_Protobuf_WasmSelect? var hadOneofValue = false if let current = self.operation { @@ -7036,7 +7088,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSelect(v) } }() - case 304: try { + case 308: try { var v: Fuzzilli_Protobuf_WasmBeginTypeGroup? var hadOneofValue = false if let current = self.operation { @@ -7049,7 +7101,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginTypeGroup(v) } }() - case 305: try { + case 309: try { var v: Fuzzilli_Protobuf_WasmEndTypeGroup? var hadOneofValue = false if let current = self.operation { @@ -7062,7 +7114,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndTypeGroup(v) } }() - case 306: try { + case 310: try { var v: Fuzzilli_Protobuf_WasmDefineArrayType? var hadOneofValue = false if let current = self.operation { @@ -7075,7 +7127,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineArrayType(v) } }() - case 307: try { + case 311: try { var v: Fuzzilli_Protobuf_WasmDefineStructType? var hadOneofValue = false if let current = self.operation { @@ -7088,7 +7140,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineStructType(v) } }() - case 308: try { + case 312: try { var v: Fuzzilli_Protobuf_WasmDefineForwardOrSelfReference? var hadOneofValue = false if let current = self.operation { @@ -7101,7 +7153,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineForwardOrSelfReference(v) } }() - case 309: try { + case 313: try { var v: Fuzzilli_Protobuf_WasmResolveForwardReference? var hadOneofValue = false if let current = self.operation { @@ -7114,7 +7166,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmResolveForwardReference(v) } }() - case 310: try { + case 314: try { var v: Fuzzilli_Protobuf_WasmArrayNewFixed? var hadOneofValue = false if let current = self.operation { @@ -7127,7 +7179,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArrayNewFixed(v) } }() - case 311: try { + case 315: try { var v: Fuzzilli_Protobuf_WasmArrayNewDefault? var hadOneofValue = false if let current = self.operation { @@ -7140,7 +7192,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArrayNewDefault(v) } }() - case 312: try { + case 316: try { var v: Fuzzilli_Protobuf_WasmArrayLen? var hadOneofValue = false if let current = self.operation { @@ -7153,7 +7205,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArrayLen(v) } }() - case 313: try { + case 317: try { var v: Fuzzilli_Protobuf_WasmArrayGet? var hadOneofValue = false if let current = self.operation { @@ -7166,7 +7218,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArrayGet(v) } }() - case 314: try { + case 318: try { var v: Fuzzilli_Protobuf_WasmArraySet? var hadOneofValue = false if let current = self.operation { @@ -7179,7 +7231,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArraySet(v) } }() - case 315: try { + case 319: try { var v: Fuzzilli_Protobuf_WasmStructNewDefault? var hadOneofValue = false if let current = self.operation { @@ -7192,7 +7244,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmStructNewDefault(v) } }() - case 316: try { + case 320: try { var v: Fuzzilli_Protobuf_WasmStructGet? var hadOneofValue = false if let current = self.operation { @@ -7205,7 +7257,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmStructGet(v) } }() - case 317: try { + case 321: try { var v: Fuzzilli_Protobuf_WasmStructSet? var hadOneofValue = false if let current = self.operation { @@ -7218,7 +7270,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmStructSet(v) } }() - case 318: try { + case 322: try { var v: Fuzzilli_Protobuf_WasmRefNull? var hadOneofValue = false if let current = self.operation { @@ -7231,7 +7283,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmRefNull(v) } }() - case 319: try { + case 323: try { var v: Fuzzilli_Protobuf_WasmRefIsNull? var hadOneofValue = false if let current = self.operation { @@ -7244,7 +7296,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmRefIsNull(v) } }() - case 320: try { + case 324: try { var v: Fuzzilli_Protobuf_WasmRefI31? var hadOneofValue = false if let current = self.operation { @@ -7257,7 +7309,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmRefI31(v) } }() - case 321: try { + case 325: try { var v: Fuzzilli_Protobuf_WasmI31Get? var hadOneofValue = false if let current = self.operation { @@ -7270,7 +7322,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmI31Get(v) } }() - case 322: try { + case 326: try { var v: Fuzzilli_Protobuf_WasmAnyConvertExtern? var hadOneofValue = false if let current = self.operation { @@ -7283,7 +7335,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAnyConvertExtern(v) } }() - case 323: try { + case 327: try { var v: Fuzzilli_Protobuf_WasmExternConvertAny? var hadOneofValue = false if let current = self.operation { @@ -7296,7 +7348,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmExternConvertAny(v) } }() - case 324: try { + case 328: try { var v: Fuzzilli_Protobuf_WasmMemoryCopy? var hadOneofValue = false if let current = self.operation { @@ -7309,7 +7361,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryCopy(v) } }() - case 325: try { + case 329: try { var v: Fuzzilli_Protobuf_WasmDefineElementSegment? var hadOneofValue = false if let current = self.operation { @@ -7322,7 +7374,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineElementSegment(v) } }() - case 326: try { + case 330: try { var v: Fuzzilli_Protobuf_WasmTableInit? var hadOneofValue = false if let current = self.operation { @@ -7335,7 +7387,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableInit(v) } }() - case 327: try { + case 331: try { var v: Fuzzilli_Protobuf_WasmDropElementSegment? var hadOneofValue = false if let current = self.operation { @@ -7348,7 +7400,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDropElementSegment(v) } }() - case 328: try { + case 332: try { var v: Fuzzilli_Protobuf_WasmTableCopy? var hadOneofValue = false if let current = self.operation { @@ -7361,7 +7413,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableCopy(v) } }() - case 329: try { + case 333: try { var v: Fuzzilli_Protobuf_WasmDefineSignatureType? var hadOneofValue = false if let current = self.operation { @@ -7374,7 +7426,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineSignatureType(v) } }() - case 330: try { + case 334: try { var v: Fuzzilli_Protobuf_CreateNamedDisposableVariable? var hadOneofValue = false if let current = self.operation { @@ -7387,7 +7439,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createNamedDisposableVariable(v) } }() - case 331: try { + case 335: try { var v: Fuzzilli_Protobuf_CreateNamedAsyncDisposableVariable? var hadOneofValue = false if let current = self.operation { @@ -7400,58 +7452,6 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createNamedAsyncDisposableVariable(v) } }() - case 332: try { - var v: Fuzzilli_Protobuf_BeginClassInstanceComputedMethod? - var hadOneofValue = false - if let current = self.operation { - hadOneofValue = true - if case .beginClassInstanceComputedMethod(let m) = current {v = m} - } - try decoder.decodeSingularMessageField(value: &v) - if let v = v { - if hadOneofValue {try decoder.handleConflictingOneOf()} - self.operation = .beginClassInstanceComputedMethod(v) - } - }() - case 333: try { - var v: Fuzzilli_Protobuf_EndClassInstanceComputedMethod? - var hadOneofValue = false - if let current = self.operation { - hadOneofValue = true - if case .endClassInstanceComputedMethod(let m) = current {v = m} - } - try decoder.decodeSingularMessageField(value: &v) - if let v = v { - if hadOneofValue {try decoder.handleConflictingOneOf()} - self.operation = .endClassInstanceComputedMethod(v) - } - }() - case 334: try { - var v: Fuzzilli_Protobuf_BeginClassStaticComputedMethod? - var hadOneofValue = false - if let current = self.operation { - hadOneofValue = true - if case .beginClassStaticComputedMethod(let m) = current {v = m} - } - try decoder.decodeSingularMessageField(value: &v) - if let v = v { - if hadOneofValue {try decoder.handleConflictingOneOf()} - self.operation = .beginClassStaticComputedMethod(v) - } - }() - case 335: try { - var v: Fuzzilli_Protobuf_EndClassStaticComputedMethod? - var hadOneofValue = false - if let current = self.operation { - hadOneofValue = true - if case .endClassStaticComputedMethod(let m) = current {v = m} - } - try decoder.decodeSingularMessageField(value: &v) - if let v = v { - if hadOneofValue {try decoder.handleConflictingOneOf()} - self.operation = .endClassStaticComputedMethod(v) - } - }() default: break } } @@ -7618,1188 +7618,1188 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M guard case .endClassInstanceMethod(let v)? = self.operation else { preconditionFailure() } try visitor.visitSingularMessageField(value: v, fieldNumber: 39) }() + case .beginClassInstanceComputedMethod?: try { + guard case .beginClassInstanceComputedMethod(let v)? = self.operation else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 40) + }() + case .endClassInstanceComputedMethod?: try { + guard case .endClassInstanceComputedMethod(let v)? = self.operation else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 41) + }() case .beginClassInstanceGetter?: try { guard case .beginClassInstanceGetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 40) + try visitor.visitSingularMessageField(value: v, fieldNumber: 42) }() case .endClassInstanceGetter?: try { guard case .endClassInstanceGetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 41) + try visitor.visitSingularMessageField(value: v, fieldNumber: 43) }() case .beginClassInstanceSetter?: try { guard case .beginClassInstanceSetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 42) + try visitor.visitSingularMessageField(value: v, fieldNumber: 44) }() case .endClassInstanceSetter?: try { guard case .endClassInstanceSetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 43) + try visitor.visitSingularMessageField(value: v, fieldNumber: 45) }() case .classAddStaticProperty?: try { guard case .classAddStaticProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 44) + try visitor.visitSingularMessageField(value: v, fieldNumber: 46) }() case .classAddStaticElement?: try { guard case .classAddStaticElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 45) + try visitor.visitSingularMessageField(value: v, fieldNumber: 47) }() case .classAddStaticComputedProperty?: try { guard case .classAddStaticComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 46) + try visitor.visitSingularMessageField(value: v, fieldNumber: 48) }() case .beginClassStaticInitializer?: try { guard case .beginClassStaticInitializer(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 47) + try visitor.visitSingularMessageField(value: v, fieldNumber: 49) }() case .endClassStaticInitializer?: try { guard case .endClassStaticInitializer(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 48) + try visitor.visitSingularMessageField(value: v, fieldNumber: 50) }() case .beginClassStaticMethod?: try { guard case .beginClassStaticMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 49) + try visitor.visitSingularMessageField(value: v, fieldNumber: 51) }() case .endClassStaticMethod?: try { guard case .endClassStaticMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 50) + try visitor.visitSingularMessageField(value: v, fieldNumber: 52) + }() + case .beginClassStaticComputedMethod?: try { + guard case .beginClassStaticComputedMethod(let v)? = self.operation else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 53) + }() + case .endClassStaticComputedMethod?: try { + guard case .endClassStaticComputedMethod(let v)? = self.operation else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 54) }() case .beginClassStaticGetter?: try { guard case .beginClassStaticGetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 51) + try visitor.visitSingularMessageField(value: v, fieldNumber: 55) }() case .endClassStaticGetter?: try { guard case .endClassStaticGetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 52) + try visitor.visitSingularMessageField(value: v, fieldNumber: 56) }() case .beginClassStaticSetter?: try { guard case .beginClassStaticSetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 53) + try visitor.visitSingularMessageField(value: v, fieldNumber: 57) }() case .endClassStaticSetter?: try { guard case .endClassStaticSetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 54) + try visitor.visitSingularMessageField(value: v, fieldNumber: 58) }() case .classAddPrivateInstanceProperty?: try { guard case .classAddPrivateInstanceProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 55) + try visitor.visitSingularMessageField(value: v, fieldNumber: 59) }() case .beginClassPrivateInstanceMethod?: try { guard case .beginClassPrivateInstanceMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 56) + try visitor.visitSingularMessageField(value: v, fieldNumber: 60) }() case .endClassPrivateInstanceMethod?: try { guard case .endClassPrivateInstanceMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 57) + try visitor.visitSingularMessageField(value: v, fieldNumber: 61) }() case .classAddPrivateStaticProperty?: try { guard case .classAddPrivateStaticProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 58) + try visitor.visitSingularMessageField(value: v, fieldNumber: 62) }() case .beginClassPrivateStaticMethod?: try { guard case .beginClassPrivateStaticMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 59) + try visitor.visitSingularMessageField(value: v, fieldNumber: 63) }() case .endClassPrivateStaticMethod?: try { guard case .endClassPrivateStaticMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 60) + try visitor.visitSingularMessageField(value: v, fieldNumber: 64) }() case .endClassDefinition?: try { guard case .endClassDefinition(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 61) + try visitor.visitSingularMessageField(value: v, fieldNumber: 65) }() case .createArray?: try { guard case .createArray(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 62) + try visitor.visitSingularMessageField(value: v, fieldNumber: 66) }() case .createIntArray?: try { guard case .createIntArray(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 63) + try visitor.visitSingularMessageField(value: v, fieldNumber: 67) }() case .createFloatArray?: try { guard case .createFloatArray(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 64) + try visitor.visitSingularMessageField(value: v, fieldNumber: 68) }() case .createArrayWithSpread?: try { guard case .createArrayWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 65) + try visitor.visitSingularMessageField(value: v, fieldNumber: 69) }() case .createTemplateString?: try { guard case .createTemplateString(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 66) + try visitor.visitSingularMessageField(value: v, fieldNumber: 70) }() case .getProperty?: try { guard case .getProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 67) + try visitor.visitSingularMessageField(value: v, fieldNumber: 71) }() case .setProperty?: try { guard case .setProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 68) + try visitor.visitSingularMessageField(value: v, fieldNumber: 72) }() case .updateProperty?: try { guard case .updateProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 69) + try visitor.visitSingularMessageField(value: v, fieldNumber: 73) }() case .deleteProperty?: try { guard case .deleteProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 70) + try visitor.visitSingularMessageField(value: v, fieldNumber: 74) }() case .configureProperty?: try { guard case .configureProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 71) + try visitor.visitSingularMessageField(value: v, fieldNumber: 75) }() case .getElement?: try { guard case .getElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 72) + try visitor.visitSingularMessageField(value: v, fieldNumber: 76) }() case .setElement?: try { guard case .setElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 73) + try visitor.visitSingularMessageField(value: v, fieldNumber: 77) }() case .updateElement?: try { guard case .updateElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 74) + try visitor.visitSingularMessageField(value: v, fieldNumber: 78) }() case .deleteElement?: try { guard case .deleteElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 75) + try visitor.visitSingularMessageField(value: v, fieldNumber: 79) }() case .configureElement?: try { guard case .configureElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 76) + try visitor.visitSingularMessageField(value: v, fieldNumber: 80) }() case .getComputedProperty?: try { guard case .getComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 77) + try visitor.visitSingularMessageField(value: v, fieldNumber: 81) }() case .setComputedProperty?: try { guard case .setComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 78) + try visitor.visitSingularMessageField(value: v, fieldNumber: 82) }() case .updateComputedProperty?: try { guard case .updateComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 79) + try visitor.visitSingularMessageField(value: v, fieldNumber: 83) }() case .deleteComputedProperty?: try { guard case .deleteComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 80) + try visitor.visitSingularMessageField(value: v, fieldNumber: 84) }() case .configureComputedProperty?: try { guard case .configureComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 81) + try visitor.visitSingularMessageField(value: v, fieldNumber: 85) }() case .typeOf?: try { guard case .typeOf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 82) + try visitor.visitSingularMessageField(value: v, fieldNumber: 86) }() case .void?: try { guard case .void(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 83) + try visitor.visitSingularMessageField(value: v, fieldNumber: 87) }() case .testInstanceOf?: try { guard case .testInstanceOf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 84) + try visitor.visitSingularMessageField(value: v, fieldNumber: 88) }() case .testIn?: try { guard case .testIn(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 85) + try visitor.visitSingularMessageField(value: v, fieldNumber: 89) }() case .beginPlainFunction?: try { guard case .beginPlainFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 86) + try visitor.visitSingularMessageField(value: v, fieldNumber: 90) }() case .endPlainFunction?: try { guard case .endPlainFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 87) + try visitor.visitSingularMessageField(value: v, fieldNumber: 91) }() case .beginArrowFunction?: try { guard case .beginArrowFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 88) + try visitor.visitSingularMessageField(value: v, fieldNumber: 92) }() case .endArrowFunction?: try { guard case .endArrowFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 89) + try visitor.visitSingularMessageField(value: v, fieldNumber: 93) }() case .beginGeneratorFunction?: try { guard case .beginGeneratorFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 90) + try visitor.visitSingularMessageField(value: v, fieldNumber: 94) }() case .endGeneratorFunction?: try { guard case .endGeneratorFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 91) + try visitor.visitSingularMessageField(value: v, fieldNumber: 95) }() case .beginAsyncFunction?: try { guard case .beginAsyncFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 92) + try visitor.visitSingularMessageField(value: v, fieldNumber: 96) }() case .endAsyncFunction?: try { guard case .endAsyncFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 93) + try visitor.visitSingularMessageField(value: v, fieldNumber: 97) }() case .beginAsyncArrowFunction?: try { guard case .beginAsyncArrowFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 94) + try visitor.visitSingularMessageField(value: v, fieldNumber: 98) }() case .endAsyncArrowFunction?: try { guard case .endAsyncArrowFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 95) + try visitor.visitSingularMessageField(value: v, fieldNumber: 99) }() case .beginAsyncGeneratorFunction?: try { guard case .beginAsyncGeneratorFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 96) + try visitor.visitSingularMessageField(value: v, fieldNumber: 100) }() case .endAsyncGeneratorFunction?: try { guard case .endAsyncGeneratorFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 97) + try visitor.visitSingularMessageField(value: v, fieldNumber: 101) }() case .beginConstructor?: try { guard case .beginConstructor(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 98) + try visitor.visitSingularMessageField(value: v, fieldNumber: 102) }() case .endConstructor?: try { guard case .endConstructor(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 99) + try visitor.visitSingularMessageField(value: v, fieldNumber: 103) }() case .directive?: try { guard case .directive(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 100) + try visitor.visitSingularMessageField(value: v, fieldNumber: 104) }() case .return?: try { guard case .return(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 101) + try visitor.visitSingularMessageField(value: v, fieldNumber: 105) }() case .yield?: try { guard case .yield(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 102) + try visitor.visitSingularMessageField(value: v, fieldNumber: 106) }() case .yieldEach?: try { guard case .yieldEach(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 103) + try visitor.visitSingularMessageField(value: v, fieldNumber: 107) }() case .await?: try { guard case .await(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 104) + try visitor.visitSingularMessageField(value: v, fieldNumber: 108) }() case .callFunction?: try { guard case .callFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 105) + try visitor.visitSingularMessageField(value: v, fieldNumber: 109) }() case .callFunctionWithSpread?: try { guard case .callFunctionWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 106) + try visitor.visitSingularMessageField(value: v, fieldNumber: 110) }() case .construct?: try { guard case .construct(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 107) + try visitor.visitSingularMessageField(value: v, fieldNumber: 111) }() case .constructWithSpread?: try { guard case .constructWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 108) + try visitor.visitSingularMessageField(value: v, fieldNumber: 112) }() case .callMethod?: try { guard case .callMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 109) + try visitor.visitSingularMessageField(value: v, fieldNumber: 113) }() case .callMethodWithSpread?: try { guard case .callMethodWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 110) + try visitor.visitSingularMessageField(value: v, fieldNumber: 114) }() case .callComputedMethod?: try { guard case .callComputedMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 111) + try visitor.visitSingularMessageField(value: v, fieldNumber: 115) }() case .callComputedMethodWithSpread?: try { guard case .callComputedMethodWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 112) + try visitor.visitSingularMessageField(value: v, fieldNumber: 116) }() case .unaryOperation?: try { guard case .unaryOperation(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 113) + try visitor.visitSingularMessageField(value: v, fieldNumber: 117) }() case .binaryOperation?: try { guard case .binaryOperation(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 114) + try visitor.visitSingularMessageField(value: v, fieldNumber: 118) }() case .ternaryOperation?: try { guard case .ternaryOperation(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 115) + try visitor.visitSingularMessageField(value: v, fieldNumber: 119) }() case .update?: try { guard case .update(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 116) + try visitor.visitSingularMessageField(value: v, fieldNumber: 120) }() case .dup?: try { guard case .dup(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 117) + try visitor.visitSingularMessageField(value: v, fieldNumber: 121) }() case .reassign?: try { guard case .reassign(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 118) + try visitor.visitSingularMessageField(value: v, fieldNumber: 122) }() case .destructArray?: try { guard case .destructArray(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 119) + try visitor.visitSingularMessageField(value: v, fieldNumber: 123) }() case .destructArrayAndReassign?: try { guard case .destructArrayAndReassign(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 120) + try visitor.visitSingularMessageField(value: v, fieldNumber: 124) }() case .destructObject?: try { guard case .destructObject(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 121) + try visitor.visitSingularMessageField(value: v, fieldNumber: 125) }() case .destructObjectAndReassign?: try { guard case .destructObjectAndReassign(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 122) + try visitor.visitSingularMessageField(value: v, fieldNumber: 126) }() case .compare?: try { guard case .compare(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 123) + try visitor.visitSingularMessageField(value: v, fieldNumber: 127) }() case .eval?: try { guard case .eval(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 124) + try visitor.visitSingularMessageField(value: v, fieldNumber: 128) }() case .beginWith?: try { guard case .beginWith(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 125) + try visitor.visitSingularMessageField(value: v, fieldNumber: 129) }() case .endWith?: try { guard case .endWith(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 126) + try visitor.visitSingularMessageField(value: v, fieldNumber: 130) }() case .callSuperConstructor?: try { guard case .callSuperConstructor(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 127) + try visitor.visitSingularMessageField(value: v, fieldNumber: 131) }() case .callSuperMethod?: try { guard case .callSuperMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 128) + try visitor.visitSingularMessageField(value: v, fieldNumber: 132) }() case .getPrivateProperty?: try { guard case .getPrivateProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 129) + try visitor.visitSingularMessageField(value: v, fieldNumber: 133) }() case .setPrivateProperty?: try { guard case .setPrivateProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 130) + try visitor.visitSingularMessageField(value: v, fieldNumber: 134) }() case .updatePrivateProperty?: try { guard case .updatePrivateProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 131) + try visitor.visitSingularMessageField(value: v, fieldNumber: 135) }() case .callPrivateMethod?: try { guard case .callPrivateMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 132) + try visitor.visitSingularMessageField(value: v, fieldNumber: 136) }() case .getSuperProperty?: try { guard case .getSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 133) + try visitor.visitSingularMessageField(value: v, fieldNumber: 137) }() case .setSuperProperty?: try { guard case .setSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 134) + try visitor.visitSingularMessageField(value: v, fieldNumber: 138) }() case .getComputedSuperProperty?: try { guard case .getComputedSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 135) + try visitor.visitSingularMessageField(value: v, fieldNumber: 139) }() case .setComputedSuperProperty?: try { guard case .setComputedSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 136) + try visitor.visitSingularMessageField(value: v, fieldNumber: 140) }() case .updateSuperProperty?: try { guard case .updateSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 137) + try visitor.visitSingularMessageField(value: v, fieldNumber: 141) }() case .beginIf?: try { guard case .beginIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 138) + try visitor.visitSingularMessageField(value: v, fieldNumber: 142) }() case .beginElse?: try { guard case .beginElse(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 139) + try visitor.visitSingularMessageField(value: v, fieldNumber: 143) }() case .endIf?: try { guard case .endIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 140) + try visitor.visitSingularMessageField(value: v, fieldNumber: 144) }() case .beginWhileLoopHeader?: try { guard case .beginWhileLoopHeader(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 141) + try visitor.visitSingularMessageField(value: v, fieldNumber: 145) }() case .beginWhileLoopBody?: try { guard case .beginWhileLoopBody(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 142) + try visitor.visitSingularMessageField(value: v, fieldNumber: 146) }() case .endWhileLoop?: try { guard case .endWhileLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 143) + try visitor.visitSingularMessageField(value: v, fieldNumber: 147) }() case .beginDoWhileLoopBody?: try { guard case .beginDoWhileLoopBody(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 144) + try visitor.visitSingularMessageField(value: v, fieldNumber: 148) }() case .beginDoWhileLoopHeader?: try { guard case .beginDoWhileLoopHeader(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 145) + try visitor.visitSingularMessageField(value: v, fieldNumber: 149) }() case .endDoWhileLoop?: try { guard case .endDoWhileLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 146) + try visitor.visitSingularMessageField(value: v, fieldNumber: 150) }() case .beginForLoopInitializer?: try { guard case .beginForLoopInitializer(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 147) + try visitor.visitSingularMessageField(value: v, fieldNumber: 151) }() case .beginForLoopCondition?: try { guard case .beginForLoopCondition(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 148) + try visitor.visitSingularMessageField(value: v, fieldNumber: 152) }() case .beginForLoopAfterthought?: try { guard case .beginForLoopAfterthought(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 149) + try visitor.visitSingularMessageField(value: v, fieldNumber: 153) }() case .beginForLoopBody?: try { guard case .beginForLoopBody(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 150) + try visitor.visitSingularMessageField(value: v, fieldNumber: 154) }() case .endForLoop?: try { guard case .endForLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 151) + try visitor.visitSingularMessageField(value: v, fieldNumber: 155) }() case .beginForInLoop?: try { guard case .beginForInLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 152) + try visitor.visitSingularMessageField(value: v, fieldNumber: 156) }() case .endForInLoop?: try { guard case .endForInLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 153) + try visitor.visitSingularMessageField(value: v, fieldNumber: 157) }() case .beginForOfLoop?: try { guard case .beginForOfLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 154) + try visitor.visitSingularMessageField(value: v, fieldNumber: 158) }() case .beginForOfLoopWithDestruct?: try { guard case .beginForOfLoopWithDestruct(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 155) + try visitor.visitSingularMessageField(value: v, fieldNumber: 159) }() case .endForOfLoop?: try { guard case .endForOfLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 156) + try visitor.visitSingularMessageField(value: v, fieldNumber: 160) }() case .beginRepeatLoop?: try { guard case .beginRepeatLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 157) + try visitor.visitSingularMessageField(value: v, fieldNumber: 161) }() case .endRepeatLoop?: try { guard case .endRepeatLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 158) + try visitor.visitSingularMessageField(value: v, fieldNumber: 162) }() case .loopBreak?: try { guard case .loopBreak(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 159) + try visitor.visitSingularMessageField(value: v, fieldNumber: 163) }() case .loopContinue?: try { guard case .loopContinue(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 160) + try visitor.visitSingularMessageField(value: v, fieldNumber: 164) }() case .beginTry?: try { guard case .beginTry(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 161) + try visitor.visitSingularMessageField(value: v, fieldNumber: 165) }() case .beginCatch?: try { guard case .beginCatch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 162) + try visitor.visitSingularMessageField(value: v, fieldNumber: 166) }() case .beginFinally?: try { guard case .beginFinally(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 163) + try visitor.visitSingularMessageField(value: v, fieldNumber: 167) }() case .endTryCatchFinally?: try { guard case .endTryCatchFinally(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 164) + try visitor.visitSingularMessageField(value: v, fieldNumber: 168) }() case .throwException?: try { guard case .throwException(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 165) + try visitor.visitSingularMessageField(value: v, fieldNumber: 169) }() case .beginCodeString?: try { guard case .beginCodeString(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 166) + try visitor.visitSingularMessageField(value: v, fieldNumber: 170) }() case .endCodeString?: try { guard case .endCodeString(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 167) + try visitor.visitSingularMessageField(value: v, fieldNumber: 171) }() case .beginBlockStatement?: try { guard case .beginBlockStatement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 168) + try visitor.visitSingularMessageField(value: v, fieldNumber: 172) }() case .endBlockStatement?: try { guard case .endBlockStatement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 169) + try visitor.visitSingularMessageField(value: v, fieldNumber: 173) }() case .beginSwitch?: try { guard case .beginSwitch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 170) + try visitor.visitSingularMessageField(value: v, fieldNumber: 174) }() case .beginSwitchCase?: try { guard case .beginSwitchCase(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 171) + try visitor.visitSingularMessageField(value: v, fieldNumber: 175) }() case .beginSwitchDefaultCase?: try { guard case .beginSwitchDefaultCase(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 172) + try visitor.visitSingularMessageField(value: v, fieldNumber: 176) }() case .endSwitchCase?: try { guard case .endSwitchCase(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 173) + try visitor.visitSingularMessageField(value: v, fieldNumber: 177) }() case .endSwitch?: try { guard case .endSwitch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 174) + try visitor.visitSingularMessageField(value: v, fieldNumber: 178) }() case .switchBreak?: try { guard case .switchBreak(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 175) + try visitor.visitSingularMessageField(value: v, fieldNumber: 179) }() case .loadNewTarget?: try { guard case .loadNewTarget(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 176) + try visitor.visitSingularMessageField(value: v, fieldNumber: 180) }() case .print?: try { guard case .print(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 177) + try visitor.visitSingularMessageField(value: v, fieldNumber: 181) }() case .explore?: try { guard case .explore(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 178) + try visitor.visitSingularMessageField(value: v, fieldNumber: 182) }() case .probe?: try { guard case .probe(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 179) + try visitor.visitSingularMessageField(value: v, fieldNumber: 183) }() case .fixup?: try { guard case .fixup(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 180) + try visitor.visitSingularMessageField(value: v, fieldNumber: 184) }() case .beginWasmModule?: try { guard case .beginWasmModule(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 181) + try visitor.visitSingularMessageField(value: v, fieldNumber: 185) }() case .endWasmModule?: try { guard case .endWasmModule(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 182) + try visitor.visitSingularMessageField(value: v, fieldNumber: 186) }() case .createWasmGlobal?: try { guard case .createWasmGlobal(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 183) + try visitor.visitSingularMessageField(value: v, fieldNumber: 187) }() case .createWasmMemory?: try { guard case .createWasmMemory(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 184) + try visitor.visitSingularMessageField(value: v, fieldNumber: 188) }() case .createWasmTable?: try { guard case .createWasmTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 185) + try visitor.visitSingularMessageField(value: v, fieldNumber: 189) }() case .createWasmJstag?: try { guard case .createWasmJstag(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 186) + try visitor.visitSingularMessageField(value: v, fieldNumber: 190) }() case .createWasmTag?: try { guard case .createWasmTag(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 187) + try visitor.visitSingularMessageField(value: v, fieldNumber: 191) }() case .wrapPromising?: try { guard case .wrapPromising(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 188) + try visitor.visitSingularMessageField(value: v, fieldNumber: 192) }() case .wrapSuspending?: try { guard case .wrapSuspending(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 189) + try visitor.visitSingularMessageField(value: v, fieldNumber: 193) }() case .bindMethod?: try { guard case .bindMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 190) + try visitor.visitSingularMessageField(value: v, fieldNumber: 194) }() case .bindFunction?: try { guard case .bindFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 191) + try visitor.visitSingularMessageField(value: v, fieldNumber: 195) }() case .consti64?: try { guard case .consti64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 192) + try visitor.visitSingularMessageField(value: v, fieldNumber: 196) }() case .consti32?: try { guard case .consti32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 193) + try visitor.visitSingularMessageField(value: v, fieldNumber: 197) }() case .constf32?: try { guard case .constf32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 194) + try visitor.visitSingularMessageField(value: v, fieldNumber: 198) }() case .constf64?: try { guard case .constf64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 195) + try visitor.visitSingularMessageField(value: v, fieldNumber: 199) }() case .wasmReturn?: try { guard case .wasmReturn(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 196) + try visitor.visitSingularMessageField(value: v, fieldNumber: 200) }() case .wasmJsCall?: try { guard case .wasmJsCall(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 197) + try visitor.visitSingularMessageField(value: v, fieldNumber: 201) }() case .wasmi32CompareOp?: try { guard case .wasmi32CompareOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 198) + try visitor.visitSingularMessageField(value: v, fieldNumber: 202) }() case .wasmi64CompareOp?: try { guard case .wasmi64CompareOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 199) + try visitor.visitSingularMessageField(value: v, fieldNumber: 203) }() case .wasmf32CompareOp?: try { guard case .wasmf32CompareOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 200) + try visitor.visitSingularMessageField(value: v, fieldNumber: 204) }() case .wasmf64CompareOp?: try { guard case .wasmf64CompareOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 201) + try visitor.visitSingularMessageField(value: v, fieldNumber: 205) }() case .wasmi32EqualZero?: try { guard case .wasmi32EqualZero(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 202) + try visitor.visitSingularMessageField(value: v, fieldNumber: 206) }() case .wasmi64EqualZero?: try { guard case .wasmi64EqualZero(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 203) + try visitor.visitSingularMessageField(value: v, fieldNumber: 207) }() case .wasmi32BinOp?: try { guard case .wasmi32BinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 204) + try visitor.visitSingularMessageField(value: v, fieldNumber: 208) }() case .wasmi64BinOp?: try { guard case .wasmi64BinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 205) + try visitor.visitSingularMessageField(value: v, fieldNumber: 209) }() case .wasmi32UnOp?: try { guard case .wasmi32UnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 206) + try visitor.visitSingularMessageField(value: v, fieldNumber: 210) }() case .wasmi64UnOp?: try { guard case .wasmi64UnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 207) + try visitor.visitSingularMessageField(value: v, fieldNumber: 211) }() case .wasmf32BinOp?: try { guard case .wasmf32BinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 208) + try visitor.visitSingularMessageField(value: v, fieldNumber: 212) }() case .wasmf64BinOp?: try { guard case .wasmf64BinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 209) + try visitor.visitSingularMessageField(value: v, fieldNumber: 213) }() case .wasmf32UnOp?: try { guard case .wasmf32UnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 210) + try visitor.visitSingularMessageField(value: v, fieldNumber: 214) }() case .wasmf64UnOp?: try { guard case .wasmf64UnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 211) + try visitor.visitSingularMessageField(value: v, fieldNumber: 215) }() case .wasmWrapi64Toi32?: try { guard case .wasmWrapi64Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 212) + try visitor.visitSingularMessageField(value: v, fieldNumber: 216) }() case .wasmTruncatef32Toi32?: try { guard case .wasmTruncatef32Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 213) + try visitor.visitSingularMessageField(value: v, fieldNumber: 217) }() case .wasmTruncatef64Toi32?: try { guard case .wasmTruncatef64Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 214) + try visitor.visitSingularMessageField(value: v, fieldNumber: 218) }() case .wasmExtendi32Toi64?: try { guard case .wasmExtendi32Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 215) + try visitor.visitSingularMessageField(value: v, fieldNumber: 219) }() case .wasmTruncatef32Toi64?: try { guard case .wasmTruncatef32Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 216) + try visitor.visitSingularMessageField(value: v, fieldNumber: 220) }() case .wasmTruncatef64Toi64?: try { guard case .wasmTruncatef64Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 217) + try visitor.visitSingularMessageField(value: v, fieldNumber: 221) }() case .wasmConverti32Tof32?: try { guard case .wasmConverti32Tof32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 218) + try visitor.visitSingularMessageField(value: v, fieldNumber: 222) }() case .wasmConverti64Tof32?: try { guard case .wasmConverti64Tof32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 219) + try visitor.visitSingularMessageField(value: v, fieldNumber: 223) }() case .wasmDemotef64Tof32?: try { guard case .wasmDemotef64Tof32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 220) + try visitor.visitSingularMessageField(value: v, fieldNumber: 224) }() case .wasmConverti32Tof64?: try { guard case .wasmConverti32Tof64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 221) + try visitor.visitSingularMessageField(value: v, fieldNumber: 225) }() case .wasmConverti64Tof64?: try { guard case .wasmConverti64Tof64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 222) + try visitor.visitSingularMessageField(value: v, fieldNumber: 226) }() case .wasmPromotef32Tof64?: try { guard case .wasmPromotef32Tof64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 223) + try visitor.visitSingularMessageField(value: v, fieldNumber: 227) }() case .wasmReinterpretf32Asi32?: try { guard case .wasmReinterpretf32Asi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 224) + try visitor.visitSingularMessageField(value: v, fieldNumber: 228) }() case .wasmReinterpretf64Asi64?: try { guard case .wasmReinterpretf64Asi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 225) + try visitor.visitSingularMessageField(value: v, fieldNumber: 229) }() case .wasmReinterpreti32Asf32?: try { guard case .wasmReinterpreti32Asf32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 226) + try visitor.visitSingularMessageField(value: v, fieldNumber: 230) }() case .wasmReinterpreti64Asf64?: try { guard case .wasmReinterpreti64Asf64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 227) + try visitor.visitSingularMessageField(value: v, fieldNumber: 231) }() case .wasmSignExtend8Intoi32?: try { guard case .wasmSignExtend8Intoi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 228) + try visitor.visitSingularMessageField(value: v, fieldNumber: 232) }() case .wasmSignExtend16Intoi32?: try { guard case .wasmSignExtend16Intoi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 229) + try visitor.visitSingularMessageField(value: v, fieldNumber: 233) }() case .wasmSignExtend8Intoi64?: try { guard case .wasmSignExtend8Intoi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 230) + try visitor.visitSingularMessageField(value: v, fieldNumber: 234) }() case .wasmSignExtend16Intoi64?: try { guard case .wasmSignExtend16Intoi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 231) + try visitor.visitSingularMessageField(value: v, fieldNumber: 235) }() case .wasmSignExtend32Intoi64?: try { guard case .wasmSignExtend32Intoi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 232) + try visitor.visitSingularMessageField(value: v, fieldNumber: 236) }() case .wasmTruncateSatf32Toi32?: try { guard case .wasmTruncateSatf32Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 233) + try visitor.visitSingularMessageField(value: v, fieldNumber: 237) }() case .wasmTruncateSatf64Toi32?: try { guard case .wasmTruncateSatf64Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 234) + try visitor.visitSingularMessageField(value: v, fieldNumber: 238) }() case .wasmTruncateSatf32Toi64?: try { guard case .wasmTruncateSatf32Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 235) + try visitor.visitSingularMessageField(value: v, fieldNumber: 239) }() case .wasmTruncateSatf64Toi64?: try { guard case .wasmTruncateSatf64Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 236) + try visitor.visitSingularMessageField(value: v, fieldNumber: 240) }() case .wasmReassign?: try { guard case .wasmReassign(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 237) + try visitor.visitSingularMessageField(value: v, fieldNumber: 241) }() case .wasmDefineGlobal?: try { guard case .wasmDefineGlobal(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 238) + try visitor.visitSingularMessageField(value: v, fieldNumber: 242) }() case .wasmDefineTable?: try { guard case .wasmDefineTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 239) + try visitor.visitSingularMessageField(value: v, fieldNumber: 243) }() case .wasmDefineMemory?: try { guard case .wasmDefineMemory(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 240) + try visitor.visitSingularMessageField(value: v, fieldNumber: 244) }() case .wasmDefineDataSegment?: try { guard case .wasmDefineDataSegment(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 241) + try visitor.visitSingularMessageField(value: v, fieldNumber: 245) }() case .wasmLoadGlobal?: try { guard case .wasmLoadGlobal(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 242) + try visitor.visitSingularMessageField(value: v, fieldNumber: 246) }() case .wasmStoreGlobal?: try { guard case .wasmStoreGlobal(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 243) + try visitor.visitSingularMessageField(value: v, fieldNumber: 247) }() case .wasmTableGet?: try { guard case .wasmTableGet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 244) + try visitor.visitSingularMessageField(value: v, fieldNumber: 248) }() case .wasmTableSet?: try { guard case .wasmTableSet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 245) + try visitor.visitSingularMessageField(value: v, fieldNumber: 249) }() case .wasmTableSize?: try { guard case .wasmTableSize(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 246) + try visitor.visitSingularMessageField(value: v, fieldNumber: 250) }() case .wasmTableGrow?: try { guard case .wasmTableGrow(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 247) + try visitor.visitSingularMessageField(value: v, fieldNumber: 251) }() case .wasmCallIndirect?: try { guard case .wasmCallIndirect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 248) + try visitor.visitSingularMessageField(value: v, fieldNumber: 252) }() case .wasmCallDirect?: try { guard case .wasmCallDirect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 249) + try visitor.visitSingularMessageField(value: v, fieldNumber: 253) }() case .wasmReturnCallDirect?: try { guard case .wasmReturnCallDirect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 250) + try visitor.visitSingularMessageField(value: v, fieldNumber: 254) }() case .wasmReturnCallIndirect?: try { guard case .wasmReturnCallIndirect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 251) + try visitor.visitSingularMessageField(value: v, fieldNumber: 255) }() case .wasmMemoryLoad?: try { guard case .wasmMemoryLoad(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 252) + try visitor.visitSingularMessageField(value: v, fieldNumber: 256) }() case .wasmMemoryStore?: try { guard case .wasmMemoryStore(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 253) + try visitor.visitSingularMessageField(value: v, fieldNumber: 257) }() case .wasmAtomicLoad?: try { guard case .wasmAtomicLoad(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 254) + try visitor.visitSingularMessageField(value: v, fieldNumber: 258) }() case .wasmAtomicStore?: try { guard case .wasmAtomicStore(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 255) + try visitor.visitSingularMessageField(value: v, fieldNumber: 259) }() case .wasmAtomicRmw?: try { guard case .wasmAtomicRmw(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 256) + try visitor.visitSingularMessageField(value: v, fieldNumber: 260) }() case .wasmAtomicCmpxchg?: try { guard case .wasmAtomicCmpxchg(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 257) + try visitor.visitSingularMessageField(value: v, fieldNumber: 261) }() case .wasmMemorySize?: try { guard case .wasmMemorySize(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 258) + try visitor.visitSingularMessageField(value: v, fieldNumber: 262) }() case .wasmMemoryGrow?: try { guard case .wasmMemoryGrow(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 259) + try visitor.visitSingularMessageField(value: v, fieldNumber: 263) }() case .wasmMemoryFill?: try { guard case .wasmMemoryFill(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 260) + try visitor.visitSingularMessageField(value: v, fieldNumber: 264) }() case .wasmMemoryInit?: try { guard case .wasmMemoryInit(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 261) + try visitor.visitSingularMessageField(value: v, fieldNumber: 265) }() case .wasmDropDataSegment?: try { guard case .wasmDropDataSegment(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 262) + try visitor.visitSingularMessageField(value: v, fieldNumber: 266) }() case .beginWasmFunction?: try { guard case .beginWasmFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 263) + try visitor.visitSingularMessageField(value: v, fieldNumber: 267) }() case .endWasmFunction?: try { guard case .endWasmFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 264) + try visitor.visitSingularMessageField(value: v, fieldNumber: 268) }() case .wasmBeginBlock?: try { guard case .wasmBeginBlock(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 265) + try visitor.visitSingularMessageField(value: v, fieldNumber: 269) }() case .wasmEndBlock?: try { guard case .wasmEndBlock(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 266) + try visitor.visitSingularMessageField(value: v, fieldNumber: 270) }() case .wasmBeginLoop?: try { guard case .wasmBeginLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 267) + try visitor.visitSingularMessageField(value: v, fieldNumber: 271) }() case .wasmEndLoop?: try { guard case .wasmEndLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 268) + try visitor.visitSingularMessageField(value: v, fieldNumber: 272) }() case .wasmBranch?: try { guard case .wasmBranch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 269) + try visitor.visitSingularMessageField(value: v, fieldNumber: 273) }() case .wasmBranchIf?: try { guard case .wasmBranchIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 270) + try visitor.visitSingularMessageField(value: v, fieldNumber: 274) }() case .wasmBranchTable?: try { guard case .wasmBranchTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 271) + try visitor.visitSingularMessageField(value: v, fieldNumber: 275) }() case .wasmNop?: try { guard case .wasmNop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 272) + try visitor.visitSingularMessageField(value: v, fieldNumber: 276) }() case .wasmBeginIf?: try { guard case .wasmBeginIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 273) + try visitor.visitSingularMessageField(value: v, fieldNumber: 277) }() case .wasmBeginElse?: try { guard case .wasmBeginElse(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 274) + try visitor.visitSingularMessageField(value: v, fieldNumber: 278) }() case .wasmEndIf?: try { guard case .wasmEndIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 275) + try visitor.visitSingularMessageField(value: v, fieldNumber: 279) }() case .wasmBeginTryTable?: try { guard case .wasmBeginTryTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 276) + try visitor.visitSingularMessageField(value: v, fieldNumber: 280) }() case .wasmEndTryTable?: try { guard case .wasmEndTryTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 277) + try visitor.visitSingularMessageField(value: v, fieldNumber: 281) }() case .wasmBeginTry?: try { guard case .wasmBeginTry(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 278) + try visitor.visitSingularMessageField(value: v, fieldNumber: 282) }() case .wasmBeginCatchAll?: try { guard case .wasmBeginCatchAll(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 279) + try visitor.visitSingularMessageField(value: v, fieldNumber: 283) }() case .wasmBeginCatch?: try { guard case .wasmBeginCatch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 280) + try visitor.visitSingularMessageField(value: v, fieldNumber: 284) }() case .wasmEndTry?: try { guard case .wasmEndTry(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 281) + try visitor.visitSingularMessageField(value: v, fieldNumber: 285) }() case .wasmBeginTryDelegate?: try { guard case .wasmBeginTryDelegate(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 282) + try visitor.visitSingularMessageField(value: v, fieldNumber: 286) }() case .wasmEndTryDelegate?: try { guard case .wasmEndTryDelegate(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 283) + try visitor.visitSingularMessageField(value: v, fieldNumber: 287) }() case .wasmThrow?: try { guard case .wasmThrow(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 284) + try visitor.visitSingularMessageField(value: v, fieldNumber: 288) }() case .wasmRethrow?: try { guard case .wasmRethrow(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 285) + try visitor.visitSingularMessageField(value: v, fieldNumber: 289) }() case .wasmThrowRef?: try { guard case .wasmThrowRef(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 286) + try visitor.visitSingularMessageField(value: v, fieldNumber: 290) }() case .wasmDefineTag?: try { guard case .wasmDefineTag(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 287) + try visitor.visitSingularMessageField(value: v, fieldNumber: 291) }() case .constSimd128?: try { guard case .constSimd128(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 288) + try visitor.visitSingularMessageField(value: v, fieldNumber: 292) }() case .wasmSimd128Compare?: try { guard case .wasmSimd128Compare(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 289) + try visitor.visitSingularMessageField(value: v, fieldNumber: 293) }() case .wasmSimd128IntegerUnOp?: try { guard case .wasmSimd128IntegerUnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 290) + try visitor.visitSingularMessageField(value: v, fieldNumber: 294) }() case .wasmSimd128IntegerBinOp?: try { guard case .wasmSimd128IntegerBinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 291) + try visitor.visitSingularMessageField(value: v, fieldNumber: 295) }() case .wasmSimd128IntegerTernaryOp?: try { guard case .wasmSimd128IntegerTernaryOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 292) + try visitor.visitSingularMessageField(value: v, fieldNumber: 296) }() case .wasmSimd128FloatUnOp?: try { guard case .wasmSimd128FloatUnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 293) + try visitor.visitSingularMessageField(value: v, fieldNumber: 297) }() case .wasmSimd128FloatBinOp?: try { guard case .wasmSimd128FloatBinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 294) + try visitor.visitSingularMessageField(value: v, fieldNumber: 298) }() case .wasmSimd128FloatTernaryOp?: try { guard case .wasmSimd128FloatTernaryOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 295) + try visitor.visitSingularMessageField(value: v, fieldNumber: 299) }() case .wasmSimdSplat?: try { guard case .wasmSimdSplat(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 296) + try visitor.visitSingularMessageField(value: v, fieldNumber: 300) }() case .wasmSimdExtractLane?: try { guard case .wasmSimdExtractLane(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 297) + try visitor.visitSingularMessageField(value: v, fieldNumber: 301) }() case .wasmSimdReplaceLane?: try { guard case .wasmSimdReplaceLane(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 298) + try visitor.visitSingularMessageField(value: v, fieldNumber: 302) }() case .wasmSimdStoreLane?: try { guard case .wasmSimdStoreLane(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 299) + try visitor.visitSingularMessageField(value: v, fieldNumber: 303) }() case .wasmSimdLoadLane?: try { guard case .wasmSimdLoadLane(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 300) + try visitor.visitSingularMessageField(value: v, fieldNumber: 304) }() case .wasmSimdLoad?: try { guard case .wasmSimdLoad(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 301) + try visitor.visitSingularMessageField(value: v, fieldNumber: 305) }() case .wasmUnreachable?: try { guard case .wasmUnreachable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 302) + try visitor.visitSingularMessageField(value: v, fieldNumber: 306) }() case .wasmSelect?: try { guard case .wasmSelect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 303) + try visitor.visitSingularMessageField(value: v, fieldNumber: 307) }() case .wasmBeginTypeGroup?: try { guard case .wasmBeginTypeGroup(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 304) + try visitor.visitSingularMessageField(value: v, fieldNumber: 308) }() case .wasmEndTypeGroup?: try { guard case .wasmEndTypeGroup(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 305) + try visitor.visitSingularMessageField(value: v, fieldNumber: 309) }() case .wasmDefineArrayType?: try { guard case .wasmDefineArrayType(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 306) + try visitor.visitSingularMessageField(value: v, fieldNumber: 310) }() case .wasmDefineStructType?: try { guard case .wasmDefineStructType(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 307) + try visitor.visitSingularMessageField(value: v, fieldNumber: 311) }() case .wasmDefineForwardOrSelfReference?: try { guard case .wasmDefineForwardOrSelfReference(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 308) + try visitor.visitSingularMessageField(value: v, fieldNumber: 312) }() case .wasmResolveForwardReference?: try { guard case .wasmResolveForwardReference(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 309) + try visitor.visitSingularMessageField(value: v, fieldNumber: 313) }() case .wasmArrayNewFixed?: try { guard case .wasmArrayNewFixed(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 310) + try visitor.visitSingularMessageField(value: v, fieldNumber: 314) }() case .wasmArrayNewDefault?: try { guard case .wasmArrayNewDefault(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 311) + try visitor.visitSingularMessageField(value: v, fieldNumber: 315) }() case .wasmArrayLen?: try { guard case .wasmArrayLen(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 312) + try visitor.visitSingularMessageField(value: v, fieldNumber: 316) }() case .wasmArrayGet?: try { guard case .wasmArrayGet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 313) + try visitor.visitSingularMessageField(value: v, fieldNumber: 317) }() case .wasmArraySet?: try { guard case .wasmArraySet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 314) + try visitor.visitSingularMessageField(value: v, fieldNumber: 318) }() case .wasmStructNewDefault?: try { guard case .wasmStructNewDefault(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 315) + try visitor.visitSingularMessageField(value: v, fieldNumber: 319) }() case .wasmStructGet?: try { guard case .wasmStructGet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 316) + try visitor.visitSingularMessageField(value: v, fieldNumber: 320) }() case .wasmStructSet?: try { guard case .wasmStructSet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 317) + try visitor.visitSingularMessageField(value: v, fieldNumber: 321) }() case .wasmRefNull?: try { guard case .wasmRefNull(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 318) + try visitor.visitSingularMessageField(value: v, fieldNumber: 322) }() case .wasmRefIsNull?: try { guard case .wasmRefIsNull(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 319) + try visitor.visitSingularMessageField(value: v, fieldNumber: 323) }() case .wasmRefI31?: try { guard case .wasmRefI31(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 320) + try visitor.visitSingularMessageField(value: v, fieldNumber: 324) }() case .wasmI31Get?: try { guard case .wasmI31Get(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 321) + try visitor.visitSingularMessageField(value: v, fieldNumber: 325) }() case .wasmAnyConvertExtern?: try { guard case .wasmAnyConvertExtern(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 322) + try visitor.visitSingularMessageField(value: v, fieldNumber: 326) }() case .wasmExternConvertAny?: try { guard case .wasmExternConvertAny(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 323) + try visitor.visitSingularMessageField(value: v, fieldNumber: 327) }() case .wasmMemoryCopy?: try { guard case .wasmMemoryCopy(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 324) + try visitor.visitSingularMessageField(value: v, fieldNumber: 328) }() case .wasmDefineElementSegment?: try { guard case .wasmDefineElementSegment(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 325) + try visitor.visitSingularMessageField(value: v, fieldNumber: 329) }() case .wasmTableInit?: try { guard case .wasmTableInit(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 326) + try visitor.visitSingularMessageField(value: v, fieldNumber: 330) }() case .wasmDropElementSegment?: try { guard case .wasmDropElementSegment(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 327) + try visitor.visitSingularMessageField(value: v, fieldNumber: 331) }() case .wasmTableCopy?: try { guard case .wasmTableCopy(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 328) + try visitor.visitSingularMessageField(value: v, fieldNumber: 332) }() case .wasmDefineSignatureType?: try { guard case .wasmDefineSignatureType(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 329) + try visitor.visitSingularMessageField(value: v, fieldNumber: 333) }() case .createNamedDisposableVariable?: try { guard case .createNamedDisposableVariable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 330) + try visitor.visitSingularMessageField(value: v, fieldNumber: 334) }() case .createNamedAsyncDisposableVariable?: try { guard case .createNamedAsyncDisposableVariable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 331) - }() - case .beginClassInstanceComputedMethod?: try { - guard case .beginClassInstanceComputedMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 332) - }() - case .endClassInstanceComputedMethod?: try { - guard case .endClassInstanceComputedMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 333) - }() - case .beginClassStaticComputedMethod?: try { - guard case .beginClassStaticComputedMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 334) - }() - case .endClassStaticComputedMethod?: try { - guard case .endClassStaticComputedMethod(let v)? = self.operation else { preconditionFailure() } try visitor.visitSingularMessageField(value: v, fieldNumber: 335) }() case nil: break diff --git a/Sources/Fuzzilli/Protobuf/program.proto b/Sources/Fuzzilli/Protobuf/program.proto index 46c3f7a9c..0582386bf 100644 --- a/Sources/Fuzzilli/Protobuf/program.proto +++ b/Sources/Fuzzilli/Protobuf/program.proto @@ -63,302 +63,302 @@ message Instruction { ClassAddInstanceComputedProperty classAddInstanceComputedProperty = 37; BeginClassInstanceMethod beginClassInstanceMethod = 38; EndClassInstanceMethod endClassInstanceMethod = 39; - BeginClassInstanceGetter beginClassInstanceGetter = 40; - EndClassInstanceGetter endClassInstanceGetter = 41; - BeginClassInstanceSetter beginClassInstanceSetter = 42; - EndClassInstanceSetter endClassInstanceSetter = 43; - ClassAddStaticProperty classAddStaticProperty = 44; - ClassAddStaticElement classAddStaticElement = 45; - ClassAddStaticComputedProperty classAddStaticComputedProperty = 46; - BeginClassStaticInitializer beginClassStaticInitializer = 47; - EndClassStaticInitializer endClassStaticInitializer = 48; - BeginClassStaticMethod beginClassStaticMethod = 49; - EndClassStaticMethod endClassStaticMethod = 50; - BeginClassStaticGetter beginClassStaticGetter = 51; - EndClassStaticGetter endClassStaticGetter = 52; - BeginClassStaticSetter beginClassStaticSetter = 53; - EndClassStaticSetter endClassStaticSetter = 54; - ClassAddPrivateInstanceProperty classAddPrivateInstanceProperty = 55; - BeginClassPrivateInstanceMethod beginClassPrivateInstanceMethod = 56; - EndClassPrivateInstanceMethod endClassPrivateInstanceMethod = 57; - ClassAddPrivateStaticProperty classAddPrivateStaticProperty = 58; - BeginClassPrivateStaticMethod beginClassPrivateStaticMethod = 59; - EndClassPrivateStaticMethod endClassPrivateStaticMethod = 60; - EndClassDefinition endClassDefinition = 61; - CreateArray createArray = 62; - CreateIntArray createIntArray = 63; - CreateFloatArray createFloatArray = 64; - CreateArrayWithSpread createArrayWithSpread = 65; - CreateTemplateString createTemplateString = 66; - GetProperty getProperty = 67; - SetProperty setProperty = 68; - UpdateProperty updateProperty = 69; - DeleteProperty deleteProperty = 70; - ConfigureProperty configureProperty = 71; - GetElement getElement = 72; - SetElement setElement = 73; - UpdateElement updateElement = 74; - DeleteElement deleteElement = 75; - ConfigureElement configureElement = 76; - GetComputedProperty getComputedProperty = 77; - SetComputedProperty setComputedProperty = 78; - UpdateComputedProperty updateComputedProperty = 79; - DeleteComputedProperty deleteComputedProperty = 80; - ConfigureComputedProperty configureComputedProperty = 81; - TypeOf typeOf = 82; - Void void = 83; - TestInstanceOf testInstanceOf = 84; - TestIn testIn = 85; - BeginPlainFunction beginPlainFunction = 86; - EndPlainFunction endPlainFunction = 87; - BeginArrowFunction beginArrowFunction = 88; - EndArrowFunction endArrowFunction = 89; - BeginGeneratorFunction beginGeneratorFunction = 90; - EndGeneratorFunction endGeneratorFunction = 91; - BeginAsyncFunction beginAsyncFunction = 92; - EndAsyncFunction endAsyncFunction = 93; - BeginAsyncArrowFunction beginAsyncArrowFunction = 94; - EndAsyncArrowFunction endAsyncArrowFunction = 95; - BeginAsyncGeneratorFunction beginAsyncGeneratorFunction = 96; - EndAsyncGeneratorFunction endAsyncGeneratorFunction = 97; - BeginConstructor beginConstructor = 98; - EndConstructor endConstructor = 99; - Directive directive = 100; - Return return = 101; - Yield yield = 102; - YieldEach yieldEach = 103; - Await await = 104; - CallFunction callFunction = 105; - CallFunctionWithSpread callFunctionWithSpread = 106; - Construct construct = 107; - ConstructWithSpread constructWithSpread = 108; - CallMethod callMethod = 109; - CallMethodWithSpread callMethodWithSpread = 110; - CallComputedMethod callComputedMethod = 111; - CallComputedMethodWithSpread callComputedMethodWithSpread = 112; - UnaryOperation unaryOperation = 113; - BinaryOperation binaryOperation = 114; - TernaryOperation ternaryOperation = 115; - Update update = 116; - Dup dup = 117; - Reassign reassign = 118; - DestructArray destructArray = 119; - DestructArrayAndReassign destructArrayAndReassign = 120; - DestructObject destructObject = 121; - DestructObjectAndReassign destructObjectAndReassign = 122; - Compare compare = 123; - Eval eval = 124; - BeginWith beginWith = 125; - EndWith endWith = 126; - CallSuperConstructor callSuperConstructor = 127; - CallSuperMethod callSuperMethod = 128; - GetPrivateProperty getPrivateProperty = 129; - SetPrivateProperty setPrivateProperty = 130; - UpdatePrivateProperty updatePrivateProperty = 131; - CallPrivateMethod callPrivateMethod = 132; - GetSuperProperty getSuperProperty = 133; - SetSuperProperty setSuperProperty = 134; - GetComputedSuperProperty getComputedSuperProperty = 135; - SetComputedSuperProperty setComputedSuperProperty = 136; - UpdateSuperProperty updateSuperProperty = 137; - BeginIf beginIf = 138; - BeginElse beginElse = 139; - EndIf endIf = 140; - BeginWhileLoopHeader beginWhileLoopHeader = 141; - BeginWhileLoopBody beginWhileLoopBody = 142; - EndWhileLoop endWhileLoop = 143; - BeginDoWhileLoopBody beginDoWhileLoopBody = 144; - BeginDoWhileLoopHeader beginDoWhileLoopHeader = 145; - EndDoWhileLoop endDoWhileLoop = 146; - BeginForLoopInitializer beginForLoopInitializer = 147; - BeginForLoopCondition beginForLoopCondition = 148; - BeginForLoopAfterthought beginForLoopAfterthought = 149; - BeginForLoopBody beginForLoopBody = 150; - EndForLoop endForLoop = 151; - BeginForInLoop beginForInLoop = 152; - EndForInLoop endForInLoop = 153; - BeginForOfLoop beginForOfLoop = 154; - BeginForOfLoopWithDestruct beginForOfLoopWithDestruct = 155; - EndForOfLoop endForOfLoop = 156; - BeginRepeatLoop beginRepeatLoop = 157; - EndRepeatLoop endRepeatLoop = 158; - LoopBreak loopBreak = 159; - LoopContinue loopContinue = 160; - BeginTry beginTry = 161; - BeginCatch beginCatch = 162; - BeginFinally beginFinally = 163; - EndTryCatchFinally endTryCatchFinally = 164; - ThrowException throwException = 165; - BeginCodeString beginCodeString = 166; - EndCodeString endCodeString = 167; - BeginBlockStatement beginBlockStatement = 168; - EndBlockStatement endBlockStatement = 169; - BeginSwitch beginSwitch = 170; - BeginSwitchCase beginSwitchCase = 171; - BeginSwitchDefaultCase beginSwitchDefaultCase = 172; - EndSwitchCase endSwitchCase = 173; - EndSwitch endSwitch = 174; - SwitchBreak switchBreak = 175; - LoadNewTarget loadNewTarget = 176; - Print print = 177; - Explore explore = 178; - Probe probe = 179; - Fixup fixup = 180; - BeginWasmModule beginWasmModule = 181; - EndWasmModule endWasmModule = 182; - CreateWasmGlobal createWasmGlobal = 183; - CreateWasmMemory createWasmMemory = 184; - CreateWasmTable createWasmTable = 185; - CreateWasmJSTag createWasmJSTag = 186; - CreateWasmTag createWasmTag = 187; - WrapPromising wrapPromising = 188; - WrapSuspending wrapSuspending = 189; - BindMethod bindMethod = 190; - BindFunction bindFunction = 191; - Consti64 consti64 = 192; - Consti32 consti32 = 193; - Constf32 constf32 = 194; - Constf64 constf64 = 195; - WasmReturn wasmReturn = 196; - WasmJsCall wasmJsCall = 197; - Wasmi32CompareOp wasmi32CompareOp = 198; - Wasmi64CompareOp wasmi64CompareOp = 199; - Wasmf32CompareOp wasmf32CompareOp = 200; - Wasmf64CompareOp wasmf64CompareOp = 201; - Wasmi32EqualZero wasmi32EqualZero = 202; - Wasmi64EqualZero wasmi64EqualZero = 203; - Wasmi32BinOp wasmi32BinOp = 204; - Wasmi64BinOp wasmi64BinOp = 205; - Wasmi32UnOp wasmi32UnOp = 206; - Wasmi64UnOp wasmi64UnOp = 207; - Wasmf32BinOp wasmf32BinOp = 208; - Wasmf64BinOp wasmf64BinOp = 209; - Wasmf32UnOp wasmf32UnOp = 210; - Wasmf64UnOp wasmf64UnOp = 211; - WasmWrapi64Toi32 wasmWrapi64Toi32 = 212; - WasmTruncatef32Toi32 wasmTruncatef32Toi32 = 213; - WasmTruncatef64Toi32 wasmTruncatef64Toi32 = 214; - WasmExtendi32Toi64 wasmExtendi32Toi64 = 215; - WasmTruncatef32Toi64 wasmTruncatef32Toi64 = 216; - WasmTruncatef64Toi64 wasmTruncatef64Toi64 = 217; - WasmConverti32Tof32 wasmConverti32Tof32 = 218; - WasmConverti64Tof32 wasmConverti64Tof32 = 219; - WasmDemotef64Tof32 wasmDemotef64Tof32 = 220; - WasmConverti32Tof64 wasmConverti32Tof64 = 221; - WasmConverti64Tof64 wasmConverti64Tof64 = 222; - WasmPromotef32Tof64 wasmPromotef32Tof64 = 223; - WasmReinterpretf32Asi32 wasmReinterpretf32Asi32 = 224; - WasmReinterpretf64Asi64 wasmReinterpretf64Asi64 = 225; - WasmReinterpreti32Asf32 wasmReinterpreti32Asf32 = 226; - WasmReinterpreti64Asf64 wasmReinterpreti64Asf64 = 227; - WasmSignExtend8Intoi32 wasmSignExtend8Intoi32 = 228; - WasmSignExtend16Intoi32 wasmSignExtend16Intoi32 = 229; - WasmSignExtend8Intoi64 wasmSignExtend8Intoi64 = 230; - WasmSignExtend16Intoi64 wasmSignExtend16Intoi64 = 231; - WasmSignExtend32Intoi64 wasmSignExtend32Intoi64 = 232; - WasmTruncateSatf32Toi32 wasmTruncateSatf32Toi32 = 233; - WasmTruncateSatf64Toi32 wasmTruncateSatf64Toi32 = 234; - WasmTruncateSatf32Toi64 wasmTruncateSatf32Toi64 = 235; - WasmTruncateSatf64Toi64 wasmTruncateSatf64Toi64 = 236; - WasmReassign wasmReassign = 237; - WasmDefineGlobal wasmDefineGlobal = 238; - WasmDefineTable wasmDefineTable = 239; - WasmDefineMemory wasmDefineMemory = 240; - WasmDefineDataSegment wasmDefineDataSegment = 241; - WasmLoadGlobal wasmLoadGlobal = 242; - WasmStoreGlobal wasmStoreGlobal = 243; - WasmTableGet wasmTableGet = 244; - WasmTableSet wasmTableSet = 245; - WasmTableSize wasmTableSize = 246; - WasmTableGrow wasmTableGrow = 247; - WasmCallIndirect wasmCallIndirect = 248; - WasmCallDirect wasmCallDirect = 249; - WasmReturnCallDirect wasmReturnCallDirect = 250; - WasmReturnCallIndirect wasmReturnCallIndirect = 251; - WasmMemoryLoad wasmMemoryLoad = 252; - WasmMemoryStore wasmMemoryStore = 253; - WasmAtomicLoad wasmAtomicLoad = 254; - WasmAtomicStore wasmAtomicStore = 255; - WasmAtomicRMW wasmAtomicRMW = 256; - WasmAtomicCmpxchg wasmAtomicCmpxchg = 257; - WasmMemorySize wasmMemorySize = 258; - WasmMemoryGrow wasmMemoryGrow = 259; - WasmMemoryFill wasmMemoryFill = 260; - WasmMemoryInit wasmMemoryInit = 261; - WasmDropDataSegment wasmDropDataSegment = 262; - BeginWasmFunction beginWasmFunction = 263; - EndWasmFunction endWasmFunction = 264; - WasmBeginBlock wasmBeginBlock = 265; - WasmEndBlock wasmEndBlock = 266; - WasmBeginLoop wasmBeginLoop = 267; - WasmEndLoop wasmEndLoop = 268; - WasmBranch wasmBranch = 269; - WasmBranchIf wasmBranchIf = 270; - WasmBranchTable wasmBranchTable = 271; - WasmNop wasmNop = 272; - WasmBeginIf wasmBeginIf = 273; - WasmBeginElse wasmBeginElse = 274; - WasmEndIf wasmEndIf = 275; - WasmBeginTryTable wasmBeginTryTable = 276; - WasmEndTryTable wasmEndTryTable = 277; - WasmBeginTry wasmBeginTry = 278; - WasmBeginCatchAll wasmBeginCatchAll = 279; - WasmBeginCatch wasmBeginCatch = 280; - WasmEndTry wasmEndTry = 281; - WasmBeginTryDelegate wasmBeginTryDelegate = 282; - WasmEndTryDelegate wasmEndTryDelegate = 283; - WasmThrow wasmThrow = 284; - WasmRethrow wasmRethrow = 285; - WasmThrowRef wasmThrowRef = 286; - WasmDefineTag wasmDefineTag = 287; - ConstSimd128 constSimd128 = 288; - WasmSimd128Compare wasmSimd128Compare = 289; - WasmSimd128IntegerUnOp wasmSimd128IntegerUnOp = 290; - WasmSimd128IntegerBinOp wasmSimd128IntegerBinOp = 291; - WasmSimd128IntegerTernaryOp wasmSimd128IntegerTernaryOp = 292; - WasmSimd128FloatUnOp wasmSimd128FloatUnOp = 293; - WasmSimd128FloatBinOp wasmSimd128FloatBinOp = 294; - WasmSimd128FloatTernaryOp wasmSimd128FloatTernaryOp = 295; - WasmSimdSplat wasmSimdSplat = 296; - WasmSimdExtractLane wasmSimdExtractLane = 297; - WasmSimdReplaceLane wasmSimdReplaceLane = 298; - WasmSimdStoreLane wasmSimdStoreLane = 299; - WasmSimdLoadLane wasmSimdLoadLane = 300; - WasmSimdLoad wasmSimdLoad = 301; - WasmUnreachable wasmUnreachable = 302; - WasmSelect wasmSelect = 303; - WasmBeginTypeGroup wasmBeginTypeGroup = 304; - WasmEndTypeGroup wasmEndTypeGroup = 305; - WasmDefineArrayType wasmDefineArrayType = 306; - WasmDefineStructType wasmDefineStructType = 307; - WasmDefineForwardOrSelfReference wasmDefineForwardOrSelfReference = 308; - WasmResolveForwardReference wasmResolveForwardReference = 309; - WasmArrayNewFixed wasmArrayNewFixed = 310; - WasmArrayNewDefault wasmArrayNewDefault = 311; - WasmArrayLen wasmArrayLen = 312; - WasmArrayGet wasmArrayGet = 313; - WasmArraySet wasmArraySet = 314; - WasmStructNewDefault wasmStructNewDefault = 315; - WasmStructGet wasmStructGet = 316; - WasmStructSet wasmStructSet = 317; - WasmRefNull wasmRefNull = 318; - WasmRefIsNull wasmRefIsNull = 319; - WasmRefI31 wasmRefI31 = 320; - WasmI31Get wasmI31Get = 321; - WasmAnyConvertExtern wasmAnyConvertExtern = 322; - WasmExternConvertAny wasmExternConvertAny = 323; - WasmMemoryCopy wasmMemoryCopy = 324; - WasmDefineElementSegment wasmDefineElementSegment = 325; - WasmTableInit wasmTableInit = 326; - WasmDropElementSegment wasmDropElementSegment = 327; - WasmTableCopy wasmTableCopy = 328; - WasmDefineSignatureType wasmDefineSignatureType = 329; - CreateNamedDisposableVariable createNamedDisposableVariable = 330; - CreateNamedAsyncDisposableVariable createNamedAsyncDisposableVariable = 331; - BeginClassInstanceComputedMethod beginClassInstanceComputedMethod = 332; - EndClassInstanceComputedMethod endClassInstanceComputedMethod = 333; - BeginClassStaticComputedMethod beginClassStaticComputedMethod = 334; - EndClassStaticComputedMethod endClassStaticComputedMethod = 335; + BeginClassInstanceComputedMethod beginClassInstanceComputedMethod = 40; + EndClassInstanceComputedMethod endClassInstanceComputedMethod = 41; + BeginClassInstanceGetter beginClassInstanceGetter = 42; + EndClassInstanceGetter endClassInstanceGetter = 43; + BeginClassInstanceSetter beginClassInstanceSetter = 44; + EndClassInstanceSetter endClassInstanceSetter = 45; + ClassAddStaticProperty classAddStaticProperty = 46; + ClassAddStaticElement classAddStaticElement = 47; + ClassAddStaticComputedProperty classAddStaticComputedProperty = 48; + BeginClassStaticInitializer beginClassStaticInitializer = 49; + EndClassStaticInitializer endClassStaticInitializer = 50; + BeginClassStaticMethod beginClassStaticMethod = 51; + EndClassStaticMethod endClassStaticMethod = 52; + BeginClassStaticComputedMethod beginClassStaticComputedMethod = 53; + EndClassStaticComputedMethod endClassStaticComputedMethod = 54; + BeginClassStaticGetter beginClassStaticGetter = 55; + EndClassStaticGetter endClassStaticGetter = 56; + BeginClassStaticSetter beginClassStaticSetter = 57; + EndClassStaticSetter endClassStaticSetter = 58; + ClassAddPrivateInstanceProperty classAddPrivateInstanceProperty = 59; + BeginClassPrivateInstanceMethod beginClassPrivateInstanceMethod = 60; + EndClassPrivateInstanceMethod endClassPrivateInstanceMethod = 61; + ClassAddPrivateStaticProperty classAddPrivateStaticProperty = 62; + BeginClassPrivateStaticMethod beginClassPrivateStaticMethod = 63; + EndClassPrivateStaticMethod endClassPrivateStaticMethod = 64; + EndClassDefinition endClassDefinition = 65; + CreateArray createArray = 66; + CreateIntArray createIntArray = 67; + CreateFloatArray createFloatArray = 68; + CreateArrayWithSpread createArrayWithSpread = 69; + CreateTemplateString createTemplateString = 70; + GetProperty getProperty = 71; + SetProperty setProperty = 72; + UpdateProperty updateProperty = 73; + DeleteProperty deleteProperty = 74; + ConfigureProperty configureProperty = 75; + GetElement getElement = 76; + SetElement setElement = 77; + UpdateElement updateElement = 78; + DeleteElement deleteElement = 79; + ConfigureElement configureElement = 80; + GetComputedProperty getComputedProperty = 81; + SetComputedProperty setComputedProperty = 82; + UpdateComputedProperty updateComputedProperty = 83; + DeleteComputedProperty deleteComputedProperty = 84; + ConfigureComputedProperty configureComputedProperty = 85; + TypeOf typeOf = 86; + Void void = 87; + TestInstanceOf testInstanceOf = 88; + TestIn testIn = 89; + BeginPlainFunction beginPlainFunction = 90; + EndPlainFunction endPlainFunction = 91; + BeginArrowFunction beginArrowFunction = 92; + EndArrowFunction endArrowFunction = 93; + BeginGeneratorFunction beginGeneratorFunction = 94; + EndGeneratorFunction endGeneratorFunction = 95; + BeginAsyncFunction beginAsyncFunction = 96; + EndAsyncFunction endAsyncFunction = 97; + BeginAsyncArrowFunction beginAsyncArrowFunction = 98; + EndAsyncArrowFunction endAsyncArrowFunction = 99; + BeginAsyncGeneratorFunction beginAsyncGeneratorFunction = 100; + EndAsyncGeneratorFunction endAsyncGeneratorFunction = 101; + BeginConstructor beginConstructor = 102; + EndConstructor endConstructor = 103; + Directive directive = 104; + Return return = 105; + Yield yield = 106; + YieldEach yieldEach = 107; + Await await = 108; + CallFunction callFunction = 109; + CallFunctionWithSpread callFunctionWithSpread = 110; + Construct construct = 111; + ConstructWithSpread constructWithSpread = 112; + CallMethod callMethod = 113; + CallMethodWithSpread callMethodWithSpread = 114; + CallComputedMethod callComputedMethod = 115; + CallComputedMethodWithSpread callComputedMethodWithSpread = 116; + UnaryOperation unaryOperation = 117; + BinaryOperation binaryOperation = 118; + TernaryOperation ternaryOperation = 119; + Update update = 120; + Dup dup = 121; + Reassign reassign = 122; + DestructArray destructArray = 123; + DestructArrayAndReassign destructArrayAndReassign = 124; + DestructObject destructObject = 125; + DestructObjectAndReassign destructObjectAndReassign = 126; + Compare compare = 127; + Eval eval = 128; + BeginWith beginWith = 129; + EndWith endWith = 130; + CallSuperConstructor callSuperConstructor = 131; + CallSuperMethod callSuperMethod = 132; + GetPrivateProperty getPrivateProperty = 133; + SetPrivateProperty setPrivateProperty = 134; + UpdatePrivateProperty updatePrivateProperty = 135; + CallPrivateMethod callPrivateMethod = 136; + GetSuperProperty getSuperProperty = 137; + SetSuperProperty setSuperProperty = 138; + GetComputedSuperProperty getComputedSuperProperty = 139; + SetComputedSuperProperty setComputedSuperProperty = 140; + UpdateSuperProperty updateSuperProperty = 141; + BeginIf beginIf = 142; + BeginElse beginElse = 143; + EndIf endIf = 144; + BeginWhileLoopHeader beginWhileLoopHeader = 145; + BeginWhileLoopBody beginWhileLoopBody = 146; + EndWhileLoop endWhileLoop = 147; + BeginDoWhileLoopBody beginDoWhileLoopBody = 148; + BeginDoWhileLoopHeader beginDoWhileLoopHeader = 149; + EndDoWhileLoop endDoWhileLoop = 150; + BeginForLoopInitializer beginForLoopInitializer = 151; + BeginForLoopCondition beginForLoopCondition = 152; + BeginForLoopAfterthought beginForLoopAfterthought = 153; + BeginForLoopBody beginForLoopBody = 154; + EndForLoop endForLoop = 155; + BeginForInLoop beginForInLoop = 156; + EndForInLoop endForInLoop = 157; + BeginForOfLoop beginForOfLoop = 158; + BeginForOfLoopWithDestruct beginForOfLoopWithDestruct = 159; + EndForOfLoop endForOfLoop = 160; + BeginRepeatLoop beginRepeatLoop = 161; + EndRepeatLoop endRepeatLoop = 162; + LoopBreak loopBreak = 163; + LoopContinue loopContinue = 164; + BeginTry beginTry = 165; + BeginCatch beginCatch = 166; + BeginFinally beginFinally = 167; + EndTryCatchFinally endTryCatchFinally = 168; + ThrowException throwException = 169; + BeginCodeString beginCodeString = 170; + EndCodeString endCodeString = 171; + BeginBlockStatement beginBlockStatement = 172; + EndBlockStatement endBlockStatement = 173; + BeginSwitch beginSwitch = 174; + BeginSwitchCase beginSwitchCase = 175; + BeginSwitchDefaultCase beginSwitchDefaultCase = 176; + EndSwitchCase endSwitchCase = 177; + EndSwitch endSwitch = 178; + SwitchBreak switchBreak = 179; + LoadNewTarget loadNewTarget = 180; + Print print = 181; + Explore explore = 182; + Probe probe = 183; + Fixup fixup = 184; + BeginWasmModule beginWasmModule = 185; + EndWasmModule endWasmModule = 186; + CreateWasmGlobal createWasmGlobal = 187; + CreateWasmMemory createWasmMemory = 188; + CreateWasmTable createWasmTable = 189; + CreateWasmJSTag createWasmJSTag = 190; + CreateWasmTag createWasmTag = 191; + WrapPromising wrapPromising = 192; + WrapSuspending wrapSuspending = 193; + BindMethod bindMethod = 194; + BindFunction bindFunction = 195; + Consti64 consti64 = 196; + Consti32 consti32 = 197; + Constf32 constf32 = 198; + Constf64 constf64 = 199; + WasmReturn wasmReturn = 200; + WasmJsCall wasmJsCall = 201; + Wasmi32CompareOp wasmi32CompareOp = 202; + Wasmi64CompareOp wasmi64CompareOp = 203; + Wasmf32CompareOp wasmf32CompareOp = 204; + Wasmf64CompareOp wasmf64CompareOp = 205; + Wasmi32EqualZero wasmi32EqualZero = 206; + Wasmi64EqualZero wasmi64EqualZero = 207; + Wasmi32BinOp wasmi32BinOp = 208; + Wasmi64BinOp wasmi64BinOp = 209; + Wasmi32UnOp wasmi32UnOp = 210; + Wasmi64UnOp wasmi64UnOp = 211; + Wasmf32BinOp wasmf32BinOp = 212; + Wasmf64BinOp wasmf64BinOp = 213; + Wasmf32UnOp wasmf32UnOp = 214; + Wasmf64UnOp wasmf64UnOp = 215; + WasmWrapi64Toi32 wasmWrapi64Toi32 = 216; + WasmTruncatef32Toi32 wasmTruncatef32Toi32 = 217; + WasmTruncatef64Toi32 wasmTruncatef64Toi32 = 218; + WasmExtendi32Toi64 wasmExtendi32Toi64 = 219; + WasmTruncatef32Toi64 wasmTruncatef32Toi64 = 220; + WasmTruncatef64Toi64 wasmTruncatef64Toi64 = 221; + WasmConverti32Tof32 wasmConverti32Tof32 = 222; + WasmConverti64Tof32 wasmConverti64Tof32 = 223; + WasmDemotef64Tof32 wasmDemotef64Tof32 = 224; + WasmConverti32Tof64 wasmConverti32Tof64 = 225; + WasmConverti64Tof64 wasmConverti64Tof64 = 226; + WasmPromotef32Tof64 wasmPromotef32Tof64 = 227; + WasmReinterpretf32Asi32 wasmReinterpretf32Asi32 = 228; + WasmReinterpretf64Asi64 wasmReinterpretf64Asi64 = 229; + WasmReinterpreti32Asf32 wasmReinterpreti32Asf32 = 230; + WasmReinterpreti64Asf64 wasmReinterpreti64Asf64 = 231; + WasmSignExtend8Intoi32 wasmSignExtend8Intoi32 = 232; + WasmSignExtend16Intoi32 wasmSignExtend16Intoi32 = 233; + WasmSignExtend8Intoi64 wasmSignExtend8Intoi64 = 234; + WasmSignExtend16Intoi64 wasmSignExtend16Intoi64 = 235; + WasmSignExtend32Intoi64 wasmSignExtend32Intoi64 = 236; + WasmTruncateSatf32Toi32 wasmTruncateSatf32Toi32 = 237; + WasmTruncateSatf64Toi32 wasmTruncateSatf64Toi32 = 238; + WasmTruncateSatf32Toi64 wasmTruncateSatf32Toi64 = 239; + WasmTruncateSatf64Toi64 wasmTruncateSatf64Toi64 = 240; + WasmReassign wasmReassign = 241; + WasmDefineGlobal wasmDefineGlobal = 242; + WasmDefineTable wasmDefineTable = 243; + WasmDefineMemory wasmDefineMemory = 244; + WasmDefineDataSegment wasmDefineDataSegment = 245; + WasmLoadGlobal wasmLoadGlobal = 246; + WasmStoreGlobal wasmStoreGlobal = 247; + WasmTableGet wasmTableGet = 248; + WasmTableSet wasmTableSet = 249; + WasmTableSize wasmTableSize = 250; + WasmTableGrow wasmTableGrow = 251; + WasmCallIndirect wasmCallIndirect = 252; + WasmCallDirect wasmCallDirect = 253; + WasmReturnCallDirect wasmReturnCallDirect = 254; + WasmReturnCallIndirect wasmReturnCallIndirect = 255; + WasmMemoryLoad wasmMemoryLoad = 256; + WasmMemoryStore wasmMemoryStore = 257; + WasmAtomicLoad wasmAtomicLoad = 258; + WasmAtomicStore wasmAtomicStore = 259; + WasmAtomicRMW wasmAtomicRMW = 260; + WasmAtomicCmpxchg wasmAtomicCmpxchg = 261; + WasmMemorySize wasmMemorySize = 262; + WasmMemoryGrow wasmMemoryGrow = 263; + WasmMemoryFill wasmMemoryFill = 264; + WasmMemoryInit wasmMemoryInit = 265; + WasmDropDataSegment wasmDropDataSegment = 266; + BeginWasmFunction beginWasmFunction = 267; + EndWasmFunction endWasmFunction = 268; + WasmBeginBlock wasmBeginBlock = 269; + WasmEndBlock wasmEndBlock = 270; + WasmBeginLoop wasmBeginLoop = 271; + WasmEndLoop wasmEndLoop = 272; + WasmBranch wasmBranch = 273; + WasmBranchIf wasmBranchIf = 274; + WasmBranchTable wasmBranchTable = 275; + WasmNop wasmNop = 276; + WasmBeginIf wasmBeginIf = 277; + WasmBeginElse wasmBeginElse = 278; + WasmEndIf wasmEndIf = 279; + WasmBeginTryTable wasmBeginTryTable = 280; + WasmEndTryTable wasmEndTryTable = 281; + WasmBeginTry wasmBeginTry = 282; + WasmBeginCatchAll wasmBeginCatchAll = 283; + WasmBeginCatch wasmBeginCatch = 284; + WasmEndTry wasmEndTry = 285; + WasmBeginTryDelegate wasmBeginTryDelegate = 286; + WasmEndTryDelegate wasmEndTryDelegate = 287; + WasmThrow wasmThrow = 288; + WasmRethrow wasmRethrow = 289; + WasmThrowRef wasmThrowRef = 290; + WasmDefineTag wasmDefineTag = 291; + ConstSimd128 constSimd128 = 292; + WasmSimd128Compare wasmSimd128Compare = 293; + WasmSimd128IntegerUnOp wasmSimd128IntegerUnOp = 294; + WasmSimd128IntegerBinOp wasmSimd128IntegerBinOp = 295; + WasmSimd128IntegerTernaryOp wasmSimd128IntegerTernaryOp = 296; + WasmSimd128FloatUnOp wasmSimd128FloatUnOp = 297; + WasmSimd128FloatBinOp wasmSimd128FloatBinOp = 298; + WasmSimd128FloatTernaryOp wasmSimd128FloatTernaryOp = 299; + WasmSimdSplat wasmSimdSplat = 300; + WasmSimdExtractLane wasmSimdExtractLane = 301; + WasmSimdReplaceLane wasmSimdReplaceLane = 302; + WasmSimdStoreLane wasmSimdStoreLane = 303; + WasmSimdLoadLane wasmSimdLoadLane = 304; + WasmSimdLoad wasmSimdLoad = 305; + WasmUnreachable wasmUnreachable = 306; + WasmSelect wasmSelect = 307; + WasmBeginTypeGroup wasmBeginTypeGroup = 308; + WasmEndTypeGroup wasmEndTypeGroup = 309; + WasmDefineArrayType wasmDefineArrayType = 310; + WasmDefineStructType wasmDefineStructType = 311; + WasmDefineForwardOrSelfReference wasmDefineForwardOrSelfReference = 312; + WasmResolveForwardReference wasmResolveForwardReference = 313; + WasmArrayNewFixed wasmArrayNewFixed = 314; + WasmArrayNewDefault wasmArrayNewDefault = 315; + WasmArrayLen wasmArrayLen = 316; + WasmArrayGet wasmArrayGet = 317; + WasmArraySet wasmArraySet = 318; + WasmStructNewDefault wasmStructNewDefault = 319; + WasmStructGet wasmStructGet = 320; + WasmStructSet wasmStructSet = 321; + WasmRefNull wasmRefNull = 322; + WasmRefIsNull wasmRefIsNull = 323; + WasmRefI31 wasmRefI31 = 324; + WasmI31Get wasmI31Get = 325; + WasmAnyConvertExtern wasmAnyConvertExtern = 326; + WasmExternConvertAny wasmExternConvertAny = 327; + WasmMemoryCopy wasmMemoryCopy = 328; + WasmDefineElementSegment wasmDefineElementSegment = 329; + WasmTableInit wasmTableInit = 330; + WasmDropElementSegment wasmDropElementSegment = 331; + WasmTableCopy wasmTableCopy = 332; + WasmDefineSignatureType wasmDefineSignatureType = 333; + CreateNamedDisposableVariable createNamedDisposableVariable = 334; + CreateNamedAsyncDisposableVariable createNamedAsyncDisposableVariable = 335; } } diff --git a/Tests/FuzzilliTests/WasmTests.swift b/Tests/FuzzilliTests/WasmTests.swift index 0932b2421..05a3c6b61 100644 --- a/Tests/FuzzilliTests/WasmTests.swift +++ b/Tests/FuzzilliTests/WasmTests.swift @@ -4116,9 +4116,9 @@ class WasmFoundationTests: XCTestCase { b.buildWasmModule { wasmModule in let f1 = wasmModule.addWasmFunction(with: [] => []) { _, _, _ in return []} let f2 = wasmModule.addWasmFunction(with: [] => []) { _, _, _ in return []} - wasmModule.addElementSegment(elementsType: .wasmFunctionDef(), elements: []) - wasmModule.addElementSegment(elementsType: .wasmFunctionDef(), elements: [f1]) - wasmModule.addElementSegment(elementsType: .wasmFunctionDef(), elements: [f1, f2]) + wasmModule.addElementSegment(elements: []) + wasmModule.addElementSegment(elements: [f1]) + wasmModule.addElementSegment(elements: [f1, f2]) } } testForOutput(program: jsProg, runner: runner, outputString: "") @@ -4130,7 +4130,7 @@ class WasmFoundationTests: XCTestCase { let jsProg = buildAndLiftProgram() { b in b.buildWasmModule { wasmModule in let function = wasmModule.addWasmFunction(with: [] => []) { _, _, _ in return []} - let segment = wasmModule.addElementSegment(elementsType: .wasmFunctionDef(), elements: [function]) + let segment = wasmModule.addElementSegment(elements: [function]) wasmModule.addWasmFunction(with: [] => []) { f, _, _ in f.wasmDropElementSegment(elementSegment: segment) return [] @@ -4140,7 +4140,97 @@ class WasmFoundationTests: XCTestCase { testForOutput(program: jsProg, runner: runner, outputString: "") } - // TODO(427115604): add tests that actually use element segments once table.init operation is supported. + func wasmTableInit(isTable64: Bool) throws { + let runner = try GetJavaScriptExecutorOrSkipTest() + + let jsProg = buildAndLiftProgram() { b in + let module = b.buildWasmModule { module in + let f1 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(1)]} + let f2 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(2)]} + let f3 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(3)]} + + module.addTable(elementType: .wasmFuncRef, + minSize: 10, + definedEntries: [], + definedEntryValues: [], + isTable64: isTable64) + let table2 = module.addTable(elementType: .wasmFuncRef, + minSize: 10, + definedEntries: [], + definedEntryValues: [], + isTable64: isTable64) + module.addElementSegment(elements: []) + let elemSegment2 = module.addElementSegment(elements: [f3, f3, f1, f2]) + + module.addWasmFunction(with: [] => [.wasmi64, .wasmi64]) { f, _, _ in + let tableOffset = { (i: Int) in isTable64 ? f.consti64(Int64(i)) : f.consti32(Int32(i))} + f.wasmTableInit(elementSegment: elemSegment2, table: table2, tableOffset: tableOffset(5), elementSegmentOffset: f.consti32(2), nrOfElementsToUpdate: f.consti32(2)) + let callIndirect = { (table: Variable, idx: Int) in + let idxVar = isTable64 ? f.consti64(Int64(idx)) : f.consti32(Int32(idx)) + return f.wasmCallIndirect(signature: [] => [.wasmi64], table: table, functionArgs: [], tableIndex: idxVar) + } + return callIndirect(table2, 5) + callIndirect(table2, 6) + } + } + let res = b.callMethod(module.getExportedMethod(at: 3), on: module.loadExports()) + b.callFunction(b.createNamedVariable(forBuiltin: "output"), withArgs: [b.arrayToStringForTesting(res)]) + } + + testForOutput(program: jsProg, runner: runner, outputString: "1,2\n") + } + + func testTableInit32() throws { + try wasmTableInit(isTable64: false) + } + + func testTableInit64() throws { + try wasmTableInit(isTable64: true) + } + + func wasmTableCopy(isTable64: Bool) throws { + let runner = try GetJavaScriptExecutorOrSkipTest() + + let jsProg = buildAndLiftProgram() { b in + let module = b.buildWasmModule { module in + let f1 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(1)]} + let f2 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(2)]} + let f3 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(3)]} + + let table1 = module.addTable(elementType: .wasmFuncRef, + minSize: 10, + definedEntries: [], + definedEntryValues: [], + isTable64: isTable64) + let table2 = module.addTable(elementType: .wasmFuncRef, + minSize: 10, + definedEntries: (0..<4).map { WasmTableType.IndexInTableAndWasmSignature.init(indexInTable: $0, signature: [] => [.wasmi64]) }, + definedEntryValues: [f3, f3, f1, f2], + isTable64: isTable64) + + module.addWasmFunction(with: [] => [.wasmi64, .wasmi64]) { f, _, _ in + let const = { (i: Int) in isTable64 ? f.consti64(Int64(i)) : f.consti32(Int32(i))} + f.wasmTableCopy(dstTable: table1, srcTable: table2, dstOffset: const(1), srcOffset: const(2), count: const(2)) + let callIndirect = { (table: Variable, idx: Int) in + let idxVar = isTable64 ? f.consti64(Int64(idx)) : f.consti32(Int32(idx)) + return f.wasmCallIndirect(signature: [] => [.wasmi64], table: table, functionArgs: [], tableIndex: idxVar) + } + return callIndirect(table1, 1) + callIndirect(table1, 2) + } + } + let res = b.callMethod(module.getExportedMethod(at: 3), on: module.loadExports()) + b.callFunction(b.createNamedVariable(forBuiltin: "output"), withArgs: [b.arrayToStringForTesting(res)]) + } + + testForOutput(program: jsProg, runner: runner, outputString: "1,2\n") + } + + func testTableCopy32() throws { + try wasmTableCopy(isTable64: false) + } + + func testTableCopy64() throws { + try wasmTableCopy(isTable64: true) + } } class WasmGCTests: XCTestCase { From 3c15c5c3d63d4b5a601a39f5d2724586b0a62776 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Fri, 10 Oct 2025 02:00:04 -0700 Subject: [PATCH 03/61] Revert "Fix order in Opcodes.swift to be in line with program.proto" This reverts commit dc981ce448a6fab92b023e41a493d42cc3355e17. Reason for revert: This fix was invalidated by commit 88d0e33041bea3f57a573b10bc4503df279dda74 Original change's description: > Fix order in Opcodes.swift to be in line with program.proto > > Commit adfa084a75e58e71a1877c3ea2c430a3f114e7ef manually modified the > program.proto, so these got out of sync. > > Bug: 446634535 > Change-Id: I63438de9d88684a766b2f4f2cfc7f88a5b5b1079 > Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8643678 > Reviewed-by: Michael Achenbach > Auto-Submit: Matthias Liedtke > Commit-Queue: Michael Achenbach Bug: 446634535 Change-Id: I873f100cf42b628548ab123230c869e91cc2c713 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8655440 Bot-Commit: Rubber Stamper Reviewed-by: Pawel Krawczyk Commit-Queue: Pawel Krawczyk --- Sources/Fuzzilli/FuzzIL/Opcodes.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/Fuzzilli/FuzzIL/Opcodes.swift b/Sources/Fuzzilli/FuzzIL/Opcodes.swift index 44bca30d2..f9fda2f00 100644 --- a/Sources/Fuzzilli/FuzzIL/Opcodes.swift +++ b/Sources/Fuzzilli/FuzzIL/Opcodes.swift @@ -67,6 +67,8 @@ enum Opcode { case classAddInstanceComputedProperty(ClassAddInstanceComputedProperty) case beginClassInstanceMethod(BeginClassInstanceMethod) case endClassInstanceMethod(EndClassInstanceMethod) + case beginClassInstanceComputedMethod(BeginClassInstanceComputedMethod) + case endClassInstanceComputedMethod(EndClassInstanceComputedMethod) case beginClassInstanceGetter(BeginClassInstanceGetter) case endClassInstanceGetter(EndClassInstanceGetter) case beginClassInstanceSetter(BeginClassInstanceSetter) @@ -78,6 +80,8 @@ enum Opcode { case endClassStaticInitializer(EndClassStaticInitializer) case beginClassStaticMethod(BeginClassStaticMethod) case endClassStaticMethod(EndClassStaticMethod) + case beginClassStaticComputedMethod(BeginClassStaticComputedMethod) + case endClassStaticComputedMethod(EndClassStaticComputedMethod) case beginClassStaticGetter(BeginClassStaticGetter) case endClassStaticGetter(EndClassStaticGetter) case beginClassStaticSetter(BeginClassStaticSetter) @@ -359,8 +363,4 @@ enum Opcode { case wasmDefineSignatureType(WasmDefineSignatureType) case createNamedDisposableVariable(CreateNamedDisposableVariable) case createNamedAsyncDisposableVariable(CreateNamedAsyncDisposableVariable) - case beginClassInstanceComputedMethod(BeginClassInstanceComputedMethod) - case endClassInstanceComputedMethod(EndClassInstanceComputedMethod) - case beginClassStaticComputedMethod(BeginClassStaticComputedMethod) - case endClassStaticComputedMethod(EndClassStaticComputedMethod) } From bd36b88943775e6e51edf0095fff4fbf3cb67196 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Fri, 10 Oct 2025 11:39:56 +0200 Subject: [PATCH 04/61] Let git in presubmit run in the base directory Bug: 449893303 Change-Id: I206533d114565c7565dd7ab33411e7b932837640 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8657396 Reviewed-by: Matthias Liedtke Commit-Queue: Matthias Liedtke Auto-Submit: Michael Achenbach Commit-Queue: Michael Achenbach --- Tools/presubmit.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Tools/presubmit.py b/Tools/presubmit.py index 2fd903e52..ea62f0afe 100644 --- a/Tools/presubmit.py +++ b/Tools/presubmit.py @@ -2,6 +2,10 @@ import shutil import subprocess +from pathlib import Path + +BASE_DIR = Path(__file__).parent.parent.resolve() + KNOWN_PROTO_FILES = [ "program.proto", "operations.proto", @@ -11,7 +15,11 @@ def check_git_clean(): """Check that the git repository does not have any uncommitted changes.""" - result = subprocess.run(["git", "status", "--porcelain", "--untracked-files=no"], capture_output=True, check=True) + result = subprocess.run( + ["git", "status", "--porcelain", "--untracked-files=no"], + cwd=BASE_DIR, + capture_output=True, + check=True) assert result.stdout.decode().strip() == "", f"Unexpected modified files: {result.stdout.decode()}" def check_proto(): From 6b6240bf36eae0156224a79b315ebe35a616bf67 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Thu, 9 Oct 2025 16:11:08 +0200 Subject: [PATCH 05/61] [v8] Conditionally enable new flag --wasm-assert-types This flag is added in https://crrev.com/c/7022989. Bug: 450246010 Change-Id: Ibcda60b74ef76d536c0ec94a5b40799a29b233e7 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8654776 Reviewed-by: Michael Achenbach Commit-Queue: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8Profile.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index f85c88470..057f8beeb 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -60,6 +60,9 @@ let v8Profile = Profile( // Note that this flag only affects WebAssembly. if probability(0.5) { args.append("--no-liftoff") + if probability(0.3) { + args.append("--wasm-assert-types") + } } // This greatly helps the fuzzer to decide inlining wasm functions into each other when From 559353484b782ba6aa998d0f762b0d585f48bee7 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Fri, 10 Oct 2025 15:54:43 +0200 Subject: [PATCH 06/61] Make presubmit tolerant to staged files and fix directories The application of patches in bot_update in the infrastructure leaves files as staged, which would be detected by the `git status` command. We change this to `git diff` to only flag the unstaged changes, provoked by the proto generation tool. This also fixes more directories that require to be absolute paths. Bug: 449893303 Change-Id: Ic06d6594e18237453c85a3d2bafd944ceababd7d Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8655125 Reviewed-by: Matthias Liedtke Auto-Submit: Michael Achenbach Commit-Queue: Matthias Liedtke --- Tools/presubmit.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Tools/presubmit.py b/Tools/presubmit.py index ea62f0afe..df04798e6 100644 --- a/Tools/presubmit.py +++ b/Tools/presubmit.py @@ -16,7 +16,7 @@ def check_git_clean(): """Check that the git repository does not have any uncommitted changes.""" result = subprocess.run( - ["git", "status", "--porcelain", "--untracked-files=no"], + ["git", "diff", "--name-only"], cwd=BASE_DIR, capture_output=True, check=True) @@ -25,7 +25,7 @@ def check_git_clean(): def check_proto(): """Check that program.proto is up-to-date.""" print("Checking generated protobuf files...") - proto_dir = "Sources/Fuzzilli/Protobuf" + proto_dir = BASE_DIR / "Sources/Fuzzilli/Protobuf" subprocess.run(["python3", "./gen_programproto.py"], cwd=proto_dir, check=True) # gen_programproto.py should be a no-op. check_git_clean() @@ -34,8 +34,8 @@ def check_proto(): print("Skipping protobuf validation as protoc is not available.") return - swift_protobuf_path = os.getcwd() + "/.build/checkouts/swift-protobuf" - assert os.path.exists(swift_protobuf_path), \ + swift_protobuf_path = BASE_DIR / ".build/checkouts/swift-protobuf" + assert swift_protobuf_path.exists(), \ "The presubmit requires a swift-protobuf checkout, e.g. via \"swift build\"" # Build swift-protobuf (for simplicity reuse the fetched repository from the swift-protobuf library). # Use a debug build as running it is very quick while building it with reelase might be slow. From bac523f36f8edd36bf918f7ae000e35fef7dcc9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20H=C3=A9rouart?= Date: Thu, 16 Oct 2025 01:21:06 -0700 Subject: [PATCH 07/61] [v8] Add `--proto-assign-seq-opt` to the fuzzed v8 arguments. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Include `--proto_assign_seq_opt` with a 0.5 probability. Bug: 429332174 Change-Id: Ibd2539fe2bff676ebd8fb4b23b3805484ae524b1 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8673377 Commit-Queue: Raphaël Hérouart Reviewed-by: Michael Achenbach Reviewed-by: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8Profile.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 057f8beeb..6ba5f297e 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -146,6 +146,10 @@ let v8Profile = Profile( args.append("--stress-wasm-stack-switching") } + if probability(0.5) { + args.append("--proto-assign-seq-opt") + } + // // Sometimes enable additional verification/stressing logic (which may be fairly expensive). // From 8ed7091391c0090df02a2d11c61cb580df8398ff Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Mon, 20 Oct 2025 09:25:34 +0200 Subject: [PATCH 08/61] Bump V8 timeouts to fix bots Bug: 453513823 Change-Id: I4739cb837eee52faea8af449b4938314517fcb38 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8685816 Reviewed-by: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/V8Profile.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift b/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift index d292c4cba..00cef7b5a 100644 --- a/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift @@ -40,7 +40,7 @@ let v8HoleFuzzingProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: 300, codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 6ba5f297e..6971747f5 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -261,7 +261,7 @@ let v8Profile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: 300, codePrefix: """ """, From 91fb4ab3f42770853453ef9ca8489824fdd0a8b5 Mon Sep 17 00:00:00 2001 From: "Rong \"Mantle\" Bao" Date: Mon, 20 Oct 2025 19:43:13 +0800 Subject: [PATCH 09/61] Pass environment variables to the engine in startup tests (#535) * Make REPRL env property a list of tuples of (key, value) * Pass env vars when running startup tests --- Sources/Fuzzilli/Execution/REPRL.swift | 10 +++++----- Sources/Fuzzilli/Execution/ScriptRunner.swift | 1 + Sources/Fuzzilli/Fuzzer.swift | 4 +++- Sources/Fuzzilli/Util/JavaScriptExecutor.swift | 17 ++++++++++++----- Sources/Fuzzilli/Util/MockFuzzer.swift | 1 + 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Sources/Fuzzilli/Execution/REPRL.swift b/Sources/Fuzzilli/Execution/REPRL.swift index 22bb3c34f..005310ec8 100644 --- a/Sources/Fuzzilli/Execution/REPRL.swift +++ b/Sources/Fuzzilli/Execution/REPRL.swift @@ -24,8 +24,8 @@ public class REPRL: ComponentBase, ScriptRunner { /// Commandline arguments for the executable public private(set) var processArguments: [String] - /// Environment variables for the child process - private var env = [String]() + /// Environment variables for the child process. Shape: [(key, value)] + public private(set) var env = [(String, String)]() /// Number of script executions since start of child process private var execsSinceReset = 0 @@ -50,7 +50,7 @@ public class REPRL: ComponentBase, ScriptRunner { super.init(name: "REPRL") for (key, value) in processEnvironment { - env.append(key + "=" + value) + env.append((key, value)) } } @@ -61,7 +61,7 @@ public class REPRL: ComponentBase, ScriptRunner { } let argv = convertToCArray(processArguments) - let envp = convertToCArray(env) + let envp = convertToCArray(env.map({ $0 + "=" + $1 })) if reprl_initialize_context(reprlContext, argv, envp, /* capture stdout */ 1, /* capture stderr: */ 1) != 0 { logger.fatal("Failed to initialize REPRL context: \(String(cString: reprl_get_last_error(reprlContext)))") @@ -76,7 +76,7 @@ public class REPRL: ComponentBase, ScriptRunner { } public func setEnvironmentVariable(_ key: String, to value: String) { - env.append(key + "=" + value) + env.append((key, value)) } public func run(_ script: String, withTimeout timeout: UInt32) -> Execution { diff --git a/Sources/Fuzzilli/Execution/ScriptRunner.swift b/Sources/Fuzzilli/Execution/ScriptRunner.swift index 36bccf7e8..fcd408d1d 100644 --- a/Sources/Fuzzilli/Execution/ScriptRunner.swift +++ b/Sources/Fuzzilli/Execution/ScriptRunner.swift @@ -14,6 +14,7 @@ public protocol ScriptRunner: Component { var processArguments: [String] { get } + var env: [(String, String)] { get } /// Executes a script, waits for it to complete, and returns the result. func run(_ script: String, withTimeout timeout: UInt32) -> Execution diff --git a/Sources/Fuzzilli/Fuzzer.swift b/Sources/Fuzzilli/Fuzzer.swift index 3be0dadb1..e9d10abf9 100644 --- a/Sources/Fuzzilli/Fuzzer.swift +++ b/Sources/Fuzzilli/Fuzzer.swift @@ -1013,7 +1013,9 @@ public class Fuzzer { // Wrap the executor in a JavaScriptTestRunner // If we can execute it standalone, it could inform us if any flags that were passed are incorrect, stale or conflicting. - let executor = JavaScriptExecutor(withExecutablePath: runner.processArguments[0], arguments: Array(runner.processArguments[1...])) + let executor = JavaScriptExecutor( + withExecutablePath: runner.processArguments[0], + arguments: Array(runner.processArguments[1...]), env: runner.env) do { let output = try executor.executeScript("", withTimeout: 300).output if output.lengthOfBytes(using: .utf8) > 0 { diff --git a/Sources/Fuzzilli/Util/JavaScriptExecutor.swift b/Sources/Fuzzilli/Util/JavaScriptExecutor.swift index 1f0ae1d50..4340c67ef 100644 --- a/Sources/Fuzzilli/Util/JavaScriptExecutor.swift +++ b/Sources/Fuzzilli/Util/JavaScriptExecutor.swift @@ -38,9 +38,12 @@ public class JavaScriptExecutor { let arguments: [String] + let env: [(String, String)] + /// Depending on the type this constructor will try to find the requested shell or fail - public init?(type: ExecutorType = .any, withArguments maybeArguments: [String]? = nil) { + public init?(type: ExecutorType = .any, withArguments maybeArguments: [String]? = nil, withEnv maybeEnv: [(String, String)]? = nil) { self.arguments = maybeArguments ?? [] + self.env = maybeEnv ?? [] let path: String? switch type { @@ -59,23 +62,24 @@ public class JavaScriptExecutor { self.executablePath = path! } - public init(withExecutablePath executablePath: String, arguments: [String]) { + public init(withExecutablePath executablePath: String, arguments: [String], env: [(String, String)]) { self.executablePath = executablePath self.arguments = arguments + self.env = env } /// Executes the JavaScript script using the configured engine and returns the stdout. public func executeScript(_ script: String, withTimeout timeout: TimeInterval? = nil) throws -> Result { - return try execute(executablePath, withInput: prefix + script.data(using: .utf8)!, withArguments: self.arguments, timeout: timeout) + return try execute(executablePath, withInput: prefix + script.data(using: .utf8)!, withArguments: self.arguments, withEnv: self.env, timeout: timeout) } /// Executes the JavaScript script at the specified path using the configured engine and returns the stdout. public func executeScript(at url: URL, withTimeout timeout: TimeInterval? = nil) throws -> Result { let script = try Data(contentsOf: url) - return try execute(executablePath, withInput: prefix + script, withArguments: self.arguments, timeout: timeout) + return try execute(executablePath, withInput: prefix + script, withArguments: self.arguments, withEnv: self.env, timeout: timeout) } - func execute(_ path: String, withInput input: Data = Data(), withArguments arguments: [String] = [], timeout maybeTimeout: TimeInterval? = nil) throws -> Result { + func execute(_ path: String, withInput input: Data = Data(), withArguments arguments: [String] = [], withEnv env: [(String, String)] = [], timeout maybeTimeout: TimeInterval? = nil) throws -> Result { let inputPipe = Pipe() let outputPipe = Pipe() let errorPipe = Pipe() @@ -89,6 +93,8 @@ public class JavaScriptExecutor { // Close stdin try inputPipe.fileHandleForWriting.close() + let environment = ProcessInfo.processInfo.environment.merging(env, uniquingKeysWith: { _, new in new }) + // Execute the subprocess. let task = Process() task.standardOutput = outputPipe @@ -96,6 +102,7 @@ public class JavaScriptExecutor { task.arguments = arguments + [url.path] task.executableURL = URL(fileURLWithPath: path) task.standardInput = inputPipe + task.environment = environment try task.run() var timedOut = false diff --git a/Sources/Fuzzilli/Util/MockFuzzer.swift b/Sources/Fuzzilli/Util/MockFuzzer.swift index a7bab9463..44feb77f4 100644 --- a/Sources/Fuzzilli/Util/MockFuzzer.swift +++ b/Sources/Fuzzilli/Util/MockFuzzer.swift @@ -26,6 +26,7 @@ struct MockExecution: Execution { class MockScriptRunner: ScriptRunner { var processArguments: [String] = [] + var env: [(String, String)] = [] func run(_ script: String, withTimeout timeout: UInt32) -> Execution { return MockExecution(outcome: .succeeded, From 37a7022dc27b980093e6f9a45ecf8031c4261f48 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Fri, 10 Oct 2025 14:43:40 +0200 Subject: [PATCH 10/61] Support ILType.unboundFunction in ProgramBuilder.generateTypeInternal While not a perfect fix, this will address the warnings and should lead to generating useful samples. Change-Id: Iff0dc4d099a0ebf5138c271209351cc633f222a3 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8655658 Commit-Queue: Matthias Liedtke Auto-Submit: Matthias Liedtke Reviewed-by: Carl Smith --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 7 +++++++ Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index d6cf99689..ba6eb2ef4 100644 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -686,6 +686,13 @@ public class ProgramBuilder { // Note that builtin constructors are handled above in the maybeGenerateConstructorAsPath call. return self.randomVariable(forUseAs: .function()) }), + (.unboundFunction(), { + // TODO: We have the same issue as above for functions. + // First try to find an existing unbound function. if not present, try to find any + // function. Using any function as an unbound function is fine, it just misses the + // information about the receiver type (which for many functions doesn't matter). + return self.randomVariable(ofType: .unboundFunction()) ?? self.randomVariable(forUseAs: .function()) + }), (.undefined, { return self.loadUndefined() }), (.constructor(), { // TODO: We have the same issue as above for functions. diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index 6611acdef..e687a3de9 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -1965,7 +1965,6 @@ public let CodeGenerators: [CodeGenerator] = [ c, withArgs: arguments, spreading: spreads, guard: needGuard) }, - // TODO(mliedtke): Improve generateTypeInternal to support .unboundFunction() CodeGenerator("UnboundFunctionCallGenerator", inputs: .preferred(.unboundFunction())) { b, f in let (arguments, argsMatch) = b.randomArguments(forCallingGuardableFunction: f) let fctType = b.type(of: f) @@ -1976,7 +1975,6 @@ public let CodeGenerators: [CodeGenerator] = [ b.callMethod("call", on: f, withArgs: [receiver] + arguments, guard: needGuard) }, - // TODO(mliedtke): Improve generateTypeInternal to support .unboundFunction() CodeGenerator("UnboundFunctionApplyGenerator", inputs: .preferred(.unboundFunction())) { b, f in let (arguments, argsMatch) = b.randomArguments(forCallingGuardableFunction: f) let fctType = b.type(of: f) @@ -1987,7 +1985,6 @@ public let CodeGenerators: [CodeGenerator] = [ b.callMethod("apply", on: f, withArgs: [receiver, b.createArray(with: arguments)], guard: needGuard) }, - // TODO(mliedtke): Improve generateTypeInternal to support .unboundFunction() CodeGenerator("UnboundFunctionBindGenerator", inputs: .required(.unboundFunction())) { b, f in let arguments = b.randomArguments(forCalling: f) let fctType = b.type(of: f) From 4359c6efe4ba978d36b5cbb28b483b14c1de26aa Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Mon, 20 Oct 2025 12:06:39 +0200 Subject: [PATCH 11/61] Remove maintainer list from README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... as the project is now maintained by a broader group of people. Change-Id: Ie08675f27644b7f54c9e9e2eb265163fb358e5cf Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8686137 Commit-Queue: Matthias Liedtke Reviewed-by: Samuel Groß --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index cf083cce2..862bc0667 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,6 @@ A (coverage-)guided fuzzer for dynamic language interpreters based on a custom intermediate language ("FuzzIL") which can be mutated and translated to JavaScript. -Fuzzilli is developed and maintained by: -- Samuel Groß, -- Carl Smith, - ## Usage The basic steps to use this fuzzer are: From 96a8dc193687756825834d4b1e2c0c1ae9a2673f Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Fri, 17 Oct 2025 11:01:18 +0200 Subject: [PATCH 12/61] Print a debug message after a fatal error Fuzzilli sometimes aborts without any message. This adds a message to a code place that might not print anything else yet. Bug: 453513823 Change-Id: Ice480cc70903cfcb73165886db7b497cd0bb907e Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8679216 Reviewed-by: Matthias Liedtke Reviewed-by: Danylo Mocherniuk Commit-Queue: Michael Achenbach --- Sources/FuzzilliCli/main.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sources/FuzzilliCli/main.swift b/Sources/FuzzilliCli/main.swift index a01f59475..8d381e85a 100644 --- a/Sources/FuzzilliCli/main.swift +++ b/Sources/FuzzilliCli/main.swift @@ -557,7 +557,11 @@ fuzzer.sync { logger.info("You can recover the old corpus by moving it to \(path + "/corpus").") } } - exit(reason.toExitCode()) + let code = reason.toExitCode() + if (code != 0) { + print("Aborting execution after a fatal error.") + } + exit(code) } // Store samples to disk if requested. From 3b4ef3a94bb52aaae3d5c1eed6b642346d8401a1 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Mon, 20 Oct 2025 10:54:10 +0200 Subject: [PATCH 13/61] [v8] Disable ParitionAlloc This doesn't seem to work with Fuzzilli, yet. Bug: 453530599 Change-Id: Id944bba33c2c802cceada5f7281ac1c82a811c36 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8686136 Reviewed-by: Michael Achenbach Auto-Submit: Matthias Liedtke Commit-Queue: Michael Achenbach --- Targets/V8/fuzzbuild.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Targets/V8/fuzzbuild.sh b/Targets/V8/fuzzbuild.sh index 315739645..be651085e 100755 --- a/Targets/V8/fuzzbuild.sh +++ b/Targets/V8/fuzzbuild.sh @@ -16,7 +16,7 @@ if [ "$(uname)" == "Linux" ]; then # See https://v8.dev/docs/compile-arm64 for instructions on how to build on Arm64 - gn gen out/fuzzbuild --args='is_debug=false dcheck_always_on=true v8_static_library=true v8_enable_verify_heap=true v8_fuzzilli=true sanitizer_coverage_flags="trace-pc-guard" target_cpu="x64"' + gn gen out/fuzzbuild --args='is_debug=false dcheck_always_on=true v8_static_library=true v8_enable_verify_heap=true v8_enable_partition_alloc=false v8_fuzzilli=true sanitizer_coverage_flags="trace-pc-guard" target_cpu="x64"' else echo "Unsupported operating system" fi From 165adb70f070659b6b95e341e4b99012a766aa52 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Mon, 20 Oct 2025 16:42:07 +0200 Subject: [PATCH 14/61] Enable the FuzzIL compiler to directly output a JS file This will be used by an automated script compiling and lifting test cases from e.g. test262. Bug: 442444727 Change-Id: I0b2321e44e0def292cd88a103a46b03960ee1d55 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8680076 Commit-Queue: Michael Achenbach Reviewed-by: Matthias Liedtke --- Sources/FuzzILTool/main.swift | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/Sources/FuzzILTool/main.swift b/Sources/FuzzILTool/main.swift index b9ed54deb..a8a3b6009 100644 --- a/Sources/FuzzILTool/main.swift +++ b/Sources/FuzzILTool/main.swift @@ -95,7 +95,7 @@ func loadProgramOrExit(from path: String) -> Program { let args = Arguments.parse(from: CommandLine.arguments) -if args["-h"] != nil || args["--help"] != nil || args.numPositionalArguments != 1 || args.numOptionalArguments > 2 { +if args["-h"] != nil || args["--help"] != nil || args.numPositionalArguments != 1 { print(""" Usage: \(args.programName) options path @@ -108,6 +108,7 @@ if args["-h"] != nil || args["--help"] != nil || args.numPositionalArguments != --dumpProgram : Dumps the internal representation of the program stored in the given protobuf file --checkCorpus : Attempts to load all .fzil files in a directory and checks if they are statically valid --compile : Compile the given JavaScript program to a FuzzIL program. Requires node.js + --outputPathJS : If given, --compile will write the lifted JS file to the given path after compilation. --generate : Generate a random program using Fuzzilli's code generators and save it to the specified path. --forDifferentialFuzzing : Enable additional features for better support of external differential fuzzing. """) @@ -186,17 +187,27 @@ else if args.has("--compile") { exit(-1) } - print(fuzzILLifter.lift(program)) - print() - print(jsLifter.lift(program)) + if let js_path = args["--outputPathJS"] { + let content = jsLifter.lift(program) + do { + try content.write(to: URL(fileURLWithPath: js_path), atomically: false, encoding: String.Encoding.utf8) + } catch { + print("Failed to write file \(js_path): \(error)") + exit(-1) + } + } else { + print(fuzzILLifter.lift(program)) + print() + print(jsLifter.lift(program)) - do { - let outputPath = URL(fileURLWithPath: path).deletingPathExtension().appendingPathExtension("fzil") - try program.asProtobuf().serializedData().write(to: outputPath) - print("FuzzIL program written to \(outputPath.relativePath)") - } catch { - print("Failed to store output program to disk: \(error)") - exit(-1) + do { + let outputPath = URL(fileURLWithPath: path).deletingPathExtension().appendingPathExtension("fzil") + try program.asProtobuf().serializedData().write(to: outputPath) + print("FuzzIL program written to \(outputPath.relativePath)") + } catch { + print("Failed to store output program to disk: \(error)") + exit(-1) + } } } From 12f601cb18008e250543527a60756da889703b62 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Mon, 20 Oct 2025 17:34:26 +0200 Subject: [PATCH 15/61] Make disposable-variable generators more expressive This turns the existing disposable-variable generators into new-style stubs that enable more expressive code generation in the bodies of the generated objects. Bug: 446632644 Change-Id: Ife11999aa61d133c15232bca58e30deb525d880d Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8654476 Reviewed-by: Matthias Liedtke Commit-Queue: Michael Achenbach --- Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 86 +++++++++++++------ 1 file changed, 60 insertions(+), 26 deletions(-) diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index e687a3de9..b62621d5e 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -12,6 +12,54 @@ // See the License for the specific language governing permissions and // limitations under the License. +// Generator stubs for disposable and async-disposable variables. +func disposableVariableGeneratorStubs( + inContext contextRequirement : Context, + withSymbol symbolProperty : String, + genDisposableVariable : @escaping (ProgramBuilder, Variable) -> Void) -> [GeneratorStub] { + return [ + GeneratorStub( + "DisposableObjectLiteralBeginGenerator", + inContext: .single(contextRequirement), + provides: [.objectLiteral] + ) { b in + // Ensure we have the desired symbol below. + b.createSymbolProperty(symbolProperty) + b.emit(BeginObjectLiteral()) + }, + GeneratorStub( + "DisposableObjectLiteralComputedMethodBeginGenerator", + inContext: .single(.objectLiteral), + provides: [.javascript, .subroutine, .method] + ) { b in + // It should be safe to assume that we find at least the + // desired symbol we created above. + let symbol = b.randomVariable(forUseAs: .jsSymbol) + let parameters = b.randomParameters() + b.setParameterTypesForNextSubroutine(parameters.parameterTypes) + b.emit( + BeginObjectLiteralComputedMethod( + parameters: parameters.parameters), + withInputs: [symbol]) + }, + GeneratorStub( + "DisposableObjectLiteralComputedMethodEndGenerator", + inContext: .single([.javascript, .subroutine, .method]), + provides: [.objectLiteral] + ) { b in + b.maybeReturnRandomJsVariable(0.9) + b.emit(EndObjectLiteralComputedMethod()) + }, + GeneratorStub( + "DisposableObjectLiteralEndGenerator", + inContext: .single(.objectLiteral) + ) { b in + let disposableVariable = b.emit(EndObjectLiteral()).output + genDisposableVariable(b, disposableVariable) + }, + ] +} + // // Code generators. // @@ -423,34 +471,20 @@ public let CodeGenerators: [CodeGenerator] = [ ]), CodeGenerator( - "DisposableVariableGenerator", inContext: .single(.subroutine), inputs: .one - ) { b, val in - assert(b.context.contains(.subroutine)) - let dispose = b.createSymbolProperty("dispose") - let disposableVariable = b.buildObjectLiteral { obj in - obj.addProperty("value", as: val) - obj.addComputedMethod(dispose, with: .parameters(n: 0)) { args in - b.maybeReturnRandomJsVariable(0.9) - } - } - b.loadDisposableVariable(disposableVariable) - }, + "DisposableVariableGenerator", + disposableVariableGeneratorStubs( + inContext: .subroutine, + withSymbol: "dispose") { b, variable in + b.loadDisposableVariable(variable) + }), CodeGenerator( - "AsyncDisposableVariableGenerator", inContext: .single(.asyncFunction), - inputs: .one - ) { b, val in - assert(b.context.contains(.asyncFunction)) - let asyncDispose = b.createSymbolProperty("asyncDispose") - let asyncDisposableVariable = b.buildObjectLiteral { obj in - obj.addProperty("value", as: val) - obj.addComputedMethod(asyncDispose, with: .parameters(n: 0)) { - args in - b.maybeReturnRandomJsVariable(0.9) - } - } - b.loadAsyncDisposableVariable(asyncDisposableVariable) - }, + "AsyncDisposableVariableGenerator", + disposableVariableGeneratorStubs( + inContext: .asyncFunction, + withSymbol: "asyncDispose") { b, variable in + b.loadAsyncDisposableVariable(variable) + }), CodeGenerator( "ObjectLiteralGenerator", From 6395ef6c0ded9921b8190aee6a7783d158f91b4c Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Tue, 21 Oct 2025 09:13:26 +0200 Subject: [PATCH 16/61] [clean-up] Remove redundant context assertions This removes some redundant assertions that are already checked in the same way by the `inContext` requirements of the respective code generators. Bug: 446632644 Change-Id: I50b9432d15d8554040d0598893b3fb35ae264fba Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8686138 Commit-Queue: Michael Achenbach Reviewed-by: Matthias Liedtke --- Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 120 ------------------ 1 file changed, 120 deletions(-) diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index b62621d5e..0f09e0037 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -446,7 +446,6 @@ public let CodeGenerators: [CodeGenerator] = [ }, CodeGenerator("ArgumentsAccessGenerator", inContext: .single(.subroutine)) { b in - assert(b.context.contains(.subroutine)) b.loadArguments() }, @@ -503,9 +502,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ObjectLiteralPropertyGenerator", inContext: .single(.objectLiteral)) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) // Try to find a property that hasn't already been added to this literal. var propertyName: String @@ -526,10 +522,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ObjectLiteralElementGenerator", inContext: .single(.objectLiteral), inputs: .one ) { b, value in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Select an element that hasn't already been added to this literal. var index = b.randomIndex() while b.currentObjectLiteral.elements.contains(index) { @@ -544,10 +536,6 @@ public let CodeGenerators: [CodeGenerator] = [ "ObjectLiteralComputedPropertyGenerator", inContext: .single(.objectLiteral), inputs: .one ) { b, value in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a computed property that hasn't already been added to this literal. var propertyName: Variable var attempts = 0 @@ -568,18 +556,11 @@ public let CodeGenerators: [CodeGenerator] = [ "ObjectLiteralCopyPropertiesGenerator", inContext: .single(.objectLiteral), inputs: .preferred(.object()) ) { b, object in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) b.currentObjectLiteral.copyProperties(from: object) }, CodeGenerator("ObjectLiteralPrototypeGenerator", inContext: .single(.objectLiteral)) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // There should only be one __proto__ field in an object literal. guard !b.currentObjectLiteral.hasPrototype else { return } @@ -594,10 +575,6 @@ public let CodeGenerators: [CodeGenerator] = [ "ObjectLiteralMethodBeginGenerator", inContext: .single(.objectLiteral), provides: [.javascript, .subroutine, .method] ) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this literal. var methodName: String var attempts = 0 @@ -632,10 +609,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.objectLiteral), provides: [.javascript, .subroutine, .method] ) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a computed method name that hasn't already been added to this literal. var methodName: Variable var attempts = 0 @@ -675,10 +648,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.objectLiteral), provides: [.javascript, .subroutine, .method] ) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a getter has not yet been installed. var propertyName: String var attempts = 0 @@ -715,10 +684,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.objectLiteral), provides: [.javascript, .subroutine, .method] ) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a setter has not yet been installed. var propertyName: String var attempts = 0 @@ -752,9 +717,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) guard !b.currentClassDefinition.hasConstructor else { // There must only be one constructor @@ -799,10 +761,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassInstancePropertyGenerator", inContext: .single(.classDefinition)) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added to this literal. var propertyName: String var attempts = 0 @@ -819,10 +777,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassInstanceElementGenerator", inContext: .single(.classDefinition)) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Select an element that hasn't already been added to this literal. var index = b.randomIndex() while b.currentClassDefinition.instanceElements.contains(index) { @@ -837,10 +791,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ClassInstanceComputedPropertyGenerator", inContext: .single(.classDefinition) ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a computed property that hasn't already been added to this literal. var propertyName: Variable var attempts = 0 @@ -864,10 +814,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this class. var methodName: String var attempts = 0 @@ -906,10 +852,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this class. var methodName = b.randomJsVariable() var attempts = 0 @@ -944,10 +886,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a getter has not yet been installed. var propertyName: String var attempts = 0 @@ -982,10 +920,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a setter has not yet been installed. var propertyName: String var attempts = 0 @@ -1015,10 +949,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassStaticPropertyGenerator", inContext: .single(.classDefinition)) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added to this literal. var propertyName: String var attempts = 0 @@ -1038,10 +968,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassStaticElementGenerator", inContext: .single(.classDefinition)) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Select an element that hasn't already been added to this literal. var index = b.randomIndex() while b.currentClassDefinition.staticElements.contains(index) { @@ -1056,10 +982,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ClassStaticComputedPropertyGenerator", inContext: .single(.classDefinition) ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a computed property that hasn't already been added to this literal. var propertyName: Variable var attempts = 0 @@ -1086,10 +1008,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - b.emit(BeginClassStaticInitializer()) }, GeneratorStub( @@ -1108,10 +1026,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .method, .subroutine, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this class. var methodName: String var attempts = 0 @@ -1152,10 +1066,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this class. var methodName = b.randomJsVariable() var attempts = 0 @@ -1190,10 +1100,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a getter has not yet been installed. var propertyName: String var attempts = 0 @@ -1229,10 +1135,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a setter has not yet been installed. var propertyName: String var attempts = 0 @@ -1262,10 +1164,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ClassPrivateInstancePropertyGenerator", inContext: .single(.classDefinition) ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a private field that hasn't already been added to this literal. var propertyName: String var attempts = 0 @@ -1288,10 +1186,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a private field that hasn't already been added to this class. var methodName: String var attempts = 0 @@ -1323,10 +1217,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ClassPrivateStaticPropertyGenerator", inContext: .single(.classDefinition) ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a private field that hasn't already been added to this literal. var propertyName: String var attempts = 0 @@ -1349,10 +1239,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a private field that hasn't already been added to this class. var methodName: String var attempts = 0 @@ -2038,7 +1924,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "SubroutineReturnGenerator", inContext: .single(.subroutine), inputs: .one ) { b, val in - assert(b.context.contains(.subroutine)) if probability(0.9) { b.doReturn(val) } else { @@ -2048,7 +1933,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("YieldGenerator", inContext: .single(.generatorFunction), inputs: .one) { b, val in - assert(b.context.contains(.generatorFunction)) if probability(0.9) { b.yield(val) } else { @@ -2060,13 +1944,11 @@ public let CodeGenerators: [CodeGenerator] = [ "YieldEachGenerator", inContext: .single(.generatorFunction), inputs: .required(.iterable) ) { b, val in - assert(b.context.contains(.generatorFunction)) b.yieldEach(val) }, CodeGenerator("AwaitGenerator", inContext: .single(.asyncFunction), inputs: .one) { b, val in - assert(b.context.contains(.asyncFunction)) b.await(val) }, @@ -2603,7 +2485,6 @@ public let CodeGenerators: [CodeGenerator] = [ }, CodeGenerator("ContinueGenerator", inContext: .single(.loop)) { b in - assert(b.context.contains(.loop)) b.loopContinue() }, @@ -3130,7 +3011,6 @@ public let CodeGenerators: [CodeGenerator] = [ }, CodeGenerator("LoadNewTargetGenerator", inContext: .single(.subroutine)) { b in - assert(b.context.contains(.subroutine)) b.loadNewTarget() }, From c2f3b9c724a9de36a612c8d61d316f1b2da8a27f Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Tue, 21 Oct 2025 12:55:54 +0200 Subject: [PATCH 17/61] [owners] Increase list of owners [Insert Spider-Man quote here] Change-Id: I64ea011d92b5bc535a4c19c8326782ad1512708b Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8690557 Commit-Queue: Michael Achenbach Reviewed-by: Michael Achenbach --- OWNERS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OWNERS b/OWNERS index de83baf0b..f5ef171a5 100644 --- a/OWNERS +++ b/OWNERS @@ -1,5 +1,9 @@ cffsmith@google.com +machenbach@google.com +mdanylo@google.com mliedtke@google.com +pawkra@google.com saelo@google.com +tacet@google.com per-file WHITESPACE=* From b5a499f22a5925e27327d1a562ba7bfa71639358 Mon Sep 17 00:00:00 2001 From: Omer Katz Date: Tue, 21 Oct 2025 13:05:37 +0200 Subject: [PATCH 18/61] [v8] Add scavenger chaos mode to Fuzzilli Bug: 450045070 Change-Id: I6bf07aa3b854e703b0b199939e8e9018a1ef00a7 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8690756 Reviewed-by: Matthias Liedtke Commit-Queue: Omer Katz --- Sources/FuzzilliCli/Profiles/V8Profile.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 6971747f5..114e1f749 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -127,6 +127,12 @@ let v8Profile = Profile( args.append("--handle-weak-ref-weakly-in-minor-gc") } + if probability(0.1) { + args.append("--scavenger-chaos-mode") + let threshold = Int.random(in: 0...100) + args.append("--scavenger-chaos-mode-threshold=\(threshold)") + } + if probability(0.1) { let stackSize = Int.random(in: 54...863) args.append("--stack-size=\(stackSize)") From 8726ea406dd2762c287d4f61afc2adcbc74bec80 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Tue, 21 Oct 2025 11:35:11 +0200 Subject: [PATCH 19/61] [github] Use pre-installed swift version The marketplace GitHub action for checking out a specific swift version causes all kinds of issues. While installing swift manually is possible, it's extra work. As the default GitHub ubuntu container ships with swift 6.2 pre-installed, switch to just using that version. Note: The MacOS instance uses 6.1.2 which is also new enough for our purposes. This allows us to reland commit 80ad045556fdd065752cd1f1733b0c627b7f6b4b. Fixed: 448848874 Change-Id: I28fa83b07c3f49dcdd6ef45dbac838d7ebeb885e Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8687278 Reviewed-by: Michael Achenbach Commit-Queue: Michael Achenbach Auto-Submit: Matthias Liedtke --- .github/workflows/swift.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 302f577f4..19f5536db 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -26,9 +26,6 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 25-nightly - - uses: swift-actions/setup-swift@v2 - with: - swift-version: "6.0.3" - name: Swift Version run: swift --version - uses: actions/checkout@v2 From c1a33c1a3ef3e8b83b45b173acc2733e23bd24bb Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Tue, 21 Oct 2025 11:52:03 +0200 Subject: [PATCH 20/61] Reland "Simplify constrained string generation in code generators" This is a reland of commit 80ad045556fdd065752cd1f1733b0c627b7f6b4b CQ and GitHub actions now use newer versions that shouldn't crash any more when compiling this for release builds. Original change's description: > Simplify constrained string generation in code generators > > Change-Id: I0ed4abed4a3ef0c7e150971ec58f0aae7e5b0982 > Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8591236 > Auto-Submit: Matthias Liedtke > Reviewed-by: Carl Smith > Commit-Queue: Matthias Liedtke Change-Id: I98d5ee50de6057e239d1fae2b0ce4a3dfb1af1bd Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8687236 Reviewed-by: Carl Smith Commit-Queue: Matthias Liedtke --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 30 +++ Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 238 +++--------------- 2 files changed, 70 insertions(+), 198 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index ba6eb2ef4..fd8955a0d 100644 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -483,6 +483,36 @@ public class ProgramBuilder { return probability(0.5) ? randomBuiltinMethodName() : randomCustomMethodName() } + private static func generateConstrained( + _ generator: () -> T, + notIn: any Collection, + fallback: () -> T) -> T { + var result: T + var attempts = 0 + repeat { + if attempts >= 10 { + return fallback() + } + result = generator() + attempts += 1 + } while notIn.contains(result) + return result + } + + // Generate a string not already contained in `notIn` using the provided `generator`. If it fails + // repeatedly, return a random string instead. + public func generateString(_ generator: () -> String, notIn: any Collection) -> String { + Self.generateConstrained(generator, notIn: notIn, + fallback: {String.random(ofLength: Int.random(in: 1...5))}) + } + + // Find a random variable to use as a string that isn't contained in `notIn`. If it fails + // repeatedly, create a random string literal instead. + public func findOrGenerateStringLikeVariable(notIn: any Collection) -> Variable { + return Self.generateConstrained(randomJsVariable, notIn: notIn, + fallback: {loadString(String.random(ofLength: Int.random(in: 1...5)))}) + } + // Settings and constants controlling the behavior of randomParameters() below. // This determines how many variables of a given type need to be visible before // that type is considered a candidate for a parameter type. For example, if this diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index 0f09e0037..95476d460 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -504,17 +504,8 @@ public let CodeGenerators: [CodeGenerator] = [ b in // Try to find a property that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random(ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentObjectLiteral.properties.contains(propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentObjectLiteral.properties) b.currentObjectLiteral.addProperty( propertyName, as: b.randomJsVariable()) }, @@ -548,7 +539,6 @@ public let CodeGenerators: [CodeGenerator] = [ propertyName = b.randomJsVariable() attempts += 1 } while b.currentObjectLiteral.computedProperties.contains(propertyName) - b.currentObjectLiteral.addComputedProperty(propertyName, as: value) }, @@ -576,17 +566,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a method that hasn't already been added to this literal. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentObjectLiteral.methods.contains(methodName) + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentObjectLiteral.methods) let randomParameters = b.randomParameters() b.setParameterTypesForNextSubroutine( @@ -610,15 +591,16 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a computed method name that hasn't already been added to this literal. + var methodName: Variable var attempts = 0 repeat { + methodName = b.randomJsVariable() if attempts >= 10 { - methodName = b.loadString( - String.random(ofLength: Int.random(in: 1...5))) + // This might lead to having two computed methods with the same name (so one + // will overwrite the other). break } - methodName = b.randomJsVariable() attempts += 1 } while b.currentObjectLiteral.computedMethods.contains( methodName) @@ -649,20 +631,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - // We should not fail here but also don't produce a syntax error. - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentObjectLiteral.properties.contains(propertyName) - || b.currentObjectLiteral.getters.contains(propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentObjectLiteral.properties + b.currentObjectLiteral.getters) b.emit(BeginObjectLiteralGetter(propertyName: propertyName)) }, @@ -685,20 +655,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - // We should not fail here but also don't produce a syntax error. - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentObjectLiteral.properties.contains(propertyName) - || b.currentObjectLiteral.setters.contains(propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentObjectLiteral.properties + b.currentObjectLiteral.setters) b.emit(BeginObjectLiteralSetter(propertyName: propertyName)) }, GeneratorStub( @@ -762,14 +720,8 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassInstancePropertyGenerator", inContext: .single(.classDefinition)) { b in // Try to find a property that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - guard attempts < 10 else { return } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.instanceProperties.contains( - propertyName) + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.instanceProperties) var value: Variable? = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addInstanceProperty(propertyName, value: value) @@ -815,18 +767,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a method that hasn't already been added to this class. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentClassDefinition.instanceMethods.contains( - methodName) + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentClassDefinition.instanceMethods) let parameters = b.randomParameters() b.setParameterTypesForNextSubroutine(parameters.parameterTypes) @@ -887,21 +829,9 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.instanceProperties.contains( - propertyName) - || b.currentClassDefinition.instanceGetters.contains( - propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.instanceProperties + + b.currentClassDefinition.instanceGetters) b.emit(BeginClassInstanceGetter(propertyName: propertyName)) }, GeneratorStub( @@ -921,21 +851,9 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.instanceProperties.contains( - propertyName) - || b.currentClassDefinition.instanceSetters.contains( - propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.instanceProperties + + b.currentClassDefinition.instanceSetters) b.emit(BeginClassInstanceSetter(propertyName: propertyName)) }, GeneratorStub( @@ -950,17 +868,8 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassStaticPropertyGenerator", inContext: .single(.classDefinition)) { b in // Try to find a property that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.staticProperties.contains(propertyName) + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.staticProperties) var value: Variable? = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addStaticProperty(propertyName, value: value) @@ -1027,19 +936,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .method, .subroutine, .classMethod] ) { b in // Try to find a method that hasn't already been added to this class. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentClassDefinition.staticMethods.contains( - methodName) - + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentClassDefinition.staticMethods) let parameters = b.randomParameters() b.setParameterTypesForNextSubroutine(parameters.parameterTypes) @@ -1101,21 +999,9 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.staticProperties.contains( - propertyName) - || b.currentClassDefinition.staticGetters.contains( - propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.staticProperties + + b.currentClassDefinition.staticGetters) b.emit(BeginClassStaticGetter(propertyName: propertyName)) }, GeneratorStub( @@ -1136,22 +1022,10 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random(ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.staticProperties.contains( - propertyName) - || b.currentClassDefinition.staticSetters.contains( - propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.staticProperties + + b.currentClassDefinition.staticSetters) b.emit(BeginClassStaticSetter(propertyName: propertyName)) - }, GeneratorStub( "ClassStaticSetterEndGenerator", @@ -1165,13 +1039,8 @@ public let CodeGenerators: [CodeGenerator] = [ "ClassPrivateInstancePropertyGenerator", inContext: .single(.classDefinition) ) { b in // Try to find a private field that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - guard attempts < 10 else { return } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.privateFields.contains(propertyName) + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.privateFields) var value = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addPrivateInstanceProperty( @@ -1187,18 +1056,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a private field that hasn't already been added to this class. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random(ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentClassDefinition.privateFields.contains( - methodName) - + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentClassDefinition.privateFields) let parameters = b.randomParameters() b.emit( BeginClassPrivateInstanceMethod( @@ -1218,14 +1077,8 @@ public let CodeGenerators: [CodeGenerator] = [ "ClassPrivateStaticPropertyGenerator", inContext: .single(.classDefinition) ) { b in // Try to find a private field that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - guard attempts < 10 else { return } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.privateFields.contains(propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.privateFields) var value = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addPrivateStaticProperty( propertyName, value: value) @@ -1240,19 +1093,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a private field that hasn't already been added to this class. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentClassDefinition.privateFields.contains( - methodName) - + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentClassDefinition.privateFields) let parameters = b.randomParameters() b.emit( BeginClassPrivateStaticMethod( From b1881f2a02478758985d639e2a388c4262710605 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Wed, 22 Oct 2025 00:14:58 -0700 Subject: [PATCH 21/61] Revert "Reland "Simplify constrained string generation in code generators"" This reverts commit c1a33c1a3ef3e8b83b45b173acc2733e23bd24bb. Reason for revert: https://crbug.com/454201777 Original change's description: > Reland "Simplify constrained string generation in code generators" > > This is a reland of commit 80ad045556fdd065752cd1f1733b0c627b7f6b4b > CQ and GitHub actions now use newer versions that shouldn't crash > any more when compiling this for release builds. > > Original change's description: > > Simplify constrained string generation in code generators > > > > Change-Id: I0ed4abed4a3ef0c7e150971ec58f0aae7e5b0982 > > Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8591236 > > Auto-Submit: Matthias Liedtke > > Reviewed-by: Carl Smith > > Commit-Queue: Matthias Liedtke > > Change-Id: I98d5ee50de6057e239d1fae2b0ce4a3dfb1af1bd > Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8687236 > Reviewed-by: Carl Smith > Commit-Queue: Matthias Liedtke Bug: 454201777 No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: I9f3fc81d632842c357b999a6b7c93602660a3f25 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8693758 Bot-Commit: Rubber Stamper Commit-Queue: Michael Achenbach --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 30 --- Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 238 +++++++++++++++--- 2 files changed, 198 insertions(+), 70 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index fd8955a0d..ba6eb2ef4 100644 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -483,36 +483,6 @@ public class ProgramBuilder { return probability(0.5) ? randomBuiltinMethodName() : randomCustomMethodName() } - private static func generateConstrained( - _ generator: () -> T, - notIn: any Collection, - fallback: () -> T) -> T { - var result: T - var attempts = 0 - repeat { - if attempts >= 10 { - return fallback() - } - result = generator() - attempts += 1 - } while notIn.contains(result) - return result - } - - // Generate a string not already contained in `notIn` using the provided `generator`. If it fails - // repeatedly, return a random string instead. - public func generateString(_ generator: () -> String, notIn: any Collection) -> String { - Self.generateConstrained(generator, notIn: notIn, - fallback: {String.random(ofLength: Int.random(in: 1...5))}) - } - - // Find a random variable to use as a string that isn't contained in `notIn`. If it fails - // repeatedly, create a random string literal instead. - public func findOrGenerateStringLikeVariable(notIn: any Collection) -> Variable { - return Self.generateConstrained(randomJsVariable, notIn: notIn, - fallback: {loadString(String.random(ofLength: Int.random(in: 1...5)))}) - } - // Settings and constants controlling the behavior of randomParameters() below. // This determines how many variables of a given type need to be visible before // that type is considered a candidate for a parameter type. For example, if this diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index 95476d460..0f09e0037 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -504,8 +504,17 @@ public let CodeGenerators: [CodeGenerator] = [ b in // Try to find a property that hasn't already been added to this literal. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentObjectLiteral.properties) + var propertyName: String + var attempts = 0 + repeat { + if attempts >= 10 { + propertyName = String.random(ofLength: Int.random(in: 1...5)) + break + } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentObjectLiteral.properties.contains(propertyName) + b.currentObjectLiteral.addProperty( propertyName, as: b.randomJsVariable()) }, @@ -539,6 +548,7 @@ public let CodeGenerators: [CodeGenerator] = [ propertyName = b.randomJsVariable() attempts += 1 } while b.currentObjectLiteral.computedProperties.contains(propertyName) + b.currentObjectLiteral.addComputedProperty(propertyName, as: value) }, @@ -566,8 +576,17 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a method that hasn't already been added to this literal. - let methodName = b.generateString(b.randomCustomMethodName, - notIn: b.currentObjectLiteral.methods) + var methodName: String + var attempts = 0 + repeat { + if attempts >= 10 { + methodName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + methodName = b.randomCustomMethodName() + attempts += 1 + } while b.currentObjectLiteral.methods.contains(methodName) let randomParameters = b.randomParameters() b.setParameterTypesForNextSubroutine( @@ -591,16 +610,15 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a computed method name that hasn't already been added to this literal. - var methodName: Variable var attempts = 0 repeat { - methodName = b.randomJsVariable() if attempts >= 10 { - // This might lead to having two computed methods with the same name (so one - // will overwrite the other). + methodName = b.loadString( + String.random(ofLength: Int.random(in: 1...5))) break } + methodName = b.randomJsVariable() attempts += 1 } while b.currentObjectLiteral.computedMethods.contains( methodName) @@ -631,8 +649,20 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentObjectLiteral.properties + b.currentObjectLiteral.getters) + var propertyName: String + var attempts = 0 + repeat { + if attempts >= 10 { + // We should not fail here but also don't produce a syntax error. + propertyName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentObjectLiteral.properties.contains(propertyName) + || b.currentObjectLiteral.getters.contains(propertyName) + b.emit(BeginObjectLiteralGetter(propertyName: propertyName)) }, @@ -655,8 +685,20 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentObjectLiteral.properties + b.currentObjectLiteral.setters) + var propertyName: String + var attempts = 0 + repeat { + if attempts >= 10 { + // We should not fail here but also don't produce a syntax error. + propertyName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentObjectLiteral.properties.contains(propertyName) + || b.currentObjectLiteral.setters.contains(propertyName) + b.emit(BeginObjectLiteralSetter(propertyName: propertyName)) }, GeneratorStub( @@ -720,8 +762,14 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassInstancePropertyGenerator", inContext: .single(.classDefinition)) { b in // Try to find a property that hasn't already been added to this literal. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentClassDefinition.instanceProperties) + var propertyName: String + var attempts = 0 + repeat { + guard attempts < 10 else { return } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentClassDefinition.instanceProperties.contains( + propertyName) var value: Variable? = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addInstanceProperty(propertyName, value: value) @@ -767,8 +815,18 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a method that hasn't already been added to this class. - let methodName = b.generateString(b.randomCustomMethodName, - notIn: b.currentClassDefinition.instanceMethods) + var methodName: String + var attempts = 0 + repeat { + if attempts >= 10 { + methodName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + methodName = b.randomCustomMethodName() + attempts += 1 + } while b.currentClassDefinition.instanceMethods.contains( + methodName) let parameters = b.randomParameters() b.setParameterTypesForNextSubroutine(parameters.parameterTypes) @@ -829,9 +887,21 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentClassDefinition.instanceProperties - + b.currentClassDefinition.instanceGetters) + var propertyName: String + var attempts = 0 + repeat { + if attempts >= 10 { + propertyName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentClassDefinition.instanceProperties.contains( + propertyName) + || b.currentClassDefinition.instanceGetters.contains( + propertyName) + b.emit(BeginClassInstanceGetter(propertyName: propertyName)) }, GeneratorStub( @@ -851,9 +921,21 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentClassDefinition.instanceProperties - + b.currentClassDefinition.instanceSetters) + var propertyName: String + var attempts = 0 + repeat { + if attempts >= 10 { + propertyName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentClassDefinition.instanceProperties.contains( + propertyName) + || b.currentClassDefinition.instanceSetters.contains( + propertyName) + b.emit(BeginClassInstanceSetter(propertyName: propertyName)) }, GeneratorStub( @@ -868,8 +950,17 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassStaticPropertyGenerator", inContext: .single(.classDefinition)) { b in // Try to find a property that hasn't already been added to this literal. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentClassDefinition.staticProperties) + var propertyName: String + var attempts = 0 + repeat { + if attempts >= 10 { + propertyName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentClassDefinition.staticProperties.contains(propertyName) var value: Variable? = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addStaticProperty(propertyName, value: value) @@ -936,8 +1027,19 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .method, .subroutine, .classMethod] ) { b in // Try to find a method that hasn't already been added to this class. - let methodName = b.generateString(b.randomCustomMethodName, - notIn: b.currentClassDefinition.staticMethods) + var methodName: String + var attempts = 0 + repeat { + if attempts >= 10 { + methodName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + methodName = b.randomCustomMethodName() + attempts += 1 + } while b.currentClassDefinition.staticMethods.contains( + methodName) + let parameters = b.randomParameters() b.setParameterTypesForNextSubroutine(parameters.parameterTypes) @@ -999,9 +1101,21 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentClassDefinition.staticProperties - + b.currentClassDefinition.staticGetters) + var propertyName: String + var attempts = 0 + repeat { + if attempts >= 10 { + propertyName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentClassDefinition.staticProperties.contains( + propertyName) + || b.currentClassDefinition.staticGetters.contains( + propertyName) + b.emit(BeginClassStaticGetter(propertyName: propertyName)) }, GeneratorStub( @@ -1022,10 +1136,22 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentClassDefinition.staticProperties - + b.currentClassDefinition.staticSetters) + var propertyName: String + var attempts = 0 + repeat { + if attempts >= 10 { + propertyName = String.random(ofLength: Int.random(in: 1...5)) + break + } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentClassDefinition.staticProperties.contains( + propertyName) + || b.currentClassDefinition.staticSetters.contains( + propertyName) + b.emit(BeginClassStaticSetter(propertyName: propertyName)) + }, GeneratorStub( "ClassStaticSetterEndGenerator", @@ -1039,8 +1165,13 @@ public let CodeGenerators: [CodeGenerator] = [ "ClassPrivateInstancePropertyGenerator", inContext: .single(.classDefinition) ) { b in // Try to find a private field that hasn't already been added to this literal. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentClassDefinition.privateFields) + var propertyName: String + var attempts = 0 + repeat { + guard attempts < 10 else { return } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentClassDefinition.privateFields.contains(propertyName) var value = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addPrivateInstanceProperty( @@ -1056,8 +1187,18 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a private field that hasn't already been added to this class. - let methodName = b.generateString(b.randomCustomMethodName, - notIn: b.currentClassDefinition.privateFields) + var methodName: String + var attempts = 0 + repeat { + if attempts >= 10 { + methodName = String.random(ofLength: Int.random(in: 1...5)) + break + } + methodName = b.randomCustomMethodName() + attempts += 1 + } while b.currentClassDefinition.privateFields.contains( + methodName) + let parameters = b.randomParameters() b.emit( BeginClassPrivateInstanceMethod( @@ -1077,8 +1218,14 @@ public let CodeGenerators: [CodeGenerator] = [ "ClassPrivateStaticPropertyGenerator", inContext: .single(.classDefinition) ) { b in // Try to find a private field that hasn't already been added to this literal. - let propertyName = b.generateString(b.randomCustomPropertyName, - notIn: b.currentClassDefinition.privateFields) + var propertyName: String + var attempts = 0 + repeat { + guard attempts < 10 else { return } + propertyName = b.randomCustomPropertyName() + attempts += 1 + } while b.currentClassDefinition.privateFields.contains(propertyName) + var value = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addPrivateStaticProperty( propertyName, value: value) @@ -1093,8 +1240,19 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a private field that hasn't already been added to this class. - let methodName = b.generateString(b.randomCustomMethodName, - notIn: b.currentClassDefinition.privateFields) + var methodName: String + var attempts = 0 + repeat { + if attempts >= 10 { + methodName = String.random( + ofLength: Int.random(in: 1...5)) + break + } + methodName = b.randomCustomMethodName() + attempts += 1 + } while b.currentClassDefinition.privateFields.contains( + methodName) + let parameters = b.randomParameters() b.emit( BeginClassPrivateStaticMethod( From 72eaa81577065acaed65227880ebcb16a686099f Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Tue, 21 Oct 2025 11:52:03 +0200 Subject: [PATCH 22/61] Reland "Reland "Simplify constrained string generation in code generators"" This is a reland of commit c1a33c1a3ef3e8b83b45b173acc2733e23bd24bb No changes. Original change's description: > Reland "Simplify constrained string generation in code generators" > > This is a reland of commit 80ad045556fdd065752cd1f1733b0c627b7f6b4b > CQ and GitHub actions now use newer versions that shouldn't crash > any more when compiling this for release builds. > > Original change's description: > > Simplify constrained string generation in code generators > > > > Change-Id: I0ed4abed4a3ef0c7e150971ec58f0aae7e5b0982 > > Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8591236 > > Auto-Submit: Matthias Liedtke > > Reviewed-by: Carl Smith > > Commit-Queue: Matthias Liedtke > > Change-Id: I98d5ee50de6057e239d1fae2b0ce4a3dfb1af1bd > Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8687236 > Reviewed-by: Carl Smith > Commit-Queue: Matthias Liedtke Change-Id: I42839ff3fdf773a99dbd6a8d0f8136c38ab7dda5 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8695016 Auto-Submit: Matthias Liedtke Reviewed-by: Michael Achenbach Commit-Queue: Michael Achenbach --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 30 +++ Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 238 +++--------------- 2 files changed, 70 insertions(+), 198 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index ba6eb2ef4..fd8955a0d 100644 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -483,6 +483,36 @@ public class ProgramBuilder { return probability(0.5) ? randomBuiltinMethodName() : randomCustomMethodName() } + private static func generateConstrained( + _ generator: () -> T, + notIn: any Collection, + fallback: () -> T) -> T { + var result: T + var attempts = 0 + repeat { + if attempts >= 10 { + return fallback() + } + result = generator() + attempts += 1 + } while notIn.contains(result) + return result + } + + // Generate a string not already contained in `notIn` using the provided `generator`. If it fails + // repeatedly, return a random string instead. + public func generateString(_ generator: () -> String, notIn: any Collection) -> String { + Self.generateConstrained(generator, notIn: notIn, + fallback: {String.random(ofLength: Int.random(in: 1...5))}) + } + + // Find a random variable to use as a string that isn't contained in `notIn`. If it fails + // repeatedly, create a random string literal instead. + public func findOrGenerateStringLikeVariable(notIn: any Collection) -> Variable { + return Self.generateConstrained(randomJsVariable, notIn: notIn, + fallback: {loadString(String.random(ofLength: Int.random(in: 1...5)))}) + } + // Settings and constants controlling the behavior of randomParameters() below. // This determines how many variables of a given type need to be visible before // that type is considered a candidate for a parameter type. For example, if this diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index 0f09e0037..95476d460 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -504,17 +504,8 @@ public let CodeGenerators: [CodeGenerator] = [ b in // Try to find a property that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random(ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentObjectLiteral.properties.contains(propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentObjectLiteral.properties) b.currentObjectLiteral.addProperty( propertyName, as: b.randomJsVariable()) }, @@ -548,7 +539,6 @@ public let CodeGenerators: [CodeGenerator] = [ propertyName = b.randomJsVariable() attempts += 1 } while b.currentObjectLiteral.computedProperties.contains(propertyName) - b.currentObjectLiteral.addComputedProperty(propertyName, as: value) }, @@ -576,17 +566,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a method that hasn't already been added to this literal. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentObjectLiteral.methods.contains(methodName) + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentObjectLiteral.methods) let randomParameters = b.randomParameters() b.setParameterTypesForNextSubroutine( @@ -610,15 +591,16 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a computed method name that hasn't already been added to this literal. + var methodName: Variable var attempts = 0 repeat { + methodName = b.randomJsVariable() if attempts >= 10 { - methodName = b.loadString( - String.random(ofLength: Int.random(in: 1...5))) + // This might lead to having two computed methods with the same name (so one + // will overwrite the other). break } - methodName = b.randomJsVariable() attempts += 1 } while b.currentObjectLiteral.computedMethods.contains( methodName) @@ -649,20 +631,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - // We should not fail here but also don't produce a syntax error. - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentObjectLiteral.properties.contains(propertyName) - || b.currentObjectLiteral.getters.contains(propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentObjectLiteral.properties + b.currentObjectLiteral.getters) b.emit(BeginObjectLiteralGetter(propertyName: propertyName)) }, @@ -685,20 +655,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - // We should not fail here but also don't produce a syntax error. - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentObjectLiteral.properties.contains(propertyName) - || b.currentObjectLiteral.setters.contains(propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentObjectLiteral.properties + b.currentObjectLiteral.setters) b.emit(BeginObjectLiteralSetter(propertyName: propertyName)) }, GeneratorStub( @@ -762,14 +720,8 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassInstancePropertyGenerator", inContext: .single(.classDefinition)) { b in // Try to find a property that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - guard attempts < 10 else { return } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.instanceProperties.contains( - propertyName) + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.instanceProperties) var value: Variable? = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addInstanceProperty(propertyName, value: value) @@ -815,18 +767,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a method that hasn't already been added to this class. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentClassDefinition.instanceMethods.contains( - methodName) + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentClassDefinition.instanceMethods) let parameters = b.randomParameters() b.setParameterTypesForNextSubroutine(parameters.parameterTypes) @@ -887,21 +829,9 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.instanceProperties.contains( - propertyName) - || b.currentClassDefinition.instanceGetters.contains( - propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.instanceProperties + + b.currentClassDefinition.instanceGetters) b.emit(BeginClassInstanceGetter(propertyName: propertyName)) }, GeneratorStub( @@ -921,21 +851,9 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.instanceProperties.contains( - propertyName) - || b.currentClassDefinition.instanceSetters.contains( - propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.instanceProperties + + b.currentClassDefinition.instanceSetters) b.emit(BeginClassInstanceSetter(propertyName: propertyName)) }, GeneratorStub( @@ -950,17 +868,8 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassStaticPropertyGenerator", inContext: .single(.classDefinition)) { b in // Try to find a property that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.staticProperties.contains(propertyName) + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.staticProperties) var value: Variable? = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addStaticProperty(propertyName, value: value) @@ -1027,19 +936,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .method, .subroutine, .classMethod] ) { b in // Try to find a method that hasn't already been added to this class. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentClassDefinition.staticMethods.contains( - methodName) - + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentClassDefinition.staticMethods) let parameters = b.randomParameters() b.setParameterTypesForNextSubroutine(parameters.parameterTypes) @@ -1101,21 +999,9 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a getter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.staticProperties.contains( - propertyName) - || b.currentClassDefinition.staticGetters.contains( - propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.staticProperties + + b.currentClassDefinition.staticGetters) b.emit(BeginClassStaticGetter(propertyName: propertyName)) }, GeneratorStub( @@ -1136,22 +1022,10 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a property that hasn't already been added and for which a setter has not yet been installed. - var propertyName: String - var attempts = 0 - repeat { - if attempts >= 10 { - propertyName = String.random(ofLength: Int.random(in: 1...5)) - break - } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.staticProperties.contains( - propertyName) - || b.currentClassDefinition.staticSetters.contains( - propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.staticProperties + + b.currentClassDefinition.staticSetters) b.emit(BeginClassStaticSetter(propertyName: propertyName)) - }, GeneratorStub( "ClassStaticSetterEndGenerator", @@ -1165,13 +1039,8 @@ public let CodeGenerators: [CodeGenerator] = [ "ClassPrivateInstancePropertyGenerator", inContext: .single(.classDefinition) ) { b in // Try to find a private field that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - guard attempts < 10 else { return } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.privateFields.contains(propertyName) + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.privateFields) var value = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addPrivateInstanceProperty( @@ -1187,18 +1056,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a private field that hasn't already been added to this class. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random(ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentClassDefinition.privateFields.contains( - methodName) - + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentClassDefinition.privateFields) let parameters = b.randomParameters() b.emit( BeginClassPrivateInstanceMethod( @@ -1218,14 +1077,8 @@ public let CodeGenerators: [CodeGenerator] = [ "ClassPrivateStaticPropertyGenerator", inContext: .single(.classDefinition) ) { b in // Try to find a private field that hasn't already been added to this literal. - var propertyName: String - var attempts = 0 - repeat { - guard attempts < 10 else { return } - propertyName = b.randomCustomPropertyName() - attempts += 1 - } while b.currentClassDefinition.privateFields.contains(propertyName) - + let propertyName = b.generateString(b.randomCustomPropertyName, + notIn: b.currentClassDefinition.privateFields) var value = probability(0.5) ? b.randomJsVariable() : nil b.currentClassDefinition.addPrivateStaticProperty( propertyName, value: value) @@ -1240,19 +1093,8 @@ public let CodeGenerators: [CodeGenerator] = [ provides: [.javascript, .subroutine, .method, .classMethod] ) { b in // Try to find a private field that hasn't already been added to this class. - var methodName: String - var attempts = 0 - repeat { - if attempts >= 10 { - methodName = String.random( - ofLength: Int.random(in: 1...5)) - break - } - methodName = b.randomCustomMethodName() - attempts += 1 - } while b.currentClassDefinition.privateFields.contains( - methodName) - + let methodName = b.generateString(b.randomCustomMethodName, + notIn: b.currentClassDefinition.privateFields) let parameters = b.randomParameters() b.emit( BeginClassPrivateStaticMethod( From dbbf7bbc59893ddcf2819e6f4ac10890f160da48 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Wed, 22 Oct 2025 15:19:28 +0200 Subject: [PATCH 23/61] Bump timeout again due to occasional slow flags Bug: 453513823 Change-Id: I868371479c88a9d0cb6074f9c31f2bab3630b9d9 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8696136 Commit-Queue: Michael Achenbach Commit-Queue: Matthias Liedtke Reviewed-by: Matthias Liedtke Auto-Submit: Michael Achenbach --- Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/V8Profile.swift | 2 +- Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift b/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift index 00cef7b5a..e17eef035 100644 --- a/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift @@ -40,7 +40,7 @@ let v8HoleFuzzingProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 300, + timeout: 400, codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 114e1f749..68e12d2d4 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -267,7 +267,7 @@ let v8Profile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 300, + timeout: 400, codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift index 633150068..5dbe76c81 100644 --- a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift @@ -76,7 +76,7 @@ let v8SandboxProfile = Profile( maxExecsBeforeRespawn: 1000, // ASan builds are slower, so we use a larger timeout. - timeout: 500, + timeout: 600, codePrefix: """ // From 36f3477fa68dd0effc05d5896a2fe6f4c052ae78 Mon Sep 17 00:00:00 2001 From: Pawel Krawczyk Date: Wed, 22 Oct 2025 12:37:17 +0000 Subject: [PATCH 24/61] Fix logic error in comment. Move wasmRefI31 close to wasmI31Ref Change-Id: Ia2fe631be7b92c5aeafaf99de9a0fdb7fd9f0480 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8695757 Commit-Queue: Matthias Liedtke Auto-Submit: Pawel Krawczyk Reviewed-by: Matthias Liedtke --- Sources/Fuzzilli/FuzzIL/TypeSystem.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sources/Fuzzilli/FuzzIL/TypeSystem.swift b/Sources/Fuzzilli/FuzzIL/TypeSystem.swift index c0e81beaf..26cbc101e 100644 --- a/Sources/Fuzzilli/FuzzIL/TypeSystem.swift +++ b/Sources/Fuzzilli/FuzzIL/TypeSystem.swift @@ -23,6 +23,7 @@ // a variable of type .object() as input because only that can have methods. Also, when generating function // calls it can be necessary to find variables of the types that the function expects as arguments. This task // is solved by defining a "Is a" relationship between types which can then be used to find suitable variables. +// Notice that the relationship is not reflexive. Think of it as "Is contained by" or <=. // 2. to determine possible actions that can be performed on a value. E.g. when having a reference to something // that is known to be a function, a function call can be performed. Also, the method call code generator will // want to know the available methods that it can call on an object, which it can query from the type system. @@ -251,6 +252,7 @@ public struct ILType: Hashable { public static let wasmFuncRef = ILType.wasmRef(.Abstract(.WasmFunc), nullability: true) public static let wasmExnRef = ILType.wasmRef(.Abstract(.WasmExn), nullability: true) public static let wasmI31Ref = ILType.wasmRef(.Abstract(.WasmI31), nullability: true) + public static let wasmRefI31 = ILType.wasmRef(.Abstract(.WasmI31), nullability: false) public static let wasmAnyRef = ILType.wasmRef(.Abstract(.WasmAny), nullability: true) public static let wasmRefAny = ILType.wasmRef(.Abstract(.WasmAny), nullability: false) public static let wasmNullRef = ILType.wasmRef(.Abstract(.WasmNone), nullability: true) @@ -259,7 +261,6 @@ public struct ILType: Hashable { public static let wasmEqRef = ILType.wasmRef(.Abstract(.WasmEq), nullability: true) public static let wasmStructRef = ILType.wasmRef(.Abstract(.WasmStruct), nullability: true) public static let wasmArrayRef = ILType.wasmRef(.Abstract(.WasmArray), nullability: true) - public static let wasmRefI31 = ILType.wasmRef(.Abstract(.WasmI31), nullability: false) public static let wasmSimd128 = ILType(definiteType: .wasmSimd128) public static let wasmGenericRef = ILType(definiteType: .wasmRef) @@ -323,7 +324,7 @@ public struct ILType: Hashable { return !(lhs == rhs) } - /// Returns true if this type subsumes the given type, i.e. every instance of other is also an instance of this type. + /// Returns true if other type subsumes this type, i.e. every instance of this is also an instance of other type. public func Is(_ other: ILType) -> Bool { return other.subsumes(self) } From edf3297cad812a6195f9863a02d677280c60340c Mon Sep 17 00:00:00 2001 From: Pawel Krawczyk Date: Wed, 22 Oct 2025 14:07:15 +0000 Subject: [PATCH 25/61] Fix small error in testWasmAbstractHeapTypeSubsumptionRules. Replace 'reflexive' with 'symmetric' in ILType description. Change-Id: I96fd27e6dd1c3a5bc579f55a50b61e9b5ab9c7e3 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8696137 Auto-Submit: Pawel Krawczyk Commit-Queue: Pawel Krawczyk Reviewed-by: Danylo Mocherniuk Reviewed-by: Matthias Liedtke --- Sources/Fuzzilli/FuzzIL/TypeSystem.swift | 2 +- Tests/FuzzilliTests/TypeSystemTest.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/Fuzzilli/FuzzIL/TypeSystem.swift b/Sources/Fuzzilli/FuzzIL/TypeSystem.swift index 26cbc101e..c9a56f2d9 100644 --- a/Sources/Fuzzilli/FuzzIL/TypeSystem.swift +++ b/Sources/Fuzzilli/FuzzIL/TypeSystem.swift @@ -23,7 +23,7 @@ // a variable of type .object() as input because only that can have methods. Also, when generating function // calls it can be necessary to find variables of the types that the function expects as arguments. This task // is solved by defining a "Is a" relationship between types which can then be used to find suitable variables. -// Notice that the relationship is not reflexive. Think of it as "Is contained by" or <=. +// Notice that the relationship is not symmetric. Think of it as "Is contained by" or <=. // 2. to determine possible actions that can be performed on a value. E.g. when having a reference to something // that is known to be a function, a function call can be performed. Also, the method call code generator will // want to know the available methods that it can call on an object, which it can query from the type system. diff --git a/Tests/FuzzilliTests/TypeSystemTest.swift b/Tests/FuzzilliTests/TypeSystemTest.swift index dedccad09..5e6f0fd77 100644 --- a/Tests/FuzzilliTests/TypeSystemTest.swift +++ b/Tests/FuzzilliTests/TypeSystemTest.swift @@ -1288,7 +1288,7 @@ class TypeSystemTests: XCTestCase { // Tests on the whole ILType. let ref = {t in ILType.wasmRef(.Abstract(t), nullability: false)} - let refNull = {t in ILType.wasmRef(.Abstract(t), nullability: false)} + let refNull = {t in ILType.wasmRef(.Abstract(t), nullability: true)} for type in allTypes { let refT = ref(type) let refNullT = refNull(type) From d06f62356e3adf3391bf69da27bb5172c671896a Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Thu, 23 Oct 2025 17:48:48 +0200 Subject: [PATCH 26/61] [logging] Sort unordered set entries / map keys before printing Previously: Have 8 custom property names: ["h", "b", "a", "g", "d", "e", "f", "c"] Now: Have 8 custom property names: ["a", "b", "c", "d", "e", "f", "g", "h"] Change-Id: I04256b8960004b900abfc904fb40544a4fc62610 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8701336 Commit-Queue: Pawel Krawczyk Auto-Submit: Matthias Liedtke Reviewed-by: Pawel Krawczyk --- .../Fuzzilli/Environment/JavaScriptEnvironment.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift b/Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift index 488c1cdd3..8b9041c7b 100644 --- a/Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift +++ b/Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift @@ -618,12 +618,12 @@ public class JavaScriptEnvironment: ComponentBase { // Log detailed information about the environment here so users are aware of it and can modify things if they like. logger.info("Initialized static JS environment model") - logger.info("Have \(builtins.count) available builtins: \(builtins)") - logger.info("Have \(groups.count) different object groups: \(groups.keys)") - logger.info("Have \(builtinProperties.count) builtin property names: \(builtinProperties)") - logger.info("Have \(builtinMethods.count) builtin method names: \(builtinMethods)") - logger.info("Have \(customProperties.count) custom property names: \(customProperties)") - logger.info("Have \(customMethods.count) custom method names: \(customMethods)") + logger.info("Have \(builtins.count) available builtins: \(builtins.sorted())") + logger.info("Have \(groups.count) different object groups: \(groups.keys.sorted())") + logger.info("Have \(builtinProperties.count) builtin property names: \(builtinProperties.sorted())") + logger.info("Have \(builtinMethods.count) builtin method names: \(builtinMethods.sorted())") + logger.info("Have \(customProperties.count) custom property names: \(customProperties.sorted())") + logger.info("Have \(customMethods.count) custom method names: \(customMethods.sorted())") } func checkConstructorAvailability() { From 5178400afbf959caf4493a335d430d434d6f9eb1 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Wed, 22 Oct 2025 12:42:06 +0200 Subject: [PATCH 27/61] [v8] Add basic fuzzing for shared JS primitives Bug: 448349112, 42204563 Change-Id: I77bd3846b12cad1707b8d521d45a62d32f27588d Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8695756 Commit-Queue: Matthias Liedtke Auto-Submit: Matthias Liedtke Reviewed-by: Pawel Krawczyk --- Sources/FuzzilliCli/Profiles/V8CommonProfile.swift | 4 ++++ Sources/FuzzilliCli/Profiles/V8Profile.swift | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift index dc3a6e03f..9075fcb25 100644 --- a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift @@ -135,6 +135,10 @@ public let WasmArrayGenerator = CodeGenerator("WasmArrayGenerator") { b in b.eval("%WasmArray()", hasOutput: true); } +public let SharedObjectGenerator = CodeGenerator("SharedObjectGenerator", inputs: .one) { b, v in + b.eval("%ShareObject(%@)", with: [v], hasOutput: true); +} + public let PretenureAllocationSiteGenerator = CodeGenerator("PretenureAllocationSiteGenerator", inputs: .required(.object())) { b, obj in b.eval("%PretenureAllocationSite(%@)", with: [obj]); } diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 68e12d2d4..42764acb2 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -80,8 +80,11 @@ let v8Profile = Profile( args.append("--minor-ms") } + // Enable the shared heap. if probability(0.25) { - args.append("--shared-string-table") + // Either use the shared-string-table (needed for JS shared structs) or only allow + // shared strings (needed for shared Wasm objects). + args.append(Bool.random() ? "--shared-string-table" : "--shared-strings") } if probability(0.25) && !args.contains("--no-maglev") { @@ -307,6 +310,7 @@ let v8Profile = Profile( (WasmStructGenerator, 15), (WasmArrayGenerator, 15), + (SharedObjectGenerator, 5), (PretenureAllocationSiteGenerator, 5), ], From f091af3750b1ad3c8049622bfaf503702c260170 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Mon, 27 Oct 2025 14:58:59 +0100 Subject: [PATCH 28/61] Enable a dynamic timeout calculation at start-up This enables profiles to specify a value or an interval for timeouts. If the interval is given, a timeout from this interval will be determined based on the start-up tests. Bug: 453513823 Change-Id: I1904af15153a2fcbd15c688e838bee882b45cac4 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8703697 Reviewed-by: Matthias Liedtke Commit-Queue: Michael Achenbach --- Sources/Fuzzilli/Configuration.swift | 2 +- Sources/Fuzzilli/Fuzzer.swift | 40 +++++++++++++++++-- Sources/Fuzzilli/Util/Arguments.swift | 4 ++ .../FuzzilliCli/Profiles/DuktapeProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/JSCProfile.swift | 2 +- .../Profiles/JerryscriptProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/NjsProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/Profile.swift | 4 +- Sources/FuzzilliCli/Profiles/QjsProfile.swift | 2 +- .../FuzzilliCli/Profiles/QtjsProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/Serenity.swift | 2 +- .../Profiles/SpidermonkeyProfile.swift | 2 +- .../Profiles/V8HoleFuzzingProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/V8Profile.swift | 2 +- .../Profiles/V8SandboxProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/XSProfile.swift | 2 +- Sources/FuzzilliCli/main.swift | 38 +++++++++++++++--- 17 files changed, 89 insertions(+), 23 deletions(-) diff --git a/Sources/Fuzzilli/Configuration.swift b/Sources/Fuzzilli/Configuration.swift index 63496c7cf..121e9cbb8 100644 --- a/Sources/Fuzzilli/Configuration.swift +++ b/Sources/Fuzzilli/Configuration.swift @@ -17,7 +17,7 @@ public struct Configuration { public let arguments: [String] /// Timeout in milliseconds after which child processes will be killed. - public let timeout: UInt32 + public var timeout: UInt32 /// Log level to use. public let logLevel: LogLevel diff --git a/Sources/Fuzzilli/Fuzzer.swift b/Sources/Fuzzilli/Fuzzer.swift index e9d10abf9..3a7f9f605 100644 --- a/Sources/Fuzzilli/Fuzzer.swift +++ b/Sources/Fuzzilli/Fuzzer.swift @@ -14,6 +14,23 @@ import Foundation +/// Timeouts are configured either by a single value, then this value will be +/// used, or by an interval, in which case a value will be determined on +/// start-up. Timeouts are in milliseconds. +public enum Timeout { + case value(UInt32) + case interval(UInt32, UInt32) + + public func maxTimeout() -> UInt32{ + switch self { + case .value(let value): + return value + case .interval(_, let max): + return max + } + } +} + public class Fuzzer { /// Id of this fuzzer. public let id: UUID @@ -25,7 +42,7 @@ public class Fuzzer { public private(set) var isStopped = false /// The configuration used by this fuzzer. - public let config: Configuration + public var config: Configuration /// The list of events that can be dispatched on this fuzzer instance. public let events: Events @@ -933,7 +950,8 @@ public class Fuzzer { } /// Runs a number of startup tests to check whether everything is configured correctly. - public func runStartupTests() { + /// Returns a recommended timeout. + public func runStartupTests(with timeout : Timeout) -> Timeout { assert(isInitialized) // Check if we can execute programs @@ -999,7 +1017,22 @@ public class Fuzzer { // Determine recommended timeout value (rounded up to nearest multiple of 10ms) let maxExecutionTimeMs = (Int(maxExecutionTime * 1000 + 9) / 10) * 10 - let recommendedTimeout = 10 * maxExecutionTimeMs + let recommendedTimeout = 2 * maxExecutionTimeMs + + // Specify the actual timeout based on an interval if configured. + let actualTimeout : Timeout + if case .interval(let lowerLimit, let upperLimit) = timeout { + let timeout = max(min(UInt32(recommendedTimeout), upperLimit), lowerLimit) + logger.info("Determined a timeout of \(timeout)ms based on the interval [\(lowerLimit), \(upperLimit)]") + actualTimeout = Timeout.value(timeout) + + // Update the configuration used by the main thread. Worker threads + // will be configured based on the timeout we return here. + config.timeout = timeout + } else { + actualTimeout = timeout + } + logger.info("Recommended timeout: at least \(recommendedTimeout)ms. Current timeout: \(config.timeout)ms") // Check if we can receive program output @@ -1027,6 +1060,7 @@ public class Fuzzer { } logger.info("Startup tests finished successfully") + return actualTimeout } /// A pending corpus import job together with some statistics. diff --git a/Sources/Fuzzilli/Util/Arguments.swift b/Sources/Fuzzilli/Util/Arguments.swift index 1faada4bd..fcea3106a 100644 --- a/Sources/Fuzzilli/Util/Arguments.swift +++ b/Sources/Fuzzilli/Util/Arguments.swift @@ -83,6 +83,10 @@ public class Arguments { } } + public func string(for name: String) -> String? { + return self[name] + } + public func has(_ name: String) -> Bool { return self[name] != nil } diff --git a/Sources/FuzzilliCli/Profiles/DuktapeProfile.swift b/Sources/FuzzilliCli/Profiles/DuktapeProfile.swift index 853aeae20..001ce27a8 100644 --- a/Sources/FuzzilliCli/Profiles/DuktapeProfile.swift +++ b/Sources/FuzzilliCli/Profiles/DuktapeProfile.swift @@ -23,7 +23,7 @@ let duktapeProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/JSCProfile.swift b/Sources/FuzzilliCli/Profiles/JSCProfile.swift index e415ed64c..d79b85360 100644 --- a/Sources/FuzzilliCli/Profiles/JSCProfile.swift +++ b/Sources/FuzzilliCli/Profiles/JSCProfile.swift @@ -73,7 +73,7 @@ let jscProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/JerryscriptProfile.swift b/Sources/FuzzilliCli/Profiles/JerryscriptProfile.swift index b59833a4c..acc18406d 100644 --- a/Sources/FuzzilliCli/Profiles/JerryscriptProfile.swift +++ b/Sources/FuzzilliCli/Profiles/JerryscriptProfile.swift @@ -23,7 +23,7 @@ let jerryscriptProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/NjsProfile.swift b/Sources/FuzzilliCli/Profiles/NjsProfile.swift index 5b629c028..040ef711d 100644 --- a/Sources/FuzzilliCli/Profiles/NjsProfile.swift +++ b/Sources/FuzzilliCli/Profiles/NjsProfile.swift @@ -23,7 +23,7 @@ let njsProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/Profile.swift b/Sources/FuzzilliCli/Profiles/Profile.swift index 726499d82..0947d9559 100644 --- a/Sources/FuzzilliCli/Profiles/Profile.swift +++ b/Sources/FuzzilliCli/Profiles/Profile.swift @@ -18,8 +18,8 @@ struct Profile { let processArgs: (_ randomize: Bool) -> [String] let processEnv: [String : String] let maxExecsBeforeRespawn: Int - // Timeout is in milliseconds. - let timeout: Int + // Timeout either by value or interval in milliseconds. + let timeout: Timeout let codePrefix: String let codeSuffix: String let ecmaVersion: ECMAScriptVersion diff --git a/Sources/FuzzilliCli/Profiles/QjsProfile.swift b/Sources/FuzzilliCli/Profiles/QjsProfile.swift index 83dd77d2c..aa521f001 100644 --- a/Sources/FuzzilliCli/Profiles/QjsProfile.swift +++ b/Sources/FuzzilliCli/Profiles/QjsProfile.swift @@ -23,7 +23,7 @@ let qjsProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/QtjsProfile.swift b/Sources/FuzzilliCli/Profiles/QtjsProfile.swift index 0ba7ff22c..c536f529b 100644 --- a/Sources/FuzzilliCli/Profiles/QtjsProfile.swift +++ b/Sources/FuzzilliCli/Profiles/QtjsProfile.swift @@ -31,7 +31,7 @@ let qtjsProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/Serenity.swift b/Sources/FuzzilliCli/Profiles/Serenity.swift index 286b5a520..496e833b9 100644 --- a/Sources/FuzzilliCli/Profiles/Serenity.swift +++ b/Sources/FuzzilliCli/Profiles/Serenity.swift @@ -21,7 +21,7 @@ let serenityProfile = Profile( "ASAN_OPTIONS": "abort_on_error=1", ], maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ function main() { """, diff --git a/Sources/FuzzilliCli/Profiles/SpidermonkeyProfile.swift b/Sources/FuzzilliCli/Profiles/SpidermonkeyProfile.swift index a7ce9123d..ec131d243 100644 --- a/Sources/FuzzilliCli/Profiles/SpidermonkeyProfile.swift +++ b/Sources/FuzzilliCli/Profiles/SpidermonkeyProfile.swift @@ -74,7 +74,7 @@ let spidermonkeyProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift b/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift index e17eef035..c7c72aa09 100644 --- a/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift @@ -40,7 +40,7 @@ let v8HoleFuzzingProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 400, + timeout: Timeout.interval(300, 900), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 42764acb2..89eeded38 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -270,7 +270,7 @@ let v8Profile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 400, + timeout: Timeout.interval(300, 900), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift index 5dbe76c81..1a0c05729 100644 --- a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift @@ -76,7 +76,7 @@ let v8SandboxProfile = Profile( maxExecsBeforeRespawn: 1000, // ASan builds are slower, so we use a larger timeout. - timeout: 600, + timeout: Timeout.interval(500, 1200), codePrefix: """ // diff --git a/Sources/FuzzilliCli/Profiles/XSProfile.swift b/Sources/FuzzilliCli/Profiles/XSProfile.swift index 2abb68b2c..1cb64c0f1 100644 --- a/Sources/FuzzilliCli/Profiles/XSProfile.swift +++ b/Sources/FuzzilliCli/Profiles/XSProfile.swift @@ -297,7 +297,7 @@ let xsProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/main.swift b/Sources/FuzzilliCli/main.swift index 8d381e85a..63dd97e92 100644 --- a/Sources/FuzzilliCli/main.swift +++ b/Sources/FuzzilliCli/main.swift @@ -35,7 +35,9 @@ Options: --logLevel=level : The log level to use. Valid values: "verbose", "info", "warning", "error", "fatal" (default: "info"). --maxIterations=n : Run for the specified number of iterations (default: unlimited). --maxRuntimeInHours=n : Run for the specified number of hours (default: unlimited). - --timeout=n : Timeout in ms after which to interrupt execution of programs (default depends on the profile). + --timeout=n : Timeout in ms after which to interrupt execution of programs (default depends + on the profile). Or provide an interval like --timeout=200,400. The actual + timeout in this interval will be determined by the start-up tests. --minMutationsPerSample=n : Discard samples from the corpus only after they have been mutated at least this many times (default: 25). --minCorpusSize=n : Keep at least this many samples in the corpus regardless of the number of times they have been mutated (default: 1000). @@ -132,7 +134,6 @@ let engineName = args["--engine"] ?? "mutation" let corpusName = args["--corpus"] ?? "basic" let maxIterations = args.int(for: "--maxIterations") ?? -1 let maxRuntimeInHours = args.int(for: "--maxRuntimeInHours") ?? -1 -let timeout = args.int(for: "--timeout") ?? profile.timeout let minMutationsPerSample = args.int(for: "--minMutationsPerSample") ?? 25 let minCorpusSize = args.int(for: "--minCorpusSize") ?? 1000 let maxCorpusSize = args.int(for: "--maxCorpusSize") ?? Int.max @@ -158,6 +159,33 @@ let tag = args["--tag"] let enableWasm = args.has("--wasm") let forDifferentialFuzzing = args.has("--forDifferentialFuzzing") +var timeout : Timeout +if let raw_timeout = args.string(for: "--timeout") { + if raw_timeout.contains(",") { + let parts = raw_timeout.split(separator: ",") + guard parts.count == 2 else { + configError("Timeout intervals must be specified by two boundaries, e.g. --timeout=200,400") + } + guard let lower = UInt32(parts[0]) else { + configError("The lower bound for --timeout must be an integer") + } + guard let upper = UInt32(parts[1]) else { + configError("The upper bound for --timeout must be an integer") + } + guard lower < upper else { + configError("The --timeout=lower,upper boundaries must adhere to lower < upper") + } + timeout = Timeout.interval(lower, upper) + } else { + guard let int_timeout = UInt32(raw_timeout) else { + configError("The value for --timeout must be an integer or interval") + } + timeout = Timeout.value(int_timeout) + } +} else { + timeout = profile.timeout +} + guard numJobs >= 1 else { configError("Must have at least 1 job") } @@ -510,7 +538,7 @@ func makeFuzzer(with configuration: Configuration) -> Fuzzer { // The configuration of the main fuzzer instance. let mainConfig = Configuration(arguments: CommandLine.arguments, - timeout: UInt32(timeout), + timeout: timeout.maxTimeout(), logLevel: logLevel, startupTests: profile.startupTests, minimizationLimit: minimizationLimit, @@ -640,7 +668,7 @@ fuzzer.sync { // Initialize the fuzzer, and run startup tests fuzzer.initialize() - fuzzer.runStartupTests() + timeout = fuzzer.runStartupTests(with: timeout) // Start the main fuzzing job. fuzzer.start(runUntil: exitCondition) @@ -649,7 +677,7 @@ fuzzer.sync { // Add thread worker instances if requested // Worker instances use a slightly different configuration, mostly just a lower log level. let workerConfig = Configuration(arguments: CommandLine.arguments, - timeout: UInt32(timeout), + timeout: timeout.maxTimeout(), logLevel: .warning, startupTests: profile.startupTests, minimizationLimit: minimizationLimit, From 771d4c87822ae6e4fc6e0c1a246c35e6c4b4b585 Mon Sep 17 00:00:00 2001 From: Omer Katz Date: Thu, 30 Oct 2025 01:55:16 -0700 Subject: [PATCH 29/61] Revert "Add --handle-weak-ref-weakly-in-minor-gc to Fuzzilli" This reverts commit 177973b127549c1e2c653784cef67e049d9736d5. Reason for revert: The flag is now enabled by default. Fuzzilli Adding it with some probability no longer makes sense. Original change's description: > Add --handle-weak-ref-weakly-in-minor-gc to Fuzzilli > > Bug: 340777103 > Change-Id: I0946794f9517b4839db6f8a303c63bd8ceea3ad3 > Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8614796 > Auto-Submit: Omer Katz > Reviewed-by: Matthias Liedtke > Commit-Queue: Omer Katz Bug: 340777103 Change-Id: I77084c000747a6f86994059706f6a5175bcac30b Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8723036 Commit-Queue: Matthias Liedtke Auto-Submit: Omer Katz Reviewed-by: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8Profile.swift | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 89eeded38..7af2a8c0f 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -126,10 +126,6 @@ let v8Profile = Profile( args.append("--precise-object-pinning") } - if probability(0.1) { - args.append("--handle-weak-ref-weakly-in-minor-gc") - } - if probability(0.1) { args.append("--scavenger-chaos-mode") let threshold = Int.random(in: 0...100) From 3e040dfcc9693b51d421fa5a2e771f7872a8eaef Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Wed, 29 Oct 2025 15:20:03 +0100 Subject: [PATCH 30/61] [v8-sandbox] Don't alert on the JS corruption API failing We create alerts when the logs contain ": Assertion Failed" to catch Swift assertions. We have cases where the ExplorationMutator runs into issues when running the instrumented code that contains both the instrumentation for the corrupt() call to cause in-sandbox corruption as well as the exploration mutation running and then causing one of these assert calls in JS to fail. I don't think it should be considered a critical unexpected failure when this is triggered. Change-Id: I149132d9f081df62554d2e3c543fb63f9c299b71 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8719276 Auto-Submit: Matthias Liedtke Reviewed-by: Michael Achenbach Commit-Queue: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift index 1a0c05729..ba5fc1935 100644 --- a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift @@ -97,7 +97,7 @@ let v8SandboxProfile = Profile( function assert(c) { if (!c) { - throw new Error("Assertion failed!"); + throw new Error("Assertion in the in-sandbox-corruption API failed!"); } } From dcbbafd6b980ce96e3031b32c654ce18343e2077 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Mon, 27 Oct 2025 17:43:51 +0100 Subject: [PATCH 31/61] Add simple mechanism to share data between stubs in a code generator Bug: 445356784 Change-Id: I4a8f93b9a65f0df23c028287c908d38e7f23befc Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8707582 Reviewed-by: Michael Achenbach Auto-Submit: Matthias Liedtke Commit-Queue: Michael Achenbach --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 38 ++++++- Sources/Fuzzilli/CodeGen/CodeGenerator.swift | 2 +- .../Fuzzilli/CodeGen/WasmCodeGenerators.swift | 45 +++++--- Sources/Fuzzilli/Util/MockFuzzer.swift | 4 +- Sources/FuzzilliCli/main.swift | 4 +- Tests/FuzzilliTests/ProgramBuilderTest.swift | 107 ++++++++++++++++++ 6 files changed, 176 insertions(+), 24 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index fd8955a0d..a9490b307 100644 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -19,6 +19,38 @@ import Foundation /// This provides methods for constructing and appending random /// instances of the different kinds of operations in a program. public class ProgramBuilder { + + /// Runtime data used by code generators to share data between different stubs inside the same + /// code generator. It is strictly required that all pushed values are also popped again in the + /// same code generator. + public class GeneratorRuntimeData { + private var data = [String : Stack]() + + public func push(_ key: String, _ value: Variable) { + data[key, default: .init()].push(value) + } + + public func pop(_ key: String) -> Variable { + assert(data[key] != nil) + return data[key]!.pop() + } + + // Fetch the most recent value for this key and push it back. + public func popAndPush(_ key: String) -> Variable { + assert(data[key] != nil) + return data[key]!.top + } + + func reset() { + #if DEBUG + for (key, value) in data { + assert(value.isEmpty, "Stale entries for runtime data '\(key)'") + } + #endif + data.removeAll(keepingCapacity: false) + } + } + /// The fuzzer instance for which this builder is active. public let fuzzer: Fuzzer @@ -147,6 +179,9 @@ public class ProgramBuilder { /// The remaining CodeGenerators to call as part of a building / CodeGen step, these will "clean up" the state and fix the contexts. public var scheduled: Stack = Stack() + // Runtime data that can be shared between different stubs within a CodeGenerator. + var runtimeData = GeneratorRuntimeData() + /// Stack of active switch blocks. private var activeSwitchBlocks = Stack() @@ -214,6 +249,7 @@ public class ProgramBuilder { activeObjectLiterals.removeAll() activeClassDefinitions.removeAll() buildLog?.reset() + runtimeData.reset() } /// Finalizes and returns the constructed program, then resets this builder so it can be reused for building another program. @@ -2075,7 +2111,7 @@ public class ProgramBuilder { var numberOfGeneratedInstructions = 0 - // calculate all input requirements of this CodeGenerator. + // Calculate all input requirements of this CodeGenerator. let inputTypes = Set(generator.parts.reduce([]) { res, gen in return res + gen.inputs.types }) diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerator.swift b/Sources/Fuzzilli/CodeGen/CodeGenerator.swift index 08b3ff5b8..07be36f35 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGenerator.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerator.swift @@ -381,4 +381,4 @@ extension CodeGenerator: CustomStringConvertible { let names = self.parts.map { $0.name } return names.joined(separator: ",") } -} \ No newline at end of file +} diff --git a/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift b/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift index 865b94a7a..f63a168e5 100644 --- a/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift @@ -1277,25 +1277,34 @@ public let WasmCodeGenerators: [CodeGenerator] = [ }, ]), - // TODO: think about how we can turn this into a mulit-part Generator - CodeGenerator("WasmLoopGenerator", inContext: .single(.wasmFunction)) { b in - let function = b.currentWasmModule.currentWasmFunction - let loopCtr = function.consti32(10) - - function.wasmBuildLoop(with: [] => []) { label, args in - let result = function.wasmi32BinOp( + CodeGenerator( + "WasmLoopGenerator", + [ + GeneratorStub( + "WasmBeginLoopGenerator", + inContext: .single(.wasmFunction), + provides: [.wasmFunction] + ) { b in + let function = b.currentWasmModule.currentWasmFunction + let loopCtr = function.consti32(10) + b.runtimeData.push("loopCounter", loopCtr) + b.emit(WasmBeginLoop(with: [] => [])) + // Increase loop counter. + let result = function.wasmi32BinOp( loopCtr, function.consti32(1), binOpKind: .Sub) - function.wasmReassign(variable: loopCtr, to: result) - - b.buildRecursive(n: defaultCodeGenerationAmount) - - // Backedge of loop, we continue if it is not equal to zero. - let isNotZero = function.wasmi32CompareOp( - loopCtr, function.consti32(0), using: .Ne) - function.wasmBranchIf( - isNotZero, to: label, hint: b.randomWasmBranchHint()) - } - }, + function.wasmReassign(variable: loopCtr, to: result) + }, + GeneratorStub( + "WasmEndLoopGenerator", + inContext: .single(.wasmFunction) + ) { b in + let function = b.currentWasmModule.currentWasmFunction + let loopCtr = b.runtimeData.pop("loopCounter") + // Backedge of loop, we continue if it is not equal to zero. + let isNotZero = function.wasmi32CompareOp(loopCtr, function.consti32(0), using: .Ne) + b.emit(WasmEndLoop(outputTypes: [])) + }, + ]), CodeGenerator("WasmLoopWithSignatureGenerator", inContext: .single(.wasmFunction)) { b in diff --git a/Sources/Fuzzilli/Util/MockFuzzer.swift b/Sources/Fuzzilli/Util/MockFuzzer.swift index 44feb77f4..2f9558208 100644 --- a/Sources/Fuzzilli/Util/MockFuzzer.swift +++ b/Sources/Fuzzilli/Util/MockFuzzer.swift @@ -82,7 +82,7 @@ class MockEvaluator: ProgramEvaluator { } /// Create a fuzzer instance usable for testing. -public func makeMockFuzzer(config maybeConfiguration: Configuration? = nil, engine maybeEngine: FuzzEngine? = nil, runner maybeRunner: ScriptRunner? = nil, environment maybeEnvironment: JavaScriptEnvironment? = nil, evaluator maybeEvaluator: ProgramEvaluator? = nil, corpus maybeCorpus: Corpus? = nil, codeGenerators additionalCodeGenerators : [(CodeGenerator, Int)] = [], queue: DispatchQueue? = nil) -> Fuzzer { +public func makeMockFuzzer(config maybeConfiguration: Configuration? = nil, engine maybeEngine: FuzzEngine? = nil, runner maybeRunner: ScriptRunner? = nil, environment maybeEnvironment: JavaScriptEnvironment? = nil, evaluator maybeEvaluator: ProgramEvaluator? = nil, corpus maybeCorpus: Corpus? = nil, codeGenerators additionalCodeGenerators : [(CodeGenerator, Int)] = [], queue: DispatchQueue? = nil, overwriteGenerators: WeightedList? = nil) -> Fuzzer { // The configuration of this fuzzer. let configuration = maybeConfiguration ?? Configuration(logLevel: .warning) @@ -115,7 +115,7 @@ public func makeMockFuzzer(config maybeConfiguration: Configuration? = nil, engi let minimizer = Minimizer() // Use all builtin CodeGenerators - let codeGenerators = WeightedList( + let codeGenerators = overwriteGenerators ?? WeightedList( (CodeGenerators + WasmCodeGenerators).map { guard let weight = codeGeneratorWeights[$0.name] else { fatalError("Missing weight for CodeGenerator \($0.name) in CodeGeneratorWeights.swift") diff --git a/Sources/FuzzilliCli/main.swift b/Sources/FuzzilliCli/main.swift index 63dd97e92..10612275b 100644 --- a/Sources/FuzzilliCli/main.swift +++ b/Sources/FuzzilliCli/main.swift @@ -172,8 +172,8 @@ if let raw_timeout = args.string(for: "--timeout") { guard let upper = UInt32(parts[1]) else { configError("The upper bound for --timeout must be an integer") } - guard lower < upper else { - configError("The --timeout=lower,upper boundaries must adhere to lower < upper") + guard lower <= upper else { + configError("The --timeout=lower,upper boundaries must adhere to lower <= upper") } timeout = Timeout.interval(lower, upper) } else { diff --git a/Tests/FuzzilliTests/ProgramBuilderTest.swift b/Tests/FuzzilliTests/ProgramBuilderTest.swift index 542f36f6c..78e112c87 100644 --- a/Tests/FuzzilliTests/ProgramBuilderTest.swift +++ b/Tests/FuzzilliTests/ProgramBuilderTest.swift @@ -3049,3 +3049,110 @@ class ProgramBuilderTests: XCTestCase { } } } + +class ProgramBuilderRuntimeDataTests: XCTestCase { + func runFuzzerWithGenerator(_ generator: CodeGenerator) -> String { + let fuzzer = makeMockFuzzer(overwriteGenerators: WeightedList([(generator, 1)])) + let b = fuzzer.makeBuilder() + + let syntheticGenerator = b.assembleSyntheticGenerator(for: generator) + XCTAssertNotNil(syntheticGenerator) + let numInstructions = b.complete(generator: syntheticGenerator!, withBudget: 3) + XCTAssertGreaterThan(numInstructions, 0) + + let program = b.finalize() + return fuzzer.lifter.lift(program) + } + + func testNested() { + let loopGenerator = CodeGenerator("TestDoWhileLoop", [ + GeneratorStub("BeginLoop") { b in + let loopVar = b.loadInt(0) + b.runtimeData.push("loopVar", loopVar) + b.emit(BeginDoWhileLoopBody()) + }, + GeneratorStub("EndLoop") { b in + let loopVar = b.runtimeData.pop("loopVar") + b.unary(.PreInc, loopVar) + b.emit(BeginDoWhileLoopHeader()) + let cond = b.compare(loopVar, with: b.loadInt(3), using: .lessThan) + b.emit(EndDoWhileLoop(), withInputs: [cond]) + } + ]) + XCTAssertEqual( + runFuzzerWithGenerator(loopGenerator), + """ + let v0 = 0; + do { + let v1 = 0; + do { + ++v1; + } while (v1 < 3) + ++v0; + } while (v0 < 3) + + """) + } + + func testMultiLabel() { + var counter: Int64 = 0 + let defineAndAddGenerator = CodeGenerator("TestMultiLabel", [ + GeneratorStub("Define") { b in + b.runtimeData.push("first", b.loadInt(counter)) + counter += 1 + b.runtimeData.push("second", b.loadInt(counter)) + counter += 1 + b.runtimeData.push("third", b.loadInt(counter)) + counter += 1 + }, + GeneratorStub("Add") { b in + // The order in which the different lables are popped doesn't matter. + let third = b.runtimeData.pop("third") + let first = b.runtimeData.pop("first") + let second = b.runtimeData.pop("second") + b.binary(b.binary(first, second, with: .Add), third, with: .Add) + } + ]) + XCTAssertEqual( + runFuzzerWithGenerator(defineAndAddGenerator), + """ + (3 + 4) + 5; + (0 + 1) + 2; + + """) + } + + func testPassOn() { + var counter: Int64 = 10 + let defineAndAddGenerator = CodeGenerator("TestPassOn", [ + GeneratorStub("Define") { b in + let value = b.loadInt(counter) + b.runtimeData.push("value", value) + b.binary(value, b.loadInt(0), with: .Add) + counter += 1 + }, + GeneratorStub("AddOne") { b in + let value = b.runtimeData.popAndPush("value") + b.binary(value, b.loadInt(1), with: .Add) + }, + GeneratorStub("SubOne") { b in + let value = b.runtimeData.pop("value") + b.binary(value, b.loadInt(1), with: .Sub) + }, + ]) + XCTAssertEqual( + runFuzzerWithGenerator(defineAndAddGenerator), + """ + 10 + 0; + 11 + 0; + 11 + 1; + 11 - 1; + 10 + 1; + 12 + 0; + 12 + 1; + 12 - 1; + 10 - 1; + + """) + } +} From 59f6bd27145cfb84328383ea3801bd1b7bc4698c Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Tue, 28 Oct 2025 12:05:56 +0100 Subject: [PATCH 32/61] Improve class-definition generation Previously there were two code generators for classes, the ClassDefinitionGenerator and the WeirdClassGenerator. The former was still an old-style generator, so it could not be scheduled for any of the ~20 generators that require the classDefinition context. So all such generators scheduled the WeirdClassGenerator, which forced a simple method as superclass, which in return doesn't contain any interesting code as in e.g. the ObjectConstructorGenerator. This change unifies the two class generators as one new-style generator. The generator provides the classDefinition context, so it can be scheduled for parts of classes. It also produces a constructor() (unlike the WeirdClassGenerator), so it can be scheduled for generators that require constructor()-type input. Bug: 446632644 Change-Id: I7313dae3998cdd0ff488779debeca7c6ab333fc9 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8705459 Commit-Queue: Michael Achenbach Reviewed-by: Matthias Liedtke --- .../CodeGen/CodeGeneratorWeights.swift | 1 - Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 96 ++++++++----------- Sources/Fuzzilli/FuzzIL/JSTyper.swift | 6 +- 3 files changed, 44 insertions(+), 59 deletions(-) diff --git a/Sources/Fuzzilli/CodeGen/CodeGeneratorWeights.swift b/Sources/Fuzzilli/CodeGen/CodeGeneratorWeights.swift index 79543bb19..c5e030303 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGeneratorWeights.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGeneratorWeights.swift @@ -192,7 +192,6 @@ public let codeGeneratorWeights = [ "PrototypeOverwriteGenerator": 10, "CallbackPropertyGenerator": 10, "MethodCallWithDifferentThisGenerator": 5, - "WeirdClassGenerator": 10, "ProxyGenerator": 10, "LengthChangeGenerator": 5, "ElementKindChangeGenerator": 5, diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index 95476d460..c31dfab81 100644 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -367,39 +367,46 @@ public let CodeGenerators: [CodeGenerator] = [ } }, - CodeGenerator("ClassDefinitionGenerator", produces: [.constructor()]) { b in - // Possibly pick a superclass. The superclass must be a constructor (or null), otherwise a type error will be raised at runtime. - var superclass: Variable? = nil - if probability(0.5) && b.hasVisibleVariables { - superclass = b.randomVariable(ofType: .constructor()) - } - - // If there are no visible variables, create some random number- or string values first, so they can be used for example as property values. - if !b.hasVisibleVariables { - for _ in 0..<3 { - withEqualProbability( - { - b.loadInt(b.randomInt()) - }, - { - b.loadFloat(b.randomFloat()) - }, - { - b.loadString(b.randomString()) - }) - } - } - - // Create the class. - let c = b.buildClassDefinition(withSuperclass: superclass, isExpression: probability(0.3)) { cls in - b.buildRecursive(n: defaultCodeGenerationAmount) - } + CodeGenerator( + "ClassDefinitionGenerator", + [ + GeneratorStub( + "ClassDefinitionBeginGenerator", + produces: [.constructor()], + provides: [.classDefinition] + ) { b in + // Possibly pick a superclass. + // The superclass must be a constructor (or null). + var superclass: Variable? = nil + if probability(0.4) && b.hasVisibleVariables { + superclass = b.randomVariable(ofType: .constructor()) + } else if probability(0.2) { + superclass = b.buildPlainFunction(with: .parameters(n: 1)) { + args in + b.doReturn(b.randomJsVariable()) + } + } + let inputs = superclass != nil ? [superclass!] : [] + let cls = b.emit(BeginClassDefinition( + hasSuperclass: superclass != nil, + isExpression: probability(0.3)), + withInputs: inputs).output + b.runtimeData.push("class", cls) + }, + GeneratorStub( + "ClassDefinitionEndGenerator", + inContext: .single(.classDefinition) + ) { b in + b.emit(EndClassDefinition()) - // And construct a few instances of it. - for _ in 0.. instanceType)) From 794c0f008048a3e07957693b49f529b9b93e3a81 Mon Sep 17 00:00:00 2001 From: Dominik Klemba Date: Tue, 4 Nov 2025 13:32:28 +0000 Subject: [PATCH 33/61] Add new fuzzing flags for V8 This change introduces the following flags to the V8 fuzzing profile: - --maglev-as-top-tier - --maglev-non-eager-inlining - --max_maglev_inlined_bytecode_size_small=0 - --max_inlined_bytecode_size_small=0 These flags are expected to increase fuzzing coverage for edge cases in the V8 engine. While the probabilities in the code may seem high, they are conditional and depend on other flags being set. Bug: 456452258, 456451490, 456142887, 455592879 Change-Id: I486170bc27798f31ee905f2ff8e6c881a44b9265 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8736336 Commit-Queue: Dominik Klemba Reviewed-by: Matthias Liedtke Auto-Submit: Dominik Klemba Reviewed-by: Victor Gomes Reviewed-by: Darius Mercadier --- Sources/FuzzilliCli/Profiles/V8Profile.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 7af2a8c0f..8b973cdc6 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -41,6 +41,9 @@ let v8Profile = Profile( // if probability(0.1) { args.append("--no-turbofan") + if probability(0.5) { + args.append("--maglev-as-top-tier") + } } if probability(0.1) { @@ -91,6 +94,13 @@ let v8Profile = Profile( args.append("--maglev-future") } + if probability(0.2) && !args.contains("--no-maglev") { + args.append("--maglev-non-eager-inlining") + if probability(0.4) { // TODO: @tacet decrease this probability to max 0.2 + args.append("--max_maglev_inlined_bytecode_size_small=0") + } + } + if probability(0.1) { args.append("--turboshaft-typed-optimizations") } @@ -99,6 +109,9 @@ let v8Profile = Profile( args.append("--turbolev") if probability(0.82) { args.append("--turbolev-future") + if probability(0.3) { // TODO: @tacet change to 0.15 + args.append("--max_inlined_bytecode_size_small=0") + } } } From 8a8bf867d4e652749c1eb4b89999e492d2de2413 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Tue, 4 Nov 2025 14:51:16 +0100 Subject: [PATCH 34/61] [environment] Don't print warning for enum object groups Change-Id: I804f24170903e3588552022b2a403dab27f3f9a4 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8738176 Reviewed-by: Danylo Mocherniuk Auto-Submit: Matthias Liedtke Commit-Queue: Matthias Liedtke Commit-Queue: Danylo Mocherniuk --- Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift | 6 +++--- Sources/Fuzzilli/FuzzIL/TypeSystem.swift | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift b/Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift index 8b9041c7b..17888b9f1 100644 --- a/Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift +++ b/Sources/Fuzzilli/Environment/JavaScriptEnvironment.swift @@ -830,8 +830,8 @@ public class JavaScriptEnvironment: ComponentBase { if let signatures = group.methods[propertyName] { return .unboundFunction(signatures.first, receiver: baseType) } - } else { - // This shouldn't happen, probably forgot to register the object group + } else if !baseType.isEnumerationOrNamedString { + // This shouldn't happen, probably forgot to register the object group. logger.warning("No type information for object group \(groupName) available") } } @@ -845,7 +845,7 @@ public class JavaScriptEnvironment: ComponentBase { if let signatures = group.methods[methodName] { return signatures } - } else { + } else if !baseType.isEnumerationOrNamedString { // This shouldn't happen, probably forgot to register the object group logger.warning("No type information for object group \(groupName) available") } diff --git a/Sources/Fuzzilli/FuzzIL/TypeSystem.swift b/Sources/Fuzzilli/FuzzIL/TypeSystem.swift index c9a56f2d9..be22285c9 100644 --- a/Sources/Fuzzilli/FuzzIL/TypeSystem.swift +++ b/Sources/Fuzzilli/FuzzIL/TypeSystem.swift @@ -493,10 +493,14 @@ public struct ILType: Hashable { return Is(.constructor()) ? ext?.signature : nil } - public var isEnumeration : Bool { + public var isEnumeration: Bool { return Is(.string) && ext != nil && !ext!.properties.isEmpty } + public var isEnumerationOrNamedString: Bool { + return Is(.string) && ext != nil && group != nil + } + public var group: String? { return ext?.group } From aab1873016cb33d505210c94d4e2e059270f47bc Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Wed, 5 Nov 2025 11:02:32 +0100 Subject: [PATCH 35/61] [v8] Move all flags into common profile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a preparation change to share some of that configuration with the V8 Sandbox profile which right now doesn't support any argument randomization. This change only moves the existing flags without any change. Change-Id: I5dc4dd25a00e08aac6ff293cf91c7e9af2286251 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8741376 Auto-Submit: Matthias Liedtke Reviewed-by: Samuel Groß Commit-Queue: Samuel Groß --- .../Profiles/V8CommonProfile.swift | 259 ++++++++++++++++++ Sources/FuzzilliCli/Profiles/V8Profile.swift | 259 +----------------- 2 files changed, 260 insertions(+), 258 deletions(-) diff --git a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift index 9075fcb25..5f57f1afe 100644 --- a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift @@ -650,3 +650,262 @@ public let FastApiCallFuzzer = ProgramTemplate("FastApiCallFuzzer") { b in b.build(n: 10) } + +public func v8ProcessArgs(randomize: Bool) -> [String] { + var args = [ + "--expose-gc", + "--expose-externalize-string", + "--omit-quit", + "--allow-natives-syntax", + "--fuzzing", + "--jit-fuzzing", + "--future", + "--harmony", + "--experimental-fuzzing", + "--js-staging", + "--wasm-staging", + "--wasm-fast-api", + "--expose-fast-api", + "--experimental-wasm-rab-integration", + "--wasm-test-streaming", // WebAssembly.compileStreaming & WebAssembly.instantiateStreaming() + ] + + guard randomize else { return args } + + // + // Existing features that should sometimes be disabled. + // + if probability(0.1) { + args.append("--no-turbofan") + if probability(0.5) { + args.append("--maglev-as-top-tier") + } + } + + if probability(0.1) { + args.append("--no-maglev") + } + + if probability(0.1) { + args.append("--no-sparkplug") + } + + if probability(0.1) { + args.append("--no-short-builtin-calls") + } + + // Disabling Liftoff enables "direct" coverage for the optimizing compiler, though some + // features (like speculative inlining) require a combination of Liftoff and Turbofan. + // Note that this flag only affects WebAssembly. + if probability(0.5) { + args.append("--no-liftoff") + if probability(0.3) { + args.append("--wasm-assert-types") + } + } + + // This greatly helps the fuzzer to decide inlining wasm functions into each other when + // %WasmTierUpFunction() is used as in most cases the call counts will be way too low to + // align with V8's current inlining heuristics (which uses absolute call counts as a + // deciding factor). + if probability(0.5) { + args.append("--wasm-inlining-ignore-call-counts") + } + + // + // Future features that should sometimes be enabled. + // + if probability(0.1) { + args.append("--minor-ms") + } + + // Enable the shared heap. + if probability(0.25) { + // Either use the shared-string-table (needed for JS shared structs) or only allow + // shared strings (needed for shared Wasm objects). + args.append(Bool.random() ? "--shared-string-table" : "--shared-strings") + } + + if probability(0.25) && !args.contains("--no-maglev") { + args.append("--maglev-future") + } + + if probability(0.2) && !args.contains("--no-maglev") { + args.append("--maglev-non-eager-inlining") + if probability(0.4) { // TODO: @tacet decrease this probability to max 0.2 + args.append("--max_maglev_inlined_bytecode_size_small=0") + } + } + + if probability(0.1) { + args.append("--turboshaft-typed-optimizations") + } + + if probability(0.5) { + args.append("--turbolev") + if probability(0.82) { + args.append("--turbolev-future") + if probability(0.3) { // TODO: @tacet change to 0.15 + args.append("--max_inlined_bytecode_size_small=0") + } + } + } + + if probability(0.1) { + args.append("--turboshaft-wasm-in-js-inlining") + } + + if probability(0.1) { + args.append("--harmony-struct") + } + + if probability(0.1) { + args.append("--efficiency-mode") + } + + if probability(0.1) { + args.append("--battery-saver-mode") + } + + if probability(0.1) { + args.append("--stress-scavenger-conservative-object-pinning-random") + } + + if probability(0.1) { + args.append("--precise-object-pinning") + } + + if probability(0.1) { + args.append("--scavenger-chaos-mode") + let threshold = Int.random(in: 0...100) + args.append("--scavenger-chaos-mode-threshold=\(threshold)") + } + + if probability(0.1) { + let stackSize = Int.random(in: 54...863) + args.append("--stack-size=\(stackSize)") + } + + // Temporarily enable the three flags below with high probability to + // stress-test JSPI. + // Lower the probabilities once we have enough coverage. + if (probability(0.5)) { + let stackSwitchingSize = Int.random(in: 1...300) + args.append("--wasm-stack-switching-stack-size=\(stackSwitchingSize)") + } + if (probability(0.5)) { + args.append("--experimental-wasm-growable-stacks") + } + if (probability(0.5)) { + args.append("--stress-wasm-stack-switching") + } + + if probability(0.5) { + args.append("--proto-assign-seq-opt") + } + + // + // Sometimes enable additional verification/stressing logic (which may be fairly expensive). + // + if probability(0.1) { + args.append("--verify-heap") + } + if probability(0.1) { + args.append("--turbo-verify") + } + if probability(0.1) { + args.append("--turbo-verify-allocation") + } + if probability(0.1) { + args.append("--assert-types") + } + if probability(0.1) { + args.append("--turboshaft-assert-types") + } + if probability(0.1) { + args.append("--deopt-every-n-times=\(chooseUniform(from: [100, 250, 500, 1000, 2500, 5000, 10000]))") + } + if probability(0.1) { + args.append("--stress-ic") + } + if probability(0.1) { + args.append("--optimize-on-next-call-optimizes-to-maglev") + } + if probability(0.2) { + args.append("--turboshaft-verify-load-elimination") + } + + // + // A gc-stress session with some fairly expensive flags. + // + if probability(0.1) { + if probability(0.4) { + args.append("--stress-marking=\(Int.random(in: 1...100))") + } + if probability(0.4) { + args.append("--stress-scavenge=\(Int.random(in: 1...100))") + } + if probability(0.5) { + args.append("--stress-flush-code") + args.append("--flush-bytecode") + } + if probability(0.5) { + args.append("--wasm-code-gc") + args.append("--stress-wasm-code-gc") + } + if probability(0.4) { + args.append(chooseUniform( + from: ["--gc-interval=\(Int.random(in: 100...10000))", + "--random-gc-interval=\(Int.random(in: 1000...10000))"])) + } + if probability(0.4) { + args.append("--concurrent-recompilation-queue-length=\(Int.random(in: 4...64))") + args.append("--concurrent-recompilation-delay=\(Int.random(in: 1...500))") + } + if probability(0.6) { + args.append(chooseUniform( + from: ["--stress-compaction", "--stress-compaction-random"])) + } + } + + // + // More exotic configuration changes. + // + if probability(0.05) { + if probability(0.5) { args.append("--stress-gc-during-compilation") } + if probability(0.5) { args.append("--lazy-new-space-shrinking") } + if probability(0.5) { args.append("--stress-wasm-memory-moving") } + if probability(0.5) { args.append("--stress-background-compile") } + if probability(0.5) { args.append("--parallel-compile-tasks-for-lazy") } + if probability(0.5) { args.append("--parallel-compile-tasks-for-eager-toplevel") } + + args.append(probability(0.5) ? "--always-sparkplug" : "--no-always-sparkplug") + args.append(probability(0.5) ? "--always-osr" : "--no-always-osr") + args.append(probability(0.5) ? "--concurrent-osr" : "--no-concurrent-osr") + args.append(probability(0.5) ? "--force-slow-path" : "--no-force-slow-path") + + // Maglev related flags + args.append(probability(0.5) ? "--maglev-inline-api-calls" : "--no-maglev-inline-api-calls") + + // Compiler related flags + args.append(probability(0.5) ? "--turbo-move-optimization" : "--no-turbo-move-optimization") + args.append(probability(0.5) ? "--turbo-jt" : "--no-turbo-jt") + args.append(probability(0.5) ? "--turbo-loop-peeling" : "--no-turbo-loop-peeling") + args.append(probability(0.5) ? "--turbo-loop-variable" : "--no-turbo-loop-variable") + args.append(probability(0.5) ? "--turbo-loop-rotation" : "--no-turbo-loop-rotation") + args.append(probability(0.5) ? "--turbo-cf-optimization" : "--no-turbo-cf-optimization") + args.append(probability(0.5) ? "--turbo-escape" : "--no-turbo-escape") + args.append(probability(0.5) ? "--turbo-allocation-folding" : "--no-turbo-allocation-folding") + args.append(probability(0.5) ? "--turbo-instruction-scheduling" : "--no-turbo-instruction-scheduling") + args.append(probability(0.5) ? "--turbo-stress-instruction-scheduling" : "--no-turbo-stress-instruction-scheduling") + args.append(probability(0.5) ? "--turbo-store-elimination" : "--no-turbo-store-elimination") + args.append(probability(0.5) ? "--turbo-rewrite-far-jumps" : "--no-turbo-rewrite-far-jumps") + args.append(probability(0.5) ? "--turbo-optimize-apply" : "--no-turbo-optimize-apply") + args.append(chooseUniform(from: ["--no-enable-sse3", "--no-enable-ssse3", "--no-enable-sse4-1", "--no-enable-sse4-2", "--no-enable-avx", "--no-enable-avx2"])) + args.append(probability(0.5) ? "--turbo-load-elimination" : "--no-turbo-load-elimination") + args.append(probability(0.5) ? "--turbo-inlining" : "--no-turbo-inlining") + args.append(probability(0.5) ? "--turbo-splitting" : "--no-turbo-splitting") + } + + return args +} diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 8b973cdc6..6a933a709 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -15,264 +15,7 @@ import Fuzzilli let v8Profile = Profile( - processArgs: { randomize in - var args = [ - "--expose-gc", - "--expose-externalize-string", - "--omit-quit", - "--allow-natives-syntax", - "--fuzzing", - "--jit-fuzzing", - "--future", - "--harmony", - "--experimental-fuzzing", - "--js-staging", - "--wasm-staging", - "--wasm-fast-api", - "--expose-fast-api", - "--experimental-wasm-rab-integration", - "--wasm-test-streaming", // WebAssembly.compileStreaming & WebAssembly.instantiateStreaming() - ] - - guard randomize else { return args } - - // - // Existing features that should sometimes be disabled. - // - if probability(0.1) { - args.append("--no-turbofan") - if probability(0.5) { - args.append("--maglev-as-top-tier") - } - } - - if probability(0.1) { - args.append("--no-maglev") - } - - if probability(0.1) { - args.append("--no-sparkplug") - } - - if probability(0.1) { - args.append("--no-short-builtin-calls") - } - - // Disabling Liftoff enables "direct" coverage for the optimizing compiler, though some - // features (like speculative inlining) require a combination of Liftoff and Turbofan. - // Note that this flag only affects WebAssembly. - if probability(0.5) { - args.append("--no-liftoff") - if probability(0.3) { - args.append("--wasm-assert-types") - } - } - - // This greatly helps the fuzzer to decide inlining wasm functions into each other when - // %WasmTierUpFunction() is used as in most cases the call counts will be way too low to - // align with V8's current inlining heuristics (which uses absolute call counts as a - // deciding factor). - if probability(0.5) { - args.append("--wasm-inlining-ignore-call-counts") - } - - // - // Future features that should sometimes be enabled. - // - if probability(0.1) { - args.append("--minor-ms") - } - - // Enable the shared heap. - if probability(0.25) { - // Either use the shared-string-table (needed for JS shared structs) or only allow - // shared strings (needed for shared Wasm objects). - args.append(Bool.random() ? "--shared-string-table" : "--shared-strings") - } - - if probability(0.25) && !args.contains("--no-maglev") { - args.append("--maglev-future") - } - - if probability(0.2) && !args.contains("--no-maglev") { - args.append("--maglev-non-eager-inlining") - if probability(0.4) { // TODO: @tacet decrease this probability to max 0.2 - args.append("--max_maglev_inlined_bytecode_size_small=0") - } - } - - if probability(0.1) { - args.append("--turboshaft-typed-optimizations") - } - - if probability(0.5) { - args.append("--turbolev") - if probability(0.82) { - args.append("--turbolev-future") - if probability(0.3) { // TODO: @tacet change to 0.15 - args.append("--max_inlined_bytecode_size_small=0") - } - } - } - - if probability(0.1) { - args.append("--turboshaft-wasm-in-js-inlining") - } - - if probability(0.1) { - args.append("--harmony-struct") - } - - if probability(0.1) { - args.append("--efficiency-mode") - } - - if probability(0.1) { - args.append("--battery-saver-mode") - } - - if probability(0.1) { - args.append("--stress-scavenger-conservative-object-pinning-random") - } - - if probability(0.1) { - args.append("--precise-object-pinning") - } - - if probability(0.1) { - args.append("--scavenger-chaos-mode") - let threshold = Int.random(in: 0...100) - args.append("--scavenger-chaos-mode-threshold=\(threshold)") - } - - if probability(0.1) { - let stackSize = Int.random(in: 54...863) - args.append("--stack-size=\(stackSize)") - } - - // Temporarily enable the three flags below with high probability to - // stress-test JSPI. - // Lower the probabilities once we have enough coverage. - if (probability(0.5)) { - let stackSwitchingSize = Int.random(in: 1...300) - args.append("--wasm-stack-switching-stack-size=\(stackSwitchingSize)") - } - if (probability(0.5)) { - args.append("--experimental-wasm-growable-stacks") - } - if (probability(0.5)) { - args.append("--stress-wasm-stack-switching") - } - - if probability(0.5) { - args.append("--proto-assign-seq-opt") - } - - // - // Sometimes enable additional verification/stressing logic (which may be fairly expensive). - // - if probability(0.1) { - args.append("--verify-heap") - } - if probability(0.1) { - args.append("--turbo-verify") - } - if probability(0.1) { - args.append("--turbo-verify-allocation") - } - if probability(0.1) { - args.append("--assert-types") - } - if probability(0.1) { - args.append("--turboshaft-assert-types") - } - if probability(0.1) { - args.append("--deopt-every-n-times=\(chooseUniform(from: [100, 250, 500, 1000, 2500, 5000, 10000]))") - } - if probability(0.1) { - args.append("--stress-ic") - } - if probability(0.1) { - args.append("--optimize-on-next-call-optimizes-to-maglev") - } - if probability(0.2) { - args.append("--turboshaft-verify-load-elimination") - } - - // - // A gc-stress session with some fairly expensive flags. - // - if probability(0.1) { - if probability(0.4) { - args.append("--stress-marking=\(Int.random(in: 1...100))") - } - if probability(0.4) { - args.append("--stress-scavenge=\(Int.random(in: 1...100))") - } - if probability(0.5) { - args.append("--stress-flush-code") - args.append("--flush-bytecode") - } - if probability(0.5) { - args.append("--wasm-code-gc") - args.append("--stress-wasm-code-gc") - } - if probability(0.4) { - args.append(chooseUniform( - from: ["--gc-interval=\(Int.random(in: 100...10000))", - "--random-gc-interval=\(Int.random(in: 1000...10000))"])) - } - if probability(0.4) { - args.append("--concurrent-recompilation-queue-length=\(Int.random(in: 4...64))") - args.append("--concurrent-recompilation-delay=\(Int.random(in: 1...500))") - } - if probability(0.6) { - args.append(chooseUniform( - from: ["--stress-compaction", "--stress-compaction-random"])) - } - } - - // - // More exotic configuration changes. - // - if probability(0.05) { - if probability(0.5) { args.append("--stress-gc-during-compilation") } - if probability(0.5) { args.append("--lazy-new-space-shrinking") } - if probability(0.5) { args.append("--stress-wasm-memory-moving") } - if probability(0.5) { args.append("--stress-background-compile") } - if probability(0.5) { args.append("--parallel-compile-tasks-for-lazy") } - if probability(0.5) { args.append("--parallel-compile-tasks-for-eager-toplevel") } - - args.append(probability(0.5) ? "--always-sparkplug" : "--no-always-sparkplug") - args.append(probability(0.5) ? "--always-osr" : "--no-always-osr") - args.append(probability(0.5) ? "--concurrent-osr" : "--no-concurrent-osr") - args.append(probability(0.5) ? "--force-slow-path" : "--no-force-slow-path") - - // Maglev related flags - args.append(probability(0.5) ? "--maglev-inline-api-calls" : "--no-maglev-inline-api-calls") - - // Compiler related flags - args.append(probability(0.5) ? "--turbo-move-optimization" : "--no-turbo-move-optimization") - args.append(probability(0.5) ? "--turbo-jt" : "--no-turbo-jt") - args.append(probability(0.5) ? "--turbo-loop-peeling" : "--no-turbo-loop-peeling") - args.append(probability(0.5) ? "--turbo-loop-variable" : "--no-turbo-loop-variable") - args.append(probability(0.5) ? "--turbo-loop-rotation" : "--no-turbo-loop-rotation") - args.append(probability(0.5) ? "--turbo-cf-optimization" : "--no-turbo-cf-optimization") - args.append(probability(0.5) ? "--turbo-escape" : "--no-turbo-escape") - args.append(probability(0.5) ? "--turbo-allocation-folding" : "--no-turbo-allocation-folding") - args.append(probability(0.5) ? "--turbo-instruction-scheduling" : "--no-turbo-instruction-scheduling") - args.append(probability(0.5) ? "--turbo-stress-instruction-scheduling" : "--no-turbo-stress-instruction-scheduling") - args.append(probability(0.5) ? "--turbo-store-elimination" : "--no-turbo-store-elimination") - args.append(probability(0.5) ? "--turbo-rewrite-far-jumps" : "--no-turbo-rewrite-far-jumps") - args.append(probability(0.5) ? "--turbo-optimize-apply" : "--no-turbo-optimize-apply") - args.append(chooseUniform(from: ["--no-enable-sse3", "--no-enable-ssse3", "--no-enable-sse4-1", "--no-enable-sse4-2", "--no-enable-avx", "--no-enable-avx2"])) - args.append(probability(0.5) ? "--turbo-load-elimination" : "--no-turbo-load-elimination") - args.append(probability(0.5) ? "--turbo-inlining" : "--no-turbo-inlining") - args.append(probability(0.5) ? "--turbo-splitting" : "--no-turbo-splitting") - } - - return args - }, + processArgs: v8ProcessArgs, // We typically fuzz without any sanitizer instrumentation, but if any sanitizers are active, "abort_on_error=1" must probably be set so that sanitizer errors can be detected. processEnv: [:], From 5966bb0aac67902a71bc22c302eb96082ad44fcc Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Wed, 5 Nov 2025 11:15:08 +0100 Subject: [PATCH 36/61] [v8] Allow argument randomization for V8SandboxProfile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes the V8SandboxProfile more powerful by reusing the argument randomization of the regular V8Profile. It also adds more arguments to the default set: --expose-externalize-string: seems to be unused, doesn't hurt --wasm-test-streaming: Needed for d8 streaming APIs Staged features: --future --harmony --experimental-fuzzing --js-staging --wasm-staging --experimental-wasm-rab-integration Fast API: --wasm-fast-api --expose-fast-api Change-Id: Ied92d69ad21b5ef1de4fab90fb2c07b7023ea078 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8741396 Reviewed-by: Samuel Groß Commit-Queue: Matthias Liedtke --- .../Profiles/V8CommonProfile.swift | 44 +++++++++++-------- Sources/FuzzilliCli/Profiles/V8Profile.swift | 4 +- .../Profiles/V8SandboxProfile.swift | 13 +----- 3 files changed, 29 insertions(+), 32 deletions(-) diff --git a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift index 5f57f1afe..f35a91770 100644 --- a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift @@ -651,7 +651,10 @@ public let FastApiCallFuzzer = ProgramTemplate("FastApiCallFuzzer") { b in b.build(n: 10) } -public func v8ProcessArgs(randomize: Bool) -> [String] { +// Configure V8 invocation arguments. `forSandbox` is used by the V8SandboxProfile. As the sandbox +// fuzzer does not crash on regular assertions, most validation flags do not make sense in that +// configuraiton. +public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { var args = [ "--expose-gc", "--expose-externalize-string", @@ -699,7 +702,7 @@ public func v8ProcessArgs(randomize: Bool) -> [String] { // Note that this flag only affects WebAssembly. if probability(0.5) { args.append("--no-liftoff") - if probability(0.3) { + if probability(0.3) && !forSandbox { args.append("--wasm-assert-types") } } @@ -807,21 +810,27 @@ public func v8ProcessArgs(randomize: Bool) -> [String] { // // Sometimes enable additional verification/stressing logic (which may be fairly expensive). // - if probability(0.1) { - args.append("--verify-heap") - } - if probability(0.1) { - args.append("--turbo-verify") - } - if probability(0.1) { - args.append("--turbo-verify-allocation") - } - if probability(0.1) { - args.append("--assert-types") - } - if probability(0.1) { - args.append("--turboshaft-assert-types") + if !forSandbox { + if probability(0.1) { + args.append("--verify-heap") + } + if probability(0.1) { + args.append("--turbo-verify") + } + if probability(0.1) { + args.append("--turbo-verify-allocation") + } + if probability(0.1) { + args.append("--assert-types") + } + if probability(0.1) { + args.append("--turboshaft-assert-types") + } + if probability(0.2) { + args.append("--turboshaft-verify-load-elimination") + } } + if probability(0.1) { args.append("--deopt-every-n-times=\(chooseUniform(from: [100, 250, 500, 1000, 2500, 5000, 10000]))") } @@ -831,9 +840,6 @@ public func v8ProcessArgs(randomize: Bool) -> [String] { if probability(0.1) { args.append("--optimize-on-next-call-optimizes-to-maglev") } - if probability(0.2) { - args.append("--turboshaft-verify-load-elimination") - } // // A gc-stress session with some fairly expensive flags. diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 6a933a709..b239caf55 100644 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -15,7 +15,9 @@ import Fuzzilli let v8Profile = Profile( - processArgs: v8ProcessArgs, + processArgs: {randomize in + v8ProcessArgs(randomize: randomize, forSandbox: false) + }, // We typically fuzz without any sanitizer instrumentation, but if any sanitizers are active, "abort_on_error=1" must probably be set so that sanitizer errors can be detected. processEnv: [:], diff --git a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift index ba5fc1935..70939b9da 100644 --- a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift @@ -53,18 +53,7 @@ fileprivate struct SandboxFuzzingPostProcessor: FuzzingPostProcessor { let v8SandboxProfile = Profile( processArgs: { randomize in - var args = [ - "--expose-gc", - "--omit-quit", - "--allow-natives-syntax", - "--fuzzing", - "--jit-fuzzing", - "--sandbox-fuzzing", - // This is so that we get an ASan splat directly in the reproducer file. - "--disable-in-process-stack-traces" - ] - - return args + v8ProcessArgs(randomize: randomize, forSandbox: true) }, // ASan options. From 731e011d0f4627bbf5480590ec082f410d2f03da Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Wed, 5 Nov 2025 11:21:50 +0100 Subject: [PATCH 37/61] [v8] Remove Wasm RAB integration This was staged via https://crrev.com/c/7023051 and is therefore included in --wasm-staging. Change-Id: I06cefd5d93374c4535024c88dba5bead38c13200 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8741397 Reviewed-by: Deepti Gandluri Commit-Queue: Danylo Mocherniuk --- Sources/FuzzilliCli/Profiles/V8CommonProfile.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift index f35a91770..a141e59b4 100644 --- a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift @@ -669,7 +669,6 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { "--wasm-staging", "--wasm-fast-api", "--expose-fast-api", - "--experimental-wasm-rab-integration", "--wasm-test-streaming", // WebAssembly.compileStreaming & WebAssembly.instantiateStreaming() ] From 6c37c6e3b73c14c9f4f26cacc412712b33c3a47d Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Thu, 6 Nov 2025 10:35:49 +0100 Subject: [PATCH 38/61] [v8] Fix Sandbox fuzzer I accidentally dropped the --sandbox-fuzzing flag in commit 5966bb0aac67902a71bc22c302eb96082ad44fcc. Change-Id: I753bf5ba49dd422b0955dc1beaf8ce176e878a0d Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8741378 Auto-Submit: Matthias Liedtke Reviewed-by: Danylo Mocherniuk Commit-Queue: Danylo Mocherniuk --- Sources/FuzzilliCli/Profiles/V8CommonProfile.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift index a141e59b4..b1d263092 100644 --- a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift @@ -671,6 +671,11 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { "--expose-fast-api", "--wasm-test-streaming", // WebAssembly.compileStreaming & WebAssembly.instantiateStreaming() ] + if forSandbox { + args.append("--sandbox-fuzzing") + // This is so that we get an ASan splat directly in the reproducer file. + args.append("--disable-in-process-stack-traces") + } guard randomize else { return args } From 1aef794d9440913f2c24ae831414b84917bcf9ca Mon Sep 17 00:00:00 2001 From: Dominik Klemba Date: Wed, 5 Nov 2025 23:58:32 +0000 Subject: [PATCH 39/61] Add support for rest parameters in functions This change adds a possibility of generation rest parameters. The logic in 'randomParameters' was updated to generate a rest parameter with 20% chance whenever possible The chance is an optional function argument, so we can modify that value in tests (and in the code, if necessary). Bug: 458042811, 456162872 Change-Id: Idaf6446cfd248878134e7a449746260e44cfb74b Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8741997 Reviewed-by: Matthias Liedtke Reviewed-by: Pawel Krawczyk Commit-Queue: Dominik Klemba Auto-Submit: Dominik Klemba --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 24 +++++++++++---- Tests/FuzzilliTests/ProgramBuilderTest.swift | 31 +++++++++++++++----- 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index a9490b307..940b8d4af 100644 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -566,7 +566,7 @@ public class ProgramBuilder { // // This will attempt to find a parameter types for which at least a few variables of a compatible types are // currently available to (potentially) later be used as arguments for calling the generated subroutine. - public func randomParameters(n wantedNumberOfParameters: Int? = nil) -> SubroutineDescriptor { + public func randomParameters(n wantedNumberOfParameters: Int? = nil, withRestParameterProbability restProbability: Double = 0.2) -> SubroutineDescriptor { assert(probabilityOfUsingAnythingAsParameterTypeIfAvoidable >= 0 && probabilityOfUsingAnythingAsParameterTypeIfAvoidable <= 1) // If the caller didn't specify how many parameters to generated, find an appropriate @@ -574,7 +574,7 @@ public class ProgramBuilder { // therefore later be used as arguments for calling the new function). let n: Int if let requestedN = wantedNumberOfParameters { - assert(requestedN > 0) + assert(requestedN >= 0) n = requestedN } else { switch numberOfVisibleVariables { @@ -603,15 +603,27 @@ public class ProgramBuilder { } var params = ParameterList() - for _ in 0.. 0 && probability(restProbability) + let numPlainParams = generateRestParameter ? n - 1 : n + + func randomParamType() -> ILType { if probability(probabilityOfUsingAnythingAsParameterTypeIfAvoidable) { - params.append(.jsAnything) + return .jsAnything } else { - params.append(.plain(chooseUniform(from: candidates))) + return chooseUniform(from: candidates) } } - // TODO: also generate rest parameters and maybe even optional ones sometimes? + for _ in 0.. Date: Fri, 7 Nov 2025 11:12:21 +0100 Subject: [PATCH 40/61] [v8] Conditionally enable more maglev flags Bug: 455553031 Change-Id: Iaac109353f44c24bdc3c12c7a62c472c12000646 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8747997 Auto-Submit: Matthias Liedtke Commit-Queue: Dominik Klemba Reviewed-by: Darius Mercadier Reviewed-by: Victor Gomes Reviewed-by: Dominik Klemba --- .../Profiles/V8CommonProfile.swift | 83 ++++++++++++------- 1 file changed, 53 insertions(+), 30 deletions(-) diff --git a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift index b1d263092..cdd950150 100644 --- a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift @@ -733,14 +733,21 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { args.append(Bool.random() ? "--shared-string-table" : "--shared-strings") } - if probability(0.25) && !args.contains("--no-maglev") { - args.append("--maglev-future") - } - - if probability(0.2) && !args.contains("--no-maglev") { - args.append("--maglev-non-eager-inlining") - if probability(0.4) { // TODO: @tacet decrease this probability to max 0.2 - args.append("--max_maglev_inlined_bytecode_size_small=0") + if !args.contains("--no-maglev") { + if probability(0.25) { + args.append("--maglev-future") + } + if probability(0.1) { + args.append("--maglev-assert") + } + if probability(0.05) { + args.append("--maglev-assert-stack-size") + } + if probability(0.2) { + args.append("--maglev-non-eager-inlining") + if probability(0.4) { // TODO: @tacet decrease this probability to max 0.2 + args.append("--max-maglev-inlined-bytecode-size-small=0") + } } } @@ -753,7 +760,7 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { if probability(0.82) { args.append("--turbolev-future") if probability(0.3) { // TODO: @tacet change to 0.15 - args.append("--max_inlined_bytecode_size_small=0") + args.append("--max-inlined-bytecode-size-small=0") } } } @@ -882,6 +889,11 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { // More exotic configuration changes. // if probability(0.05) { + func chooseBooleanFlag(_ flag: String) { + assert(!flag.starts(with: "--")) + args.append(probability(0.5) ? "--\(flag)" : "--no-\(flag)") + } + if probability(0.5) { args.append("--stress-gc-during-compilation") } if probability(0.5) { args.append("--lazy-new-space-shrinking") } if probability(0.5) { args.append("--stress-wasm-memory-moving") } @@ -889,32 +901,43 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { if probability(0.5) { args.append("--parallel-compile-tasks-for-lazy") } if probability(0.5) { args.append("--parallel-compile-tasks-for-eager-toplevel") } - args.append(probability(0.5) ? "--always-sparkplug" : "--no-always-sparkplug") - args.append(probability(0.5) ? "--always-osr" : "--no-always-osr") - args.append(probability(0.5) ? "--concurrent-osr" : "--no-concurrent-osr") - args.append(probability(0.5) ? "--force-slow-path" : "--no-force-slow-path") + chooseBooleanFlag("always-sparkplug") + chooseBooleanFlag("always-osr") + chooseBooleanFlag("concurrent-osr") + chooseBooleanFlag("force-slow-path") // Maglev related flags - args.append(probability(0.5) ? "--maglev-inline-api-calls" : "--no-maglev-inline-api-calls") + chooseBooleanFlag("maglev-inline-api-calls") + chooseBooleanFlag("maglev-inlining") + chooseBooleanFlag("maglev-loop-peeling") + chooseBooleanFlag("maglev-optimistic-peeled-loops") + chooseBooleanFlag("maglev-pretenure-store-values") + chooseBooleanFlag("maglev-poly-calls") + chooseBooleanFlag("maglev-truncation") + chooseBooleanFlag("maglev-cse") + chooseBooleanFlag("maglev-range-analysis") + chooseBooleanFlag("maglev-escape-analysis") + chooseBooleanFlag("maglev-licm") + chooseBooleanFlag("maglev-untagged-phis") // Compiler related flags - args.append(probability(0.5) ? "--turbo-move-optimization" : "--no-turbo-move-optimization") - args.append(probability(0.5) ? "--turbo-jt" : "--no-turbo-jt") - args.append(probability(0.5) ? "--turbo-loop-peeling" : "--no-turbo-loop-peeling") - args.append(probability(0.5) ? "--turbo-loop-variable" : "--no-turbo-loop-variable") - args.append(probability(0.5) ? "--turbo-loop-rotation" : "--no-turbo-loop-rotation") - args.append(probability(0.5) ? "--turbo-cf-optimization" : "--no-turbo-cf-optimization") - args.append(probability(0.5) ? "--turbo-escape" : "--no-turbo-escape") - args.append(probability(0.5) ? "--turbo-allocation-folding" : "--no-turbo-allocation-folding") - args.append(probability(0.5) ? "--turbo-instruction-scheduling" : "--no-turbo-instruction-scheduling") - args.append(probability(0.5) ? "--turbo-stress-instruction-scheduling" : "--no-turbo-stress-instruction-scheduling") - args.append(probability(0.5) ? "--turbo-store-elimination" : "--no-turbo-store-elimination") - args.append(probability(0.5) ? "--turbo-rewrite-far-jumps" : "--no-turbo-rewrite-far-jumps") - args.append(probability(0.5) ? "--turbo-optimize-apply" : "--no-turbo-optimize-apply") + chooseBooleanFlag("turbo-move-optimization") + chooseBooleanFlag("turbo-jt") // jump threading + chooseBooleanFlag("turbo-loop-peeling") + chooseBooleanFlag("turbo-loop-variable") + chooseBooleanFlag("turbo-loop-rotation") + chooseBooleanFlag("turbo-cf-optimization") + chooseBooleanFlag("turbo-escape") + chooseBooleanFlag("turbo-allocation-folding") + chooseBooleanFlag("turbo-instruction-scheduling") + chooseBooleanFlag("turbo-stress-instruction-scheduling") + chooseBooleanFlag("turbo-store-elimination") + chooseBooleanFlag("turbo-rewrite-far-jumps") + chooseBooleanFlag("turbo-optimize-apply") + chooseBooleanFlag("turbo-load-elimination") + chooseBooleanFlag("turbo-inlining") + chooseBooleanFlag("turbo-splitting") args.append(chooseUniform(from: ["--no-enable-sse3", "--no-enable-ssse3", "--no-enable-sse4-1", "--no-enable-sse4-2", "--no-enable-avx", "--no-enable-avx2"])) - args.append(probability(0.5) ? "--turbo-load-elimination" : "--no-turbo-load-elimination") - args.append(probability(0.5) ? "--turbo-inlining" : "--no-turbo-inlining") - args.append(probability(0.5) ? "--turbo-splitting" : "--no-turbo-splitting") } return args From 80604fc0024f4230e971c2769c1953387702836a Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Fri, 7 Nov 2025 12:36:49 +0100 Subject: [PATCH 41/61] [v8] Conditionally enable more Turboshaft and Wasm flags Change-Id: I86f9df4c97ecc171d8bc4d3ef506f19508923aa1 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8748176 Reviewed-by: Darius Mercadier Reviewed-by: Dominik Klemba Commit-Queue: Dominik Klemba --- .../Profiles/V8CommonProfile.swift | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift index cdd950150..4c83c2b31 100644 --- a/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8CommonProfile.swift @@ -840,6 +840,9 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { if probability(0.2) { args.append("--turboshaft-verify-load-elimination") } + if probability(0.1) { + args.append("--turboshaft-verify-reductions") + } } if probability(0.1) { @@ -870,6 +873,9 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { args.append("--wasm-code-gc") args.append("--stress-wasm-code-gc") } + if probability(0.5) { + args.append("--stress-wasm-memory-moving") + } if probability(0.4) { args.append(chooseUniform( from: ["--gc-interval=\(Int.random(in: 100...10000))", @@ -938,6 +944,24 @@ public func v8ProcessArgs(randomize: Bool, forSandbox: Bool) -> [String] { chooseBooleanFlag("turbo-inlining") chooseBooleanFlag("turbo-splitting") args.append(chooseUniform(from: ["--no-enable-sse3", "--no-enable-ssse3", "--no-enable-sse4-1", "--no-enable-sse4-2", "--no-enable-avx", "--no-enable-avx2"])) + + chooseBooleanFlag("turboshaft-loop-unrolling") + chooseBooleanFlag("turboshaft-load-elimination") + chooseBooleanFlag("turboshaft-string-concat-escape-analysis") + + // Wasm related flags + chooseBooleanFlag("wasm-loop-peeling") + chooseBooleanFlag("turboshaft-wasm-load-elimination") + chooseBooleanFlag("wasm-loop-unrolling") + chooseBooleanFlag("wasm-inlining") + chooseBooleanFlag("wasm-opt") + chooseBooleanFlag("wasm-deopt") + chooseBooleanFlag("wasm-enforce-bounds-checks") + chooseBooleanFlag("wasm-math-intrinsics") + chooseBooleanFlag("wasm-bulkmem-inlining") + chooseBooleanFlag("wasm-lazy-compilation") + chooseBooleanFlag("wasm-lazy-validation") + chooseBooleanFlag("wasm-simd-ssse3-codegen") } return args From 1d1e48b0f0445152cbfbf25e1fdc49a335c7796d Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Fri, 7 Nov 2025 12:43:36 +0100 Subject: [PATCH 42/61] [v8] Add some more code generators to the sandbox profile Change-Id: I571c86907f5414fbfd552016ba6aa46c19ae01eb Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8748376 Reviewed-by: Dominik Klemba Commit-Queue: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift index 70939b9da..91ff6d8ea 100644 --- a/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8SandboxProfile.swift @@ -472,6 +472,10 @@ let v8SandboxProfile = Profile( (ForceTurboFanCompilationGenerator, 5), (ForceMaglevCompilationGenerator, 5), (V8GcGenerator, 10), + (WasmStructGenerator, 5), + (WasmArrayGenerator, 5), + (SharedObjectGenerator, 5), + (PretenureAllocationSiteGenerator, 5), ], additionalProgramTemplates: WeightedList([ From b1e70d42aeb0f2cf9899afee03bc576e8a95306e Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Tue, 7 Oct 2025 16:04:31 +0200 Subject: [PATCH 43/61] Add minimal presubmit script Bug: 449893303 Change-Id: I2621ec4f20fa4fdec65c6aba9f1fb468b363fcde Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8643956 Reviewed-by: Pawel Krawczyk Reviewed-by: Michael Achenbach Commit-Queue: Matthias Liedtke Auto-Submit: Matthias Liedtke --- .github/workflows/swift.yml | 7 ++++++ Tools/presubmit.py | 49 +++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 Tools/presubmit.py diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index e796bff07..4cd3e1bd2 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -43,6 +43,13 @@ jobs: - uses: actions/checkout@v2 - name: Build run: swift build -c ${{ matrix.kind }} -v + - name: Install protobuf + # Install protoc so the presubmit can also validate the generated *.pb.swift files. + if: ${{ matrix.os == 'ubuntu-latest' && matrix.kind == 'debug' }} + run: sudo apt install -y protobuf-compiler + - name: Run presubmit checks + if: ${{ matrix.os == 'ubuntu-latest' && matrix.kind == 'debug' }} + run: python3 Tools/presubmit.py - name: Run tests with Node.js run: swift test -c ${{ matrix.kind }} -v - name: Install jsvu diff --git a/Tools/presubmit.py b/Tools/presubmit.py new file mode 100644 index 000000000..2fd903e52 --- /dev/null +++ b/Tools/presubmit.py @@ -0,0 +1,49 @@ +import os +import shutil +import subprocess + +KNOWN_PROTO_FILES = [ + "program.proto", + "operations.proto", + "sync.proto", + "ast.proto" +] + +def check_git_clean(): + """Check that the git repository does not have any uncommitted changes.""" + result = subprocess.run(["git", "status", "--porcelain", "--untracked-files=no"], capture_output=True, check=True) + assert result.stdout.decode().strip() == "", f"Unexpected modified files: {result.stdout.decode()}" + +def check_proto(): + """Check that program.proto is up-to-date.""" + print("Checking generated protobuf files...") + proto_dir = "Sources/Fuzzilli/Protobuf" + subprocess.run(["python3", "./gen_programproto.py"], cwd=proto_dir, check=True) + # gen_programproto.py should be a no-op. + check_git_clean() + + if not shutil.which("protoc"): + print("Skipping protobuf validation as protoc is not available.") + return + + swift_protobuf_path = os.getcwd() + "/.build/checkouts/swift-protobuf" + assert os.path.exists(swift_protobuf_path), \ + "The presubmit requires a swift-protobuf checkout, e.g. via \"swift build\"" + # Build swift-protobuf (for simplicity reuse the fetched repository from the swift-protobuf library). + # Use a debug build as running it is very quick while building it with reelase might be slow. + subprocess.run(["swift", "build", "-c", "debug"], cwd=swift_protobuf_path, check=True) + env = os.environ.copy() + env["PATH"] = f"{swift_protobuf_path}/.build/debug:" + env["PATH"] + cmd = ["protoc", "--swift_opt=Visibility=Public", "--swift_out=."] + KNOWN_PROTO_FILES + subprocess.run(cmd, cwd=proto_dir, check=True, env=env) + # Regenerating the protobuf files should be a no-op. + check_git_clean() + +def main(): + check_git_clean() + check_proto() + # TODO(mliedtke): Ensure formatting delta is zero once we enable automated formatting. + + +if __name__ == '__main__': + main() From a57629e81c4b29d2ba6c078412181ca7c3af0411 Mon Sep 17 00:00:00 2001 From: Pawel Krawczyk Date: Thu, 9 Oct 2025 10:49:16 +0000 Subject: [PATCH 44/61] Add support for table.init and table.copy instructions. Bug: 427115604 Change-Id: I0a79b5dc133a09c1ec84b78b966bc6c27d9aa3f2 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8643536 Auto-Submit: Pawel Krawczyk Commit-Queue: Matthias Liedtke Reviewed-by: Matthias Liedtke --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 29 +- .../Fuzzilli/CodeGen/WasmCodeGenerators.swift | 12 +- Sources/Fuzzilli/FuzzIL/JSTyper.swift | 5 +- Sources/Fuzzilli/FuzzIL/WasmOperations.swift | 2 +- Sources/Fuzzilli/Protobuf/program.pb.swift | 1374 ++++++++--------- Sources/Fuzzilli/Protobuf/program.proto | 592 +++---- Tests/FuzzilliTests/WasmTests.swift | 100 +- 7 files changed, 1106 insertions(+), 1008 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index e8990e253..d6cf99689 100755 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -3823,17 +3823,20 @@ public class ProgramBuilder { } public func wasmTableInit(elementSegment: Variable, table: Variable, tableOffset: Variable, elementSegmentOffset: Variable, nrOfElementsToUpdate: Variable) { - // TODO: b/427115604 - assert that table.elemType IS_SUBTYPE_OF elementSegment.elemType (depending on refactor outcome). + let elementSegmentType = ILType.wasmFuncRef + let tableElemType = b.type(of: table).wasmTableType!.elementType + assert(elementSegmentType.Is(tableElemType)) + let addrType = b.type(of: table).wasmTableType!.isTable64 ? ILType.wasmi64 : ILType.wasmi32 b.emit(WasmTableInit(), withInputs: [elementSegment, table, tableOffset, elementSegmentOffset, nrOfElementsToUpdate], - types: [.wasmElementSegment(), .object(ofGroup: "WasmTable"), addrType, addrType, addrType]) + types: [.wasmElementSegment(), .object(ofGroup: "WasmTable"), addrType, .wasmi32, .wasmi32]) } public func wasmTableCopy(dstTable: Variable, srcTable: Variable, dstOffset: Variable, srcOffset: Variable, count: Variable) { - // TODO: b/427115604 - assert that srcTable.elemType IS_SUBTYPE_OF dstTable.elemType (depending on refactor outcome). let dstTableType = b.type(of: dstTable).wasmTableType! let srcTableType = b.type(of: srcTable).wasmTableType! assert(dstTableType.isTable64 == srcTableType.isTable64) + assert(srcTableType.elementType.Is(dstTableType.elementType)) let addrType = dstTableType.isTable64 ? ILType.wasmi64 : ILType.wasmi32 b.emit(WasmTableCopy(), withInputs: [dstTable, srcTable, dstOffset, srcOffset, count], @@ -4354,21 +4357,27 @@ public class ProgramBuilder { @discardableResult public func addTable(elementType: ILType, minSize: Int, maxSize: Int? = nil, definedEntries: [WasmTableType.IndexInTableAndWasmSignature] = [], definedEntryValues: [Variable] = [], isTable64: Bool) -> Variable { - let inputTypes = if elementType == .wasmFuncRef { - Array(repeating: .wasmFunctionDef() | .function(), count: definedEntries.count) - } else { - [ILType]() - } + let inputTypes = Array(repeating: getEntryTypeForTable(elementType: elementType), count: definedEntries.count) return b.emit(WasmDefineTable(elementType: elementType, limits: Limits(min: minSize, max: maxSize), definedEntries: definedEntries, isTable64: isTable64), withInputs: definedEntryValues, types: inputTypes).output } @discardableResult - public func addElementSegment(elementsType: ILType, elements: [Variable]) -> Variable { - let inputTypes = Array(repeating: elementsType, count: elements.count) + public func addElementSegment(elements: [Variable]) -> Variable { + let inputTypes = Array(repeating: getEntryTypeForTable(elementType: ILType.wasmFuncRef), count: elements.count) return b.emit(WasmDefineElementSegment(size: UInt32(elements.count)), withInputs: elements, types: inputTypes).output } + public func getEntryTypeForTable(elementType: ILType) -> ILType { + switch elementType { + case .wasmFuncRef: + return .wasmFunctionDef() | .function() + default: + return .object() + } + } + + // This result can be ignored right now, as we can only define one memory per module // Also this should be tracked like a global / table. @discardableResult diff --git a/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift b/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift index 685cb0c0f..865b94a7a 100755 --- a/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/WasmCodeGenerators.swift @@ -632,9 +632,7 @@ public let WasmCodeGenerators: [CodeGenerator] = [ // For funcref tables, we need to look for functions to populate the entries. // These are going to be either wasm function definitions (.wasmFunctionDef()) or JS functions (.function()). // TODO(manoskouk): When we have support for constant expressions, consider looking for .wasmFuncRef instead. - let expectedEntryType = - elementType == .wasmFuncRef - ? .wasmFunctionDef() | .function() : .object() + let expectedEntryType = module.getEntryTypeForTable(elementType: elementType) // Currently, only generate entries for funcref tables. // TODO(manoskouk): Generalize this. @@ -667,13 +665,13 @@ public let WasmCodeGenerators: [CodeGenerator] = [ }, CodeGenerator("WasmDefineElementSegmentGenerator", inContext: .single(.wasm)) { b in - let elementsType: ILType = .wasmFunctionDef() | .function() - if b.randomVariable(ofType: elementsType) == nil { + let expectedEntryType = b.currentWasmModule.getEntryTypeForTable(elementType: ILType.wasmFuncRef) + if b.randomVariable(ofType: expectedEntryType) == nil { return } - var elements: [Variable] = (0...Int.random(in: 0...8)).map {_ in b.randomVariable(ofType: elementsType)!} - b.currentWasmModule.addElementSegment(elementsType: elementsType, elements: elements) + var elements: [Variable] = (0...Int.random(in: 0...8)).map {_ in b.randomVariable(ofType: expectedEntryType)!} + b.currentWasmModule.addElementSegment(elements: elements) }, CodeGenerator("WasmDropElementSegmentGenerator", inContext: .single(.wasmFunction), inputs: .required(.wasmElementSegment())) { b, elementSegment in diff --git a/Sources/Fuzzilli/FuzzIL/JSTyper.swift b/Sources/Fuzzilli/FuzzIL/JSTyper.swift index 6157ea39d..63a3ed41a 100755 --- a/Sources/Fuzzilli/FuzzIL/JSTyper.swift +++ b/Sources/Fuzzilli/FuzzIL/JSTyper.swift @@ -728,8 +728,9 @@ public struct JSTyper: Analyzer { type(of: instr.input(0)).wasmElementSegmentType!.markAsDropped() case .wasmTableInit(_), .wasmTableCopy(_): - // TODO(427115604): - implement both init and copy instructions. - break + let definingInstruction = defUseAnalyzer.definition(of: instr.input(0)) + dynamicObjectGroupManager.addWasmTable(withType: type(of: instr.input(0)), forDefinition: definingInstruction, forVariable: instr.input(0)) + // Ignore changed function signatures - it is too hard to reason about them statically. case .wasmDefineMemory(let op): setType(of: instr.output, to: op.wasmMemory) registerWasmMemoryUse(for: instr.output) diff --git a/Sources/Fuzzilli/FuzzIL/WasmOperations.swift b/Sources/Fuzzilli/FuzzIL/WasmOperations.swift index c05115eba..bed8bd6ae 100755 --- a/Sources/Fuzzilli/FuzzIL/WasmOperations.swift +++ b/Sources/Fuzzilli/FuzzIL/WasmOperations.swift @@ -813,7 +813,7 @@ final class WasmDefineTable: WasmOperation { final class WasmDefineElementSegment: WasmOperation { override var opcode: Opcode { .wasmDefineElementSegment(self) } - public let size: UInt32 + let size: UInt32 init(size: UInt32) { self.size = size diff --git a/Sources/Fuzzilli/Protobuf/program.pb.swift b/Sources/Fuzzilli/Protobuf/program.pb.swift index e13009f1f..bf4e21f82 100755 --- a/Sources/Fuzzilli/Protobuf/program.pb.swift +++ b/Sources/Fuzzilli/Protobuf/program.pb.swift @@ -353,6 +353,22 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { set {operation = .endClassInstanceMethod(newValue)} } + public var beginClassInstanceComputedMethod: Fuzzilli_Protobuf_BeginClassInstanceComputedMethod { + get { + if case .beginClassInstanceComputedMethod(let v)? = operation {return v} + return Fuzzilli_Protobuf_BeginClassInstanceComputedMethod() + } + set {operation = .beginClassInstanceComputedMethod(newValue)} + } + + public var endClassInstanceComputedMethod: Fuzzilli_Protobuf_EndClassInstanceComputedMethod { + get { + if case .endClassInstanceComputedMethod(let v)? = operation {return v} + return Fuzzilli_Protobuf_EndClassInstanceComputedMethod() + } + set {operation = .endClassInstanceComputedMethod(newValue)} + } + public var beginClassInstanceGetter: Fuzzilli_Protobuf_BeginClassInstanceGetter { get { if case .beginClassInstanceGetter(let v)? = operation {return v} @@ -441,6 +457,22 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { set {operation = .endClassStaticMethod(newValue)} } + public var beginClassStaticComputedMethod: Fuzzilli_Protobuf_BeginClassStaticComputedMethod { + get { + if case .beginClassStaticComputedMethod(let v)? = operation {return v} + return Fuzzilli_Protobuf_BeginClassStaticComputedMethod() + } + set {operation = .beginClassStaticComputedMethod(newValue)} + } + + public var endClassStaticComputedMethod: Fuzzilli_Protobuf_EndClassStaticComputedMethod { + get { + if case .endClassStaticComputedMethod(let v)? = operation {return v} + return Fuzzilli_Protobuf_EndClassStaticComputedMethod() + } + set {operation = .endClassStaticComputedMethod(newValue)} + } + public var beginClassStaticGetter: Fuzzilli_Protobuf_BeginClassStaticGetter { get { if case .beginClassStaticGetter(let v)? = operation {return v} @@ -2689,38 +2721,6 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { set {operation = .createNamedAsyncDisposableVariable(newValue)} } - public var beginClassInstanceComputedMethod: Fuzzilli_Protobuf_BeginClassInstanceComputedMethod { - get { - if case .beginClassInstanceComputedMethod(let v)? = operation {return v} - return Fuzzilli_Protobuf_BeginClassInstanceComputedMethod() - } - set {operation = .beginClassInstanceComputedMethod(newValue)} - } - - public var endClassInstanceComputedMethod: Fuzzilli_Protobuf_EndClassInstanceComputedMethod { - get { - if case .endClassInstanceComputedMethod(let v)? = operation {return v} - return Fuzzilli_Protobuf_EndClassInstanceComputedMethod() - } - set {operation = .endClassInstanceComputedMethod(newValue)} - } - - public var beginClassStaticComputedMethod: Fuzzilli_Protobuf_BeginClassStaticComputedMethod { - get { - if case .beginClassStaticComputedMethod(let v)? = operation {return v} - return Fuzzilli_Protobuf_BeginClassStaticComputedMethod() - } - set {operation = .beginClassStaticComputedMethod(newValue)} - } - - public var endClassStaticComputedMethod: Fuzzilli_Protobuf_EndClassStaticComputedMethod { - get { - if case .endClassStaticComputedMethod(let v)? = operation {return v} - return Fuzzilli_Protobuf_EndClassStaticComputedMethod() - } - set {operation = .endClassStaticComputedMethod(newValue)} - } - public var unknownFields = SwiftProtobuf.UnknownStorage() public enum OneOf_Operation: Equatable, Sendable { @@ -2762,6 +2762,8 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { case classAddInstanceComputedProperty(Fuzzilli_Protobuf_ClassAddInstanceComputedProperty) case beginClassInstanceMethod(Fuzzilli_Protobuf_BeginClassInstanceMethod) case endClassInstanceMethod(Fuzzilli_Protobuf_EndClassInstanceMethod) + case beginClassInstanceComputedMethod(Fuzzilli_Protobuf_BeginClassInstanceComputedMethod) + case endClassInstanceComputedMethod(Fuzzilli_Protobuf_EndClassInstanceComputedMethod) case beginClassInstanceGetter(Fuzzilli_Protobuf_BeginClassInstanceGetter) case endClassInstanceGetter(Fuzzilli_Protobuf_EndClassInstanceGetter) case beginClassInstanceSetter(Fuzzilli_Protobuf_BeginClassInstanceSetter) @@ -2773,6 +2775,8 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { case endClassStaticInitializer(Fuzzilli_Protobuf_EndClassStaticInitializer) case beginClassStaticMethod(Fuzzilli_Protobuf_BeginClassStaticMethod) case endClassStaticMethod(Fuzzilli_Protobuf_EndClassStaticMethod) + case beginClassStaticComputedMethod(Fuzzilli_Protobuf_BeginClassStaticComputedMethod) + case endClassStaticComputedMethod(Fuzzilli_Protobuf_EndClassStaticComputedMethod) case beginClassStaticGetter(Fuzzilli_Protobuf_BeginClassStaticGetter) case endClassStaticGetter(Fuzzilli_Protobuf_EndClassStaticGetter) case beginClassStaticSetter(Fuzzilli_Protobuf_BeginClassStaticSetter) @@ -3054,10 +3058,6 @@ public struct Fuzzilli_Protobuf_Instruction: Sendable { case wasmDefineSignatureType(Fuzzilli_Protobuf_WasmDefineSignatureType) case createNamedDisposableVariable(Fuzzilli_Protobuf_CreateNamedDisposableVariable) case createNamedAsyncDisposableVariable(Fuzzilli_Protobuf_CreateNamedAsyncDisposableVariable) - case beginClassInstanceComputedMethod(Fuzzilli_Protobuf_BeginClassInstanceComputedMethod) - case endClassInstanceComputedMethod(Fuzzilli_Protobuf_EndClassInstanceComputedMethod) - case beginClassStaticComputedMethod(Fuzzilli_Protobuf_BeginClassStaticComputedMethod) - case endClassStaticComputedMethod(Fuzzilli_Protobuf_EndClassStaticComputedMethod) } @@ -3106,7 +3106,7 @@ fileprivate let _protobuf_package = "fuzzilli.protobuf" extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { public static let protoMessageName: String = _protobuf_package + ".Instruction" - public static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}inouts\0\u{1}opIdx\0\u{1}nop\0\u{1}loadInteger\0\u{1}loadBigInt\0\u{1}loadFloat\0\u{1}loadString\0\u{1}loadBoolean\0\u{1}loadUndefined\0\u{1}loadNull\0\u{1}loadThis\0\u{1}loadArguments\0\u{1}createNamedVariable\0\u{1}loadDisposableVariable\0\u{1}loadAsyncDisposableVariable\0\u{1}loadRegExp\0\u{1}beginObjectLiteral\0\u{1}objectLiteralAddProperty\0\u{1}objectLiteralAddElement\0\u{1}objectLiteralAddComputedProperty\0\u{1}objectLiteralCopyProperties\0\u{1}objectLiteralSetPrototype\0\u{1}beginObjectLiteralMethod\0\u{1}endObjectLiteralMethod\0\u{1}beginObjectLiteralComputedMethod\0\u{1}endObjectLiteralComputedMethod\0\u{1}beginObjectLiteralGetter\0\u{1}endObjectLiteralGetter\0\u{1}beginObjectLiteralSetter\0\u{1}endObjectLiteralSetter\0\u{1}endObjectLiteral\0\u{1}beginClassDefinition\0\u{1}beginClassConstructor\0\u{1}endClassConstructor\0\u{1}classAddInstanceProperty\0\u{1}classAddInstanceElement\0\u{1}classAddInstanceComputedProperty\0\u{1}beginClassInstanceMethod\0\u{1}endClassInstanceMethod\0\u{1}beginClassInstanceGetter\0\u{1}endClassInstanceGetter\0\u{1}beginClassInstanceSetter\0\u{1}endClassInstanceSetter\0\u{1}classAddStaticProperty\0\u{1}classAddStaticElement\0\u{1}classAddStaticComputedProperty\0\u{1}beginClassStaticInitializer\0\u{1}endClassStaticInitializer\0\u{1}beginClassStaticMethod\0\u{1}endClassStaticMethod\0\u{1}beginClassStaticGetter\0\u{1}endClassStaticGetter\0\u{1}beginClassStaticSetter\0\u{1}endClassStaticSetter\0\u{1}classAddPrivateInstanceProperty\0\u{1}beginClassPrivateInstanceMethod\0\u{1}endClassPrivateInstanceMethod\0\u{1}classAddPrivateStaticProperty\0\u{1}beginClassPrivateStaticMethod\0\u{1}endClassPrivateStaticMethod\0\u{1}endClassDefinition\0\u{1}createArray\0\u{1}createIntArray\0\u{1}createFloatArray\0\u{1}createArrayWithSpread\0\u{1}createTemplateString\0\u{1}getProperty\0\u{1}setProperty\0\u{1}updateProperty\0\u{1}deleteProperty\0\u{1}configureProperty\0\u{1}getElement\0\u{1}setElement\0\u{1}updateElement\0\u{1}deleteElement\0\u{1}configureElement\0\u{1}getComputedProperty\0\u{1}setComputedProperty\0\u{1}updateComputedProperty\0\u{1}deleteComputedProperty\0\u{1}configureComputedProperty\0\u{1}typeOf\0\u{1}void\0\u{1}testInstanceOf\0\u{1}testIn\0\u{1}beginPlainFunction\0\u{1}endPlainFunction\0\u{1}beginArrowFunction\0\u{1}endArrowFunction\0\u{1}beginGeneratorFunction\0\u{1}endGeneratorFunction\0\u{1}beginAsyncFunction\0\u{1}endAsyncFunction\0\u{1}beginAsyncArrowFunction\0\u{1}endAsyncArrowFunction\0\u{1}beginAsyncGeneratorFunction\0\u{1}endAsyncGeneratorFunction\0\u{1}beginConstructor\0\u{1}endConstructor\0\u{1}directive\0\u{1}return\0\u{1}yield\0\u{1}yieldEach\0\u{1}await\0\u{1}callFunction\0\u{1}callFunctionWithSpread\0\u{1}construct\0\u{1}constructWithSpread\0\u{1}callMethod\0\u{1}callMethodWithSpread\0\u{1}callComputedMethod\0\u{1}callComputedMethodWithSpread\0\u{1}unaryOperation\0\u{1}binaryOperation\0\u{1}ternaryOperation\0\u{1}update\0\u{1}dup\0\u{1}reassign\0\u{1}destructArray\0\u{1}destructArrayAndReassign\0\u{1}destructObject\0\u{1}destructObjectAndReassign\0\u{1}compare\0\u{1}eval\0\u{1}beginWith\0\u{1}endWith\0\u{1}callSuperConstructor\0\u{1}callSuperMethod\0\u{1}getPrivateProperty\0\u{1}setPrivateProperty\0\u{1}updatePrivateProperty\0\u{1}callPrivateMethod\0\u{1}getSuperProperty\0\u{1}setSuperProperty\0\u{1}getComputedSuperProperty\0\u{1}setComputedSuperProperty\0\u{1}updateSuperProperty\0\u{1}beginIf\0\u{1}beginElse\0\u{1}endIf\0\u{1}beginWhileLoopHeader\0\u{1}beginWhileLoopBody\0\u{1}endWhileLoop\0\u{1}beginDoWhileLoopBody\0\u{1}beginDoWhileLoopHeader\0\u{1}endDoWhileLoop\0\u{1}beginForLoopInitializer\0\u{1}beginForLoopCondition\0\u{1}beginForLoopAfterthought\0\u{1}beginForLoopBody\0\u{1}endForLoop\0\u{1}beginForInLoop\0\u{1}endForInLoop\0\u{1}beginForOfLoop\0\u{1}beginForOfLoopWithDestruct\0\u{1}endForOfLoop\0\u{1}beginRepeatLoop\0\u{1}endRepeatLoop\0\u{1}loopBreak\0\u{1}loopContinue\0\u{1}beginTry\0\u{1}beginCatch\0\u{1}beginFinally\0\u{1}endTryCatchFinally\0\u{1}throwException\0\u{1}beginCodeString\0\u{1}endCodeString\0\u{1}beginBlockStatement\0\u{1}endBlockStatement\0\u{1}beginSwitch\0\u{1}beginSwitchCase\0\u{1}beginSwitchDefaultCase\0\u{1}endSwitchCase\0\u{1}endSwitch\0\u{1}switchBreak\0\u{1}loadNewTarget\0\u{1}print\0\u{1}explore\0\u{1}probe\0\u{1}fixup\0\u{1}beginWasmModule\0\u{1}endWasmModule\0\u{1}createWasmGlobal\0\u{1}createWasmMemory\0\u{1}createWasmTable\0\u{1}createWasmJSTag\0\u{1}createWasmTag\0\u{1}wrapPromising\0\u{1}wrapSuspending\0\u{1}bindMethod\0\u{1}bindFunction\0\u{1}consti64\0\u{1}consti32\0\u{1}constf32\0\u{1}constf64\0\u{1}wasmReturn\0\u{1}wasmJsCall\0\u{1}wasmi32CompareOp\0\u{1}wasmi64CompareOp\0\u{1}wasmf32CompareOp\0\u{1}wasmf64CompareOp\0\u{1}wasmi32EqualZero\0\u{1}wasmi64EqualZero\0\u{1}wasmi32BinOp\0\u{1}wasmi64BinOp\0\u{1}wasmi32UnOp\0\u{1}wasmi64UnOp\0\u{1}wasmf32BinOp\0\u{1}wasmf64BinOp\0\u{1}wasmf32UnOp\0\u{1}wasmf64UnOp\0\u{1}wasmWrapi64Toi32\0\u{1}wasmTruncatef32Toi32\0\u{1}wasmTruncatef64Toi32\0\u{1}wasmExtendi32Toi64\0\u{1}wasmTruncatef32Toi64\0\u{1}wasmTruncatef64Toi64\0\u{1}wasmConverti32Tof32\0\u{1}wasmConverti64Tof32\0\u{1}wasmDemotef64Tof32\0\u{1}wasmConverti32Tof64\0\u{1}wasmConverti64Tof64\0\u{1}wasmPromotef32Tof64\0\u{1}wasmReinterpretf32Asi32\0\u{1}wasmReinterpretf64Asi64\0\u{1}wasmReinterpreti32Asf32\0\u{1}wasmReinterpreti64Asf64\0\u{1}wasmSignExtend8Intoi32\0\u{1}wasmSignExtend16Intoi32\0\u{1}wasmSignExtend8Intoi64\0\u{1}wasmSignExtend16Intoi64\0\u{1}wasmSignExtend32Intoi64\0\u{1}wasmTruncateSatf32Toi32\0\u{1}wasmTruncateSatf64Toi32\0\u{1}wasmTruncateSatf32Toi64\0\u{1}wasmTruncateSatf64Toi64\0\u{1}wasmReassign\0\u{1}wasmDefineGlobal\0\u{1}wasmDefineTable\0\u{1}wasmDefineMemory\0\u{1}wasmDefineDataSegment\0\u{1}wasmLoadGlobal\0\u{1}wasmStoreGlobal\0\u{1}wasmTableGet\0\u{1}wasmTableSet\0\u{1}wasmTableSize\0\u{1}wasmTableGrow\0\u{1}wasmCallIndirect\0\u{1}wasmCallDirect\0\u{1}wasmReturnCallDirect\0\u{1}wasmReturnCallIndirect\0\u{1}wasmMemoryLoad\0\u{1}wasmMemoryStore\0\u{1}wasmAtomicLoad\0\u{1}wasmAtomicStore\0\u{1}wasmAtomicRMW\0\u{1}wasmAtomicCmpxchg\0\u{1}wasmMemorySize\0\u{1}wasmMemoryGrow\0\u{1}wasmMemoryFill\0\u{1}wasmMemoryInit\0\u{1}wasmDropDataSegment\0\u{1}beginWasmFunction\0\u{1}endWasmFunction\0\u{1}wasmBeginBlock\0\u{1}wasmEndBlock\0\u{1}wasmBeginLoop\0\u{1}wasmEndLoop\0\u{1}wasmBranch\0\u{1}wasmBranchIf\0\u{1}wasmBranchTable\0\u{1}wasmNop\0\u{1}wasmBeginIf\0\u{1}wasmBeginElse\0\u{1}wasmEndIf\0\u{1}wasmBeginTryTable\0\u{1}wasmEndTryTable\0\u{1}wasmBeginTry\0\u{1}wasmBeginCatchAll\0\u{1}wasmBeginCatch\0\u{1}wasmEndTry\0\u{1}wasmBeginTryDelegate\0\u{1}wasmEndTryDelegate\0\u{1}wasmThrow\0\u{1}wasmRethrow\0\u{1}wasmThrowRef\0\u{1}wasmDefineTag\0\u{1}constSimd128\0\u{1}wasmSimd128Compare\0\u{1}wasmSimd128IntegerUnOp\0\u{1}wasmSimd128IntegerBinOp\0\u{1}wasmSimd128IntegerTernaryOp\0\u{1}wasmSimd128FloatUnOp\0\u{1}wasmSimd128FloatBinOp\0\u{1}wasmSimd128FloatTernaryOp\0\u{1}wasmSimdSplat\0\u{1}wasmSimdExtractLane\0\u{1}wasmSimdReplaceLane\0\u{1}wasmSimdStoreLane\0\u{1}wasmSimdLoadLane\0\u{1}wasmSimdLoad\0\u{1}wasmUnreachable\0\u{1}wasmSelect\0\u{1}wasmBeginTypeGroup\0\u{1}wasmEndTypeGroup\0\u{1}wasmDefineArrayType\0\u{1}wasmDefineStructType\0\u{1}wasmDefineForwardOrSelfReference\0\u{1}wasmResolveForwardReference\0\u{1}wasmArrayNewFixed\0\u{1}wasmArrayNewDefault\0\u{1}wasmArrayLen\0\u{1}wasmArrayGet\0\u{1}wasmArraySet\0\u{1}wasmStructNewDefault\0\u{1}wasmStructGet\0\u{1}wasmStructSet\0\u{1}wasmRefNull\0\u{1}wasmRefIsNull\0\u{1}wasmRefI31\0\u{1}wasmI31Get\0\u{1}wasmAnyConvertExtern\0\u{1}wasmExternConvertAny\0\u{1}wasmMemoryCopy\0\u{1}wasmDefineElementSegment\0\u{1}wasmTableInit\0\u{1}wasmDropElementSegment\0\u{1}wasmTableCopy\0\u{1}wasmDefineSignatureType\0\u{1}createNamedDisposableVariable\0\u{1}createNamedAsyncDisposableVariable\0\u{1}beginClassInstanceComputedMethod\0\u{1}endClassInstanceComputedMethod\0\u{1}beginClassStaticComputedMethod\0\u{1}endClassStaticComputedMethod\0") + public static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}inouts\0\u{1}opIdx\0\u{1}nop\0\u{1}loadInteger\0\u{1}loadBigInt\0\u{1}loadFloat\0\u{1}loadString\0\u{1}loadBoolean\0\u{1}loadUndefined\0\u{1}loadNull\0\u{1}loadThis\0\u{1}loadArguments\0\u{1}createNamedVariable\0\u{1}loadDisposableVariable\0\u{1}loadAsyncDisposableVariable\0\u{1}loadRegExp\0\u{1}beginObjectLiteral\0\u{1}objectLiteralAddProperty\0\u{1}objectLiteralAddElement\0\u{1}objectLiteralAddComputedProperty\0\u{1}objectLiteralCopyProperties\0\u{1}objectLiteralSetPrototype\0\u{1}beginObjectLiteralMethod\0\u{1}endObjectLiteralMethod\0\u{1}beginObjectLiteralComputedMethod\0\u{1}endObjectLiteralComputedMethod\0\u{1}beginObjectLiteralGetter\0\u{1}endObjectLiteralGetter\0\u{1}beginObjectLiteralSetter\0\u{1}endObjectLiteralSetter\0\u{1}endObjectLiteral\0\u{1}beginClassDefinition\0\u{1}beginClassConstructor\0\u{1}endClassConstructor\0\u{1}classAddInstanceProperty\0\u{1}classAddInstanceElement\0\u{1}classAddInstanceComputedProperty\0\u{1}beginClassInstanceMethod\0\u{1}endClassInstanceMethod\0\u{1}beginClassInstanceComputedMethod\0\u{1}endClassInstanceComputedMethod\0\u{1}beginClassInstanceGetter\0\u{1}endClassInstanceGetter\0\u{1}beginClassInstanceSetter\0\u{1}endClassInstanceSetter\0\u{1}classAddStaticProperty\0\u{1}classAddStaticElement\0\u{1}classAddStaticComputedProperty\0\u{1}beginClassStaticInitializer\0\u{1}endClassStaticInitializer\0\u{1}beginClassStaticMethod\0\u{1}endClassStaticMethod\0\u{1}beginClassStaticComputedMethod\0\u{1}endClassStaticComputedMethod\0\u{1}beginClassStaticGetter\0\u{1}endClassStaticGetter\0\u{1}beginClassStaticSetter\0\u{1}endClassStaticSetter\0\u{1}classAddPrivateInstanceProperty\0\u{1}beginClassPrivateInstanceMethod\0\u{1}endClassPrivateInstanceMethod\0\u{1}classAddPrivateStaticProperty\0\u{1}beginClassPrivateStaticMethod\0\u{1}endClassPrivateStaticMethod\0\u{1}endClassDefinition\0\u{1}createArray\0\u{1}createIntArray\0\u{1}createFloatArray\0\u{1}createArrayWithSpread\0\u{1}createTemplateString\0\u{1}getProperty\0\u{1}setProperty\0\u{1}updateProperty\0\u{1}deleteProperty\0\u{1}configureProperty\0\u{1}getElement\0\u{1}setElement\0\u{1}updateElement\0\u{1}deleteElement\0\u{1}configureElement\0\u{1}getComputedProperty\0\u{1}setComputedProperty\0\u{1}updateComputedProperty\0\u{1}deleteComputedProperty\0\u{1}configureComputedProperty\0\u{1}typeOf\0\u{1}void\0\u{1}testInstanceOf\0\u{1}testIn\0\u{1}beginPlainFunction\0\u{1}endPlainFunction\0\u{1}beginArrowFunction\0\u{1}endArrowFunction\0\u{1}beginGeneratorFunction\0\u{1}endGeneratorFunction\0\u{1}beginAsyncFunction\0\u{1}endAsyncFunction\0\u{1}beginAsyncArrowFunction\0\u{1}endAsyncArrowFunction\0\u{1}beginAsyncGeneratorFunction\0\u{1}endAsyncGeneratorFunction\0\u{1}beginConstructor\0\u{1}endConstructor\0\u{1}directive\0\u{1}return\0\u{1}yield\0\u{1}yieldEach\0\u{1}await\0\u{1}callFunction\0\u{1}callFunctionWithSpread\0\u{1}construct\0\u{1}constructWithSpread\0\u{1}callMethod\0\u{1}callMethodWithSpread\0\u{1}callComputedMethod\0\u{1}callComputedMethodWithSpread\0\u{1}unaryOperation\0\u{1}binaryOperation\0\u{1}ternaryOperation\0\u{1}update\0\u{1}dup\0\u{1}reassign\0\u{1}destructArray\0\u{1}destructArrayAndReassign\0\u{1}destructObject\0\u{1}destructObjectAndReassign\0\u{1}compare\0\u{1}eval\0\u{1}beginWith\0\u{1}endWith\0\u{1}callSuperConstructor\0\u{1}callSuperMethod\0\u{1}getPrivateProperty\0\u{1}setPrivateProperty\0\u{1}updatePrivateProperty\0\u{1}callPrivateMethod\0\u{1}getSuperProperty\0\u{1}setSuperProperty\0\u{1}getComputedSuperProperty\0\u{1}setComputedSuperProperty\0\u{1}updateSuperProperty\0\u{1}beginIf\0\u{1}beginElse\0\u{1}endIf\0\u{1}beginWhileLoopHeader\0\u{1}beginWhileLoopBody\0\u{1}endWhileLoop\0\u{1}beginDoWhileLoopBody\0\u{1}beginDoWhileLoopHeader\0\u{1}endDoWhileLoop\0\u{1}beginForLoopInitializer\0\u{1}beginForLoopCondition\0\u{1}beginForLoopAfterthought\0\u{1}beginForLoopBody\0\u{1}endForLoop\0\u{1}beginForInLoop\0\u{1}endForInLoop\0\u{1}beginForOfLoop\0\u{1}beginForOfLoopWithDestruct\0\u{1}endForOfLoop\0\u{1}beginRepeatLoop\0\u{1}endRepeatLoop\0\u{1}loopBreak\0\u{1}loopContinue\0\u{1}beginTry\0\u{1}beginCatch\0\u{1}beginFinally\0\u{1}endTryCatchFinally\0\u{1}throwException\0\u{1}beginCodeString\0\u{1}endCodeString\0\u{1}beginBlockStatement\0\u{1}endBlockStatement\0\u{1}beginSwitch\0\u{1}beginSwitchCase\0\u{1}beginSwitchDefaultCase\0\u{1}endSwitchCase\0\u{1}endSwitch\0\u{1}switchBreak\0\u{1}loadNewTarget\0\u{1}print\0\u{1}explore\0\u{1}probe\0\u{1}fixup\0\u{1}beginWasmModule\0\u{1}endWasmModule\0\u{1}createWasmGlobal\0\u{1}createWasmMemory\0\u{1}createWasmTable\0\u{1}createWasmJSTag\0\u{1}createWasmTag\0\u{1}wrapPromising\0\u{1}wrapSuspending\0\u{1}bindMethod\0\u{1}bindFunction\0\u{1}consti64\0\u{1}consti32\0\u{1}constf32\0\u{1}constf64\0\u{1}wasmReturn\0\u{1}wasmJsCall\0\u{1}wasmi32CompareOp\0\u{1}wasmi64CompareOp\0\u{1}wasmf32CompareOp\0\u{1}wasmf64CompareOp\0\u{1}wasmi32EqualZero\0\u{1}wasmi64EqualZero\0\u{1}wasmi32BinOp\0\u{1}wasmi64BinOp\0\u{1}wasmi32UnOp\0\u{1}wasmi64UnOp\0\u{1}wasmf32BinOp\0\u{1}wasmf64BinOp\0\u{1}wasmf32UnOp\0\u{1}wasmf64UnOp\0\u{1}wasmWrapi64Toi32\0\u{1}wasmTruncatef32Toi32\0\u{1}wasmTruncatef64Toi32\0\u{1}wasmExtendi32Toi64\0\u{1}wasmTruncatef32Toi64\0\u{1}wasmTruncatef64Toi64\0\u{1}wasmConverti32Tof32\0\u{1}wasmConverti64Tof32\0\u{1}wasmDemotef64Tof32\0\u{1}wasmConverti32Tof64\0\u{1}wasmConverti64Tof64\0\u{1}wasmPromotef32Tof64\0\u{1}wasmReinterpretf32Asi32\0\u{1}wasmReinterpretf64Asi64\0\u{1}wasmReinterpreti32Asf32\0\u{1}wasmReinterpreti64Asf64\0\u{1}wasmSignExtend8Intoi32\0\u{1}wasmSignExtend16Intoi32\0\u{1}wasmSignExtend8Intoi64\0\u{1}wasmSignExtend16Intoi64\0\u{1}wasmSignExtend32Intoi64\0\u{1}wasmTruncateSatf32Toi32\0\u{1}wasmTruncateSatf64Toi32\0\u{1}wasmTruncateSatf32Toi64\0\u{1}wasmTruncateSatf64Toi64\0\u{1}wasmReassign\0\u{1}wasmDefineGlobal\0\u{1}wasmDefineTable\0\u{1}wasmDefineMemory\0\u{1}wasmDefineDataSegment\0\u{1}wasmLoadGlobal\0\u{1}wasmStoreGlobal\0\u{1}wasmTableGet\0\u{1}wasmTableSet\0\u{1}wasmTableSize\0\u{1}wasmTableGrow\0\u{1}wasmCallIndirect\0\u{1}wasmCallDirect\0\u{1}wasmReturnCallDirect\0\u{1}wasmReturnCallIndirect\0\u{1}wasmMemoryLoad\0\u{1}wasmMemoryStore\0\u{1}wasmAtomicLoad\0\u{1}wasmAtomicStore\0\u{1}wasmAtomicRMW\0\u{1}wasmAtomicCmpxchg\0\u{1}wasmMemorySize\0\u{1}wasmMemoryGrow\0\u{1}wasmMemoryFill\0\u{1}wasmMemoryInit\0\u{1}wasmDropDataSegment\0\u{1}beginWasmFunction\0\u{1}endWasmFunction\0\u{1}wasmBeginBlock\0\u{1}wasmEndBlock\0\u{1}wasmBeginLoop\0\u{1}wasmEndLoop\0\u{1}wasmBranch\0\u{1}wasmBranchIf\0\u{1}wasmBranchTable\0\u{1}wasmNop\0\u{1}wasmBeginIf\0\u{1}wasmBeginElse\0\u{1}wasmEndIf\0\u{1}wasmBeginTryTable\0\u{1}wasmEndTryTable\0\u{1}wasmBeginTry\0\u{1}wasmBeginCatchAll\0\u{1}wasmBeginCatch\0\u{1}wasmEndTry\0\u{1}wasmBeginTryDelegate\0\u{1}wasmEndTryDelegate\0\u{1}wasmThrow\0\u{1}wasmRethrow\0\u{1}wasmThrowRef\0\u{1}wasmDefineTag\0\u{1}constSimd128\0\u{1}wasmSimd128Compare\0\u{1}wasmSimd128IntegerUnOp\0\u{1}wasmSimd128IntegerBinOp\0\u{1}wasmSimd128IntegerTernaryOp\0\u{1}wasmSimd128FloatUnOp\0\u{1}wasmSimd128FloatBinOp\0\u{1}wasmSimd128FloatTernaryOp\0\u{1}wasmSimdSplat\0\u{1}wasmSimdExtractLane\0\u{1}wasmSimdReplaceLane\0\u{1}wasmSimdStoreLane\0\u{1}wasmSimdLoadLane\0\u{1}wasmSimdLoad\0\u{1}wasmUnreachable\0\u{1}wasmSelect\0\u{1}wasmBeginTypeGroup\0\u{1}wasmEndTypeGroup\0\u{1}wasmDefineArrayType\0\u{1}wasmDefineStructType\0\u{1}wasmDefineForwardOrSelfReference\0\u{1}wasmResolveForwardReference\0\u{1}wasmArrayNewFixed\0\u{1}wasmArrayNewDefault\0\u{1}wasmArrayLen\0\u{1}wasmArrayGet\0\u{1}wasmArraySet\0\u{1}wasmStructNewDefault\0\u{1}wasmStructGet\0\u{1}wasmStructSet\0\u{1}wasmRefNull\0\u{1}wasmRefIsNull\0\u{1}wasmRefI31\0\u{1}wasmI31Get\0\u{1}wasmAnyConvertExtern\0\u{1}wasmExternConvertAny\0\u{1}wasmMemoryCopy\0\u{1}wasmDefineElementSegment\0\u{1}wasmTableInit\0\u{1}wasmDropElementSegment\0\u{1}wasmTableCopy\0\u{1}wasmDefineSignatureType\0\u{1}createNamedDisposableVariable\0\u{1}createNamedAsyncDisposableVariable\0") public mutating func decodeMessage(decoder: inout D) throws { while let fieldNumber = try decoder.nextFieldNumber() { @@ -3605,6 +3605,32 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M } }() case 40: try { + var v: Fuzzilli_Protobuf_BeginClassInstanceComputedMethod? + var hadOneofValue = false + if let current = self.operation { + hadOneofValue = true + if case .beginClassInstanceComputedMethod(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.operation = .beginClassInstanceComputedMethod(v) + } + }() + case 41: try { + var v: Fuzzilli_Protobuf_EndClassInstanceComputedMethod? + var hadOneofValue = false + if let current = self.operation { + hadOneofValue = true + if case .endClassInstanceComputedMethod(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.operation = .endClassInstanceComputedMethod(v) + } + }() + case 42: try { var v: Fuzzilli_Protobuf_BeginClassInstanceGetter? var hadOneofValue = false if let current = self.operation { @@ -3617,7 +3643,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassInstanceGetter(v) } }() - case 41: try { + case 43: try { var v: Fuzzilli_Protobuf_EndClassInstanceGetter? var hadOneofValue = false if let current = self.operation { @@ -3630,7 +3656,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassInstanceGetter(v) } }() - case 42: try { + case 44: try { var v: Fuzzilli_Protobuf_BeginClassInstanceSetter? var hadOneofValue = false if let current = self.operation { @@ -3643,7 +3669,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassInstanceSetter(v) } }() - case 43: try { + case 45: try { var v: Fuzzilli_Protobuf_EndClassInstanceSetter? var hadOneofValue = false if let current = self.operation { @@ -3656,7 +3682,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassInstanceSetter(v) } }() - case 44: try { + case 46: try { var v: Fuzzilli_Protobuf_ClassAddStaticProperty? var hadOneofValue = false if let current = self.operation { @@ -3669,7 +3695,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddStaticProperty(v) } }() - case 45: try { + case 47: try { var v: Fuzzilli_Protobuf_ClassAddStaticElement? var hadOneofValue = false if let current = self.operation { @@ -3682,7 +3708,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddStaticElement(v) } }() - case 46: try { + case 48: try { var v: Fuzzilli_Protobuf_ClassAddStaticComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -3695,7 +3721,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddStaticComputedProperty(v) } }() - case 47: try { + case 49: try { var v: Fuzzilli_Protobuf_BeginClassStaticInitializer? var hadOneofValue = false if let current = self.operation { @@ -3708,7 +3734,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassStaticInitializer(v) } }() - case 48: try { + case 50: try { var v: Fuzzilli_Protobuf_EndClassStaticInitializer? var hadOneofValue = false if let current = self.operation { @@ -3721,7 +3747,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassStaticInitializer(v) } }() - case 49: try { + case 51: try { var v: Fuzzilli_Protobuf_BeginClassStaticMethod? var hadOneofValue = false if let current = self.operation { @@ -3734,7 +3760,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassStaticMethod(v) } }() - case 50: try { + case 52: try { var v: Fuzzilli_Protobuf_EndClassStaticMethod? var hadOneofValue = false if let current = self.operation { @@ -3747,7 +3773,33 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassStaticMethod(v) } }() - case 51: try { + case 53: try { + var v: Fuzzilli_Protobuf_BeginClassStaticComputedMethod? + var hadOneofValue = false + if let current = self.operation { + hadOneofValue = true + if case .beginClassStaticComputedMethod(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.operation = .beginClassStaticComputedMethod(v) + } + }() + case 54: try { + var v: Fuzzilli_Protobuf_EndClassStaticComputedMethod? + var hadOneofValue = false + if let current = self.operation { + hadOneofValue = true + if case .endClassStaticComputedMethod(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.operation = .endClassStaticComputedMethod(v) + } + }() + case 55: try { var v: Fuzzilli_Protobuf_BeginClassStaticGetter? var hadOneofValue = false if let current = self.operation { @@ -3760,7 +3812,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassStaticGetter(v) } }() - case 52: try { + case 56: try { var v: Fuzzilli_Protobuf_EndClassStaticGetter? var hadOneofValue = false if let current = self.operation { @@ -3773,7 +3825,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassStaticGetter(v) } }() - case 53: try { + case 57: try { var v: Fuzzilli_Protobuf_BeginClassStaticSetter? var hadOneofValue = false if let current = self.operation { @@ -3786,7 +3838,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassStaticSetter(v) } }() - case 54: try { + case 58: try { var v: Fuzzilli_Protobuf_EndClassStaticSetter? var hadOneofValue = false if let current = self.operation { @@ -3799,7 +3851,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassStaticSetter(v) } }() - case 55: try { + case 59: try { var v: Fuzzilli_Protobuf_ClassAddPrivateInstanceProperty? var hadOneofValue = false if let current = self.operation { @@ -3812,7 +3864,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddPrivateInstanceProperty(v) } }() - case 56: try { + case 60: try { var v: Fuzzilli_Protobuf_BeginClassPrivateInstanceMethod? var hadOneofValue = false if let current = self.operation { @@ -3825,7 +3877,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassPrivateInstanceMethod(v) } }() - case 57: try { + case 61: try { var v: Fuzzilli_Protobuf_EndClassPrivateInstanceMethod? var hadOneofValue = false if let current = self.operation { @@ -3838,7 +3890,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassPrivateInstanceMethod(v) } }() - case 58: try { + case 62: try { var v: Fuzzilli_Protobuf_ClassAddPrivateStaticProperty? var hadOneofValue = false if let current = self.operation { @@ -3851,7 +3903,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .classAddPrivateStaticProperty(v) } }() - case 59: try { + case 63: try { var v: Fuzzilli_Protobuf_BeginClassPrivateStaticMethod? var hadOneofValue = false if let current = self.operation { @@ -3864,7 +3916,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginClassPrivateStaticMethod(v) } }() - case 60: try { + case 64: try { var v: Fuzzilli_Protobuf_EndClassPrivateStaticMethod? var hadOneofValue = false if let current = self.operation { @@ -3877,7 +3929,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassPrivateStaticMethod(v) } }() - case 61: try { + case 65: try { var v: Fuzzilli_Protobuf_EndClassDefinition? var hadOneofValue = false if let current = self.operation { @@ -3890,7 +3942,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endClassDefinition(v) } }() - case 62: try { + case 66: try { var v: Fuzzilli_Protobuf_CreateArray? var hadOneofValue = false if let current = self.operation { @@ -3903,7 +3955,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createArray(v) } }() - case 63: try { + case 67: try { var v: Fuzzilli_Protobuf_CreateIntArray? var hadOneofValue = false if let current = self.operation { @@ -3916,7 +3968,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createIntArray(v) } }() - case 64: try { + case 68: try { var v: Fuzzilli_Protobuf_CreateFloatArray? var hadOneofValue = false if let current = self.operation { @@ -3929,7 +3981,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createFloatArray(v) } }() - case 65: try { + case 69: try { var v: Fuzzilli_Protobuf_CreateArrayWithSpread? var hadOneofValue = false if let current = self.operation { @@ -3942,7 +3994,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createArrayWithSpread(v) } }() - case 66: try { + case 70: try { var v: Fuzzilli_Protobuf_CreateTemplateString? var hadOneofValue = false if let current = self.operation { @@ -3955,7 +4007,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createTemplateString(v) } }() - case 67: try { + case 71: try { var v: Fuzzilli_Protobuf_GetProperty? var hadOneofValue = false if let current = self.operation { @@ -3968,7 +4020,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getProperty(v) } }() - case 68: try { + case 72: try { var v: Fuzzilli_Protobuf_SetProperty? var hadOneofValue = false if let current = self.operation { @@ -3981,7 +4033,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setProperty(v) } }() - case 69: try { + case 73: try { var v: Fuzzilli_Protobuf_UpdateProperty? var hadOneofValue = false if let current = self.operation { @@ -3994,7 +4046,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updateProperty(v) } }() - case 70: try { + case 74: try { var v: Fuzzilli_Protobuf_DeleteProperty? var hadOneofValue = false if let current = self.operation { @@ -4007,7 +4059,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .deleteProperty(v) } }() - case 71: try { + case 75: try { var v: Fuzzilli_Protobuf_ConfigureProperty? var hadOneofValue = false if let current = self.operation { @@ -4020,7 +4072,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .configureProperty(v) } }() - case 72: try { + case 76: try { var v: Fuzzilli_Protobuf_GetElement? var hadOneofValue = false if let current = self.operation { @@ -4033,7 +4085,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getElement(v) } }() - case 73: try { + case 77: try { var v: Fuzzilli_Protobuf_SetElement? var hadOneofValue = false if let current = self.operation { @@ -4046,7 +4098,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setElement(v) } }() - case 74: try { + case 78: try { var v: Fuzzilli_Protobuf_UpdateElement? var hadOneofValue = false if let current = self.operation { @@ -4059,7 +4111,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updateElement(v) } }() - case 75: try { + case 79: try { var v: Fuzzilli_Protobuf_DeleteElement? var hadOneofValue = false if let current = self.operation { @@ -4072,7 +4124,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .deleteElement(v) } }() - case 76: try { + case 80: try { var v: Fuzzilli_Protobuf_ConfigureElement? var hadOneofValue = false if let current = self.operation { @@ -4085,7 +4137,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .configureElement(v) } }() - case 77: try { + case 81: try { var v: Fuzzilli_Protobuf_GetComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4098,7 +4150,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getComputedProperty(v) } }() - case 78: try { + case 82: try { var v: Fuzzilli_Protobuf_SetComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4111,7 +4163,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setComputedProperty(v) } }() - case 79: try { + case 83: try { var v: Fuzzilli_Protobuf_UpdateComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4124,7 +4176,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updateComputedProperty(v) } }() - case 80: try { + case 84: try { var v: Fuzzilli_Protobuf_DeleteComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4137,7 +4189,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .deleteComputedProperty(v) } }() - case 81: try { + case 85: try { var v: Fuzzilli_Protobuf_ConfigureComputedProperty? var hadOneofValue = false if let current = self.operation { @@ -4150,7 +4202,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .configureComputedProperty(v) } }() - case 82: try { + case 86: try { var v: Fuzzilli_Protobuf_TypeOf? var hadOneofValue = false if let current = self.operation { @@ -4163,7 +4215,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .typeOf(v) } }() - case 83: try { + case 87: try { var v: Fuzzilli_Protobuf_Void? var hadOneofValue = false if let current = self.operation { @@ -4176,7 +4228,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .void(v) } }() - case 84: try { + case 88: try { var v: Fuzzilli_Protobuf_TestInstanceOf? var hadOneofValue = false if let current = self.operation { @@ -4189,7 +4241,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .testInstanceOf(v) } }() - case 85: try { + case 89: try { var v: Fuzzilli_Protobuf_TestIn? var hadOneofValue = false if let current = self.operation { @@ -4202,7 +4254,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .testIn(v) } }() - case 86: try { + case 90: try { var v: Fuzzilli_Protobuf_BeginPlainFunction? var hadOneofValue = false if let current = self.operation { @@ -4215,7 +4267,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginPlainFunction(v) } }() - case 87: try { + case 91: try { var v: Fuzzilli_Protobuf_EndPlainFunction? var hadOneofValue = false if let current = self.operation { @@ -4228,7 +4280,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endPlainFunction(v) } }() - case 88: try { + case 92: try { var v: Fuzzilli_Protobuf_BeginArrowFunction? var hadOneofValue = false if let current = self.operation { @@ -4241,7 +4293,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginArrowFunction(v) } }() - case 89: try { + case 93: try { var v: Fuzzilli_Protobuf_EndArrowFunction? var hadOneofValue = false if let current = self.operation { @@ -4254,7 +4306,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endArrowFunction(v) } }() - case 90: try { + case 94: try { var v: Fuzzilli_Protobuf_BeginGeneratorFunction? var hadOneofValue = false if let current = self.operation { @@ -4267,7 +4319,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginGeneratorFunction(v) } }() - case 91: try { + case 95: try { var v: Fuzzilli_Protobuf_EndGeneratorFunction? var hadOneofValue = false if let current = self.operation { @@ -4280,7 +4332,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endGeneratorFunction(v) } }() - case 92: try { + case 96: try { var v: Fuzzilli_Protobuf_BeginAsyncFunction? var hadOneofValue = false if let current = self.operation { @@ -4293,7 +4345,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginAsyncFunction(v) } }() - case 93: try { + case 97: try { var v: Fuzzilli_Protobuf_EndAsyncFunction? var hadOneofValue = false if let current = self.operation { @@ -4306,7 +4358,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endAsyncFunction(v) } }() - case 94: try { + case 98: try { var v: Fuzzilli_Protobuf_BeginAsyncArrowFunction? var hadOneofValue = false if let current = self.operation { @@ -4319,7 +4371,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginAsyncArrowFunction(v) } }() - case 95: try { + case 99: try { var v: Fuzzilli_Protobuf_EndAsyncArrowFunction? var hadOneofValue = false if let current = self.operation { @@ -4332,7 +4384,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endAsyncArrowFunction(v) } }() - case 96: try { + case 100: try { var v: Fuzzilli_Protobuf_BeginAsyncGeneratorFunction? var hadOneofValue = false if let current = self.operation { @@ -4345,7 +4397,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginAsyncGeneratorFunction(v) } }() - case 97: try { + case 101: try { var v: Fuzzilli_Protobuf_EndAsyncGeneratorFunction? var hadOneofValue = false if let current = self.operation { @@ -4358,7 +4410,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endAsyncGeneratorFunction(v) } }() - case 98: try { + case 102: try { var v: Fuzzilli_Protobuf_BeginConstructor? var hadOneofValue = false if let current = self.operation { @@ -4371,7 +4423,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginConstructor(v) } }() - case 99: try { + case 103: try { var v: Fuzzilli_Protobuf_EndConstructor? var hadOneofValue = false if let current = self.operation { @@ -4384,7 +4436,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endConstructor(v) } }() - case 100: try { + case 104: try { var v: Fuzzilli_Protobuf_Directive? var hadOneofValue = false if let current = self.operation { @@ -4397,7 +4449,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .directive(v) } }() - case 101: try { + case 105: try { var v: Fuzzilli_Protobuf_Return? var hadOneofValue = false if let current = self.operation { @@ -4410,7 +4462,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .return(v) } }() - case 102: try { + case 106: try { var v: Fuzzilli_Protobuf_Yield? var hadOneofValue = false if let current = self.operation { @@ -4423,7 +4475,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .yield(v) } }() - case 103: try { + case 107: try { var v: Fuzzilli_Protobuf_YieldEach? var hadOneofValue = false if let current = self.operation { @@ -4436,7 +4488,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .yieldEach(v) } }() - case 104: try { + case 108: try { var v: Fuzzilli_Protobuf_Await? var hadOneofValue = false if let current = self.operation { @@ -4449,7 +4501,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .await(v) } }() - case 105: try { + case 109: try { var v: Fuzzilli_Protobuf_CallFunction? var hadOneofValue = false if let current = self.operation { @@ -4462,7 +4514,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callFunction(v) } }() - case 106: try { + case 110: try { var v: Fuzzilli_Protobuf_CallFunctionWithSpread? var hadOneofValue = false if let current = self.operation { @@ -4475,7 +4527,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callFunctionWithSpread(v) } }() - case 107: try { + case 111: try { var v: Fuzzilli_Protobuf_Construct? var hadOneofValue = false if let current = self.operation { @@ -4488,7 +4540,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .construct(v) } }() - case 108: try { + case 112: try { var v: Fuzzilli_Protobuf_ConstructWithSpread? var hadOneofValue = false if let current = self.operation { @@ -4501,7 +4553,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .constructWithSpread(v) } }() - case 109: try { + case 113: try { var v: Fuzzilli_Protobuf_CallMethod? var hadOneofValue = false if let current = self.operation { @@ -4514,7 +4566,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callMethod(v) } }() - case 110: try { + case 114: try { var v: Fuzzilli_Protobuf_CallMethodWithSpread? var hadOneofValue = false if let current = self.operation { @@ -4527,7 +4579,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callMethodWithSpread(v) } }() - case 111: try { + case 115: try { var v: Fuzzilli_Protobuf_CallComputedMethod? var hadOneofValue = false if let current = self.operation { @@ -4540,7 +4592,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callComputedMethod(v) } }() - case 112: try { + case 116: try { var v: Fuzzilli_Protobuf_CallComputedMethodWithSpread? var hadOneofValue = false if let current = self.operation { @@ -4553,7 +4605,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callComputedMethodWithSpread(v) } }() - case 113: try { + case 117: try { var v: Fuzzilli_Protobuf_UnaryOperation? var hadOneofValue = false if let current = self.operation { @@ -4566,7 +4618,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .unaryOperation(v) } }() - case 114: try { + case 118: try { var v: Fuzzilli_Protobuf_BinaryOperation? var hadOneofValue = false if let current = self.operation { @@ -4579,7 +4631,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .binaryOperation(v) } }() - case 115: try { + case 119: try { var v: Fuzzilli_Protobuf_TernaryOperation? var hadOneofValue = false if let current = self.operation { @@ -4592,7 +4644,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .ternaryOperation(v) } }() - case 116: try { + case 120: try { var v: Fuzzilli_Protobuf_Update? var hadOneofValue = false if let current = self.operation { @@ -4605,7 +4657,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .update(v) } }() - case 117: try { + case 121: try { var v: Fuzzilli_Protobuf_Dup? var hadOneofValue = false if let current = self.operation { @@ -4618,7 +4670,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .dup(v) } }() - case 118: try { + case 122: try { var v: Fuzzilli_Protobuf_Reassign? var hadOneofValue = false if let current = self.operation { @@ -4631,7 +4683,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .reassign(v) } }() - case 119: try { + case 123: try { var v: Fuzzilli_Protobuf_DestructArray? var hadOneofValue = false if let current = self.operation { @@ -4644,7 +4696,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .destructArray(v) } }() - case 120: try { + case 124: try { var v: Fuzzilli_Protobuf_DestructArrayAndReassign? var hadOneofValue = false if let current = self.operation { @@ -4657,7 +4709,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .destructArrayAndReassign(v) } }() - case 121: try { + case 125: try { var v: Fuzzilli_Protobuf_DestructObject? var hadOneofValue = false if let current = self.operation { @@ -4670,7 +4722,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .destructObject(v) } }() - case 122: try { + case 126: try { var v: Fuzzilli_Protobuf_DestructObjectAndReassign? var hadOneofValue = false if let current = self.operation { @@ -4683,7 +4735,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .destructObjectAndReassign(v) } }() - case 123: try { + case 127: try { var v: Fuzzilli_Protobuf_Compare? var hadOneofValue = false if let current = self.operation { @@ -4696,7 +4748,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .compare(v) } }() - case 124: try { + case 128: try { var v: Fuzzilli_Protobuf_Eval? var hadOneofValue = false if let current = self.operation { @@ -4709,7 +4761,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .eval(v) } }() - case 125: try { + case 129: try { var v: Fuzzilli_Protobuf_BeginWith? var hadOneofValue = false if let current = self.operation { @@ -4722,7 +4774,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWith(v) } }() - case 126: try { + case 130: try { var v: Fuzzilli_Protobuf_EndWith? var hadOneofValue = false if let current = self.operation { @@ -4735,7 +4787,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endWith(v) } }() - case 127: try { + case 131: try { var v: Fuzzilli_Protobuf_CallSuperConstructor? var hadOneofValue = false if let current = self.operation { @@ -4748,7 +4800,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callSuperConstructor(v) } }() - case 128: try { + case 132: try { var v: Fuzzilli_Protobuf_CallSuperMethod? var hadOneofValue = false if let current = self.operation { @@ -4761,7 +4813,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callSuperMethod(v) } }() - case 129: try { + case 133: try { var v: Fuzzilli_Protobuf_GetPrivateProperty? var hadOneofValue = false if let current = self.operation { @@ -4774,7 +4826,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getPrivateProperty(v) } }() - case 130: try { + case 134: try { var v: Fuzzilli_Protobuf_SetPrivateProperty? var hadOneofValue = false if let current = self.operation { @@ -4787,7 +4839,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setPrivateProperty(v) } }() - case 131: try { + case 135: try { var v: Fuzzilli_Protobuf_UpdatePrivateProperty? var hadOneofValue = false if let current = self.operation { @@ -4800,7 +4852,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updatePrivateProperty(v) } }() - case 132: try { + case 136: try { var v: Fuzzilli_Protobuf_CallPrivateMethod? var hadOneofValue = false if let current = self.operation { @@ -4813,7 +4865,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .callPrivateMethod(v) } }() - case 133: try { + case 137: try { var v: Fuzzilli_Protobuf_GetSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4826,7 +4878,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getSuperProperty(v) } }() - case 134: try { + case 138: try { var v: Fuzzilli_Protobuf_SetSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4839,7 +4891,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setSuperProperty(v) } }() - case 135: try { + case 139: try { var v: Fuzzilli_Protobuf_GetComputedSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4852,7 +4904,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .getComputedSuperProperty(v) } }() - case 136: try { + case 140: try { var v: Fuzzilli_Protobuf_SetComputedSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4865,7 +4917,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .setComputedSuperProperty(v) } }() - case 137: try { + case 141: try { var v: Fuzzilli_Protobuf_UpdateSuperProperty? var hadOneofValue = false if let current = self.operation { @@ -4878,7 +4930,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .updateSuperProperty(v) } }() - case 138: try { + case 142: try { var v: Fuzzilli_Protobuf_BeginIf? var hadOneofValue = false if let current = self.operation { @@ -4891,7 +4943,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginIf(v) } }() - case 139: try { + case 143: try { var v: Fuzzilli_Protobuf_BeginElse? var hadOneofValue = false if let current = self.operation { @@ -4904,7 +4956,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginElse(v) } }() - case 140: try { + case 144: try { var v: Fuzzilli_Protobuf_EndIf? var hadOneofValue = false if let current = self.operation { @@ -4917,7 +4969,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endIf(v) } }() - case 141: try { + case 145: try { var v: Fuzzilli_Protobuf_BeginWhileLoopHeader? var hadOneofValue = false if let current = self.operation { @@ -4930,7 +4982,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWhileLoopHeader(v) } }() - case 142: try { + case 146: try { var v: Fuzzilli_Protobuf_BeginWhileLoopBody? var hadOneofValue = false if let current = self.operation { @@ -4943,7 +4995,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWhileLoopBody(v) } }() - case 143: try { + case 147: try { var v: Fuzzilli_Protobuf_EndWhileLoop? var hadOneofValue = false if let current = self.operation { @@ -4956,7 +5008,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endWhileLoop(v) } }() - case 144: try { + case 148: try { var v: Fuzzilli_Protobuf_BeginDoWhileLoopBody? var hadOneofValue = false if let current = self.operation { @@ -4969,7 +5021,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginDoWhileLoopBody(v) } }() - case 145: try { + case 149: try { var v: Fuzzilli_Protobuf_BeginDoWhileLoopHeader? var hadOneofValue = false if let current = self.operation { @@ -4982,7 +5034,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginDoWhileLoopHeader(v) } }() - case 146: try { + case 150: try { var v: Fuzzilli_Protobuf_EndDoWhileLoop? var hadOneofValue = false if let current = self.operation { @@ -4995,7 +5047,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endDoWhileLoop(v) } }() - case 147: try { + case 151: try { var v: Fuzzilli_Protobuf_BeginForLoopInitializer? var hadOneofValue = false if let current = self.operation { @@ -5008,7 +5060,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForLoopInitializer(v) } }() - case 148: try { + case 152: try { var v: Fuzzilli_Protobuf_BeginForLoopCondition? var hadOneofValue = false if let current = self.operation { @@ -5021,7 +5073,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForLoopCondition(v) } }() - case 149: try { + case 153: try { var v: Fuzzilli_Protobuf_BeginForLoopAfterthought? var hadOneofValue = false if let current = self.operation { @@ -5034,7 +5086,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForLoopAfterthought(v) } }() - case 150: try { + case 154: try { var v: Fuzzilli_Protobuf_BeginForLoopBody? var hadOneofValue = false if let current = self.operation { @@ -5047,7 +5099,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForLoopBody(v) } }() - case 151: try { + case 155: try { var v: Fuzzilli_Protobuf_EndForLoop? var hadOneofValue = false if let current = self.operation { @@ -5060,7 +5112,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endForLoop(v) } }() - case 152: try { + case 156: try { var v: Fuzzilli_Protobuf_BeginForInLoop? var hadOneofValue = false if let current = self.operation { @@ -5073,7 +5125,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForInLoop(v) } }() - case 153: try { + case 157: try { var v: Fuzzilli_Protobuf_EndForInLoop? var hadOneofValue = false if let current = self.operation { @@ -5086,7 +5138,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endForInLoop(v) } }() - case 154: try { + case 158: try { var v: Fuzzilli_Protobuf_BeginForOfLoop? var hadOneofValue = false if let current = self.operation { @@ -5099,7 +5151,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForOfLoop(v) } }() - case 155: try { + case 159: try { var v: Fuzzilli_Protobuf_BeginForOfLoopWithDestruct? var hadOneofValue = false if let current = self.operation { @@ -5112,7 +5164,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginForOfLoopWithDestruct(v) } }() - case 156: try { + case 160: try { var v: Fuzzilli_Protobuf_EndForOfLoop? var hadOneofValue = false if let current = self.operation { @@ -5125,7 +5177,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endForOfLoop(v) } }() - case 157: try { + case 161: try { var v: Fuzzilli_Protobuf_BeginRepeatLoop? var hadOneofValue = false if let current = self.operation { @@ -5138,7 +5190,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginRepeatLoop(v) } }() - case 158: try { + case 162: try { var v: Fuzzilli_Protobuf_EndRepeatLoop? var hadOneofValue = false if let current = self.operation { @@ -5151,7 +5203,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endRepeatLoop(v) } }() - case 159: try { + case 163: try { var v: Fuzzilli_Protobuf_LoopBreak? var hadOneofValue = false if let current = self.operation { @@ -5164,7 +5216,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .loopBreak(v) } }() - case 160: try { + case 164: try { var v: Fuzzilli_Protobuf_LoopContinue? var hadOneofValue = false if let current = self.operation { @@ -5177,7 +5229,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .loopContinue(v) } }() - case 161: try { + case 165: try { var v: Fuzzilli_Protobuf_BeginTry? var hadOneofValue = false if let current = self.operation { @@ -5190,7 +5242,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginTry(v) } }() - case 162: try { + case 166: try { var v: Fuzzilli_Protobuf_BeginCatch? var hadOneofValue = false if let current = self.operation { @@ -5203,7 +5255,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginCatch(v) } }() - case 163: try { + case 167: try { var v: Fuzzilli_Protobuf_BeginFinally? var hadOneofValue = false if let current = self.operation { @@ -5216,7 +5268,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginFinally(v) } }() - case 164: try { + case 168: try { var v: Fuzzilli_Protobuf_EndTryCatchFinally? var hadOneofValue = false if let current = self.operation { @@ -5229,7 +5281,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endTryCatchFinally(v) } }() - case 165: try { + case 169: try { var v: Fuzzilli_Protobuf_ThrowException? var hadOneofValue = false if let current = self.operation { @@ -5242,7 +5294,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .throwException(v) } }() - case 166: try { + case 170: try { var v: Fuzzilli_Protobuf_BeginCodeString? var hadOneofValue = false if let current = self.operation { @@ -5255,7 +5307,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginCodeString(v) } }() - case 167: try { + case 171: try { var v: Fuzzilli_Protobuf_EndCodeString? var hadOneofValue = false if let current = self.operation { @@ -5268,7 +5320,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endCodeString(v) } }() - case 168: try { + case 172: try { var v: Fuzzilli_Protobuf_BeginBlockStatement? var hadOneofValue = false if let current = self.operation { @@ -5281,7 +5333,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginBlockStatement(v) } }() - case 169: try { + case 173: try { var v: Fuzzilli_Protobuf_EndBlockStatement? var hadOneofValue = false if let current = self.operation { @@ -5294,7 +5346,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endBlockStatement(v) } }() - case 170: try { + case 174: try { var v: Fuzzilli_Protobuf_BeginSwitch? var hadOneofValue = false if let current = self.operation { @@ -5307,7 +5359,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginSwitch(v) } }() - case 171: try { + case 175: try { var v: Fuzzilli_Protobuf_BeginSwitchCase? var hadOneofValue = false if let current = self.operation { @@ -5320,7 +5372,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginSwitchCase(v) } }() - case 172: try { + case 176: try { var v: Fuzzilli_Protobuf_BeginSwitchDefaultCase? var hadOneofValue = false if let current = self.operation { @@ -5333,7 +5385,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginSwitchDefaultCase(v) } }() - case 173: try { + case 177: try { var v: Fuzzilli_Protobuf_EndSwitchCase? var hadOneofValue = false if let current = self.operation { @@ -5346,7 +5398,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endSwitchCase(v) } }() - case 174: try { + case 178: try { var v: Fuzzilli_Protobuf_EndSwitch? var hadOneofValue = false if let current = self.operation { @@ -5359,7 +5411,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endSwitch(v) } }() - case 175: try { + case 179: try { var v: Fuzzilli_Protobuf_SwitchBreak? var hadOneofValue = false if let current = self.operation { @@ -5372,7 +5424,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .switchBreak(v) } }() - case 176: try { + case 180: try { var v: Fuzzilli_Protobuf_LoadNewTarget? var hadOneofValue = false if let current = self.operation { @@ -5385,7 +5437,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .loadNewTarget(v) } }() - case 177: try { + case 181: try { var v: Fuzzilli_Protobuf_Print? var hadOneofValue = false if let current = self.operation { @@ -5398,7 +5450,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .print(v) } }() - case 178: try { + case 182: try { var v: Fuzzilli_Protobuf_Explore? var hadOneofValue = false if let current = self.operation { @@ -5411,7 +5463,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .explore(v) } }() - case 179: try { + case 183: try { var v: Fuzzilli_Protobuf_Probe? var hadOneofValue = false if let current = self.operation { @@ -5424,7 +5476,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .probe(v) } }() - case 180: try { + case 184: try { var v: Fuzzilli_Protobuf_Fixup? var hadOneofValue = false if let current = self.operation { @@ -5437,7 +5489,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .fixup(v) } }() - case 181: try { + case 185: try { var v: Fuzzilli_Protobuf_BeginWasmModule? var hadOneofValue = false if let current = self.operation { @@ -5450,7 +5502,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWasmModule(v) } }() - case 182: try { + case 186: try { var v: Fuzzilli_Protobuf_EndWasmModule? var hadOneofValue = false if let current = self.operation { @@ -5463,7 +5515,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endWasmModule(v) } }() - case 183: try { + case 187: try { var v: Fuzzilli_Protobuf_CreateWasmGlobal? var hadOneofValue = false if let current = self.operation { @@ -5476,7 +5528,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmGlobal(v) } }() - case 184: try { + case 188: try { var v: Fuzzilli_Protobuf_CreateWasmMemory? var hadOneofValue = false if let current = self.operation { @@ -5489,7 +5541,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmMemory(v) } }() - case 185: try { + case 189: try { var v: Fuzzilli_Protobuf_CreateWasmTable? var hadOneofValue = false if let current = self.operation { @@ -5502,7 +5554,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmTable(v) } }() - case 186: try { + case 190: try { var v: Fuzzilli_Protobuf_CreateWasmJSTag? var hadOneofValue = false if let current = self.operation { @@ -5515,7 +5567,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmJstag(v) } }() - case 187: try { + case 191: try { var v: Fuzzilli_Protobuf_CreateWasmTag? var hadOneofValue = false if let current = self.operation { @@ -5528,7 +5580,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createWasmTag(v) } }() - case 188: try { + case 192: try { var v: Fuzzilli_Protobuf_WrapPromising? var hadOneofValue = false if let current = self.operation { @@ -5541,7 +5593,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wrapPromising(v) } }() - case 189: try { + case 193: try { var v: Fuzzilli_Protobuf_WrapSuspending? var hadOneofValue = false if let current = self.operation { @@ -5554,7 +5606,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wrapSuspending(v) } }() - case 190: try { + case 194: try { var v: Fuzzilli_Protobuf_BindMethod? var hadOneofValue = false if let current = self.operation { @@ -5567,7 +5619,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .bindMethod(v) } }() - case 191: try { + case 195: try { var v: Fuzzilli_Protobuf_BindFunction? var hadOneofValue = false if let current = self.operation { @@ -5580,7 +5632,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .bindFunction(v) } }() - case 192: try { + case 196: try { var v: Fuzzilli_Protobuf_Consti64? var hadOneofValue = false if let current = self.operation { @@ -5593,7 +5645,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .consti64(v) } }() - case 193: try { + case 197: try { var v: Fuzzilli_Protobuf_Consti32? var hadOneofValue = false if let current = self.operation { @@ -5606,7 +5658,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .consti32(v) } }() - case 194: try { + case 198: try { var v: Fuzzilli_Protobuf_Constf32? var hadOneofValue = false if let current = self.operation { @@ -5619,7 +5671,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .constf32(v) } }() - case 195: try { + case 199: try { var v: Fuzzilli_Protobuf_Constf64? var hadOneofValue = false if let current = self.operation { @@ -5632,7 +5684,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .constf64(v) } }() - case 196: try { + case 200: try { var v: Fuzzilli_Protobuf_WasmReturn? var hadOneofValue = false if let current = self.operation { @@ -5645,7 +5697,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReturn(v) } }() - case 197: try { + case 201: try { var v: Fuzzilli_Protobuf_WasmJsCall? var hadOneofValue = false if let current = self.operation { @@ -5658,7 +5710,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmJsCall(v) } }() - case 198: try { + case 202: try { var v: Fuzzilli_Protobuf_Wasmi32CompareOp? var hadOneofValue = false if let current = self.operation { @@ -5671,7 +5723,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi32CompareOp(v) } }() - case 199: try { + case 203: try { var v: Fuzzilli_Protobuf_Wasmi64CompareOp? var hadOneofValue = false if let current = self.operation { @@ -5684,7 +5736,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi64CompareOp(v) } }() - case 200: try { + case 204: try { var v: Fuzzilli_Protobuf_Wasmf32CompareOp? var hadOneofValue = false if let current = self.operation { @@ -5697,7 +5749,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf32CompareOp(v) } }() - case 201: try { + case 205: try { var v: Fuzzilli_Protobuf_Wasmf64CompareOp? var hadOneofValue = false if let current = self.operation { @@ -5710,7 +5762,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf64CompareOp(v) } }() - case 202: try { + case 206: try { var v: Fuzzilli_Protobuf_Wasmi32EqualZero? var hadOneofValue = false if let current = self.operation { @@ -5723,7 +5775,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi32EqualZero(v) } }() - case 203: try { + case 207: try { var v: Fuzzilli_Protobuf_Wasmi64EqualZero? var hadOneofValue = false if let current = self.operation { @@ -5736,7 +5788,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi64EqualZero(v) } }() - case 204: try { + case 208: try { var v: Fuzzilli_Protobuf_Wasmi32BinOp? var hadOneofValue = false if let current = self.operation { @@ -5749,7 +5801,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi32BinOp(v) } }() - case 205: try { + case 209: try { var v: Fuzzilli_Protobuf_Wasmi64BinOp? var hadOneofValue = false if let current = self.operation { @@ -5762,7 +5814,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi64BinOp(v) } }() - case 206: try { + case 210: try { var v: Fuzzilli_Protobuf_Wasmi32UnOp? var hadOneofValue = false if let current = self.operation { @@ -5775,7 +5827,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi32UnOp(v) } }() - case 207: try { + case 211: try { var v: Fuzzilli_Protobuf_Wasmi64UnOp? var hadOneofValue = false if let current = self.operation { @@ -5788,7 +5840,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmi64UnOp(v) } }() - case 208: try { + case 212: try { var v: Fuzzilli_Protobuf_Wasmf32BinOp? var hadOneofValue = false if let current = self.operation { @@ -5801,7 +5853,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf32BinOp(v) } }() - case 209: try { + case 213: try { var v: Fuzzilli_Protobuf_Wasmf64BinOp? var hadOneofValue = false if let current = self.operation { @@ -5814,7 +5866,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf64BinOp(v) } }() - case 210: try { + case 214: try { var v: Fuzzilli_Protobuf_Wasmf32UnOp? var hadOneofValue = false if let current = self.operation { @@ -5827,7 +5879,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf32UnOp(v) } }() - case 211: try { + case 215: try { var v: Fuzzilli_Protobuf_Wasmf64UnOp? var hadOneofValue = false if let current = self.operation { @@ -5840,7 +5892,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmf64UnOp(v) } }() - case 212: try { + case 216: try { var v: Fuzzilli_Protobuf_WasmWrapi64Toi32? var hadOneofValue = false if let current = self.operation { @@ -5853,7 +5905,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmWrapi64Toi32(v) } }() - case 213: try { + case 217: try { var v: Fuzzilli_Protobuf_WasmTruncatef32Toi32? var hadOneofValue = false if let current = self.operation { @@ -5866,7 +5918,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncatef32Toi32(v) } }() - case 214: try { + case 218: try { var v: Fuzzilli_Protobuf_WasmTruncatef64Toi32? var hadOneofValue = false if let current = self.operation { @@ -5879,7 +5931,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncatef64Toi32(v) } }() - case 215: try { + case 219: try { var v: Fuzzilli_Protobuf_WasmExtendi32Toi64? var hadOneofValue = false if let current = self.operation { @@ -5892,7 +5944,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmExtendi32Toi64(v) } }() - case 216: try { + case 220: try { var v: Fuzzilli_Protobuf_WasmTruncatef32Toi64? var hadOneofValue = false if let current = self.operation { @@ -5905,7 +5957,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncatef32Toi64(v) } }() - case 217: try { + case 221: try { var v: Fuzzilli_Protobuf_WasmTruncatef64Toi64? var hadOneofValue = false if let current = self.operation { @@ -5918,7 +5970,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncatef64Toi64(v) } }() - case 218: try { + case 222: try { var v: Fuzzilli_Protobuf_WasmConverti32Tof32? var hadOneofValue = false if let current = self.operation { @@ -5931,7 +5983,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmConverti32Tof32(v) } }() - case 219: try { + case 223: try { var v: Fuzzilli_Protobuf_WasmConverti64Tof32? var hadOneofValue = false if let current = self.operation { @@ -5944,7 +5996,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmConverti64Tof32(v) } }() - case 220: try { + case 224: try { var v: Fuzzilli_Protobuf_WasmDemotef64Tof32? var hadOneofValue = false if let current = self.operation { @@ -5957,7 +6009,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDemotef64Tof32(v) } }() - case 221: try { + case 225: try { var v: Fuzzilli_Protobuf_WasmConverti32Tof64? var hadOneofValue = false if let current = self.operation { @@ -5970,7 +6022,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmConverti32Tof64(v) } }() - case 222: try { + case 226: try { var v: Fuzzilli_Protobuf_WasmConverti64Tof64? var hadOneofValue = false if let current = self.operation { @@ -5983,7 +6035,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmConverti64Tof64(v) } }() - case 223: try { + case 227: try { var v: Fuzzilli_Protobuf_WasmPromotef32Tof64? var hadOneofValue = false if let current = self.operation { @@ -5996,7 +6048,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmPromotef32Tof64(v) } }() - case 224: try { + case 228: try { var v: Fuzzilli_Protobuf_WasmReinterpretf32Asi32? var hadOneofValue = false if let current = self.operation { @@ -6009,7 +6061,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReinterpretf32Asi32(v) } }() - case 225: try { + case 229: try { var v: Fuzzilli_Protobuf_WasmReinterpretf64Asi64? var hadOneofValue = false if let current = self.operation { @@ -6022,7 +6074,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReinterpretf64Asi64(v) } }() - case 226: try { + case 230: try { var v: Fuzzilli_Protobuf_WasmReinterpreti32Asf32? var hadOneofValue = false if let current = self.operation { @@ -6035,7 +6087,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReinterpreti32Asf32(v) } }() - case 227: try { + case 231: try { var v: Fuzzilli_Protobuf_WasmReinterpreti64Asf64? var hadOneofValue = false if let current = self.operation { @@ -6048,7 +6100,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReinterpreti64Asf64(v) } }() - case 228: try { + case 232: try { var v: Fuzzilli_Protobuf_WasmSignExtend8Intoi32? var hadOneofValue = false if let current = self.operation { @@ -6061,7 +6113,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend8Intoi32(v) } }() - case 229: try { + case 233: try { var v: Fuzzilli_Protobuf_WasmSignExtend16Intoi32? var hadOneofValue = false if let current = self.operation { @@ -6074,7 +6126,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend16Intoi32(v) } }() - case 230: try { + case 234: try { var v: Fuzzilli_Protobuf_WasmSignExtend8Intoi64? var hadOneofValue = false if let current = self.operation { @@ -6087,7 +6139,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend8Intoi64(v) } }() - case 231: try { + case 235: try { var v: Fuzzilli_Protobuf_WasmSignExtend16Intoi64? var hadOneofValue = false if let current = self.operation { @@ -6100,7 +6152,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend16Intoi64(v) } }() - case 232: try { + case 236: try { var v: Fuzzilli_Protobuf_WasmSignExtend32Intoi64? var hadOneofValue = false if let current = self.operation { @@ -6113,7 +6165,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSignExtend32Intoi64(v) } }() - case 233: try { + case 237: try { var v: Fuzzilli_Protobuf_WasmTruncateSatf32Toi32? var hadOneofValue = false if let current = self.operation { @@ -6126,7 +6178,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncateSatf32Toi32(v) } }() - case 234: try { + case 238: try { var v: Fuzzilli_Protobuf_WasmTruncateSatf64Toi32? var hadOneofValue = false if let current = self.operation { @@ -6139,7 +6191,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncateSatf64Toi32(v) } }() - case 235: try { + case 239: try { var v: Fuzzilli_Protobuf_WasmTruncateSatf32Toi64? var hadOneofValue = false if let current = self.operation { @@ -6152,7 +6204,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncateSatf32Toi64(v) } }() - case 236: try { + case 240: try { var v: Fuzzilli_Protobuf_WasmTruncateSatf64Toi64? var hadOneofValue = false if let current = self.operation { @@ -6165,7 +6217,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTruncateSatf64Toi64(v) } }() - case 237: try { + case 241: try { var v: Fuzzilli_Protobuf_WasmReassign? var hadOneofValue = false if let current = self.operation { @@ -6178,7 +6230,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReassign(v) } }() - case 238: try { + case 242: try { var v: Fuzzilli_Protobuf_WasmDefineGlobal? var hadOneofValue = false if let current = self.operation { @@ -6191,7 +6243,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineGlobal(v) } }() - case 239: try { + case 243: try { var v: Fuzzilli_Protobuf_WasmDefineTable? var hadOneofValue = false if let current = self.operation { @@ -6204,7 +6256,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineTable(v) } }() - case 240: try { + case 244: try { var v: Fuzzilli_Protobuf_WasmDefineMemory? var hadOneofValue = false if let current = self.operation { @@ -6217,7 +6269,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineMemory(v) } }() - case 241: try { + case 245: try { var v: Fuzzilli_Protobuf_WasmDefineDataSegment? var hadOneofValue = false if let current = self.operation { @@ -6230,7 +6282,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineDataSegment(v) } }() - case 242: try { + case 246: try { var v: Fuzzilli_Protobuf_WasmLoadGlobal? var hadOneofValue = false if let current = self.operation { @@ -6243,7 +6295,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmLoadGlobal(v) } }() - case 243: try { + case 247: try { var v: Fuzzilli_Protobuf_WasmStoreGlobal? var hadOneofValue = false if let current = self.operation { @@ -6256,7 +6308,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmStoreGlobal(v) } }() - case 244: try { + case 248: try { var v: Fuzzilli_Protobuf_WasmTableGet? var hadOneofValue = false if let current = self.operation { @@ -6269,7 +6321,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableGet(v) } }() - case 245: try { + case 249: try { var v: Fuzzilli_Protobuf_WasmTableSet? var hadOneofValue = false if let current = self.operation { @@ -6282,7 +6334,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableSet(v) } }() - case 246: try { + case 250: try { var v: Fuzzilli_Protobuf_WasmTableSize? var hadOneofValue = false if let current = self.operation { @@ -6295,7 +6347,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableSize(v) } }() - case 247: try { + case 251: try { var v: Fuzzilli_Protobuf_WasmTableGrow? var hadOneofValue = false if let current = self.operation { @@ -6308,7 +6360,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableGrow(v) } }() - case 248: try { + case 252: try { var v: Fuzzilli_Protobuf_WasmCallIndirect? var hadOneofValue = false if let current = self.operation { @@ -6321,7 +6373,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmCallIndirect(v) } }() - case 249: try { + case 253: try { var v: Fuzzilli_Protobuf_WasmCallDirect? var hadOneofValue = false if let current = self.operation { @@ -6334,7 +6386,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmCallDirect(v) } }() - case 250: try { + case 254: try { var v: Fuzzilli_Protobuf_WasmReturnCallDirect? var hadOneofValue = false if let current = self.operation { @@ -6347,7 +6399,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReturnCallDirect(v) } }() - case 251: try { + case 255: try { var v: Fuzzilli_Protobuf_WasmReturnCallIndirect? var hadOneofValue = false if let current = self.operation { @@ -6360,7 +6412,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmReturnCallIndirect(v) } }() - case 252: try { + case 256: try { var v: Fuzzilli_Protobuf_WasmMemoryLoad? var hadOneofValue = false if let current = self.operation { @@ -6373,7 +6425,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryLoad(v) } }() - case 253: try { + case 257: try { var v: Fuzzilli_Protobuf_WasmMemoryStore? var hadOneofValue = false if let current = self.operation { @@ -6386,7 +6438,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryStore(v) } }() - case 254: try { + case 258: try { var v: Fuzzilli_Protobuf_WasmAtomicLoad? var hadOneofValue = false if let current = self.operation { @@ -6399,7 +6451,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAtomicLoad(v) } }() - case 255: try { + case 259: try { var v: Fuzzilli_Protobuf_WasmAtomicStore? var hadOneofValue = false if let current = self.operation { @@ -6412,7 +6464,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAtomicStore(v) } }() - case 256: try { + case 260: try { var v: Fuzzilli_Protobuf_WasmAtomicRMW? var hadOneofValue = false if let current = self.operation { @@ -6425,7 +6477,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAtomicRmw(v) } }() - case 257: try { + case 261: try { var v: Fuzzilli_Protobuf_WasmAtomicCmpxchg? var hadOneofValue = false if let current = self.operation { @@ -6438,7 +6490,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAtomicCmpxchg(v) } }() - case 258: try { + case 262: try { var v: Fuzzilli_Protobuf_WasmMemorySize? var hadOneofValue = false if let current = self.operation { @@ -6451,7 +6503,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemorySize(v) } }() - case 259: try { + case 263: try { var v: Fuzzilli_Protobuf_WasmMemoryGrow? var hadOneofValue = false if let current = self.operation { @@ -6464,7 +6516,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryGrow(v) } }() - case 260: try { + case 264: try { var v: Fuzzilli_Protobuf_WasmMemoryFill? var hadOneofValue = false if let current = self.operation { @@ -6477,7 +6529,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryFill(v) } }() - case 261: try { + case 265: try { var v: Fuzzilli_Protobuf_WasmMemoryInit? var hadOneofValue = false if let current = self.operation { @@ -6490,7 +6542,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryInit(v) } }() - case 262: try { + case 266: try { var v: Fuzzilli_Protobuf_WasmDropDataSegment? var hadOneofValue = false if let current = self.operation { @@ -6503,7 +6555,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDropDataSegment(v) } }() - case 263: try { + case 267: try { var v: Fuzzilli_Protobuf_BeginWasmFunction? var hadOneofValue = false if let current = self.operation { @@ -6516,7 +6568,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .beginWasmFunction(v) } }() - case 264: try { + case 268: try { var v: Fuzzilli_Protobuf_EndWasmFunction? var hadOneofValue = false if let current = self.operation { @@ -6529,7 +6581,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .endWasmFunction(v) } }() - case 265: try { + case 269: try { var v: Fuzzilli_Protobuf_WasmBeginBlock? var hadOneofValue = false if let current = self.operation { @@ -6542,7 +6594,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginBlock(v) } }() - case 266: try { + case 270: try { var v: Fuzzilli_Protobuf_WasmEndBlock? var hadOneofValue = false if let current = self.operation { @@ -6555,7 +6607,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndBlock(v) } }() - case 267: try { + case 271: try { var v: Fuzzilli_Protobuf_WasmBeginLoop? var hadOneofValue = false if let current = self.operation { @@ -6568,7 +6620,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginLoop(v) } }() - case 268: try { + case 272: try { var v: Fuzzilli_Protobuf_WasmEndLoop? var hadOneofValue = false if let current = self.operation { @@ -6581,7 +6633,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndLoop(v) } }() - case 269: try { + case 273: try { var v: Fuzzilli_Protobuf_WasmBranch? var hadOneofValue = false if let current = self.operation { @@ -6594,7 +6646,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBranch(v) } }() - case 270: try { + case 274: try { var v: Fuzzilli_Protobuf_WasmBranchIf? var hadOneofValue = false if let current = self.operation { @@ -6607,7 +6659,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBranchIf(v) } }() - case 271: try { + case 275: try { var v: Fuzzilli_Protobuf_WasmBranchTable? var hadOneofValue = false if let current = self.operation { @@ -6620,7 +6672,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBranchTable(v) } }() - case 272: try { + case 276: try { var v: Fuzzilli_Protobuf_WasmNop? var hadOneofValue = false if let current = self.operation { @@ -6633,7 +6685,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmNop(v) } }() - case 273: try { + case 277: try { var v: Fuzzilli_Protobuf_WasmBeginIf? var hadOneofValue = false if let current = self.operation { @@ -6646,7 +6698,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginIf(v) } }() - case 274: try { + case 278: try { var v: Fuzzilli_Protobuf_WasmBeginElse? var hadOneofValue = false if let current = self.operation { @@ -6659,7 +6711,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginElse(v) } }() - case 275: try { + case 279: try { var v: Fuzzilli_Protobuf_WasmEndIf? var hadOneofValue = false if let current = self.operation { @@ -6672,7 +6724,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndIf(v) } }() - case 276: try { + case 280: try { var v: Fuzzilli_Protobuf_WasmBeginTryTable? var hadOneofValue = false if let current = self.operation { @@ -6685,7 +6737,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginTryTable(v) } }() - case 277: try { + case 281: try { var v: Fuzzilli_Protobuf_WasmEndTryTable? var hadOneofValue = false if let current = self.operation { @@ -6698,7 +6750,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndTryTable(v) } }() - case 278: try { + case 282: try { var v: Fuzzilli_Protobuf_WasmBeginTry? var hadOneofValue = false if let current = self.operation { @@ -6711,7 +6763,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginTry(v) } }() - case 279: try { + case 283: try { var v: Fuzzilli_Protobuf_WasmBeginCatchAll? var hadOneofValue = false if let current = self.operation { @@ -6724,7 +6776,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginCatchAll(v) } }() - case 280: try { + case 284: try { var v: Fuzzilli_Protobuf_WasmBeginCatch? var hadOneofValue = false if let current = self.operation { @@ -6737,7 +6789,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginCatch(v) } }() - case 281: try { + case 285: try { var v: Fuzzilli_Protobuf_WasmEndTry? var hadOneofValue = false if let current = self.operation { @@ -6750,7 +6802,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndTry(v) } }() - case 282: try { + case 286: try { var v: Fuzzilli_Protobuf_WasmBeginTryDelegate? var hadOneofValue = false if let current = self.operation { @@ -6763,7 +6815,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginTryDelegate(v) } }() - case 283: try { + case 287: try { var v: Fuzzilli_Protobuf_WasmEndTryDelegate? var hadOneofValue = false if let current = self.operation { @@ -6776,7 +6828,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndTryDelegate(v) } }() - case 284: try { + case 288: try { var v: Fuzzilli_Protobuf_WasmThrow? var hadOneofValue = false if let current = self.operation { @@ -6789,7 +6841,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmThrow(v) } }() - case 285: try { + case 289: try { var v: Fuzzilli_Protobuf_WasmRethrow? var hadOneofValue = false if let current = self.operation { @@ -6802,7 +6854,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmRethrow(v) } }() - case 286: try { + case 290: try { var v: Fuzzilli_Protobuf_WasmThrowRef? var hadOneofValue = false if let current = self.operation { @@ -6815,7 +6867,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmThrowRef(v) } }() - case 287: try { + case 291: try { var v: Fuzzilli_Protobuf_WasmDefineTag? var hadOneofValue = false if let current = self.operation { @@ -6828,7 +6880,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineTag(v) } }() - case 288: try { + case 292: try { var v: Fuzzilli_Protobuf_ConstSimd128? var hadOneofValue = false if let current = self.operation { @@ -6841,7 +6893,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .constSimd128(v) } }() - case 289: try { + case 293: try { var v: Fuzzilli_Protobuf_WasmSimd128Compare? var hadOneofValue = false if let current = self.operation { @@ -6854,7 +6906,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128Compare(v) } }() - case 290: try { + case 294: try { var v: Fuzzilli_Protobuf_WasmSimd128IntegerUnOp? var hadOneofValue = false if let current = self.operation { @@ -6867,7 +6919,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128IntegerUnOp(v) } }() - case 291: try { + case 295: try { var v: Fuzzilli_Protobuf_WasmSimd128IntegerBinOp? var hadOneofValue = false if let current = self.operation { @@ -6880,7 +6932,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128IntegerBinOp(v) } }() - case 292: try { + case 296: try { var v: Fuzzilli_Protobuf_WasmSimd128IntegerTernaryOp? var hadOneofValue = false if let current = self.operation { @@ -6893,7 +6945,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128IntegerTernaryOp(v) } }() - case 293: try { + case 297: try { var v: Fuzzilli_Protobuf_WasmSimd128FloatUnOp? var hadOneofValue = false if let current = self.operation { @@ -6906,7 +6958,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128FloatUnOp(v) } }() - case 294: try { + case 298: try { var v: Fuzzilli_Protobuf_WasmSimd128FloatBinOp? var hadOneofValue = false if let current = self.operation { @@ -6919,7 +6971,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128FloatBinOp(v) } }() - case 295: try { + case 299: try { var v: Fuzzilli_Protobuf_WasmSimd128FloatTernaryOp? var hadOneofValue = false if let current = self.operation { @@ -6932,7 +6984,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimd128FloatTernaryOp(v) } }() - case 296: try { + case 300: try { var v: Fuzzilli_Protobuf_WasmSimdSplat? var hadOneofValue = false if let current = self.operation { @@ -6945,7 +6997,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdSplat(v) } }() - case 297: try { + case 301: try { var v: Fuzzilli_Protobuf_WasmSimdExtractLane? var hadOneofValue = false if let current = self.operation { @@ -6958,7 +7010,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdExtractLane(v) } }() - case 298: try { + case 302: try { var v: Fuzzilli_Protobuf_WasmSimdReplaceLane? var hadOneofValue = false if let current = self.operation { @@ -6971,7 +7023,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdReplaceLane(v) } }() - case 299: try { + case 303: try { var v: Fuzzilli_Protobuf_WasmSimdStoreLane? var hadOneofValue = false if let current = self.operation { @@ -6984,7 +7036,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdStoreLane(v) } }() - case 300: try { + case 304: try { var v: Fuzzilli_Protobuf_WasmSimdLoadLane? var hadOneofValue = false if let current = self.operation { @@ -6997,7 +7049,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdLoadLane(v) } }() - case 301: try { + case 305: try { var v: Fuzzilli_Protobuf_WasmSimdLoad? var hadOneofValue = false if let current = self.operation { @@ -7010,7 +7062,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSimdLoad(v) } }() - case 302: try { + case 306: try { var v: Fuzzilli_Protobuf_WasmUnreachable? var hadOneofValue = false if let current = self.operation { @@ -7023,7 +7075,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmUnreachable(v) } }() - case 303: try { + case 307: try { var v: Fuzzilli_Protobuf_WasmSelect? var hadOneofValue = false if let current = self.operation { @@ -7036,7 +7088,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmSelect(v) } }() - case 304: try { + case 308: try { var v: Fuzzilli_Protobuf_WasmBeginTypeGroup? var hadOneofValue = false if let current = self.operation { @@ -7049,7 +7101,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmBeginTypeGroup(v) } }() - case 305: try { + case 309: try { var v: Fuzzilli_Protobuf_WasmEndTypeGroup? var hadOneofValue = false if let current = self.operation { @@ -7062,7 +7114,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmEndTypeGroup(v) } }() - case 306: try { + case 310: try { var v: Fuzzilli_Protobuf_WasmDefineArrayType? var hadOneofValue = false if let current = self.operation { @@ -7075,7 +7127,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineArrayType(v) } }() - case 307: try { + case 311: try { var v: Fuzzilli_Protobuf_WasmDefineStructType? var hadOneofValue = false if let current = self.operation { @@ -7088,7 +7140,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineStructType(v) } }() - case 308: try { + case 312: try { var v: Fuzzilli_Protobuf_WasmDefineForwardOrSelfReference? var hadOneofValue = false if let current = self.operation { @@ -7101,7 +7153,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineForwardOrSelfReference(v) } }() - case 309: try { + case 313: try { var v: Fuzzilli_Protobuf_WasmResolveForwardReference? var hadOneofValue = false if let current = self.operation { @@ -7114,7 +7166,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmResolveForwardReference(v) } }() - case 310: try { + case 314: try { var v: Fuzzilli_Protobuf_WasmArrayNewFixed? var hadOneofValue = false if let current = self.operation { @@ -7127,7 +7179,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArrayNewFixed(v) } }() - case 311: try { + case 315: try { var v: Fuzzilli_Protobuf_WasmArrayNewDefault? var hadOneofValue = false if let current = self.operation { @@ -7140,7 +7192,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArrayNewDefault(v) } }() - case 312: try { + case 316: try { var v: Fuzzilli_Protobuf_WasmArrayLen? var hadOneofValue = false if let current = self.operation { @@ -7153,7 +7205,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArrayLen(v) } }() - case 313: try { + case 317: try { var v: Fuzzilli_Protobuf_WasmArrayGet? var hadOneofValue = false if let current = self.operation { @@ -7166,7 +7218,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArrayGet(v) } }() - case 314: try { + case 318: try { var v: Fuzzilli_Protobuf_WasmArraySet? var hadOneofValue = false if let current = self.operation { @@ -7179,7 +7231,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmArraySet(v) } }() - case 315: try { + case 319: try { var v: Fuzzilli_Protobuf_WasmStructNewDefault? var hadOneofValue = false if let current = self.operation { @@ -7192,7 +7244,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmStructNewDefault(v) } }() - case 316: try { + case 320: try { var v: Fuzzilli_Protobuf_WasmStructGet? var hadOneofValue = false if let current = self.operation { @@ -7205,7 +7257,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmStructGet(v) } }() - case 317: try { + case 321: try { var v: Fuzzilli_Protobuf_WasmStructSet? var hadOneofValue = false if let current = self.operation { @@ -7218,7 +7270,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmStructSet(v) } }() - case 318: try { + case 322: try { var v: Fuzzilli_Protobuf_WasmRefNull? var hadOneofValue = false if let current = self.operation { @@ -7231,7 +7283,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmRefNull(v) } }() - case 319: try { + case 323: try { var v: Fuzzilli_Protobuf_WasmRefIsNull? var hadOneofValue = false if let current = self.operation { @@ -7244,7 +7296,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmRefIsNull(v) } }() - case 320: try { + case 324: try { var v: Fuzzilli_Protobuf_WasmRefI31? var hadOneofValue = false if let current = self.operation { @@ -7257,7 +7309,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmRefI31(v) } }() - case 321: try { + case 325: try { var v: Fuzzilli_Protobuf_WasmI31Get? var hadOneofValue = false if let current = self.operation { @@ -7270,7 +7322,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmI31Get(v) } }() - case 322: try { + case 326: try { var v: Fuzzilli_Protobuf_WasmAnyConvertExtern? var hadOneofValue = false if let current = self.operation { @@ -7283,7 +7335,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmAnyConvertExtern(v) } }() - case 323: try { + case 327: try { var v: Fuzzilli_Protobuf_WasmExternConvertAny? var hadOneofValue = false if let current = self.operation { @@ -7296,7 +7348,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmExternConvertAny(v) } }() - case 324: try { + case 328: try { var v: Fuzzilli_Protobuf_WasmMemoryCopy? var hadOneofValue = false if let current = self.operation { @@ -7309,7 +7361,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmMemoryCopy(v) } }() - case 325: try { + case 329: try { var v: Fuzzilli_Protobuf_WasmDefineElementSegment? var hadOneofValue = false if let current = self.operation { @@ -7322,7 +7374,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineElementSegment(v) } }() - case 326: try { + case 330: try { var v: Fuzzilli_Protobuf_WasmTableInit? var hadOneofValue = false if let current = self.operation { @@ -7335,7 +7387,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableInit(v) } }() - case 327: try { + case 331: try { var v: Fuzzilli_Protobuf_WasmDropElementSegment? var hadOneofValue = false if let current = self.operation { @@ -7348,7 +7400,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDropElementSegment(v) } }() - case 328: try { + case 332: try { var v: Fuzzilli_Protobuf_WasmTableCopy? var hadOneofValue = false if let current = self.operation { @@ -7361,7 +7413,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmTableCopy(v) } }() - case 329: try { + case 333: try { var v: Fuzzilli_Protobuf_WasmDefineSignatureType? var hadOneofValue = false if let current = self.operation { @@ -7374,7 +7426,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .wasmDefineSignatureType(v) } }() - case 330: try { + case 334: try { var v: Fuzzilli_Protobuf_CreateNamedDisposableVariable? var hadOneofValue = false if let current = self.operation { @@ -7387,7 +7439,7 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createNamedDisposableVariable(v) } }() - case 331: try { + case 335: try { var v: Fuzzilli_Protobuf_CreateNamedAsyncDisposableVariable? var hadOneofValue = false if let current = self.operation { @@ -7400,58 +7452,6 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M self.operation = .createNamedAsyncDisposableVariable(v) } }() - case 332: try { - var v: Fuzzilli_Protobuf_BeginClassInstanceComputedMethod? - var hadOneofValue = false - if let current = self.operation { - hadOneofValue = true - if case .beginClassInstanceComputedMethod(let m) = current {v = m} - } - try decoder.decodeSingularMessageField(value: &v) - if let v = v { - if hadOneofValue {try decoder.handleConflictingOneOf()} - self.operation = .beginClassInstanceComputedMethod(v) - } - }() - case 333: try { - var v: Fuzzilli_Protobuf_EndClassInstanceComputedMethod? - var hadOneofValue = false - if let current = self.operation { - hadOneofValue = true - if case .endClassInstanceComputedMethod(let m) = current {v = m} - } - try decoder.decodeSingularMessageField(value: &v) - if let v = v { - if hadOneofValue {try decoder.handleConflictingOneOf()} - self.operation = .endClassInstanceComputedMethod(v) - } - }() - case 334: try { - var v: Fuzzilli_Protobuf_BeginClassStaticComputedMethod? - var hadOneofValue = false - if let current = self.operation { - hadOneofValue = true - if case .beginClassStaticComputedMethod(let m) = current {v = m} - } - try decoder.decodeSingularMessageField(value: &v) - if let v = v { - if hadOneofValue {try decoder.handleConflictingOneOf()} - self.operation = .beginClassStaticComputedMethod(v) - } - }() - case 335: try { - var v: Fuzzilli_Protobuf_EndClassStaticComputedMethod? - var hadOneofValue = false - if let current = self.operation { - hadOneofValue = true - if case .endClassStaticComputedMethod(let m) = current {v = m} - } - try decoder.decodeSingularMessageField(value: &v) - if let v = v { - if hadOneofValue {try decoder.handleConflictingOneOf()} - self.operation = .endClassStaticComputedMethod(v) - } - }() default: break } } @@ -7618,1188 +7618,1188 @@ extension Fuzzilli_Protobuf_Instruction: SwiftProtobuf.Message, SwiftProtobuf._M guard case .endClassInstanceMethod(let v)? = self.operation else { preconditionFailure() } try visitor.visitSingularMessageField(value: v, fieldNumber: 39) }() + case .beginClassInstanceComputedMethod?: try { + guard case .beginClassInstanceComputedMethod(let v)? = self.operation else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 40) + }() + case .endClassInstanceComputedMethod?: try { + guard case .endClassInstanceComputedMethod(let v)? = self.operation else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 41) + }() case .beginClassInstanceGetter?: try { guard case .beginClassInstanceGetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 40) + try visitor.visitSingularMessageField(value: v, fieldNumber: 42) }() case .endClassInstanceGetter?: try { guard case .endClassInstanceGetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 41) + try visitor.visitSingularMessageField(value: v, fieldNumber: 43) }() case .beginClassInstanceSetter?: try { guard case .beginClassInstanceSetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 42) + try visitor.visitSingularMessageField(value: v, fieldNumber: 44) }() case .endClassInstanceSetter?: try { guard case .endClassInstanceSetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 43) + try visitor.visitSingularMessageField(value: v, fieldNumber: 45) }() case .classAddStaticProperty?: try { guard case .classAddStaticProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 44) + try visitor.visitSingularMessageField(value: v, fieldNumber: 46) }() case .classAddStaticElement?: try { guard case .classAddStaticElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 45) + try visitor.visitSingularMessageField(value: v, fieldNumber: 47) }() case .classAddStaticComputedProperty?: try { guard case .classAddStaticComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 46) + try visitor.visitSingularMessageField(value: v, fieldNumber: 48) }() case .beginClassStaticInitializer?: try { guard case .beginClassStaticInitializer(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 47) + try visitor.visitSingularMessageField(value: v, fieldNumber: 49) }() case .endClassStaticInitializer?: try { guard case .endClassStaticInitializer(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 48) + try visitor.visitSingularMessageField(value: v, fieldNumber: 50) }() case .beginClassStaticMethod?: try { guard case .beginClassStaticMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 49) + try visitor.visitSingularMessageField(value: v, fieldNumber: 51) }() case .endClassStaticMethod?: try { guard case .endClassStaticMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 50) + try visitor.visitSingularMessageField(value: v, fieldNumber: 52) + }() + case .beginClassStaticComputedMethod?: try { + guard case .beginClassStaticComputedMethod(let v)? = self.operation else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 53) + }() + case .endClassStaticComputedMethod?: try { + guard case .endClassStaticComputedMethod(let v)? = self.operation else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 54) }() case .beginClassStaticGetter?: try { guard case .beginClassStaticGetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 51) + try visitor.visitSingularMessageField(value: v, fieldNumber: 55) }() case .endClassStaticGetter?: try { guard case .endClassStaticGetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 52) + try visitor.visitSingularMessageField(value: v, fieldNumber: 56) }() case .beginClassStaticSetter?: try { guard case .beginClassStaticSetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 53) + try visitor.visitSingularMessageField(value: v, fieldNumber: 57) }() case .endClassStaticSetter?: try { guard case .endClassStaticSetter(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 54) + try visitor.visitSingularMessageField(value: v, fieldNumber: 58) }() case .classAddPrivateInstanceProperty?: try { guard case .classAddPrivateInstanceProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 55) + try visitor.visitSingularMessageField(value: v, fieldNumber: 59) }() case .beginClassPrivateInstanceMethod?: try { guard case .beginClassPrivateInstanceMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 56) + try visitor.visitSingularMessageField(value: v, fieldNumber: 60) }() case .endClassPrivateInstanceMethod?: try { guard case .endClassPrivateInstanceMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 57) + try visitor.visitSingularMessageField(value: v, fieldNumber: 61) }() case .classAddPrivateStaticProperty?: try { guard case .classAddPrivateStaticProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 58) + try visitor.visitSingularMessageField(value: v, fieldNumber: 62) }() case .beginClassPrivateStaticMethod?: try { guard case .beginClassPrivateStaticMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 59) + try visitor.visitSingularMessageField(value: v, fieldNumber: 63) }() case .endClassPrivateStaticMethod?: try { guard case .endClassPrivateStaticMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 60) + try visitor.visitSingularMessageField(value: v, fieldNumber: 64) }() case .endClassDefinition?: try { guard case .endClassDefinition(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 61) + try visitor.visitSingularMessageField(value: v, fieldNumber: 65) }() case .createArray?: try { guard case .createArray(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 62) + try visitor.visitSingularMessageField(value: v, fieldNumber: 66) }() case .createIntArray?: try { guard case .createIntArray(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 63) + try visitor.visitSingularMessageField(value: v, fieldNumber: 67) }() case .createFloatArray?: try { guard case .createFloatArray(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 64) + try visitor.visitSingularMessageField(value: v, fieldNumber: 68) }() case .createArrayWithSpread?: try { guard case .createArrayWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 65) + try visitor.visitSingularMessageField(value: v, fieldNumber: 69) }() case .createTemplateString?: try { guard case .createTemplateString(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 66) + try visitor.visitSingularMessageField(value: v, fieldNumber: 70) }() case .getProperty?: try { guard case .getProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 67) + try visitor.visitSingularMessageField(value: v, fieldNumber: 71) }() case .setProperty?: try { guard case .setProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 68) + try visitor.visitSingularMessageField(value: v, fieldNumber: 72) }() case .updateProperty?: try { guard case .updateProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 69) + try visitor.visitSingularMessageField(value: v, fieldNumber: 73) }() case .deleteProperty?: try { guard case .deleteProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 70) + try visitor.visitSingularMessageField(value: v, fieldNumber: 74) }() case .configureProperty?: try { guard case .configureProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 71) + try visitor.visitSingularMessageField(value: v, fieldNumber: 75) }() case .getElement?: try { guard case .getElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 72) + try visitor.visitSingularMessageField(value: v, fieldNumber: 76) }() case .setElement?: try { guard case .setElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 73) + try visitor.visitSingularMessageField(value: v, fieldNumber: 77) }() case .updateElement?: try { guard case .updateElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 74) + try visitor.visitSingularMessageField(value: v, fieldNumber: 78) }() case .deleteElement?: try { guard case .deleteElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 75) + try visitor.visitSingularMessageField(value: v, fieldNumber: 79) }() case .configureElement?: try { guard case .configureElement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 76) + try visitor.visitSingularMessageField(value: v, fieldNumber: 80) }() case .getComputedProperty?: try { guard case .getComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 77) + try visitor.visitSingularMessageField(value: v, fieldNumber: 81) }() case .setComputedProperty?: try { guard case .setComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 78) + try visitor.visitSingularMessageField(value: v, fieldNumber: 82) }() case .updateComputedProperty?: try { guard case .updateComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 79) + try visitor.visitSingularMessageField(value: v, fieldNumber: 83) }() case .deleteComputedProperty?: try { guard case .deleteComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 80) + try visitor.visitSingularMessageField(value: v, fieldNumber: 84) }() case .configureComputedProperty?: try { guard case .configureComputedProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 81) + try visitor.visitSingularMessageField(value: v, fieldNumber: 85) }() case .typeOf?: try { guard case .typeOf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 82) + try visitor.visitSingularMessageField(value: v, fieldNumber: 86) }() case .void?: try { guard case .void(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 83) + try visitor.visitSingularMessageField(value: v, fieldNumber: 87) }() case .testInstanceOf?: try { guard case .testInstanceOf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 84) + try visitor.visitSingularMessageField(value: v, fieldNumber: 88) }() case .testIn?: try { guard case .testIn(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 85) + try visitor.visitSingularMessageField(value: v, fieldNumber: 89) }() case .beginPlainFunction?: try { guard case .beginPlainFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 86) + try visitor.visitSingularMessageField(value: v, fieldNumber: 90) }() case .endPlainFunction?: try { guard case .endPlainFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 87) + try visitor.visitSingularMessageField(value: v, fieldNumber: 91) }() case .beginArrowFunction?: try { guard case .beginArrowFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 88) + try visitor.visitSingularMessageField(value: v, fieldNumber: 92) }() case .endArrowFunction?: try { guard case .endArrowFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 89) + try visitor.visitSingularMessageField(value: v, fieldNumber: 93) }() case .beginGeneratorFunction?: try { guard case .beginGeneratorFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 90) + try visitor.visitSingularMessageField(value: v, fieldNumber: 94) }() case .endGeneratorFunction?: try { guard case .endGeneratorFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 91) + try visitor.visitSingularMessageField(value: v, fieldNumber: 95) }() case .beginAsyncFunction?: try { guard case .beginAsyncFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 92) + try visitor.visitSingularMessageField(value: v, fieldNumber: 96) }() case .endAsyncFunction?: try { guard case .endAsyncFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 93) + try visitor.visitSingularMessageField(value: v, fieldNumber: 97) }() case .beginAsyncArrowFunction?: try { guard case .beginAsyncArrowFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 94) + try visitor.visitSingularMessageField(value: v, fieldNumber: 98) }() case .endAsyncArrowFunction?: try { guard case .endAsyncArrowFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 95) + try visitor.visitSingularMessageField(value: v, fieldNumber: 99) }() case .beginAsyncGeneratorFunction?: try { guard case .beginAsyncGeneratorFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 96) + try visitor.visitSingularMessageField(value: v, fieldNumber: 100) }() case .endAsyncGeneratorFunction?: try { guard case .endAsyncGeneratorFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 97) + try visitor.visitSingularMessageField(value: v, fieldNumber: 101) }() case .beginConstructor?: try { guard case .beginConstructor(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 98) + try visitor.visitSingularMessageField(value: v, fieldNumber: 102) }() case .endConstructor?: try { guard case .endConstructor(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 99) + try visitor.visitSingularMessageField(value: v, fieldNumber: 103) }() case .directive?: try { guard case .directive(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 100) + try visitor.visitSingularMessageField(value: v, fieldNumber: 104) }() case .return?: try { guard case .return(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 101) + try visitor.visitSingularMessageField(value: v, fieldNumber: 105) }() case .yield?: try { guard case .yield(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 102) + try visitor.visitSingularMessageField(value: v, fieldNumber: 106) }() case .yieldEach?: try { guard case .yieldEach(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 103) + try visitor.visitSingularMessageField(value: v, fieldNumber: 107) }() case .await?: try { guard case .await(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 104) + try visitor.visitSingularMessageField(value: v, fieldNumber: 108) }() case .callFunction?: try { guard case .callFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 105) + try visitor.visitSingularMessageField(value: v, fieldNumber: 109) }() case .callFunctionWithSpread?: try { guard case .callFunctionWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 106) + try visitor.visitSingularMessageField(value: v, fieldNumber: 110) }() case .construct?: try { guard case .construct(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 107) + try visitor.visitSingularMessageField(value: v, fieldNumber: 111) }() case .constructWithSpread?: try { guard case .constructWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 108) + try visitor.visitSingularMessageField(value: v, fieldNumber: 112) }() case .callMethod?: try { guard case .callMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 109) + try visitor.visitSingularMessageField(value: v, fieldNumber: 113) }() case .callMethodWithSpread?: try { guard case .callMethodWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 110) + try visitor.visitSingularMessageField(value: v, fieldNumber: 114) }() case .callComputedMethod?: try { guard case .callComputedMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 111) + try visitor.visitSingularMessageField(value: v, fieldNumber: 115) }() case .callComputedMethodWithSpread?: try { guard case .callComputedMethodWithSpread(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 112) + try visitor.visitSingularMessageField(value: v, fieldNumber: 116) }() case .unaryOperation?: try { guard case .unaryOperation(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 113) + try visitor.visitSingularMessageField(value: v, fieldNumber: 117) }() case .binaryOperation?: try { guard case .binaryOperation(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 114) + try visitor.visitSingularMessageField(value: v, fieldNumber: 118) }() case .ternaryOperation?: try { guard case .ternaryOperation(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 115) + try visitor.visitSingularMessageField(value: v, fieldNumber: 119) }() case .update?: try { guard case .update(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 116) + try visitor.visitSingularMessageField(value: v, fieldNumber: 120) }() case .dup?: try { guard case .dup(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 117) + try visitor.visitSingularMessageField(value: v, fieldNumber: 121) }() case .reassign?: try { guard case .reassign(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 118) + try visitor.visitSingularMessageField(value: v, fieldNumber: 122) }() case .destructArray?: try { guard case .destructArray(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 119) + try visitor.visitSingularMessageField(value: v, fieldNumber: 123) }() case .destructArrayAndReassign?: try { guard case .destructArrayAndReassign(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 120) + try visitor.visitSingularMessageField(value: v, fieldNumber: 124) }() case .destructObject?: try { guard case .destructObject(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 121) + try visitor.visitSingularMessageField(value: v, fieldNumber: 125) }() case .destructObjectAndReassign?: try { guard case .destructObjectAndReassign(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 122) + try visitor.visitSingularMessageField(value: v, fieldNumber: 126) }() case .compare?: try { guard case .compare(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 123) + try visitor.visitSingularMessageField(value: v, fieldNumber: 127) }() case .eval?: try { guard case .eval(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 124) + try visitor.visitSingularMessageField(value: v, fieldNumber: 128) }() case .beginWith?: try { guard case .beginWith(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 125) + try visitor.visitSingularMessageField(value: v, fieldNumber: 129) }() case .endWith?: try { guard case .endWith(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 126) + try visitor.visitSingularMessageField(value: v, fieldNumber: 130) }() case .callSuperConstructor?: try { guard case .callSuperConstructor(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 127) + try visitor.visitSingularMessageField(value: v, fieldNumber: 131) }() case .callSuperMethod?: try { guard case .callSuperMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 128) + try visitor.visitSingularMessageField(value: v, fieldNumber: 132) }() case .getPrivateProperty?: try { guard case .getPrivateProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 129) + try visitor.visitSingularMessageField(value: v, fieldNumber: 133) }() case .setPrivateProperty?: try { guard case .setPrivateProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 130) + try visitor.visitSingularMessageField(value: v, fieldNumber: 134) }() case .updatePrivateProperty?: try { guard case .updatePrivateProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 131) + try visitor.visitSingularMessageField(value: v, fieldNumber: 135) }() case .callPrivateMethod?: try { guard case .callPrivateMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 132) + try visitor.visitSingularMessageField(value: v, fieldNumber: 136) }() case .getSuperProperty?: try { guard case .getSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 133) + try visitor.visitSingularMessageField(value: v, fieldNumber: 137) }() case .setSuperProperty?: try { guard case .setSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 134) + try visitor.visitSingularMessageField(value: v, fieldNumber: 138) }() case .getComputedSuperProperty?: try { guard case .getComputedSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 135) + try visitor.visitSingularMessageField(value: v, fieldNumber: 139) }() case .setComputedSuperProperty?: try { guard case .setComputedSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 136) + try visitor.visitSingularMessageField(value: v, fieldNumber: 140) }() case .updateSuperProperty?: try { guard case .updateSuperProperty(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 137) + try visitor.visitSingularMessageField(value: v, fieldNumber: 141) }() case .beginIf?: try { guard case .beginIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 138) + try visitor.visitSingularMessageField(value: v, fieldNumber: 142) }() case .beginElse?: try { guard case .beginElse(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 139) + try visitor.visitSingularMessageField(value: v, fieldNumber: 143) }() case .endIf?: try { guard case .endIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 140) + try visitor.visitSingularMessageField(value: v, fieldNumber: 144) }() case .beginWhileLoopHeader?: try { guard case .beginWhileLoopHeader(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 141) + try visitor.visitSingularMessageField(value: v, fieldNumber: 145) }() case .beginWhileLoopBody?: try { guard case .beginWhileLoopBody(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 142) + try visitor.visitSingularMessageField(value: v, fieldNumber: 146) }() case .endWhileLoop?: try { guard case .endWhileLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 143) + try visitor.visitSingularMessageField(value: v, fieldNumber: 147) }() case .beginDoWhileLoopBody?: try { guard case .beginDoWhileLoopBody(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 144) + try visitor.visitSingularMessageField(value: v, fieldNumber: 148) }() case .beginDoWhileLoopHeader?: try { guard case .beginDoWhileLoopHeader(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 145) + try visitor.visitSingularMessageField(value: v, fieldNumber: 149) }() case .endDoWhileLoop?: try { guard case .endDoWhileLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 146) + try visitor.visitSingularMessageField(value: v, fieldNumber: 150) }() case .beginForLoopInitializer?: try { guard case .beginForLoopInitializer(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 147) + try visitor.visitSingularMessageField(value: v, fieldNumber: 151) }() case .beginForLoopCondition?: try { guard case .beginForLoopCondition(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 148) + try visitor.visitSingularMessageField(value: v, fieldNumber: 152) }() case .beginForLoopAfterthought?: try { guard case .beginForLoopAfterthought(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 149) + try visitor.visitSingularMessageField(value: v, fieldNumber: 153) }() case .beginForLoopBody?: try { guard case .beginForLoopBody(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 150) + try visitor.visitSingularMessageField(value: v, fieldNumber: 154) }() case .endForLoop?: try { guard case .endForLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 151) + try visitor.visitSingularMessageField(value: v, fieldNumber: 155) }() case .beginForInLoop?: try { guard case .beginForInLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 152) + try visitor.visitSingularMessageField(value: v, fieldNumber: 156) }() case .endForInLoop?: try { guard case .endForInLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 153) + try visitor.visitSingularMessageField(value: v, fieldNumber: 157) }() case .beginForOfLoop?: try { guard case .beginForOfLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 154) + try visitor.visitSingularMessageField(value: v, fieldNumber: 158) }() case .beginForOfLoopWithDestruct?: try { guard case .beginForOfLoopWithDestruct(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 155) + try visitor.visitSingularMessageField(value: v, fieldNumber: 159) }() case .endForOfLoop?: try { guard case .endForOfLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 156) + try visitor.visitSingularMessageField(value: v, fieldNumber: 160) }() case .beginRepeatLoop?: try { guard case .beginRepeatLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 157) + try visitor.visitSingularMessageField(value: v, fieldNumber: 161) }() case .endRepeatLoop?: try { guard case .endRepeatLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 158) + try visitor.visitSingularMessageField(value: v, fieldNumber: 162) }() case .loopBreak?: try { guard case .loopBreak(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 159) + try visitor.visitSingularMessageField(value: v, fieldNumber: 163) }() case .loopContinue?: try { guard case .loopContinue(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 160) + try visitor.visitSingularMessageField(value: v, fieldNumber: 164) }() case .beginTry?: try { guard case .beginTry(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 161) + try visitor.visitSingularMessageField(value: v, fieldNumber: 165) }() case .beginCatch?: try { guard case .beginCatch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 162) + try visitor.visitSingularMessageField(value: v, fieldNumber: 166) }() case .beginFinally?: try { guard case .beginFinally(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 163) + try visitor.visitSingularMessageField(value: v, fieldNumber: 167) }() case .endTryCatchFinally?: try { guard case .endTryCatchFinally(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 164) + try visitor.visitSingularMessageField(value: v, fieldNumber: 168) }() case .throwException?: try { guard case .throwException(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 165) + try visitor.visitSingularMessageField(value: v, fieldNumber: 169) }() case .beginCodeString?: try { guard case .beginCodeString(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 166) + try visitor.visitSingularMessageField(value: v, fieldNumber: 170) }() case .endCodeString?: try { guard case .endCodeString(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 167) + try visitor.visitSingularMessageField(value: v, fieldNumber: 171) }() case .beginBlockStatement?: try { guard case .beginBlockStatement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 168) + try visitor.visitSingularMessageField(value: v, fieldNumber: 172) }() case .endBlockStatement?: try { guard case .endBlockStatement(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 169) + try visitor.visitSingularMessageField(value: v, fieldNumber: 173) }() case .beginSwitch?: try { guard case .beginSwitch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 170) + try visitor.visitSingularMessageField(value: v, fieldNumber: 174) }() case .beginSwitchCase?: try { guard case .beginSwitchCase(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 171) + try visitor.visitSingularMessageField(value: v, fieldNumber: 175) }() case .beginSwitchDefaultCase?: try { guard case .beginSwitchDefaultCase(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 172) + try visitor.visitSingularMessageField(value: v, fieldNumber: 176) }() case .endSwitchCase?: try { guard case .endSwitchCase(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 173) + try visitor.visitSingularMessageField(value: v, fieldNumber: 177) }() case .endSwitch?: try { guard case .endSwitch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 174) + try visitor.visitSingularMessageField(value: v, fieldNumber: 178) }() case .switchBreak?: try { guard case .switchBreak(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 175) + try visitor.visitSingularMessageField(value: v, fieldNumber: 179) }() case .loadNewTarget?: try { guard case .loadNewTarget(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 176) + try visitor.visitSingularMessageField(value: v, fieldNumber: 180) }() case .print?: try { guard case .print(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 177) + try visitor.visitSingularMessageField(value: v, fieldNumber: 181) }() case .explore?: try { guard case .explore(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 178) + try visitor.visitSingularMessageField(value: v, fieldNumber: 182) }() case .probe?: try { guard case .probe(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 179) + try visitor.visitSingularMessageField(value: v, fieldNumber: 183) }() case .fixup?: try { guard case .fixup(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 180) + try visitor.visitSingularMessageField(value: v, fieldNumber: 184) }() case .beginWasmModule?: try { guard case .beginWasmModule(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 181) + try visitor.visitSingularMessageField(value: v, fieldNumber: 185) }() case .endWasmModule?: try { guard case .endWasmModule(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 182) + try visitor.visitSingularMessageField(value: v, fieldNumber: 186) }() case .createWasmGlobal?: try { guard case .createWasmGlobal(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 183) + try visitor.visitSingularMessageField(value: v, fieldNumber: 187) }() case .createWasmMemory?: try { guard case .createWasmMemory(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 184) + try visitor.visitSingularMessageField(value: v, fieldNumber: 188) }() case .createWasmTable?: try { guard case .createWasmTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 185) + try visitor.visitSingularMessageField(value: v, fieldNumber: 189) }() case .createWasmJstag?: try { guard case .createWasmJstag(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 186) + try visitor.visitSingularMessageField(value: v, fieldNumber: 190) }() case .createWasmTag?: try { guard case .createWasmTag(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 187) + try visitor.visitSingularMessageField(value: v, fieldNumber: 191) }() case .wrapPromising?: try { guard case .wrapPromising(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 188) + try visitor.visitSingularMessageField(value: v, fieldNumber: 192) }() case .wrapSuspending?: try { guard case .wrapSuspending(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 189) + try visitor.visitSingularMessageField(value: v, fieldNumber: 193) }() case .bindMethod?: try { guard case .bindMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 190) + try visitor.visitSingularMessageField(value: v, fieldNumber: 194) }() case .bindFunction?: try { guard case .bindFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 191) + try visitor.visitSingularMessageField(value: v, fieldNumber: 195) }() case .consti64?: try { guard case .consti64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 192) + try visitor.visitSingularMessageField(value: v, fieldNumber: 196) }() case .consti32?: try { guard case .consti32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 193) + try visitor.visitSingularMessageField(value: v, fieldNumber: 197) }() case .constf32?: try { guard case .constf32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 194) + try visitor.visitSingularMessageField(value: v, fieldNumber: 198) }() case .constf64?: try { guard case .constf64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 195) + try visitor.visitSingularMessageField(value: v, fieldNumber: 199) }() case .wasmReturn?: try { guard case .wasmReturn(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 196) + try visitor.visitSingularMessageField(value: v, fieldNumber: 200) }() case .wasmJsCall?: try { guard case .wasmJsCall(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 197) + try visitor.visitSingularMessageField(value: v, fieldNumber: 201) }() case .wasmi32CompareOp?: try { guard case .wasmi32CompareOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 198) + try visitor.visitSingularMessageField(value: v, fieldNumber: 202) }() case .wasmi64CompareOp?: try { guard case .wasmi64CompareOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 199) + try visitor.visitSingularMessageField(value: v, fieldNumber: 203) }() case .wasmf32CompareOp?: try { guard case .wasmf32CompareOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 200) + try visitor.visitSingularMessageField(value: v, fieldNumber: 204) }() case .wasmf64CompareOp?: try { guard case .wasmf64CompareOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 201) + try visitor.visitSingularMessageField(value: v, fieldNumber: 205) }() case .wasmi32EqualZero?: try { guard case .wasmi32EqualZero(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 202) + try visitor.visitSingularMessageField(value: v, fieldNumber: 206) }() case .wasmi64EqualZero?: try { guard case .wasmi64EqualZero(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 203) + try visitor.visitSingularMessageField(value: v, fieldNumber: 207) }() case .wasmi32BinOp?: try { guard case .wasmi32BinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 204) + try visitor.visitSingularMessageField(value: v, fieldNumber: 208) }() case .wasmi64BinOp?: try { guard case .wasmi64BinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 205) + try visitor.visitSingularMessageField(value: v, fieldNumber: 209) }() case .wasmi32UnOp?: try { guard case .wasmi32UnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 206) + try visitor.visitSingularMessageField(value: v, fieldNumber: 210) }() case .wasmi64UnOp?: try { guard case .wasmi64UnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 207) + try visitor.visitSingularMessageField(value: v, fieldNumber: 211) }() case .wasmf32BinOp?: try { guard case .wasmf32BinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 208) + try visitor.visitSingularMessageField(value: v, fieldNumber: 212) }() case .wasmf64BinOp?: try { guard case .wasmf64BinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 209) + try visitor.visitSingularMessageField(value: v, fieldNumber: 213) }() case .wasmf32UnOp?: try { guard case .wasmf32UnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 210) + try visitor.visitSingularMessageField(value: v, fieldNumber: 214) }() case .wasmf64UnOp?: try { guard case .wasmf64UnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 211) + try visitor.visitSingularMessageField(value: v, fieldNumber: 215) }() case .wasmWrapi64Toi32?: try { guard case .wasmWrapi64Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 212) + try visitor.visitSingularMessageField(value: v, fieldNumber: 216) }() case .wasmTruncatef32Toi32?: try { guard case .wasmTruncatef32Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 213) + try visitor.visitSingularMessageField(value: v, fieldNumber: 217) }() case .wasmTruncatef64Toi32?: try { guard case .wasmTruncatef64Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 214) + try visitor.visitSingularMessageField(value: v, fieldNumber: 218) }() case .wasmExtendi32Toi64?: try { guard case .wasmExtendi32Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 215) + try visitor.visitSingularMessageField(value: v, fieldNumber: 219) }() case .wasmTruncatef32Toi64?: try { guard case .wasmTruncatef32Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 216) + try visitor.visitSingularMessageField(value: v, fieldNumber: 220) }() case .wasmTruncatef64Toi64?: try { guard case .wasmTruncatef64Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 217) + try visitor.visitSingularMessageField(value: v, fieldNumber: 221) }() case .wasmConverti32Tof32?: try { guard case .wasmConverti32Tof32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 218) + try visitor.visitSingularMessageField(value: v, fieldNumber: 222) }() case .wasmConverti64Tof32?: try { guard case .wasmConverti64Tof32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 219) + try visitor.visitSingularMessageField(value: v, fieldNumber: 223) }() case .wasmDemotef64Tof32?: try { guard case .wasmDemotef64Tof32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 220) + try visitor.visitSingularMessageField(value: v, fieldNumber: 224) }() case .wasmConverti32Tof64?: try { guard case .wasmConverti32Tof64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 221) + try visitor.visitSingularMessageField(value: v, fieldNumber: 225) }() case .wasmConverti64Tof64?: try { guard case .wasmConverti64Tof64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 222) + try visitor.visitSingularMessageField(value: v, fieldNumber: 226) }() case .wasmPromotef32Tof64?: try { guard case .wasmPromotef32Tof64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 223) + try visitor.visitSingularMessageField(value: v, fieldNumber: 227) }() case .wasmReinterpretf32Asi32?: try { guard case .wasmReinterpretf32Asi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 224) + try visitor.visitSingularMessageField(value: v, fieldNumber: 228) }() case .wasmReinterpretf64Asi64?: try { guard case .wasmReinterpretf64Asi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 225) + try visitor.visitSingularMessageField(value: v, fieldNumber: 229) }() case .wasmReinterpreti32Asf32?: try { guard case .wasmReinterpreti32Asf32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 226) + try visitor.visitSingularMessageField(value: v, fieldNumber: 230) }() case .wasmReinterpreti64Asf64?: try { guard case .wasmReinterpreti64Asf64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 227) + try visitor.visitSingularMessageField(value: v, fieldNumber: 231) }() case .wasmSignExtend8Intoi32?: try { guard case .wasmSignExtend8Intoi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 228) + try visitor.visitSingularMessageField(value: v, fieldNumber: 232) }() case .wasmSignExtend16Intoi32?: try { guard case .wasmSignExtend16Intoi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 229) + try visitor.visitSingularMessageField(value: v, fieldNumber: 233) }() case .wasmSignExtend8Intoi64?: try { guard case .wasmSignExtend8Intoi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 230) + try visitor.visitSingularMessageField(value: v, fieldNumber: 234) }() case .wasmSignExtend16Intoi64?: try { guard case .wasmSignExtend16Intoi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 231) + try visitor.visitSingularMessageField(value: v, fieldNumber: 235) }() case .wasmSignExtend32Intoi64?: try { guard case .wasmSignExtend32Intoi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 232) + try visitor.visitSingularMessageField(value: v, fieldNumber: 236) }() case .wasmTruncateSatf32Toi32?: try { guard case .wasmTruncateSatf32Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 233) + try visitor.visitSingularMessageField(value: v, fieldNumber: 237) }() case .wasmTruncateSatf64Toi32?: try { guard case .wasmTruncateSatf64Toi32(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 234) + try visitor.visitSingularMessageField(value: v, fieldNumber: 238) }() case .wasmTruncateSatf32Toi64?: try { guard case .wasmTruncateSatf32Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 235) + try visitor.visitSingularMessageField(value: v, fieldNumber: 239) }() case .wasmTruncateSatf64Toi64?: try { guard case .wasmTruncateSatf64Toi64(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 236) + try visitor.visitSingularMessageField(value: v, fieldNumber: 240) }() case .wasmReassign?: try { guard case .wasmReassign(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 237) + try visitor.visitSingularMessageField(value: v, fieldNumber: 241) }() case .wasmDefineGlobal?: try { guard case .wasmDefineGlobal(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 238) + try visitor.visitSingularMessageField(value: v, fieldNumber: 242) }() case .wasmDefineTable?: try { guard case .wasmDefineTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 239) + try visitor.visitSingularMessageField(value: v, fieldNumber: 243) }() case .wasmDefineMemory?: try { guard case .wasmDefineMemory(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 240) + try visitor.visitSingularMessageField(value: v, fieldNumber: 244) }() case .wasmDefineDataSegment?: try { guard case .wasmDefineDataSegment(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 241) + try visitor.visitSingularMessageField(value: v, fieldNumber: 245) }() case .wasmLoadGlobal?: try { guard case .wasmLoadGlobal(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 242) + try visitor.visitSingularMessageField(value: v, fieldNumber: 246) }() case .wasmStoreGlobal?: try { guard case .wasmStoreGlobal(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 243) + try visitor.visitSingularMessageField(value: v, fieldNumber: 247) }() case .wasmTableGet?: try { guard case .wasmTableGet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 244) + try visitor.visitSingularMessageField(value: v, fieldNumber: 248) }() case .wasmTableSet?: try { guard case .wasmTableSet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 245) + try visitor.visitSingularMessageField(value: v, fieldNumber: 249) }() case .wasmTableSize?: try { guard case .wasmTableSize(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 246) + try visitor.visitSingularMessageField(value: v, fieldNumber: 250) }() case .wasmTableGrow?: try { guard case .wasmTableGrow(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 247) + try visitor.visitSingularMessageField(value: v, fieldNumber: 251) }() case .wasmCallIndirect?: try { guard case .wasmCallIndirect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 248) + try visitor.visitSingularMessageField(value: v, fieldNumber: 252) }() case .wasmCallDirect?: try { guard case .wasmCallDirect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 249) + try visitor.visitSingularMessageField(value: v, fieldNumber: 253) }() case .wasmReturnCallDirect?: try { guard case .wasmReturnCallDirect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 250) + try visitor.visitSingularMessageField(value: v, fieldNumber: 254) }() case .wasmReturnCallIndirect?: try { guard case .wasmReturnCallIndirect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 251) + try visitor.visitSingularMessageField(value: v, fieldNumber: 255) }() case .wasmMemoryLoad?: try { guard case .wasmMemoryLoad(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 252) + try visitor.visitSingularMessageField(value: v, fieldNumber: 256) }() case .wasmMemoryStore?: try { guard case .wasmMemoryStore(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 253) + try visitor.visitSingularMessageField(value: v, fieldNumber: 257) }() case .wasmAtomicLoad?: try { guard case .wasmAtomicLoad(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 254) + try visitor.visitSingularMessageField(value: v, fieldNumber: 258) }() case .wasmAtomicStore?: try { guard case .wasmAtomicStore(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 255) + try visitor.visitSingularMessageField(value: v, fieldNumber: 259) }() case .wasmAtomicRmw?: try { guard case .wasmAtomicRmw(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 256) + try visitor.visitSingularMessageField(value: v, fieldNumber: 260) }() case .wasmAtomicCmpxchg?: try { guard case .wasmAtomicCmpxchg(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 257) + try visitor.visitSingularMessageField(value: v, fieldNumber: 261) }() case .wasmMemorySize?: try { guard case .wasmMemorySize(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 258) + try visitor.visitSingularMessageField(value: v, fieldNumber: 262) }() case .wasmMemoryGrow?: try { guard case .wasmMemoryGrow(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 259) + try visitor.visitSingularMessageField(value: v, fieldNumber: 263) }() case .wasmMemoryFill?: try { guard case .wasmMemoryFill(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 260) + try visitor.visitSingularMessageField(value: v, fieldNumber: 264) }() case .wasmMemoryInit?: try { guard case .wasmMemoryInit(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 261) + try visitor.visitSingularMessageField(value: v, fieldNumber: 265) }() case .wasmDropDataSegment?: try { guard case .wasmDropDataSegment(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 262) + try visitor.visitSingularMessageField(value: v, fieldNumber: 266) }() case .beginWasmFunction?: try { guard case .beginWasmFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 263) + try visitor.visitSingularMessageField(value: v, fieldNumber: 267) }() case .endWasmFunction?: try { guard case .endWasmFunction(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 264) + try visitor.visitSingularMessageField(value: v, fieldNumber: 268) }() case .wasmBeginBlock?: try { guard case .wasmBeginBlock(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 265) + try visitor.visitSingularMessageField(value: v, fieldNumber: 269) }() case .wasmEndBlock?: try { guard case .wasmEndBlock(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 266) + try visitor.visitSingularMessageField(value: v, fieldNumber: 270) }() case .wasmBeginLoop?: try { guard case .wasmBeginLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 267) + try visitor.visitSingularMessageField(value: v, fieldNumber: 271) }() case .wasmEndLoop?: try { guard case .wasmEndLoop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 268) + try visitor.visitSingularMessageField(value: v, fieldNumber: 272) }() case .wasmBranch?: try { guard case .wasmBranch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 269) + try visitor.visitSingularMessageField(value: v, fieldNumber: 273) }() case .wasmBranchIf?: try { guard case .wasmBranchIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 270) + try visitor.visitSingularMessageField(value: v, fieldNumber: 274) }() case .wasmBranchTable?: try { guard case .wasmBranchTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 271) + try visitor.visitSingularMessageField(value: v, fieldNumber: 275) }() case .wasmNop?: try { guard case .wasmNop(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 272) + try visitor.visitSingularMessageField(value: v, fieldNumber: 276) }() case .wasmBeginIf?: try { guard case .wasmBeginIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 273) + try visitor.visitSingularMessageField(value: v, fieldNumber: 277) }() case .wasmBeginElse?: try { guard case .wasmBeginElse(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 274) + try visitor.visitSingularMessageField(value: v, fieldNumber: 278) }() case .wasmEndIf?: try { guard case .wasmEndIf(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 275) + try visitor.visitSingularMessageField(value: v, fieldNumber: 279) }() case .wasmBeginTryTable?: try { guard case .wasmBeginTryTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 276) + try visitor.visitSingularMessageField(value: v, fieldNumber: 280) }() case .wasmEndTryTable?: try { guard case .wasmEndTryTable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 277) + try visitor.visitSingularMessageField(value: v, fieldNumber: 281) }() case .wasmBeginTry?: try { guard case .wasmBeginTry(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 278) + try visitor.visitSingularMessageField(value: v, fieldNumber: 282) }() case .wasmBeginCatchAll?: try { guard case .wasmBeginCatchAll(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 279) + try visitor.visitSingularMessageField(value: v, fieldNumber: 283) }() case .wasmBeginCatch?: try { guard case .wasmBeginCatch(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 280) + try visitor.visitSingularMessageField(value: v, fieldNumber: 284) }() case .wasmEndTry?: try { guard case .wasmEndTry(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 281) + try visitor.visitSingularMessageField(value: v, fieldNumber: 285) }() case .wasmBeginTryDelegate?: try { guard case .wasmBeginTryDelegate(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 282) + try visitor.visitSingularMessageField(value: v, fieldNumber: 286) }() case .wasmEndTryDelegate?: try { guard case .wasmEndTryDelegate(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 283) + try visitor.visitSingularMessageField(value: v, fieldNumber: 287) }() case .wasmThrow?: try { guard case .wasmThrow(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 284) + try visitor.visitSingularMessageField(value: v, fieldNumber: 288) }() case .wasmRethrow?: try { guard case .wasmRethrow(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 285) + try visitor.visitSingularMessageField(value: v, fieldNumber: 289) }() case .wasmThrowRef?: try { guard case .wasmThrowRef(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 286) + try visitor.visitSingularMessageField(value: v, fieldNumber: 290) }() case .wasmDefineTag?: try { guard case .wasmDefineTag(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 287) + try visitor.visitSingularMessageField(value: v, fieldNumber: 291) }() case .constSimd128?: try { guard case .constSimd128(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 288) + try visitor.visitSingularMessageField(value: v, fieldNumber: 292) }() case .wasmSimd128Compare?: try { guard case .wasmSimd128Compare(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 289) + try visitor.visitSingularMessageField(value: v, fieldNumber: 293) }() case .wasmSimd128IntegerUnOp?: try { guard case .wasmSimd128IntegerUnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 290) + try visitor.visitSingularMessageField(value: v, fieldNumber: 294) }() case .wasmSimd128IntegerBinOp?: try { guard case .wasmSimd128IntegerBinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 291) + try visitor.visitSingularMessageField(value: v, fieldNumber: 295) }() case .wasmSimd128IntegerTernaryOp?: try { guard case .wasmSimd128IntegerTernaryOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 292) + try visitor.visitSingularMessageField(value: v, fieldNumber: 296) }() case .wasmSimd128FloatUnOp?: try { guard case .wasmSimd128FloatUnOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 293) + try visitor.visitSingularMessageField(value: v, fieldNumber: 297) }() case .wasmSimd128FloatBinOp?: try { guard case .wasmSimd128FloatBinOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 294) + try visitor.visitSingularMessageField(value: v, fieldNumber: 298) }() case .wasmSimd128FloatTernaryOp?: try { guard case .wasmSimd128FloatTernaryOp(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 295) + try visitor.visitSingularMessageField(value: v, fieldNumber: 299) }() case .wasmSimdSplat?: try { guard case .wasmSimdSplat(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 296) + try visitor.visitSingularMessageField(value: v, fieldNumber: 300) }() case .wasmSimdExtractLane?: try { guard case .wasmSimdExtractLane(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 297) + try visitor.visitSingularMessageField(value: v, fieldNumber: 301) }() case .wasmSimdReplaceLane?: try { guard case .wasmSimdReplaceLane(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 298) + try visitor.visitSingularMessageField(value: v, fieldNumber: 302) }() case .wasmSimdStoreLane?: try { guard case .wasmSimdStoreLane(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 299) + try visitor.visitSingularMessageField(value: v, fieldNumber: 303) }() case .wasmSimdLoadLane?: try { guard case .wasmSimdLoadLane(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 300) + try visitor.visitSingularMessageField(value: v, fieldNumber: 304) }() case .wasmSimdLoad?: try { guard case .wasmSimdLoad(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 301) + try visitor.visitSingularMessageField(value: v, fieldNumber: 305) }() case .wasmUnreachable?: try { guard case .wasmUnreachable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 302) + try visitor.visitSingularMessageField(value: v, fieldNumber: 306) }() case .wasmSelect?: try { guard case .wasmSelect(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 303) + try visitor.visitSingularMessageField(value: v, fieldNumber: 307) }() case .wasmBeginTypeGroup?: try { guard case .wasmBeginTypeGroup(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 304) + try visitor.visitSingularMessageField(value: v, fieldNumber: 308) }() case .wasmEndTypeGroup?: try { guard case .wasmEndTypeGroup(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 305) + try visitor.visitSingularMessageField(value: v, fieldNumber: 309) }() case .wasmDefineArrayType?: try { guard case .wasmDefineArrayType(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 306) + try visitor.visitSingularMessageField(value: v, fieldNumber: 310) }() case .wasmDefineStructType?: try { guard case .wasmDefineStructType(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 307) + try visitor.visitSingularMessageField(value: v, fieldNumber: 311) }() case .wasmDefineForwardOrSelfReference?: try { guard case .wasmDefineForwardOrSelfReference(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 308) + try visitor.visitSingularMessageField(value: v, fieldNumber: 312) }() case .wasmResolveForwardReference?: try { guard case .wasmResolveForwardReference(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 309) + try visitor.visitSingularMessageField(value: v, fieldNumber: 313) }() case .wasmArrayNewFixed?: try { guard case .wasmArrayNewFixed(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 310) + try visitor.visitSingularMessageField(value: v, fieldNumber: 314) }() case .wasmArrayNewDefault?: try { guard case .wasmArrayNewDefault(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 311) + try visitor.visitSingularMessageField(value: v, fieldNumber: 315) }() case .wasmArrayLen?: try { guard case .wasmArrayLen(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 312) + try visitor.visitSingularMessageField(value: v, fieldNumber: 316) }() case .wasmArrayGet?: try { guard case .wasmArrayGet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 313) + try visitor.visitSingularMessageField(value: v, fieldNumber: 317) }() case .wasmArraySet?: try { guard case .wasmArraySet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 314) + try visitor.visitSingularMessageField(value: v, fieldNumber: 318) }() case .wasmStructNewDefault?: try { guard case .wasmStructNewDefault(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 315) + try visitor.visitSingularMessageField(value: v, fieldNumber: 319) }() case .wasmStructGet?: try { guard case .wasmStructGet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 316) + try visitor.visitSingularMessageField(value: v, fieldNumber: 320) }() case .wasmStructSet?: try { guard case .wasmStructSet(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 317) + try visitor.visitSingularMessageField(value: v, fieldNumber: 321) }() case .wasmRefNull?: try { guard case .wasmRefNull(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 318) + try visitor.visitSingularMessageField(value: v, fieldNumber: 322) }() case .wasmRefIsNull?: try { guard case .wasmRefIsNull(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 319) + try visitor.visitSingularMessageField(value: v, fieldNumber: 323) }() case .wasmRefI31?: try { guard case .wasmRefI31(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 320) + try visitor.visitSingularMessageField(value: v, fieldNumber: 324) }() case .wasmI31Get?: try { guard case .wasmI31Get(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 321) + try visitor.visitSingularMessageField(value: v, fieldNumber: 325) }() case .wasmAnyConvertExtern?: try { guard case .wasmAnyConvertExtern(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 322) + try visitor.visitSingularMessageField(value: v, fieldNumber: 326) }() case .wasmExternConvertAny?: try { guard case .wasmExternConvertAny(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 323) + try visitor.visitSingularMessageField(value: v, fieldNumber: 327) }() case .wasmMemoryCopy?: try { guard case .wasmMemoryCopy(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 324) + try visitor.visitSingularMessageField(value: v, fieldNumber: 328) }() case .wasmDefineElementSegment?: try { guard case .wasmDefineElementSegment(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 325) + try visitor.visitSingularMessageField(value: v, fieldNumber: 329) }() case .wasmTableInit?: try { guard case .wasmTableInit(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 326) + try visitor.visitSingularMessageField(value: v, fieldNumber: 330) }() case .wasmDropElementSegment?: try { guard case .wasmDropElementSegment(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 327) + try visitor.visitSingularMessageField(value: v, fieldNumber: 331) }() case .wasmTableCopy?: try { guard case .wasmTableCopy(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 328) + try visitor.visitSingularMessageField(value: v, fieldNumber: 332) }() case .wasmDefineSignatureType?: try { guard case .wasmDefineSignatureType(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 329) + try visitor.visitSingularMessageField(value: v, fieldNumber: 333) }() case .createNamedDisposableVariable?: try { guard case .createNamedDisposableVariable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 330) + try visitor.visitSingularMessageField(value: v, fieldNumber: 334) }() case .createNamedAsyncDisposableVariable?: try { guard case .createNamedAsyncDisposableVariable(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 331) - }() - case .beginClassInstanceComputedMethod?: try { - guard case .beginClassInstanceComputedMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 332) - }() - case .endClassInstanceComputedMethod?: try { - guard case .endClassInstanceComputedMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 333) - }() - case .beginClassStaticComputedMethod?: try { - guard case .beginClassStaticComputedMethod(let v)? = self.operation else { preconditionFailure() } - try visitor.visitSingularMessageField(value: v, fieldNumber: 334) - }() - case .endClassStaticComputedMethod?: try { - guard case .endClassStaticComputedMethod(let v)? = self.operation else { preconditionFailure() } try visitor.visitSingularMessageField(value: v, fieldNumber: 335) }() case nil: break diff --git a/Sources/Fuzzilli/Protobuf/program.proto b/Sources/Fuzzilli/Protobuf/program.proto index 46c3f7a9c..0582386bf 100755 --- a/Sources/Fuzzilli/Protobuf/program.proto +++ b/Sources/Fuzzilli/Protobuf/program.proto @@ -63,302 +63,302 @@ message Instruction { ClassAddInstanceComputedProperty classAddInstanceComputedProperty = 37; BeginClassInstanceMethod beginClassInstanceMethod = 38; EndClassInstanceMethod endClassInstanceMethod = 39; - BeginClassInstanceGetter beginClassInstanceGetter = 40; - EndClassInstanceGetter endClassInstanceGetter = 41; - BeginClassInstanceSetter beginClassInstanceSetter = 42; - EndClassInstanceSetter endClassInstanceSetter = 43; - ClassAddStaticProperty classAddStaticProperty = 44; - ClassAddStaticElement classAddStaticElement = 45; - ClassAddStaticComputedProperty classAddStaticComputedProperty = 46; - BeginClassStaticInitializer beginClassStaticInitializer = 47; - EndClassStaticInitializer endClassStaticInitializer = 48; - BeginClassStaticMethod beginClassStaticMethod = 49; - EndClassStaticMethod endClassStaticMethod = 50; - BeginClassStaticGetter beginClassStaticGetter = 51; - EndClassStaticGetter endClassStaticGetter = 52; - BeginClassStaticSetter beginClassStaticSetter = 53; - EndClassStaticSetter endClassStaticSetter = 54; - ClassAddPrivateInstanceProperty classAddPrivateInstanceProperty = 55; - BeginClassPrivateInstanceMethod beginClassPrivateInstanceMethod = 56; - EndClassPrivateInstanceMethod endClassPrivateInstanceMethod = 57; - ClassAddPrivateStaticProperty classAddPrivateStaticProperty = 58; - BeginClassPrivateStaticMethod beginClassPrivateStaticMethod = 59; - EndClassPrivateStaticMethod endClassPrivateStaticMethod = 60; - EndClassDefinition endClassDefinition = 61; - CreateArray createArray = 62; - CreateIntArray createIntArray = 63; - CreateFloatArray createFloatArray = 64; - CreateArrayWithSpread createArrayWithSpread = 65; - CreateTemplateString createTemplateString = 66; - GetProperty getProperty = 67; - SetProperty setProperty = 68; - UpdateProperty updateProperty = 69; - DeleteProperty deleteProperty = 70; - ConfigureProperty configureProperty = 71; - GetElement getElement = 72; - SetElement setElement = 73; - UpdateElement updateElement = 74; - DeleteElement deleteElement = 75; - ConfigureElement configureElement = 76; - GetComputedProperty getComputedProperty = 77; - SetComputedProperty setComputedProperty = 78; - UpdateComputedProperty updateComputedProperty = 79; - DeleteComputedProperty deleteComputedProperty = 80; - ConfigureComputedProperty configureComputedProperty = 81; - TypeOf typeOf = 82; - Void void = 83; - TestInstanceOf testInstanceOf = 84; - TestIn testIn = 85; - BeginPlainFunction beginPlainFunction = 86; - EndPlainFunction endPlainFunction = 87; - BeginArrowFunction beginArrowFunction = 88; - EndArrowFunction endArrowFunction = 89; - BeginGeneratorFunction beginGeneratorFunction = 90; - EndGeneratorFunction endGeneratorFunction = 91; - BeginAsyncFunction beginAsyncFunction = 92; - EndAsyncFunction endAsyncFunction = 93; - BeginAsyncArrowFunction beginAsyncArrowFunction = 94; - EndAsyncArrowFunction endAsyncArrowFunction = 95; - BeginAsyncGeneratorFunction beginAsyncGeneratorFunction = 96; - EndAsyncGeneratorFunction endAsyncGeneratorFunction = 97; - BeginConstructor beginConstructor = 98; - EndConstructor endConstructor = 99; - Directive directive = 100; - Return return = 101; - Yield yield = 102; - YieldEach yieldEach = 103; - Await await = 104; - CallFunction callFunction = 105; - CallFunctionWithSpread callFunctionWithSpread = 106; - Construct construct = 107; - ConstructWithSpread constructWithSpread = 108; - CallMethod callMethod = 109; - CallMethodWithSpread callMethodWithSpread = 110; - CallComputedMethod callComputedMethod = 111; - CallComputedMethodWithSpread callComputedMethodWithSpread = 112; - UnaryOperation unaryOperation = 113; - BinaryOperation binaryOperation = 114; - TernaryOperation ternaryOperation = 115; - Update update = 116; - Dup dup = 117; - Reassign reassign = 118; - DestructArray destructArray = 119; - DestructArrayAndReassign destructArrayAndReassign = 120; - DestructObject destructObject = 121; - DestructObjectAndReassign destructObjectAndReassign = 122; - Compare compare = 123; - Eval eval = 124; - BeginWith beginWith = 125; - EndWith endWith = 126; - CallSuperConstructor callSuperConstructor = 127; - CallSuperMethod callSuperMethod = 128; - GetPrivateProperty getPrivateProperty = 129; - SetPrivateProperty setPrivateProperty = 130; - UpdatePrivateProperty updatePrivateProperty = 131; - CallPrivateMethod callPrivateMethod = 132; - GetSuperProperty getSuperProperty = 133; - SetSuperProperty setSuperProperty = 134; - GetComputedSuperProperty getComputedSuperProperty = 135; - SetComputedSuperProperty setComputedSuperProperty = 136; - UpdateSuperProperty updateSuperProperty = 137; - BeginIf beginIf = 138; - BeginElse beginElse = 139; - EndIf endIf = 140; - BeginWhileLoopHeader beginWhileLoopHeader = 141; - BeginWhileLoopBody beginWhileLoopBody = 142; - EndWhileLoop endWhileLoop = 143; - BeginDoWhileLoopBody beginDoWhileLoopBody = 144; - BeginDoWhileLoopHeader beginDoWhileLoopHeader = 145; - EndDoWhileLoop endDoWhileLoop = 146; - BeginForLoopInitializer beginForLoopInitializer = 147; - BeginForLoopCondition beginForLoopCondition = 148; - BeginForLoopAfterthought beginForLoopAfterthought = 149; - BeginForLoopBody beginForLoopBody = 150; - EndForLoop endForLoop = 151; - BeginForInLoop beginForInLoop = 152; - EndForInLoop endForInLoop = 153; - BeginForOfLoop beginForOfLoop = 154; - BeginForOfLoopWithDestruct beginForOfLoopWithDestruct = 155; - EndForOfLoop endForOfLoop = 156; - BeginRepeatLoop beginRepeatLoop = 157; - EndRepeatLoop endRepeatLoop = 158; - LoopBreak loopBreak = 159; - LoopContinue loopContinue = 160; - BeginTry beginTry = 161; - BeginCatch beginCatch = 162; - BeginFinally beginFinally = 163; - EndTryCatchFinally endTryCatchFinally = 164; - ThrowException throwException = 165; - BeginCodeString beginCodeString = 166; - EndCodeString endCodeString = 167; - BeginBlockStatement beginBlockStatement = 168; - EndBlockStatement endBlockStatement = 169; - BeginSwitch beginSwitch = 170; - BeginSwitchCase beginSwitchCase = 171; - BeginSwitchDefaultCase beginSwitchDefaultCase = 172; - EndSwitchCase endSwitchCase = 173; - EndSwitch endSwitch = 174; - SwitchBreak switchBreak = 175; - LoadNewTarget loadNewTarget = 176; - Print print = 177; - Explore explore = 178; - Probe probe = 179; - Fixup fixup = 180; - BeginWasmModule beginWasmModule = 181; - EndWasmModule endWasmModule = 182; - CreateWasmGlobal createWasmGlobal = 183; - CreateWasmMemory createWasmMemory = 184; - CreateWasmTable createWasmTable = 185; - CreateWasmJSTag createWasmJSTag = 186; - CreateWasmTag createWasmTag = 187; - WrapPromising wrapPromising = 188; - WrapSuspending wrapSuspending = 189; - BindMethod bindMethod = 190; - BindFunction bindFunction = 191; - Consti64 consti64 = 192; - Consti32 consti32 = 193; - Constf32 constf32 = 194; - Constf64 constf64 = 195; - WasmReturn wasmReturn = 196; - WasmJsCall wasmJsCall = 197; - Wasmi32CompareOp wasmi32CompareOp = 198; - Wasmi64CompareOp wasmi64CompareOp = 199; - Wasmf32CompareOp wasmf32CompareOp = 200; - Wasmf64CompareOp wasmf64CompareOp = 201; - Wasmi32EqualZero wasmi32EqualZero = 202; - Wasmi64EqualZero wasmi64EqualZero = 203; - Wasmi32BinOp wasmi32BinOp = 204; - Wasmi64BinOp wasmi64BinOp = 205; - Wasmi32UnOp wasmi32UnOp = 206; - Wasmi64UnOp wasmi64UnOp = 207; - Wasmf32BinOp wasmf32BinOp = 208; - Wasmf64BinOp wasmf64BinOp = 209; - Wasmf32UnOp wasmf32UnOp = 210; - Wasmf64UnOp wasmf64UnOp = 211; - WasmWrapi64Toi32 wasmWrapi64Toi32 = 212; - WasmTruncatef32Toi32 wasmTruncatef32Toi32 = 213; - WasmTruncatef64Toi32 wasmTruncatef64Toi32 = 214; - WasmExtendi32Toi64 wasmExtendi32Toi64 = 215; - WasmTruncatef32Toi64 wasmTruncatef32Toi64 = 216; - WasmTruncatef64Toi64 wasmTruncatef64Toi64 = 217; - WasmConverti32Tof32 wasmConverti32Tof32 = 218; - WasmConverti64Tof32 wasmConverti64Tof32 = 219; - WasmDemotef64Tof32 wasmDemotef64Tof32 = 220; - WasmConverti32Tof64 wasmConverti32Tof64 = 221; - WasmConverti64Tof64 wasmConverti64Tof64 = 222; - WasmPromotef32Tof64 wasmPromotef32Tof64 = 223; - WasmReinterpretf32Asi32 wasmReinterpretf32Asi32 = 224; - WasmReinterpretf64Asi64 wasmReinterpretf64Asi64 = 225; - WasmReinterpreti32Asf32 wasmReinterpreti32Asf32 = 226; - WasmReinterpreti64Asf64 wasmReinterpreti64Asf64 = 227; - WasmSignExtend8Intoi32 wasmSignExtend8Intoi32 = 228; - WasmSignExtend16Intoi32 wasmSignExtend16Intoi32 = 229; - WasmSignExtend8Intoi64 wasmSignExtend8Intoi64 = 230; - WasmSignExtend16Intoi64 wasmSignExtend16Intoi64 = 231; - WasmSignExtend32Intoi64 wasmSignExtend32Intoi64 = 232; - WasmTruncateSatf32Toi32 wasmTruncateSatf32Toi32 = 233; - WasmTruncateSatf64Toi32 wasmTruncateSatf64Toi32 = 234; - WasmTruncateSatf32Toi64 wasmTruncateSatf32Toi64 = 235; - WasmTruncateSatf64Toi64 wasmTruncateSatf64Toi64 = 236; - WasmReassign wasmReassign = 237; - WasmDefineGlobal wasmDefineGlobal = 238; - WasmDefineTable wasmDefineTable = 239; - WasmDefineMemory wasmDefineMemory = 240; - WasmDefineDataSegment wasmDefineDataSegment = 241; - WasmLoadGlobal wasmLoadGlobal = 242; - WasmStoreGlobal wasmStoreGlobal = 243; - WasmTableGet wasmTableGet = 244; - WasmTableSet wasmTableSet = 245; - WasmTableSize wasmTableSize = 246; - WasmTableGrow wasmTableGrow = 247; - WasmCallIndirect wasmCallIndirect = 248; - WasmCallDirect wasmCallDirect = 249; - WasmReturnCallDirect wasmReturnCallDirect = 250; - WasmReturnCallIndirect wasmReturnCallIndirect = 251; - WasmMemoryLoad wasmMemoryLoad = 252; - WasmMemoryStore wasmMemoryStore = 253; - WasmAtomicLoad wasmAtomicLoad = 254; - WasmAtomicStore wasmAtomicStore = 255; - WasmAtomicRMW wasmAtomicRMW = 256; - WasmAtomicCmpxchg wasmAtomicCmpxchg = 257; - WasmMemorySize wasmMemorySize = 258; - WasmMemoryGrow wasmMemoryGrow = 259; - WasmMemoryFill wasmMemoryFill = 260; - WasmMemoryInit wasmMemoryInit = 261; - WasmDropDataSegment wasmDropDataSegment = 262; - BeginWasmFunction beginWasmFunction = 263; - EndWasmFunction endWasmFunction = 264; - WasmBeginBlock wasmBeginBlock = 265; - WasmEndBlock wasmEndBlock = 266; - WasmBeginLoop wasmBeginLoop = 267; - WasmEndLoop wasmEndLoop = 268; - WasmBranch wasmBranch = 269; - WasmBranchIf wasmBranchIf = 270; - WasmBranchTable wasmBranchTable = 271; - WasmNop wasmNop = 272; - WasmBeginIf wasmBeginIf = 273; - WasmBeginElse wasmBeginElse = 274; - WasmEndIf wasmEndIf = 275; - WasmBeginTryTable wasmBeginTryTable = 276; - WasmEndTryTable wasmEndTryTable = 277; - WasmBeginTry wasmBeginTry = 278; - WasmBeginCatchAll wasmBeginCatchAll = 279; - WasmBeginCatch wasmBeginCatch = 280; - WasmEndTry wasmEndTry = 281; - WasmBeginTryDelegate wasmBeginTryDelegate = 282; - WasmEndTryDelegate wasmEndTryDelegate = 283; - WasmThrow wasmThrow = 284; - WasmRethrow wasmRethrow = 285; - WasmThrowRef wasmThrowRef = 286; - WasmDefineTag wasmDefineTag = 287; - ConstSimd128 constSimd128 = 288; - WasmSimd128Compare wasmSimd128Compare = 289; - WasmSimd128IntegerUnOp wasmSimd128IntegerUnOp = 290; - WasmSimd128IntegerBinOp wasmSimd128IntegerBinOp = 291; - WasmSimd128IntegerTernaryOp wasmSimd128IntegerTernaryOp = 292; - WasmSimd128FloatUnOp wasmSimd128FloatUnOp = 293; - WasmSimd128FloatBinOp wasmSimd128FloatBinOp = 294; - WasmSimd128FloatTernaryOp wasmSimd128FloatTernaryOp = 295; - WasmSimdSplat wasmSimdSplat = 296; - WasmSimdExtractLane wasmSimdExtractLane = 297; - WasmSimdReplaceLane wasmSimdReplaceLane = 298; - WasmSimdStoreLane wasmSimdStoreLane = 299; - WasmSimdLoadLane wasmSimdLoadLane = 300; - WasmSimdLoad wasmSimdLoad = 301; - WasmUnreachable wasmUnreachable = 302; - WasmSelect wasmSelect = 303; - WasmBeginTypeGroup wasmBeginTypeGroup = 304; - WasmEndTypeGroup wasmEndTypeGroup = 305; - WasmDefineArrayType wasmDefineArrayType = 306; - WasmDefineStructType wasmDefineStructType = 307; - WasmDefineForwardOrSelfReference wasmDefineForwardOrSelfReference = 308; - WasmResolveForwardReference wasmResolveForwardReference = 309; - WasmArrayNewFixed wasmArrayNewFixed = 310; - WasmArrayNewDefault wasmArrayNewDefault = 311; - WasmArrayLen wasmArrayLen = 312; - WasmArrayGet wasmArrayGet = 313; - WasmArraySet wasmArraySet = 314; - WasmStructNewDefault wasmStructNewDefault = 315; - WasmStructGet wasmStructGet = 316; - WasmStructSet wasmStructSet = 317; - WasmRefNull wasmRefNull = 318; - WasmRefIsNull wasmRefIsNull = 319; - WasmRefI31 wasmRefI31 = 320; - WasmI31Get wasmI31Get = 321; - WasmAnyConvertExtern wasmAnyConvertExtern = 322; - WasmExternConvertAny wasmExternConvertAny = 323; - WasmMemoryCopy wasmMemoryCopy = 324; - WasmDefineElementSegment wasmDefineElementSegment = 325; - WasmTableInit wasmTableInit = 326; - WasmDropElementSegment wasmDropElementSegment = 327; - WasmTableCopy wasmTableCopy = 328; - WasmDefineSignatureType wasmDefineSignatureType = 329; - CreateNamedDisposableVariable createNamedDisposableVariable = 330; - CreateNamedAsyncDisposableVariable createNamedAsyncDisposableVariable = 331; - BeginClassInstanceComputedMethod beginClassInstanceComputedMethod = 332; - EndClassInstanceComputedMethod endClassInstanceComputedMethod = 333; - BeginClassStaticComputedMethod beginClassStaticComputedMethod = 334; - EndClassStaticComputedMethod endClassStaticComputedMethod = 335; + BeginClassInstanceComputedMethod beginClassInstanceComputedMethod = 40; + EndClassInstanceComputedMethod endClassInstanceComputedMethod = 41; + BeginClassInstanceGetter beginClassInstanceGetter = 42; + EndClassInstanceGetter endClassInstanceGetter = 43; + BeginClassInstanceSetter beginClassInstanceSetter = 44; + EndClassInstanceSetter endClassInstanceSetter = 45; + ClassAddStaticProperty classAddStaticProperty = 46; + ClassAddStaticElement classAddStaticElement = 47; + ClassAddStaticComputedProperty classAddStaticComputedProperty = 48; + BeginClassStaticInitializer beginClassStaticInitializer = 49; + EndClassStaticInitializer endClassStaticInitializer = 50; + BeginClassStaticMethod beginClassStaticMethod = 51; + EndClassStaticMethod endClassStaticMethod = 52; + BeginClassStaticComputedMethod beginClassStaticComputedMethod = 53; + EndClassStaticComputedMethod endClassStaticComputedMethod = 54; + BeginClassStaticGetter beginClassStaticGetter = 55; + EndClassStaticGetter endClassStaticGetter = 56; + BeginClassStaticSetter beginClassStaticSetter = 57; + EndClassStaticSetter endClassStaticSetter = 58; + ClassAddPrivateInstanceProperty classAddPrivateInstanceProperty = 59; + BeginClassPrivateInstanceMethod beginClassPrivateInstanceMethod = 60; + EndClassPrivateInstanceMethod endClassPrivateInstanceMethod = 61; + ClassAddPrivateStaticProperty classAddPrivateStaticProperty = 62; + BeginClassPrivateStaticMethod beginClassPrivateStaticMethod = 63; + EndClassPrivateStaticMethod endClassPrivateStaticMethod = 64; + EndClassDefinition endClassDefinition = 65; + CreateArray createArray = 66; + CreateIntArray createIntArray = 67; + CreateFloatArray createFloatArray = 68; + CreateArrayWithSpread createArrayWithSpread = 69; + CreateTemplateString createTemplateString = 70; + GetProperty getProperty = 71; + SetProperty setProperty = 72; + UpdateProperty updateProperty = 73; + DeleteProperty deleteProperty = 74; + ConfigureProperty configureProperty = 75; + GetElement getElement = 76; + SetElement setElement = 77; + UpdateElement updateElement = 78; + DeleteElement deleteElement = 79; + ConfigureElement configureElement = 80; + GetComputedProperty getComputedProperty = 81; + SetComputedProperty setComputedProperty = 82; + UpdateComputedProperty updateComputedProperty = 83; + DeleteComputedProperty deleteComputedProperty = 84; + ConfigureComputedProperty configureComputedProperty = 85; + TypeOf typeOf = 86; + Void void = 87; + TestInstanceOf testInstanceOf = 88; + TestIn testIn = 89; + BeginPlainFunction beginPlainFunction = 90; + EndPlainFunction endPlainFunction = 91; + BeginArrowFunction beginArrowFunction = 92; + EndArrowFunction endArrowFunction = 93; + BeginGeneratorFunction beginGeneratorFunction = 94; + EndGeneratorFunction endGeneratorFunction = 95; + BeginAsyncFunction beginAsyncFunction = 96; + EndAsyncFunction endAsyncFunction = 97; + BeginAsyncArrowFunction beginAsyncArrowFunction = 98; + EndAsyncArrowFunction endAsyncArrowFunction = 99; + BeginAsyncGeneratorFunction beginAsyncGeneratorFunction = 100; + EndAsyncGeneratorFunction endAsyncGeneratorFunction = 101; + BeginConstructor beginConstructor = 102; + EndConstructor endConstructor = 103; + Directive directive = 104; + Return return = 105; + Yield yield = 106; + YieldEach yieldEach = 107; + Await await = 108; + CallFunction callFunction = 109; + CallFunctionWithSpread callFunctionWithSpread = 110; + Construct construct = 111; + ConstructWithSpread constructWithSpread = 112; + CallMethod callMethod = 113; + CallMethodWithSpread callMethodWithSpread = 114; + CallComputedMethod callComputedMethod = 115; + CallComputedMethodWithSpread callComputedMethodWithSpread = 116; + UnaryOperation unaryOperation = 117; + BinaryOperation binaryOperation = 118; + TernaryOperation ternaryOperation = 119; + Update update = 120; + Dup dup = 121; + Reassign reassign = 122; + DestructArray destructArray = 123; + DestructArrayAndReassign destructArrayAndReassign = 124; + DestructObject destructObject = 125; + DestructObjectAndReassign destructObjectAndReassign = 126; + Compare compare = 127; + Eval eval = 128; + BeginWith beginWith = 129; + EndWith endWith = 130; + CallSuperConstructor callSuperConstructor = 131; + CallSuperMethod callSuperMethod = 132; + GetPrivateProperty getPrivateProperty = 133; + SetPrivateProperty setPrivateProperty = 134; + UpdatePrivateProperty updatePrivateProperty = 135; + CallPrivateMethod callPrivateMethod = 136; + GetSuperProperty getSuperProperty = 137; + SetSuperProperty setSuperProperty = 138; + GetComputedSuperProperty getComputedSuperProperty = 139; + SetComputedSuperProperty setComputedSuperProperty = 140; + UpdateSuperProperty updateSuperProperty = 141; + BeginIf beginIf = 142; + BeginElse beginElse = 143; + EndIf endIf = 144; + BeginWhileLoopHeader beginWhileLoopHeader = 145; + BeginWhileLoopBody beginWhileLoopBody = 146; + EndWhileLoop endWhileLoop = 147; + BeginDoWhileLoopBody beginDoWhileLoopBody = 148; + BeginDoWhileLoopHeader beginDoWhileLoopHeader = 149; + EndDoWhileLoop endDoWhileLoop = 150; + BeginForLoopInitializer beginForLoopInitializer = 151; + BeginForLoopCondition beginForLoopCondition = 152; + BeginForLoopAfterthought beginForLoopAfterthought = 153; + BeginForLoopBody beginForLoopBody = 154; + EndForLoop endForLoop = 155; + BeginForInLoop beginForInLoop = 156; + EndForInLoop endForInLoop = 157; + BeginForOfLoop beginForOfLoop = 158; + BeginForOfLoopWithDestruct beginForOfLoopWithDestruct = 159; + EndForOfLoop endForOfLoop = 160; + BeginRepeatLoop beginRepeatLoop = 161; + EndRepeatLoop endRepeatLoop = 162; + LoopBreak loopBreak = 163; + LoopContinue loopContinue = 164; + BeginTry beginTry = 165; + BeginCatch beginCatch = 166; + BeginFinally beginFinally = 167; + EndTryCatchFinally endTryCatchFinally = 168; + ThrowException throwException = 169; + BeginCodeString beginCodeString = 170; + EndCodeString endCodeString = 171; + BeginBlockStatement beginBlockStatement = 172; + EndBlockStatement endBlockStatement = 173; + BeginSwitch beginSwitch = 174; + BeginSwitchCase beginSwitchCase = 175; + BeginSwitchDefaultCase beginSwitchDefaultCase = 176; + EndSwitchCase endSwitchCase = 177; + EndSwitch endSwitch = 178; + SwitchBreak switchBreak = 179; + LoadNewTarget loadNewTarget = 180; + Print print = 181; + Explore explore = 182; + Probe probe = 183; + Fixup fixup = 184; + BeginWasmModule beginWasmModule = 185; + EndWasmModule endWasmModule = 186; + CreateWasmGlobal createWasmGlobal = 187; + CreateWasmMemory createWasmMemory = 188; + CreateWasmTable createWasmTable = 189; + CreateWasmJSTag createWasmJSTag = 190; + CreateWasmTag createWasmTag = 191; + WrapPromising wrapPromising = 192; + WrapSuspending wrapSuspending = 193; + BindMethod bindMethod = 194; + BindFunction bindFunction = 195; + Consti64 consti64 = 196; + Consti32 consti32 = 197; + Constf32 constf32 = 198; + Constf64 constf64 = 199; + WasmReturn wasmReturn = 200; + WasmJsCall wasmJsCall = 201; + Wasmi32CompareOp wasmi32CompareOp = 202; + Wasmi64CompareOp wasmi64CompareOp = 203; + Wasmf32CompareOp wasmf32CompareOp = 204; + Wasmf64CompareOp wasmf64CompareOp = 205; + Wasmi32EqualZero wasmi32EqualZero = 206; + Wasmi64EqualZero wasmi64EqualZero = 207; + Wasmi32BinOp wasmi32BinOp = 208; + Wasmi64BinOp wasmi64BinOp = 209; + Wasmi32UnOp wasmi32UnOp = 210; + Wasmi64UnOp wasmi64UnOp = 211; + Wasmf32BinOp wasmf32BinOp = 212; + Wasmf64BinOp wasmf64BinOp = 213; + Wasmf32UnOp wasmf32UnOp = 214; + Wasmf64UnOp wasmf64UnOp = 215; + WasmWrapi64Toi32 wasmWrapi64Toi32 = 216; + WasmTruncatef32Toi32 wasmTruncatef32Toi32 = 217; + WasmTruncatef64Toi32 wasmTruncatef64Toi32 = 218; + WasmExtendi32Toi64 wasmExtendi32Toi64 = 219; + WasmTruncatef32Toi64 wasmTruncatef32Toi64 = 220; + WasmTruncatef64Toi64 wasmTruncatef64Toi64 = 221; + WasmConverti32Tof32 wasmConverti32Tof32 = 222; + WasmConverti64Tof32 wasmConverti64Tof32 = 223; + WasmDemotef64Tof32 wasmDemotef64Tof32 = 224; + WasmConverti32Tof64 wasmConverti32Tof64 = 225; + WasmConverti64Tof64 wasmConverti64Tof64 = 226; + WasmPromotef32Tof64 wasmPromotef32Tof64 = 227; + WasmReinterpretf32Asi32 wasmReinterpretf32Asi32 = 228; + WasmReinterpretf64Asi64 wasmReinterpretf64Asi64 = 229; + WasmReinterpreti32Asf32 wasmReinterpreti32Asf32 = 230; + WasmReinterpreti64Asf64 wasmReinterpreti64Asf64 = 231; + WasmSignExtend8Intoi32 wasmSignExtend8Intoi32 = 232; + WasmSignExtend16Intoi32 wasmSignExtend16Intoi32 = 233; + WasmSignExtend8Intoi64 wasmSignExtend8Intoi64 = 234; + WasmSignExtend16Intoi64 wasmSignExtend16Intoi64 = 235; + WasmSignExtend32Intoi64 wasmSignExtend32Intoi64 = 236; + WasmTruncateSatf32Toi32 wasmTruncateSatf32Toi32 = 237; + WasmTruncateSatf64Toi32 wasmTruncateSatf64Toi32 = 238; + WasmTruncateSatf32Toi64 wasmTruncateSatf32Toi64 = 239; + WasmTruncateSatf64Toi64 wasmTruncateSatf64Toi64 = 240; + WasmReassign wasmReassign = 241; + WasmDefineGlobal wasmDefineGlobal = 242; + WasmDefineTable wasmDefineTable = 243; + WasmDefineMemory wasmDefineMemory = 244; + WasmDefineDataSegment wasmDefineDataSegment = 245; + WasmLoadGlobal wasmLoadGlobal = 246; + WasmStoreGlobal wasmStoreGlobal = 247; + WasmTableGet wasmTableGet = 248; + WasmTableSet wasmTableSet = 249; + WasmTableSize wasmTableSize = 250; + WasmTableGrow wasmTableGrow = 251; + WasmCallIndirect wasmCallIndirect = 252; + WasmCallDirect wasmCallDirect = 253; + WasmReturnCallDirect wasmReturnCallDirect = 254; + WasmReturnCallIndirect wasmReturnCallIndirect = 255; + WasmMemoryLoad wasmMemoryLoad = 256; + WasmMemoryStore wasmMemoryStore = 257; + WasmAtomicLoad wasmAtomicLoad = 258; + WasmAtomicStore wasmAtomicStore = 259; + WasmAtomicRMW wasmAtomicRMW = 260; + WasmAtomicCmpxchg wasmAtomicCmpxchg = 261; + WasmMemorySize wasmMemorySize = 262; + WasmMemoryGrow wasmMemoryGrow = 263; + WasmMemoryFill wasmMemoryFill = 264; + WasmMemoryInit wasmMemoryInit = 265; + WasmDropDataSegment wasmDropDataSegment = 266; + BeginWasmFunction beginWasmFunction = 267; + EndWasmFunction endWasmFunction = 268; + WasmBeginBlock wasmBeginBlock = 269; + WasmEndBlock wasmEndBlock = 270; + WasmBeginLoop wasmBeginLoop = 271; + WasmEndLoop wasmEndLoop = 272; + WasmBranch wasmBranch = 273; + WasmBranchIf wasmBranchIf = 274; + WasmBranchTable wasmBranchTable = 275; + WasmNop wasmNop = 276; + WasmBeginIf wasmBeginIf = 277; + WasmBeginElse wasmBeginElse = 278; + WasmEndIf wasmEndIf = 279; + WasmBeginTryTable wasmBeginTryTable = 280; + WasmEndTryTable wasmEndTryTable = 281; + WasmBeginTry wasmBeginTry = 282; + WasmBeginCatchAll wasmBeginCatchAll = 283; + WasmBeginCatch wasmBeginCatch = 284; + WasmEndTry wasmEndTry = 285; + WasmBeginTryDelegate wasmBeginTryDelegate = 286; + WasmEndTryDelegate wasmEndTryDelegate = 287; + WasmThrow wasmThrow = 288; + WasmRethrow wasmRethrow = 289; + WasmThrowRef wasmThrowRef = 290; + WasmDefineTag wasmDefineTag = 291; + ConstSimd128 constSimd128 = 292; + WasmSimd128Compare wasmSimd128Compare = 293; + WasmSimd128IntegerUnOp wasmSimd128IntegerUnOp = 294; + WasmSimd128IntegerBinOp wasmSimd128IntegerBinOp = 295; + WasmSimd128IntegerTernaryOp wasmSimd128IntegerTernaryOp = 296; + WasmSimd128FloatUnOp wasmSimd128FloatUnOp = 297; + WasmSimd128FloatBinOp wasmSimd128FloatBinOp = 298; + WasmSimd128FloatTernaryOp wasmSimd128FloatTernaryOp = 299; + WasmSimdSplat wasmSimdSplat = 300; + WasmSimdExtractLane wasmSimdExtractLane = 301; + WasmSimdReplaceLane wasmSimdReplaceLane = 302; + WasmSimdStoreLane wasmSimdStoreLane = 303; + WasmSimdLoadLane wasmSimdLoadLane = 304; + WasmSimdLoad wasmSimdLoad = 305; + WasmUnreachable wasmUnreachable = 306; + WasmSelect wasmSelect = 307; + WasmBeginTypeGroup wasmBeginTypeGroup = 308; + WasmEndTypeGroup wasmEndTypeGroup = 309; + WasmDefineArrayType wasmDefineArrayType = 310; + WasmDefineStructType wasmDefineStructType = 311; + WasmDefineForwardOrSelfReference wasmDefineForwardOrSelfReference = 312; + WasmResolveForwardReference wasmResolveForwardReference = 313; + WasmArrayNewFixed wasmArrayNewFixed = 314; + WasmArrayNewDefault wasmArrayNewDefault = 315; + WasmArrayLen wasmArrayLen = 316; + WasmArrayGet wasmArrayGet = 317; + WasmArraySet wasmArraySet = 318; + WasmStructNewDefault wasmStructNewDefault = 319; + WasmStructGet wasmStructGet = 320; + WasmStructSet wasmStructSet = 321; + WasmRefNull wasmRefNull = 322; + WasmRefIsNull wasmRefIsNull = 323; + WasmRefI31 wasmRefI31 = 324; + WasmI31Get wasmI31Get = 325; + WasmAnyConvertExtern wasmAnyConvertExtern = 326; + WasmExternConvertAny wasmExternConvertAny = 327; + WasmMemoryCopy wasmMemoryCopy = 328; + WasmDefineElementSegment wasmDefineElementSegment = 329; + WasmTableInit wasmTableInit = 330; + WasmDropElementSegment wasmDropElementSegment = 331; + WasmTableCopy wasmTableCopy = 332; + WasmDefineSignatureType wasmDefineSignatureType = 333; + CreateNamedDisposableVariable createNamedDisposableVariable = 334; + CreateNamedAsyncDisposableVariable createNamedAsyncDisposableVariable = 335; } } diff --git a/Tests/FuzzilliTests/WasmTests.swift b/Tests/FuzzilliTests/WasmTests.swift index 0932b2421..05a3c6b61 100755 --- a/Tests/FuzzilliTests/WasmTests.swift +++ b/Tests/FuzzilliTests/WasmTests.swift @@ -4116,9 +4116,9 @@ class WasmFoundationTests: XCTestCase { b.buildWasmModule { wasmModule in let f1 = wasmModule.addWasmFunction(with: [] => []) { _, _, _ in return []} let f2 = wasmModule.addWasmFunction(with: [] => []) { _, _, _ in return []} - wasmModule.addElementSegment(elementsType: .wasmFunctionDef(), elements: []) - wasmModule.addElementSegment(elementsType: .wasmFunctionDef(), elements: [f1]) - wasmModule.addElementSegment(elementsType: .wasmFunctionDef(), elements: [f1, f2]) + wasmModule.addElementSegment(elements: []) + wasmModule.addElementSegment(elements: [f1]) + wasmModule.addElementSegment(elements: [f1, f2]) } } testForOutput(program: jsProg, runner: runner, outputString: "") @@ -4130,7 +4130,7 @@ class WasmFoundationTests: XCTestCase { let jsProg = buildAndLiftProgram() { b in b.buildWasmModule { wasmModule in let function = wasmModule.addWasmFunction(with: [] => []) { _, _, _ in return []} - let segment = wasmModule.addElementSegment(elementsType: .wasmFunctionDef(), elements: [function]) + let segment = wasmModule.addElementSegment(elements: [function]) wasmModule.addWasmFunction(with: [] => []) { f, _, _ in f.wasmDropElementSegment(elementSegment: segment) return [] @@ -4140,7 +4140,97 @@ class WasmFoundationTests: XCTestCase { testForOutput(program: jsProg, runner: runner, outputString: "") } - // TODO(427115604): add tests that actually use element segments once table.init operation is supported. + func wasmTableInit(isTable64: Bool) throws { + let runner = try GetJavaScriptExecutorOrSkipTest() + + let jsProg = buildAndLiftProgram() { b in + let module = b.buildWasmModule { module in + let f1 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(1)]} + let f2 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(2)]} + let f3 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(3)]} + + module.addTable(elementType: .wasmFuncRef, + minSize: 10, + definedEntries: [], + definedEntryValues: [], + isTable64: isTable64) + let table2 = module.addTable(elementType: .wasmFuncRef, + minSize: 10, + definedEntries: [], + definedEntryValues: [], + isTable64: isTable64) + module.addElementSegment(elements: []) + let elemSegment2 = module.addElementSegment(elements: [f3, f3, f1, f2]) + + module.addWasmFunction(with: [] => [.wasmi64, .wasmi64]) { f, _, _ in + let tableOffset = { (i: Int) in isTable64 ? f.consti64(Int64(i)) : f.consti32(Int32(i))} + f.wasmTableInit(elementSegment: elemSegment2, table: table2, tableOffset: tableOffset(5), elementSegmentOffset: f.consti32(2), nrOfElementsToUpdate: f.consti32(2)) + let callIndirect = { (table: Variable, idx: Int) in + let idxVar = isTable64 ? f.consti64(Int64(idx)) : f.consti32(Int32(idx)) + return f.wasmCallIndirect(signature: [] => [.wasmi64], table: table, functionArgs: [], tableIndex: idxVar) + } + return callIndirect(table2, 5) + callIndirect(table2, 6) + } + } + let res = b.callMethod(module.getExportedMethod(at: 3), on: module.loadExports()) + b.callFunction(b.createNamedVariable(forBuiltin: "output"), withArgs: [b.arrayToStringForTesting(res)]) + } + + testForOutput(program: jsProg, runner: runner, outputString: "1,2\n") + } + + func testTableInit32() throws { + try wasmTableInit(isTable64: false) + } + + func testTableInit64() throws { + try wasmTableInit(isTable64: true) + } + + func wasmTableCopy(isTable64: Bool) throws { + let runner = try GetJavaScriptExecutorOrSkipTest() + + let jsProg = buildAndLiftProgram() { b in + let module = b.buildWasmModule { module in + let f1 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(1)]} + let f2 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(2)]} + let f3 = module.addWasmFunction(with: [] => [.wasmi64]) { f, _, _ in return [f.consti64(3)]} + + let table1 = module.addTable(elementType: .wasmFuncRef, + minSize: 10, + definedEntries: [], + definedEntryValues: [], + isTable64: isTable64) + let table2 = module.addTable(elementType: .wasmFuncRef, + minSize: 10, + definedEntries: (0..<4).map { WasmTableType.IndexInTableAndWasmSignature.init(indexInTable: $0, signature: [] => [.wasmi64]) }, + definedEntryValues: [f3, f3, f1, f2], + isTable64: isTable64) + + module.addWasmFunction(with: [] => [.wasmi64, .wasmi64]) { f, _, _ in + let const = { (i: Int) in isTable64 ? f.consti64(Int64(i)) : f.consti32(Int32(i))} + f.wasmTableCopy(dstTable: table1, srcTable: table2, dstOffset: const(1), srcOffset: const(2), count: const(2)) + let callIndirect = { (table: Variable, idx: Int) in + let idxVar = isTable64 ? f.consti64(Int64(idx)) : f.consti32(Int32(idx)) + return f.wasmCallIndirect(signature: [] => [.wasmi64], table: table, functionArgs: [], tableIndex: idxVar) + } + return callIndirect(table1, 1) + callIndirect(table1, 2) + } + } + let res = b.callMethod(module.getExportedMethod(at: 3), on: module.loadExports()) + b.callFunction(b.createNamedVariable(forBuiltin: "output"), withArgs: [b.arrayToStringForTesting(res)]) + } + + testForOutput(program: jsProg, runner: runner, outputString: "1,2\n") + } + + func testTableCopy32() throws { + try wasmTableCopy(isTable64: false) + } + + func testTableCopy64() throws { + try wasmTableCopy(isTable64: true) + } } class WasmGCTests: XCTestCase { From cfb654bc79e8374c7bf11fe024666d26970a1aac Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Fri, 10 Oct 2025 02:00:04 -0700 Subject: [PATCH 45/61] Revert "Fix order in Opcodes.swift to be in line with program.proto" This reverts commit dc981ce448a6fab92b023e41a493d42cc3355e17. Reason for revert: This fix was invalidated by commit 88d0e33041bea3f57a573b10bc4503df279dda74 Original change's description: > Fix order in Opcodes.swift to be in line with program.proto > > Commit adfa084a75e58e71a1877c3ea2c430a3f114e7ef manually modified the > program.proto, so these got out of sync. > > Bug: 446634535 > Change-Id: I63438de9d88684a766b2f4f2cfc7f88a5b5b1079 > Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8643678 > Reviewed-by: Michael Achenbach > Auto-Submit: Matthias Liedtke > Commit-Queue: Michael Achenbach Bug: 446634535 Change-Id: I873f100cf42b628548ab123230c869e91cc2c713 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8655440 Bot-Commit: Rubber Stamper Reviewed-by: Pawel Krawczyk Commit-Queue: Pawel Krawczyk --- Sources/Fuzzilli/FuzzIL/Opcodes.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/Fuzzilli/FuzzIL/Opcodes.swift b/Sources/Fuzzilli/FuzzIL/Opcodes.swift index 44bca30d2..f9fda2f00 100755 --- a/Sources/Fuzzilli/FuzzIL/Opcodes.swift +++ b/Sources/Fuzzilli/FuzzIL/Opcodes.swift @@ -67,6 +67,8 @@ enum Opcode { case classAddInstanceComputedProperty(ClassAddInstanceComputedProperty) case beginClassInstanceMethod(BeginClassInstanceMethod) case endClassInstanceMethod(EndClassInstanceMethod) + case beginClassInstanceComputedMethod(BeginClassInstanceComputedMethod) + case endClassInstanceComputedMethod(EndClassInstanceComputedMethod) case beginClassInstanceGetter(BeginClassInstanceGetter) case endClassInstanceGetter(EndClassInstanceGetter) case beginClassInstanceSetter(BeginClassInstanceSetter) @@ -78,6 +80,8 @@ enum Opcode { case endClassStaticInitializer(EndClassStaticInitializer) case beginClassStaticMethod(BeginClassStaticMethod) case endClassStaticMethod(EndClassStaticMethod) + case beginClassStaticComputedMethod(BeginClassStaticComputedMethod) + case endClassStaticComputedMethod(EndClassStaticComputedMethod) case beginClassStaticGetter(BeginClassStaticGetter) case endClassStaticGetter(EndClassStaticGetter) case beginClassStaticSetter(BeginClassStaticSetter) @@ -359,8 +363,4 @@ enum Opcode { case wasmDefineSignatureType(WasmDefineSignatureType) case createNamedDisposableVariable(CreateNamedDisposableVariable) case createNamedAsyncDisposableVariable(CreateNamedAsyncDisposableVariable) - case beginClassInstanceComputedMethod(BeginClassInstanceComputedMethod) - case endClassInstanceComputedMethod(EndClassInstanceComputedMethod) - case beginClassStaticComputedMethod(BeginClassStaticComputedMethod) - case endClassStaticComputedMethod(EndClassStaticComputedMethod) } From 7d22ac5be92f2f0e11aae12b92181628593e280c Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Fri, 10 Oct 2025 11:39:56 +0200 Subject: [PATCH 46/61] Let git in presubmit run in the base directory Bug: 449893303 Change-Id: I206533d114565c7565dd7ab33411e7b932837640 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8657396 Reviewed-by: Matthias Liedtke Commit-Queue: Matthias Liedtke Auto-Submit: Michael Achenbach Commit-Queue: Michael Achenbach --- Tools/presubmit.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Tools/presubmit.py b/Tools/presubmit.py index 2fd903e52..ea62f0afe 100644 --- a/Tools/presubmit.py +++ b/Tools/presubmit.py @@ -2,6 +2,10 @@ import shutil import subprocess +from pathlib import Path + +BASE_DIR = Path(__file__).parent.parent.resolve() + KNOWN_PROTO_FILES = [ "program.proto", "operations.proto", @@ -11,7 +15,11 @@ def check_git_clean(): """Check that the git repository does not have any uncommitted changes.""" - result = subprocess.run(["git", "status", "--porcelain", "--untracked-files=no"], capture_output=True, check=True) + result = subprocess.run( + ["git", "status", "--porcelain", "--untracked-files=no"], + cwd=BASE_DIR, + capture_output=True, + check=True) assert result.stdout.decode().strip() == "", f"Unexpected modified files: {result.stdout.decode()}" def check_proto(): From dac359fcdb2ed786d383bba547685c9149438ddc Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Thu, 9 Oct 2025 16:11:08 +0200 Subject: [PATCH 47/61] Conditionally enable new flag --wasm-assert-types This flag is added in https://crrev.com/c/7022989. Bug: 450246010 Change-Id: Ibcda60b74ef76d536c0ec94a5b40799a29b233e7 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8654776 Reviewed-by: Michael Achenbach Commit-Queue: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8Profile.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index f85c88470..057f8beeb 100755 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -60,6 +60,9 @@ let v8Profile = Profile( // Note that this flag only affects WebAssembly. if probability(0.5) { args.append("--no-liftoff") + if probability(0.3) { + args.append("--wasm-assert-types") + } } // This greatly helps the fuzzer to decide inlining wasm functions into each other when From ce2392d82b97e48581b3cac4a5e8ddeba19d197e Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Fri, 10 Oct 2025 15:54:43 +0200 Subject: [PATCH 48/61] Make presubmit tolerant to staged files and fix directories The application of patches in bot_update in the infrastructure leaves files as staged, which would be detected by the `git status` command. We change this to `git diff` to only flag the unstaged changes, provoked by the proto generation tool. This also fixes more directories that require to be absolute paths. Bug: 449893303 Change-Id: Ic06d6594e18237453c85a3d2bafd944ceababd7d Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8655125 Reviewed-by: Matthias Liedtke Auto-Submit: Michael Achenbach Commit-Queue: Matthias Liedtke --- Tools/presubmit.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Tools/presubmit.py b/Tools/presubmit.py index ea62f0afe..df04798e6 100644 --- a/Tools/presubmit.py +++ b/Tools/presubmit.py @@ -16,7 +16,7 @@ def check_git_clean(): """Check that the git repository does not have any uncommitted changes.""" result = subprocess.run( - ["git", "status", "--porcelain", "--untracked-files=no"], + ["git", "diff", "--name-only"], cwd=BASE_DIR, capture_output=True, check=True) @@ -25,7 +25,7 @@ def check_git_clean(): def check_proto(): """Check that program.proto is up-to-date.""" print("Checking generated protobuf files...") - proto_dir = "Sources/Fuzzilli/Protobuf" + proto_dir = BASE_DIR / "Sources/Fuzzilli/Protobuf" subprocess.run(["python3", "./gen_programproto.py"], cwd=proto_dir, check=True) # gen_programproto.py should be a no-op. check_git_clean() @@ -34,8 +34,8 @@ def check_proto(): print("Skipping protobuf validation as protoc is not available.") return - swift_protobuf_path = os.getcwd() + "/.build/checkouts/swift-protobuf" - assert os.path.exists(swift_protobuf_path), \ + swift_protobuf_path = BASE_DIR / ".build/checkouts/swift-protobuf" + assert swift_protobuf_path.exists(), \ "The presubmit requires a swift-protobuf checkout, e.g. via \"swift build\"" # Build swift-protobuf (for simplicity reuse the fetched repository from the swift-protobuf library). # Use a debug build as running it is very quick while building it with reelase might be slow. From 5fb80f9ebcfc81252ec4f3c0f15f768ab8fe725e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20H=C3=A9rouart?= Date: Thu, 16 Oct 2025 01:21:06 -0700 Subject: [PATCH 49/61] Add `--proto-assign-seq-opt` to the fuzzed v8 arguments. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Include `--proto_assign_seq_opt` with a 0.5 probability. Bug: 429332174 Change-Id: Ibd2539fe2bff676ebd8fb4b23b3805484ae524b1 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8673377 Commit-Queue: Raphaël Hérouart Reviewed-by: Michael Achenbach Reviewed-by: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8Profile.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 057f8beeb..6ba5f297e 100755 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -146,6 +146,10 @@ let v8Profile = Profile( args.append("--stress-wasm-stack-switching") } + if probability(0.5) { + args.append("--proto-assign-seq-opt") + } + // // Sometimes enable additional verification/stressing logic (which may be fairly expensive). // From dfe06430287a33a388caf2acd2484c530234c64c Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Mon, 20 Oct 2025 09:25:34 +0200 Subject: [PATCH 50/61] Bump V8 timeouts to fix bots Bug: 453513823 Change-Id: I4739cb837eee52faea8af449b4938314517fcb38 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8685816 Reviewed-by: Matthias Liedtke --- Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift | 2 +- Sources/FuzzilliCli/Profiles/V8Profile.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift b/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift index d292c4cba..00cef7b5a 100755 --- a/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8HoleFuzzingProfile.swift @@ -40,7 +40,7 @@ let v8HoleFuzzingProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: 300, codePrefix: """ """, diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 6ba5f297e..6971747f5 100755 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -261,7 +261,7 @@ let v8Profile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: 300, codePrefix: """ """, From 85704941ea79e90996a9e7d1963defd103a1075d Mon Sep 17 00:00:00 2001 From: "Rong \"Mantle\" Bao" Date: Mon, 20 Oct 2025 19:43:13 +0800 Subject: [PATCH 51/61] Pass environment variables to the engine in startup tests (#535) * Make REPRL env property a list of tuples of (key, value) * Pass env vars when running startup tests --- Sources/Fuzzilli/Execution/REPRL.swift | 10 +++++----- Sources/Fuzzilli/Execution/ScriptRunner.swift | 1 + Sources/Fuzzilli/Fuzzer.swift | 4 +++- Sources/Fuzzilli/Util/JavaScriptExecutor.swift | 17 ++++++++++++----- Sources/Fuzzilli/Util/MockFuzzer.swift | 1 + 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Sources/Fuzzilli/Execution/REPRL.swift b/Sources/Fuzzilli/Execution/REPRL.swift index ae7d117e2..5958bec30 100755 --- a/Sources/Fuzzilli/Execution/REPRL.swift +++ b/Sources/Fuzzilli/Execution/REPRL.swift @@ -24,8 +24,8 @@ public class REPRL: ComponentBase, ScriptRunner { /// Commandline arguments for the executable public private(set) var processArguments: [String] - /// Environment variables for the child process - private var env = [String]() + /// Environment variables for the child process. Shape: [(key, value)] + public private(set) var env = [(String, String)]() /// Number of script executions since start of child process private var execsSinceReset = 0 @@ -53,7 +53,7 @@ public class REPRL: ComponentBase, ScriptRunner { super.init(name: "REPRL") for (key, value) in processEnvironment { - env.append(key + "=" + value) + env.append((key, value)) } } @@ -64,7 +64,7 @@ public class REPRL: ComponentBase, ScriptRunner { } let argv = convertToCArray(processArguments) - let envp = convertToCArray(env) + let envp = convertToCArray(env.map({ $0 + "=" + $1 })) if reprl_initialize_context(reprlContext, argv, envp, /* capture stdout */ 1, /* capture stderr: */ 1) != 0 { logger.fatal("Failed to initialize REPRL context: \(String(cString: reprl_get_last_error(reprlContext)))") @@ -84,7 +84,7 @@ public class REPRL: ComponentBase, ScriptRunner { } public func setEnvironmentVariable(_ key: String, to value: String) { - env.append(key + "=" + value) + env.append((key, value)) } public func run(_ script: String, withTimeout timeout: UInt32) -> Execution { diff --git a/Sources/Fuzzilli/Execution/ScriptRunner.swift b/Sources/Fuzzilli/Execution/ScriptRunner.swift index 36bccf7e8..fcd408d1d 100755 --- a/Sources/Fuzzilli/Execution/ScriptRunner.swift +++ b/Sources/Fuzzilli/Execution/ScriptRunner.swift @@ -14,6 +14,7 @@ public protocol ScriptRunner: Component { var processArguments: [String] { get } + var env: [(String, String)] { get } /// Executes a script, waits for it to complete, and returns the result. func run(_ script: String, withTimeout timeout: UInt32) -> Execution diff --git a/Sources/Fuzzilli/Fuzzer.swift b/Sources/Fuzzilli/Fuzzer.swift index b8b335ddc..48a46a3e1 100755 --- a/Sources/Fuzzilli/Fuzzer.swift +++ b/Sources/Fuzzilli/Fuzzer.swift @@ -1024,7 +1024,9 @@ public class Fuzzer { // Wrap the executor in a JavaScriptTestRunner // If we can execute it standalone, it could inform us if any flags that were passed are incorrect, stale or conflicting. - let executor = JavaScriptExecutor(withExecutablePath: runner.processArguments[0], arguments: Array(runner.processArguments[1...])) + let executor = JavaScriptExecutor( + withExecutablePath: runner.processArguments[0], + arguments: Array(runner.processArguments[1...]), env: runner.env) do { let output = try executor.executeScript("", withTimeout: 300).output if output.lengthOfBytes(using: .utf8) > 0 { diff --git a/Sources/Fuzzilli/Util/JavaScriptExecutor.swift b/Sources/Fuzzilli/Util/JavaScriptExecutor.swift index 1f0ae1d50..4340c67ef 100755 --- a/Sources/Fuzzilli/Util/JavaScriptExecutor.swift +++ b/Sources/Fuzzilli/Util/JavaScriptExecutor.swift @@ -38,9 +38,12 @@ public class JavaScriptExecutor { let arguments: [String] + let env: [(String, String)] + /// Depending on the type this constructor will try to find the requested shell or fail - public init?(type: ExecutorType = .any, withArguments maybeArguments: [String]? = nil) { + public init?(type: ExecutorType = .any, withArguments maybeArguments: [String]? = nil, withEnv maybeEnv: [(String, String)]? = nil) { self.arguments = maybeArguments ?? [] + self.env = maybeEnv ?? [] let path: String? switch type { @@ -59,23 +62,24 @@ public class JavaScriptExecutor { self.executablePath = path! } - public init(withExecutablePath executablePath: String, arguments: [String]) { + public init(withExecutablePath executablePath: String, arguments: [String], env: [(String, String)]) { self.executablePath = executablePath self.arguments = arguments + self.env = env } /// Executes the JavaScript script using the configured engine and returns the stdout. public func executeScript(_ script: String, withTimeout timeout: TimeInterval? = nil) throws -> Result { - return try execute(executablePath, withInput: prefix + script.data(using: .utf8)!, withArguments: self.arguments, timeout: timeout) + return try execute(executablePath, withInput: prefix + script.data(using: .utf8)!, withArguments: self.arguments, withEnv: self.env, timeout: timeout) } /// Executes the JavaScript script at the specified path using the configured engine and returns the stdout. public func executeScript(at url: URL, withTimeout timeout: TimeInterval? = nil) throws -> Result { let script = try Data(contentsOf: url) - return try execute(executablePath, withInput: prefix + script, withArguments: self.arguments, timeout: timeout) + return try execute(executablePath, withInput: prefix + script, withArguments: self.arguments, withEnv: self.env, timeout: timeout) } - func execute(_ path: String, withInput input: Data = Data(), withArguments arguments: [String] = [], timeout maybeTimeout: TimeInterval? = nil) throws -> Result { + func execute(_ path: String, withInput input: Data = Data(), withArguments arguments: [String] = [], withEnv env: [(String, String)] = [], timeout maybeTimeout: TimeInterval? = nil) throws -> Result { let inputPipe = Pipe() let outputPipe = Pipe() let errorPipe = Pipe() @@ -89,6 +93,8 @@ public class JavaScriptExecutor { // Close stdin try inputPipe.fileHandleForWriting.close() + let environment = ProcessInfo.processInfo.environment.merging(env, uniquingKeysWith: { _, new in new }) + // Execute the subprocess. let task = Process() task.standardOutput = outputPipe @@ -96,6 +102,7 @@ public class JavaScriptExecutor { task.arguments = arguments + [url.path] task.executableURL = URL(fileURLWithPath: path) task.standardInput = inputPipe + task.environment = environment try task.run() var timedOut = false diff --git a/Sources/Fuzzilli/Util/MockFuzzer.swift b/Sources/Fuzzilli/Util/MockFuzzer.swift index 084138fe4..288ab8517 100755 --- a/Sources/Fuzzilli/Util/MockFuzzer.swift +++ b/Sources/Fuzzilli/Util/MockFuzzer.swift @@ -26,6 +26,7 @@ struct MockExecution: Execution { class MockScriptRunner: ScriptRunner { var processArguments: [String] = [] + var env: [(String, String)] = [] func run(_ script: String, withTimeout timeout: UInt32) -> Execution { return MockExecution(outcome: .succeeded, From 6f6d0282559404325b5ba378a0fcdb3abc5bc025 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Fri, 10 Oct 2025 14:43:40 +0200 Subject: [PATCH 52/61] Support ILType.unboundFunction in ProgramBuilder.generateTypeInternal While not a perfect fix, this will address the warnings and should lead to generating useful samples. Change-Id: Iff0dc4d099a0ebf5138c271209351cc633f222a3 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8655658 Commit-Queue: Matthias Liedtke Auto-Submit: Matthias Liedtke Reviewed-by: Carl Smith --- Sources/Fuzzilli/Base/ProgramBuilder.swift | 7 +++++++ Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Sources/Fuzzilli/Base/ProgramBuilder.swift b/Sources/Fuzzilli/Base/ProgramBuilder.swift index d6cf99689..ba6eb2ef4 100755 --- a/Sources/Fuzzilli/Base/ProgramBuilder.swift +++ b/Sources/Fuzzilli/Base/ProgramBuilder.swift @@ -686,6 +686,13 @@ public class ProgramBuilder { // Note that builtin constructors are handled above in the maybeGenerateConstructorAsPath call. return self.randomVariable(forUseAs: .function()) }), + (.unboundFunction(), { + // TODO: We have the same issue as above for functions. + // First try to find an existing unbound function. if not present, try to find any + // function. Using any function as an unbound function is fine, it just misses the + // information about the receiver type (which for many functions doesn't matter). + return self.randomVariable(ofType: .unboundFunction()) ?? self.randomVariable(forUseAs: .function()) + }), (.undefined, { return self.loadUndefined() }), (.constructor(), { // TODO: We have the same issue as above for functions. diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index 6611acdef..e687a3de9 100755 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -1965,7 +1965,6 @@ public let CodeGenerators: [CodeGenerator] = [ c, withArgs: arguments, spreading: spreads, guard: needGuard) }, - // TODO(mliedtke): Improve generateTypeInternal to support .unboundFunction() CodeGenerator("UnboundFunctionCallGenerator", inputs: .preferred(.unboundFunction())) { b, f in let (arguments, argsMatch) = b.randomArguments(forCallingGuardableFunction: f) let fctType = b.type(of: f) @@ -1976,7 +1975,6 @@ public let CodeGenerators: [CodeGenerator] = [ b.callMethod("call", on: f, withArgs: [receiver] + arguments, guard: needGuard) }, - // TODO(mliedtke): Improve generateTypeInternal to support .unboundFunction() CodeGenerator("UnboundFunctionApplyGenerator", inputs: .preferred(.unboundFunction())) { b, f in let (arguments, argsMatch) = b.randomArguments(forCallingGuardableFunction: f) let fctType = b.type(of: f) @@ -1987,7 +1985,6 @@ public let CodeGenerators: [CodeGenerator] = [ b.callMethod("apply", on: f, withArgs: [receiver, b.createArray(with: arguments)], guard: needGuard) }, - // TODO(mliedtke): Improve generateTypeInternal to support .unboundFunction() CodeGenerator("UnboundFunctionBindGenerator", inputs: .required(.unboundFunction())) { b, f in let arguments = b.randomArguments(forCalling: f) let fctType = b.type(of: f) From 750aeb58c4171349187ac452025006d9a761e461 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Mon, 20 Oct 2025 12:06:39 +0200 Subject: [PATCH 53/61] Remove maintainer list from README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... as the project is now maintained by a broader group of people. Change-Id: Ie08675f27644b7f54c9e9e2eb265163fb358e5cf Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8686137 Commit-Queue: Matthias Liedtke Reviewed-by: Samuel Groß --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index f199899d7..1540cdc64 100755 --- a/README.md +++ b/README.md @@ -2,10 +2,6 @@ A (coverage-)guided fuzzer for dynamic language interpreters based on a custom intermediate language ("FuzzIL") which can be mutated and translated to JavaScript. -Fuzzilli is developed and maintained by: -- Samuel Groß, -- Carl Smith, - ## Usage The basic steps to use this fuzzer are: From 8f7161d2c4770a1bf87aed1cee80331baf14fadf Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Fri, 17 Oct 2025 11:01:18 +0200 Subject: [PATCH 54/61] Print a debug message after a fatal error Fuzzilli sometimes aborts without any message. This adds a message to a code place that might not print anything else yet. Bug: 453513823 Change-Id: Ice480cc70903cfcb73165886db7b497cd0bb907e Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8679216 Reviewed-by: Matthias Liedtke Reviewed-by: Danylo Mocherniuk Commit-Queue: Michael Achenbach --- Sources/FuzzilliCli/main.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sources/FuzzilliCli/main.swift b/Sources/FuzzilliCli/main.swift index 8f0990f0e..1617851b3 100755 --- a/Sources/FuzzilliCli/main.swift +++ b/Sources/FuzzilliCli/main.swift @@ -640,7 +640,11 @@ fuzzer.sync { logger.info("You can recover the old corpus by moving it to \(path + "/corpus").") } } - exit(reason.toExitCode()) + let code = reason.toExitCode() + if (code != 0) { + print("Aborting execution after a fatal error.") + } + exit(code) } // Store samples to disk if requested. From 29b596836a4d620cd95b89127fdf654a96e9f2a4 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Mon, 20 Oct 2025 10:54:10 +0200 Subject: [PATCH 55/61] Disable ParitionAlloc This doesn't seem to work with Fuzzilli, yet. Bug: 453530599 Change-Id: Id944bba33c2c802cceada5f7281ac1c82a811c36 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8686136 Reviewed-by: Michael Achenbach Auto-Submit: Matthias Liedtke Commit-Queue: Michael Achenbach --- Targets/V8/fuzzbuild.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Targets/V8/fuzzbuild.sh b/Targets/V8/fuzzbuild.sh index 735d4fc4b..264705f43 100755 --- a/Targets/V8/fuzzbuild.sh +++ b/Targets/V8/fuzzbuild.sh @@ -16,7 +16,7 @@ if [ "$(uname)" == "Linux" ]; then # See https://v8.dev/docs/compile-arm64 for instructions on how to build on Arm64 - gn gen out/fuzzbuild --args='is_debug=false dcheck_always_on=true v8_static_library=true v8_enable_verify_heap=true v8_fuzzilli=true sanitizer_coverage_flags="trace-pc-guard" target_cpu="x64"' + gn gen out/fuzzbuild --args='is_debug=false dcheck_always_on=true v8_static_library=true v8_enable_verify_heap=true v8_enable_partition_alloc=false v8_fuzzilli=true sanitizer_coverage_flags="trace-pc-guard" target_cpu="x64"' else echo "Unsupported operating system" fi From d3aafd2a27e24c3acaf0e399f00daba85d6d4c67 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Mon, 20 Oct 2025 16:42:07 +0200 Subject: [PATCH 56/61] Enable the FuzzIL compiler to directly output a JS file This will be used by an automated script compiling and lifting test cases from e.g. test262. Bug: 442444727 Change-Id: I0b2321e44e0def292cd88a103a46b03960ee1d55 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8680076 Commit-Queue: Michael Achenbach Reviewed-by: Matthias Liedtke --- Sources/FuzzILTool/main.swift | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/Sources/FuzzILTool/main.swift b/Sources/FuzzILTool/main.swift index b9ed54deb..a8a3b6009 100755 --- a/Sources/FuzzILTool/main.swift +++ b/Sources/FuzzILTool/main.swift @@ -95,7 +95,7 @@ func loadProgramOrExit(from path: String) -> Program { let args = Arguments.parse(from: CommandLine.arguments) -if args["-h"] != nil || args["--help"] != nil || args.numPositionalArguments != 1 || args.numOptionalArguments > 2 { +if args["-h"] != nil || args["--help"] != nil || args.numPositionalArguments != 1 { print(""" Usage: \(args.programName) options path @@ -108,6 +108,7 @@ if args["-h"] != nil || args["--help"] != nil || args.numPositionalArguments != --dumpProgram : Dumps the internal representation of the program stored in the given protobuf file --checkCorpus : Attempts to load all .fzil files in a directory and checks if they are statically valid --compile : Compile the given JavaScript program to a FuzzIL program. Requires node.js + --outputPathJS : If given, --compile will write the lifted JS file to the given path after compilation. --generate : Generate a random program using Fuzzilli's code generators and save it to the specified path. --forDifferentialFuzzing : Enable additional features for better support of external differential fuzzing. """) @@ -186,17 +187,27 @@ else if args.has("--compile") { exit(-1) } - print(fuzzILLifter.lift(program)) - print() - print(jsLifter.lift(program)) + if let js_path = args["--outputPathJS"] { + let content = jsLifter.lift(program) + do { + try content.write(to: URL(fileURLWithPath: js_path), atomically: false, encoding: String.Encoding.utf8) + } catch { + print("Failed to write file \(js_path): \(error)") + exit(-1) + } + } else { + print(fuzzILLifter.lift(program)) + print() + print(jsLifter.lift(program)) - do { - let outputPath = URL(fileURLWithPath: path).deletingPathExtension().appendingPathExtension("fzil") - try program.asProtobuf().serializedData().write(to: outputPath) - print("FuzzIL program written to \(outputPath.relativePath)") - } catch { - print("Failed to store output program to disk: \(error)") - exit(-1) + do { + let outputPath = URL(fileURLWithPath: path).deletingPathExtension().appendingPathExtension("fzil") + try program.asProtobuf().serializedData().write(to: outputPath) + print("FuzzIL program written to \(outputPath.relativePath)") + } catch { + print("Failed to store output program to disk: \(error)") + exit(-1) + } } } From 85ec02329ab613999a0e61d7f68301971657401f Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Mon, 20 Oct 2025 17:34:26 +0200 Subject: [PATCH 57/61] Make disposable-variable generators more expressive This turns the existing disposable-variable generators into new-style stubs that enable more expressive code generation in the bodies of the generated objects. Bug: 446632644 Change-Id: Ife11999aa61d133c15232bca58e30deb525d880d Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8654476 Reviewed-by: Matthias Liedtke Commit-Queue: Michael Achenbach --- Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 86 +++++++++++++------ 1 file changed, 60 insertions(+), 26 deletions(-) diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index e687a3de9..b62621d5e 100755 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -12,6 +12,54 @@ // See the License for the specific language governing permissions and // limitations under the License. +// Generator stubs for disposable and async-disposable variables. +func disposableVariableGeneratorStubs( + inContext contextRequirement : Context, + withSymbol symbolProperty : String, + genDisposableVariable : @escaping (ProgramBuilder, Variable) -> Void) -> [GeneratorStub] { + return [ + GeneratorStub( + "DisposableObjectLiteralBeginGenerator", + inContext: .single(contextRequirement), + provides: [.objectLiteral] + ) { b in + // Ensure we have the desired symbol below. + b.createSymbolProperty(symbolProperty) + b.emit(BeginObjectLiteral()) + }, + GeneratorStub( + "DisposableObjectLiteralComputedMethodBeginGenerator", + inContext: .single(.objectLiteral), + provides: [.javascript, .subroutine, .method] + ) { b in + // It should be safe to assume that we find at least the + // desired symbol we created above. + let symbol = b.randomVariable(forUseAs: .jsSymbol) + let parameters = b.randomParameters() + b.setParameterTypesForNextSubroutine(parameters.parameterTypes) + b.emit( + BeginObjectLiteralComputedMethod( + parameters: parameters.parameters), + withInputs: [symbol]) + }, + GeneratorStub( + "DisposableObjectLiteralComputedMethodEndGenerator", + inContext: .single([.javascript, .subroutine, .method]), + provides: [.objectLiteral] + ) { b in + b.maybeReturnRandomJsVariable(0.9) + b.emit(EndObjectLiteralComputedMethod()) + }, + GeneratorStub( + "DisposableObjectLiteralEndGenerator", + inContext: .single(.objectLiteral) + ) { b in + let disposableVariable = b.emit(EndObjectLiteral()).output + genDisposableVariable(b, disposableVariable) + }, + ] +} + // // Code generators. // @@ -423,34 +471,20 @@ public let CodeGenerators: [CodeGenerator] = [ ]), CodeGenerator( - "DisposableVariableGenerator", inContext: .single(.subroutine), inputs: .one - ) { b, val in - assert(b.context.contains(.subroutine)) - let dispose = b.createSymbolProperty("dispose") - let disposableVariable = b.buildObjectLiteral { obj in - obj.addProperty("value", as: val) - obj.addComputedMethod(dispose, with: .parameters(n: 0)) { args in - b.maybeReturnRandomJsVariable(0.9) - } - } - b.loadDisposableVariable(disposableVariable) - }, + "DisposableVariableGenerator", + disposableVariableGeneratorStubs( + inContext: .subroutine, + withSymbol: "dispose") { b, variable in + b.loadDisposableVariable(variable) + }), CodeGenerator( - "AsyncDisposableVariableGenerator", inContext: .single(.asyncFunction), - inputs: .one - ) { b, val in - assert(b.context.contains(.asyncFunction)) - let asyncDispose = b.createSymbolProperty("asyncDispose") - let asyncDisposableVariable = b.buildObjectLiteral { obj in - obj.addProperty("value", as: val) - obj.addComputedMethod(asyncDispose, with: .parameters(n: 0)) { - args in - b.maybeReturnRandomJsVariable(0.9) - } - } - b.loadAsyncDisposableVariable(asyncDisposableVariable) - }, + "AsyncDisposableVariableGenerator", + disposableVariableGeneratorStubs( + inContext: .asyncFunction, + withSymbol: "asyncDispose") { b, variable in + b.loadAsyncDisposableVariable(variable) + }), CodeGenerator( "ObjectLiteralGenerator", From 2b2e6f96c30a491707688e613bad72493cd26cf0 Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Tue, 21 Oct 2025 09:13:26 +0200 Subject: [PATCH 58/61] Remove redundant context assertions This removes some redundant assertions that are already checked in the same way by the `inContext` requirements of the respective code generators. Bug: 446632644 Change-Id: I50b9432d15d8554040d0598893b3fb35ae264fba Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8686138 Commit-Queue: Michael Achenbach Reviewed-by: Matthias Liedtke --- Sources/Fuzzilli/CodeGen/CodeGenerators.swift | 120 ------------------ 1 file changed, 120 deletions(-) diff --git a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift index b62621d5e..0f09e0037 100755 --- a/Sources/Fuzzilli/CodeGen/CodeGenerators.swift +++ b/Sources/Fuzzilli/CodeGen/CodeGenerators.swift @@ -446,7 +446,6 @@ public let CodeGenerators: [CodeGenerator] = [ }, CodeGenerator("ArgumentsAccessGenerator", inContext: .single(.subroutine)) { b in - assert(b.context.contains(.subroutine)) b.loadArguments() }, @@ -503,9 +502,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ObjectLiteralPropertyGenerator", inContext: .single(.objectLiteral)) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) // Try to find a property that hasn't already been added to this literal. var propertyName: String @@ -526,10 +522,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ObjectLiteralElementGenerator", inContext: .single(.objectLiteral), inputs: .one ) { b, value in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Select an element that hasn't already been added to this literal. var index = b.randomIndex() while b.currentObjectLiteral.elements.contains(index) { @@ -544,10 +536,6 @@ public let CodeGenerators: [CodeGenerator] = [ "ObjectLiteralComputedPropertyGenerator", inContext: .single(.objectLiteral), inputs: .one ) { b, value in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a computed property that hasn't already been added to this literal. var propertyName: Variable var attempts = 0 @@ -568,18 +556,11 @@ public let CodeGenerators: [CodeGenerator] = [ "ObjectLiteralCopyPropertiesGenerator", inContext: .single(.objectLiteral), inputs: .preferred(.object()) ) { b, object in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) b.currentObjectLiteral.copyProperties(from: object) }, CodeGenerator("ObjectLiteralPrototypeGenerator", inContext: .single(.objectLiteral)) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // There should only be one __proto__ field in an object literal. guard !b.currentObjectLiteral.hasPrototype else { return } @@ -594,10 +575,6 @@ public let CodeGenerators: [CodeGenerator] = [ "ObjectLiteralMethodBeginGenerator", inContext: .single(.objectLiteral), provides: [.javascript, .subroutine, .method] ) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this literal. var methodName: String var attempts = 0 @@ -632,10 +609,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.objectLiteral), provides: [.javascript, .subroutine, .method] ) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a computed method name that hasn't already been added to this literal. var methodName: Variable var attempts = 0 @@ -675,10 +648,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.objectLiteral), provides: [.javascript, .subroutine, .method] ) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a getter has not yet been installed. var propertyName: String var attempts = 0 @@ -715,10 +684,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.objectLiteral), provides: [.javascript, .subroutine, .method] ) { b in - assert( - b.context.contains(.objectLiteral) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a setter has not yet been installed. var propertyName: String var attempts = 0 @@ -752,9 +717,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) guard !b.currentClassDefinition.hasConstructor else { // There must only be one constructor @@ -799,10 +761,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassInstancePropertyGenerator", inContext: .single(.classDefinition)) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added to this literal. var propertyName: String var attempts = 0 @@ -819,10 +777,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassInstanceElementGenerator", inContext: .single(.classDefinition)) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Select an element that hasn't already been added to this literal. var index = b.randomIndex() while b.currentClassDefinition.instanceElements.contains(index) { @@ -837,10 +791,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ClassInstanceComputedPropertyGenerator", inContext: .single(.classDefinition) ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a computed property that hasn't already been added to this literal. var propertyName: Variable var attempts = 0 @@ -864,10 +814,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this class. var methodName: String var attempts = 0 @@ -906,10 +852,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this class. var methodName = b.randomJsVariable() var attempts = 0 @@ -944,10 +886,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a getter has not yet been installed. var propertyName: String var attempts = 0 @@ -982,10 +920,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a setter has not yet been installed. var propertyName: String var attempts = 0 @@ -1015,10 +949,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassStaticPropertyGenerator", inContext: .single(.classDefinition)) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added to this literal. var propertyName: String var attempts = 0 @@ -1038,10 +968,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("ClassStaticElementGenerator", inContext: .single(.classDefinition)) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Select an element that hasn't already been added to this literal. var index = b.randomIndex() while b.currentClassDefinition.staticElements.contains(index) { @@ -1056,10 +982,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ClassStaticComputedPropertyGenerator", inContext: .single(.classDefinition) ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a computed property that hasn't already been added to this literal. var propertyName: Variable var attempts = 0 @@ -1086,10 +1008,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - b.emit(BeginClassStaticInitializer()) }, GeneratorStub( @@ -1108,10 +1026,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .method, .subroutine, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this class. var methodName: String var attempts = 0 @@ -1152,10 +1066,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a method that hasn't already been added to this class. var methodName = b.randomJsVariable() var attempts = 0 @@ -1190,10 +1100,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a getter has not yet been installed. var propertyName: String var attempts = 0 @@ -1229,10 +1135,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a property that hasn't already been added and for which a setter has not yet been installed. var propertyName: String var attempts = 0 @@ -1262,10 +1164,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ClassPrivateInstancePropertyGenerator", inContext: .single(.classDefinition) ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a private field that hasn't already been added to this literal. var propertyName: String var attempts = 0 @@ -1288,10 +1186,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a private field that hasn't already been added to this class. var methodName: String var attempts = 0 @@ -1323,10 +1217,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "ClassPrivateStaticPropertyGenerator", inContext: .single(.classDefinition) ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a private field that hasn't already been added to this literal. var propertyName: String var attempts = 0 @@ -1349,10 +1239,6 @@ public let CodeGenerators: [CodeGenerator] = [ inContext: .single(.classDefinition), provides: [.javascript, .subroutine, .method, .classMethod] ) { b in - assert( - b.context.contains(.classDefinition) - && !b.context.contains(.javascript)) - // Try to find a private field that hasn't already been added to this class. var methodName: String var attempts = 0 @@ -2038,7 +1924,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator( "SubroutineReturnGenerator", inContext: .single(.subroutine), inputs: .one ) { b, val in - assert(b.context.contains(.subroutine)) if probability(0.9) { b.doReturn(val) } else { @@ -2048,7 +1933,6 @@ public let CodeGenerators: [CodeGenerator] = [ CodeGenerator("YieldGenerator", inContext: .single(.generatorFunction), inputs: .one) { b, val in - assert(b.context.contains(.generatorFunction)) if probability(0.9) { b.yield(val) } else { @@ -2060,13 +1944,11 @@ public let CodeGenerators: [CodeGenerator] = [ "YieldEachGenerator", inContext: .single(.generatorFunction), inputs: .required(.iterable) ) { b, val in - assert(b.context.contains(.generatorFunction)) b.yieldEach(val) }, CodeGenerator("AwaitGenerator", inContext: .single(.asyncFunction), inputs: .one) { b, val in - assert(b.context.contains(.asyncFunction)) b.await(val) }, @@ -2603,7 +2485,6 @@ public let CodeGenerators: [CodeGenerator] = [ }, CodeGenerator("ContinueGenerator", inContext: .single(.loop)) { b in - assert(b.context.contains(.loop)) b.loopContinue() }, @@ -3130,7 +3011,6 @@ public let CodeGenerators: [CodeGenerator] = [ }, CodeGenerator("LoadNewTargetGenerator", inContext: .single(.subroutine)) { b in - assert(b.context.contains(.subroutine)) b.loadNewTarget() }, From 16bd60c99958ab22269b4a1a3cac4edf082fb7b2 Mon Sep 17 00:00:00 2001 From: Matthias Liedtke Date: Tue, 21 Oct 2025 12:55:54 +0200 Subject: [PATCH 59/61] Increase list of owners [Insert Spider-Man quote here] Change-Id: I64ea011d92b5bc535a4c19c8326782ad1512708b Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8690557 Commit-Queue: Michael Achenbach Reviewed-by: Michael Achenbach --- OWNERS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OWNERS b/OWNERS index de83baf0b..f5ef171a5 100755 --- a/OWNERS +++ b/OWNERS @@ -1,5 +1,9 @@ cffsmith@google.com +machenbach@google.com +mdanylo@google.com mliedtke@google.com +pawkra@google.com saelo@google.com +tacet@google.com per-file WHITESPACE=* From f178ca76c1ceb5bdbd42e418882dcc65cf2d14f6 Mon Sep 17 00:00:00 2001 From: Omer Katz Date: Tue, 21 Oct 2025 13:05:37 +0200 Subject: [PATCH 60/61] Add scavenger chaos mode to Fuzzilli Bug: 450045070 Change-Id: I6bf07aa3b854e703b0b199939e8e9018a1ef00a7 Reviewed-on: https://chrome-internal-review.googlesource.com/c/v8/fuzzilli/+/8690756 Reviewed-by: Matthias Liedtke Commit-Queue: Omer Katz --- Sources/FuzzilliCli/Profiles/V8Profile.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sources/FuzzilliCli/Profiles/V8Profile.swift b/Sources/FuzzilliCli/Profiles/V8Profile.swift index 6971747f5..114e1f749 100755 --- a/Sources/FuzzilliCli/Profiles/V8Profile.swift +++ b/Sources/FuzzilliCli/Profiles/V8Profile.swift @@ -127,6 +127,12 @@ let v8Profile = Profile( args.append("--handle-weak-ref-weakly-in-minor-gc") } + if probability(0.1) { + args.append("--scavenger-chaos-mode") + let threshold = Int.random(in: 0...100) + args.append("--scavenger-chaos-mode-threshold=\(threshold)") + } + if probability(0.1) { let stackSize = Int.random(in: 54...863) args.append("--stack-size=\(stackSize)") From 5fd1e5a2dca681a5cf0169342c487ee31c0b7824 Mon Sep 17 00:00:00 2001 From: Chase Killorin Date: Wed, 12 Nov 2025 22:38:20 -0500 Subject: [PATCH 61/61] Swift build fixes --- Package.swift | 2 +- Sources/FuzzilliCli/Profiles/V8DebugProfile.swift | 2 +- Sources/FuzzilliCli/TerminalUI.swift | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 7abdceb91..ac7c9b21b 100755 --- a/Package.swift +++ b/Package.swift @@ -25,7 +25,7 @@ let package = Package( .library(name: "Fuzzilli",targets: ["Fuzzilli"]), ], dependencies: [ - .package(url: "https://github.com/apple/swift-protobuf.git", from: "1.31.0"), + .package(url: "https://github.com/apple/swift-protobuf.git", from: "1.32.0"), .package( url: "https://github.com/apple/swift-collections.git", .upToNextMinor(from: "1.2.0") diff --git a/Sources/FuzzilliCli/Profiles/V8DebugProfile.swift b/Sources/FuzzilliCli/Profiles/V8DebugProfile.swift index 02b36285f..553a15332 100755 --- a/Sources/FuzzilliCli/Profiles/V8DebugProfile.swift +++ b/Sources/FuzzilliCli/Profiles/V8DebugProfile.swift @@ -30,7 +30,7 @@ let v8DebugProfile = Profile( maxExecsBeforeRespawn: 1000, - timeout: 250, + timeout: Timeout.value(250), codePrefix: """ """, diff --git a/Sources/FuzzilliCli/TerminalUI.swift b/Sources/FuzzilliCli/TerminalUI.swift index d89682695..c65f839a7 100755 --- a/Sources/FuzzilliCli/TerminalUI.swift +++ b/Sources/FuzzilliCli/TerminalUI.swift @@ -148,6 +148,7 @@ class TerminalUI { } print(""" + \(postgresStats)\ ----------------- Fuzzer state: \(state) Uptime: \(formatTimeInterval(fuzzer.uptime()))