anchor.diff:    /** Print everything (stdout, stderr, usageLog) whenever we add to it */
     bool debugPrint = false;
   
  -  // This future will be lazily set when calling close() and will complete once
  -  // the process did exit.
  -  Future browserTerminationFuture;
  +  // This future returns when the process exits. It is also the return value
  +  // of close()
  +  Future done;
   
     Browser();
   
  
positive.code: 
    Future close() {
      _logEvent("Close called on browser");
      if (browserTerminationFuture == null) {
        var completer = new Completer();
        browserTerminationFuture = completer.future;
  
        if (process != null) {
          _processClosedCompleter.future.then((_) {
            process = null;
            completer.complete(true);
            if (_cleanup != null) {
              _cleanup();
            }
          });
  
          if (process.kill(ProcessSignal.SIGKILL)) {
            _logEvent("Successfully sent kill signal to process.");
          } else {
            _logEvent("Sending kill signal failed.");
          }
        } else {
          _logEvent("The process is already dead.");
          completer.complete(true);
        }
      }
      return browserTerminationFuture;
    }
  
    /**
  
negative.code:   Future<bool> startBrowser(String command, List<String> arguments) {
      return Process.start(command, arguments).then((startedProcess) {
        process = startedProcess;
        // Used to notify when exiting, and as a return value on calls to
        // close().
        var doneCompleter = new Completer();
        done = doneCompleter.future;
  
        Completer stdoutDone = new Completer();
        Completer stderrDone = new Completer();
  
  