anchor.diff:        return Future.wait([
           new Future.sync(() => executable),
           awaitObject(arguments),
  -        new Future.sync(() => options)
  +        new Future.sync(() => workingDirectory),
  +        new Future.sync(() => environment)
         ]).then((results) {
           executable = results[0];
           arguments = results[1];
  -        options = results[2];
  +        workingDirectory = results[2];
  +        environment = results[3];
           _updateDescription(executable, arguments);
  -        return Process.start(executable, arguments, options).then((process) {
  +        return Process.start(executable,
  +                             arguments,
  +                             workingDirectory: workingDirectory,
  +                             environment: environment).then((process) {
             // TODO(nweiz): enable this when issue 9020 is fixed.
             // process.stdin.encoding = Encoding.UTF_8;
             return process;
  
positive.code:   }
  
    /// Schedules the process to start and sets [_process].
    void _scheduleStartProcess(executable, arguments, options) {
      var exitCodeCompleter = new Completer();
      _exitCode = new ValueFuture(exitCodeCompleter.future);
  
  
negative.code: 
      _updateDescription(executable, arguments);
  
      _scheduleStartProcess(executable, arguments, workingDirectory, environment);
  
      _scheduleExceptionCleanup();
  
  