anchor.diff:      js.ObjectInitializer globalsObject = new js.ObjectInitializer(globals);
   
       return js.js.statement('var init = #;', globalsObject);
  +  }
  +
  +  /// Finish setting up embedded globals.
  +  js.Statement emitEmbeddedGlobalsPart2(
  +      Program program, DeferredLoadingState deferredLoadingState) {
  +    List<js.Statement> statements = [];
  +    if (program.typeToInterceptorMap != null) {
  +      statements.add(js.js.statement('init.# = #;',
  +          [js.string(TYPE_TO_INTERCEPTOR_MAP), program.typeToInterceptorMap]));
  +    }
  +    return js.Block(statements);
     }
   
     /// Emits data needed for native classes.
  
positive.code: // Builds the inheritance structure.
  #inheritance;
  
  // Instantiates all constants.
  #constants;
  
  // Emits the embedded globals. Due to type checks in eager initializers this is
  // needed before static non-final fields initializers.
  #embeddedGlobals;
  
  // Initializes the static non-final fields (with their constant values).
  #staticNonFinalFields;
  
negative.code:       'constants': emitConstants(fragment),
        'staticNonFinalFields': emitStaticNonFinalFields(fragment),
        'lazyStatics': emitLazilyInitializedStatics(fragment),
        'embeddedGlobalsPart1':
            emitEmbeddedGlobalsPart1(program, deferredLoadingState),
        'embeddedGlobalsPart2':
            emitEmbeddedGlobalsPart2(program, deferredLoadingState),
        'nativeSupport': program.needsNativeSupport
            ? emitNativeSupport(fragment)
            : new js.EmptyStatement(),
  