     {
         resolveVirtualSetters();
         filterProgramInPlace(updateProgram, virtualGetResolver);
+        filterProgramInPlace(updateProgram, new Max0SpanSetters());
         if (rounding)
         {
             filterProgramInPlace(updateProgram, new RoundSetters());

    public function filterMultiplyNode(n:Multiply):ASTNode { return n; }
    public function filterDivideNode(n:Divide):ASTNode { return n; }
    public function filterRoundNode(n:Round):ASTNode { return n; }
    public function filterGetRuntimePropNode(n:GetRuntimeProp):ASTNode { return n; }
    public function filterSetRuntimePropNode(n:SetRuntimeProp):ASTNode { return n; }
    public function filterGetVirtualPropNode(n:GetVirtualProp):ASTNode { return n; }

}


class Max0SpanSetters extends ASTFilter
{
    override public function filterSetRuntimePropNode(n:SetRuntimeProp):ASTNode
    {
        if (n.prop == "width" || n.prop == "height")
        {
            return new SetRuntimeProp(n.object, n.prop, new Max0(n.child));
        }
        else
        {
            return n;
        }
    }
}


class RoundSetters extends ASTFilter
{
    public override function filterSetRuntimePropNode(n:SetRuntimeProp):ASTNode
