anchor.diff:  /// [_canvasContext].
   double _measureSubstring(
     html.CanvasRenderingContext2D _canvasContext,
  -  ParagraphGeometricStyle style,
     String text,
     int start,
  -  int end,
  -) {
  +  int end, {
  +  double? letterSpacing,
  +}) {
     assert(0 <= start);
     assert(start <= end);
     assert(end <= text.length);
  
positive.code:     _canvasContext.font = style.cssFontString;
      return _measureSubstring(
        _canvasContext,
        paragraph._geometricStyle,
        text,
        start,
        end,
      );
    }
  
  
negative.code:   /// This method uses [_text], [_style] and [_canvasContext] to perform the
    /// measurement.
    double measureSubstring(int start, int end) {
      return _measureSubstring(
        _canvasContext,
        _text!,
        start,
        end,
        letterSpacing: _style.letterSpacing,
      );
    }
  
    /// In a continuous block of text, finds the point where text can be broken to
  