anchor.diff:          storeFunctionTypesInMetadata: true);
   
       assembleProgram(program);
  +
  +    // Construct the ASTs for all deferred output units.
  +    Map<OutputUnit, jsAst.Program> deferredParts =
  +        buildOutputAstForDeferredCode(program);
   
       // Emit deferred units first, so we have their hashes.
       // Map from OutputUnit to a hash of its content. The hash uniquely
  
positive.code:     return new jsAst.Block(parts);
    }
  
    /// Emits code for all output units except the main.
    /// Returns a mapping from outputUnit to a hash of the corresponding hunk that
    /// can be used for calling the initializer.
    Map<OutputUnit, String> emitDeferredCode(
        Program program,
        Map<OutputUnit, jsAst.Expression> deferredAsts) {
  
      Map<OutputUnit, String> hunkHashes = new Map<OutputUnit, String>();
  
      for (Fragment fragment in program.deferredFragments) {
        OutputUnit outputUnit = fragment.outputUnit;
  
        jsAst.Expression libraryDescriptor = deferredAsts[outputUnit];
  
        List<CodeOutputListener> outputListeners = <CodeOutputListener>[];
        Hasher hasher = new Hasher();
        outputListeners.add(hasher);
  
        LineColumnCollector lineColumnCollector;
        if (generateSourceMap) {
          lineColumnCollector = new LineColumnCollector();
          outputListeners.add(lineColumnCollector);
        }
  
        String partPrefix =
            backend.deferredPartFileName(outputUnit.name, addExtension: false);
        CodeOutput output = new StreamCodeOutput(
            compiler.outputProvider(partPrefix, 'part.js'),
            outputListeners);
  
        outputBuffers[outputUnit] = output;
  
        List<jsAst.Statement> body = <jsAst.Statement>[];
  
        // No renaming in the top-level function to save the locals for the
  
negative.code: 
      Iterable<LibraryElement> libraries =
          task.outputLibraryLists[mainOutputUnit];
      if (libraries == null) libraries = <LibraryElement>[];
  
      List<jsAst.Expression> parts = <jsAst.Expression>[];
      for (LibraryElement library in Elements.sortedByPosition(libraries)) {
  