public class org.jruby.javasupport.Java implements org.jruby.runtime.load.Library
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.javasupport.Java
  super_class: java.lang.Object
{
  public static final boolean NEW_STYLE_EXTENSION;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final boolean OBJECT_PROXY_CACHE;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern CAMEL_CASE_PACKAGE_SPLITTER;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 102
            ldc Lorg/jruby/javasupport/Java;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.jruby.javasupport.Java.$assertionsDisabled:Z
         3: .line 103
            getstatic org.jruby.util.cli.Options.JI_NEWSTYLEEXTENSION:Lcom/headius/options/Option;
            invokevirtual com.headius.options.Option.load:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic org.jruby.javasupport.Java.NEW_STYLE_EXTENSION:Z
         4: .line 104
            getstatic org.jruby.util.cli.Options.JI_OBJECTPROXYCACHE:Lcom/headius/options/Option;
            invokevirtual com.headius.options.Option.load:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic org.jruby.javasupport.Java.OBJECT_PROXY_CACHE:Z
         5: .line 848
            ldc "([a-z0-9_]+)([A-Z])"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.jruby.javasupport.Java.CAMEL_CASE_PACKAGE_SPLITTER:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.Java this
         0: .line 102
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.javasupport.Java this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/Java;

  public void load(org.jruby.Ruby, boolean);
    descriptor: (Lorg/jruby/Ruby;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // org.jruby.javasupport.Java this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean wrap
         0: .line 108
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.Java.createJavaModule:(Lorg/jruby/Ruby;)Lorg/jruby/RubyModule;
            astore 3 /* Java */
        start local 3 // org.jruby.RubyModule Java
         1: .line 110
            aload 1 /* runtime */
            aload 3 /* Java */
            invokestatic org.jruby.javasupport.JavaPackage.createJavaPackageClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyModule;
            pop
         2: .line 112
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.Kernel.define:(Lorg/jruby/Ruby;)V
         3: .line 114
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.JavaLang.define:(Lorg/jruby/Ruby;)V
         4: .line 115
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.JavaLangReflect.define:(Lorg/jruby/Ruby;)V
         5: .line 116
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.JavaUtil.define:(Lorg/jruby/Ruby;)V
         6: .line 117
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.JavaUtilRegex.define:(Lorg/jruby/Ruby;)V
         7: .line 118
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.JavaIo.define:(Lorg/jruby/Ruby;)V
         8: .line 119
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.JavaNet.define:(Lorg/jruby/Ruby;)V
         9: .line 120
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.JavaMath.define:(Lorg/jruby/Ruby;)V
        10: .line 121
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.ext.JavaTime.define:(Lorg/jruby/Ruby;)V
        11: .line 124
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getLoadService:()Lorg/jruby/runtime/load/LoadService;
            ldc "jruby/java.rb"
            iconst_0
            invokevirtual org.jruby.runtime.load.LoadService.load:(Ljava/lang/String;Z)V
        12: .line 127
            aload 1 /* runtime */
            ldc "ArrayJavaProxy"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            astore 4 /* ArrayJavaProxy */
        start local 4 // org.jruby.RubyClass ArrayJavaProxy
        13: .line 128
            aload 4 /* ArrayJavaProxy */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getObjectJavaClass:()Lorg/jruby/javasupport/JavaClass;
            invokevirtual org.jruby.javasupport.JavaClass.getProxyClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.setSuperClass:(Lorg/jruby/RubyClass;)V
        14: .line 129
            aload 4 /* ArrayJavaProxy */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getEnumerable:()Lorg/jruby/RubyModule;
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        15: .line 131
            aload 1 /* runtime */
            invokestatic org.jruby.RubyClassPathVariable.createClassPathVariable:(Lorg/jruby/Ruby;)V
        16: .line 133
            aload 1 /* runtime */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClassFactory.createFactory:()Lorg/jruby/javasupport/proxy/JavaProxyClassFactory;
            invokevirtual org.jruby.Ruby.setJavaProxyClassFactory:(Lorg/jruby/javasupport/proxy/JavaProxyClassFactory;)V
        17: .line 136
            new org.jruby.java.util.SystemPropertiesMap
            dup
            invokespecial org.jruby.java.util.SystemPropertiesMap.<init>:()V
            astore 5 /* systemProperties */
        start local 5 // java.util.Map systemProperties
        18: .line 137
            aload 1 /* runtime */
            ldc Lorg/jruby/java/util/SystemPropertiesMap;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            checkcast org.jruby.RubyClass
            astore 6 /* proxyClass */
        start local 6 // org.jruby.RubyClass proxyClass
        19: .line 138
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            ldc "ENV_JAVA"
            new org.jruby.java.proxies.MapJavaProxy
            dup
            aload 1 /* runtime */
            aload 6 /* proxyClass */
            aload 5 /* systemProperties */
            invokespecial org.jruby.java.proxies.MapJavaProxy.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/util/Map;)V
            invokevirtual org.jruby.RubyClass.setConstantQuiet:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        20: .line 139
            return
        end local 6 // org.jruby.RubyClass proxyClass
        end local 5 // java.util.Map systemProperties
        end local 4 // org.jruby.RubyClass ArrayJavaProxy
        end local 3 // org.jruby.RubyModule Java
        end local 2 // boolean wrap
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.javasupport.Java this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lorg/jruby/javasupport/Java;
            0   21     1           runtime  Lorg/jruby/Ruby;
            0   21     2              wrap  Z
            1   21     3              Java  Lorg/jruby/RubyModule;
           13   21     4    ArrayJavaProxy  Lorg/jruby/RubyClass;
           18   21     5  systemProperties  Ljava/util/Map;
           19   21     6        proxyClass  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      wrap     

  public static org.jruby.RubyModule createJavaModule(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 143
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 1 /* context */
        start local 1 // org.jruby.runtime.ThreadContext context
         1: .line 145
            aload 0 /* runtime */
            ldc "Java"
            invokevirtual org.jruby.Ruby.defineModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 2 /* Java */
        start local 2 // org.jruby.RubyModule Java
         2: .line 147
            aload 2 /* Java */
            ldc Lorg/jruby/javasupport/Java;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
         3: .line 149
            aload 0 /* runtime */
            aload 2 /* Java */
            invokestatic org.jruby.javasupport.JavaObject.createJavaObjectClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
            astore 3 /* _JavaObject */
        start local 3 // org.jruby.RubyClass _JavaObject
         4: .line 150
            aload 0 /* runtime */
            aload 2 /* Java */
            aload 3 /* _JavaObject */
            invokestatic org.jruby.javasupport.JavaArray.createJavaArrayClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;Lorg/jruby/RubyClass;)Lorg/jruby/RubyClass;
            pop
         5: .line 151
            aload 0 /* runtime */
            aload 2 /* Java */
            aload 3 /* _JavaObject */
            invokestatic org.jruby.javasupport.JavaClass.createJavaClassClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;Lorg/jruby/RubyClass;)Lorg/jruby/RubyClass;
            pop
         6: .line 152
            aload 0 /* runtime */
            aload 2 /* Java */
            invokestatic org.jruby.javasupport.JavaMethod.createJavaMethodClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
            pop
         7: .line 153
            aload 0 /* runtime */
            aload 2 /* Java */
            invokestatic org.jruby.javasupport.JavaConstructor.createJavaConstructorClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
            pop
         8: .line 154
            aload 0 /* runtime */
            aload 2 /* Java */
            invokestatic org.jruby.javasupport.JavaField.createJavaFieldClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
            pop
         9: .line 157
            aload 1 /* context */
            invokestatic org.jruby.javasupport.JavaProxyMethods.createJavaProxyMethods:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyModule;
            pop
        10: .line 160
            aload 1 /* context */
            invokestatic org.jruby.java.proxies.JavaProxy.createJavaProxy:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyClass;
            pop
        11: .line 161
            aload 1 /* context */
            invokestatic org.jruby.java.proxies.ArrayJavaProxyCreator.createArrayJavaProxyCreator:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyClass;
            pop
        12: .line 162
            aload 1 /* context */
            invokestatic org.jruby.java.proxies.ConcreteJavaProxy.createConcreteJavaProxy:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyClass;
            pop
        13: .line 163
            aload 1 /* context */
            invokestatic org.jruby.java.proxies.InterfaceJavaProxy.createInterfaceJavaProxy:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyClass;
            pop
        14: .line 164
            aload 1 /* context */
            invokestatic org.jruby.java.proxies.ArrayJavaProxy.createArrayJavaProxy:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyClass;
            pop
        15: .line 167
            aload 0 /* runtime */
            invokestatic org.jruby.java.proxies.MapJavaProxy.createMapJavaProxy:(Lorg/jruby/Ruby;)Lorg/jruby/RubyClass;
            pop
        16: .line 170
            aload 0 /* runtime */
            aload 2 /* Java */
            invokestatic org.jruby.javasupport.proxy.JavaProxyClass.createJavaProxyClasses:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)V
        17: .line 173
            aload 1 /* context */
            invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.createJavaInterfaceTemplateModule:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyModule;
            pop
        18: .line 175
            aload 0 /* runtime */
            ldc "JavaUtilities"
            invokevirtual org.jruby.Ruby.defineModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            ldc Lorg/jruby/javasupport/JavaUtilities;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
        19: .line 177
            aload 0 /* runtime */
            invokestatic org.jruby.javasupport.JavaArrayUtilities.createJavaArrayUtilitiesModule:(Lorg/jruby/Ruby;)Lorg/jruby/RubyModule;
            pop
        20: .line 180
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getArray:()Lorg/jruby/RubyClass;
            ldc Lorg/jruby/java/addons/ArrayJavaAddons;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        21: .line 181
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getKernel:()Lorg/jruby/RubyModule;
            ldc Lorg/jruby/java/addons/KernelJavaAddons;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
        22: .line 182
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getString:()Lorg/jruby/RubyClass;
            ldc Lorg/jruby/java/addons/StringJavaAddons;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        23: .line 183
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            ldc Lorg/jruby/java/addons/IOJavaAddons;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        24: .line 184
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getClassClass:()Lorg/jruby/RubyClass;
            ldc Lorg/jruby/java/addons/ClassJavaAddons;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        25: .line 186
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            ldc "StringIO"
            invokevirtual org.jruby.RubyClass.isConstantDefined:(Ljava/lang/String;)Z
            ifeq 27
        26: .line 187
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            ldc "StringIO"
            invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyClass
            ldc Lorg/jruby/java/addons/IOJavaAddons$AnyIO;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        27: .line 191
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule org.jruby.RubyClass
      StackMap stack:
            aload 0 /* runtime */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getNameClassMap:()Ljava/util/Map;
            invokestatic org.jruby.javasupport.Java.addNameClassMappings:(Lorg/jruby/Ruby;Ljava/util/Map;)V
        28: .line 194
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 0 /* runtime */
            ldc Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokevirtual org.jruby.javasupport.JavaSupport.setObjectJavaClass:(Lorg/jruby/javasupport/JavaClass;)V
        29: .line 196
            aload 2 /* Java */
            areturn
        end local 3 // org.jruby.RubyClass _JavaObject
        end local 2 // org.jruby.RubyModule Java
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0      runtime  Lorg/jruby/Ruby;
            1   30     1      context  Lorg/jruby/runtime/ThreadContext;
            2   30     2         Java  Lorg/jruby/RubyModule;
            4   30     3  _JavaObject  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  final

  private static void addNameClassMappings(org.jruby.Ruby, java.util.Map<java.lang.String, org.jruby.javasupport.JavaClass>);
    descriptor: (Lorg/jruby/Ruby;Ljava/util/Map;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=14, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.util.Map nameClassMap
         0: .line 235
            aload 0 /* runtime */
            ldc Ljava/lang/Boolean;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 2 /* booleanClass */
        start local 2 // org.jruby.javasupport.JavaClass booleanClass
         1: .line 236
            aload 1 /* nameClassMap */
            ldc "boolean"
            aload 0 /* runtime */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 237
            aload 1 /* nameClassMap */
            ldc "Boolean"
            aload 2 /* booleanClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 238
            aload 1 /* nameClassMap */
            ldc "java.lang.Boolean"
            aload 2 /* booleanClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 240
            aload 0 /* runtime */
            ldc Ljava/lang/Byte;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 3 /* byteClass */
        start local 3 // org.jruby.javasupport.JavaClass byteClass
         5: .line 241
            aload 1 /* nameClassMap */
            ldc "byte"
            aload 0 /* runtime */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 242
            aload 1 /* nameClassMap */
            ldc "Byte"
            aload 3 /* byteClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 243
            aload 1 /* nameClassMap */
            ldc "java.lang.Byte"
            aload 3 /* byteClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 245
            aload 0 /* runtime */
            ldc Ljava/lang/Short;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 4 /* shortClass */
        start local 4 // org.jruby.javasupport.JavaClass shortClass
         9: .line 246
            aload 1 /* nameClassMap */
            ldc "short"
            aload 0 /* runtime */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 247
            aload 1 /* nameClassMap */
            ldc "Short"
            aload 4 /* shortClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 248
            aload 1 /* nameClassMap */
            ldc "java.lang.Short"
            aload 4 /* shortClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 250
            aload 0 /* runtime */
            ldc Ljava/lang/Character;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 5 /* charClass */
        start local 5 // org.jruby.javasupport.JavaClass charClass
        13: .line 251
            aload 1 /* nameClassMap */
            ldc "char"
            aload 0 /* runtime */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 252
            aload 1 /* nameClassMap */
            ldc "Character"
            aload 5 /* charClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 253
            aload 1 /* nameClassMap */
            ldc "Char"
            aload 5 /* charClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 254
            aload 1 /* nameClassMap */
            ldc "java.lang.Character"
            aload 5 /* charClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 256
            aload 0 /* runtime */
            ldc Ljava/lang/Integer;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 6 /* intClass */
        start local 6 // org.jruby.javasupport.JavaClass intClass
        18: .line 257
            aload 1 /* nameClassMap */
            ldc "int"
            aload 0 /* runtime */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 258
            aload 1 /* nameClassMap */
            ldc "Integer"
            aload 6 /* intClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 259
            aload 1 /* nameClassMap */
            ldc "Int"
            aload 6 /* intClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 260
            aload 1 /* nameClassMap */
            ldc "java.lang.Integer"
            aload 6 /* intClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 262
            aload 0 /* runtime */
            ldc Ljava/lang/Long;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 7 /* longClass */
        start local 7 // org.jruby.javasupport.JavaClass longClass
        23: .line 263
            aload 1 /* nameClassMap */
            ldc "long"
            aload 0 /* runtime */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 264
            aload 1 /* nameClassMap */
            ldc "Long"
            aload 7 /* longClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 265
            aload 1 /* nameClassMap */
            ldc "java.lang.Long"
            aload 7 /* longClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 267
            aload 0 /* runtime */
            ldc Ljava/lang/Float;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 8 /* floatClass */
        start local 8 // org.jruby.javasupport.JavaClass floatClass
        27: .line 268
            aload 1 /* nameClassMap */
            ldc "float"
            aload 0 /* runtime */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 269
            aload 1 /* nameClassMap */
            ldc "Float"
            aload 8 /* floatClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 270
            aload 1 /* nameClassMap */
            ldc "java.lang.Float"
            aload 8 /* floatClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 272
            aload 0 /* runtime */
            ldc Ljava/lang/Double;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 9 /* doubleClass */
        start local 9 // org.jruby.javasupport.JavaClass doubleClass
        31: .line 273
            aload 1 /* nameClassMap */
            ldc "double"
            aload 0 /* runtime */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        32: .line 274
            aload 1 /* nameClassMap */
            ldc "Double"
            aload 9 /* doubleClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 275
            aload 1 /* nameClassMap */
            ldc "java.lang.Double"
            aload 9 /* doubleClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        34: .line 277
            aload 0 /* runtime */
            ldc Ljava/math/BigInteger;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 10 /* bigintClass */
        start local 10 // org.jruby.javasupport.JavaClass bigintClass
        35: .line 278
            aload 1 /* nameClassMap */
            ldc "big_int"
            aload 10 /* bigintClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 279
            aload 1 /* nameClassMap */
            ldc "big_integer"
            aload 10 /* bigintClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        37: .line 280
            aload 1 /* nameClassMap */
            ldc "BigInteger"
            aload 10 /* bigintClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 281
            aload 1 /* nameClassMap */
            ldc "java.math.BigInteger"
            aload 10 /* bigintClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 283
            aload 0 /* runtime */
            ldc Ljava/math/BigDecimal;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 11 /* bigdecimalClass */
        start local 11 // org.jruby.javasupport.JavaClass bigdecimalClass
        40: .line 284
            aload 1 /* nameClassMap */
            ldc "big_decimal"
            aload 11 /* bigdecimalClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        41: .line 285
            aload 1 /* nameClassMap */
            ldc "BigDecimal"
            aload 11 /* bigdecimalClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 286
            aload 1 /* nameClassMap */
            ldc "java.math.BigDecimal"
            aload 11 /* bigdecimalClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 288
            aload 0 /* runtime */
            ldc Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 12 /* objectClass */
        start local 12 // org.jruby.javasupport.JavaClass objectClass
        44: .line 289
            aload 1 /* nameClassMap */
            ldc "object"
            aload 12 /* objectClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        45: .line 290
            aload 1 /* nameClassMap */
            ldc "Object"
            aload 12 /* objectClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        46: .line 291
            aload 1 /* nameClassMap */
            ldc "java.lang.Object"
            aload 12 /* objectClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        47: .line 293
            aload 0 /* runtime */
            ldc Ljava/lang/String;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            astore 13 /* stringClass */
        start local 13 // org.jruby.javasupport.JavaClass stringClass
        48: .line 294
            aload 1 /* nameClassMap */
            ldc "string"
            aload 13 /* stringClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        49: .line 295
            aload 1 /* nameClassMap */
            ldc "String"
            aload 13 /* stringClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        50: .line 296
            aload 1 /* nameClassMap */
            ldc "java.lang.String"
            aload 13 /* stringClass */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        51: .line 298
            aload 1 /* nameClassMap */
            ldc "void"
            aload 0 /* runtime */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        52: .line 299
            aload 1 /* nameClassMap */
            ldc "Void"
            aload 0 /* runtime */
            ldc Ljava/lang/Void;
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        53: .line 300
            return
        end local 13 // org.jruby.javasupport.JavaClass stringClass
        end local 12 // org.jruby.javasupport.JavaClass objectClass
        end local 11 // org.jruby.javasupport.JavaClass bigdecimalClass
        end local 10 // org.jruby.javasupport.JavaClass bigintClass
        end local 9 // org.jruby.javasupport.JavaClass doubleClass
        end local 8 // org.jruby.javasupport.JavaClass floatClass
        end local 7 // org.jruby.javasupport.JavaClass longClass
        end local 6 // org.jruby.javasupport.JavaClass intClass
        end local 5 // org.jruby.javasupport.JavaClass charClass
        end local 4 // org.jruby.javasupport.JavaClass shortClass
        end local 3 // org.jruby.javasupport.JavaClass byteClass
        end local 2 // org.jruby.javasupport.JavaClass booleanClass
        end local 1 // java.util.Map nameClassMap
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   54     0          runtime  Lorg/jruby/Ruby;
            0   54     1     nameClassMap  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/JavaClass;>;
            1   54     2     booleanClass  Lorg/jruby/javasupport/JavaClass;
            5   54     3        byteClass  Lorg/jruby/javasupport/JavaClass;
            9   54     4       shortClass  Lorg/jruby/javasupport/JavaClass;
           13   54     5        charClass  Lorg/jruby/javasupport/JavaClass;
           18   54     6         intClass  Lorg/jruby/javasupport/JavaClass;
           23   54     7        longClass  Lorg/jruby/javasupport/JavaClass;
           27   54     8       floatClass  Lorg/jruby/javasupport/JavaClass;
           31   54     9      doubleClass  Lorg/jruby/javasupport/JavaClass;
           35   54    10      bigintClass  Lorg/jruby/javasupport/JavaClass;
           40   54    11  bigdecimalClass  Lorg/jruby/javasupport/JavaClass;
           44   54    12      objectClass  Lorg/jruby/javasupport/JavaClass;
           48   54    13      stringClass  Lorg/jruby/javasupport/JavaClass;
    Signature: (Lorg/jruby/Ruby;Ljava/util/Map<Ljava/lang/String;Lorg/jruby/javasupport/JavaClass;>;)V
    MethodParameters:
              Name  Flags
      runtime       final
      nameClassMap  final

  public static org.jruby.runtime.builtin.IRubyObject create_proxy_class(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.jruby.runtime.builtin.IRubyObject self
        start local 1 // org.jruby.runtime.builtin.IRubyObject name
        start local 2 // org.jruby.runtime.builtin.IRubyObject javaClass
        start local 3 // org.jruby.runtime.builtin.IRubyObject module
         0: .line 307
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 309
            aload 3 /* module */
            instanceof org.jruby.RubyModule
            ifne 3
         2: .line 310
            aload 4 /* runtime */
            aload 3 /* module */
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getModule:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 313
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* self */
            aload 2 /* javaClass */
            invokestatic org.jruby.javasupport.Java.get_proxy_class:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
            astore 5 /* proxyClass */
        start local 5 // org.jruby.RubyModule proxyClass
         4: .line 314
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 6 /* constName */
        start local 6 // java.lang.String constName
         5: .line 315
            aload 3 /* module */
            checkcast org.jruby.RubyModule
            aload 6 /* constName */
            invokevirtual org.jruby.RubyModule.getConstantNoConstMissing:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* existing */
        start local 7 // org.jruby.runtime.builtin.IRubyObject existing
         6: .line 317
            aload 7 /* existing */
            ifnull 8
            aload 7 /* existing */
            getstatic org.jruby.RubyBasicObject.UNDEF:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 8
            aload 7 /* existing */
            aload 5 /* proxyClass */
            if_acmpeq 8
         7: .line 318
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            new java.lang.StringBuilder
            dup
            ldc "replacing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* existing */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " with "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* proxyClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " in constant '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* constName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " on class/module "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* module */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
         8: .line 321
      StackMap locals: org.jruby.RubyModule java.lang.String org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* module */
            checkcast org.jruby.RubyModule
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            aload 5 /* proxyClass */
            invokevirtual org.jruby.RubyModule.setConstantQuiet:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         9: .line 322
            aload 5 /* proxyClass */
            areturn
        end local 7 // org.jruby.runtime.builtin.IRubyObject existing
        end local 6 // java.lang.String constName
        end local 5 // org.jruby.RubyModule proxyClass
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject module
        end local 2 // org.jruby.runtime.builtin.IRubyObject javaClass
        end local 1 // org.jruby.runtime.builtin.IRubyObject name
        end local 0 // org.jruby.runtime.builtin.IRubyObject self
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     1        name  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     2   javaClass  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     3      module  Lorg/jruby/runtime/builtin/IRubyObject;
            1   10     4     runtime  Lorg/jruby/Ruby;
            4   10     5  proxyClass  Lorg/jruby/RubyModule;
            5   10     6   constName  Ljava/lang/String;
            6   10     7    existing  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
           Name  Flags
      self       
      name       
      javaClass  
      module     

  public static org.jruby.runtime.builtin.IRubyObject get_java_class(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)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.builtin.IRubyObject self
        start local 1 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 327
            aload 0 /* self */
            aload 1 /* name */
            invokestatic org.jruby.javasupport.JavaClass.for_name:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
         1: areturn
         2: .line 329
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         3: .line 330
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 2 /* e */
            aconst_null
            invokevirtual org.jruby.javasupport.JavaSupport.handleNativeException:(Ljava/lang/Throwable;Ljava/lang/reflect/Member;)V
         4: .line 331
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // java.lang.Exception e
        end local 1 // org.jruby.runtime.builtin.IRubyObject name
        end local 0 // org.jruby.runtime.builtin.IRubyObject self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     1  name  Lorg/jruby/runtime/builtin/IRubyObject;
            3    5     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      self  final
      name  final

  public static org.jruby.runtime.builtin.IRubyObject getInstance(org.jruby.Ruby, java.lang.Object);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Object rawJavaObject
         0: .line 339
            aload 0 /* runtime */
            aload 1 /* rawJavaObject */
            iconst_0
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // java.lang.Object rawJavaObject
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0        runtime  Lorg/jruby/Ruby;
            0    1     1  rawJavaObject  Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      runtime        
      rawJavaObject  

  public static org.jruby.runtime.builtin.IRubyObject getInstance(org.jruby.Ruby, java.lang.Object, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Object;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Object rawJavaObject
        start local 2 // boolean forceCache
         0: .line 356
            aload 1 /* rawJavaObject */
            ifnull 5
         1: .line 357
            aload 0 /* runtime */
            aload 1 /* rawJavaObject */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            checkcast org.jruby.RubyClass
            astore 3 /* proxyClass */
        start local 3 // org.jruby.RubyClass proxyClass
         2: .line 359
            getstatic org.jruby.javasupport.Java.OBJECT_PROXY_CACHE:Z
            ifne 3
            iload 2 /* forceCache */
            ifne 3
            aload 3 /* proxyClass */
            invokevirtual org.jruby.RubyClass.getCacheProxy:()Z
            ifeq 4
         3: .line 360
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getObjectProxyCache:()Lorg/jruby/javasupport/util/ObjectProxyCache;
            aload 1 /* rawJavaObject */
            aload 3 /* proxyClass */
            invokevirtual org.jruby.javasupport.util.ObjectProxyCache.getOrCreate:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
            areturn
         4: .line 362
      StackMap locals:
      StackMap stack:
            aload 1 /* rawJavaObject */
            aload 3 /* proxyClass */
            invokestatic org.jruby.javasupport.Java.allocateProxy:(Ljava/lang/Object;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyClass proxyClass
         5: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // boolean forceCache
        end local 1 // java.lang.Object rawJavaObject
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0        runtime  Lorg/jruby/Ruby;
            0    6     1  rawJavaObject  Ljava/lang/Object;
            0    6     2     forceCache  Z
            2    5     3     proxyClass  Lorg/jruby/RubyClass;
    MethodParameters:
               Name  Flags
      runtime        
      rawJavaObject  
      forceCache     

  public static org.jruby.RubyModule getInterfaceModule(org.jruby.Ruby, org.jruby.javasupport.JavaClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaClass;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.javasupport.JavaClass javaClass
         0: .line 368
            aload 0 /* runtime */
            aload 1 /* javaClass */
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.Java.getInterfaceModule:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            areturn
        end local 1 // org.jruby.javasupport.JavaClass javaClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0    runtime  Lorg/jruby/Ruby;
            0    1     1  javaClass  Lorg/jruby/javasupport/JavaClass;
    MethodParameters:
           Name  Flags
      runtime    final
      javaClass  final

  public static org.jruby.RubyModule getInterfaceModule(org.jruby.Ruby, java.lang.Class);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
    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 javaClass
         0: .line 372
            aload 0 /* runtime */
            aload 1 /* javaClass */
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            areturn
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0    runtime  Lorg/jruby/Ruby;
            0    1     1  javaClass  Ljava/lang/Class;
    MethodParameters:
           Name  Flags
      runtime    final
      javaClass  final

  public static org.jruby.RubyModule get_interface_module(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject javaClassObject
         0: .line 377
            aload 1 /* javaClassObject */
            instanceof org.jruby.RubyString
            ifeq 3
         1: .line 378
            aload 0 /* runtime */
            aload 1 /* javaClassObject */
            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 2 /* javaClass */
        start local 2 // org.jruby.javasupport.JavaClass javaClass
         2: .line 379
            goto 11
        end local 2 // org.jruby.javasupport.JavaClass javaClass
         3: .line 380
      StackMap locals:
      StackMap stack:
            aload 1 /* javaClassObject */
            instanceof org.jruby.javasupport.JavaClass
            ifeq 6
         4: .line 381
            aload 1 /* javaClassObject */
            checkcast org.jruby.javasupport.JavaClass
            astore 2 /* javaClass */
        start local 2 // org.jruby.javasupport.JavaClass javaClass
         5: .line 382
            goto 11
        end local 2 // org.jruby.javasupport.JavaClass javaClass
         6: .line 383
      StackMap locals:
      StackMap stack:
            aload 1 /* javaClassObject */
            invokestatic org.jruby.javasupport.Java.unwrapJavaString:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
            dup
            astore 3 /* javaName */
        start local 3 // java.lang.String javaName
         7: ifnull 10
         8: .line 384
            aload 0 /* runtime */
            aload 3 /* javaName */
            invokestatic org.jruby.javasupport.JavaClass.forNameVerbose:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
            astore 2 /* javaClass */
        start local 2 // org.jruby.javasupport.JavaClass javaClass
         9: .line 385
            goto 11
        end local 2 // org.jruby.javasupport.JavaClass javaClass
        10: .line 387
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject top java.lang.String
      StackMap stack:
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "expected JavaClass, got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* javaClassObject */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.String javaName
        start local 2 // org.jruby.javasupport.JavaClass javaClass
        11: .line 389
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.javasupport.JavaClass
      StackMap stack:
            aload 0 /* runtime */
            aload 2 /* javaClass */
            invokestatic org.jruby.javasupport.Java.getInterfaceModule:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaClass;)Lorg/jruby/RubyModule;
            areturn
        end local 2 // org.jruby.javasupport.JavaClass javaClass
        end local 1 // org.jruby.runtime.builtin.IRubyObject javaClassObject
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0          runtime  Lorg/jruby/Ruby;
            0   12     1  javaClassObject  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     2        javaClass  Lorg/jruby/javasupport/JavaClass;
            5    6     2        javaClass  Lorg/jruby/javasupport/JavaClass;
            9   10     2        javaClass  Lorg/jruby/javasupport/JavaClass;
           11   12     2        javaClass  Lorg/jruby/javasupport/JavaClass;
            7   11     3         javaName  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      runtime          final
      javaClassObject  

  public static org.jruby.RubyModule get_proxy_class(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject self
        start local 1 // org.jruby.runtime.builtin.IRubyObject java_class
         0: .line 393
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 395
            aload 1 /* java_class */
            instanceof org.jruby.RubyString
            ifeq 4
         2: .line 396
            aload 0 /* self */
            aload 1 /* java_class */
            invokestatic org.jruby.javasupport.JavaClass.for_name:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
            astore 3 /* javaClass */
        start local 3 // org.jruby.javasupport.JavaClass javaClass
         3: .line 397
            goto 12
        end local 3 // org.jruby.javasupport.JavaClass javaClass
         4: .line 398
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* java_class */
            instanceof org.jruby.javasupport.JavaClass
            ifeq 7
         5: .line 399
            aload 1 /* java_class */
            checkcast org.jruby.javasupport.JavaClass
            astore 3 /* javaClass */
        start local 3 // org.jruby.javasupport.JavaClass javaClass
         6: .line 400
            goto 12
        end local 3 // org.jruby.javasupport.JavaClass javaClass
         7: .line 401
      StackMap locals:
      StackMap stack:
            aload 1 /* java_class */
            invokestatic org.jruby.javasupport.Java.unwrapJavaString:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
            dup
            astore 4 /* javaName */
        start local 4 // java.lang.String javaName
         8: ifnull 11
         9: .line 402
            aload 0 /* self */
            aload 4 /* javaName */
            invokestatic org.jruby.javasupport.JavaClass.for_name:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
            astore 3 /* javaClass */
        start local 3 // org.jruby.javasupport.JavaClass javaClass
        10: .line 403
            goto 12
        end local 3 // org.jruby.javasupport.JavaClass javaClass
        11: .line 405
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top java.lang.String
      StackMap stack:
            aload 2 /* runtime */
            aload 1 /* java_class */
            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
        end local 4 // java.lang.String javaName
        start local 3 // org.jruby.javasupport.JavaClass javaClass
        12: .line 407
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.javasupport.JavaClass
      StackMap stack:
            aload 2 /* runtime */
            aload 3 /* javaClass */
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaClass;)Lorg/jruby/RubyModule;
            areturn
        end local 3 // org.jruby.javasupport.JavaClass javaClass
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject java_class
        end local 0 // org.jruby.runtime.builtin.IRubyObject self
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   13     1  java_class  Lorg/jruby/runtime/builtin/IRubyObject;
            1   13     2     runtime  Lorg/jruby/Ruby;
            3    4     3   javaClass  Lorg/jruby/javasupport/JavaClass;
            6    7     3   javaClass  Lorg/jruby/javasupport/JavaClass;
           10   11     3   javaClass  Lorg/jruby/javasupport/JavaClass;
           12   13     3   javaClass  Lorg/jruby/javasupport/JavaClass;
            8   12     4    javaName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      self        final
      java_class  final

  private static java.lang.String unwrapJavaString(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 411
            aload 0 /* arg */
            instanceof org.jruby.java.proxies.JavaProxy
            ifeq 5
         1: .line 412
            aload 0 /* arg */
            checkcast org.jruby.java.proxies.JavaProxy
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            astore 1 /* str */
        start local 1 // java.lang.Object str
         2: .line 413
            aload 1 /* str */
            instanceof java.lang.String
            ifeq 3
            aload 1 /* str */
            checkcast java.lang.String
            goto 4
      StackMap locals: java.lang.Object
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         4: areturn
        end local 1 // java.lang.Object str
         5: .line 415
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.jruby.runtime.builtin.IRubyObject arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   arg  Lorg/jruby/runtime/builtin/IRubyObject;
            2    5     1   str  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      arg   

  public static org.jruby.RubyClass getProxyClassForObject(org.jruby.Ruby, java.lang.Object);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/RubyClass;
    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.Object object
         0: .line 419
            aload 0 /* runtime */
            aload 1 /* object */
            invokevirtual java.lang.Object.getClass:()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 1 // java.lang.Object object
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1   object  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      runtime  
      object   

  public static org.jruby.RubyModule getProxyClass(org.jruby.Ruby, org.jruby.javasupport.JavaClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaClass;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.javasupport.JavaClass javaClass
         0: .line 423
            aload 0 /* runtime */
            aload 1 /* javaClass */
            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 1 // org.jruby.javasupport.JavaClass javaClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0    runtime  Lorg/jruby/Ruby;
            0    1     1  javaClass  Lorg/jruby/javasupport/JavaClass;
    MethodParameters:
           Name  Flags
      runtime    
      javaClass  

  public static org.jruby.RubyModule getProxyClass(org.jruby.Ruby, java.lang.Class<?>);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class clazz
         0: .line 428
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 1 /* clazz */
            invokevirtual org.jruby.javasupport.JavaSupport.getUnfinishedProxy:(Ljava/lang/Class;)Lorg/jruby/RubyModule;
            astore 2 /* proxy */
        start local 2 // org.jruby.RubyModule proxy
         1: .line 429
            aload 2 /* proxy */
            ifnull 2
            aload 2 /* proxy */
            areturn
         2: .line 430
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 1 /* clazz */
            invokevirtual org.jruby.javasupport.JavaSupport.getProxyClassFromCache:(Ljava/lang/Class;)Lorg/jruby/RubyModule;
            areturn
        end local 2 // org.jruby.RubyModule proxy
        end local 1 // java.lang.Class clazz
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1    clazz  Ljava/lang/Class<*>;
            1    3     2    proxy  Lorg/jruby/RubyModule;
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class<*>;)Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  final
      clazz    final

  static org.jruby.RubyModule createProxyClassForClass(org.jruby.Ruby, java.lang.Class<?>);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class clazz
         0: .line 436
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            astore 2 /* javaSupport */
        start local 2 // org.jruby.javasupport.JavaSupport javaSupport
         1: .line 439
            aconst_null
            astore 4 /* superClass */
        start local 4 // org.jruby.RubyClass superClass
         2: .line 440
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 5
         3: .line 441
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaInterfaceTemplate:()Lorg/jruby/RubyModule;
            invokevirtual org.jruby.RubyModule.dup:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyModule
            astore 3 /* proxy */
        start local 3 // org.jruby.RubyModule proxy
         4: .line 442
            goto 16
        end local 3 // org.jruby.RubyModule proxy
         5: .line 443
      StackMap locals: org.jruby.Ruby java.lang.Class org.jruby.javasupport.JavaSupport top org.jruby.RubyClass
      StackMap stack:
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 8
         6: .line 444
            aload 2 /* javaSupport */
            invokevirtual org.jruby.javasupport.JavaSupport.getArrayProxyClass:()Lorg/jruby/RubyClass;
            astore 4 /* superClass */
         7: .line 445
            goto 15
      StackMap locals:
      StackMap stack:
         8: aload 1 /* clazz */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 11
         9: .line 446
            aload 2 /* javaSupport */
            invokevirtual org.jruby.javasupport.JavaSupport.getConcreteProxyClass:()Lorg/jruby/RubyClass;
            astore 4 /* superClass */
        10: .line 448
            goto 15
      StackMap locals:
      StackMap stack:
        11: aload 1 /* clazz */
            ldc Ljava/lang/Object;
            if_acmpne 14
        12: .line 449
            aload 2 /* javaSupport */
            invokevirtual org.jruby.javasupport.JavaSupport.getConcreteProxyClass:()Lorg/jruby/RubyClass;
            astore 4 /* superClass */
        13: .line 450
            goto 15
        14: .line 452
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            checkcast org.jruby.RubyClass
            astore 4 /* superClass */
        15: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 4 /* superClass */
            invokestatic org.jruby.RubyClass.newClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/RubyClass;
            astore 3 /* proxy */
        start local 3 // org.jruby.RubyModule proxy
        16: .line 458
      StackMap locals: org.jruby.Ruby java.lang.Class org.jruby.javasupport.JavaSupport org.jruby.RubyModule org.jruby.RubyClass
      StackMap stack:
            aload 2 /* javaSupport */
            aload 1 /* clazz */
            aload 3 /* proxy */
            invokevirtual org.jruby.javasupport.JavaSupport.beginProxy:(Ljava/lang/Class;Lorg/jruby/RubyModule;)V
        17: .line 460
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 20
        18: .line 461
            aload 0 /* runtime */
            aload 1 /* clazz */
            aload 3 /* proxy */
            invokestatic org.jruby.javasupport.Java.generateInterfaceProxy:(Lorg/jruby/Ruby;Ljava/lang/Class;Lorg/jruby/RubyModule;)V
        19: .line 462
            goto 25
        20: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* clazz */
            aload 3 /* proxy */
            checkcast org.jruby.RubyClass
            aload 4 /* superClass */
            invokestatic org.jruby.javasupport.Java.generateClassProxy:(Lorg/jruby/Ruby;Ljava/lang/Class;Lorg/jruby/RubyClass;Lorg/jruby/RubyClass;)V
        21: .line 465
            goto 25
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 5
        23: .line 466
            aload 2 /* javaSupport */
            aload 1 /* clazz */
            invokevirtual org.jruby.javasupport.JavaSupport.endProxy:(Ljava/lang/Class;)V
        24: .line 467
            aload 5
            athrow
        25: .line 466
      StackMap locals:
      StackMap stack:
            aload 2 /* javaSupport */
            aload 1 /* clazz */
            invokevirtual org.jruby.javasupport.JavaSupport.endProxy:(Ljava/lang/Class;)V
        26: .line 469
            aload 3 /* proxy */
            areturn
        end local 4 // org.jruby.RubyClass superClass
        end local 3 // org.jruby.RubyModule proxy
        end local 2 // org.jruby.javasupport.JavaSupport javaSupport
        end local 1 // java.lang.Class clazz
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0      runtime  Lorg/jruby/Ruby;
            0   27     1        clazz  Ljava/lang/Class<*>;
            1   27     2  javaSupport  Lorg/jruby/javasupport/JavaSupport;
            4    5     3        proxy  Lorg/jruby/RubyModule;
           16   27     3        proxy  Lorg/jruby/RubyModule;
            2   27     4   superClass  Lorg/jruby/RubyClass;
      Exception table:
        from    to  target  type
          17    22      22  any
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class<*>;)Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  final
      clazz    final

  private static void generateInterfaceProxy(org.jruby.Ruby, java.lang.Class, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;Lorg/jruby/RubyModule;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class javaClass
        start local 2 // org.jruby.RubyModule proxy
         0: .line 473
            getstatic org.jruby.javasupport.Java.$assertionsDisabled:Z
            ifne 1
            aload 1 /* javaClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 476
      StackMap locals:
      StackMap stack:
            aload 1 /* javaClass */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 3 /* extended */
        start local 3 // java.lang.Class[] extended
         2: .line 477
            aload 3 /* extended */
            arraylength
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 478
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 0 /* runtime */
            aload 3 /* extended */
            iload 4 /* i */
            aaload
            invokestatic org.jruby.javasupport.Java.getInterfaceModule:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            astore 5 /* extModule */
        start local 5 // org.jruby.RubyModule extModule
         5: .line 479
            aload 2 /* proxy */
            aload 5 /* extModule */
            invokevirtual org.jruby.RubyModule.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        end local 5 // org.jruby.RubyModule extModule
         6: .line 477
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
            iload 4 /* i */
            ifge 4
        end local 4 // int i
         7: .line 481
            aload 0 /* runtime */
            aload 1 /* javaClass */
            aload 2 /* proxy */
            invokestatic org.jruby.javasupport.binding.Initializer.setupProxyModule:(Lorg/jruby/Ruby;Ljava/lang/Class;Lorg/jruby/RubyModule;)Lorg/jruby/RubyModule;
            pop
         8: .line 482
            aload 2 /* proxy */
            invokestatic org.jruby.javasupport.Java.addToJavaPackageModule:(Lorg/jruby/RubyModule;)V
         9: .line 483
            return
        end local 3 // java.lang.Class[] extended
        end local 2 // org.jruby.RubyModule proxy
        end local 1 // java.lang.Class javaClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0    runtime  Lorg/jruby/Ruby;
            0   10     1  javaClass  Ljava/lang/Class;
            0   10     2      proxy  Lorg/jruby/RubyModule;
            2   10     3   extended  [Ljava/lang/Class;
            3    7     4          i  I
            5    6     5  extModule  Lorg/jruby/RubyModule;
    MethodParameters:
           Name  Flags
      runtime    final
      javaClass  final
      proxy      final

  private static void generateClassProxy(org.jruby.Ruby, java.lang.Class<?>, org.jruby.RubyClass, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;Lorg/jruby/RubyClass;Lorg/jruby/RubyClass;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class clazz
        start local 2 // org.jruby.RubyClass proxy
        start local 3 // org.jruby.RubyClass superClass
         0: .line 486
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 5
         1: .line 487
            aload 0 /* runtime */
            aload 2 /* proxy */
            aload 1 /* clazz */
            aload 3 /* superClass */
            iconst_1
            invokestatic org.jruby.javasupport.Java.createProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class;Lorg/jruby/RubyClass;Z)Lorg/jruby/RubyClass;
            pop
         2: .line 489
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 24
         3: .line 490
            aload 2 /* proxy */
            ldc Lorg/jruby/javasupport/Java$ByteArrayProxyMethods;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         4: .line 492
            goto 24
         5: .line 493
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 8
         6: .line 494
            aload 0 /* runtime */
            aload 2 /* proxy */
            aload 1 /* clazz */
            aload 3 /* superClass */
            iconst_1
            invokestatic org.jruby.javasupport.Java.createProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class;Lorg/jruby/RubyClass;Z)Lorg/jruby/RubyClass;
            pop
         7: .line 495
            goto 24
         8: .line 496
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            ldc Ljava/lang/Object;
            if_acmpne 16
         9: .line 498
            aload 0 /* runtime */
            aload 2 /* proxy */
            aload 1 /* clazz */
            aload 3 /* superClass */
            iconst_1
            invokestatic org.jruby.javasupport.Java.createProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class;Lorg/jruby/RubyClass;Z)Lorg/jruby/RubyClass;
            pop
        10: .line 499
            getstatic org.jruby.javasupport.Java.NEW_STYLE_EXTENSION:Z
            ifeq 13
        11: .line 500
            aload 2 /* proxy */
            invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
            ldc Lorg/jruby/javasupport/Java$NewStyleExtensionInherited;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        12: .line 501
            goto 14
        13: .line 502
      StackMap locals:
      StackMap stack:
            aload 2 /* proxy */
            invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
            ldc Lorg/jruby/javasupport/Java$OldStyleExtensionInherited;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
        14: .line 504
      StackMap locals:
      StackMap stack:
            aload 2 /* proxy */
            invokestatic org.jruby.javasupport.Java.addToJavaPackageModule:(Lorg/jruby/RubyModule;)V
        15: .line 505
            goto 24
        16: .line 507
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 2 /* proxy */
            aload 1 /* clazz */
            aload 3 /* superClass */
            iconst_0
            invokestatic org.jruby.javasupport.Java.createProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class;Lorg/jruby/RubyClass;Z)Lorg/jruby/RubyClass;
            pop
        17: .line 509
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 4 /* interfaces */
        start local 4 // java.lang.Class[] interfaces
        18: .line 510
            aload 4 /* interfaces */
            arraylength
            istore 5 /* i */
        start local 5 // int i
        19: goto 21
        20: .line 511
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 2 /* proxy */
            aload 0 /* runtime */
            aload 4 /* interfaces */
            iload 5 /* i */
            aaload
            invokestatic org.jruby.javasupport.Java.getInterfaceModule:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        21: .line 510
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
            iload 5 /* i */
            ifge 20
        end local 5 // int i
        22: .line 513
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 24
        23: .line 514
            aload 2 /* proxy */
            invokestatic org.jruby.javasupport.Java.addToJavaPackageModule:(Lorg/jruby/RubyModule;)V
        end local 4 // java.lang.Class[] interfaces
        24: .line 520
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            ifeq 27
        25: .line 521
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            astore 4 /* clazzName */
        start local 4 // java.lang.String clazzName
        26: .line 522
            aload 2 /* proxy */
            invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
            ldc "inherited"
            new org.jruby.javasupport.Java$1
            dup
            aload 2 /* proxy */
            getstatic org.jruby.runtime.Visibility.PUBLIC:Lorg/jruby/runtime/Visibility;
            ldc "inherited"
            aload 4 /* clazzName */
            invokespecial org.jruby.javasupport.Java$1.<init>:(Lorg/jruby/RubyModule;Lorg/jruby/runtime/Visibility;Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
        end local 4 // java.lang.String clazzName
        27: .line 529
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.jruby.RubyClass superClass
        end local 2 // org.jruby.RubyClass proxy
        end local 1 // java.lang.Class clazz
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0     runtime  Lorg/jruby/Ruby;
            0   28     1       clazz  Ljava/lang/Class<*>;
            0   28     2       proxy  Lorg/jruby/RubyClass;
            0   28     3  superClass  Lorg/jruby/RubyClass;
           18   24     4  interfaces  [Ljava/lang/Class;
           19   22     5           i  I
           26   27     4   clazzName  Ljava/lang/String;
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class<*>;Lorg/jruby/RubyClass;Lorg/jruby/RubyClass;)V
    MethodParameters:
            Name  Flags
      runtime     
      clazz       
      proxy       
      superClass  

  private static org.jruby.RubyClass createProxyClass(org.jruby.Ruby, org.jruby.RubyClass, java.lang.Class<?>, org.jruby.RubyClass, boolean);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class;Lorg/jruby/RubyClass;Z)Lorg/jruby/RubyClass;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyClass proxyClass
        start local 2 // java.lang.Class javaClass
        start local 3 // org.jruby.RubyClass superClass
        start local 4 // boolean invokeInherited
         0: .line 535
            aload 1 /* proxyClass */
            aload 3 /* superClass */
            invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.makeMetaClass:(Lorg/jruby/RubyClass;)Lorg/jruby/RubyClass;
            pop
         1: .line 537
            ldc Ljava/util/Map;
            aload 2 /* javaClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 6
         2: .line 538
            aload 1 /* proxyClass */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getMapJavaProxyClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.RubyClass.setAllocator:(Lorg/jruby/runtime/ObjectAllocator;)V
         3: .line 539
            aload 1 /* proxyClass */
            ldc Lorg/jruby/java/proxies/MapJavaProxy;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         4: .line 540
            aload 1 /* proxyClass */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getEnumerable:()Lorg/jruby/RubyModule;
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 541
            goto 7
         6: .line 543
      StackMap locals:
      StackMap stack:
            aload 1 /* proxyClass */
            aload 3 /* superClass */
            invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.RubyClass.setAllocator:(Lorg/jruby/runtime/ObjectAllocator;)V
         7: .line 545
      StackMap locals:
      StackMap stack:
            aload 1 /* proxyClass */
            ldc Lorg/jruby/java/proxies/JavaProxy$ClassMethods;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         8: .line 547
            iload 4 /* invokeInherited */
            ifeq 9
            aload 1 /* proxyClass */
            aload 3 /* superClass */
            invokevirtual org.jruby.RubyClass.inherit:(Lorg/jruby/RubyClass;)V
         9: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 2 /* javaClass */
            aload 1 /* proxyClass */
            invokestatic org.jruby.javasupport.binding.Initializer.setupProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;Lorg/jruby/RubyClass;)Lorg/jruby/RubyModule;
            pop
        10: .line 551
            aload 1 /* proxyClass */
            areturn
        end local 4 // boolean invokeInherited
        end local 3 // org.jruby.RubyClass superClass
        end local 2 // java.lang.Class javaClass
        end local 1 // org.jruby.RubyClass proxyClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0          runtime  Lorg/jruby/Ruby;
            0   11     1       proxyClass  Lorg/jruby/RubyClass;
            0   11     2        javaClass  Ljava/lang/Class<*>;
            0   11     3       superClass  Lorg/jruby/RubyClass;
            0   11     4  invokeInherited  Z
    Signature: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Class<*>;Lorg/jruby/RubyClass;Z)Lorg/jruby/RubyClass;
    MethodParameters:
                 Name  Flags
      runtime          final
      proxyClass       final
      javaClass        final
      superClass       final
      invokeInherited  

  public static org.jruby.runtime.builtin.IRubyObject concrete_proxy_inherited(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject clazz
        start local 1 // org.jruby.runtime.builtin.IRubyObject subclazz
         0: .line 569
            aload 0 /* clazz */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* clazz */
            aload 1 /* subclazz */
            invokestatic org.jruby.javasupport.Java.invokeProxyClassInherited:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject subclazz
        end local 0 // org.jruby.runtime.builtin.IRubyObject clazz
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0     clazz  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1  subclazz  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      clazz     final
      subclazz  final

  private static org.jruby.runtime.builtin.IRubyObject invokeProxyClassInherited(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject clazz
        start local 2 // org.jruby.runtime.builtin.IRubyObject subclazz
         0: .line 574
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            astore 3 /* javaSupport */
        start local 3 // org.jruby.javasupport.JavaSupport javaSupport
         1: .line 575
            aload 3 /* javaSupport */
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaProxyClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
            astore 4 /* javaProxyClass */
        start local 4 // org.jruby.RubyClass javaProxyClass
         2: .line 576
            aload 0 /* context */
            aload 4 /* javaProxyClass */
            aload 1 /* clazz */
            ldc "inherited"
            aload 2 /* subclazz */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.runtime.Helpers.invokeAs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         3: .line 577
            aload 2 /* subclazz */
            instanceof org.jruby.RubyClass
            ifne 5
         4: .line 578
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* subclazz */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getClassClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 580
      StackMap locals: org.jruby.javasupport.JavaSupport org.jruby.RubyClass
      StackMap stack:
            aload 0 /* context */
            aload 2 /* subclazz */
            checkcast org.jruby.RubyClass
            invokestatic org.jruby.javasupport.Java.setupJavaSubclass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;)V
         6: .line 581
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.RubyClass javaProxyClass
        end local 3 // org.jruby.javasupport.JavaSupport javaSupport
        end local 2 // org.jruby.runtime.builtin.IRubyObject subclazz
        end local 1 // org.jruby.runtime.builtin.IRubyObject clazz
        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           clazz  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2        subclazz  Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     3     javaSupport  Lorg/jruby/javasupport/JavaSupport;
            2    7     4  javaProxyClass  Lorg/jruby/RubyClass;
    MethodParameters:
          Name  Flags
      context   final
      clazz     final
      subclazz  final

  private static void setupJavaSubclass(org.jruby.runtime.ThreadContext, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyClass subclass
         0: .line 587
            aload 1 /* subclass */
            ldc "@java_proxy_class"
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyClass.setInstanceVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         1: .line 590
            aload 1 /* subclass */
            iconst_1
            invokevirtual org.jruby.RubyClass.setCacheProxy:(Z)V
         2: .line 592
            aload 1 /* subclass */
            invokevirtual org.jruby.RubyClass.getSingletonClass:()Lorg/jruby/RubyClass;
            astore 2 /* subclassSingleton */
        start local 2 // org.jruby.RubyClass subclassSingleton
         3: .line 593
            aload 2 /* subclassSingleton */
            aload 0 /* context */
            ldc "java_proxy_class"
            invokevirtual org.jruby.RubyClass.addReadWriteAttribute:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)V
         4: .line 594
            aload 2 /* subclassSingleton */
            ldc "java_interfaces"
            new org.jruby.javasupport.Java$2
            dup
            aload 2 /* subclassSingleton */
            getstatic org.jruby.runtime.Visibility.PUBLIC:Lorg/jruby/runtime/Visibility;
            ldc "java_interfaces"
            invokespecial org.jruby.javasupport.Java$2.<init>:(Lorg/jruby/RubyModule;Lorg/jruby/runtime/Visibility;Ljava/lang/String;)V
            invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
         5: .line 603
            aload 1 /* subclass */
            ldc "__jcreate!"
            new org.jruby.javasupport.Java$JCreateMethod
            dup
            aload 2 /* subclassSingleton */
            invokespecial org.jruby.javasupport.Java$JCreateMethod.<init>:(Lorg/jruby/RubyModule;)V
            invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
         6: .line 604
            return
        end local 2 // org.jruby.RubyClass subclassSingleton
        end local 1 // org.jruby.RubyClass subclass
        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           subclass  Lorg/jruby/RubyClass;
            3    7     2  subclassSingleton  Lorg/jruby/RubyClass;
    MethodParameters:
          Name  Flags
      context   final
      subclass  final

  static <T extends org.jruby.javasupport.ParameterTypes> java.util.ArrayList<T> findCallablesForArity(int, T[]);
    descriptor: (I[Lorg/jruby/javasupport/ParameterTypes;)Ljava/util/ArrayList;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // int arity
        start local 1 // org.jruby.javasupport.ParameterTypes[] callables
         0: .line 743
            new java.util.ArrayList
            dup
            aload 1 /* callables */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* forArity */
        start local 2 // java.util.ArrayList forArity
         1: .line 744
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 745
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            iload 0 /* arity */
            aload 1 /* callables */
            iload 3 /* i */
            invokestatic org.jruby.javasupport.Java.checkCallableForArity:(I[Lorg/jruby/javasupport/ParameterTypes;I)Lorg/jruby/javasupport/ParameterTypes;
            astore 4 /* found */
        start local 4 // org.jruby.javasupport.ParameterTypes found
         4: .line 746
            aload 4 /* found */
            ifnull 5
            aload 2 /* forArity */
            aload 4 /* found */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.jruby.javasupport.ParameterTypes found
         5: .line 744
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 1 /* callables */
            arraylength
            if_icmplt 3
        end local 3 // int i
         7: .line 748
            aload 2 /* forArity */
            areturn
        end local 2 // java.util.ArrayList forArity
        end local 1 // org.jruby.javasupport.ParameterTypes[] callables
        end local 0 // int arity
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0      arity  I
            0    8     1  callables  [Lorg/jruby/javasupport/ParameterTypes;
            1    8     2   forArity  Ljava/util/ArrayList<TT;>;
            2    7     3          i  I
            4    5     4      found  TT;
    Signature: <T::Lorg/jruby/javasupport/ParameterTypes;>(I[TT;)Ljava/util/ArrayList<TT;>;
    MethodParameters:
           Name  Flags
      arity      final
      callables  final

  private static <T extends org.jruby.javasupport.ParameterTypes> T checkCallableForArity(int, T[], );
    descriptor: (I[Lorg/jruby/javasupport/ParameterTypes;I)Lorg/jruby/javasupport/ParameterTypes;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // int arity
        start local 1 // org.jruby.javasupport.ParameterTypes[] callables
        start local 2 // int index
         0: .line 752
            aload 1 /* callables */
            iload 2 /* index */
            aaload
            astore 3 /* callable */
        start local 3 // org.jruby.javasupport.ParameterTypes callable
         1: .line 753
            aload 3 /* callable */
            invokeinterface org.jruby.javasupport.ParameterTypes.getArity:()I
            istore 4 /* callableArity */
        start local 4 // int callableArity
         2: .line 755
            iload 4 /* callableArity */
            iload 0 /* arity */
            if_icmpne 3
            aload 3 /* callable */
            areturn
         3: .line 760
      StackMap locals: org.jruby.javasupport.ParameterTypes int
      StackMap stack:
            aload 3 /* callable */
            invokeinterface org.jruby.javasupport.ParameterTypes.isVarArgs:()Z
            ifeq 5
            iload 4 /* callableArity */
            iconst_1
            isub
            iload 0 /* arity */
            if_icmpgt 5
         4: .line 761
            aload 3 /* callable */
            areturn
         5: .line 763
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // int callableArity
        end local 3 // org.jruby.javasupport.ParameterTypes callable
        end local 2 // int index
        end local 1 // org.jruby.javasupport.ParameterTypes[] callables
        end local 0 // int arity
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0          arity  I
            0    6     1      callables  [Lorg/jruby/javasupport/ParameterTypes;
            0    6     2          index  I
            1    6     3       callable  TT;
            2    6     4  callableArity  I
    Signature: <T::Lorg/jruby/javasupport/ParameterTypes;>(I[TT;I)TT;
    MethodParameters:
           Name  Flags
      arity      final
      callables  final
      index      final

  private static void addToJavaPackageModule(org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.jruby.RubyModule proxyClass
         0: .line 769
            aload 0 /* proxyClass */
            invokevirtual org.jruby.RubyModule.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 770
            aload 0 /* proxyClass */
            invokevirtual org.jruby.RubyModule.dataGetStruct:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         2: .line 772
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            dup
            astore 3 /* fullName */
        start local 3 // java.lang.String fullName
         3: ifnonnull 4
            return
         4: .line 776
      StackMap locals: org.jruby.Ruby java.lang.Class java.lang.String
      StackMap stack:
            aload 3 /* fullName */
            bipush 36
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 6
         5: .line 782
            return
         6: .line 785
      StackMap locals:
      StackMap stack:
            aload 3 /* fullName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 6 /* endPackage */
        start local 6 // int endPackage
         7: .line 786
            iload 6 /* endPackage */
            ifge 8
            ldc ""
            goto 9
      StackMap locals: org.jruby.RubyModule org.jruby.Ruby java.lang.Class java.lang.String top top int
      StackMap stack:
         8: aload 3 /* fullName */
            iconst_0
            iload 6 /* endPackage */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         9: astore 7 /* packageString */
        start local 7 // java.lang.String packageString
        10: .line 787
            aload 1 /* runtime */
            aload 7 /* packageString */
            invokestatic org.jruby.javasupport.Java.getJavaPackageModule:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 4 /* parentModule */
        start local 4 // org.jruby.RubyModule parentModule
        11: .line 788
            aload 4 /* parentModule */
            ifnonnull 12
            aload 3 /* fullName */
            goto 13
      StackMap locals: org.jruby.RubyModule org.jruby.Ruby java.lang.Class java.lang.String org.jruby.RubyModule top int java.lang.String
      StackMap stack:
        12: aload 3 /* fullName */
            iload 6 /* endPackage */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        13: astore 5 /* className */
        end local 7 // java.lang.String packageString
        end local 6 // int endPackage
        start local 5 // java.lang.String className
        14: .line 791
            aload 4 /* parentModule */
            ifnull 18
        15: .line 792
            aload 5 /* className */
            invokestatic org.jruby.util.IdUtil.isConstant:(Ljava/lang/String;)Z
            ifne 16
            aload 4 /* parentModule */
            instanceof org.jruby.javasupport.JavaPackage
            ifeq 18
        16: .line 793
      StackMap locals: org.jruby.RubyModule org.jruby.Ruby java.lang.Class java.lang.String org.jruby.RubyModule java.lang.String
      StackMap stack:
            aload 4 /* parentModule */
            aload 5 /* className */
            invokevirtual org.jruby.RubyModule.getConstantAt:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            ifnonnull 18
        17: .line 794
            aload 4 /* parentModule */
            aload 5 /* className */
            aload 0 /* proxyClass */
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        18: .line 797
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.String className
        end local 4 // org.jruby.RubyModule parentModule
        end local 3 // java.lang.String fullName
        end local 2 // java.lang.Class clazz
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyModule proxyClass
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0     proxyClass  Lorg/jruby/RubyModule;
            1   19     1        runtime  Lorg/jruby/Ruby;
            2   19     2          clazz  Ljava/lang/Class<*>;
            3   19     3       fullName  Ljava/lang/String;
           11   19     4   parentModule  Lorg/jruby/RubyModule;
           14   19     5      className  Ljava/lang/String;
            7   14     6     endPackage  I
           10   14     7  packageString  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      proxyClass  

  public static org.jruby.RubyModule getJavaPackageModule(org.jruby.Ruby, java.lang.Package);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Package;)Lorg/jruby/RubyModule;
    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.Package pkg
         0: .line 800
            aload 0 /* runtime */
            aload 1 /* pkg */
            ifnonnull 1
            ldc ""
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         1: aload 1 /* pkg */
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
      StackMap locals: org.jruby.Ruby java.lang.Package
      StackMap stack: org.jruby.Ruby java.lang.String
         2: invokestatic org.jruby.javasupport.Java.getJavaPackageModule:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            areturn
        end local 1 // java.lang.Package pkg
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1      pkg  Ljava/lang/Package;
    MethodParameters:
         Name  Flags
      runtime  final
      pkg      final

  public static org.jruby.RubyModule getJavaPackageModule(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String packageString
         0: .line 805
            aload 1 /* packageString */
            invokevirtual java.lang.String.length:()I
            dup
            istore 3 /* length */
        start local 3 // int length
         1: ifne 4
         2: .line 806
            ldc "Default"
            astore 2 /* packageName */
        start local 2 // java.lang.String packageName
         3: .line 807
            goto 14
        end local 2 // java.lang.String packageName
         4: .line 809
      StackMap locals: org.jruby.Ruby java.lang.String top int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iload 3 /* length */
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* name */
        start local 4 // java.lang.StringBuilder name
         5: .line 810
            iconst_0
            istore 5 /* start */
        start local 5 // int start
         6: goto 12
         7: .line 811
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* packageString */
            bipush 46
            iload 5 /* start */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* offset */
        start local 6 // int offset
         8: .line 812
            iload 6 /* offset */
            iconst_m1
            if_icmpne 9
            iload 3 /* length */
            istore 6 /* offset */
         9: .line 813
      StackMap locals: int
      StackMap stack:
            aload 4 /* name */
            aload 1 /* packageString */
            iload 5 /* start */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toUpperCase:(C)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        10: .line 814
            aload 1 /* packageString */
            iload 5 /* start */
            iconst_1
            iadd
            iload 6 /* offset */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 810
            iload 6 /* offset */
            iconst_1
            iadd
            istore 5 /* start */
        end local 6 // int offset
      StackMap locals:
      StackMap stack:
        12: iload 5 /* start */
            iload 3 /* length */
            if_icmplt 7
        end local 5 // int start
        13: .line 816
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* packageName */
        end local 4 // java.lang.StringBuilder name
        start local 2 // java.lang.String packageName
        14: .line 819
      StackMap locals: org.jruby.Ruby java.lang.String java.lang.String int
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaModule:()Lorg/jruby/RubyModule;
            astore 4 /* javaModule */
        start local 4 // org.jruby.RubyModule javaModule
        15: .line 820
            aload 4 /* javaModule */
            aload 2 /* packageName */
            invokevirtual org.jruby.RubyModule.getConstantAt:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* packageModule */
        start local 5 // org.jruby.runtime.builtin.IRubyObject packageModule
        16: .line 822
            aload 5 /* packageModule */
            ifnonnull 18
        17: .line 823
            aload 0 /* runtime */
            aload 4 /* javaModule */
            aload 2 /* packageName */
            aload 1 /* packageString */
            invokestatic org.jruby.javasupport.Java.createPackageModule:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/RubyModule;
            areturn
        18: .line 825
      StackMap locals: org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 5 /* packageModule */
            instanceof org.jruby.RubyModule
            ifeq 20
        19: .line 826
            aload 5 /* packageModule */
            checkcast org.jruby.RubyModule
            areturn
        20: .line 828
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject packageModule
        end local 4 // org.jruby.RubyModule javaModule
        end local 3 // int length
        end local 2 // java.lang.String packageName
        end local 1 // java.lang.String packageString
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0        runtime  Lorg/jruby/Ruby;
            0   21     1  packageString  Ljava/lang/String;
            3    4     2    packageName  Ljava/lang/String;
           14   21     2    packageName  Ljava/lang/String;
            1   21     3         length  I
            5   14     4           name  Ljava/lang/StringBuilder;
            6   13     5          start  I
            8   12     6         offset  I
           15   21     4     javaModule  Lorg/jruby/RubyModule;
           16   21     5  packageModule  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
               Name  Flags
      runtime        final
      packageString  final

  private static org.jruby.RubyModule createPackageModule(org.jruby.Ruby, org.jruby.RubyModule, java.lang.String, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/RubyModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule parentModule
        start local 2 // java.lang.String name
        start local 3 // java.lang.String packageString
         0: .line 834
            aload 0 /* runtime */
            aload 3 /* packageString */
            aload 1 /* parentModule */
            invokestatic org.jruby.javasupport.JavaPackage.newPackage:(Lorg/jruby/Ruby;Ljava/lang/CharSequence;Lorg/jruby/RubyModule;)Lorg/jruby/RubyModule;
            astore 4 /* packageModule */
        start local 4 // org.jruby.RubyModule packageModule
         1: .line 836
            aload 1 /* parentModule */
            dup
            astore 5
            monitorenter
         2: .line 837
            aload 1 /* parentModule */
            aload 2 /* name */
            invokevirtual org.jruby.RubyModule.fetchConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* packageAlreadySet */
        start local 6 // org.jruby.runtime.builtin.IRubyObject packageAlreadySet
         3: .line 838
            aload 6 /* packageAlreadySet */
            ifnull 6
         4: .line 839
            aload 6 /* packageAlreadySet */
            checkcast org.jruby.RubyModule
            aload 5
            monitorexit
         5: areturn
         6: .line 841
      StackMap locals: org.jruby.RubyModule org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* parentModule */
            aload 2 /* name */
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            aload 4 /* packageModule */
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 6 // org.jruby.runtime.builtin.IRubyObject packageAlreadySet
         7: .line 836
            aload 5
            monitorexit
         8: goto 11
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule java.lang.String java.lang.String org.jruby.RubyModule org.jruby.RubyModule
      StackMap stack: java.lang.Throwable
         9: aload 5
            monitorexit
        10: athrow
        11: .line 845
      StackMap locals:
      StackMap stack:
            aload 4 /* packageModule */
            areturn
        end local 4 // org.jruby.RubyModule packageModule
        end local 3 // java.lang.String packageString
        end local 2 // java.lang.String name
        end local 1 // org.jruby.RubyModule parentModule
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0            runtime  Lorg/jruby/Ruby;
            0   12     1       parentModule  Lorg/jruby/RubyModule;
            0   12     2               name  Ljava/lang/String;
            0   12     3      packageString  Ljava/lang/String;
            1   12     4      packageModule  Lorg/jruby/RubyModule;
            3    7     6  packageAlreadySet  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
           2     5       9  any
           6     8       9  any
           9    10       9  any
    MethodParameters:
               Name  Flags
      runtime        final
      parentModule   final
      name           final
      packageString  final

  private static org.jruby.RubyModule getPackageModule(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String name
         0: .line 851
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaModule:()Lorg/jruby/RubyModule;
            astore 2 /* javaModule */
        start local 2 // org.jruby.RubyModule javaModule
         1: .line 852
            aload 2 /* javaModule */
            aload 1 /* name */
            invokevirtual org.jruby.RubyModule.getConstantAt:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* packageModule */
        start local 3 // org.jruby.runtime.builtin.IRubyObject packageModule
         2: .line 853
            aload 3 /* packageModule */
            instanceof org.jruby.RubyModule
            ifeq 3
            aload 3 /* packageModule */
            checkcast org.jruby.RubyModule
            areturn
         3: .line 856
      StackMap locals: org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            ldc "Default"
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
            ldc ""
            astore 4 /* packageName */
        start local 4 // java.lang.String packageName
         4: goto 7
        end local 4 // java.lang.String packageName
         5: .line 858
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.javasupport.Java.CAMEL_CASE_PACKAGE_SPLITTER:Ljava/util/regex/Pattern;
            aload 1 /* name */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 5 /* match */
        start local 5 // java.util.regex.Matcher match
         6: .line 859
            aload 5 /* match */
            ldc "$1.$2"
            invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 4 /* packageName */
        end local 5 // java.util.regex.Matcher match
        start local 4 // java.lang.String packageName
         7: .line 861
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* runtime */
            aload 2 /* javaModule */
            aload 1 /* name */
            aload 4 /* packageName */
            invokestatic org.jruby.javasupport.Java.createPackageModule:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/RubyModule;
            areturn
        end local 4 // java.lang.String packageName
        end local 3 // org.jruby.runtime.builtin.IRubyObject packageModule
        end local 2 // org.jruby.RubyModule javaModule
        end local 1 // java.lang.String name
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0        runtime  Lorg/jruby/Ruby;
            0    8     1           name  Ljava/lang/String;
            1    8     2     javaModule  Lorg/jruby/RubyModule;
            2    8     3  packageModule  Lorg/jruby/runtime/builtin/IRubyObject;
            4    5     4    packageName  Ljava/lang/String;
            7    8     4    packageName  Ljava/lang/String;
            6    7     5          match  Ljava/util/regex/Matcher;
    MethodParameters:
         Name  Flags
      runtime  final
      name     final

  public static org.jruby.RubyModule get_package_module(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject self
        start local 1 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 865
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            invokestatic org.jruby.javasupport.Java.getPackageModule:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject name
        end local 0 // org.jruby.runtime.builtin.IRubyObject self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1  name  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      self  final
      name  final

  public static org.jruby.runtime.builtin.IRubyObject get_package_module_dot_format(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject self
        start local 1 // org.jruby.runtime.builtin.IRubyObject dottedName
         0: .line 870
            aload 0 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 871
            aload 2 /* runtime */
            aload 1 /* dottedName */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            invokestatic org.jruby.javasupport.Java.getJavaPackageModule:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 3 /* module */
        start local 3 // org.jruby.RubyModule module
         2: .line 872
            aload 3 /* module */
            ifnonnull 3
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            goto 4
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule
      StackMap stack:
         3: aload 3 /* module */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         4: areturn
        end local 3 // org.jruby.RubyModule module
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject dottedName
        end local 0 // org.jruby.runtime.builtin.IRubyObject self
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     1  dottedName  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     2     runtime  Lorg/jruby/Ruby;
            2    5     3      module  Lorg/jruby/RubyModule;
    MethodParameters:
            Name  Flags
      self        final
      dottedName  final

  static org.jruby.RubyModule getProxyOrPackageUnderPackage(org.jruby.runtime.ThreadContext, org.jruby.RubyModule, java.lang.String, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Ljava/lang/String;Z)Lorg/jruby/RubyModule;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule parentPackage
        start local 2 // java.lang.String name
        start local 3 // boolean cacheMethod
         0: .line 877
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 879
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 3
         2: .line 880
            aload 4 /* runtime */
            ldc "empty class or package name"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 883
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* parentPackage */
            aload 2 /* name */
            invokestatic org.jruby.javasupport.JavaPackage.buildPackageName:(Lorg/jruby/RubyModule;Ljava/lang/String;)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 5 /* fullName */
        start local 5 // java.lang.String fullName
         4: .line 887
            aload 2 /* name */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifne 13
         5: .line 888
            aload 4 /* runtime */
            aload 2 /* name */
            iconst_0
            invokestatic org.jruby.javasupport.Java.checkJavaReservedNames:(Lorg/jruby/Ruby;Ljava/lang/String;Z)V
         6: .line 893
            aload 4 /* runtime */
            aload 5 /* fullName */
            invokestatic org.jruby.javasupport.Java.getProxyClassOrNull:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 7 /* proxyClass */
        start local 7 // org.jruby.RubyModule proxyClass
         7: .line 894
            aload 7 /* proxyClass */
            ifnull 9
            aload 7 /* proxyClass */
            astore 6 /* result */
        start local 6 // org.jruby.RubyModule result
         8: goto 25
        end local 6 // org.jruby.RubyModule result
         9: .line 897
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule java.lang.String int org.jruby.Ruby java.lang.String top org.jruby.RubyModule
      StackMap stack:
            aload 4 /* runtime */
            aload 5 /* fullName */
            invokestatic org.jruby.javasupport.Java.getJavaPackageModule:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 8 /* packageModule */
        start local 8 // org.jruby.RubyModule packageModule
        10: .line 899
            aload 8 /* packageModule */
            ifnonnull 11
            aconst_null
            areturn
        11: .line 900
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 8 /* packageModule */
            astore 6 /* result */
        end local 8 // org.jruby.RubyModule packageModule
        end local 7 // org.jruby.RubyModule proxyClass
        start local 6 // org.jruby.RubyModule result
        12: .line 902
            goto 25
        end local 6 // org.jruby.RubyModule result
        13: .line 905
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule java.lang.String int org.jruby.Ruby java.lang.String
      StackMap stack:
            aload 4 /* runtime */
            aload 5 /* fullName */
            invokestatic org.jruby.javasupport.Java.getProxyClassOrNull:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 7 /* javaClass */
        start local 7 // org.jruby.RubyModule javaClass
        14: .line 906
            aload 7 /* javaClass */
            ifnull 16
            aload 7 /* javaClass */
            astore 6 /* result */
        start local 6 // org.jruby.RubyModule result
        15: goto 25
        end local 6 // org.jruby.RubyModule result
        16: .line 908
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule java.lang.String int org.jruby.Ruby java.lang.String top org.jruby.RubyModule
      StackMap stack:
            aload 4 /* runtime */
            invokestatic org.jruby.javasupport.Java.allowUppercasePackageNames:(Lorg/jruby/Ruby;)Z
            ifeq 20
        17: .line 911
            aload 4 /* runtime */
            aload 5 /* fullName */
            invokestatic org.jruby.javasupport.Java.getJavaPackageModule:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 6 /* result */
        start local 6 // org.jruby.RubyModule result
        18: .line 913
            aload 6 /* result */
            ifnonnull 25
        19: .line 914
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "missing class (or package) name (`"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fullName */
            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 5 /* fullName */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // org.jruby.RubyModule result
        20: .line 918
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "missing class name (`"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fullName */
            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 5 /* fullName */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 7 // org.jruby.RubyModule javaClass
        21: .line 922
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule java.lang.String int org.jruby.Ruby java.lang.String
      StackMap stack: java.lang.RuntimeException
            astore 7 /* e */
        start local 7 // java.lang.RuntimeException e
        22: .line 923
            aload 7 /* e */
            instanceof org.jruby.exceptions.RaiseException
            ifeq 23
            aload 7 /* e */
            athrow
        23: .line 924
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule java.lang.String int org.jruby.Ruby java.lang.String top java.lang.RuntimeException
      StackMap stack:
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.isDebug:()Z
            ifeq 24
            aload 7 /* e */
            invokevirtual java.lang.RuntimeException.printStackTrace:()V
        24: .line 925
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "missing class or uppercase package name (`"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fullName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'), caused by "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* e */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* fullName */
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 7 // java.lang.RuntimeException e
        start local 6 // org.jruby.RubyModule result
        25: .line 930
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule java.lang.String int org.jruby.Ruby java.lang.String org.jruby.RubyModule
      StackMap stack:
            iload 3 /* cacheMethod */
            ifeq 26
            aload 1 /* parentPackage */
            aload 2 /* name */
            aload 6 /* result */
            invokestatic org.jruby.javasupport.Java.bindJavaPackageOrClassMethod:(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;)Z
            pop
        26: .line 932
      StackMap locals:
      StackMap stack:
            aload 6 /* result */
            areturn
        end local 6 // org.jruby.RubyModule result
        end local 5 // java.lang.String fullName
        end local 4 // org.jruby.Ruby runtime
        end local 3 // boolean cacheMethod
        end local 2 // java.lang.String name
        end local 1 // org.jruby.RubyModule parentPackage
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   27     0        context  Lorg/jruby/runtime/ThreadContext;
            0   27     1  parentPackage  Lorg/jruby/RubyModule;
            0   27     2           name  Ljava/lang/String;
            0   27     3    cacheMethod  Z
            1   27     4        runtime  Lorg/jruby/Ruby;
            4   27     5       fullName  Ljava/lang/String;
            8    9     6         result  Lorg/jruby/RubyModule;
           12   13     6         result  Lorg/jruby/RubyModule;
           15   16     6         result  Lorg/jruby/RubyModule;
           18   20     6         result  Lorg/jruby/RubyModule;
           25   27     6         result  Lorg/jruby/RubyModule;
            7   12     7     proxyClass  Lorg/jruby/RubyModule;
           10   12     8  packageModule  Lorg/jruby/RubyModule;
           14   21     7      javaClass  Lorg/jruby/RubyModule;
           22   25     7              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          13    21      21  Class java.lang.RuntimeException
    MethodParameters:
               Name  Flags
      context        final
      parentPackage  final
      name           final
      cacheMethod    final

  private static boolean allowUppercasePackageNames(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 936
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getInstanceConfig:()Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.getAllowUppercasePackageNames:()Z
            ireturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  final

  private static void checkJavaReservedNames(org.jruby.Ruby, java.lang.String, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String name
        start local 2 // boolean allowPrimitives
         0: .line 942
            iload 2 /* allowPrimitives */
            ifne 2
            aload 1 /* name */
            invokestatic org.jruby.javasupport.JavaClass.isPrimitiveName:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 943
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "illegal package name component: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 945
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean allowPrimitives
        end local 1 // java.lang.String name
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0          runtime  Lorg/jruby/Ruby;
            0    3     1             name  Ljava/lang/String;
            0    3     2  allowPrimitives  Z
    MethodParameters:
                 Name  Flags
      runtime          final
      name             final
      allowPrimitives  final

  private static org.jruby.RubyModule getProxyClassOrNull(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String className
         0: .line 948
            aload 0 /* runtime */
            aload 1 /* className */
            iconst_1
            invokestatic org.jruby.javasupport.Java.getProxyClassOrNull:(Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/RubyModule;
            areturn
        end local 1 // java.lang.String className
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0    runtime  Lorg/jruby/Ruby;
            0    1     1  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      runtime    final
      className  final

  private static org.jruby.RubyModule getProxyClassOrNull(org.jruby.Ruby, java.lang.String, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/RubyModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String className
        start local 2 // boolean initJavaClass
         0: .line 955
            ldc Lorg/jruby/javasupport/Java;
            dup
            astore 4
            monitorenter
         1: .line 961
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 1 /* className */
            invokevirtual org.jruby.javasupport.JavaSupport.loadJavaClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* clazz */
        start local 3 // java.lang.Class clazz
         2: .line 955
            aload 4
            monitorexit
         3: goto 27
        end local 3 // java.lang.Class clazz
      StackMap locals: org.jruby.Ruby java.lang.String int top java.lang.Class
      StackMap stack: java.lang.Throwable
         4: aload 4
            monitorexit
         5: athrow
         6: .line 964
      StackMap locals: org.jruby.Ruby java.lang.String int
      StackMap stack: java.lang.ExceptionInInitializerError
            astore 4 /* ex */
        start local 4 // java.lang.ExceptionInInitializerError ex
         7: .line 965
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "cannot initialize Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 4 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 4 /* ex */
            iconst_0
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Z)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // java.lang.ExceptionInInitializerError ex
         8: .line 967
      StackMap locals:
      StackMap stack: java.lang.UnsupportedClassVersionError
            astore 4 /* ex */
        start local 4 // java.lang.UnsupportedClassVersionError ex
         9: .line 968
            aload 4 /* ex */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 5 /* type */
        start local 5 // java.lang.String type
        10: .line 969
            aload 4 /* ex */
            invokevirtual java.lang.UnsupportedClassVersionError.getLocalizedMessage:()Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
        11: .line 970
            aload 6 /* msg */
            ifnull 19
        12: .line 973
            aload 6 /* msg */
            ldc "unsupported major.minor version"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 7 /* idx */
        start local 7 // int idx
        13: .line 974
            iload 7 /* idx */
            ifle 20
        14: .line 975
            iload 7 /* idx */
            ldc "unsupported major.minor version"
            invokevirtual java.lang.String.length:()I
            iadd
            istore 7 /* idx */
        15: .line 976
            aload 6 /* msg */
            iload 7 /* idx */
            invokestatic org.jruby.javasupport.Java.mapMajorMinorClassVersionToJavaVersion:(Ljava/lang/String;I)I
            istore 7 /* idx */
        16: .line 977
            iload 7 /* idx */
            ifle 17
            new java.lang.StringBuilder
            dup
            ldc "needs Java "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* idx */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
            goto 20
        17: .line 978
      StackMap locals: org.jruby.Ruby java.lang.String int top java.lang.UnsupportedClassVersionError java.lang.String java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 40
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        end local 7 // int idx
        18: .line 980
            goto 20
        19: .line 981
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 40
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        20: .line 983
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "cannot link Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 6 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 4 /* ex */
            iconst_0
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Z)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // java.lang.String msg
        end local 5 // java.lang.String type
        end local 4 // java.lang.UnsupportedClassVersionError ex
        21: .line 985
      StackMap locals: org.jruby.Ruby java.lang.String int
      StackMap stack: java.lang.Throwable
            pop
        22: .line 987
            aconst_null
            areturn
        23: .line 989
      StackMap locals:
      StackMap stack: java.lang.LinkageError
            astore 4 /* ex */
        start local 4 // java.lang.LinkageError ex
        24: .line 990
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "cannot link Java class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 4 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* className */
            aload 4 /* ex */
            iconst_0
            invokevirtual org.jruby.Ruby.newNameError:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Z)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // java.lang.LinkageError ex
        25: .line 992
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 4 /* ex */
        start local 4 // java.lang.SecurityException ex
        26: .line 993
            aload 0 /* runtime */
            aload 4 /* ex */
            invokevirtual java.lang.SecurityException.getLocalizedMessage:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newSecurityError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // java.lang.SecurityException ex
        start local 3 // java.lang.Class clazz
        27: .line 996
      StackMap locals: java.lang.Class
      StackMap stack:
            iload 2 /* initJavaClass */
            ifeq 29
        28: .line 997
            aload 0 /* runtime */
            aload 0 /* runtime */
            aload 3 /* clazz */
            invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaClass;)Lorg/jruby/RubyModule;
            areturn
        29: .line 999
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 3 /* clazz */
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/RubyModule;
            areturn
        end local 3 // java.lang.Class clazz
        end local 2 // boolean initJavaClass
        end local 1 // java.lang.String className
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   30     0        runtime  Lorg/jruby/Ruby;
            0   30     1      className  Ljava/lang/String;
            0   30     2  initJavaClass  Z
            2    4     3          clazz  Ljava/lang/Class<*>;
           27   30     3          clazz  Ljava/lang/Class<*>;
            7    8     4             ex  Ljava/lang/ExceptionInInitializerError;
            9   21     4             ex  Ljava/lang/UnsupportedClassVersionError;
           10   21     5           type  Ljava/lang/String;
           11   21     6            msg  Ljava/lang/String;
           13   18     7            idx  I
           24   25     4             ex  Ljava/lang/LinkageError;
           26   27     4             ex  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
           0     6       6  Class java.lang.ExceptionInInitializerError
           0     6       8  Class java.lang.UnsupportedClassVersionError
           0     6      21  Class java.lang.NoClassDefFoundError
           0     6      21  Class java.lang.ClassNotFoundException
           0     6      23  Class java.lang.LinkageError
           0     6      25  Class java.lang.SecurityException
    MethodParameters:
               Name  Flags
      runtime        final
      className      final
      initJavaClass  final

  private static int mapMajorMinorClassVersionToJavaVersion(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String msg
        start local 1 // int offset
         0: .line 1004
            aload 0 /* msg */
            bipush 46
            iload 1 /* offset */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 2 /* end */
        start local 2 // int end
         1: iconst_m1
            if_icmpne 2
            aload 0 /* msg */
            invokevirtual java.lang.String.length:()I
            istore 2 /* end */
         2: .line 1005
      StackMap locals: int
      StackMap stack:
            aload 0 /* msg */
            iload 1 /* offset */
            iload 2 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 0 /* msg */
         3: .line 1007
            aload 0 /* msg */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            bipush 50
            isub
            bipush 6
            iadd
         4: ireturn
         5: .line 1009
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            pop
            iconst_0
            ireturn
        end local 2 // int end
        end local 1 // int offset
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0     msg  Ljava/lang/String;
            0    6     1  offset  I
            1    6     2     end  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      msg     
      offset  final

  public static org.jruby.runtime.builtin.IRubyObject get_proxy_or_package_under_package(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject parentPackage
        start local 3 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 1014
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1015
            aload 2 /* parentPackage */
            instanceof org.jruby.RubyModule
            ifne 3
         2: .line 1016
            aload 4 /* runtime */
            aload 2 /* parentPackage */
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getModule:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 1018
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* context */
            aload 2 /* parentPackage */
            checkcast org.jruby.RubyModule
            aload 3 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            iconst_1
            invokestatic org.jruby.javasupport.Java.getProxyOrPackageUnderPackage:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Ljava/lang/String;Z)Lorg/jruby/RubyModule;
            astore 5 /* result */
        start local 5 // org.jruby.RubyModule result
         4: .line 1019
            aload 5 /* result */
            ifnull 5
            aload 5 /* result */
            goto 6
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
         5: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         6: areturn
        end local 5 // org.jruby.RubyModule result
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject name
        end local 2 // org.jruby.runtime.builtin.IRubyObject parentPackage
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        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           self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2  parentPackage  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3           name  Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     4        runtime  Lorg/jruby/Ruby;
            4    7     5         result  Lorg/jruby/RubyModule;
    MethodParameters:
               Name  Flags
      context        final
      self           final
      parentPackage  final
      name           final

  private static org.jruby.RubyModule getTopLevelProxyOrPackage(org.jruby.Ruby, java.lang.String, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/RubyModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String name
        start local 2 // boolean cacheMethod
         0: .line 1025
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 1026
            aload 0 /* runtime */
            ldc "empty class or package name"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1031
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLowerCase:(C)Z
            ifeq 11
         3: .line 1033
            aload 0 /* runtime */
            aload 1 /* name */
            invokestatic org.jruby.javasupport.Java.getProxyClassOrNull:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 4 /* proxyClass */
        start local 4 // org.jruby.RubyModule proxyClass
         4: .line 1034
            aload 4 /* proxyClass */
            ifnull 6
            aload 4 /* proxyClass */
            astore 3 /* result */
        start local 3 // org.jruby.RubyModule result
         5: goto 15
        end local 3 // org.jruby.RubyModule result
         6: .line 1036
      StackMap locals: org.jruby.Ruby java.lang.String int top org.jruby.RubyModule
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* name */
            iconst_1
            invokestatic org.jruby.javasupport.Java.checkJavaReservedNames:(Lorg/jruby/Ruby;Ljava/lang/String;Z)V
         7: .line 1038
            aload 0 /* runtime */
            aload 1 /* name */
            invokestatic org.jruby.javasupport.Java.getJavaPackageModule:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 5 /* packageModule */
        start local 5 // org.jruby.RubyModule packageModule
         8: .line 1040
            aload 5 /* packageModule */
            ifnonnull 9
            aconst_null
            areturn
         9: .line 1042
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 5 /* packageModule */
            astore 3 /* result */
        end local 5 // org.jruby.RubyModule packageModule
        end local 4 // org.jruby.RubyModule proxyClass
        start local 3 // org.jruby.RubyModule result
        10: .line 1044
            goto 15
        end local 3 // org.jruby.RubyModule result
        11: .line 1046
      StackMap locals: org.jruby.Ruby java.lang.String int
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* name */
            invokestatic org.jruby.javasupport.Java.getProxyClassOrNull:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 4 /* javaClass */
        start local 4 // org.jruby.RubyModule javaClass
        12: .line 1047
            aload 4 /* javaClass */
            ifnull 14
            aload 4 /* javaClass */
            astore 3 /* result */
        start local 3 // org.jruby.RubyModule result
        13: goto 15
        end local 3 // org.jruby.RubyModule result
        14: .line 1053
      StackMap locals: org.jruby.Ruby java.lang.String int top org.jruby.RubyModule
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* name */
            invokestatic org.jruby.javasupport.Java.getPackageModule:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 3 /* result */
        end local 4 // org.jruby.RubyModule javaClass
        start local 3 // org.jruby.RubyModule result
        15: .line 1057
      StackMap locals: org.jruby.Ruby java.lang.String int org.jruby.RubyModule
      StackMap stack:
            iload 2 /* cacheMethod */
            ifeq 16
            aload 0 /* runtime */
            aload 1 /* name */
            aload 3 /* result */
            invokestatic org.jruby.javasupport.Java.bindJavaPackageOrClassMethod:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/RubyModule;)Z
            pop
        16: .line 1059
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.jruby.RubyModule result
        end local 2 // boolean cacheMethod
        end local 1 // java.lang.String name
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0        runtime  Lorg/jruby/Ruby;
            0   17     1           name  Ljava/lang/String;
            0   17     2    cacheMethod  Z
            5    6     3         result  Lorg/jruby/RubyModule;
           10   11     3         result  Lorg/jruby/RubyModule;
           13   14     3         result  Lorg/jruby/RubyModule;
           15   17     3         result  Lorg/jruby/RubyModule;
            4   10     4     proxyClass  Lorg/jruby/RubyModule;
            8   10     5  packageModule  Lorg/jruby/RubyModule;
           12   15     4      javaClass  Lorg/jruby/RubyModule;
    MethodParameters:
             Name  Flags
      runtime      final
      name         final
      cacheMethod  final

  private static boolean bindJavaPackageOrClassMethod(org.jruby.Ruby, java.lang.String, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/RubyModule;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String name
        start local 2 // org.jruby.RubyModule packageOrClass
         0: .line 1064
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getJavaModule:()Lorg/jruby/RubyModule;
            astore 3 /* javaPackage */
        start local 3 // org.jruby.RubyModule javaPackage
         1: .line 1065
            aload 3 /* javaPackage */
            aload 1 /* name */
            aload 2 /* packageOrClass */
            invokestatic org.jruby.javasupport.Java.bindJavaPackageOrClassMethod:(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;)Z
            ireturn
        end local 3 // org.jruby.RubyModule javaPackage
        end local 2 // org.jruby.RubyModule packageOrClass
        end local 1 // java.lang.String name
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0         runtime  Lorg/jruby/Ruby;
            0    2     1            name  Ljava/lang/String;
            0    2     2  packageOrClass  Lorg/jruby/RubyModule;
            1    2     3     javaPackage  Lorg/jruby/RubyModule;
    MethodParameters:
                Name  Flags
      runtime         final
      name            final
      packageOrClass  final

  private static boolean bindJavaPackageOrClassMethod(org.jruby.RubyModule, java.lang.String, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // org.jruby.RubyModule parentPackage
        start local 1 // java.lang.String name
        start local 2 // org.jruby.RubyModule packageOrClass
         0: .line 1071
            aload 0 /* parentPackage */
            invokevirtual org.jruby.RubyModule.getMetaClass:()Lorg/jruby/RubyClass;
            aload 1 /* name */
            iconst_0
            invokevirtual org.jruby.RubyClass.isMethodBound:(Ljava/lang/String;Z)Z
            ifeq 2
         1: .line 1072
            iconst_0
            ireturn
         2: .line 1075
      StackMap locals:
      StackMap stack:
            aload 0 /* parentPackage */
            invokevirtual org.jruby.RubyModule.getSingletonClass:()Lorg/jruby/RubyClass;
            astore 3 /* singleton */
        start local 3 // org.jruby.RubyClass singleton
         3: .line 1076
            aload 3 /* singleton */
            aload 1 /* name */
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            new org.jruby.javasupport.Java$JavaAccessor
            dup
            aload 3 /* singleton */
            aload 2 /* packageOrClass */
            aload 0 /* parentPackage */
            aload 1 /* name */
            invokespecial org.jruby.javasupport.Java$JavaAccessor.<init>:(Lorg/jruby/RubyClass;Lorg/jruby/RubyModule;Lorg/jruby/RubyModule;Ljava/lang/String;)V
            invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
         4: .line 1077
            iconst_1
            ireturn
        end local 3 // org.jruby.RubyClass singleton
        end local 2 // org.jruby.RubyModule packageOrClass
        end local 1 // java.lang.String name
        end local 0 // org.jruby.RubyModule parentPackage
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0   parentPackage  Lorg/jruby/RubyModule;
            0    5     1            name  Ljava/lang/String;
            0    5     2  packageOrClass  Lorg/jruby/RubyModule;
            3    5     3       singleton  Lorg/jruby/RubyClass;
    MethodParameters:
                Name  Flags
      parentPackage   final
      name            final
      packageOrClass  final

  private static org.jruby.RubyModule getProxyUnderClass(org.jruby.runtime.ThreadContext, org.jruby.RubyModule, java.lang.String);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/RubyModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule enclosingClass
        start local 2 // java.lang.String name
         0: .line 1183
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1185
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 2
            aload 3 /* runtime */
            ldc "empty class name"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1187
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* context */
            aload 1 /* enclosingClass */
            invokestatic org.jruby.javasupport.JavaClass.getJavaClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Ljava/lang/Class;
            astore 4 /* enclosing */
        start local 4 // java.lang.Class enclosing
         3: .line 1189
            aload 4 /* enclosing */
            ifnonnull 4
            aconst_null
            areturn
         4: .line 1191
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* enclosing */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 36
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* fullName */
        start local 5 // java.lang.String fullName
         5: .line 1193
            aload 3 /* runtime */
            aload 5 /* fullName */
            invokestatic org.jruby.javasupport.Java.getProxyClassOrNull:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 6 /* result */
        start local 6 // org.jruby.RubyModule result
         6: .line 1195
            aload 6 /* result */
            areturn
        end local 6 // org.jruby.RubyModule result
        end local 5 // java.lang.String fullName
        end local 4 // java.lang.Class enclosing
        end local 3 // org.jruby.Ruby runtime
        end local 2 // java.lang.String name
        end local 1 // org.jruby.RubyModule enclosingClass
        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  enclosingClass  Lorg/jruby/RubyModule;
            0    7     2            name  Ljava/lang/String;
            1    7     3         runtime  Lorg/jruby/Ruby;
            3    7     4       enclosing  Ljava/lang/Class<*>;
            5    7     5        fullName  Ljava/lang/String;
            6    7     6          result  Lorg/jruby/RubyModule;
    MethodParameters:
                Name  Flags
      context         final
      enclosingClass  final
      name            final

  public static org.jruby.runtime.builtin.IRubyObject get_inner_class(org.jruby.runtime.ThreadContext, org.jruby.RubyModule, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule self
        start local 2 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 1200
            aload 2 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 3 /* constName */
        start local 3 // java.lang.String constName
         1: .line 1202
            aload 0 /* context */
            aload 1 /* self */
            aload 3 /* constName */
            invokestatic org.jruby.javasupport.Java.getProxyUnderClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 4 /* innerClass */
        start local 4 // org.jruby.RubyModule innerClass
         2: .line 1203
            aload 4 /* innerClass */
            ifnonnull 4
         3: .line 1204
            aload 0 /* context */
            aload 1 /* self */
            aload 2 /* name */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.runtime.Helpers.invokeSuper:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 1206
      StackMap locals: java.lang.String org.jruby.RubyModule
      StackMap stack:
            aload 1 /* self */
            aload 3 /* constName */
            aload 4 /* innerClass */
            iconst_1
            invokestatic org.jruby.javasupport.Java.cacheConstant:(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;Z)Lorg/jruby/RubyModule;
            areturn
        end local 4 // org.jruby.RubyModule innerClass
        end local 3 // java.lang.String constName
        end local 2 // org.jruby.runtime.builtin.IRubyObject name
        end local 1 // org.jruby.RubyModule self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0     context  Lorg/jruby/runtime/ThreadContext;
            0    5     1        self  Lorg/jruby/RubyModule;
            0    5     2        name  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     3   constName  Ljava/lang/String;
            2    5     4  innerClass  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      context  final
      self     final
      name     final

  public static org.jruby.runtime.builtin.IRubyObject const_missing(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 1212
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1213
            aload 2 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 4 /* constName */
        start local 4 // java.lang.String constName
         2: .line 1216
            aload 3 /* runtime */
            aload 4 /* constName */
            iconst_0
            invokestatic org.jruby.javasupport.Java.getTopLevelProxyOrPackage:(Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/RubyModule;
            astore 5 /* packageOrClass */
        start local 5 // org.jruby.RubyModule packageOrClass
         3: .line 1217
            aload 5 /* packageOrClass */
            ifnonnull 4
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 1218
      StackMap locals: org.jruby.Ruby java.lang.String org.jruby.RubyModule
      StackMap stack:
            aload 1 /* self */
            checkcast org.jruby.RubyModule
            aload 4 /* constName */
            aload 5 /* packageOrClass */
            iconst_0
            invokestatic org.jruby.javasupport.Java.cacheConstant:(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;Z)Lorg/jruby/RubyModule;
            areturn
        end local 5 // org.jruby.RubyModule packageOrClass
        end local 4 // java.lang.String constName
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject name
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0         context  Lorg/jruby/runtime/ThreadContext;
            0    5     1            self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2            name  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     3         runtime  Lorg/jruby/Ruby;
            2    5     4       constName  Ljava/lang/String;
            3    5     5  packageOrClass  Lorg/jruby/RubyModule;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  final
      self     final
      name     final

  private static org.jruby.RubyModule cacheConstant(org.jruby.RubyModule, java.lang.String, org.jruby.RubyModule, boolean);
    descriptor: (Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;Z)Lorg/jruby/RubyModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.jruby.RubyModule owner
        start local 1 // java.lang.String constName
        start local 2 // org.jruby.RubyModule packageOrClass
        start local 3 // boolean hidden
         0: .line 1223
            aload 2 /* packageOrClass */
            ifnull 11
         1: .line 1226
            aload 0 /* owner */
            dup
            astore 4
            monitorenter
         2: .line 1227
            aload 0 /* owner */
            aload 1 /* constName */
            invokevirtual org.jruby.RubyModule.fetchConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* alreadySet */
        start local 5 // org.jruby.runtime.builtin.IRubyObject alreadySet
         3: .line 1228
            aload 5 /* alreadySet */
            ifnull 5
            aload 5 /* alreadySet */
            checkcast org.jruby.RubyModule
            aload 4
            monitorexit
         4: areturn
         5: .line 1229
      StackMap locals: org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* owner */
            aload 1 /* constName */
            aload 2 /* packageOrClass */
            iload 3 /* hidden */
            invokevirtual org.jruby.RubyModule.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 5 // org.jruby.runtime.builtin.IRubyObject alreadySet
         6: .line 1226
            aload 4
            monitorexit
         7: goto 10
      StackMap locals: org.jruby.RubyModule java.lang.String org.jruby.RubyModule int org.jruby.RubyModule
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        10: .line 1231
      StackMap locals:
      StackMap stack:
            aload 2 /* packageOrClass */
            areturn
        11: .line 1233
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // boolean hidden
        end local 2 // org.jruby.RubyModule packageOrClass
        end local 1 // java.lang.String constName
        end local 0 // org.jruby.RubyModule owner
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0           owner  Lorg/jruby/RubyModule;
            0   12     1       constName  Ljava/lang/String;
            0   12     2  packageOrClass  Lorg/jruby/RubyModule;
            0   12     3          hidden  Z
            3    6     5      alreadySet  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
           2     4       8  any
           5     7       8  any
           8     9       8  any
    MethodParameters:
                Name  Flags
      owner           final
      constName       final
      packageOrClass  final
      hidden          final

  public static org.jruby.runtime.builtin.IRubyObject method_missing(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 1240
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            iconst_1
            invokestatic org.jruby.javasupport.Java.getTopLevelProxyOrPackage:(Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/RubyModule;
            astore 3 /* result */
        start local 3 // org.jruby.RubyModule result
         1: .line 1241
            aload 3 /* result */
            ifnull 2
            aload 3 /* result */
            areturn
         2: .line 1242
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyModule result
        end local 2 // org.jruby.runtime.builtin.IRubyObject name
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2     name  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3   result  Lorg/jruby/RubyModule;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"method_missing"}, meta = true, required = 1)
    MethodParameters:
         Name  Flags
      context  
      self     final
      name     final

  public static org.jruby.runtime.builtin.IRubyObject method_missing(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1248
            aload 2 /* args */
            iconst_0
            aaload
            astore 3 /* name */
        start local 3 // org.jruby.runtime.builtin.IRubyObject name
         1: .line 1249
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 4
         2: .line 1250
            aload 2 /* args */
            arraylength
            iconst_1
            isub
            istore 4 /* count */
        start local 4 // int count
         3: .line 1251
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "Java does not have a method `"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "' with "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* count */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " arguments"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // int count
         4: .line 1253
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* context */
            aload 1 /* self */
            aload 3 /* name */
            invokestatic org.jruby.javasupport.Java.method_missing:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject name
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  context  Lorg/jruby/runtime/ThreadContext;
            0    5     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     3     name  Lorg/jruby/runtime/builtin/IRubyObject;
            3    4     4    count  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"method_missing"}, meta = true, rest = true)
    MethodParameters:
         Name  Flags
      context  
      self     final
      args     final

  public static org.jruby.runtime.builtin.IRubyObject get_top_level_proxy_or_package(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject name
         0: .line 1258
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* name */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            iconst_1
            invokestatic org.jruby.javasupport.Java.getTopLevelProxyOrPackage:(Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/RubyModule;
            astore 3 /* result */
        start local 3 // org.jruby.RubyModule result
         1: .line 1259
            aload 3 /* result */
            ifnull 2
            aload 3 /* result */
            goto 3
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
         2: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         3: areturn
        end local 3 // org.jruby.RubyModule result
        end local 2 // org.jruby.runtime.builtin.IRubyObject name
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        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     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2     name  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     3   result  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      context  final
      self     final
      name     final

  public static org.jruby.runtime.builtin.IRubyObject wrap(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject java_object
         0: .line 1263
            aload 0 /* runtime */
            aload 1 /* java_object */
            checkcast org.jruby.javasupport.JavaObject
            invokevirtual org.jruby.javasupport.JavaObject.getValue:()Ljava/lang/Object;
            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 java_object
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      runtime  Lorg/jruby/Ruby;
            0    1     1  java_object  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
             Name  Flags
      runtime      
      java_object  

  public static org.jruby.runtime.builtin.IRubyObject java_to_ruby(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject object
        start local 2 // org.jruby.runtime.Block unusedBlock
         0: .line 1273
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* object */
            invokestatic org.jruby.javasupport.JavaUtil.java_to_ruby:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
         1: areturn
         2: .line 1274
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         3: .line 1275
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            aload 3 /* e */
            aconst_null
            invokevirtual org.jruby.javasupport.JavaSupport.handleNativeException:(Ljava/lang/Throwable;Ljava/lang/reflect/Member;)V
         4: .line 1277
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // java.lang.RuntimeException e
        end local 2 // org.jruby.runtime.Block unusedBlock
        end local 1 // org.jruby.runtime.builtin.IRubyObject object
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     1       object  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2  unusedBlock  Lorg/jruby/runtime/Block;
            3    5     3            e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.RuntimeException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      org.jruby.anno.JRubyMethod(module = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
             Name  Flags
      recv         
      object       
      unusedBlock  

  public static org.jruby.runtime.builtin.IRubyObject ruby_to_java(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject object
        start local 2 // org.jruby.runtime.Block unusedBlock
         0: .line 1287
            aload 0 /* recv */
            aload 1 /* object */
            aload 2 /* unusedBlock */
            invokestatic org.jruby.javasupport.JavaUtil.ruby_to_java:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block unusedBlock
        end local 1 // org.jruby.runtime.builtin.IRubyObject object
        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       object  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  unusedBlock  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      org.jruby.anno.JRubyMethod(module = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
             Name  Flags
      recv         final
      object       
      unusedBlock  

  public static org.jruby.runtime.builtin.IRubyObject java_to_primitive(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject object
        start local 2 // org.jruby.runtime.Block unusedBlock
         0: .line 1293
            aload 0 /* recv */
            aload 1 /* object */
            aload 2 /* unusedBlock */
            invokestatic org.jruby.javasupport.JavaUtil.java_to_primitive:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block unusedBlock
        end local 1 // org.jruby.runtime.builtin.IRubyObject object
        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       object  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  unusedBlock  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      org.jruby.anno.JRubyMethod(module = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
             Name  Flags
      recv         
      object       
      unusedBlock  

  public static org.jruby.runtime.builtin.IRubyObject new_proxy_instance2(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject wrapper
        start local 2 // org.jruby.runtime.builtin.IRubyObject ifcs
        start local 3 // org.jruby.runtime.Block block
         0: .line 1299
            aload 2 /* ifcs */
            checkcast org.jruby.RubyArray
            invokevirtual org.jruby.RubyArray.toJavaArray:()[Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* javaClasses */
        start local 4 // org.jruby.runtime.builtin.IRubyObject[] javaClasses
         1: .line 1303
            aload 4 /* javaClasses */
            arraylength
            anewarray java.lang.Class
            astore 5 /* interfaces */
        start local 5 // java.lang.Class[] interfaces
         2: .line 1304
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 8
         4: .line 1305
      StackMap locals: org.jruby.runtime.builtin.IRubyObject[] java.lang.Class[] int
      StackMap stack:
            aload 4 /* javaClasses */
            iload 6 /* i */
            aaload
            instanceof org.jruby.javasupport.JavaClass
            ifeq 5
            aload 4 /* javaClasses */
            iload 6 /* i */
            aaload
            checkcast org.jruby.javasupport.JavaClass
            invokevirtual org.jruby.javasupport.JavaClass.interface_p:()Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyBoolean.isTrue:()Z
            ifne 6
         5: .line 1306
      StackMap locals:
      StackMap stack:
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "Java interface expected. got: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* javaClasses */
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 1308
      StackMap locals:
      StackMap stack:
            aload 5 /* interfaces */
            iload 6 /* i */
            aload 4 /* javaClasses */
            iload 6 /* i */
            aaload
            checkcast org.jruby.javasupport.JavaClass
            invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
            aastore
         7: .line 1304
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            aload 4 /* javaClasses */
            arraylength
            if_icmplt 4
        end local 6 // int i
         9: .line 1311
            aload 1 /* wrapper */
            aload 5 /* interfaces */
            invokestatic org.jruby.javasupport.Java.newInterfaceImpl:(Lorg/jruby/runtime/builtin/IRubyObject;[Ljava/lang/Class;)Lorg/jruby/javasupport/JavaObject;
            areturn
        end local 5 // java.lang.Class[] interfaces
        end local 4 // org.jruby.runtime.builtin.IRubyObject[] javaClasses
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject ifcs
        end local 1 // org.jruby.runtime.builtin.IRubyObject wrapper
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     1      wrapper  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     2         ifcs  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     3        block  Lorg/jruby/runtime/Block;
            1   10     4  javaClasses  [Lorg/jruby/runtime/builtin/IRubyObject;
            2   10     5   interfaces  [Ljava/lang/Class;
            3    9     6            i  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 2, module = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      recv     
      wrapper  final
      ifcs     
      block    

  public static org.jruby.javasupport.JavaObject newInterfaceImpl(org.jruby.runtime.builtin.IRubyObject, java.lang.Class[]);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Ljava/lang/Class;)Lorg/jruby/javasupport/JavaObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject wrapper
        start local 1 // java.lang.Class[] interfaces
         0: .line 1315
            aload 0 /* wrapper */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1317
            aload 1 /* interfaces */
            arraylength
            istore 3 /* length */
        start local 3 // int length
         2: .line 1318
            iload 3 /* length */
            tableswitch { // 1 - 2
                    1: 3
                    2: 4
              default: 5
          }
         3: .line 1320
      StackMap locals: org.jruby.Ruby int
      StackMap stack:
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            aload 1 /* interfaces */
            iconst_0
            aaload
            aastore
            dup
            iconst_1
            ldc Lorg/jruby/java/proxies/RubyObjectHolderProxy;
            aastore
            astore 1 /* interfaces */
         4: .line 1322
      StackMap locals:
      StackMap stack:
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            aload 1 /* interfaces */
            iconst_0
            aaload
            aastore
            dup
            iconst_1
            aload 1 /* interfaces */
            iconst_1
            aaload
            aastore
            dup
            iconst_2
            ldc Lorg/jruby/java/proxies/RubyObjectHolderProxy;
            aastore
            astore 1 /* interfaces */
         5: .line 1324
      StackMap locals:
      StackMap stack:
            aload 1 /* interfaces */
            iload 3 /* length */
            iconst_1
            iadd
            invokestatic org.jruby.util.ArraySupport.newCopy:([Ljava/lang/Class;I)[Ljava/lang/Class;
            astore 1 /* interfaces */
         6: .line 1325
            aload 1 /* interfaces */
            iload 3 /* length */
            ldc Lorg/jruby/java/proxies/RubyObjectHolderProxy;
            aastore
         7: .line 1328
            aload 0 /* wrapper */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            astore 4 /* wrapperClass */
        start local 4 // org.jruby.RubyClass wrapperClass
         8: .line 1329
            aload 4 /* wrapperClass */
            invokevirtual org.jruby.RubyClass.isSingleton:()Z
            ifeq 9
            aload 4 /* wrapperClass */
            invokevirtual org.jruby.RubyClass.getRealClass:()Lorg/jruby/RubyClass;
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getProc:()Lorg/jruby/RubyClass;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 5 /* isProc */
        start local 5 // boolean isProc
        11: .line 1331
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
            astore 6 /* jrubyClassLoader */
        start local 6 // org.jruby.util.JRubyClassLoader jrubyClassLoader
        12: .line 1333
            getstatic org.jruby.RubyInstanceConfig.INTERFACES_USE_PROXY:Z
            ifeq 14
        13: .line 1334
            aload 2 /* runtime */
            aload 0 /* wrapper */
            aload 1 /* interfaces */
            aload 6 /* jrubyClassLoader */
            invokestatic org.jruby.javasupport.Java.newProxyInterfaceImpl:(Lorg/jruby/runtime/builtin/IRubyObject;[Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaObject.wrap:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/javasupport/JavaObject;
            areturn
        14: .line 1339
      StackMap locals: int org.jruby.util.JRubyClassLoader
      StackMap stack:
            aload 1 /* interfaces */
            invokestatic org.jruby.javasupport.Java.interfacesHashCode:([Ljava/lang/Class;)I
            istore 8 /* interfacesHashCode */
        start local 8 // int interfacesHashCode
        15: .line 1342
            iload 5 /* isProc */
            ifeq 19
        16: .line 1343
            bipush 31
            iload 8 /* interfacesHashCode */
            imul
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getProc:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.hashCode:()I
            iadd
            istore 8 /* interfacesHashCode */
        17: .line 1344
            aload 6 /* jrubyClassLoader */
            astore 7 /* classLoader */
        start local 7 // org.jruby.util.ClassDefiningClassLoader classLoader
        18: .line 1345
            goto 21
        end local 7 // org.jruby.util.ClassDefiningClassLoader classLoader
        19: .line 1347
      StackMap locals: org.jruby.runtime.builtin.IRubyObject java.lang.Class[] org.jruby.Ruby int org.jruby.RubyClass int org.jruby.util.JRubyClassLoader top int
      StackMap stack:
            bipush 31
            iload 8 /* interfacesHashCode */
            imul
            aload 4 /* wrapperClass */
            invokevirtual org.jruby.RubyClass.getRealClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.hashCode:()I
            iadd
            istore 8 /* interfacesHashCode */
        20: .line 1348
            new org.jruby.util.OneShotClassLoader
            dup
            aload 6 /* jrubyClassLoader */
            invokespecial org.jruby.util.OneShotClassLoader.<init>:(Lorg/jruby/util/JRubyClassLoader;)V
            astore 7 /* classLoader */
        start local 7 // org.jruby.util.ClassDefiningClassLoader classLoader
        21: .line 1350
      StackMap locals: org.jruby.runtime.builtin.IRubyObject java.lang.Class[] org.jruby.Ruby int org.jruby.RubyClass int org.jruby.util.JRubyClassLoader org.jruby.util.ClassDefiningClassLoader int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "org.jruby.gen.InterfaceImpl"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* interfacesHashCode */
            invokestatic java.lang.Math.abs:(I)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* implClassName */
        start local 9 // java.lang.String implClassName
        22: .line 1353
            aload 9 /* implClassName */
            iconst_1
            aload 6 /* jrubyClassLoader */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 10 /* proxyImplClass */
        start local 10 // java.lang.Class proxyImplClass
        23: .line 1354
            goto 26
        end local 10 // java.lang.Class proxyImplClass
        24: .line 1355
      StackMap locals: org.jruby.runtime.builtin.IRubyObject java.lang.Class[] org.jruby.Ruby int org.jruby.RubyClass int org.jruby.util.JRubyClassLoader org.jruby.util.ClassDefiningClassLoader int java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            pop
        25: .line 1356
            aload 1 /* interfaces */
            aload 4 /* wrapperClass */
            aload 2 /* runtime */
            aload 9 /* implClassName */
            aload 7 /* classLoader */
            invokestatic org.jruby.java.codegen.RealClassGenerator.createOldStyleImplClass:([Ljava/lang/Class;Lorg/jruby/RubyClass;Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/util/ClassDefiningClassLoader;)Ljava/lang/Class;
            astore 10 /* proxyImplClass */
        start local 10 // java.lang.Class proxyImplClass
        26: .line 1360
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 10 /* proxyImplClass */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 11 /* proxyConstructor */
        start local 11 // java.lang.reflect.Constructor proxyConstructor
        27: .line 1361
            aload 2 /* runtime */
            aload 11 /* proxyConstructor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* wrapper */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaObject.wrap:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/javasupport/JavaObject;
        28: areturn
        end local 11 // java.lang.reflect.Constructor proxyConstructor
        29: .line 1363
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 11 /* e */
        start local 11 // java.lang.reflect.InvocationTargetException e
        30: .line 1364
            aload 2 /* runtime */
            aload 11 /* e */
            invokestatic org.jruby.javasupport.Java.mapGeneratedProxyException:(Lorg/jruby/Ruby;Ljava/lang/reflect/InvocationTargetException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 11 // java.lang.reflect.InvocationTargetException e
        31: .line 1366
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 11 /* e */
        start local 11 // java.lang.ReflectiveOperationException e
        32: .line 1367
            aload 2 /* runtime */
            aload 11 /* e */
            invokestatic org.jruby.javasupport.Java.mapGeneratedProxyException:(Lorg/jruby/Ruby;Ljava/lang/ReflectiveOperationException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 11 // java.lang.ReflectiveOperationException e
        end local 10 // java.lang.Class proxyImplClass
        end local 9 // java.lang.String implClassName
        end local 8 // int interfacesHashCode
        end local 7 // org.jruby.util.ClassDefiningClassLoader classLoader
        end local 6 // org.jruby.util.JRubyClassLoader jrubyClassLoader
        end local 5 // boolean isProc
        end local 4 // org.jruby.RubyClass wrapperClass
        end local 3 // int length
        end local 2 // org.jruby.Ruby runtime
        end local 1 // java.lang.Class[] interfaces
        end local 0 // org.jruby.runtime.builtin.IRubyObject wrapper
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   33     0             wrapper  Lorg/jruby/runtime/builtin/IRubyObject;
            0   33     1          interfaces  [Ljava/lang/Class;
            1   33     2             runtime  Lorg/jruby/Ruby;
            2   33     3              length  I
            8   33     4        wrapperClass  Lorg/jruby/RubyClass;
           11   33     5              isProc  Z
           12   33     6    jrubyClassLoader  Lorg/jruby/util/JRubyClassLoader;
           18   19     7         classLoader  Lorg/jruby/util/ClassDefiningClassLoader;
           21   33     7         classLoader  Lorg/jruby/util/ClassDefiningClassLoader;
           15   33     8  interfacesHashCode  I
           22   33     9       implClassName  Ljava/lang/String;
           23   24    10      proxyImplClass  Ljava/lang/Class<*>;
           26   33    10      proxyImplClass  Ljava/lang/Class<*>;
           27   29    11    proxyConstructor  Ljava/lang/reflect/Constructor<*>;
           30   31    11                   e  Ljava/lang/reflect/InvocationTargetException;
           32   33    11                   e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
          22    23      24  Class java.lang.ClassNotFoundException
          26    28      29  Class java.lang.reflect.InvocationTargetException
          26    28      31  Class java.lang.ReflectiveOperationException
    MethodParameters:
            Name  Flags
      wrapper     final
      interfaces  

  private static java.lang.Object newProxyInterfaceImpl(org.jruby.runtime.builtin.IRubyObject, java.lang.Class[], java.lang.ClassLoader);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.runtime.builtin.IRubyObject wrapper
        start local 1 // java.lang.Class[] interfaces
        start local 2 // java.lang.ClassLoader loader
         0: .line 1373
            aload 2 /* loader */
            aload 1 /* interfaces */
            new org.jruby.javasupport.Java$InterfaceProxyHandler
            dup
            aload 0 /* wrapper */
            aload 1 /* interfaces */
            invokespecial org.jruby.javasupport.Java$InterfaceProxyHandler.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;[Ljava/lang/Class;)V
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.ClassLoader loader
        end local 1 // java.lang.Class[] interfaces
        end local 0 // org.jruby.runtime.builtin.IRubyObject wrapper
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0     wrapper  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1  interfaces  [Ljava/lang/Class;
            0    1     2      loader  Ljava/lang/ClassLoader;
    MethodParameters:
            Name  Flags
      wrapper     final
      interfaces  final
      loader      final

  public static java.lang.Class generateRealClass(org.jruby.RubyClass);
    descriptor: (Lorg/jruby/RubyClass;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.jruby.RubyClass clazz
         0: .line 1485
            aload 0 /* clazz */
            invokevirtual org.jruby.RubyClass.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 1486
            aload 0 /* clazz */
            invokestatic org.jruby.javasupport.Java.getInterfacesFromRubyClass:(Lorg/jruby/RubyClass;)[Ljava/lang/Class;
            astore 2 /* interfaces */
        start local 2 // java.lang.Class[] interfaces
         2: .line 1490
            aload 2 /* interfaces */
            invokestatic org.jruby.javasupport.Java.interfacesHashCode:([Ljava/lang/Class;)I
            istore 3 /* interfacesHashCode */
        start local 3 // int interfacesHashCode
         3: .line 1492
            bipush 31
            iload 3 /* interfacesHashCode */
            imul
            aload 0 /* clazz */
            invokevirtual org.jruby.RubyClass.hashCode:()I
            iadd
            istore 3 /* interfacesHashCode */
         4: .line 1494
            ldc "org.jruby.gen."
            astore 4 /* implClassName */
        start local 4 // java.lang.String implClassName
         5: .line 1495
            aload 0 /* clazz */
            invokevirtual org.jruby.RubyClass.getBaseName:()Ljava/lang/String;
            ifnonnull 8
         6: .line 1497
            new java.lang.StringBuilder
            dup
            aload 4 /* implClassName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "anon_class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* clazz */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokestatic java.lang.Math.abs:(I)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 3 /* interfacesHashCode */
            invokestatic java.lang.Math.abs:(I)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* implClassName */
         7: .line 1498
            goto 9
         8: .line 1499
      StackMap locals: org.jruby.RubyClass org.jruby.Ruby java.lang.Class[] int java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* implClassName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* clazz */
            invokevirtual org.jruby.RubyClass.getName:()Ljava/lang/String;
            ldc "::"
            ldc "$$"
            invokestatic org.jruby.util.StringSupport.replaceAll:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 3 /* interfacesHashCode */
            invokestatic java.lang.Math.abs:(I)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* implClassName */
         9: .line 1503
      StackMap locals:
      StackMap stack:
            aload 4 /* implClassName */
            iconst_1
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 5 /* proxyImplClass */
        start local 5 // java.lang.Class proxyImplClass
        10: .line 1504
            goto 18
        end local 5 // java.lang.Class proxyImplClass
        11: .line 1505
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        12: .line 1507
            aload 0 /* clazz */
            invokevirtual org.jruby.RubyClass.getSuperClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getRealClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getReifiedClass:()Ljava/lang/Class;
            astore 6 /* superClass */
        start local 6 // java.lang.Class superClass
        13: .line 1508
            aload 6 /* superClass */
            ifnonnull 14
            ldc Lorg/jruby/RubyObject;
            astore 6 /* superClass */
        14: .line 1509
      StackMap locals: org.jruby.RubyClass org.jruby.Ruby java.lang.Class[] int java.lang.String top java.lang.Class
      StackMap stack:
            aload 6 /* superClass */
            aload 2 /* interfaces */
            aload 0 /* clazz */
            aload 1 /* runtime */
            aload 4 /* implClassName */
            invokestatic org.jruby.java.codegen.RealClassGenerator.createRealImplClass:(Ljava/lang/Class;[Ljava/lang/Class;Lorg/jruby/RubyClass;Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* proxyImplClass */
        start local 5 // java.lang.Class proxyImplClass
        15: .line 1512
            getstatic org.jruby.javasupport.Java.NEW_STYLE_EXTENSION:Z
            ifeq 18
        16: .line 1513
            ldc Lorg/jruby/RubyBasicObject;
            aload 5 /* proxyImplClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 18
            aload 0 /* clazz */
            invokevirtual org.jruby.RubyClass.getMethods:()Ljava/util/Map;
            ldc "initialize"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 18
        17: .line 1514
            aload 0 /* clazz */
            ldc "initialize"
            new org.jruby.javasupport.Java$DummyInitialize
            dup
            aload 0 /* clazz */
            invokespecial org.jruby.javasupport.Java$DummyInitialize.<init>:(Lorg/jruby/RubyClass;)V
            invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
        end local 6 // java.lang.Class superClass
        18: .line 1517
      StackMap locals: org.jruby.RubyClass org.jruby.Ruby java.lang.Class[] int java.lang.String java.lang.Class
      StackMap stack:
            aload 0 /* clazz */
            aload 5 /* proxyImplClass */
            invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
        19: .line 1518
            aload 0 /* clazz */
            aload 5 /* proxyImplClass */
            invokevirtual org.jruby.RubyClass.setRubyClassAllocator:(Ljava/lang/Class;)V
        20: .line 1520
            aload 5 /* proxyImplClass */
            areturn
        end local 5 // java.lang.Class proxyImplClass
        end local 4 // java.lang.String implClassName
        end local 3 // int interfacesHashCode
        end local 2 // java.lang.Class[] interfaces
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyClass clazz
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   21     0               clazz  Lorg/jruby/RubyClass;
            1   21     1             runtime  Lorg/jruby/Ruby;
            2   21     2          interfaces  [Ljava/lang/Class;
            3   21     3  interfacesHashCode  I
            5   21     4       implClassName  Ljava/lang/String;
           10   11     5      proxyImplClass  Ljava/lang/Class<+Lorg/jruby/runtime/builtin/IRubyObject;>;
           15   21     5      proxyImplClass  Ljava/lang/Class<+Lorg/jruby/runtime/builtin/IRubyObject;>;
           13   18     6          superClass  Ljava/lang/Class<+Lorg/jruby/runtime/builtin/IRubyObject;>;
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.ClassNotFoundException
    MethodParameters:
       Name  Flags
      clazz  final

  public static java.lang.reflect.Constructor getRealClassConstructor(org.jruby.Ruby, java.lang.Class<?>);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Class proxyImplClass
         0: .line 1536
            aload 1 /* proxyImplClass */
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/Ruby;
            aastore
            dup
            iconst_1
            ldc Lorg/jruby/RubyClass;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
         1: areturn
         2: .line 1538
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            astore 2 /* e */
        start local 2 // java.lang.NoSuchMethodException e
         3: .line 1539
            aload 0 /* runtime */
            aload 2 /* e */
            invokestatic org.jruby.javasupport.Java.mapGeneratedProxyException:(Lorg/jruby/Ruby;Ljava/lang/ReflectiveOperationException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.NoSuchMethodException e
        end local 1 // java.lang.Class proxyImplClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0         runtime  Lorg/jruby/Ruby;
            0    4     1  proxyImplClass  Ljava/lang/Class<*>;
            3    4     2               e  Ljava/lang/NoSuchMethodException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NoSuchMethodException
    Signature: (Lorg/jruby/Ruby;Ljava/lang/Class<*>;)Ljava/lang/reflect/Constructor;
    MethodParameters:
                Name  Flags
      runtime         final
      proxyImplClass  

  public static org.jruby.runtime.builtin.IRubyObject constructProxy(org.jruby.Ruby, java.lang.reflect.Constructor, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/reflect/Constructor;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.reflect.Constructor proxyConstructor
        start local 2 // org.jruby.RubyClass clazz
         0: .line 1545
            aload 1 /* proxyConstructor */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* runtime */
            aastore
            dup
            iconst_1
            aload 2 /* clazz */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
         1: areturn
         2: .line 1547
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* e */
        start local 3 // java.lang.reflect.InvocationTargetException e
         3: .line 1548
            aload 0 /* runtime */
            aload 3 /* e */
            invokestatic org.jruby.javasupport.Java.mapGeneratedProxyException:(Lorg/jruby/Ruby;Ljava/lang/reflect/InvocationTargetException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.reflect.InvocationTargetException e
         4: .line 1550
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 3 /* e */
        start local 3 // java.lang.ReflectiveOperationException e
         5: .line 1551
            aload 0 /* runtime */
            aload 3 /* e */
            invokestatic org.jruby.javasupport.Java.mapGeneratedProxyException:(Lorg/jruby/Ruby;Ljava/lang/ReflectiveOperationException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.ReflectiveOperationException e
        end local 2 // org.jruby.RubyClass clazz
        end local 1 // java.lang.reflect.Constructor proxyConstructor
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0           runtime  Lorg/jruby/Ruby;
            0    6     1  proxyConstructor  Ljava/lang/reflect/Constructor;
            0    6     2             clazz  Lorg/jruby/RubyClass;
            3    4     3                 e  Ljava/lang/reflect/InvocationTargetException;
            5    6     3                 e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.reflect.InvocationTargetException
           0     1       4  Class java.lang.ReflectiveOperationException
    MethodParameters:
                  Name  Flags
      runtime           
      proxyConstructor  
      clazz             

  private static org.jruby.exceptions.RaiseException mapGeneratedProxyException(org.jruby.Ruby, java.lang.ReflectiveOperationException);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/ReflectiveOperationException;)Lorg/jruby/exceptions/RaiseException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.ReflectiveOperationException e
         0: .line 1556
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "Exception instantiating generated interface impl:\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            astore 2 /* ex */
        start local 2 // org.jruby.exceptions.RaiseException ex
         1: .line 1557
            aload 2 /* ex */
            aload 1 /* e */
            invokevirtual org.jruby.exceptions.RaiseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         2: .line 1558
            aload 2 /* ex */
            areturn
        end local 2 // org.jruby.exceptions.RaiseException ex
        end local 1 // java.lang.ReflectiveOperationException e
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1        e  Ljava/lang/ReflectiveOperationException;
            1    3     2       ex  Lorg/jruby/exceptions/RaiseException;
    MethodParameters:
         Name  Flags
      runtime  final
      e        final

  private static org.jruby.exceptions.RaiseException mapGeneratedProxyException(org.jruby.Ruby, java.lang.reflect.InvocationTargetException);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/reflect/InvocationTargetException;)Lorg/jruby/exceptions/RaiseException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.reflect.InvocationTargetException e
         0: .line 1562
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "Exception instantiating generated interface impl:\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            astore 2 /* ex */
        start local 2 // org.jruby.exceptions.RaiseException ex
         1: .line 1563
            aload 2 /* ex */
            aload 1 /* e */
            invokevirtual org.jruby.exceptions.RaiseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         2: .line 1564
            aload 2 /* ex */
            areturn
        end local 2 // org.jruby.exceptions.RaiseException ex
        end local 1 // java.lang.reflect.InvocationTargetException e
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1        e  Ljava/lang/reflect/InvocationTargetException;
            1    3     2       ex  Lorg/jruby/exceptions/RaiseException;
    MethodParameters:
         Name  Flags
      runtime  final
      e        final

  public static org.jruby.runtime.builtin.IRubyObject allocateProxy(java.lang.Object, org.jruby.RubyClass);
    descriptor: (Ljava/lang/Object;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.lang.Object javaObject
        start local 1 // org.jruby.RubyClass clazz
         0: .line 1568
            aload 1 /* clazz */
            invokevirtual org.jruby.RubyClass.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1570
            aload 1 /* clazz */
            invokevirtual org.jruby.RubyClass.getSuperClass:()Lorg/jruby/RubyClass;
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
            invokevirtual org.jruby.javasupport.JavaSupport.getArrayProxyClass:()Lorg/jruby/RubyClass;
            if_acmpne 3
         2: .line 1571
            new org.jruby.java.proxies.ArrayJavaProxy
            dup
            aload 2 /* runtime */
            aload 1 /* clazz */
            aload 0 /* javaObject */
            aload 0 /* javaObject */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()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
         3: .line 1574
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* clazz */
            invokevirtual org.jruby.RubyClass.allocate:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* proxy */
        start local 3 // org.jruby.runtime.builtin.IRubyObject proxy
         4: .line 1575
            aload 3 /* proxy */
            instanceof org.jruby.java.proxies.JavaProxy
            ifeq 7
         5: .line 1576
            aload 3 /* proxy */
            checkcast org.jruby.java.proxies.JavaProxy
            aload 0 /* javaObject */
            invokevirtual org.jruby.java.proxies.JavaProxy.setObject:(Ljava/lang/Object;)V
         6: .line 1577
            goto 9
         7: .line 1579
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* runtime */
            aload 0 /* javaObject */
            invokestatic org.jruby.javasupport.JavaObject.wrap:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/javasupport/JavaObject;
            astore 4 /* wrappedObject */
        start local 4 // org.jruby.javasupport.JavaObject wrappedObject
         8: .line 1580
            aload 3 /* proxy */
            aload 4 /* wrappedObject */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.dataWrapStruct:(Ljava/lang/Object;)V
        end local 4 // org.jruby.javasupport.JavaObject wrappedObject
         9: .line 1582
      StackMap locals:
      StackMap stack:
            aload 3 /* proxy */
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject proxy
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.RubyClass clazz
        end local 0 // java.lang.Object javaObject
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0     javaObject  Ljava/lang/Object;
            0   10     1          clazz  Lorg/jruby/RubyClass;
            1   10     2        runtime  Lorg/jruby/Ruby;
            4   10     3          proxy  Lorg/jruby/runtime/builtin/IRubyObject;
            8    9     4  wrappedObject  Lorg/jruby/javasupport/JavaObject;
    MethodParameters:
            Name  Flags
      javaObject  
      clazz       

  public static org.jruby.runtime.builtin.IRubyObject wrapJavaObject(org.jruby.Ruby, java.lang.Object);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.Object object
         0: .line 1586
            aload 1 /* object */
            aload 0 /* runtime */
            aload 1 /* object */
            invokestatic org.jruby.javasupport.Java.getProxyClassForObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/RubyClass;
            invokestatic org.jruby.javasupport.Java.allocateProxy:(Ljava/lang/Object;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // java.lang.Object object
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1   object  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      runtime  
      object   

  public static java.lang.Class[] getInterfacesFromRubyClass(org.jruby.RubyClass);
    descriptor: (Lorg/jruby/RubyClass;)[Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.jruby.RubyClass klass
         0: .line 1591
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* interfaces */
        start local 1 // java.util.Set interfaces
         1: .line 1593
            goto 8
         2: .line 1594
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* klass */
            invokevirtual org.jruby.RubyClass.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
            ldc "@java_interfaces"
            invokeinterface org.jruby.runtime.builtin.InstanceVariables.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* maybeInterfaces */
        start local 2 // org.jruby.runtime.builtin.IRubyObject maybeInterfaces
         3: .line 1595
            aload 2 /* maybeInterfaces */
            instanceof org.jruby.RubyArray
            ifeq 7
         4: .line 1596
            aload 2 /* maybeInterfaces */
            checkcast org.jruby.RubyArray
            astore 3 /* moreInterfaces */
        start local 3 // org.jruby.RubyArray moreInterfaces
         5: .line 1597
            aload 3 /* moreInterfaces */
            invokevirtual org.jruby.RubyArray.isFrozen:()Z
            ifne 6
            aload 3 /* moreInterfaces */
            iconst_1
            invokevirtual org.jruby.RubyArray.setFrozen:(Z)V
         6: .line 1598
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.RubyArray
      StackMap stack:
            aload 1 /* interfaces */
            aload 3 /* moreInterfaces */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 3 // org.jruby.RubyArray moreInterfaces
         7: .line 1600
      StackMap locals:
      StackMap stack:
            aload 0 /* klass */
            invokevirtual org.jruby.RubyClass.getSuperClass:()Lorg/jruby/RubyClass;
            astore 0 /* klass */
        end local 2 // org.jruby.runtime.builtin.IRubyObject maybeInterfaces
         8: .line 1593
      StackMap locals:
      StackMap stack:
            aload 0 /* klass */
            ifnonnull 2
         9: .line 1603
            aload 1 /* interfaces */
            aload 1 /* interfaces */
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.Class
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            areturn
        end local 1 // java.util.Set interfaces
        end local 0 // org.jruby.RubyClass klass
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0            klass  Lorg/jruby/RubyClass;
            1   10     1       interfaces  Ljava/util/Set<Ljava/lang/Class;>;
            3    8     2  maybeInterfaces  Lorg/jruby/runtime/builtin/IRubyObject;
            5    7     3   moreInterfaces  Lorg/jruby/RubyArray;
    MethodParameters:
       Name  Flags
      klass  

  private static int interfacesHashCode(java.lang.Class[]);
    descriptor: ([Ljava/lang/Class;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // java.lang.Class[] a
         0: .line 1607
            aload 0 /* a */
            ifnonnull 2
         1: .line 1608
            iconst_0
            ireturn
         2: .line 1611
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 1 /* result */
        start local 1 // int result
         3: .line 1613
            aload 0 /* a */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: java.lang.Class[] int top int int java.lang.Class[]
      StackMap stack:
         4: aload 5
            iload 3
            aaload
            astore 2 /* element */
        start local 2 // java.lang.Class element
         5: .line 1614
            bipush 31
            iload 1 /* result */
            imul
            aload 2 /* element */
            ifnonnull 6
            iconst_0
            goto 7
      StackMap locals: java.lang.Class[] int java.lang.Class int int java.lang.Class[]
      StackMap stack: int
         6: aload 2 /* element */
            invokevirtual java.lang.Object.hashCode:()I
      StackMap locals: java.lang.Class[] int java.lang.Class int int java.lang.Class[]
      StackMap stack: int int
         7: iadd
            istore 1 /* result */
        end local 2 // java.lang.Class element
         8: .line 1613
            iinc 3 1
      StackMap locals: java.lang.Class[] int top int int java.lang.Class[]
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 4
        10: .line 1616
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // java.lang.Class[] a
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0        a  [Ljava/lang/Class;
            3   11     1   result  I
            5    8     2  element  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      a     

  public static java.lang.reflect.Method getFunctionalInterfaceMethod(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.Class iface
         0: .line 1625
            getstatic org.jruby.javasupport.Java.$assertionsDisabled:Z
            ifne 1
            aload 0 /* iface */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1626
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* single */
        start local 1 // java.lang.reflect.Method single
         2: .line 1627
            aload 0 /* iface */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 14
      StackMap locals: java.lang.Class java.lang.reflect.Method top int int java.lang.reflect.Method[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* method */
        start local 2 // java.lang.reflect.Method method
         4: .line 1628
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            istore 6 /* mod */
        start local 6 // int mod
         5: .line 1629
            iload 6 /* mod */
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 6
            goto 13
         6: .line 1630
      StackMap locals: java.lang.Class java.lang.reflect.Method java.lang.reflect.Method int int java.lang.reflect.Method[] int
      StackMap stack:
            iload 6 /* mod */
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifeq 13
         7: .line 1632
            ldc Ljava/lang/Object;
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         8: .line 1633
            goto 13
         9: .line 1635
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
            goto 11
        10: .line 1636
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
        11: .line 1641
      StackMap locals:
      StackMap stack:
            aload 1 /* single */
            ifnonnull 12
            aload 2 /* method */
            astore 1 /* single */
            goto 13
        12: .line 1642
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // int mod
        end local 2 // java.lang.reflect.Method method
        13: .line 1627
      StackMap locals: java.lang.Class java.lang.reflect.Method top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        14: iload 3
            iload 4
            if_icmplt 3
        15: .line 1644
            aload 1 /* single */
            areturn
        end local 1 // java.lang.reflect.Method single
        end local 0 // java.lang.Class iface
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0   iface  Ljava/lang/Class<*>;
            2   16     1  single  Ljava/lang/reflect/Method;
            4   13     2  method  Ljava/lang/reflect/Method;
            5   13     6     mod  I
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.NoSuchMethodException
           7     8      10  Class java.lang.SecurityException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    MethodParameters:
       Name  Flags
      iface  final

  public static <T extends java.lang.reflect.AccessibleObject extends java.lang.reflect.Member> boolean trySetAccessible();
    descriptor: (Ljava/lang/reflect/AccessibleObject;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.reflect.AccessibleObject member
         0: .line 1656
            aload 0 /* member */
            ldc Lorg/jruby/javasupport/Java;
            invokestatic com.headius.backport9.modules.Modules.trySetAccessible:(Ljava/lang/reflect/AccessibleObject;Ljava/lang/Class;)Z
            ireturn
        end local 0 // java.lang.reflect.AccessibleObject member
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  member  TT;
    Signature: <T:Ljava/lang/reflect/AccessibleObject;:Ljava/lang/reflect/Member;>(TT;)Z
    MethodParameters:
        Name  Flags
      member  
}
SourceFile: "Java.java"
NestMembers:
  org.jruby.javasupport.Java$1  org.jruby.javasupport.Java$2  org.jruby.javasupport.Java$ByteArrayProxyMethods  org.jruby.javasupport.Java$DummyInitialize  org.jruby.javasupport.Java$InterfaceProxyHandler  org.jruby.javasupport.Java$JCreateMethod  org.jruby.javasupport.Java$JavaAccessor  org.jruby.javasupport.Java$NewStyleExtensionInherited  org.jruby.javasupport.Java$OldStyleExtensionInherited  org.jruby.javasupport.Java$ProcToInterface  org.jruby.javasupport.Java$ProcToInterface$ConcreteMethod
InnerClasses:
  public AnyIO = org.jruby.java.addons.IOJavaAddons$AnyIO of org.jruby.java.addons.IOJavaAddons
  public ClassMethods = org.jruby.java.proxies.JavaProxy$ClassMethods of org.jruby.java.proxies.JavaProxy
  org.jruby.javasupport.Java$1
  org.jruby.javasupport.Java$2
  public ByteArrayProxyMethods = org.jruby.javasupport.Java$ByteArrayProxyMethods of org.jruby.javasupport.Java
  private final DummyInitialize = org.jruby.javasupport.Java$DummyInitialize of org.jruby.javasupport.Java
  private final InterfaceProxyHandler = org.jruby.javasupport.Java$InterfaceProxyHandler of org.jruby.javasupport.Java
  public JCreateMethod = org.jruby.javasupport.Java$JCreateMethod of org.jruby.javasupport.Java
  private JavaAccessor = org.jruby.javasupport.Java$JavaAccessor of org.jruby.javasupport.Java
  public NewStyleExtensionInherited = org.jruby.javasupport.Java$NewStyleExtensionInherited of org.jruby.javasupport.Java
  public OldStyleExtensionInherited = org.jruby.javasupport.Java$OldStyleExtensionInherited of org.jruby.javasupport.Java
  final ProcToInterface = org.jruby.javasupport.Java$ProcToInterface of org.jruby.javasupport.Java
  public abstract JavaConverter = org.jruby.javasupport.JavaUtil$JavaConverter of org.jruby.javasupport.JavaUtil
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyModule(name = {"Java"})