internal override void Compile(IBuildContext ctx, int expressionId)
        {
            var local = ctx.DeclareLocal(_variable);

            if (_initialValue != null)
            {
                ctx.Compile(_initialValue);

                ctx.MarkSequencePointFor(expressionId);
                LocalWriteExpression.EmitWriteLocal(ctx, local);
            }
        }
示例#2
0
 internal override void Compile(IBuildContext ctx, int expressionId)
 {
     if (_exceptionVariable == null)
     {
         ctx.Generator.Emit(OpCodes.Pop);
     }
     else
     {
         var local = _declareVariable ? ctx.DeclareLocal(_exceptionVariable) : ctx.GetLocal(_exceptionVariable);
         LocalWriteExpression.EmitWriteLocal(ctx, local);
     }
 }