anchor.diff:       * Tells whether we should output given element. Corelib classes like
        * Object should not be in the resulting code.
        */
  -    final LIBS_TO_IGNORE = [
  -      compiler.jsHelperLibrary,
  -      compiler.interceptorsLibrary,
  -    ];
       bool shouldOutput(Element element) =>
         element.kind !== ElementKind.VOID &&
  -      LIBS_TO_IGNORE.indexOf(element.getLibrary()) == -1 &&
  -      !element.getLibrary().isPlatformLibrary &&
  +      isUserLibrary(element.getLibrary()) &&
         element is !SynthesizedConstructorElement &&
         element is !AbstractFieldElement;
   
  
positive.code:     final unparser = new Unparser.withRenamer((Node node) => renames[node]);
      emitCode(unparser, imports, topLevelNodes, memberNodes);
      compiler.assembledCode = unparser.result;
    }
  
    log(String message) => compiler.log('[DartBackend] $message');
  
negative.code:   void codegen(WorkItem work) { }
    void processNativeClasses(Enqueuer world,
                              Collection<LibraryElement> libraries) { }
  
    bool isUserLibrary(LibraryElement lib) {
      final INTERNAL_HELPERS = [
        compiler.jsHelperLibrary,
        compiler.interceptorsLibrary,
      ];
      return INTERNAL_HELPERS.indexOf(lib) == -1 && !lib.isPlatformLibrary;
    }
  
    void assembleProgram() {
      // Conservatively traverse all platform libraries and collect member names.
  