anchor.diff:    Future<bool> startBrowser(String command, List<String> arguments) {
       return Process.start(command, arguments).then((startedProcess) {
         process = startedProcess;
  +      Completer stdoutDone = new Completer();
  +      Completer stderrDone = new Completer();
  +
         process.stdout.transform(new StringDecoder()).listen((data) {
           _addStdout(data);
         }, onError: (error) {
           // This should _never_ happen, but we really want this in the log
           // if it actually does due to dart:io or vm bug.
           _logEvent("An error occured in the process stdout handling: $error");
  +      }, onDone: () {
  +        stdoutDone.complete(true);
         });
   
         process.stderr.transform(new StringDecoder()).listen((data) {
  
positive.code:   int maxNumBrowsers;
    // Used to send back logs from the browser (start, stop etc)
    Function logger;
  
    bool underTermination = false;
  
  
negative.code:     if (testQueue.isEmpty) return null;
      var status = browserStatus[browserId];
      if (status == null) return null;
      DebugLogger.info("Handling getNext for browser ${browserId}"
                       " timeout status: ${status.timeout}");
  
      // We are currently terminating this browser, don't start a new test.
      if (status.timeout) return null;
      BrowserTest test = testQueue.removeLast();
  