anchor.diff:  
         List<Library> libraries =
             new List<Library>.from(userCode.loader.libraries);
  -      uriToSource.addAll(userCode.uriToSource);
  -      if (includeUserLoadedLibraries) {
  +      data.uriToSource.addAll(userCode.uriToSource);
  +      if (data.includeUserLoadedLibraries) {
           for (LibraryBuilder library in reusedLibraries) {
             if (library.fileUri.scheme == "dart") continue;
             assert(library is DillLibraryBuilder);
  
positive.code: 
        // This is the incremental program.
        Procedure mainMethod = programWithDill == null
            ? userLoadedUriMain
            : programWithDill.mainMethod;
        return new Program(libraries: libraries, uriToSource: uriToSource)
          ..mainMethod = mainMethod;
      });
    }
  
    List<LibraryBuilder> computeReusedLibraries(Iterable<Uri> invalidatedUris) {
  
negative.code:         // For now ensure original order of libraries to produce bit-perfect
          // output.
          libraries.sort((a, b) {
            int aOrder = data.importUriToOrder[a.importUri];
            int bOrder = data.importUriToOrder[b.importUri];
            if (aOrder != null && bOrder != null) return aOrder - bOrder;
            if (aOrder != null) return -1;
            if (bOrder != null) return 1;
  