anchor.diff:      assert(value.isValid);
       _width = value.width;
       _height = value.height;
  +    invalidateDraw();
  +  }
  +
  +  num get alpha => _alpha;
  +
  +  void set alpha(num value) {
  +    requireArgument(isValidNumber(value), 'value');
  +    requireArgument(value >= 0 && value <= 1, 'value');
  +    _alpha = value;
       invalidateDraw();
     }
   
  
positive.code:   final EventHandle<EventArgs> _invalidatedEventHandle = new EventHandle<EventArgs>();
    CanvasElement _cacheCanvas;
  
    num _width, _height, _alpha;
    Size _lastDrawSize;
    bool clip = false;
    ElementParent _parent;
  
negative.code:   }
  
    void _drawInternal(CanvasRenderingContext2D ctx){
      if (_alpha != 1) {
        assert(_alpha != null);
        assert(_alpha >= 0);
        assert(_alpha <= 1);
        assert(ctx.globalAlpha == 1);
        ctx.globalAlpha = _alpha;
      }
  
  