anchor.diff:          || member.isGenerativeConstructorBody()
           || member.isAccessor()) {
         if (member.isAbstract(compiler)) return;
  -      jsAst.Expression code = backend.generatedCode[member];
  +      jsAst.Expression code = consumeCodeFor(member);
         if (code == null) return;
         String name = namer.getNameOfInstanceMember(member);
         if (backend.isInterceptedMethod(member)) {
  
positive.code:       needsLazyInitializer = true;
        for (VariableElement element in Elements.sortedByPosition(lazyFields)) {
          assert(backend.generatedBailoutCode[element] == null);
          jsAst.Expression code = backend.generatedCode[element];
          // The code is null if we ended up not needing the lazily
          // initialized field after all because of constant folding
          // before code generation.
  
negative.code: 
    jsAst.Expression constantInitializerExpression(Constant value) {
      return constantEmitter.initializationExpression(value);
    }
  
    jsAst.Expression consumeCodeFor(Element element) {
      jsAst.Expression result = backend.generatedCode[element];
      // Avoid holding on to the generated code for the given element so it
      // can be garbage collected once we're done emitting the code for it.
      // To keep the key set unchanged, we do this by nulling out the
      // value in the map rather than removing the key.
      backend.generatedCode[element] = null;
      return result;
    }
  
    String get name => 'CodeEmitter';
  