public class org.jruby.javasupport.JavaClass extends org.jruby.javasupport.JavaObject
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.javasupport.JavaClass
  super_class: org.jruby.javasupport.JavaObject
{
  public static final java.lang.Class[] EMPTY_CLASS_ARRAY;
    descriptor: [Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private org.jruby.RubyArray constructors;
    descriptor: Lorg/jruby/RubyArray;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 78
            iconst_0
            anewarray java.lang.Class
            putstatic org.jruby.javasupport.JavaClass.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.jruby.Ruby, java.lang.Class<?>);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.lang.Class klass
         0: .line 81
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaClassClass:()Lorg/jruby/RubyClass;
            aload 2 /* klass */
            invokespecial org.jruby.javasupport.JavaClass.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class;)V
         1: .line 82
            return
        end local 2 // java.lang.Class klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/javasupport/JavaClass;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2    klass  Ljava/lang/Class<*>;
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class<*>;)V
    MethodParameters:
         Name  Flags
      runtime  final
      klass    final

  void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.lang.Class<?>);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass javaClassProxy
        start local 3 // java.lang.Class klass
         0: .line 85
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* javaClassProxy */
            aload 3 /* klass */
            invokespecial org.jruby.javasupport.JavaObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Object;)V
         1: .line 86
            return
        end local 3 // java.lang.Class klass
        end local 2 // org.jruby.RubyClass javaClassProxy
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/jruby/javasupport/JavaClass;
            0    2     1         runtime  Lorg/jruby/Ruby;
            0    2     2  javaClassProxy  Lorg/jruby/RubyClass;
            0    2     3           klass  Ljava/lang/Class<*>;
    Signature: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      runtime         final
      javaClassProxy  final
      klass           final

  public final boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // java.lang.Object other
         0: .line 90
            aload 0 /* this */
            aload 1 /* other */
            if_acmpne 1
            iconst_1
            ireturn
         1: .line 91
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            instanceof org.jruby.javasupport.JavaClass
            ifeq 2
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getValue:()Ljava/lang/Object;
            aload 1 /* other */
            checkcast org.jruby.javasupport.JavaClass
            invokevirtual org.jruby.javasupport.JavaClass.getValue:()Ljava/lang/Object;
            if_acmpne 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/javasupport/JavaClass;
            0    3     1  other  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      other  

  public final int hashCode();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 96
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.hashCode:()I
            ireturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;

  public final org.jruby.RubyModule getProxyModule();
    descriptor: ()Lorg/jruby/RubyModule;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 100
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;

  public final org.jruby.RubyClass getProxyClass();
    descriptor: ()Lorg/jruby/RubyClass;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 104
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            checkcast org.jruby.RubyClass
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;

  private org.jruby.runtime.builtin.IRubyObject addProxyExtender(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject extender
         0: .line 108
            aload 2 /* extender */
            ldc "extend_proxy"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifne 2
         1: .line 109
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "proxy extender must have an extend_proxy method"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 111
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            astore 3 /* proxy */
        start local 3 // org.jruby.RubyModule proxy
         3: .line 112
            aload 2 /* extender */
            aload 1 /* context */
            ldc "extend_proxy"
            aload 3 /* proxy */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyModule proxy
        end local 2 // org.jruby.runtime.builtin.IRubyObject extender
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/jruby/javasupport/JavaClass;
            0    4     1   context  Lorg/jruby/runtime/ThreadContext;
            0    4     2  extender  Lorg/jruby/runtime/builtin/IRubyObject;
            3    4     3     proxy  Lorg/jruby/RubyModule;
    MethodParameters:
          Name  Flags
      context   final
      extender  final

  public org.jruby.runtime.builtin.IRubyObject extend_proxy(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject extender
         0: .line 117
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* extender */
            invokevirtual org.jruby.javasupport.JavaClass.addProxyExtender:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         1: .line 118
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject extender
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jruby/javasupport/JavaClass;
            0    2     1   context  Lorg/jruby/runtime/ThreadContext;
            0    2     2  extender  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
          Name  Flags
      context   final
      extender  

  public static org.jruby.javasupport.JavaClass get(org.jruby.Ruby, java.lang.Class<?>);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class klass
         0: .line 122
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 1 /* klass */
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaClassFromCache:(Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 1 // java.lang.Class klass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1    klass  Ljava/lang/Class<*>;
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class<*>;)Lorg/jruby/javasupport/JavaClass;
    MethodParameters:
         Name  Flags
      runtime  final
      klass    final

  public static org.jruby.RubyArray getRubyArray(org.jruby.Ruby, java.lang.Class<?>[]);
    descriptor: (Lorg/jruby/Ruby;[Ljava/lang/Class;)Lorg/jruby/RubyArray;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class[] classes
         0: .line 127
            aload 0 /* runtime */
            aload 1 /* classes */
            invokestatic org.jruby.javasupport.JavaClass.toRubyArray:(Lorg/jruby/Ruby;[Ljava/lang/Class;)Lorg/jruby/RubyArray;
            areturn
        end local 1 // java.lang.Class[] classes
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1  classes  [Ljava/lang/Class;
    Signature: (Lorg/jruby/Ruby;[Ljava/lang/Class<*>;)Lorg/jruby/RubyArray;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      runtime  
      classes  

  public static org.jruby.RubyArray toRubyArray(org.jruby.Ruby, java.lang.Class<?>[]);
    descriptor: (Lorg/jruby/Ruby;[Ljava/lang/Class;)Lorg/jruby/RubyArray;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class[] classes
         0: .line 131
            aload 1 /* classes */
            arraylength
            anewarray org.jruby.runtime.builtin.IRubyObject
            astore 2 /* javaClasses */
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] javaClasses
         1: .line 132
            aload 1 /* classes */
            arraylength
            istore 3 /* i */
        start local 3 // int i
         2: goto 4
         3: .line 133
      StackMap locals: org.jruby.runtime.builtin.IRubyObject[] int
      StackMap stack:
            aload 2 /* javaClasses */
            iload 3 /* i */
            aload 0 /* runtime */
            aload 1 /* classes */
            iload 3 /* i */
            aaload
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            aastore
         4: .line 132
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
            iload 3 /* i */
            ifge 3
        end local 3 // int i
         5: .line 135
            aload 0 /* runtime */
            aload 2 /* javaClasses */
            invokestatic org.jruby.RubyArray.newArrayMayCopy:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] javaClasses
        end local 1 // java.lang.Class[] classes
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0      runtime  Lorg/jruby/Ruby;
            0    6     1      classes  [Ljava/lang/Class;
            1    6     2  javaClasses  [Lorg/jruby/runtime/builtin/IRubyObject;
            2    5     3            i  I
    Signature: (Lorg/jruby/Ruby;[Ljava/lang/Class<*>;)Lorg/jruby/RubyArray;
    MethodParameters:
         Name  Flags
      runtime  final
      classes  final

  public static org.jruby.RubyClass createJavaClassClass(org.jruby.Ruby, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule Java
         0: .line 139
            aload 0 /* runtime */
            aload 1 /* Java */
            aload 1 /* Java */
            ldc "JavaObject"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            invokestatic org.jruby.javasupport.JavaClass.createJavaClassClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;Lorg/jruby/RubyClass;)Lorg/jruby/RubyClass;
            areturn
        end local 1 // org.jruby.RubyModule Java
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1     Java  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  final
      Java     final

  static org.jruby.RubyClass createJavaClassClass(org.jruby.Ruby, org.jruby.RubyModule, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;Lorg/jruby/RubyClass;)Lorg/jruby/RubyClass;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule Java
        start local 2 // org.jruby.RubyClass JavaObject
         0: .line 147
            aload 1 /* Java */
            ldc "JavaClass"
            aload 2 /* JavaObject */
            getstatic org.jruby.runtime.ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 3 /* JavaClass */
        start local 3 // org.jruby.RubyClass JavaClass
         1: .line 149
            aload 3 /* JavaClass */
            aload 0 /* runtime */
            ldc "Comparable"
            invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 151
            aload 3 /* JavaClass */
            ldc Lorg/jruby/javasupport/JavaClass;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         3: .line 153
            aload 3 /* JavaClass */
            invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
            ldc "new"
            invokevirtual org.jruby.RubyClass.undefineMethod:(Ljava/lang/String;)V
         4: .line 154
            aload 3 /* JavaClass */
            invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
            ldc "allocate"
            invokevirtual org.jruby.RubyClass.undefineMethod:(Ljava/lang/String;)V
         5: .line 156
            aload 3 /* JavaClass */
            areturn
        end local 3 // org.jruby.RubyClass JavaClass
        end local 2 // org.jruby.RubyClass JavaObject
        end local 1 // org.jruby.RubyModule Java
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0     runtime  Lorg/jruby/Ruby;
            0    6     1        Java  Lorg/jruby/RubyModule;
            0    6     2  JavaObject  Lorg/jruby/RubyClass;
            1    6     3   JavaClass  Lorg/jruby/RubyClass;
    MethodParameters:
            Name  Flags
      runtime     final
      Java        final
      JavaObject  final

  public final java.lang.Class javaClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 160
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getValue:()Ljava/lang/Object;
            checkcast java.lang.Class
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;

  public static java.lang.Class<?> getJavaClass(org.jruby.runtime.ThreadContext, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule proxy
         0: .line 172
            aload 0 /* context */
            aload 1 /* proxy */
            invokestatic org.jruby.javasupport.JavaClass.getJavaClassIfProxy:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Ljava/lang/Class;
            areturn
        end local 1 // org.jruby.RubyModule proxy
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1    proxy  Lorg/jruby/RubyModule;
    Signature: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      context  final
      proxy    final

  public static java.lang.Class<?> getJavaClassIfProxy(org.jruby.runtime.ThreadContext, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule proxy
         0: .line 184
            aload 0 /* context */
            aload 1 /* proxy */
            invokestatic org.jruby.javasupport.JavaClass.getJavaClassIfProxyImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Lorg/jruby/javasupport/JavaClass;
            astore 2 /* javaClass */
        start local 2 // org.jruby.javasupport.JavaClass javaClass
         1: .line 185
            aload 2 /* javaClass */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.jruby.javasupport.JavaClass
      StackMap stack:
         2: aload 2 /* javaClass */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         3: areturn
        end local 2 // org.jruby.javasupport.JavaClass javaClass
        end local 1 // org.jruby.RubyModule proxy
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0    context  Lorg/jruby/runtime/ThreadContext;
            0    4     1      proxy  Lorg/jruby/RubyModule;
            1    4     2  javaClass  Lorg/jruby/javasupport/JavaClass;
    Signature: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      context  final
      proxy    final

  private static org.jruby.javasupport.JavaClass getJavaClassIfProxyImpl(org.jruby.runtime.ThreadContext, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule proxy
         0: .line 189
            aload 0 /* context */
            aload 1 /* proxy */
            invokestatic org.jruby.javasupport.JavaClass.java_class:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* java_class */
        start local 2 // org.jruby.runtime.builtin.IRubyObject java_class
         1: .line 190
            aload 2 /* java_class */
            instanceof org.jruby.javasupport.JavaClass
            ifeq 2
            aload 2 /* java_class */
            checkcast org.jruby.javasupport.JavaClass
            goto 3
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: org.jruby.javasupport.JavaClass
         3: areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject java_class
        end local 1 // org.jruby.RubyModule proxy
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0     context  Lorg/jruby/runtime/ThreadContext;
            0    4     1       proxy  Lorg/jruby/RubyModule;
            1    4     2  java_class  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  final
      proxy    final

  public static boolean isProxyType(org.jruby.runtime.ThreadContext, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule proxy
         0: .line 195
            aload 0 /* context */
            aload 1 /* proxy */
            invokestatic org.jruby.javasupport.JavaClass.getJavaClassIfProxyImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Lorg/jruby/javasupport/JavaClass;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.jruby.RubyModule proxy
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1    proxy  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      context  final
      proxy    final

  public static org.jruby.runtime.builtin.IRubyObject java_class(org.jruby.runtime.ThreadContext, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule type
         0: .line 208
            aload 1 /* type */
            ldc "@java_class"
            invokevirtual org.jruby.RubyModule.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* java_class */
        start local 2 // org.jruby.runtime.builtin.IRubyObject java_class
         1: .line 209
            aload 2 /* java_class */
            ifnonnull 6
         2: .line 210
            aload 1 /* type */
            ldc "java_class"
            invokevirtual org.jruby.RubyModule.respondsTo:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 212
            aload 0 /* context */
            aload 1 /* type */
            ldc "java_class"
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* java_class */
         4: .line 213
            goto 6
         5: .line 214
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* java_class */
         6: .line 216
      StackMap locals:
      StackMap stack:
            aload 2 /* java_class */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject java_class
        end local 1 // org.jruby.RubyModule type
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0     context  Lorg/jruby/runtime/ThreadContext;
            0    7     1        type  Lorg/jruby/RubyModule;
            1    7     2  java_class  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  final
      type     final

  public static org.jruby.javasupport.JavaClass resolveType(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject type
         0: .line 235
            aload 1 /* type */
            instanceof org.jruby.RubyString
            ifne 1
            aload 1 /* type */
            instanceof org.jruby.RubySymbol
            ifeq 6
         1: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         2: .line 237
            aload 1 /* type */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
         3: .line 238
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getNameClassMap:()Ljava/util/Map;
            aload 3 /* className */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.javasupport.JavaClass
            astore 4 /* targetType */
        start local 4 // org.jruby.javasupport.JavaClass targetType
         4: .line 239
            aload 4 /* targetType */
            ifnonnull 5
            aload 2 /* runtime */
            aload 3 /* className */
            invokestatic org.jruby.javasupport.JavaClass.forNameVerbose:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
            astore 4 /* targetType */
         5: .line 240
      StackMap locals: org.jruby.Ruby java.lang.String org.jruby.javasupport.JavaClass
      StackMap stack:
            aload 4 /* targetType */
            areturn
        end local 4 // org.jruby.javasupport.JavaClass targetType
        end local 3 // java.lang.String className
        end local 2 // org.jruby.Ruby runtime
         6: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* type */
            invokestatic org.jruby.javasupport.JavaClass.resolveClassType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject type
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0     context  Lorg/jruby/runtime/ThreadContext;
            0    7     1        type  Lorg/jruby/runtime/builtin/IRubyObject;
            2    6     2     runtime  Lorg/jruby/Ruby;
            3    6     3   className  Ljava/lang/String;
            4    6     4  targetType  Lorg/jruby/javasupport/JavaClass;
    MethodParameters:
         Name  Flags
      context  final
      type     final

  private static org.jruby.javasupport.JavaClass resolveClassType(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject type
         0: .line 247
            aload 1 /* type */
            instanceof org.jruby.java.proxies.JavaProxy
            ifeq 4
         1: .line 248
            aload 1 /* type */
            checkcast org.jruby.java.proxies.JavaProxy
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            astore 2 /* wrapped */
        start local 2 // java.lang.Object wrapped
         2: .line 249
            aload 2 /* wrapped */
            instanceof java.lang.Class
            ifeq 3
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* wrapped */
            checkcast java.lang.Class
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            areturn
         3: .line 250
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object wrapped
         4: .line 252
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof org.jruby.javasupport.JavaClass
            ifeq 6
         5: .line 253
            aload 1 /* type */
            checkcast org.jruby.javasupport.JavaClass
            areturn
         6: .line 255
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof org.jruby.RubyModule
            ifeq 8
         7: .line 256
            aload 0 /* context */
            aload 1 /* type */
            checkcast org.jruby.RubyModule
            invokestatic org.jruby.javasupport.JavaClass.getJavaClassIfProxyImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Lorg/jruby/javasupport/JavaClass;
            areturn
         8: .line 258
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject type
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  context  Lorg/jruby/runtime/ThreadContext;
            0    9     1     type  Lorg/jruby/runtime/builtin/IRubyObject;
            2    4     2  wrapped  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  final
      type     final

  static boolean isPrimitiveName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 262
            aload 0 /* name */
            invokestatic org.jruby.javasupport.JavaUtil.getPrimitiveClass:(Ljava/lang/String;)Ljava/lang/Class;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public static org.jruby.javasupport.JavaClass forNameVerbose(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String className
         0: .line 266
            aconst_null
            astore 2 /* klass */
        start local 2 // java.lang.Class klass
         1: .line 267
            aload 1 /* className */
            invokevirtual java.lang.String.length:()I
            bipush 8
            if_icmpge 3
            aload 1 /* className */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLowerCase:(C)Z
            ifeq 3
         2: .line 269
            aload 1 /* className */
            invokestatic org.jruby.javasupport.JavaUtil.getPrimitiveClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* klass */
         3: .line 271
      StackMap locals: java.lang.Class
      StackMap stack:
            ldc Lorg/jruby/javasupport/JavaClass;
            dup
            astore 3
            monitorenter
         4: .line 272
            aload 2 /* klass */
            ifnonnull 6
         5: .line 273
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 1 /* className */
            invokevirtual org.jruby.javasupport.JavaSupport.loadJavaClassVerbose:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* klass */
         6: .line 275
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* runtime */
            aload 2 /* klass */
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            aload 3
            monitorexit
         7: areturn
         8: .line 271
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
         9: athrow
        end local 2 // java.lang.Class klass
        end local 1 // java.lang.String className
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0    runtime  Lorg/jruby/Ruby;
            0   10     1  className  Ljava/lang/String;
            1   10     2      klass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           4     7       8  any
           8     9       8  any
    MethodParameters:
           Name  Flags
      runtime    
      className  

  public static org.jruby.javasupport.JavaClass forNameQuiet(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String className
         0: .line 280
            ldc Lorg/jruby/javasupport/JavaClass;
            dup
            astore 2
            monitorenter
         1: .line 281
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 1 /* className */
            invokevirtual org.jruby.javasupport.JavaSupport.loadJavaClassQuiet:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* klass */
        start local 3 // java.lang.Class klass
         2: .line 282
            aload 0 /* runtime */
            aload 3 /* klass */
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            aload 2
            monitorexit
         3: areturn
        end local 3 // java.lang.Class klass
         4: .line 280
      StackMap locals: org.jruby.Ruby java.lang.String java.lang.Class
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         5: athrow
        end local 1 // java.lang.String className
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0    runtime  Lorg/jruby/Ruby;
            0    6     1  className  Ljava/lang/String;
            2    4     3      klass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
           Name  Flags
      runtime    
      className  

  public static org.jruby.javasupport.JavaClass for_name(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 288
            aload 0 /* recv */
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            invokestatic org.jruby.javasupport.JavaClass.for_name:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject name
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1  name  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"for_name"}, required = 1, meta = true)
    MethodParameters:
      Name  Flags
      recv  
      name  

  static org.jruby.javasupport.JavaClass for_name(org.jruby.runtime.builtin.IRubyObject, java.lang.String);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // java.lang.String name
         0: .line 292
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* name */
            invokestatic org.jruby.javasupport.JavaClass.forNameVerbose:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      recv  
      name  

  public org.jruby.RubyModule ruby_class();
    descriptor: ()Lorg/jruby/RubyModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 298
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyBoolean public_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 303
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"public?"})

  public org.jruby.RubyBoolean protected_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 308
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"protected?"})

  public org.jruby.RubyBoolean private_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 313
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPrivate:(I)Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"private?"})

  public org.jruby.RubyBoolean final_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 318
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"final?"})

  public org.jruby.RubyBoolean interface_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 323
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isInterface:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"interface?"})

  public org.jruby.RubyBoolean array_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 328
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"array?"})

  public org.jruby.RubyBoolean enum_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 333
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isEnum:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"enum?"})

  public org.jruby.RubyBoolean annotation_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 338
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAnnotation:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"annotation?"})

  public org.jruby.RubyBoolean anonymous_class_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 343
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAnonymousClass:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"anonymous_class?"})

  public org.jruby.RubyBoolean local_class_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 348
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isLocalClass:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"local_class?"})

  public org.jruby.RubyBoolean member_class_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 353
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isMemberClass:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"member_class?"})

  public org.jruby.runtime.builtin.IRubyObject synthetic_p();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 358
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isSynthetic:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"synthetic?"})

  public org.jruby.RubyString name();
    descriptor: ()Lorg/jruby/RubyString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 363
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"name", "to_s"})

  public org.jruby.RubyString inspect();
    descriptor: ()Lorg/jruby/RubyString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 369
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject canonical_name();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 374
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            astore 1 /* canonicalName */
        start local 1 // java.lang.String canonicalName
         1: .line 375
            aload 1 /* canonicalName */
            ifnull 3
         2: .line 376
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* canonicalName */
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
         3: .line 378
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // java.lang.String canonicalName
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/jruby/javasupport/JavaClass;
            1    4     1  canonicalName  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject get_package();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 383
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"package"})

  public org.jruby.runtime.builtin.IRubyObject class_loader();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 388
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject protection_domain();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 393
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject resource(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 398
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            invokevirtual java.lang.Class.getResource:(Ljava/lang/String;)Ljava/net/URL;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject name
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
            0    1     1  name  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
      Name  Flags
      name  

  public org.jruby.runtime.builtin.IRubyObject resource_as_stream(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 403
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject name
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
            0    1     1  name  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
      Name  Flags
      name  

  public org.jruby.runtime.builtin.IRubyObject resource_as_string(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 408
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* in */
        start local 2 // java.io.InputStream in
         1: .line 409
            aload 2 /* in */
            ifnonnull 2
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 410
      StackMap locals: java.io.InputStream
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 3 /* out */
        start local 3 // java.io.ByteArrayOutputStream out
         3: .line 413
            sipush 4096
            newarray 8
            astore 5 /* buf */
        start local 5 // byte[] buf
         4: .line 414
            goto 6
        start local 4 // int len
         5: .line 415
      StackMap locals: java.io.ByteArrayOutputStream int byte[]
      StackMap stack:
            aload 3 /* out */
            aload 5 /* buf */
            iconst_0
            iload 4 /* len */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 4 // int len
         6: .line 414
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject java.io.InputStream java.io.ByteArrayOutputStream top byte[]
      StackMap stack:
            aload 2 /* in */
            aload 5 /* buf */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 4 /* len */
        start local 4 // int len
         7: ifge 5
        end local 5 // byte[] buf
        end local 4 // int len
         8: .line 417
            goto 16
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject java.io.InputStream java.io.ByteArrayOutputStream
      StackMap stack: java.io.IOException
         9: astore 4 /* e */
        start local 4 // java.io.IOException e
        10: .line 418
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 4 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // java.io.IOException e
        11: .line 419
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        12: .line 420
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        13: goto 15
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject java.io.InputStream java.io.ByteArrayOutputStream top top java.lang.Throwable
      StackMap stack: java.io.IOException
        14: pop
        15: .line 421
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        16: .line 420
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject java.io.InputStream java.io.ByteArrayOutputStream
      StackMap stack:
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        17: goto 19
      StackMap locals:
      StackMap stack: java.io.IOException
        18: pop
        19: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            new org.jruby.util.ByteList
            dup
            aload 3 /* out */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            iconst_0
            invokespecial org.jruby.util.ByteList.<init>:([BZ)V
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            areturn
        end local 3 // java.io.ByteArrayOutputStream out
        end local 2 // java.io.InputStream in
        end local 1 // org.jruby.runtime.builtin.IRubyObject name
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lorg/jruby/javasupport/JavaClass;
            0   20     1  name  Lorg/jruby/runtime/builtin/IRubyObject;
            1   20     2    in  Ljava/io/InputStream;
            3   20     3   out  Ljava/io/ByteArrayOutputStream;
            5    6     4   len  I
            7    8     4   len  I
            4    8     5   buf  [B
           10   11     4     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     8       9  Class java.io.IOException
           3    11      11  any
          12    13      14  Class java.io.IOException
          16    17      18  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
      Name  Flags
      name  

  public org.jruby.runtime.builtin.IRubyObject annotation(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject annoClass
         0: .line 428
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 429
            aload 1 /* annoClass */
            instanceof org.jruby.javasupport.JavaClass
            ifne 3
         2: .line 430
            aload 2 /* runtime */
            aload 1 /* annoClass */
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaClassClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 432
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* annoClass */
            checkcast org.jruby.javasupport.JavaClass
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 3 /* annotation */
        start local 3 // java.lang.Class annotation
         4: .line 433
            aload 2 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 3 /* annotation */
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // java.lang.Class annotation
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject annoClass
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/jruby/javasupport/JavaClass;
            0    5     1   annoClass  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     2     runtime  Lorg/jruby/Ruby;
            4    5     3  annotation  Ljava/lang/Class;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
           Name  Flags
      annoClass  final

  public org.jruby.runtime.builtin.IRubyObject annotations();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 441
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getAnnotations:()[Ljava/lang/annotation/Annotation;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyBoolean annotations_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 446
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getAnnotations:()[Ljava/lang/annotation/Annotation;
            arraylength
            ifle 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         1: iconst_0
      StackMap locals: org.jruby.javasupport.JavaClass
      StackMap stack: org.jruby.Ruby int
         2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"annotations?"})

  public org.jruby.runtime.builtin.IRubyObject declared_annotations();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 452
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyBoolean declared_annotations_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 457
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
            arraylength
            ifle 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         1: iconst_0
      StackMap locals: org.jruby.javasupport.JavaClass
      StackMap stack: org.jruby.Ruby int
         2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"declared_annotations?"})

  public org.jruby.runtime.builtin.IRubyObject annotation_present_p(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject annoClass
         0: .line 463
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 464
            aload 1 /* annoClass */
            instanceof org.jruby.javasupport.JavaClass
            ifne 3
         2: .line 465
            aload 2 /* runtime */
            aload 1 /* annoClass */
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaClassClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 467
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* annoClass */
            checkcast org.jruby.javasupport.JavaClass
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 3 /* annotation */
        start local 3 // java.lang.Class annotation
         4: .line 468
            aload 2 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 3 /* annotation */
            invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 3 // java.lang.Class annotation
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject annoClass
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/jruby/javasupport/JavaClass;
            0    5     1   annoClass  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     2     runtime  Lorg/jruby/Ruby;
            4    5     3  annotation  Ljava/lang/Class;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"annotation_present?"}, required = 1)
    MethodParameters:
           Name  Flags
      annoClass  final

  public org.jruby.runtime.builtin.IRubyObject modifiers();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 473
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModifiers:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject declaring_class();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 478
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaringClass:()Ljava/lang/Class;
            astore 1 /* clazz */
        start local 1 // java.lang.Class clazz
         1: .line 479
            aload 1 /* clazz */
            ifnull 3
         2: .line 480
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* clazz */
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            areturn
         3: .line 482
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/jruby/javasupport/JavaClass;
            1    4     1  clazz  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject enclosing_class();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 487
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject enclosing_constructor();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 492
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getEnclosingConstructor:()Ljava/lang/reflect/Constructor;
            astore 1 /* ctor */
        start local 1 // java.lang.reflect.Constructor ctor
         1: .line 493
            aload 1 /* ctor */
            ifnull 3
         2: .line 494
            new org.jruby.javasupport.JavaConstructor
            dup
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* ctor */
            invokespecial org.jruby.javasupport.JavaConstructor.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Constructor;)V
            areturn
         3: .line 496
      StackMap locals: java.lang.reflect.Constructor
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // java.lang.reflect.Constructor ctor
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/javasupport/JavaClass;
            1    4     1  ctor  Ljava/lang/reflect/Constructor<*>;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject enclosing_method();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 501
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getEnclosingMethod:()Ljava/lang/reflect/Method;
            astore 1 /* meth */
        start local 1 // java.lang.reflect.Method meth
         1: .line 502
            aload 1 /* meth */
            ifnull 3
         2: .line 503
            new org.jruby.javasupport.JavaMethod
            dup
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* meth */
            invokespecial org.jruby.javasupport.JavaMethod.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Method;)V
            areturn
         3: .line 505
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // java.lang.reflect.Method meth
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/javasupport/JavaClass;
            1    4     1  meth  Ljava/lang/reflect/Method;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject enum_constants();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 510
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getEnumConstants:()[Ljava/lang/Object;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject generic_interfaces();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 515
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getGenericInterfaces:()[Ljava/lang/reflect/Type;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject generic_superclass();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 520
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getGenericSuperclass:()Ljava/lang/reflect/Type;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject type_parameters();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 525
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getTypeParameters:()[Ljava/lang/reflect/TypeVariable;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject signers();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 530
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSigners:()[Ljava/lang/Object;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public static java.lang.String getSimpleName(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 534
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 2
         1: .line 535
            new java.lang.StringBuilder
            dup
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.getSimpleName:(Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "[]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 538
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* className */
        start local 1 // java.lang.String className
         3: .line 539
            aload 1 /* className */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         4: .line 540
            aload 1 /* className */
            bipush 36
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* i */
        start local 3 // int i
         5: .line 541
            iload 3 /* i */
            iconst_m1
            if_icmpeq 9
         6: .line 543
      StackMap locals: java.lang.String int int
      StackMap stack:
            iinc 3 /* i */ 1
         7: .line 544
            iload 3 /* i */
            iload 2 /* len */
            if_icmpge 8
            aload 1 /* className */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 6
         8: .line 545
      StackMap locals:
      StackMap stack:
            aload 1 /* className */
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         9: .line 548
      StackMap locals:
      StackMap stack:
            aload 1 /* className */
            aload 1 /* className */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 3 // int i
        end local 2 // int len
        end local 1 // java.lang.String className
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0      clazz  Ljava/lang/Class<*>;
            3   10     1  className  Ljava/lang/String;
            4   10     2        len  I
            5   10     3          i  I
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      clazz  

  public org.jruby.RubyString simple_name();
    descriptor: ()Lorg/jruby/RubyString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 553
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.getSimpleName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject superclass();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 558
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 1 /* superclass */
        start local 1 // java.lang.Class superclass
         1: .line 559
            aload 1 /* superclass */
            ifnonnull 3
         2: .line 560
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 562
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* superclass */
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 1 // java.lang.Class superclass
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/jruby/javasupport/JavaClass;
            1    4     1  superclass  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject op_cmp(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 567
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 2 /* thisClass */
        start local 2 // java.lang.Class thisClass
         1: .line 568
            aconst_null
            astore 3 /* otherClass */
        start local 3 // java.lang.Class otherClass
         2: .line 571
            aload 1 /* other */
            instanceof org.jruby.javasupport.JavaClass
            ifeq 5
         3: .line 572
            aload 1 /* other */
            checkcast org.jruby.javasupport.JavaClass
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 3 /* otherClass */
         4: .line 573
            goto 10
         5: .line 574
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
            aload 1 /* other */
            instanceof org.jruby.java.proxies.ConcreteJavaProxy
            ifeq 10
         6: .line 575
            aload 1 /* other */
            checkcast org.jruby.java.proxies.ConcreteJavaProxy
            astore 4 /* proxy */
        start local 4 // org.jruby.java.proxies.ConcreteJavaProxy proxy
         7: .line 576
            aload 4 /* proxy */
            invokevirtual org.jruby.java.proxies.ConcreteJavaProxy.getObject:()Ljava/lang/Object;
            astore 5 /* wrapped */
        start local 5 // java.lang.Object wrapped
         8: .line 577
            aload 5 /* wrapped */
            instanceof java.lang.Class
            ifeq 10
         9: .line 578
            aload 5 /* wrapped */
            checkcast java.lang.Class
            astore 3 /* otherClass */
        end local 5 // java.lang.Object wrapped
        end local 4 // org.jruby.java.proxies.ConcreteJavaProxy proxy
        10: .line 582
      StackMap locals:
      StackMap stack:
            aload 3 /* otherClass */
            ifnull 17
        11: .line 583
            aload 2 /* thisClass */
            aload 3 /* otherClass */
            if_acmpne 13
        12: .line 584
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            iconst_0
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        13: .line 586
      StackMap locals:
      StackMap stack:
            aload 3 /* otherClass */
            aload 2 /* thisClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 15
        14: .line 587
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            iconst_m1
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        15: .line 589
      StackMap locals:
      StackMap stack:
            aload 2 /* thisClass */
            aload 3 /* otherClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 17
        16: .line 590
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            iconst_1
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        17: .line 595
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // java.lang.Class otherClass
        end local 2 // java.lang.Class thisClass
        end local 1 // org.jruby.runtime.builtin.IRubyObject other
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lorg/jruby/javasupport/JavaClass;
            0   18     1       other  Lorg/jruby/runtime/builtin/IRubyObject;
            1   18     2   thisClass  Ljava/lang/Class<*>;
            2   18     3  otherClass  Ljava/lang/Class<*>;
            7   10     4       proxy  Lorg/jruby/java/proxies/ConcreteJavaProxy;
            8   10     5     wrapped  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"<=>"}, required = 1)
    MethodParameters:
       Name  Flags
      other  

  public org.jruby.RubyArray java_instance_methods();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 600
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            iconst_0
            invokevirtual org.jruby.javasupport.JavaClass.toJavaMethods:([Ljava/lang/reflect/Method;Z)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray declared_instance_methods();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 605
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            iconst_0
            invokevirtual org.jruby.javasupport.JavaClass.toJavaMethods:([Ljava/lang/reflect/Method;Z)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray java_class_methods();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 610
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            iconst_1
            invokevirtual org.jruby.javasupport.JavaClass.toJavaMethods:([Ljava/lang/reflect/Method;Z)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray declared_class_methods();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 615
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            iconst_1
            invokevirtual org.jruby.javasupport.JavaClass.toJavaMethods:([Ljava/lang/reflect/Method;Z)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  private org.jruby.RubyArray toJavaMethods(java.lang.reflect.Method[], boolean);
    descriptor: ([Ljava/lang/reflect/Method;Z)Lorg/jruby/RubyArray;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // java.lang.reflect.Method[] methods
        start local 2 // boolean isStatic
         0: .line 619
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 620
            aload 3 /* runtime */
            aload 1 /* methods */
            arraylength
            invokevirtual org.jruby.Ruby.newArray:(I)Lorg/jruby/RubyArray;
            astore 4 /* result */
        start local 4 // org.jruby.RubyArray result
         2: .line 621
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 8
         4: .line 622
      StackMap locals: org.jruby.Ruby org.jruby.RubyArray int
      StackMap stack:
            aload 1 /* methods */
            iload 5 /* i */
            aaload
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
         5: .line 623
            iload 2 /* isStatic */
            aload 6 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            if_icmpne 7
         6: .line 624
            aload 4 /* result */
            new org.jruby.javasupport.JavaMethod
            dup
            aload 3 /* runtime */
            aload 6 /* method */
            invokespecial org.jruby.javasupport.JavaMethod.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Method;)V
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
        end local 6 // java.lang.reflect.Method method
         7: .line 621
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 1 /* methods */
            arraylength
            if_icmplt 4
        end local 5 // int i
         9: .line 627
            aload 4 /* result */
            areturn
        end local 4 // org.jruby.RubyArray result
        end local 3 // org.jruby.Ruby runtime
        end local 2 // boolean isStatic
        end local 1 // java.lang.reflect.Method[] methods
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/jruby/javasupport/JavaClass;
            0   10     1   methods  [Ljava/lang/reflect/Method;
            0   10     2  isStatic  Z
            1   10     3   runtime  Lorg/jruby/Ruby;
            2   10     4    result  Lorg/jruby/RubyArray;
            3    9     5         i  I
            5    7     6    method  Ljava/lang/reflect/Method;
    MethodParameters:
          Name  Flags
      methods   final
      isStatic  final

  public org.jruby.javasupport.JavaMethod java_method(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 632
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 633
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmpge 2
            aload 2 /* runtime */
            aload 1 /* args */
            arraylength
            iconst_1
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 635
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         3: .line 637
            aload 2 /* runtime */
            aload 1 /* args */
            iconst_1
            invokestatic org.jruby.javasupport.JavaClass.getArgumentTypes:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Class;
            astore 4 /* argumentTypes */
        start local 4 // java.lang.Class[] argumentTypes
         4: .line 639
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 3 /* methodName */
            aload 4 /* argumentTypes */
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 5 /* method */
        start local 5 // java.lang.reflect.Method method
         5: .line 640
            new org.jruby.javasupport.JavaMethod
            dup
            aload 2 /* runtime */
            aload 5 /* method */
            invokespecial org.jruby.javasupport.JavaMethod.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Method;)V
         6: areturn
        end local 5 // java.lang.reflect.Method method
        end local 4 // java.lang.Class[] argumentTypes
         7: .line 642
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby java.lang.String
      StackMap stack: java.lang.NoSuchMethodException
            pop
         8: .line 643
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 3 /* methodName */
            invokestatic org.jruby.util.RubyStringBuilder.ids:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            aload 2 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic org.jruby.util.RubyStringBuilder.ids:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            iconst_0
            invokestatic org.jruby.RubyModule.undefinedMethodMessage:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Ljava/lang/String;
            aload 3 /* methodName */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.String methodName
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/jruby/javasupport/JavaClass;
            0    9     1           args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    9     2        runtime  Lorg/jruby/Ruby;
            3    9     3     methodName  Ljava/lang/String;
            4    7     4  argumentTypes  [Ljava/lang/Class;
            5    7     5         method  Ljava/lang/reflect/Method;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.NoSuchMethodException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, rest = true)
    MethodParameters:
      Name  Flags
      args  

  public org.jruby.javasupport.JavaMethod declared_method(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 649
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 650
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmpge 2
            aload 2 /* runtime */
            aload 1 /* args */
            arraylength
            iconst_1
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 652
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         3: .line 654
            aload 2 /* runtime */
            aload 1 /* args */
            iconst_1
            invokestatic org.jruby.javasupport.JavaClass.getArgumentTypes:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Class;
            astore 4 /* argumentTypes */
        start local 4 // java.lang.Class[] argumentTypes
         4: .line 656
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 3 /* methodName */
            aload 4 /* argumentTypes */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 5 /* method */
        start local 5 // java.lang.reflect.Method method
         5: .line 657
            new org.jruby.javasupport.JavaMethod
            dup
            aload 2 /* runtime */
            aload 5 /* method */
            invokespecial org.jruby.javasupport.JavaMethod.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Method;)V
         6: areturn
        end local 5 // java.lang.reflect.Method method
        end local 4 // java.lang.Class[] argumentTypes
         7: .line 659
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby java.lang.String
      StackMap stack: java.lang.NoSuchMethodException
            pop
         8: .line 660
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 3 /* methodName */
            invokestatic org.jruby.util.RubyStringBuilder.ids:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            aload 2 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic org.jruby.util.RubyStringBuilder.ids:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            iconst_0
            invokestatic org.jruby.RubyModule.undefinedMethodMessage:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Ljava/lang/String;
            aload 3 /* methodName */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.String methodName
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/jruby/javasupport/JavaClass;
            0    9     1           args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    9     2        runtime  Lorg/jruby/Ruby;
            3    9     3     methodName  Ljava/lang/String;
            4    7     4  argumentTypes  [Ljava/lang/Class;
            5    7     5         method  Ljava/lang/reflect/Method;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.NoSuchMethodException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, rest = true)
    MethodParameters:
      Name  Flags
      args  final

  public org.jruby.javasupport.JavaCallable declared_method_smart(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 666
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 667
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmpge 2
            aload 2 /* runtime */
            aload 1 /* args */
            arraylength
            iconst_1
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 669
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         3: .line 671
            aload 2 /* runtime */
            aload 1 /* args */
            iconst_1
            invokestatic org.jruby.javasupport.JavaClass.getArgumentTypes:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Class;
            astore 4 /* argumentTypes */
        start local 4 // java.lang.Class[] argumentTypes
         4: .line 673
            aload 2 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 3 /* methodName */
            aload 4 /* argumentTypes */
            invokestatic org.jruby.javasupport.JavaClass.getMatchingCallable:(Lorg/jruby/Ruby;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/jruby/javasupport/JavaCallable;
            astore 5 /* callable */
        start local 5 // org.jruby.javasupport.JavaCallable callable
         5: .line 675
            aload 5 /* callable */
            ifnull 6
            aload 5 /* callable */
            areturn
         6: .line 677
      StackMap locals: java.lang.String java.lang.Class[] org.jruby.javasupport.JavaCallable
      StackMap stack:
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 2 /* runtime */
            aload 3 /* methodName */
            invokestatic org.jruby.util.RubyStringBuilder.ids:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            aload 2 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic org.jruby.util.RubyStringBuilder.ids:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            iconst_0
            invokestatic org.jruby.RubyModule.undefinedMethodMessage:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Ljava/lang/String;
            aload 3 /* methodName */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // org.jruby.javasupport.JavaCallable callable
        end local 4 // java.lang.Class[] argumentTypes
        end local 3 // java.lang.String methodName
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/jruby/javasupport/JavaClass;
            0    7     1           args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     2        runtime  Lorg/jruby/Ruby;
            3    7     3     methodName  Ljava/lang/String;
            4    7     4  argumentTypes  [Ljava/lang/Class;
            5    7     5       callable  Lorg/jruby/javasupport/JavaCallable;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, rest = true)
    MethodParameters:
      Name  Flags
      args  final

  public static org.jruby.javasupport.JavaCallable getMatchingCallable(org.jruby.Ruby, java.lang.Class<?>, java.lang.String, java.lang.Class<?>[]);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/jruby/javasupport/JavaCallable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class javaClass
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Class[] argumentTypes
         0: .line 681
            aload 2 /* methodName */
            invokevirtual java.lang.String.length:()I
            bipush 6
            if_icmpne 2
            ldc "<init>"
            aload 2 /* methodName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 682
            aload 0 /* runtime */
            aload 1 /* javaClass */
            aload 3 /* argumentTypes */
            invokestatic org.jruby.javasupport.JavaConstructor.getMatchingConstructor:(Lorg/jruby/Ruby;Ljava/lang/Class;[Ljava/lang/Class;)Lorg/jruby/javasupport/JavaConstructor;
            areturn
         2: .line 686
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* javaClass */
            aload 2 /* methodName */
            aload 3 /* argumentTypes */
            invokestatic org.jruby.javasupport.JavaMethod.getMatchingDeclaredMethod:(Lorg/jruby/Ruby;Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/jruby/javasupport/JavaMethod;
            areturn
        end local 3 // java.lang.Class[] argumentTypes
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0        runtime  Lorg/jruby/Ruby;
            0    3     1      javaClass  Ljava/lang/Class<*>;
            0    3     2     methodName  Ljava/lang/String;
            0    3     3  argumentTypes  [Ljava/lang/Class;
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/Class<*>;)Lorg/jruby/javasupport/JavaCallable;
    MethodParameters:
               Name  Flags
      runtime        
      javaClass      
      methodName     
      argumentTypes  

  private static java.lang.Class<?>[] getArgumentTypes(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[], int);
    descriptor: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // int offset
         0: .line 690
            aload 1 /* args */
            arraylength
            istore 3 /* length */
        start local 3 // int length
         1: .line 691
            iload 3 /* length */
            iload 2 /* offset */
            if_icmpne 2
            getstatic org.jruby.javasupport.JavaClass.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
            areturn
         2: .line 692
      StackMap locals: int
      StackMap stack:
            iload 3 /* length */
            iload 2 /* offset */
            isub
            anewarray java.lang.Class
            astore 4 /* argumentTypes */
        start local 4 // java.lang.Class[] argumentTypes
         3: .line 693
            iload 2 /* offset */
            istore 5 /* i */
        start local 5 // int i
         4: goto 15
         5: .line 694
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 1 /* args */
            iload 5 /* i */
            aaload
            astore 6 /* arg */
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg
         6: .line 696
            aload 6 /* arg */
            instanceof org.jruby.javasupport.JavaClass
            ifeq 9
         7: .line 697
            aload 6 /* arg */
            checkcast org.jruby.javasupport.JavaClass
            astore 7 /* type */
        start local 7 // org.jruby.javasupport.JavaClass type
         8: .line 698
            goto 13
        end local 7 // org.jruby.javasupport.JavaClass type
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         9: aload 6 /* arg */
            ldc "java_class"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 699
            aload 6 /* arg */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            ldc "java_class"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.javasupport.JavaClass
            astore 7 /* type */
        start local 7 // org.jruby.javasupport.JavaClass type
        11: .line 700
            goto 13
        end local 7 // org.jruby.javasupport.JavaClass type
        12: .line 701
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 6 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            invokestatic org.jruby.javasupport.JavaClass.forNameVerbose:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
            astore 7 /* type */
        start local 7 // org.jruby.javasupport.JavaClass type
        13: .line 703
      StackMap locals: org.jruby.javasupport.JavaClass
      StackMap stack:
            aload 4 /* argumentTypes */
            iload 5 /* i */
            iload 2 /* offset */
            isub
            aload 7 /* type */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aastore
        end local 7 // org.jruby.javasupport.JavaClass type
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg
        14: .line 693
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            iload 3 /* length */
            if_icmplt 5
        end local 5 // int i
        16: .line 705
            aload 4 /* argumentTypes */
            areturn
        end local 4 // java.lang.Class[] argumentTypes
        end local 3 // int length
        end local 2 // int offset
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0        runtime  Lorg/jruby/Ruby;
            0   17     1           args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   17     2         offset  I
            1   17     3         length  I
            3   17     4  argumentTypes  [Ljava/lang/Class;
            4   16     5              i  I
            6   14     6            arg  Lorg/jruby/runtime/builtin/IRubyObject;
            8    9     7           type  Lorg/jruby/javasupport/JavaClass;
           11   12     7           type  Lorg/jruby/javasupport/JavaClass;
           13   14     7           type  Lorg/jruby/javasupport/JavaClass;
    Signature: (Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      runtime  final
      args     final
      offset   final

  public org.jruby.RubyArray constructors();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 713
            aload 0 /* this */
            getfield org.jruby.javasupport.JavaClass.constructors:Lorg/jruby/RubyArray;
            astore 1 /* constructors */
        start local 1 // org.jruby.RubyArray constructors
         1: .line 714
            aload 1 /* constructors */
            ifnull 2
            aload 1 /* constructors */
            areturn
         2: .line 715
      StackMap locals: org.jruby.RubyArray
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
            invokestatic org.jruby.javasupport.JavaClass.buildConstructors:(Lorg/jruby/Ruby;[Ljava/lang/reflect/Constructor;)Lorg/jruby/RubyArray;
            dup_x1
            putfield org.jruby.javasupport.JavaClass.constructors:Lorg/jruby/RubyArray;
            areturn
        end local 1 // org.jruby.RubyArray constructors
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/jruby/javasupport/JavaClass;
            1    3     1  constructors  Lorg/jruby/RubyArray;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray classes();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 720
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClasses:()[Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.toRubyArray:(Lorg/jruby/Ruby;[Ljava/lang/Class;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray declared_classes();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 725
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 726
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 2 /* javaClass */
        start local 2 // java.lang.Class javaClass
         2: .line 728
            aload 2 /* javaClass */
            invokevirtual java.lang.Class.getDeclaredClasses:()[Ljava/lang/Class;
            astore 3 /* classes */
        start local 3 // java.lang.Class[] classes
         3: .line 729
            aload 1 /* runtime */
            aload 3 /* classes */
            arraylength
            invokevirtual org.jruby.Ruby.newArray:(I)Lorg/jruby/RubyArray;
            astore 4 /* result */
        start local 4 // org.jruby.RubyArray result
         4: .line 730
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 9
         6: .line 731
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.Ruby java.lang.Class java.lang.Class[] org.jruby.RubyArray int
      StackMap stack:
            aload 3 /* classes */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 8
         7: .line 732
            aload 4 /* result */
            aload 1 /* runtime */
            aload 3 /* classes */
            iload 5 /* i */
            aaload
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
         8: .line 730
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 3 /* classes */
            arraylength
            if_icmplt 6
        end local 5 // int i
        10: .line 735
            aload 4 /* result */
        11: areturn
        end local 4 // org.jruby.RubyArray result
        end local 3 // java.lang.Class[] classes
        12: .line 737
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.Ruby java.lang.Class
      StackMap stack: java.lang.SecurityException
            pop
        13: .line 741
            aload 2 /* javaClass */
            invokevirtual java.lang.Class.getClasses:()[Ljava/lang/Class;
            astore 3 /* classes */
        start local 3 // java.lang.Class[] classes
        14: .line 742
            aload 1 /* runtime */
            aload 3 /* classes */
            arraylength
            invokevirtual org.jruby.Ruby.newArray:(I)Lorg/jruby/RubyArray;
            astore 4 /* result */
        start local 4 // org.jruby.RubyArray result
        15: .line 743
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        16: goto 20
        17: .line 744
      StackMap locals: java.lang.Class[] org.jruby.RubyArray int
      StackMap stack:
            aload 2 /* javaClass */
            aload 3 /* classes */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.Class.getDeclaringClass:()Ljava/lang/Class;
            if_acmpne 19
        18: .line 745
            aload 4 /* result */
            aload 1 /* runtime */
            aload 3 /* classes */
            iload 5 /* i */
            aaload
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
        19: .line 743
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 5 /* i */
            aload 3 /* classes */
            arraylength
            if_icmplt 17
        end local 5 // int i
        21: .line 748
            aload 4 /* result */
        22: areturn
        end local 4 // org.jruby.RubyArray result
        end local 3 // java.lang.Class[] classes
        23: .line 750
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.Ruby java.lang.Class
      StackMap stack: java.lang.SecurityException
            pop
        24: .line 755
            aload 1 /* runtime */
            invokestatic org.jruby.RubyArray.newEmptyArray:(Lorg/jruby/Ruby;)Lorg/jruby/RubyArray;
            areturn
        end local 2 // java.lang.Class javaClass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       this  Lorg/jruby/javasupport/JavaClass;
            1   25     1    runtime  Lorg/jruby/Ruby;
            2   25     2  javaClass  Ljava/lang/Class<*>;
            3   12     3    classes  [Ljava/lang/Class;
            4   12     4     result  Lorg/jruby/RubyArray;
            5   10     5          i  I
           14   23     3    classes  [Ljava/lang/Class;
           15   23     4     result  Lorg/jruby/RubyArray;
           16   21     5          i  I
      Exception table:
        from    to  target  type
           2    11      12  Class java.lang.SecurityException
          13    22      23  Class java.lang.SecurityException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray declared_constructors();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 760
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            invokestatic org.jruby.javasupport.JavaClass.buildConstructors:(Lorg/jruby/Ruby;[Ljava/lang/reflect/Constructor;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  private static org.jruby.RubyArray buildConstructors(org.jruby.Ruby, java.lang.reflect.Constructor<?>[]);
    descriptor: (Lorg/jruby/Ruby;[Ljava/lang/reflect/Constructor;)Lorg/jruby/RubyArray;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.reflect.Constructor[] constructors
         0: .line 764
            aload 0 /* runtime */
            aload 1 /* constructors */
            arraylength
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyArray;
            astore 2 /* result */
        start local 2 // org.jruby.RubyArray result
         1: .line 765
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 766
      StackMap locals: org.jruby.RubyArray int
      StackMap stack:
            aload 2 /* result */
            new org.jruby.javasupport.JavaConstructor
            dup
            aload 0 /* runtime */
            aload 1 /* constructors */
            iload 3 /* i */
            aaload
            invokespecial org.jruby.javasupport.JavaConstructor.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Constructor;)V
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
         4: .line 765
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 1 /* constructors */
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 768
            aload 2 /* result */
            areturn
        end local 2 // org.jruby.RubyArray result
        end local 1 // java.lang.reflect.Constructor[] constructors
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0       runtime  Lorg/jruby/Ruby;
            0    7     1  constructors  [Ljava/lang/reflect/Constructor;
            1    7     2        result  Lorg/jruby/RubyArray;
            2    6     3             i  I
    Signature: (Lorg/jruby/Ruby;[Ljava/lang/reflect/Constructor<*>;)Lorg/jruby/RubyArray;
    MethodParameters:
              Name  Flags
      runtime       final
      constructors  

  public org.jruby.javasupport.JavaConstructor constructor(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaConstructor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 773
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 775
            aload 2 /* runtime */
            aload 1 /* args */
            iconst_0
            invokestatic org.jruby.javasupport.JavaClass.getArgumentTypes:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Class;
            astore 3 /* parameterTypes */
        start local 3 // java.lang.Class[] parameterTypes
         2: .line 777
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 3 /* parameterTypes */
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 4 /* constructor */
        start local 4 // java.lang.reflect.Constructor constructor
         3: .line 778
            new org.jruby.javasupport.JavaConstructor
            dup
            aload 2 /* runtime */
            aload 4 /* constructor */
            invokespecial org.jruby.javasupport.JavaConstructor.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Constructor;)V
         4: areturn
        end local 4 // java.lang.reflect.Constructor constructor
        end local 3 // java.lang.Class[] parameterTypes
         5: .line 780
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby
      StackMap stack: java.lang.NoSuchMethodException
            pop
         6: .line 781
            aload 2 /* runtime */
            ldc "no matching java constructor"
            aconst_null
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/jruby/javasupport/JavaClass;
            0    7     1            args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     2         runtime  Lorg/jruby/Ruby;
            2    5     3  parameterTypes  [Ljava/lang/Class;
            3    5     4     constructor  Ljava/lang/reflect/Constructor<*>;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.NoSuchMethodException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(rest = true)
    MethodParameters:
      Name  Flags
      args  

  public org.jruby.javasupport.JavaConstructor declared_constructor(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaConstructor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 787
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 789
            aload 2 /* runtime */
            aload 1 /* args */
            iconst_0
            invokestatic org.jruby.javasupport.JavaClass.getArgumentTypes:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Class;
            astore 3 /* parameterTypes */
        start local 3 // java.lang.Class[] parameterTypes
         2: .line 791
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 3 /* parameterTypes */
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 4 /* constructor */
        start local 4 // java.lang.reflect.Constructor constructor
         3: .line 792
            new org.jruby.javasupport.JavaConstructor
            dup
            aload 2 /* runtime */
            aload 4 /* constructor */
            invokespecial org.jruby.javasupport.JavaConstructor.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Constructor;)V
         4: areturn
        end local 4 // java.lang.reflect.Constructor constructor
        end local 3 // java.lang.Class[] parameterTypes
         5: .line 794
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby
      StackMap stack: java.lang.NoSuchMethodException
            pop
         6: .line 795
            aload 2 /* runtime */
            ldc "no matching java constructor"
            aconst_null
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/jruby/javasupport/JavaClass;
            0    7     1            args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     2         runtime  Lorg/jruby/Ruby;
            2    5     3  parameterTypes  [Ljava/lang/Class;
            3    5     4     constructor  Ljava/lang/reflect/Constructor<*>;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.NoSuchMethodException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(rest = true)
    MethodParameters:
      Name  Flags
      args  

  public org.jruby.javasupport.JavaClass array_class();
    descriptor: ()Lorg/jruby/javasupport/JavaClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 801
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            iconst_0
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* arrayClass */
        start local 1 // java.lang.Class arrayClass
         1: .line 802
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* arrayClass */
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 1 // java.lang.Class arrayClass
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/jruby/javasupport/JavaClass;
            1    2     1  arrayClass  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.javasupport.JavaObject new_array(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject lengthArgument
         0: .line 807
            aload 1 /* lengthArgument */
            instanceof org.jruby.RubyInteger
            ifeq 3
         1: .line 809
            aload 1 /* lengthArgument */
            checkcast org.jruby.RubyInteger
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 2 /* length */
        start local 2 // int length
         2: .line 810
            new org.jruby.javasupport.JavaArray
            dup
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            iload 2 /* length */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            invokespecial org.jruby.javasupport.JavaArray.<init>:(Lorg/jruby/Ruby;Ljava/lang/Object;)V
            areturn
        end local 2 // int length
         3: .line 812
      StackMap locals:
      StackMap stack:
            aload 1 /* lengthArgument */
            instanceof org.jruby.RubyArray
            ifeq 17
         4: .line 814
            aload 1 /* lengthArgument */
            checkcast org.jruby.RubyArray
            invokevirtual org.jruby.RubyArray.toJavaArrayMaybeUnsafe:()[Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* aryLengths */
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] aryLengths
         5: .line 815
            aload 2 /* aryLengths */
            arraylength
            istore 3 /* length */
        start local 3 // int length
         6: .line 816
            iload 3 /* length */
            ifne 8
         7: .line 817
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            ldc "empty dimensions specifier for java array"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 819
      StackMap locals: org.jruby.runtime.builtin.IRubyObject[] int
      StackMap stack:
            iload 3 /* length */
            newarray 10
            astore 4 /* dimensions */
        start local 4 // int[] dimensions
         9: .line 820
            iload 3 /* length */
            istore 5 /* i */
        start local 5 // int i
        10: goto 15
        11: .line 821
      StackMap locals: int[] int
      StackMap stack:
            aload 2 /* aryLengths */
            iload 5 /* i */
            aaload
            astore 6 /* dimLength */
        start local 6 // org.jruby.runtime.builtin.IRubyObject dimLength
        12: .line 822
            aload 6 /* dimLength */
            instanceof org.jruby.RubyInteger
            ifne 14
        13: .line 823
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 6 /* dimLength */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getInteger:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
        14: .line 825
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 4 /* dimensions */
            iload 5 /* i */
            aload 6 /* dimLength */
            checkcast org.jruby.RubyInteger
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            iastore
        end local 6 // org.jruby.runtime.builtin.IRubyObject dimLength
        15: .line 820
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
            iload 5 /* i */
            ifge 11
        end local 5 // int i
        16: .line 827
            new org.jruby.javasupport.JavaArray
            dup
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 4 /* dimensions */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;[I)Ljava/lang/Object;
            invokespecial org.jruby.javasupport.JavaArray.<init>:(Lorg/jruby/Ruby;Ljava/lang/Object;)V
            areturn
        end local 4 // int[] dimensions
        end local 3 // int length
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] aryLengths
        17: .line 830
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
        18: .line 831
            ldc "invalid length or dimensions specifier for java array - must be Integer or Array of Integer"
        19: .line 830
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject lengthArgument
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Lorg/jruby/javasupport/JavaClass;
            0   20     1  lengthArgument  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     2          length  I
            5   17     2      aryLengths  [Lorg/jruby/runtime/builtin/IRubyObject;
            6   17     3          length  I
            9   17     4      dimensions  [I
           10   16     5               i  I
           12   15     6       dimLength  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
                Name  Flags
      lengthArgument  

  public org.jruby.runtime.builtin.IRubyObject emptyJavaArray(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 836
            aload 1 /* context */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokestatic org.jruby.java.util.ArrayUtils.emptyJavaArrayDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Class;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/javasupport/JavaClass;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject javaArraySubarray(org.jruby.runtime.ThreadContext, org.jruby.javasupport.JavaArray, int, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/javasupport/JavaArray;II)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.javasupport.JavaArray fromArray
        start local 3 // int index
        start local 4 // int size
         0: .line 840
            aload 1 /* context */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getValue:()Ljava/lang/Object;
            iload 3 /* index */
            iload 4 /* size */
            invokestatic org.jruby.java.util.ArrayUtils.javaArraySubarrayDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;II)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // int size
        end local 3 // int index
        end local 2 // org.jruby.javasupport.JavaArray fromArray
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/javasupport/JavaClass;
            0    1     1    context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  fromArray  Lorg/jruby/javasupport/JavaArray;
            0    1     3      index  I
            0    1     4       size  I
    MethodParameters:
           Name  Flags
      context    
      fromArray  
      index      
      size       

  public org.jruby.runtime.builtin.IRubyObject concatArrays(org.jruby.runtime.ThreadContext, org.jruby.javasupport.JavaArray, org.jruby.javasupport.JavaArray);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/javasupport/JavaArray;Lorg/jruby/javasupport/JavaArray;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.javasupport.JavaArray original
        start local 3 // org.jruby.javasupport.JavaArray additional
         0: .line 854
            aload 1 /* context */
            aload 2 /* original */
            invokevirtual org.jruby.javasupport.JavaArray.getValue:()Ljava/lang/Object;
            aload 3 /* additional */
            invokevirtual org.jruby.javasupport.JavaArray.getValue:()Ljava/lang/Object;
            invokestatic org.jruby.java.util.ArrayUtils.concatArraysDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.javasupport.JavaArray additional
        end local 2 // org.jruby.javasupport.JavaArray original
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/jruby/javasupport/JavaClass;
            0    1     1     context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    original  Lorg/jruby/javasupport/JavaArray;
            0    1     3  additional  Lorg/jruby/javasupport/JavaArray;
    MethodParameters:
            Name  Flags
      context     
      original    
      additional  

  public org.jruby.runtime.builtin.IRubyObject concatArrays(org.jruby.runtime.ThreadContext, org.jruby.javasupport.JavaArray, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/javasupport/JavaArray;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.javasupport.JavaArray original
        start local 3 // org.jruby.runtime.builtin.IRubyObject additional
         0: .line 866
            aload 1 /* context */
            aload 2 /* original */
            invokevirtual org.jruby.javasupport.JavaArray.getValue:()Ljava/lang/Object;
            aload 3 /* additional */
            invokestatic org.jruby.java.util.ArrayUtils.concatArraysDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject additional
        end local 2 // org.jruby.javasupport.JavaArray original
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/jruby/javasupport/JavaClass;
            0    1     1     context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    original  Lorg/jruby/javasupport/JavaArray;
            0    1     3  additional  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
            Name  Flags
      context     
      original    
      additional  

  public org.jruby.runtime.builtin.IRubyObject javaArrayFromRubyArray(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject fromArray
         0: .line 871
            aload 2 /* fromArray */
            instanceof org.jruby.RubyArray
            ifne 3
         1: .line 872
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         2: .line 873
            aload 3 /* runtime */
            aload 2 /* fromArray */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getArray:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // org.jruby.Ruby runtime
         3: .line 875
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* fromArray */
            checkcast org.jruby.RubyArray
            invokevirtual org.jruby.javasupport.JavaClass.javaArrayFromRubyArray:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyArray;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject fromArray
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/jruby/javasupport/JavaClass;
            0    4     1    context  Lorg/jruby/runtime/ThreadContext;
            0    4     2  fromArray  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     3    runtime  Lorg/jruby/Ruby;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      context    
      fromArray  

  public final org.jruby.runtime.builtin.IRubyObject javaArrayFromRubyArray(org.jruby.runtime.ThreadContext, org.jruby.RubyArray);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyArray;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyArray fromArray
         0: .line 879
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 881
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* fromArray */
            invokevirtual org.jruby.javasupport.JavaClass.javaArrayFromRubyArrayDirect:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyArray;)Ljava/lang/Object;
            astore 4 /* newArray */
        start local 4 // java.lang.Object newArray
         2: .line 883
            new org.jruby.java.proxies.ArrayJavaProxy
            dup
            aload 3 /* runtime */
            aload 3 /* runtime */
            aload 4 /* newArray */
            invokestatic org.jruby.javasupport.Java.getProxyClassForObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/RubyClass;
            aload 4 /* newArray */
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaUtil.getJavaConverter:(Ljava/lang/Class;)Lorg/jruby/javasupport/JavaUtil$JavaConverter;
            invokespecial org.jruby.java.proxies.ArrayJavaProxy.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Object;Lorg/jruby/javasupport/JavaUtil$JavaConverter;)V
            areturn
        end local 4 // java.lang.Object newArray
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.RubyArray fromArray
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/jruby/javasupport/JavaClass;
            0    3     1    context  Lorg/jruby/runtime/ThreadContext;
            0    3     2  fromArray  Lorg/jruby/RubyArray;
            1    3     3    runtime  Lorg/jruby/Ruby;
            2    3     4   newArray  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      context    
      fromArray  

  public final java.lang.Object javaArrayFromRubyArrayDirect(org.jruby.runtime.ThreadContext, org.jruby.RubyArray);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyArray;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyArray fromArray
         0: .line 887
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 888
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 4 /* type */
        start local 4 // java.lang.Class type
         2: .line 890
            aload 4 /* type */
            aload 2 /* fromArray */
            invokevirtual org.jruby.RubyArray.size:()I
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 5 /* newArray */
        start local 5 // java.lang.Object newArray
         3: .line 892
            aload 4 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 20
         4: .line 894
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 18
         6: .line 895
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.ThreadContext org.jruby.RubyArray org.jruby.Ruby java.lang.Class java.lang.Object int
      StackMap stack:
            aload 4 /* type */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 7 /* nestedType */
        start local 7 // java.lang.Class nestedType
         7: .line 896
            aload 2 /* fromArray */
            iload 6 /* i */
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* element */
        start local 8 // org.jruby.runtime.builtin.IRubyObject element
         8: .line 898
            aload 8 /* element */
            instanceof org.jruby.RubyArray
            ifeq 12
         9: .line 899
            aload 3 /* runtime */
            aload 7 /* nestedType */
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 10 /* componentType */
        start local 10 // org.jruby.javasupport.JavaClass componentType
        10: .line 900
            aload 10 /* componentType */
            aload 1 /* context */
            aload 8 /* element */
            invokevirtual org.jruby.javasupport.JavaClass.javaArrayFromRubyArrayDirect:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            astore 9 /* nestedArray */
        end local 10 // org.jruby.javasupport.JavaClass componentType
        start local 9 // java.lang.Object nestedArray
        11: .line 901
            goto 16
        end local 9 // java.lang.Object nestedArray
        12: .line 902
      StackMap locals: java.lang.Class org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 4 /* type */
            aload 8 /* element */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 903
            aload 8 /* element */
            astore 9 /* nestedArray */
        start local 9 // java.lang.Object nestedArray
        14: .line 904
            goto 16
        end local 9 // java.lang.Object nestedArray
        15: .line 906
      StackMap locals:
      StackMap stack:
            aload 8 /* element */
            aload 4 /* type */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 9 /* nestedArray */
        start local 9 // java.lang.Object nestedArray
        16: .line 908
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* runtime */
            aload 5 /* newArray */
            iload 6 /* i */
            aload 9 /* nestedArray */
            invokestatic org.jruby.java.util.ArrayUtils.setWithExceptionHandlingDirect:(Lorg/jruby/Ruby;Ljava/lang/Object;ILjava/lang/Object;)V
        end local 9 // java.lang.Object nestedArray
        end local 8 // org.jruby.runtime.builtin.IRubyObject element
        end local 7 // java.lang.Class nestedType
        17: .line 894
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            aload 2 /* fromArray */
            invokevirtual org.jruby.RubyArray.size:()I
            if_icmplt 6
        end local 6 // int i
        19: .line 910
            goto 21
        20: .line 911
      StackMap locals:
      StackMap stack:
            aload 2 /* fromArray */
            aload 5 /* newArray */
            invokestatic org.jruby.java.util.ArrayUtils.copyDataToJavaArrayDirect:(Lorg/jruby/RubyArray;Ljava/lang/Object;)V
        21: .line 914
      StackMap locals:
      StackMap stack:
            aload 5 /* newArray */
            areturn
        end local 5 // java.lang.Object newArray
        end local 4 // java.lang.Class type
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.RubyArray fromArray
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0           this  Lorg/jruby/javasupport/JavaClass;
            0   22     1        context  Lorg/jruby/runtime/ThreadContext;
            0   22     2      fromArray  Lorg/jruby/RubyArray;
            1   22     3        runtime  Lorg/jruby/Ruby;
            2   22     4           type  Ljava/lang/Class<*>;
            3   22     5       newArray  Ljava/lang/Object;
            5   19     6              i  I
            7   17     7     nestedType  Ljava/lang/Class<*>;
            8   17     8        element  Lorg/jruby/runtime/builtin/IRubyObject;
           11   12     9    nestedArray  Ljava/lang/Object;
           14   15     9    nestedArray  Ljava/lang/Object;
           16   17     9    nestedArray  Ljava/lang/Object;
           10   11    10  componentType  Lorg/jruby/javasupport/JavaClass;
    MethodParameters:
           Name  Flags
      context    
      fromArray  

  public final java.lang.Object javaArrayFromRubyArrayDirect(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject fromArray
         0: .line 918
            aload 2 /* fromArray */
            instanceof org.jruby.RubyArray
            ifne 3
         1: .line 919
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         2: .line 920
            aload 3 /* runtime */
            aload 2 /* fromArray */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getArray:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // org.jruby.Ruby runtime
         3: .line 922
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* fromArray */
            checkcast org.jruby.RubyArray
            invokevirtual org.jruby.javasupport.JavaClass.javaArrayFromRubyArrayDirect:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyArray;)Ljava/lang/Object;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject fromArray
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/jruby/javasupport/JavaClass;
            0    4     1    context  Lorg/jruby/runtime/ThreadContext;
            0    4     2  fromArray  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     3    runtime  Lorg/jruby/Ruby;
    MethodParameters:
           Name  Flags
      context    
      fromArray  

  public org.jruby.RubyArray fields();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 927
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getFields:()[Ljava/lang/reflect/Field;
            invokestatic org.jruby.javasupport.JavaClass.buildFieldResults:(Lorg/jruby/Ruby;[Ljava/lang/reflect/Field;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyArray declared_fields();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 932
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            invokestatic org.jruby.javasupport.JavaClass.buildFieldResults:(Lorg/jruby/Ruby;[Ljava/lang/reflect/Field;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  private static org.jruby.RubyArray buildFieldResults(org.jruby.Ruby, java.lang.reflect.Field[]);
    descriptor: (Lorg/jruby/Ruby;[Ljava/lang/reflect/Field;)Lorg/jruby/RubyArray;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.reflect.Field[] fields
         0: .line 936
            aload 0 /* runtime */
            aload 1 /* fields */
            arraylength
            invokevirtual org.jruby.Ruby.newArray:(I)Lorg/jruby/RubyArray;
            astore 2 /* result */
        start local 2 // org.jruby.RubyArray result
         1: .line 937
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 938
      StackMap locals: org.jruby.RubyArray int
      StackMap stack:
            aload 2 /* result */
            new org.jruby.javasupport.JavaField
            dup
            aload 0 /* runtime */
            aload 1 /* fields */
            iload 3 /* i */
            aaload
            invokespecial org.jruby.javasupport.JavaField.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Field;)V
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
         4: .line 937
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 1 /* fields */
            arraylength
            if_icmplt 3
        end local 3 // int i
         6: .line 940
            aload 2 /* result */
            areturn
        end local 2 // org.jruby.RubyArray result
        end local 1 // java.lang.reflect.Field[] fields
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  runtime  Lorg/jruby/Ruby;
            0    7     1   fields  [Ljava/lang/reflect/Field;
            1    7     2   result  Lorg/jruby/RubyArray;
            2    6     3        i  I
    MethodParameters:
         Name  Flags
      runtime  final
      fields   

  public org.jruby.javasupport.JavaField field(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaField;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 945
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 3 /* javaClass */
        start local 3 // java.lang.Class javaClass
         1: .line 946
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         2: .line 947
            aload 2 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 5 /* stringName */
        start local 5 // java.lang.String stringName
         3: .line 950
            new org.jruby.javasupport.JavaField
            dup
            aload 4 /* runtime */
            aload 3 /* javaClass */
            aload 5 /* stringName */
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            invokespecial org.jruby.javasupport.JavaField.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Field;)V
         4: areturn
         5: .line 951
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.Class org.jruby.Ruby java.lang.String
      StackMap stack: java.lang.NoSuchFieldException
            pop
         6: .line 952
            aload 5 /* stringName */
            invokestatic org.jruby.javasupport.JavaUtil.getJavaCasedName:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* newName */
        start local 6 // java.lang.String newName
         7: .line 953
            aload 6 /* newName */
            ifnull 11
         8: .line 955
            new org.jruby.javasupport.JavaField
            dup
            aload 4 /* runtime */
            aload 3 /* javaClass */
            aload 6 /* newName */
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            invokespecial org.jruby.javasupport.JavaField.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Field;)V
         9: areturn
        10: .line 956
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.Class org.jruby.Ruby java.lang.String java.lang.String
      StackMap stack: java.lang.NoSuchFieldException
            pop
        11: .line 958
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 3 /* javaClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 5 /* stringName */
            invokestatic org.jruby.javasupport.JavaClass.undefinedFieldError:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // java.lang.String newName
        end local 5 // java.lang.String stringName
        end local 4 // org.jruby.Ruby runtime
        end local 3 // java.lang.Class javaClass
        end local 2 // org.jruby.runtime.builtin.IRubyObject name
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/jruby/javasupport/JavaClass;
            0   12     1     context  Lorg/jruby/runtime/ThreadContext;
            0   12     2        name  Lorg/jruby/runtime/builtin/IRubyObject;
            1   12     3   javaClass  Ljava/lang/Class<*>;
            2   12     4     runtime  Lorg/jruby/Ruby;
            3   12     5  stringName  Ljava/lang/String;
            7   12     6     newName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.NoSuchFieldException
           8     9      10  Class java.lang.NoSuchFieldException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
         Name  Flags
      context  
      name     

  public org.jruby.javasupport.JavaField declared_field(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaField;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 964
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 3 /* javaClass */
        start local 3 // java.lang.Class javaClass
         1: .line 965
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         2: .line 966
            aload 2 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 5 /* stringName */
        start local 5 // java.lang.String stringName
         3: .line 969
            new org.jruby.javasupport.JavaField
            dup
            aload 4 /* runtime */
            aload 3 /* javaClass */
            aload 5 /* stringName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            invokespecial org.jruby.javasupport.JavaField.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Field;)V
         4: areturn
         5: .line 970
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.Class org.jruby.Ruby java.lang.String
      StackMap stack: java.lang.NoSuchFieldException
            pop
         6: .line 971
            aload 5 /* stringName */
            invokestatic org.jruby.javasupport.JavaUtil.getJavaCasedName:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* newName */
        start local 6 // java.lang.String newName
         7: .line 972
            aload 6 /* newName */
            ifnull 11
         8: .line 974
            new org.jruby.javasupport.JavaField
            dup
            aload 4 /* runtime */
            aload 3 /* javaClass */
            aload 6 /* newName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            invokespecial org.jruby.javasupport.JavaField.<init>:(Lorg/jruby/Ruby;Ljava/lang/reflect/Field;)V
         9: areturn
        10: .line 975
      StackMap locals: org.jruby.javasupport.JavaClass org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.Class org.jruby.Ruby java.lang.String java.lang.String
      StackMap stack: java.lang.NoSuchFieldException
            pop
        11: .line 977
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 3 /* javaClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 5 /* stringName */
            invokestatic org.jruby.javasupport.JavaClass.undefinedFieldError:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // java.lang.String newName
        end local 5 // java.lang.String stringName
        end local 4 // org.jruby.Ruby runtime
        end local 3 // java.lang.Class javaClass
        end local 2 // org.jruby.runtime.builtin.IRubyObject name
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/jruby/javasupport/JavaClass;
            0   12     1     context  Lorg/jruby/runtime/ThreadContext;
            0   12     2        name  Lorg/jruby/runtime/builtin/IRubyObject;
            1   12     3   javaClass  Ljava/lang/Class<*>;
            2   12     4     runtime  Lorg/jruby/Ruby;
            3   12     5  stringName  Ljava/lang/String;
            7   12     6     newName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.NoSuchFieldException
           8     9      10  Class java.lang.NoSuchFieldException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
         Name  Flags
      context  
      name     

  public static org.jruby.exceptions.RaiseException undefinedFieldError(org.jruby.Ruby, java.lang.String, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String javaClassName
        start local 2 // java.lang.String name
         0: .line 982
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "undefined field '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' for class '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* javaClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* name */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 2 // java.lang.String name
        end local 1 // java.lang.String javaClassName
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0        runtime  Lorg/jruby/Ruby;
            0    1     1  javaClassName  Ljava/lang/String;
            0    1     2           name  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      runtime        
      javaClassName  
      name           

  public org.jruby.RubyArray interfaces();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 987
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.toRubyArray:(Lorg/jruby/Ruby;[Ljava/lang/Class;)Lorg/jruby/RubyArray;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.RubyBoolean primitive_p();
    descriptor: ()Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 992
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.isPrimitive:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"primitive?"})

  boolean isPrimitive();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 995
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isPrimitive:()Z
            ireturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaClass;

  public org.jruby.RubyBoolean assignable_from_p(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 999
            aload 1 /* other */
            instanceof org.jruby.javasupport.JavaClass
            ifne 2
         1: .line 1000
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "assignable_from requires JavaClass ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* other */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getType:()Lorg/jruby/RubyClass;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " given)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1003
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            checkcast org.jruby.javasupport.JavaClass
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            astore 2 /* otherClass */
        start local 2 // java.lang.Class otherClass
         3: .line 1004
            aload 0 /* this */
            aload 2 /* otherClass */
            invokevirtual org.jruby.javasupport.JavaClass.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            goto 5
      StackMap locals: java.lang.Class
      StackMap stack:
         4: aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
      StackMap locals:
      StackMap stack: org.jruby.RubyBoolean
         5: areturn
        end local 2 // java.lang.Class otherClass
        end local 1 // org.jruby.runtime.builtin.IRubyObject other
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/jruby/javasupport/JavaClass;
            0    6     1       other  Lorg/jruby/runtime/builtin/IRubyObject;
            3    6     2  otherClass  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"assignable_from?"}, required = 1)
    MethodParameters:
       Name  Flags
      other  

  public final boolean isAssignableFrom(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.javasupport.JavaClass this
        start local 1 // java.lang.Class clazz
         0: .line 1008
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aload 1 /* clazz */
            invokestatic org.jruby.javasupport.JavaClass.assignable:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/javasupport/JavaClass;
            0    1     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  final

  public static boolean assignable(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class target
        start local 1 // java.lang.Class from
         0: .line 1012
            aload 0 /* target */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 1
            aload 0 /* target */
            invokestatic org.jruby.util.CodegenUtils.getBoxType:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 0 /* target */
            goto 3
         1: .line 1013
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 2
            aload 0 /* target */
            aload 1 /* from */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 3
         2: .line 1014
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         3: .line 1016
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 4
            aload 1 /* from */
            invokestatic org.jruby.util.CodegenUtils.getBoxType:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 1 /* from */
         4: .line 1018
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            aload 1 /* from */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
            iconst_1
            ireturn
         5: .line 1020
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Number;
            aload 0 /* target */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 10
         6: .line 1021
            ldc Ljava/lang/Number;
            aload 1 /* from */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         7: .line 1022
            iconst_1
            ireturn
         8: .line 1024
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            ldc Ljava/lang/Character;
            if_acmpne 13
         9: .line 1025
            iconst_1
            ireturn
        10: .line 1028
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            ldc Ljava/lang/Character;
            if_acmpne 13
        11: .line 1029
            ldc Ljava/lang/Number;
            aload 1 /* from */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 13
        12: .line 1030
            iconst_1
            ireturn
        13: .line 1033
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Class from
        end local 0 // java.lang.Class target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0  target  Ljava/lang/Class<*>;
            0   14     1    from  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
    MethodParameters:
        Name  Flags
      target  
      from    

  public org.jruby.javasupport.JavaClass component_type();
    descriptor: ()Lorg/jruby/javasupport/JavaClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaClass this
         0: .line 1038
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifne 2
         1: .line 1039
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            ldc "not a java array-class"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            areturn
        end local 0 // org.jruby.javasupport.JavaClass this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/javasupport/JavaClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public static java.lang.reflect.Constructor[] getConstructors(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/reflect/Constructor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 1046
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
         1: areturn
         2: .line 1048
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
            iconst_0
            anewarray java.lang.reflect.Constructor
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  clazz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
    Signature: (Ljava/lang/Class<*>;)[Ljava/lang/reflect/Constructor;
    MethodParameters:
       Name  Flags
      clazz  final

  public static java.lang.Class<?>[] getDeclaredClasses(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 1053
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getDeclaredClasses:()[Ljava/lang/Class;
         1: areturn
         2: .line 1055
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
            iconst_0
            anewarray java.lang.Class
            areturn
         3: .line 1056
      StackMap locals:
      StackMap stack: java.lang.NoClassDefFoundError
            pop
         4: .line 1061
            iconst_0
            anewarray java.lang.Class
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  clazz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
           0     1       3  Class java.lang.NoClassDefFoundError
    Signature: (Ljava/lang/Class<*>;)[Ljava/lang/Class<*>;
    MethodParameters:
       Name  Flags
      clazz  final

  public static java.lang.reflect.Field[] getDeclaredFields(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/reflect/Field;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 1067
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
         1: areturn
         2: .line 1069
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         3: .line 1070
            aload 0 /* clazz */
            invokestatic org.jruby.javasupport.JavaClass.getFields:(Ljava/lang/Class;)[Ljava/lang/reflect/Field;
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  clazz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
    Signature: (Ljava/lang/Class<*>;)[Ljava/lang/reflect/Field;
    MethodParameters:
       Name  Flags
      clazz  final

  public static java.lang.reflect.Field[] getFields(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/reflect/Field;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 1076
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getFields:()[Ljava/lang/reflect/Field;
         1: areturn
         2: .line 1078
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
            iconst_0
            anewarray java.lang.reflect.Field
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  clazz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
    Signature: (Ljava/lang/Class<*>;)[Ljava/lang/reflect/Field;
    MethodParameters:
       Name  Flags
      clazz  final

  public org.jruby.runtime.builtin.IRubyObject inspect();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.jruby.javasupport.JavaClass.inspect:()Lorg/jruby/RubyString;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JavaClass.java"
InnerClasses:
  public abstract JavaConverter = org.jruby.javasupport.JavaUtil$JavaConverter of org.jruby.javasupport.JavaUtil
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyClass(name = {"Java::JavaClass"}, parent = "Java::JavaObject", include = {"Comparable"})