anchor.diff:      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;
     }
  
positive.code:   bool outputSpecified = false;
    Uri out;
    Uri sourceMapOut;
    Uri writeDataUri;
    List<String> bazelPaths;
    Uri packageConfig = null;
  
negative.code:     new OptionHandler(Flags.progress, passThrough),
      new OptionHandler(Flags.version, (_) => wantVersion = true),
      new OptionHandler('--library-root=.+', setLibraryRoot),
      new OptionHandler('${Flags.readData}|${Flags.readData}=.+', setReadData),
      new OptionHandler('${Flags.writeData}|${Flags.writeData}=.+', setWriteData),
      new OptionHandler('--out=.+|-o.*', setOutput, multipleArguments: true),
      new OptionHandler('-O.*', setOptimizationLevel),
      new OptionHandler(Flags.allowMockCompilation, ignoreOption),
  