2005-12-15 Cesar Lopez Nataren <cnataren@novell.com>
authorCésar Natarén <cesar@mono-cvs.ximian.com>
Thu, 15 Dec 2005 20:12:17 +0000 (20:12 -0000)
committerCésar Natarén <cesar@mono-cvs.ximian.com>
Thu, 15 Dec 2005 20:12:17 +0000 (20:12 -0000)
* Statement.cs (For.Emit): Take into account what relational
operator is in place.

* expression.cs (Assign.Emit): Emit box in the op= cases.

svn path=/trunk/mcs/; revision=54493

mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog
mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs
mcs/class/Microsoft.JScript/Microsoft.JScript/expression.cs

index 2ef05c4e6a2a62c3ebf0a6b862a2864803db7f36..5a36a26b3563ac4818a1796425a1a97e4eab3b7b 100644 (file)
@@ -1,3 +1,10 @@
+2005-12-15  Cesar Lopez Nataren  <cnataren@novell.com>
+
+       * Statement.cs (For.Emit): Take into account what relational
+       operator is in place.
+
+       * expression.cs (Assign.Emit): Emit box in the op= cases.
+
 2005-12-10 Florian Gross  <flgr@ccan.de> and
           Evan Briones <evan@evanbriones.com>
 
index 94921b08fcce81d72be144a2645010fdb5b5c5d2..a7db3481fa896e742158ed0e3cc119697c20a5a5 100644 (file)
@@ -508,9 +508,14 @@ namespace Microsoft.JScript {
                                if (a is Equality)
                                        ig.Emit (OpCodes.Brfalse, forward);
                                else if (a is Relational) {
+                                       Relational rel = (Relational) a;
                                        ig.Emit (OpCodes.Ldc_I4_0);
                                        ig.Emit (OpCodes.Conv_R8);
-                                       ig.Emit (OpCodes.Bge, forward);
+
+                                       if (rel.op == JSToken.GreaterThan)
+                                               ig.Emit (OpCodes.Ble,  forward);
+                                       else
+                                               ig.Emit (OpCodes.Bge, forward);
                                }
                        }
                        /* emit stms */
index 9ba89b38322b7f63568de2ffa307a062c5dd9aa3..67a870d90342ec808e6cb7f9ba60c855d5fab05c 100644 (file)
@@ -2101,8 +2101,10 @@ namespace Microsoft.JScript {
                                ig.Emit (OpCodes.Ldloc, local);
                                ig.Emit (OpCodes.Ldloc, aux);
 
-                               if (right != null)
+                               if (right != null) {
                                        right.Emit (ec);
+                                       CodeGenerator.EmitBox (ig, right);
+                               }
 
                                emit_evaluation (op, type, ig);