anchor.diff:        String signature;
         {
           var signatureBuilder = new ApiSignature();
  -        // TODO(scheglov) add salt
  -        //    signature.addUint32List(_fsState._salt);
  +        signatureBuilder.addBytes(_salt);
           Set<FileState> transitiveFiles = cycle.libraries
               .map((library) => library.transitiveFiles)
               .expand((files) => files)
  
positive.code:       this._options, this._uriTranslator, this._entryPoint)
        : _logger = _options.logger,
          _fsState = new FileSystemState(_options.fileSystem, _uriTranslator),
          _byteStore = _options.byteStore;
  
    @override
    Future<DeltaProgram> computeDelta(
  
negative.code:     } while (wasChanged);
    }
  
    /// Compute salt and put into [_salt].
    void _computeSalt() {
      var saltBuilder = new ApiSignature();
      saltBuilder.addInt(DATA_VERSION);
      saltBuilder.addBool(_options.strongMode);
      saltBuilder.addString(_entryPoint.toString());
      _salt = saltBuilder.toByteList();
    }
  
    /// Refresh all the invalidated files and update dependencies.
    Future<Null> _refreshInvalidatedFiles() async {
      await _logger.runAsync('Refresh invalidated files', () async {
  