anchor.diff:              // file will be downloaded from the network.
               List<RequestBundle> missingFiles = new List<RequestBundle>();
               
  -            Future.wait(_dependencies.map((FileNode node) {
  +            Future.wait(neededFiles.map((FileNode node) {
                 Path hashFilePath = 
                     hashDirPath.append("${node.fileHashString}.dart");
                 
  
positive.code:    * the actual [FileNode] instances.
     */
    factory DartProgram(FileNode program) {
      List<FileNode> dependencies = program.getFileNodes().map((FileNode node) {
        return node.copy;
      }).toList(growable: false);
      
      // Also remove the needed segments from the file this object represent.
      int segmentsToRemove = _shortenPaths(dependencies);
      Path newPath = _removeSegmentsOfPath(program._path, segmentsToRemove);
      
      return new DartProgram._internal(program._name, newPath, program._fileHash,
                                       dependencies);
    }
    
    /// Create [DartProgram] instance from [String] containing a JSON object 
  
negative.code:     returnMap[_PATH] = this._path.toString();
      returnMap[_HASH] = this._fileHash;
      
      if (this._dependencies != null && this._dependencies.length > 0) {
        returnMap[_DEPENDENCIES] = this._dependencies.map((FileNode node) {
          var map = new Map();
          
          map[_NAME] = node._name;
          map[_PATH] = node._path.toString();
          map[_HASH] = node._fileHash;
          
          return map;
        }).toList(growable: false);
      }
      
      return returnMap;
    }
  