anchor.diff:  // BSD-style license that can be found in the LICENSE file.
   
   
  +/**
  + * A rendering context for a canvas element.
  + *
  + * This context is extended by [CanvasRenderingContext2D] and
  + * [WebGLRenderingContext].
  + */
   /// @domName CanvasRenderingContext; @docsEditable true
   class CanvasRenderingContext native "*CanvasRenderingContext" {
   
  +  /// Reference to the canvas element to which this context belongs.
     /// @domName CanvasRenderingContext.canvas; @docsEditable true
     final CanvasElement canvas;
   }
  
positive.code:   @JSName('dispatchEvent')
    bool $dom_dispatchEvent(Event evt) native;
  
    /// @domName XMLHttpRequest.getAllResponseHeaders; @docsEditable true
    String getAllResponseHeaders() native;
  
    /// @domName XMLHttpRequest.getResponseHeader; @docsEditable true
    String getResponseHeader(String header) native;
  
    /// @domName XMLHttpRequest.open; @docsEditable true
    void open(String method, String url, [bool async, String user, String password]) native;
  
    /// @domName XMLHttpRequest.overrideMimeType; @docsEditable true
    void overrideMimeType(String override) native;
  
  
negative.code:     return e;
    }
  
    /// The height of this canvas element in CSS pixels.
    /// @domName HTMLCanvasElement.height; @docsEditable true
    int height;
  
    /// The width of this canvas element in CSS pixels.
    /// @domName HTMLCanvasElement.width; @docsEditable true
    int width;
  
    /**
     * Returns a data URI containing a representation of the image in the 
     * format specified by type (defaults to 'image/png'). 
     * 
     * Data Uri format is as follow `data:[<MIME-type>][;charset=<encoding>][;base64],<data>`
     * 
     * Optional parameter [quality] in the range of 0.0 and 1.0 can be used when requesting [type]
     * 'image/jpeg' or 'image/webp'. If [quality] is not passed the default
     * value is used. Note: the default value varies by browser.
     * 
     * If the height or width of this canvas element is 0, then 'data:' is returned,
     * representing no data.
     * 
     * If the type requested is not 'image/png', and the returned value is 
     * 'data:image/png', then the requested type is not supported.
     * 
     * Example usage:
     * 
     *     CanvasElement canvas = new CanvasElement();
     *     var ctx = canvas.context2d
     *     ..fillStyle = "rgb(200,0,0)"
     *     ..fillRect(10, 10, 55, 50);
     *     var dataUrl = canvas.toDataURL("image/jpeg", 0.95);
     *     // The Data Uri would look similar to
     *     // 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
     *     // AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
     *     // 9TXL0Y4OHwAAAABJRU5ErkJggg=='
     *     //Create a new image element from the data URI.
     *     var img = new ImageElement();
     *     img.src = dataUrl;
     *     document.body.children.add(img);
     *     
     * See also:
     * 
     * * [Data URI Scheme](http://en.wikipedia.org/wiki/Data_URI_scheme) from Wikipedia.
     * 
     * * [HTMLCanvasElement](https://developer.mozilla.org/en-US/docs/DOM/HTMLCanvasElement) from MDN.
     * 
     * * [toDataUrl](http://dev.w3.org/html5/spec/the-canvas-element.html#dom-canvas-todataurl) from W3C.
     */
    /// @domName HTMLCanvasElement.toDataURL; @docsEditable true
    @JSName('toDataURL')
    String toDataUrl(String type, [num quality]) native;
  