 class SetVirtualProps implements ASTNode
 {
     public var object:Object;
+
     public var vprop0:uint;
+    public var child0:ASTNode;
+
     public var vprop1:uint;
-    public var child0:ASTNode;
     public var child1:ASTNode;
+
     public function SetVirtualProps(object:Object,
             vprop0:uint, child0:ASTNode,
             vprop1:uint = 0, child1:ASTNode = null)
     {
         this.object = object;
+
         this.vprop0 = vprop0;
+        this.child0 = child0;
+
         this.vprop1 = vprop1;
-        this.child0 = child0;
         this.child1 = child1;
     }
     public function eval():*


    public function canConstrain(target:Object):Boolean
    {
        var count:Number = constrainCount[target];

        // doing it backwards like this means we return true for
        // NaN as well, which constrainCount will be if we have
        // no record at all for target
        return !(count >= 2);
    }

    public function measure():void

    private static var _propToAxis:Object;
    private static var _propToVirtualProp:Object;

    private var propertyConstraints:Dictionary;

    private var xAxis:SingleAxisLayout;
    private var yAxis:SingleAxisLayout;
