anchor.diff:    StreamSubscription<String> stdoutSub;
   
     int prefixLength = 0;
  +  bool processKilled = false;
     stdoutSub = process.stdout
         .transform(const Utf8Decoder())
         .transform(const LineSplitter())
  
positive.code:     if (line.contains(jsonEnd)) {
        jsonStarted = false;
        stdoutSub.cancel();
        process.kill(ProcessSignal.SIGINT);  // flutter run doesn't quit automatically
        completer.complete(JSON.decode(jsonBuf.toString()));
        return;
  
negative.code:       jsonBuf.writeln(line.substring(prefixLength));
    });
  
    process.exitCode.then<int>((int code) {
      if (!processKilled && code != 0) {
        completer.completeError('flutter run failed: exit code=$code');
      }
    });
  
    return completer.future;
  }
  