anchor.diff:    double _x, _y, _width, _height, _pivotX, _pivotY, _skewX, _skewY, _scaleX, _scaleY, _rotation, _alpha;
     bool _dirty, visible, interactive;
     Matrix3 _localTransform, _worldTransform;
  +  Rectangle _bounds;
     
     DisplayObject() {
       x = y = width = height = rotation = pivotX = pivotY = 0.0;
  
positive.code:   }
    
    get hitArea {
      final transform = worldTransform;    
      final wx = transform[2];
      final wy = transform[5];
      return new Rectangle(wx - (_width * _pivotX), wy - (_height * _pivotY), _width, _height);
    }
    
    get worldTransform {
      if(_dirty) {
        _dirty = false;
        
        var sr = math.sin(_rotation);
        var cr = math.cos(_rotation);
        
        final Matrix3 parentTransform = parent != null ? parent.worldTransform : new Matrix3.identity();
        
  
negative.code:     visible = interactive = true;
      _localTransform = new Matrix3.identity();
      _worldTransform = new Matrix3.identity();
      _bounds = new Rectangle.zero();
    }
    
    removeFromParent() {
  