anchor.diff:    }
   
     void relayout() {
  -    assert(root != null);
  -    root.layout(new BoxConstraints(
  -        minWidth: width, maxWidth: width, minHeight: height, maxHeight: height));
  -    assert(root.width == width);
  -    assert(root.height == height);
  +    if (root != null) {
  +      root.layout(new BoxConstraints(
  +        minWidth: width,
  +        maxWidth: width,
  +        minHeight: height,
  +        maxHeight: height
  +      ));
  +      assert(root.width == width);
  +      assert(root.height == height);
  +    }
     }
   
     void rotate({ int oldAngle, int newAngle, Duration time }) {
  
positive.code:   }
  
    bool hitTest(HitTestResult result, { double x, double y }) {
      assert(root != null);
      if (x < 0.0 || x >= width || y < 0.0 || y >= height)
        return false;
      if (x >= 0.0 && x < root.width && y >= 0.0 && y < root.height)
        root.hitTest(result, x: x, y: y);
      result.add(this);
      return true;
    }
  
    void paint(RenderNodeDisplayList canvas) {
      canvas.paintChild(root, 0.0, 0.0);
    }
  
    void paintFrame() {
  
negative.code:     defaultPaint(canvas);
    }
  }
  