public class org.jruby.embed.internal.EmbedRubyObjectAdapterImpl implements org.jruby.embed.EmbedRubyObjectAdapter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.embed.internal.EmbedRubyObjectAdapterImpl
  super_class: java.lang.Object
{
  private final org.jruby.RubyObjectAdapter adapter;
    descriptor: Lorg/jruby/RubyObjectAdapter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jruby.embed.ScriptingContainer container;
    descriptor: Lorg/jruby/embed/ScriptingContainer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$org$jruby$embed$internal$EmbedRubyObjectAdapterImpl$MethodType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>(org.jruby.embed.ScriptingContainer);
    descriptor: (Lorg/jruby/embed/ScriptingContainer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.embed.ScriptingContainer container
         0: .line 76
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            invokestatic org.jruby.javasupport.JavaEmbedUtils.newObjectAdapter:()Lorg/jruby/RubyObjectAdapter;
            putfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
         2: .line 77
            aload 0 /* this */
            aload 1 /* container */
            putfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
         3: .line 78
            return
        end local 1 // org.jruby.embed.ScriptingContainer container
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    4     1  container  Lorg/jruby/embed/ScriptingContainer;
    MethodParameters:
           Name  Flags
      container  

  public boolean isKindOf(org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject value
        start local 2 // org.jruby.RubyModule rubyModule
         0: .line 81
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* value */
            aload 2 /* rubyModule */
            invokeinterface org.jruby.RubyObjectAdapter.isKindOf:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;)Z
            ireturn
        end local 2 // org.jruby.RubyModule rubyModule
        end local 1 // org.jruby.runtime.builtin.IRubyObject value
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1       value  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  rubyModule  Lorg/jruby/RubyModule;
    MethodParameters:
            Name  Flags
      value       
      rubyModule  

  public org.jruby.runtime.builtin.IRubyObject[] convertToJavaArray(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)[Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject array
         0: .line 85
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* array */
            invokeinterface org.jruby.RubyObjectAdapter.convertToJavaArray:(Lorg/jruby/runtime/builtin/IRubyObject;)[Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject array
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1  array  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
       Name  Flags
      array  

  public org.jruby.RubyInteger convertToRubyInteger(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 89
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* obj */
            invokeinterface org.jruby.RubyObjectAdapter.convertToRubyInteger:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyInteger;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1   obj  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      obj   

  public org.jruby.RubyString convertToRubyString(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 93
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* obj */
            invokeinterface org.jruby.RubyObjectAdapter.convertToRubyString:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1   obj  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      obj   

  public org.jruby.runtime.builtin.IRubyObject setInstanceVariable(org.jruby.runtime.builtin.IRubyObject, java.lang.String, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
        start local 2 // java.lang.String variableName
        start local 3 // org.jruby.runtime.builtin.IRubyObject value
         0: .line 97
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getVarMap:()Lorg/jruby/embed/internal/BiVariableMap;
            astore 4 /* map */
        start local 4 // org.jruby.embed.internal.BiVariableMap map
         1: .line 98
            aload 4 /* map */
            dup
            astore 5
            monitorenter
         2: .line 99
            aload 4 /* map */
            aload 2 /* variableName */
            invokevirtual org.jruby.embed.internal.BiVariableMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 100
            aload 4 /* map */
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getTopSelf:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyObject
            aload 2 /* variableName */
            invokevirtual org.jruby.embed.internal.BiVariableMap.getVariable:(Lorg/jruby/RubyObject;Ljava/lang/String;)Lorg/jruby/embed/variable/BiVariable;
            astore 6 /* bv */
        start local 6 // org.jruby.embed.variable.BiVariable bv
         4: .line 101
            aload 6 /* bv */
            aload 3 /* value */
            invokeinterface org.jruby.embed.variable.BiVariable.setRubyObject:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        end local 6 // org.jruby.embed.variable.BiVariable bv
         5: .line 102
            goto 8
         6: .line 103
      StackMap locals: org.jruby.embed.internal.BiVariableMap org.jruby.embed.internal.BiVariableMap
      StackMap stack:
            new org.jruby.embed.variable.InstanceVariable
            dup
            aload 1 /* obj */
            aload 2 /* variableName */
            aload 3 /* value */
            invokespecial org.jruby.embed.variable.InstanceVariable.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
            astore 6 /* iv */
        start local 6 // org.jruby.embed.variable.InstanceVariable iv
         7: .line 104
            aload 4 /* map */
            aload 2 /* variableName */
            aload 6 /* iv */
            invokevirtual org.jruby.embed.internal.BiVariableMap.update:(Ljava/lang/String;Lorg/jruby/embed/variable/BiVariable;)V
        end local 6 // org.jruby.embed.variable.InstanceVariable iv
         8: .line 98
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 5
            monitorexit
        11: athrow
        12: .line 107
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
            aload 2 /* variableName */
            aload 3 /* value */
            invokeinterface org.jruby.runtime.builtin.InstanceVariables.setInstanceVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.embed.internal.BiVariableMap map
        end local 3 // org.jruby.runtime.builtin.IRubyObject value
        end local 2 // java.lang.String variableName
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0   13     1           obj  Lorg/jruby/runtime/builtin/IRubyObject;
            0   13     2  variableName  Ljava/lang/String;
            0   13     3         value  Lorg/jruby/runtime/builtin/IRubyObject;
            1   13     4           map  Lorg/jruby/embed/internal/BiVariableMap;
            4    5     6            bv  Lorg/jruby/embed/variable/BiVariable;
            7    8     6            iv  Lorg/jruby/embed/variable/InstanceVariable;
      Exception table:
        from    to  target  type
           2     9      10  any
          10    11      10  any
    MethodParameters:
              Name  Flags
      obj           
      variableName  
      value         

  public org.jruby.runtime.builtin.IRubyObject getInstanceVariable(org.jruby.runtime.builtin.IRubyObject, java.lang.String);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
        start local 2 // java.lang.String variableName
         0: .line 111
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getVarMap:()Lorg/jruby/embed/internal/BiVariableMap;
            astore 3 /* map */
        start local 3 // org.jruby.embed.internal.BiVariableMap map
         1: .line 112
            aload 3 /* map */
            dup
            astore 4
            monitorenter
         2: .line 113
            aload 3 /* map */
            aload 2 /* variableName */
            invokevirtual org.jruby.embed.internal.BiVariableMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 114
            aload 3 /* map */
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getTopSelf:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyObject
            aload 2 /* variableName */
            invokevirtual org.jruby.embed.internal.BiVariableMap.getVariable:(Lorg/jruby/RubyObject;Ljava/lang/String;)Lorg/jruby/embed/variable/BiVariable;
            astore 5 /* bv */
        start local 5 // org.jruby.embed.variable.BiVariable bv
         4: .line 115
            aload 5 /* bv */
            invokeinterface org.jruby.embed.variable.BiVariable.getRubyObject:()Lorg/jruby/runtime/builtin/IRubyObject;
            aload 4
            monitorexit
         5: areturn
        end local 5 // org.jruby.embed.variable.BiVariable bv
         6: .line 112
      StackMap locals: org.jruby.embed.internal.BiVariableMap org.jruby.embed.internal.BiVariableMap
      StackMap stack:
            aload 4
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        10: .line 118
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.jruby.embed.internal.BiVariableMap map
        end local 2 // java.lang.String variableName
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0   11     1           obj  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     2  variableName  Ljava/lang/String;
            1   11     3           map  Lorg/jruby/embed/internal/BiVariableMap;
            4    6     5            bv  Lorg/jruby/embed/variable/BiVariable;
      Exception table:
        from    to  target  type
           2     5       8  any
           6     7       8  any
           8     9       8  any
    MethodParameters:
              Name  Flags
      obj           
      variableName  

  public org.jruby.runtime.builtin.IRubyObject callMethod(org.jruby.runtime.builtin.IRubyObject, java.lang.String);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        start local 2 // java.lang.String methodName
         0: .line 122
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* receiver */
            aload 2 /* methodName */
            invokeinterface org.jruby.RubyObjectAdapter.callMethod:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // java.lang.String methodName
        end local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1    receiver  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  methodName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  

  public org.jruby.runtime.builtin.IRubyObject callMethod(org.jruby.runtime.builtin.IRubyObject, java.lang.String, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        start local 2 // java.lang.String methodName
        start local 3 // org.jruby.runtime.builtin.IRubyObject singleArg
         0: .line 126
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* receiver */
            aload 2 /* methodName */
            aload 3 /* singleArg */
            invokeinterface org.jruby.RubyObjectAdapter.callMethod:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject singleArg
        end local 2 // java.lang.String methodName
        end local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1    receiver  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  methodName  Ljava/lang/String;
            0    1     3   singleArg  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      singleArg   

  public org.jruby.runtime.builtin.IRubyObject callMethod(org.jruby.runtime.builtin.IRubyObject, java.lang.String, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        start local 2 // java.lang.String methodName
        start local 3 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 130
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* receiver */
            aload 2 /* methodName */
            aload 3 /* args */
            invokeinterface org.jruby.RubyObjectAdapter.callMethod:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 2 // java.lang.String methodName
        end local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1    receiver  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  methodName  Ljava/lang/String;
            0    1     3        args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      args        

  public org.jruby.runtime.builtin.IRubyObject callMethod(org.jruby.runtime.builtin.IRubyObject, java.lang.String, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        start local 2 // java.lang.String methodName
        start local 3 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 4 // org.jruby.runtime.Block block
         0: .line 134
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* receiver */
            aload 2 /* methodName */
            aload 3 /* args */
            aload 4 /* block */
            invokeinterface org.jruby.RubyObjectAdapter.callMethod:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 2 // java.lang.String methodName
        end local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1    receiver  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  methodName  Ljava/lang/String;
            0    1     3        args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4       block  Lorg/jruby/runtime/Block;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      args        
      block       

  public org.jruby.runtime.builtin.IRubyObject callSuper(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 138
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* receiver */
            aload 2 /* args */
            invokeinterface org.jruby.RubyObjectAdapter.callSuper:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1  receiver  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2      args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
          Name  Flags
      receiver  
      args      

  public org.jruby.runtime.builtin.IRubyObject callSuper(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 142
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.adapter:Lorg/jruby/RubyObjectAdapter;
            aload 1 /* receiver */
            aload 2 /* args */
            aload 3 /* block */
            invokeinterface org.jruby.RubyObjectAdapter.callSuper:(Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    1     1  receiver  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2      args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     block  Lorg/jruby/runtime/Block;
    MethodParameters:
          Name  Flags
      receiver  
      args      
      block     

  public <T> T callMethod(, java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Class returnType
         0: .line 147
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 4 /* rubyReceiver */
        start local 4 // org.jruby.RubyObject rubyReceiver
         1: .line 148
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_NOARG:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 3 /* returnType */
            aload 4 /* rubyReceiver */
            aload 2 /* methodName */
            aconst_null
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 4 // org.jruby.RubyObject rubyReceiver
         3: .line 149
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 4 /* e */
        start local 4 // org.jruby.embed.InvokeFailedException e
         4: .line 150
            aload 4 /* e */
            athrow
        end local 4 // org.jruby.embed.InvokeFailedException e
         5: .line 151
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
         6: .line 152
            new org.jruby.embed.InvokeFailedException
            dup
            aload 4 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Throwable e
        end local 3 // java.lang.Class returnType
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2    methodName  Ljava/lang/String;
            0    7     3    returnType  Ljava/lang/Class<TT;>;
            1    3     4  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     4             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     4             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      returnType  

  public <T> T callMethod(, java.lang.String, , java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=6, args_size=5
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Object singleArg
        start local 4 // java.lang.Class returnType
         0: .line 158
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 5 /* rubyReceiver */
        start local 5 // org.jruby.RubyObject rubyReceiver
         1: .line 159
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 4 /* returnType */
            aload 5 /* rubyReceiver */
            aload 2 /* methodName */
            aconst_null
            aconst_null
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* singleArg */
            aastore
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 5 // org.jruby.RubyObject rubyReceiver
         3: .line 160
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 5 /* e */
        start local 5 // org.jruby.embed.InvokeFailedException e
         4: .line 161
            aload 5 /* e */
            athrow
        end local 5 // org.jruby.embed.InvokeFailedException e
         5: .line 162
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
         6: .line 163
            new org.jruby.embed.InvokeFailedException
            dup
            aload 5 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable e
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.Object singleArg
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2    methodName  Ljava/lang/String;
            0    7     3     singleArg  Ljava/lang/Object;
            0    7     4    returnType  Ljava/lang/Class<TT;>;
            1    3     5  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     5             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     5             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      singleArg   
      returnType  

  public <T> T callMethod(, java.lang.String, [], java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Object[] args
        start local 4 // java.lang.Class returnType
         0: .line 169
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 5 /* rubyReceiver */
        start local 5 // org.jruby.RubyObject rubyReceiver
         1: .line 170
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 4 /* returnType */
            aload 5 /* rubyReceiver */
            aload 2 /* methodName */
            aconst_null
            aconst_null
            aload 3 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 5 // org.jruby.RubyObject rubyReceiver
         3: .line 171
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 5 /* e */
        start local 5 // org.jruby.embed.InvokeFailedException e
         4: .line 172
            aload 5 /* e */
            athrow
        end local 5 // org.jruby.embed.InvokeFailedException e
         5: .line 173
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
         6: .line 174
            new org.jruby.embed.InvokeFailedException
            dup
            aload 5 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable e
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2    methodName  Ljava/lang/String;
            0    7     3          args  [Ljava/lang/Object;
            0    7     4    returnType  Ljava/lang/Class<TT;>;
            1    3     5  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     5             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     5             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      args        
      returnType  

  public <T> T callMethod(, java.lang.String, [], org.jruby.runtime.Block, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Lorg/jruby/runtime/Block;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=6
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Object[] args
        start local 4 // org.jruby.runtime.Block block
        start local 5 // java.lang.Class returnType
         0: .line 180
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 6 /* rubyReceiver */
        start local 6 // org.jruby.RubyObject rubyReceiver
         1: .line 181
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_WITHBLOCK:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 5 /* returnType */
            aload 6 /* rubyReceiver */
            aload 2 /* methodName */
            aload 4 /* block */
            aconst_null
            aload 3 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 6 // org.jruby.RubyObject rubyReceiver
         3: .line 182
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 6 /* e */
        start local 6 // org.jruby.embed.InvokeFailedException e
         4: .line 183
            aload 6 /* e */
            athrow
        end local 6 // org.jruby.embed.InvokeFailedException e
         5: .line 184
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
         6: .line 185
            new org.jruby.embed.InvokeFailedException
            dup
            aload 6 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Throwable e
        end local 5 // java.lang.Class returnType
        end local 4 // org.jruby.runtime.Block block
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2    methodName  Ljava/lang/String;
            0    7     3          args  [Ljava/lang/Object;
            0    7     4         block  Lorg/jruby/runtime/Block;
            0    7     5    returnType  Ljava/lang/Class<TT;>;
            1    3     6  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     6             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     6             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Lorg/jruby/runtime/Block;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      args        
      block       
      returnType  

  public <T> T callMethod(, java.lang.String, java.lang.Class<T>, org.jruby.embed.EmbedEvalUnit);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class;Lorg/jruby/embed/EmbedEvalUnit;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Class returnType
        start local 4 // org.jruby.embed.EmbedEvalUnit unit
         0: .line 191
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 5 /* rubyReceiver */
        start local 5 // org.jruby.RubyObject rubyReceiver
         1: .line 192
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_NOARG:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 3 /* returnType */
            aload 5 /* rubyReceiver */
            aload 2 /* methodName */
            aconst_null
            aload 4 /* unit */
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 5 // org.jruby.RubyObject rubyReceiver
         3: .line 193
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 5 /* e */
        start local 5 // org.jruby.embed.InvokeFailedException e
         4: .line 194
            aload 5 /* e */
            athrow
        end local 5 // org.jruby.embed.InvokeFailedException e
         5: .line 195
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
         6: .line 196
            new org.jruby.embed.InvokeFailedException
            dup
            aload 5 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable e
        end local 4 // org.jruby.embed.EmbedEvalUnit unit
        end local 3 // java.lang.Class returnType
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2    methodName  Ljava/lang/String;
            0    7     3    returnType  Ljava/lang/Class<TT;>;
            0    7     4          unit  Lorg/jruby/embed/EmbedEvalUnit;
            1    3     5  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     5             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     5             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class<TT;>;Lorg/jruby/embed/EmbedEvalUnit;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      returnType  
      unit        

  public <T> T callMethod(, java.lang.String, [], java.lang.Class<T>, org.jruby.embed.EmbedEvalUnit);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Class;Lorg/jruby/embed/EmbedEvalUnit;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=6
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Object[] args
        start local 4 // java.lang.Class returnType
        start local 5 // org.jruby.embed.EmbedEvalUnit unit
         0: .line 202
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 6 /* rubyReceiver */
        start local 6 // org.jruby.RubyObject rubyReceiver
         1: .line 203
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 4 /* returnType */
            aload 6 /* rubyReceiver */
            aload 2 /* methodName */
            aconst_null
            aload 5 /* unit */
            aload 3 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 6 // org.jruby.RubyObject rubyReceiver
         3: .line 204
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 6 /* e */
        start local 6 // org.jruby.embed.InvokeFailedException e
         4: .line 205
            aload 6 /* e */
            athrow
        end local 6 // org.jruby.embed.InvokeFailedException e
         5: .line 206
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
         6: .line 207
            new org.jruby.embed.InvokeFailedException
            dup
            aload 6 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Throwable e
        end local 5 // org.jruby.embed.EmbedEvalUnit unit
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2    methodName  Ljava/lang/String;
            0    7     3          args  [Ljava/lang/Object;
            0    7     4    returnType  Ljava/lang/Class<TT;>;
            0    7     5          unit  Lorg/jruby/embed/EmbedEvalUnit;
            1    3     6  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     6             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     6             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Class<TT;>;Lorg/jruby/embed/EmbedEvalUnit;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      args        
      returnType  
      unit        

  public <T> T callMethod(, java.lang.String, [], org.jruby.runtime.Block, java.lang.Class<T>, org.jruby.embed.EmbedEvalUnit);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Lorg/jruby/runtime/Block;Ljava/lang/Class;Lorg/jruby/embed/EmbedEvalUnit;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=7
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Object[] args
        start local 4 // org.jruby.runtime.Block block
        start local 5 // java.lang.Class returnType
        start local 6 // org.jruby.embed.EmbedEvalUnit unit
         0: .line 213
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 7 /* rubyReceiver */
        start local 7 // org.jruby.RubyObject rubyReceiver
         1: .line 214
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_WITHBLOCK:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 5 /* returnType */
            aload 7 /* rubyReceiver */
            aload 2 /* methodName */
            aload 4 /* block */
            aload 6 /* unit */
            aload 3 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 7 // org.jruby.RubyObject rubyReceiver
         3: .line 215
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 7 /* e */
        start local 7 // org.jruby.embed.InvokeFailedException e
         4: .line 216
            aload 7 /* e */
            athrow
        end local 7 // org.jruby.embed.InvokeFailedException e
         5: .line 217
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7 /* e */
        start local 7 // java.lang.Throwable e
         6: .line 218
            new org.jruby.embed.InvokeFailedException
            dup
            aload 7 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Throwable e
        end local 6 // org.jruby.embed.EmbedEvalUnit unit
        end local 5 // java.lang.Class returnType
        end local 4 // org.jruby.runtime.Block block
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2    methodName  Ljava/lang/String;
            0    7     3          args  [Ljava/lang/Object;
            0    7     4         block  Lorg/jruby/runtime/Block;
            0    7     5    returnType  Ljava/lang/Class<TT;>;
            0    7     6          unit  Lorg/jruby/embed/EmbedEvalUnit;
            1    3     7  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     7             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     7             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;Lorg/jruby/runtime/Block;Ljava/lang/Class<TT;>;Lorg/jruby/embed/EmbedEvalUnit;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      args        
      block       
      returnType  
      unit        

  public <T> T callSuper(, [], java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.Object[] args
        start local 3 // java.lang.Class returnType
         0: .line 224
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 4 /* rubyReceiver */
        start local 4 // org.jruby.RubyObject rubyReceiver
         1: .line 225
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLSUPER:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 3 /* returnType */
            aload 4 /* rubyReceiver */
            aconst_null
            aconst_null
            aconst_null
            aload 2 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 4 // org.jruby.RubyObject rubyReceiver
         3: .line 226
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 4 /* e */
        start local 4 // org.jruby.embed.InvokeFailedException e
         4: .line 227
            aload 4 /* e */
            athrow
        end local 4 // org.jruby.embed.InvokeFailedException e
         5: .line 228
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
         6: .line 229
            new org.jruby.embed.InvokeFailedException
            dup
            aload 4 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Throwable e
        end local 3 // java.lang.Class returnType
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2          args  [Ljava/lang/Object;
            0    7     3    returnType  Ljava/lang/Class<TT;>;
            1    3     4  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     4             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     4             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      args        
      returnType  

  public <T> T callSuper(, [], org.jruby.runtime.Block, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Lorg/jruby/runtime/Block;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.Object[] args
        start local 3 // org.jruby.runtime.Block block
        start local 4 // java.lang.Class returnType
         0: .line 235
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 5 /* rubyReceiver */
        start local 5 // org.jruby.RubyObject rubyReceiver
         1: .line 236
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLSUPER_WITHBLOCK:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 4 /* returnType */
            aload 5 /* rubyReceiver */
            aconst_null
            aload 3 /* block */
            aconst_null
            aload 2 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         2: areturn
        end local 5 // org.jruby.RubyObject rubyReceiver
         3: .line 237
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 5 /* e */
        start local 5 // org.jruby.embed.InvokeFailedException e
         4: .line 238
            aload 5 /* e */
            athrow
        end local 5 // org.jruby.embed.InvokeFailedException e
         5: .line 239
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
         6: .line 240
            new org.jruby.embed.InvokeFailedException
            dup
            aload 5 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable e
        end local 4 // java.lang.Class returnType
        end local 3 // org.jruby.runtime.Block block
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    7     1      receiver  Ljava/lang/Object;
            0    7     2          args  [Ljava/lang/Object;
            0    7     3         block  Lorg/jruby/runtime/Block;
            0    7     4    returnType  Ljava/lang/Class<TT;>;
            1    3     5  rubyReceiver  Lorg/jruby/RubyObject;
            4    5     5             e  Lorg/jruby/embed/InvokeFailedException;
            6    7     5             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.embed.InvokeFailedException
           0     2       5  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;[Ljava/lang/Object;Lorg/jruby/runtime/Block;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      receiver    
      args        
      block       
      returnType  

  public java.lang.Object callMethod(java.lang.Object, java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.Object[] args
         0: .line 246
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 4 /* rubyReceiver */
        start local 4 // org.jruby.RubyObject rubyReceiver
         1: .line 247
            aload 3 /* args */
            arraylength
            ifne 4
         2: .line 248
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_NOARG:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            ldc Ljava/lang/Object;
            aload 4 /* rubyReceiver */
            aload 2 /* methodName */
            aconst_null
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
         4: .line 250
      StackMap locals: org.jruby.RubyObject
      StackMap stack:
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            ldc Ljava/lang/Object;
            aload 4 /* rubyReceiver */
            aload 2 /* methodName */
            aconst_null
            aconst_null
            aload 3 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         5: areturn
        end local 4 // org.jruby.RubyObject rubyReceiver
         6: .line 252
      StackMap locals: org.jruby.embed.internal.EmbedRubyObjectAdapterImpl java.lang.Object java.lang.String java.lang.Object[]
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 4 /* e */
        start local 4 // org.jruby.embed.InvokeFailedException e
         7: .line 253
            aload 4 /* e */
            athrow
        end local 4 // org.jruby.embed.InvokeFailedException e
         8: .line 254
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
         9: .line 255
            new org.jruby.embed.InvokeFailedException
            dup
            aload 4 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Throwable e
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0   10     1      receiver  Ljava/lang/Object;
            0   10     2    methodName  Ljava/lang/String;
            0   10     3          args  [Ljava/lang/Object;
            1    6     4  rubyReceiver  Lorg/jruby/RubyObject;
            7    8     4             e  Lorg/jruby/embed/InvokeFailedException;
            9   10     4             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       6  Class org.jruby.embed.InvokeFailedException
           4     5       6  Class org.jruby.embed.InvokeFailedException
           0     3       8  Class java.lang.Throwable
           4     5       8  Class java.lang.Throwable
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      args        

  public java.lang.Object callMethod(java.lang.Object, java.lang.String, org.jruby.runtime.Block, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Lorg/jruby/runtime/Block;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String methodName
        start local 3 // org.jruby.runtime.Block block
        start local 4 // java.lang.Object[] args
         0: .line 261
            aload 4 /* args */
            arraylength
            ifne 2
         1: .line 262
            new java.lang.IllegalArgumentException
            dup
            ldc "needs at least one argument in a method"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* receiver */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.getReceiverObject:(Ljava/lang/Object;)Lorg/jruby/RubyObject;
            astore 5 /* rubyReceiver */
        start local 5 // org.jruby.RubyObject rubyReceiver
         3: .line 265
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_WITHBLOCK:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            ldc Ljava/lang/Object;
            aload 5 /* rubyReceiver */
            aload 2 /* methodName */
            aload 3 /* block */
            aconst_null
            aload 4 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         4: areturn
        end local 5 // org.jruby.RubyObject rubyReceiver
         5: .line 266
      StackMap locals:
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 5 /* e */
        start local 5 // org.jruby.embed.InvokeFailedException e
         6: .line 267
            aload 5 /* e */
            athrow
        end local 5 // org.jruby.embed.InvokeFailedException e
         7: .line 268
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
         8: .line 269
            new org.jruby.embed.InvokeFailedException
            dup
            aload 5 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable e
        end local 4 // java.lang.Object[] args
        end local 3 // org.jruby.runtime.Block block
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    9     1      receiver  Ljava/lang/Object;
            0    9     2    methodName  Ljava/lang/String;
            0    9     3         block  Lorg/jruby/runtime/Block;
            0    9     4          args  [Ljava/lang/Object;
            3    5     5  rubyReceiver  Lorg/jruby/RubyObject;
            6    7     5             e  Lorg/jruby/embed/InvokeFailedException;
            8    9     5             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     4       5  Class org.jruby.embed.InvokeFailedException
           0     4       7  Class java.lang.Throwable
    MethodParameters:
            Name  Flags
      receiver    
      methodName  
      block       
      args        

  public <T> T runRubyMethod(java.lang.Class<T>, , java.lang.String, org.jruby.runtime.Block, []);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;Lorg/jruby/runtime/Block;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=8, locals=7, args_size=6
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Class returnType
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.String methodName
        start local 4 // org.jruby.runtime.Block block
        start local 5 // java.lang.Object[] args
         0: .line 275
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getRuntime:()Lorg/jruby/Ruby;
            aload 2 /* receiver */
            invokestatic org.jruby.javasupport.JavaEmbedUtils.javaToRuby:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyObject
            astore 6 /* rubyReceiver */
        start local 6 // org.jruby.RubyObject rubyReceiver
         1: .line 276
            aload 5 /* args */
            arraylength
            ifne 4
         2: .line 277
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_NOARG:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 1 /* returnType */
            aload 6 /* rubyReceiver */
            aload 3 /* methodName */
            aload 4 /* block */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
         4: .line 279
      StackMap locals: org.jruby.RubyObject
      StackMap stack:
            aload 0 /* this */
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            aload 1 /* returnType */
            aload 6 /* rubyReceiver */
            aload 3 /* methodName */
            aload 4 /* block */
            aconst_null
            aload 5 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.call:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
         5: areturn
        end local 6 // org.jruby.RubyObject rubyReceiver
         6: .line 281
      StackMap locals: org.jruby.embed.internal.EmbedRubyObjectAdapterImpl java.lang.Class java.lang.Object java.lang.String org.jruby.runtime.Block java.lang.Object[]
      StackMap stack: org.jruby.embed.InvokeFailedException
            astore 6 /* e */
        start local 6 // org.jruby.embed.InvokeFailedException e
         7: .line 282
            aload 6 /* e */
            athrow
        end local 6 // org.jruby.embed.InvokeFailedException e
         8: .line 283
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* e */
        start local 6 // java.lang.Throwable e
         9: .line 284
            new org.jruby.embed.InvokeFailedException
            dup
            aload 6 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Throwable e
        end local 5 // java.lang.Object[] args
        end local 4 // org.jruby.runtime.Block block
        end local 3 // java.lang.String methodName
        end local 2 // java.lang.Object receiver
        end local 1 // java.lang.Class returnType
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0   10     1    returnType  Ljava/lang/Class<TT;>;
            0   10     2      receiver  Ljava/lang/Object;
            0   10     3    methodName  Ljava/lang/String;
            0   10     4         block  Lorg/jruby/runtime/Block;
            0   10     5          args  [Ljava/lang/Object;
            1    6     6  rubyReceiver  Lorg/jruby/RubyObject;
            7    8     6             e  Lorg/jruby/embed/InvokeFailedException;
            9   10     6             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       6  Class org.jruby.embed.InvokeFailedException
           4     5       6  Class org.jruby.embed.InvokeFailedException
           0     3       8  Class java.lang.Throwable
           4     5       8  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;Ljava/lang/String;Lorg/jruby/runtime/Block;[Ljava/lang/Object;)TT;
    MethodParameters:
            Name  Flags
      returnType  
      receiver    
      methodName  
      block       
      args        

  private <T> T call(org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType, java.lang.Class<T>, org.jruby.RubyObject, java.lang.String, org.jruby.runtime.Block, org.jruby.embed.EmbedEvalUnit, []);
    descriptor: (Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=6, locals=15, args_size=8
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType type
        start local 2 // java.lang.Class returnType
        start local 3 // org.jruby.RubyObject rubyReceiver
        start local 4 // java.lang.String methodName
        start local 5 // org.jruby.runtime.Block block
        start local 6 // org.jruby.embed.EmbedEvalUnit unit
        start local 7 // java.lang.Object[] args
         0: .line 289
            aload 4 /* methodName */
            ifnull 1
            aload 4 /* methodName */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 290
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getRuntime:()Lorg/jruby/Ruby;
            astore 8 /* runtime */
        start local 8 // org.jruby.Ruby runtime
         3: .line 294
            iconst_1
            istore 9 /* sharing_variables */
        start local 9 // boolean sharing_variables
         4: .line 295
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            getstatic org.jruby.embed.AttributeName.SHARING_VARIABLES:Lorg/jruby/embed/AttributeName;
            invokevirtual org.jruby.embed.ScriptingContainer.getAttribute:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* obj */
        start local 10 // java.lang.Object obj
         5: .line 296
            aload 10 /* obj */
            ifnull 7
            aload 10 /* obj */
            instanceof java.lang.Boolean
            ifeq 7
            aload 10 /* obj */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 7
         6: .line 297
            iconst_0
            istore 9 /* sharing_variables */
         7: .line 300
      StackMap locals: org.jruby.Ruby int java.lang.Object
      StackMap stack:
            iload 9 /* sharing_variables */
            ifeq 13
         8: .line 302
            aload 6 /* unit */
            ifnull 10
            aload 6 /* unit */
            invokeinterface org.jruby.embed.EmbedEvalUnit.getScope:()Lorg/jruby/runtime/scope/ManyVarsDynamicScope;
            ifnull 10
            aload 6 /* unit */
            invokeinterface org.jruby.embed.EmbedEvalUnit.getScope:()Lorg/jruby/runtime/scope/ManyVarsDynamicScope;
            astore 11 /* scope */
        start local 11 // org.jruby.runtime.scope.ManyVarsDynamicScope scope
         9: goto 11
        end local 11 // org.jruby.runtime.scope.ManyVarsDynamicScope scope
        10: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            iconst_0
            invokestatic org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.getManyVarsDynamicScope:(Lorg/jruby/embed/ScriptingContainer;I)Lorg/jruby/runtime/scope/ManyVarsDynamicScope;
            astore 11 /* scope */
        start local 11 // org.jruby.runtime.scope.ManyVarsDynamicScope scope
        11: .line 304
      StackMap locals: org.jruby.runtime.scope.ManyVarsDynamicScope
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getVarMap:()Lorg/jruby/embed/internal/BiVariableMap;
            aload 11 /* scope */
            iconst_0
            aload 3 /* rubyReceiver */
            invokevirtual org.jruby.embed.internal.BiVariableMap.inject:(Lorg/jruby/runtime/scope/ManyVarsDynamicScope;ILorg/jruby/runtime/builtin/IRubyObject;)V
        12: .line 305
            aload 8 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 11 /* scope */
            invokevirtual org.jruby.runtime.ThreadContext.pushScope:(Lorg/jruby/runtime/DynamicScope;)V
        end local 11 // org.jruby.runtime.scope.ManyVarsDynamicScope scope
        13: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            aload 3 /* rubyReceiver */
            aload 4 /* methodName */
            aload 5 /* block */
            aload 7 /* args */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.callEachType:(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11 /* result */
        start local 11 // org.jruby.runtime.builtin.IRubyObject result
        14: .line 310
            iload 9 /* sharing_variables */
            ifeq 16
        15: .line 311
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getVarMap:()Lorg/jruby/embed/internal/BiVariableMap;
            aload 3 /* rubyReceiver */
            invokevirtual org.jruby.embed.internal.BiVariableMap.retrieve:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        16: .line 313
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11 /* result */
            instanceof org.jruby.RubyNil
            ifne 24
            aload 2 /* returnType */
            ifnull 24
        17: .line 314
            aload 8 /* runtime */
            aload 11 /* result */
            aload 2 /* returnType */
            invokestatic org.jruby.javasupport.JavaEmbedUtils.rubyToJava:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Class;)Ljava/lang/Object;
            astore 12 /* ret */
        start local 12 // java.lang.Object ret
        18: .line 315
            aload 12 /* ret */
            ifnull 19
            aload 2 /* returnType */
            aload 12 /* ret */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            goto 20
      StackMap locals: java.lang.Object
      StackMap stack:
        19: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
        20: astore 14
        21: .line 324
            iload 9 /* sharing_variables */
            ifeq 23
        22: .line 325
            aload 8 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.runtime.ThreadContext.popScope:()V
        23: .line 315
      StackMap locals: org.jruby.embed.internal.EmbedRubyObjectAdapterImpl org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType java.lang.Class org.jruby.RubyObject java.lang.String org.jruby.runtime.Block org.jruby.embed.EmbedEvalUnit java.lang.Object[] org.jruby.Ruby int java.lang.Object org.jruby.runtime.builtin.IRubyObject java.lang.Object top java.lang.Object
      StackMap stack:
            aload 14
            areturn
        end local 12 // java.lang.Object ret
        24: .line 324
      StackMap locals: org.jruby.embed.internal.EmbedRubyObjectAdapterImpl org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType java.lang.Class org.jruby.RubyObject java.lang.String org.jruby.runtime.Block org.jruby.embed.EmbedEvalUnit java.lang.Object[] org.jruby.Ruby int java.lang.Object org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            iload 9 /* sharing_variables */
            ifeq 26
        25: .line 325
            aload 8 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.runtime.ThreadContext.popScope:()V
        26: .line 317
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 11 // org.jruby.runtime.builtin.IRubyObject result
        27: .line 318
      StackMap locals: org.jruby.embed.internal.EmbedRubyObjectAdapterImpl org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType java.lang.Class org.jruby.RubyObject java.lang.String org.jruby.runtime.Block org.jruby.embed.EmbedEvalUnit java.lang.Object[] org.jruby.Ruby int java.lang.Object
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 11 /* e */
        start local 11 // org.jruby.exceptions.RaiseException e
        28: .line 319
            aload 8 /* runtime */
            aload 11 /* e */
            invokevirtual org.jruby.exceptions.RaiseException.getException:()Lorg/jruby/RubyException;
            invokevirtual org.jruby.Ruby.printError:(Lorg/jruby/RubyException;)V
        29: .line 320
            new org.jruby.embed.InvokeFailedException
            dup
            aload 11 /* e */
            invokevirtual org.jruby.exceptions.RaiseException.getMessage:()Ljava/lang/String;
            aload 11 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 11 // org.jruby.exceptions.RaiseException e
        30: .line 321
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11 /* e */
        start local 11 // java.lang.Throwable e
        31: .line 322
            new org.jruby.embed.InvokeFailedException
            dup
            aload 11 /* e */
            invokespecial org.jruby.embed.InvokeFailedException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.lang.Throwable e
        32: .line 323
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        33: .line 324
            iload 9 /* sharing_variables */
            ifeq 35
        34: .line 325
            aload 8 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.runtime.ThreadContext.popScope:()V
        35: .line 327
      StackMap locals: org.jruby.embed.internal.EmbedRubyObjectAdapterImpl org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType java.lang.Class org.jruby.RubyObject java.lang.String org.jruby.runtime.Block org.jruby.embed.EmbedEvalUnit java.lang.Object[] org.jruby.Ruby int java.lang.Object top top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        end local 10 // java.lang.Object obj
        end local 9 // boolean sharing_variables
        end local 8 // org.jruby.Ruby runtime
        end local 7 // java.lang.Object[] args
        end local 6 // org.jruby.embed.EmbedEvalUnit unit
        end local 5 // org.jruby.runtime.Block block
        end local 4 // java.lang.String methodName
        end local 3 // org.jruby.RubyObject rubyReceiver
        end local 2 // java.lang.Class returnType
        end local 1 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType type
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   36     0               this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0   36     1               type  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            0   36     2         returnType  Ljava/lang/Class<TT;>;
            0   36     3       rubyReceiver  Lorg/jruby/RubyObject;
            0   36     4         methodName  Ljava/lang/String;
            0   36     5              block  Lorg/jruby/runtime/Block;
            0   36     6               unit  Lorg/jruby/embed/EmbedEvalUnit;
            0   36     7               args  [Ljava/lang/Object;
            3   36     8            runtime  Lorg/jruby/Ruby;
            4   36     9  sharing_variables  Z
            5   36    10                obj  Ljava/lang/Object;
            9   10    11              scope  Lorg/jruby/runtime/scope/ManyVarsDynamicScope;
           11   13    11              scope  Lorg/jruby/runtime/scope/ManyVarsDynamicScope;
           14   27    11             result  Lorg/jruby/runtime/builtin/IRubyObject;
           18   24    12                ret  Ljava/lang/Object;
           28   30    11                  e  Lorg/jruby/exceptions/RaiseException;
           31   32    11                  e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          13    21      27  Class org.jruby.exceptions.RaiseException
          13    21      30  Class java.lang.Throwable
          13    21      32  any
          27    32      32  any
    Signature: <T:Ljava/lang/Object;>(Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Ljava/lang/Class<TT;>;Lorg/jruby/RubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;Lorg/jruby/embed/EmbedEvalUnit;[Ljava/lang/Object;)TT;
    MethodParameters:
              Name  Flags
      type          
      returnType    
      rubyReceiver  
      methodName    
      block         
      unit          
      args          

  private org.jruby.RubyObject getReceiverObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/jruby/RubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // java.lang.Object receiver
         0: .line 331
            aload 0 /* this */
            getfield org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.container:Lorg/jruby/embed/ScriptingContainer;
            invokevirtual org.jruby.embed.ScriptingContainer.getProvider:()Lorg/jruby/embed/internal/LocalContextProvider;
            invokeinterface org.jruby.embed.internal.LocalContextProvider.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 332
            aload 1 /* receiver */
            ifnull 2
            aload 1 /* receiver */
            instanceof org.jruby.runtime.builtin.IRubyObject
            ifne 3
         2: .line 333
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getTopSelf:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyObject
            areturn
         3: .line 335
      StackMap locals:
      StackMap stack:
            aload 1 /* receiver */
            instanceof org.jruby.RubyObject
            ifeq 4
            aload 1 /* receiver */
            checkcast org.jruby.RubyObject
            areturn
         4: .line 336
      StackMap locals:
      StackMap stack:
            aload 1 /* receiver */
            checkcast org.jruby.runtime.builtin.IRubyObject
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getTopSelf:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyObject
            areturn
        end local 2 // org.jruby.Ruby runtime
        end local 1 // java.lang.Object receiver
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0    5     1  receiver  Ljava/lang/Object;
            1    5     2   runtime  Lorg/jruby/Ruby;
    MethodParameters:
          Name  Flags
      receiver  

  private org.jruby.runtime.builtin.IRubyObject callEachType(org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType, org.jruby.runtime.builtin.IRubyObject, java.lang.String, org.jruby.runtime.Block, java.lang.Object[]);
    descriptor: (Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/Block;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=5, locals=10, args_size=6
        start local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
        start local 1 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType type
        start local 2 // org.jruby.runtime.builtin.IRubyObject rubyReceiver
        start local 3 // java.lang.String methodName
        start local 4 // org.jruby.runtime.Block block
        start local 5 // java.lang.Object[] args
         0: .line 340
            aload 2 /* rubyReceiver */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
         1: .line 341
            aconst_null
            astore 7 /* rubyArgs */
        start local 7 // org.jruby.runtime.builtin.IRubyObject[] rubyArgs
         2: .line 342
            aload 5 /* args */
            ifnull 11
            aload 5 /* args */
            arraylength
            ifle 11
         3: .line 343
            aload 6 /* runtime */
            aload 5 /* args */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaArrayToRuby:(Lorg/jruby/Ruby;[Ljava/lang/Object;)[Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* rubyArgs */
         4: .line 344
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: goto 10
         6: .line 345
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject[] int
      StackMap stack:
            aload 7 /* rubyArgs */
            iload 8 /* i */
            aaload
            astore 9 /* obj */
        start local 9 // org.jruby.runtime.builtin.IRubyObject obj
         7: .line 346
            aload 9 /* obj */
            instanceof org.jruby.javasupport.JavaObject
            ifeq 9
         8: .line 347
            aload 7 /* rubyArgs */
            iload 8 /* i */
            aload 6 /* runtime */
            aload 9 /* obj */
            invokestatic org.jruby.javasupport.Java.wrap:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
        end local 9 // org.jruby.runtime.builtin.IRubyObject obj
         9: .line 344
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 8 /* i */
            aload 7 /* rubyArgs */
            arraylength
            if_icmplt 6
        end local 8 // int i
        11: .line 351
      StackMap locals:
      StackMap stack:
            aload 6 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 8 /* context */
        start local 8 // org.jruby.runtime.ThreadContext context
        12: .line 352
            invokestatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.$SWITCH_TABLE$org$jruby$embed$internal$EmbedRubyObjectAdapterImpl$MethodType:()[I
            aload 1 /* type */
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 13
                    2: 14
                    3: 15
                    4: 16
                    5: 17
              default: 18
          }
        13: .line 354
      StackMap locals: org.jruby.runtime.ThreadContext
      StackMap stack:
            aload 8 /* context */
            aload 2 /* rubyReceiver */
            aload 3 /* methodName */
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        14: .line 356
      StackMap locals:
      StackMap stack:
            aload 8 /* context */
            aload 2 /* rubyReceiver */
            aload 3 /* methodName */
            aload 7 /* rubyArgs */
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        15: .line 358
      StackMap locals:
      StackMap stack:
            aload 8 /* context */
            aload 2 /* rubyReceiver */
            aload 3 /* methodName */
            aload 7 /* rubyArgs */
            aload 4 /* block */
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        16: .line 360
      StackMap locals:
      StackMap stack:
            aload 8 /* context */
            aload 2 /* rubyReceiver */
            aload 7 /* rubyArgs */
            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
        17: .line 362
      StackMap locals:
      StackMap stack:
            aload 8 /* context */
            aload 2 /* rubyReceiver */
            aload 7 /* rubyArgs */
            aload 4 /* 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
        18: .line 366
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 8 // org.jruby.runtime.ThreadContext context
        end local 7 // org.jruby.runtime.builtin.IRubyObject[] rubyArgs
        end local 6 // org.jruby.Ruby runtime
        end local 5 // java.lang.Object[] args
        end local 4 // org.jruby.runtime.Block block
        end local 3 // java.lang.String methodName
        end local 2 // org.jruby.runtime.builtin.IRubyObject rubyReceiver
        end local 1 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType type
        end local 0 // org.jruby.embed.internal.EmbedRubyObjectAdapterImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl;
            0   19     1          type  Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            0   19     2  rubyReceiver  Lorg/jruby/runtime/builtin/IRubyObject;
            0   19     3    methodName  Ljava/lang/String;
            0   19     4         block  Lorg/jruby/runtime/Block;
            0   19     5          args  [Ljava/lang/Object;
            1   19     6       runtime  Lorg/jruby/Ruby;
            2   19     7      rubyArgs  [Lorg/jruby/runtime/builtin/IRubyObject;
            5   11     8             i  I
            7    9     9           obj  Lorg/jruby/runtime/builtin/IRubyObject;
           12   19     8       context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
              Name  Flags
      type          
      rubyReceiver  
      methodName    
      block         
      args          

  static int[] $SWITCH_TABLE$org$jruby$embed$internal$EmbedRubyObjectAdapterImpl$MethodType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 63
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.$SWITCH_TABLE$org$jruby$embed$internal$EmbedRubyObjectAdapterImpl$MethodType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.values:()[Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_NOARG:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLMETHOD_WITHBLOCK:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLSUPER:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.CALLSUPER_WITHBLOCK:Lorg/jruby/embed/internal/EmbedRubyObjectAdapterImpl$MethodType;
            invokevirtual org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.jruby.embed.internal.EmbedRubyObjectAdapterImpl.$SWITCH_TABLE$org$jruby$embed$internal$EmbedRubyObjectAdapterImpl$MethodType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "EmbedRubyObjectAdapterImpl.java"
NestMembers:
  org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType
InnerClasses:
  public final MethodType = org.jruby.embed.internal.EmbedRubyObjectAdapterImpl$MethodType of org.jruby.embed.internal.EmbedRubyObjectAdapterImpl