Author: jbevain
Date: 2008-01-27 17:02:31 -0500 (Sun, 27 Jan 2008)
New Revision: 94092
Modified:
trunk/mcs/class/System.Core/System.Linq.Expressions/ChangeLog
trunk/mcs/class/System.Core/System.Linq.Expressions/ConditionalExpression.cs
Log:
2008-01-27 Jb Evain <[EMAIL PROTECTED]>
* ConditionalExpression.cs: implement Emit.
Modified: trunk/mcs/class/System.Core/System.Linq.Expressions/ChangeLog
===================================================================
--- trunk/mcs/class/System.Core/System.Linq.Expressions/ChangeLog
2008-01-27 21:58:48 UTC (rev 94091)
+++ trunk/mcs/class/System.Core/System.Linq.Expressions/ChangeLog
2008-01-27 22:02:31 UTC (rev 94092)
@@ -1,5 +1,9 @@
2008-01-27 Jb Evain <[EMAIL PROTECTED]>
+ * ConditionalExpression.cs: implement Emit.
+
+2008-01-27 Jb Evain <[EMAIL PROTECTED]>
+
* Expression.cs: implement the last Lambda method.
2008-01-27 Jb Evain <[EMAIL PROTECTED]>
Modified:
trunk/mcs/class/System.Core/System.Linq.Expressions/ConditionalExpression.cs
===================================================================
---
trunk/mcs/class/System.Core/System.Linq.Expressions/ConditionalExpression.cs
2008-01-27 21:58:48 UTC (rev 94091)
+++
trunk/mcs/class/System.Core/System.Linq.Expressions/ConditionalExpression.cs
2008-01-27 22:02:31 UTC (rev 94092)
@@ -27,6 +27,7 @@
//
using System;
+using System.Reflection.Emit;
namespace System.Linq.Expressions {
@@ -58,8 +59,20 @@
internal override void Emit (EmitContext ec)
{
- throw new NotImplementedException ();
+ var ig = ec.ig;
+ var false_target = ig.DefineLabel ();
+ var end_target = ig.DefineLabel ();
+
+ test.Emit (ec);
+ ig.Emit (OpCodes.Brfalse, false_target);
+
+ ifTrue.Emit (ec);
+ ig.Emit (OpCodes.Br, end_target);
+
+ ig.MarkLabel (false_target);
+ ifFalse.Emit (ec);
+
+ ig.MarkLabel (end_target);
}
-
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches