anchor.diff:  
     _config.onStart();
   
  -  new Future(_nextBatch);
  +  _defer(() {
  +    _nextBatch();
  +  });
   }
   
   /**
  
positive.code:  *  error was caught outside of this library.
   */
  void _reportTestError(String msg, String trace) {
   if (currentTestCase != null) {
     currentTestCase.error(msg, trace);
    } else {
      _uncaughtErrorMessage = "$msg: $trace";
    }
  }
  
  void rerunTests() {
    assert(_uncaughtErrorMessage == null);
    runTests();
  }
  
  
negative.code:  * Registers that an exception was caught for the current test.
   */
  void registerException(e, [trace]) {
    _registerException(_currentTestCaseIndex, e, trace);
  }
  
  /**
   * Registers that an exception was caught for the current test.
   */
  void _registerException(testNum, e, [trace]) {
    trace = trace == null ? '' : trace.toString();
    String message = (e is TestFailure) ? e.message : 'Caught $e';
    if (testCases[testNum].result == null) {
      testCases[testNum].fail(message, trace);
    } else {
      testCases[testNum].error(message, trace);
    }
  }
  
  /**
   * Runs a batch of tests, yielding whenever an asynchronous test starts
   * running. Tests will resume executing when such asynchronous test calls
   * [done] or if it fails with an exception.
   */
  void _nextBatch() {
    while (true) {
      if (_currentTestCaseIndex >= testCases.length) {
        _completeTests();
        break;
      }
      final testCase = testCases[_currentTestCaseIndex];
      var f = _guardAsync(testCase._run, null, _currentTestCaseIndex);
      if (f != null) {
        f.whenComplete(() {
          _nextTestCase(); // Schedule the next test.
        });
        break;
      }
      _currentTestCaseIndex++;
    }
  }
  
  /** Publish results on the page and notify controller. */
  void _completeTests() {
    if (!_initialized) return;
    int passed = 0;
    int failed = 0;
    int errors = 0;
  