anchor.diff:   *
    * The value returned by [tryBody] (if any) is returned by [guardAsync].
    */
  -guardAsync(Function tryBody, [Function finallyBody, int testNum = -1]) {
  -  if (testNum < 0) testNum = _currentTest;
  +guardAsync(Function tryBody) {
  +  return _guardAsync(tryBody, null, _currentTest);
  +}
  +
  +_guardAsync(Function tryBody, Function finallyBody, int testNum) {
  +  assert(testNum >= 0);
     try {
       return tryBody();
     } catch (e, trace) {
  
positive.code:   }
  
    invoke1(arg1) {
      return guardAsync(
          () {
            if (shouldCallBack()) {
              return callback(arg1);
  
negative.code:       break;
      }
      final testCase = _tests[_currentTest];
      var f = _guardAsync(testCase.run, null, _currentTest);
      if (f != null) {
        f.whenComplete(() {
          _nextTestCase(); // Schedule the next test.
  