anchor.diff:      if (n == 0 && r_digits == x_digits) {
         return x_used;
       }
  -    var r_used = x_used + n;
  +    final r_used = x_used + n;
       assert(r_digits.length >= r_used + (r_used & 1));
       var i = x_used;
       while (--i >= 0) {
  
positive.code:     while (--i >= 0) {
        r_digits[i] = 0;
      }
      if (r_digits[r_used - 1] == 0) {
        r_used--;  // Clamp result.
      } else if (r_used.isOdd) {
  
negative.code:     return r_used;
    }
  
    // r_digits[0..r_used-1] = x_digits[0..x_used-1] << n.
    static void _lsh(Uint32List x_digits, int x_used, int n,
                     Uint32List r_digits) {
      final ds = n ~/ _DIGIT_BITS;
      final bs = n % _DIGIT_BITS;
      final cbs = _DIGIT_BITS - bs;
      final bm = (1 << cbs) - 1;
      var c = 0;
      var i = x_used;
      while (--i >= 0) {
  