29 return "EnterTryCatch";
31 return "EnterTryFinally";
66 object unwrappedException;
72 num = (frame.InstructionIndex = num + instructions[num].
Run(frame));
76 frame.InstructionIndex += instructions[num].
Run(frame);
81 frame.InstructionIndex += frame.
Goto(handler.
LabelIndex, unwrappedException, gotoExceptionHandler:
true);
88 num2 = (frame.InstructionIndex = num2 + instructions[num2].
Run(frame));
92 frame.InstructionIndex += instructions[num2].
Run(frame);
111 num3 = (frame.InstructionIndex = num3 + instructions[num3].
Run(frame));
115 return frame.InstructionIndex - instructionIndex;
122 return "EnterTryCatch";
override int ProducedContinuations
TryCatchFinallyHandler _tryHandler
EnterTryCatchFinallyInstruction(int targetIndex, bool hasFinally)
override int Run(InterpretedFrame frame)
override string InstructionName
override string ToString()
TryCatchFinallyHandler Handler
static EnterTryCatchFinallyInstruction CreateTryCatch()
readonly bool _hasFinally
static EnterTryCatchFinallyInstruction CreateTryFinally(int labelIndex)
void SetTryHandler(TryCatchFinallyHandler tryHandler)
readonly int HandlerEndIndex
readonly int HandlerStartIndex
int Run(InterpretedFrame frame)
readonly Interpreter Interpreter
int Goto(int labelIndex, object value, bool gotoExceptionHandler)
void PushContinuation(int continuation)
InstructionArray Instructions
readonly int GotoEndTargetIndex
readonly int FinallyEndIndex
bool HasHandler(InterpretedFrame frame, Exception exception, [NotNullWhen(true)] out ExceptionHandler handler, out object unwrappedException)
readonly int FinallyStartIndex
readonly int TryStartIndex
readonly Instruction[] Instructions