internal FinallyCoder(TryCatchFinallyCoderBase tryCatchFinallyCoderBase) : base(tryCatchFinallyCoderBase, new InstructionMarker { instruction = tryCatchFinallyCoderBase.instructions.Last, markerType = MarkerType.Finally }) { }
internal TryCatchFinallyCoderBase(TryCatchFinallyCoderBase tryCatchFinallyCoderBase, InstructionMarker instructionMarker) : base(tryCatchFinallyCoderBase.instructions) { this.markers = tryCatchFinallyCoderBase.markers; if (instructionMarker != null) { this.markers.Add(instructionMarker); } }
internal CatchCoder(TryCatchFinallyCoderBase tryCatchFinallyCoderBase, BuilderType exceptionType) : base(tryCatchFinallyCoderBase, new InstructionMarker { instruction = tryCatchFinallyCoderBase.instructions.Last, markerType = MarkerType.Catch, exceptionType = exceptionType }) { // save the exception object to a local variable if required // but... we will only do this if required... so we save the current position and // if the exception property is called, we insert the store local opcode here this.beforeCatchBody = tryCatchFinallyCoderBase.instructions.Last; this.identification = CodeBlocks.GenerateName(); this.exceptionType = exceptionType; }