docs: public byte[] buildClass( ClassDefinition classDef, ClassLoader classLoader ) throws IOException,
              SecurityException,
              IllegalArgumentException,
              ClassNotFoundException,
              NoSuchMethodException,
              IllegalAccessException,
              InvocationTargetException,
              InstantiationException,
              NoSuchFieldException {
  
          ClassWriter cw = this.buildClassHeader( classLoader, classDef );
  
          buildMetaData( cw, classDef );
          buildFields( cw, classDef );
  
          if ( classDef.isTraitable() ) {
              buildDynamicPropertyMap( cw, classDef );
              buildTraitMap( cw, classDef );
              buildFieldTMS( cw, classDef );
          }
  
          buildConstructors( cw, classDef );
          buildGettersAndSetters( cw, classDef );
          buildEqualityMethods( cw, classDef );
          buildToString( cw, classDef );
  
          if ( classDef.isTraitable() ) {
              // must guarantee serialization order when enhancing fields are present
              buildSerializationMethods(cw, classDef);
          }
  
          if ( classDef.isReactive() ) {
              implementReactivity( cw, classDef );
          }
  
          cw.visitEnd();
  
          return cw.toByteArray();
      }