finished ast implementation
[swftools.git] / lib / as3 / ok / assignments.as
index fa02305..d0687f1 100644 (file)
@@ -5,7 +5,7 @@ package {
     public class Main extends flash.display.MovieClip {
 
         var count:int = 1;
-        var num:int = 15;
+        var num:int = 18;
 
         function assert(b:Boolean) {
             if(b) {
@@ -22,14 +22,14 @@ package {
 
             /* test that assignment expressions do indeed return the
                right value */
-            x = (y=1);   assert(x==1 && y==1);
-            x = (y++);   assert(x==1 && y==2);
-            x = (y--);   assert(x==2 && y==1);
-            x = (++y);   assert(x==2 && y==2);
-            x = (--y);   assert(x==1 && y==1);
-            x = (y += 1);assert(x==2 && y==2);
-            x = (y -= 1);assert(x==1 && y==1);
-            x = y = 5;   assert(x==5 && y==5);
+            x = (y=1);   assert(x==1 && y==1); //x=1;y=1;
+            x = (y++);   assert(x==1 && y==2); //x=1;y=2;
+            x = (y--);   assert(x==2 && y==1); //x=2;y=1;
+            x = (++y);   assert(x==2 && y==2); //x=2;y=2;
+            x = (--y);   assert(x==1 && y==1); //x=1;y=1;
+            x = (y += 1);assert(x==2 && y==2); //x=2;y=2;
+            x = (y -= 1);assert(x==1 && y==1); //x=1;y=1;
+            x = y = 5;   assert(x==5 && y==5); //x=5;y=5;
 
             y = 5;
             x = (y*=5);  assert(x==25 && y==25);
@@ -39,6 +39,18 @@ package {
             x = (y>>>=1);  assert(x==2 && y==2);
             y = 2;
             x = (y/=2);  assert(x==1 && y==1);
+            x = 0x55;
+            x |= 0x0f;   assert(x==0x5f);
+
+            x=3;y=3;
+            x ^= 7;
+            y = y^7;
+            assert(x==y);
+
+            x = 0x55;
+            y = 0x0f;
+            x &= y;
+            assert(x==0x05);
 
             /* nested assignment expressions need different temporary
                registers- make sure they don't collide */
@@ -46,8 +58,10 @@ package {
             var b:int = 2;
             var c:int = 3;
             var d:int = 4;
-            a += (b += (c += (d += 1)))
+            a += b += c += d += 1
             assert(a==11 && b==10 && c==8 && d==5);
+
+            trace("[exit]");
         }
     }
 }