anchor.diff:    ///
     ///  * [save], which saves the current state, but does not create a new layer
     ///    for subsequent commands.
  +  ///  * [BlendMode], which discusses the use of [Paint.blendMode] with
  +  ///    [saveLayer].
     void saveLayer(Rect bounds, Paint paint) {
       assert(_rectIsValid(bounds));
       assert(paint != null);
  
positive.code:   /// is less than 1, it is an ellipse.
    void relativeConicTo(double x1, double y1, double x2, double y2, double w) native "Path_relativeConicTo";
  
    /// If the [forceMoveTo] argument is false, adds a straight line
    /// segment and an arc segment.
    ///
    /// If the [forceMoveTo] argument is true, starts a new subpath
    /// consisting of an arc segment.
    ///
    /// In either case, the arc segment consists of the arc that follows
  
negative.code:   /// layer is being composited.
    ///
    /// Defaults to [BlendMode.srcOver].
    ///
    /// See also:
    ///
    ///  * [Canvas.saveLayer], which uses its [Paint]'s [blendMode] to composite
    ///    the layer when [restore] is called.
    ///  * [BlendMode], which discusses the user of [saveLayer] with [blendMode].
    BlendMode get blendMode {
      final int encoded = _data.getInt32(_kBlendModeOffset, _kFakeHostEndian);
      return BlendMode.values[encoded ^ _kBlendModeDefault];
  