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:   StringBuffer _stdout = new StringBuffer();
    StringBuffer _stderr = new StringBuffer();
    StringBuffer _usageLog = new StringBuffer();
    // This function is called when the process is closed.
    Completer _processClosedCompleter = new Completer();
    // This is called after the process is closed, after _processClosedCompleter
    // has been called, but before onExit. Subclasses can use this to cleanup
    // any browser specific resources (temp directories, profiles, etc)
    // The function is expected to do it's work synchronously.
    Function _cleanup;
  
    /** The version of the browser - normally set when starting a browser */
  
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();
  
  