anchor.diff:            // initialization failed.
             holder[name] = null;
           }
  +        // TODO(floitsch): the function should probably be unique for each
  +        // static.
           holder[getterName] = function() { return this[name]; };
         }
         return result;
  +    };
  +  }
  +
  +  function setupConstant(name, holder, descriptor) {
  +    var c;
  +    holder[name] = function() {
  +      if (descriptor !== null) {
  +        c = compile(name, descriptor);
  +        name = null;
  +        descriptor = null;
  +      }
  +      return c;
       };
     }
   
  
positive.code:     return js.js("$deferredInitializersGlobal[$hash] = #", hunk);
    }
  
    js.Block emitConstants(List<Constant> constants) {
      Iterable<js.Statement> statements = constants.map((Constant constant) {
        js.Expression code = constantEmitter.generate(constant.value);
        return js.js.statement("#.# = #;",
                               [constant.holder.name, constant.name, code]);
      });
      return new js.Block(statements.toList());
    }
  
    js.Block emitStaticNonFinalFields(List<StaticField> fields) {
  
negative.code:     if (isConstantInlinedOrAlreadyEmitted(value)) {
        return constantEmitter.generate(value);
      }
      return js.js('#.#()', [namer.globalObjectForConstant(value),
                             namer.constantName(value)]);
    }
  
    int emitProgram(Program program) {
  