anchor.diff:    }
   }
   
  +class ParseIntBenchmark extends BenchmarkBase {
  +  final int bits;
  +  final int seed;
  +  final List<String> strings = [];
  +
  +  ParseIntBenchmark(String name, this.bits)
  +      : seed = (pow(2, bits) as int) - 1,
  +        super(name);
  +
  +  @override
  +  void setup() {
  +    var b = seed;
  +    var totalLength = 0;
  +    while (totalLength < requiredDigits) {
  +      if (b.bitLength < bits) {
  +        b = seed;
  +      }
  +      final string = b.toString();
  +      strings.add(string);
  +      totalLength += string.length;
  +      b = b - b ~/ 256;
  +    }
  +  }
  +
  +  @override
  +  void run() {
  +    for (final s in strings) {
  +      final b = int.parse(s);
  +      sink1 = s;
  +      sink2 = b;
  +    }
  +    check(sink2.isEven);
  +  }
  +}
  +
   class ParseJsBigIntBenchmark extends BenchmarkBase {
     final int bits;
     final Object seed;
  
positive.code:       // Instances might cache `toString()`, so use arithmetic to create a new
        // instance to try to protect against measuring a cached string.
        final b = b0 + one;
        final s = b.toString();
        sink1 = s;
        sink2 = b;
  
negative.code: // BSD-style license that can be found in the LICENSE file.
  
  // ignore_for_file: avoid_function_literals_in_foreach_calls
  
  import 'dart:math' show pow;
  
  import 'package:benchmark_harness/benchmark_harness.dart';
  import 'package:fixnum/fixnum.dart';
  