if (javaLangObjectTIB == null) { VM_Class cls = VM_ClassLoader.findOrCreateType(VM_Atom.findOrCreateAsciiAtom("Ljava/lang/Object;"), VM_SystemClassLoader.getVMClassLoader()).asClass(); javaLangObjectTIB = cls.getTypeInformationBlock(); }  typeInformationBlock = VM_RuntimeStructures.newTIB(javaLangObjectTIB.length); VM_Statics.setSlotContents(tibSlot, typeInformationBlock); typeInformationBlock[0] = this; if (VM.BuildForFastDynamicTypeCheck) { typeInformationBlock[TIB_SUPERCLASS_IDS_INDEX] = VM_DynamicTypeCheck.buildSuperclassIds(this); typeInformationBlock[TIB_DOES_IMPLEMENT_INDEX] = VM_DynamicTypeCheck.buildDoesImplement(this); if (!elementType.isPrimitiveType() && elementType.isResolved()) { typeInformationBlock[TIB_ARRAY_ELEMENT_TIB_INDEX] = elementType.getTypeInformationBlock(); } }  state = CLASS_RESOLVED; }
  public final synchronized void resolve() {    if (isResolved())      return;    if (VM.VerifyAssertions) VM.assert(state == CLASS_LOADED);    if (elementType.isLoaded() && !elementType.isResolved()) {      try {	elementType.resolve();       }	catch (VM_ResolutionException e) {	System.err.println("VM_Array.resolve: cannot resolve element type::: " + elementType); // TODO: we should throw e      }    }