예제 #1
0
 internal FinallyCoder(TryCatchFinallyCoderBase tryCatchFinallyCoderBase) :
     base(tryCatchFinallyCoderBase, new InstructionMarker
 {
     instruction = tryCatchFinallyCoderBase.instructions.Last,
     markerType  = MarkerType.Finally
 })
 {
 }
예제 #2
0
        internal TryCatchFinallyCoderBase(TryCatchFinallyCoderBase tryCatchFinallyCoderBase, InstructionMarker instructionMarker) : base(tryCatchFinallyCoderBase.instructions)
        {
            this.markers = tryCatchFinallyCoderBase.markers;

            if (instructionMarker != null)
            {
                this.markers.Add(instructionMarker);
            }
        }
예제 #3
0
 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;
 }