anchor.diff:    bool outputSpecified = false;
     Uri out;
     Uri sourceMapOut;
  +  Uri readDataUri;
     Uri writeDataUri;
     List<String> bazelPaths;
     Uri packageConfig = null;
  
positive.code:       break;
      case CompilationStrategy.toData:
        out ??= currentDirectory.resolve('out.dill');
        writeDataUri = currentDirectory.resolve('$out.data');
        options.add('${Flags.writeData}=${writeDataUri}');
        break;
      case CompilationStrategy.fromData:
        out ??= currentDirectory.resolve('out.js');
        options.add(
            '${Flags.readData}=${currentDirectory.resolve('$scriptName.data')}');
        break;
    }
    options.add('--out=$out');
  
negative.code:     if (compilationStrategy == CompilationStrategy.toData) {
        fail("Cannot read and write serialized simultaneously.");
      }
      if (argument != Flags.readData) {
        readDataUri = currentDirectory
            .resolve(nativeToUriPath(extractPath(argument, isDirectory: false)));
      }
      compilationStrategy = CompilationStrategy.fromData;
    }
  
    void setWriteData(String argument) {
      if (compilationStrategy == CompilationStrategy.fromData) {
        fail("Cannot read and write serialized simultaneously.");
      }
      if (argument != Flags.writeData) {
        writeDataUri = currentDirectory
            .resolve(nativeToUriPath(extractPath(argument, isDirectory: false)));
      }
      compilationStrategy = CompilationStrategy.toData;
    }
  