anchor.diff:    Expect.throws(() => int.parse("9", radix: 8, onError: () => 42));
     Expect.throws(() => int.parse("9", radix: 8, onError: (v1, v2) => 42));
   }
  +
  +bool isFail(e) => e == "FAIL";
  
positive.code:   void testFails(String source, int radix) {
      Expect.throws(() { throw int.parse(source, radix: radix,
                                         onError: (s) { throw "FAIL"; }); },
                    (e) => e == "FAIL",
                    "$source/$radix");
      Expect.equals(-999, int.parse(source, radix: radix, onError: (s) => -999));
    }
    for (int i = 2; i < 36; i++) {
      testFails(i.toRadixString(36).toLowerCase(), i);
      testFails(i.toRadixString(36).toUpperCase(), i);
    }
    testFails("", 2);
    testFails("+ 1", 2);  // No space between sign and digits.
  
negative.code:     Expect.equals(-result, int.parse("-$zeros$radixString", radix: radix), m);
    }
  
    for (int r = 2; r <= 36; r++) {
      for (int i = 0; i <= r * r; i++) {
        String radixString = i.toRadixString(r);
        testParse(i, radixString, r);
      }
  