public override void Compile(ILProcessor processor, AstReturnStatement element, CilCompilationContext context) { if (element.Result != null) { context.Compile(element.Result); } processor.Emit(OpCodes.Ret); }
public override void Compile(ILProcessor processor, AstNewExpression @new, CilCompilationContext context) { if (@new.Constructor == null) { throw new NotImplementedException("NewCompiler: Constructor on " + @new + " is null."); } foreach (var argument in @new.Arguments) { context.Compile(argument); } processor.Emit(OpCodes.Newobj, context.ConvertReference(@new.Constructor)); }