public final class org.jruby.java.invokers.InstanceMethodInvoker extends org.jruby.java.invokers.MethodInvoker
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.jruby.java.invokers.InstanceMethodInvoker
  super_class: org.jruby.java.invokers.MethodInvoker
{
  public void <init>(org.jruby.RubyModule, java.util.function.Supplier<java.lang.reflect.Method[]>, java.lang.String);
    descriptor: (Lorg/jruby/RubyModule;Ljava/util/function/Supplier;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.RubyModule host
        start local 2 // java.util.function.Supplier methods
        start local 3 // java.lang.String name
         0: .line 17
            aload 0 /* this */
            aload 1 /* host */
            aload 2 /* methods */
            aload 3 /* name */
            invokespecial org.jruby.java.invokers.MethodInvoker.<init>:(Lorg/jruby/RubyModule;Ljava/util/function/Supplier;Ljava/lang/String;)V
         1: .line 18
            return
        end local 3 // java.lang.String name
        end local 2 // java.util.function.Supplier methods
        end local 1 // org.jruby.RubyModule host
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0    2     1     host  Lorg/jruby/RubyModule;
            0    2     2  methods  Ljava/util/function/Supplier<[Ljava/lang/reflect/Method;>;
            0    2     3     name  Ljava/lang/String;
    Signature: (Lorg/jruby/RubyModule;Ljava/util/function/Supplier<[Ljava/lang/reflect/Method;>;Ljava/lang/String;)V
    MethodParameters:
         Name  Flags
      host     
      methods  
      name     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 22
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 6 /* proxy */
        start local 6 // org.jruby.java.proxies.JavaProxy proxy
         1: .line 23
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* args */
            aload 5 /* args */
            arraylength
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallable:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 7 /* method */
        start local 7 // org.jruby.javasupport.JavaMethod method
         2: .line 24
            aload 7 /* method */
            aload 1 /* context */
            aload 6 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 7 /* method */
            aload 5 /* args */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.convertArguments:(Lorg/jruby/javasupport/ParameterTypes;[Lorg/jruby/runtime/builtin/IRubyObject;)[Ljava/lang/Object;
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // org.jruby.javasupport.JavaMethod method
        end local 6 // org.jruby.java.proxies.JavaProxy proxy
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     3    clazz  Lorg/jruby/RubyModule;
            0    3     4     name  Ljava/lang/String;
            0    3     5     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     6    proxy  Lorg/jruby/java/proxies/JavaProxy;
            2    3     7   method  Lorg/jruby/javasupport/JavaMethod;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      args     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
         0: .line 29
            aload 0 /* this */
            getfield org.jruby.java.invokers.InstanceMethodInvoker.javaVarargsCallables:[Lorg/jruby/javasupport/JavaCallable;
            ifnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 30
      StackMap locals:
      StackMap stack:
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 5 /* proxy */
        start local 5 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 31
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallableArityZero:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 6 /* method */
        start local 6 // org.jruby.javasupport.JavaMethod method
         3: .line 32
            aload 6 /* method */
            aload 1 /* context */
            aload 5 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.javasupport.JavaMethod method
        end local 5 // org.jruby.java.proxies.JavaProxy proxy
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
            0    4     2     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     3    clazz  Lorg/jruby/RubyModule;
            0    4     4     name  Ljava/lang/String;
            2    4     5    proxy  Lorg/jruby/java/proxies/JavaProxy;
            3    4     6   method  Lorg/jruby/javasupport/JavaMethod;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=10, args_size=6
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 37
            aload 0 /* this */
            getfield org.jruby.java.invokers.InstanceMethodInvoker.javaVarargsCallables:[Lorg/jruby/javasupport/JavaCallable;
            ifnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* arg0 */
            aastore
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 38
      StackMap locals:
      StackMap stack:
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 6 /* proxy */
        start local 6 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 39
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallableArityOne:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 7 /* method */
        start local 7 // org.jruby.javasupport.JavaMethod method
         3: .line 40
            aload 7 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 8 /* paramTypes */
        start local 8 // java.lang.Class[] paramTypes
         4: .line 41
            aload 5 /* arg0 */
            aload 8 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 9 /* cArg0 */
        start local 9 // java.lang.Object cArg0
         5: .line 42
            aload 7 /* method */
            aload 1 /* context */
            aload 6 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 9 /* cArg0 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 9 // java.lang.Object cArg0
        end local 8 // java.lang.Class[] paramTypes
        end local 7 // org.jruby.javasupport.JavaMethod method
        end local 6 // org.jruby.java.proxies.JavaProxy proxy
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0    6     1     context  Lorg/jruby/runtime/ThreadContext;
            0    6     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     3       clazz  Lorg/jruby/RubyModule;
            0    6     4        name  Ljava/lang/String;
            0    6     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            2    6     6       proxy  Lorg/jruby/java/proxies/JavaProxy;
            3    6     7      method  Lorg/jruby/javasupport/JavaMethod;
            4    6     8  paramTypes  [Ljava/lang/Class;
            5    6     9       cArg0  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=12, args_size=7
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg1
         0: .line 47
            aload 0 /* this */
            getfield org.jruby.java.invokers.InstanceMethodInvoker.javaVarargsCallables:[Lorg/jruby/javasupport/JavaCallable;
            ifnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* arg0 */
            aastore
            dup
            iconst_1
            aload 6 /* arg1 */
            aastore
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 48
      StackMap locals:
      StackMap stack:
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 7 /* proxy */
        start local 7 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 49
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallableArityTwo:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 8 /* method */
        start local 8 // org.jruby.javasupport.JavaMethod method
         3: .line 50
            aload 8 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 9 /* paramTypes */
        start local 9 // java.lang.Class[] paramTypes
         4: .line 51
            aload 5 /* arg0 */
            aload 9 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 10 /* cArg0 */
        start local 10 // java.lang.Object cArg0
         5: .line 52
            aload 6 /* arg1 */
            aload 9 /* paramTypes */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 11 /* cArg1 */
        start local 11 // java.lang.Object cArg1
         6: .line 53
            aload 8 /* method */
            aload 1 /* context */
            aload 7 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 10 /* cArg0 */
            aload 11 /* cArg1 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 11 // java.lang.Object cArg1
        end local 10 // java.lang.Object cArg0
        end local 9 // java.lang.Class[] paramTypes
        end local 8 // org.jruby.javasupport.JavaMethod method
        end local 7 // org.jruby.java.proxies.JavaProxy proxy
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0    7     1     context  Lorg/jruby/runtime/ThreadContext;
            0    7     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3       clazz  Lorg/jruby/RubyModule;
            0    7     4        name  Ljava/lang/String;
            0    7     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     6        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            2    7     7       proxy  Lorg/jruby/java/proxies/JavaProxy;
            3    7     8      method  Lorg/jruby/javasupport/JavaMethod;
            4    7     9  paramTypes  [Ljava/lang/Class;
            5    7    10       cArg0  Ljava/lang/Object;
            6    7    11       cArg1  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      arg1     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=14, args_size=8
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 7 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 58
            aload 0 /* this */
            getfield org.jruby.java.invokers.InstanceMethodInvoker.javaVarargsCallables:[Lorg/jruby/javasupport/JavaCallable;
            ifnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            iconst_3
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* arg0 */
            aastore
            dup
            iconst_1
            aload 6 /* arg1 */
            aastore
            dup
            iconst_2
            aload 7 /* arg2 */
            aastore
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 59
      StackMap locals:
      StackMap stack:
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 8 /* proxy */
        start local 8 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 60
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            aload 7 /* arg2 */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallableArityThree:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 9 /* method */
        start local 9 // org.jruby.javasupport.JavaMethod method
         3: .line 61
            aload 9 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 10 /* paramTypes */
        start local 10 // java.lang.Class[] paramTypes
         4: .line 62
            aload 5 /* arg0 */
            aload 10 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 11 /* cArg0 */
        start local 11 // java.lang.Object cArg0
         5: .line 63
            aload 6 /* arg1 */
            aload 10 /* paramTypes */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 12 /* cArg1 */
        start local 12 // java.lang.Object cArg1
         6: .line 64
            aload 7 /* arg2 */
            aload 10 /* paramTypes */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 13 /* cArg2 */
        start local 13 // java.lang.Object cArg2
         7: .line 65
            aload 9 /* method */
            aload 1 /* context */
            aload 8 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 11 /* cArg0 */
            aload 12 /* cArg1 */
            aload 13 /* cArg2 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 13 // java.lang.Object cArg2
        end local 12 // java.lang.Object cArg1
        end local 11 // java.lang.Object cArg0
        end local 10 // java.lang.Class[] paramTypes
        end local 9 // org.jruby.javasupport.JavaMethod method
        end local 8 // org.jruby.java.proxies.JavaProxy proxy
        end local 7 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0    8     1     context  Lorg/jruby/runtime/ThreadContext;
            0    8     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     3       clazz  Lorg/jruby/RubyModule;
            0    8     4        name  Ljava/lang/String;
            0    8     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     6        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     7        arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            2    8     8       proxy  Lorg/jruby/java/proxies/JavaProxy;
            3    8     9      method  Lorg/jruby/javasupport/JavaMethod;
            4    8    10  paramTypes  [Ljava/lang/Class;
            5    8    11       cArg0  Ljava/lang/Object;
            6    8    12       cArg1  Ljava/lang/Object;
            7    8    13       cArg2  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      arg1     
      arg2     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=14, args_size=7
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 6 // org.jruby.runtime.Block block
         0: .line 70
            aload 6 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 13
         1: .line 71
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 7 /* proxy */
        start local 7 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 72
            aload 5 /* args */
            arraylength
            istore 8 /* len */
        start local 8 // int len
         3: .line 74
            aload 5 /* args */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 6 /* block */
            aload 6 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            invokestatic org.jruby.util.ArraySupport.newCopy:([Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)[Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* newArgs */
        start local 9 // org.jruby.runtime.builtin.IRubyObject[] newArgs
         4: .line 76
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 9 /* newArgs */
            iload 8 /* len */
            iconst_1
            iadd
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallable:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 10 /* method */
        start local 10 // org.jruby.javasupport.JavaMethod method
         5: .line 77
            aload 10 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 11 /* paramTypes */
        start local 11 // java.lang.Class[] paramTypes
         6: .line 79
            iload 8 /* len */
            iconst_1
            iadd
            anewarray java.lang.Object
            astore 12 /* convertedArgs */
        start local 12 // java.lang.Object[] convertedArgs
         7: .line 80
            iconst_0
            istore 13 /* i */
        start local 13 // int i
         8: goto 11
         9: .line 81
      StackMap locals: org.jruby.java.invokers.InstanceMethodInvoker org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyModule java.lang.String org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.java.proxies.JavaProxy int org.jruby.runtime.builtin.IRubyObject[] org.jruby.javasupport.JavaMethod java.lang.Class[] java.lang.Object[] int
      StackMap stack:
            aload 12 /* convertedArgs */
            iload 13 /* i */
            aload 9 /* newArgs */
            iload 13 /* i */
            aaload
            aload 11 /* paramTypes */
            iload 13 /* i */
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            aastore
        10: .line 80
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 13 /* i */
            iload 8 /* len */
            iconst_1
            iadd
            if_icmplt 9
        end local 13 // int i
        12: .line 84
            aload 10 /* method */
            aload 1 /* context */
            aload 7 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 12 /* convertedArgs */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 12 // java.lang.Object[] convertedArgs
        end local 11 // java.lang.Class[] paramTypes
        end local 10 // org.jruby.javasupport.JavaMethod method
        end local 9 // org.jruby.runtime.builtin.IRubyObject[] newArgs
        end local 8 // int len
        end local 7 // org.jruby.java.proxies.JavaProxy proxy
        13: .line 86
      StackMap locals: org.jruby.java.invokers.InstanceMethodInvoker org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyModule java.lang.String org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            aload 5 /* args */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.runtime.Block block
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0   14     1        context  Lorg/jruby/runtime/ThreadContext;
            0   14     2           self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   14     3          clazz  Lorg/jruby/RubyModule;
            0   14     4           name  Ljava/lang/String;
            0   14     5           args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   14     6          block  Lorg/jruby/runtime/Block;
            2   13     7          proxy  Lorg/jruby/java/proxies/JavaProxy;
            3   13     8            len  I
            4   13     9        newArgs  [Lorg/jruby/runtime/builtin/IRubyObject;
            5   13    10         method  Lorg/jruby/javasupport/JavaMethod;
            6   13    11     paramTypes  [Ljava/lang/Class;
            7   13    12  convertedArgs  [Ljava/lang/Object;
            8   12    13              i  I
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      args     
      block    

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=6
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.Block block
         0: .line 91
            aload 5 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 7
         1: .line 92
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 6 /* proxy */
        start local 6 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 93
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* block */
            aload 5 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            astore 7 /* proc */
        start local 7 // org.jruby.RubyProc proc
         3: .line 94
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 7 /* proc */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallableArityOne:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 8 /* method */
        start local 8 // org.jruby.javasupport.JavaMethod method
         4: .line 95
            aload 8 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 9 /* paramTypes */
        start local 9 // java.lang.Class[] paramTypes
         5: .line 96
            aload 7 /* proc */
            aload 9 /* paramTypes */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyProc.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 10 /* cArg0 */
        start local 10 // java.lang.Object cArg0
         6: .line 97
            aload 8 /* method */
            aload 1 /* context */
            aload 6 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 10 /* cArg0 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 10 // java.lang.Object cArg0
        end local 9 // java.lang.Class[] paramTypes
        end local 8 // org.jruby.javasupport.JavaMethod method
        end local 7 // org.jruby.RubyProc proc
        end local 6 // org.jruby.java.proxies.JavaProxy proxy
         7: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0    8     1     context  Lorg/jruby/runtime/ThreadContext;
            0    8     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     3       clazz  Lorg/jruby/RubyModule;
            0    8     4        name  Ljava/lang/String;
            0    8     5       block  Lorg/jruby/runtime/Block;
            2    7     6       proxy  Lorg/jruby/java/proxies/JavaProxy;
            3    7     7        proc  Lorg/jruby/RubyProc;
            4    7     8      method  Lorg/jruby/javasupport/JavaMethod;
            5    7     9  paramTypes  [Ljava/lang/Class;
            6    7    10       cArg0  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      block    

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=13, args_size=7
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.Block block
         0: .line 104
            aload 6 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 8
         1: .line 105
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 7 /* proxy */
        start local 7 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 106
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 6 /* block */
            aload 6 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            astore 8 /* proc */
        start local 8 // org.jruby.RubyProc proc
         3: .line 107
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 8 /* proc */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallableArityTwo:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 9 /* method */
        start local 9 // org.jruby.javasupport.JavaMethod method
         4: .line 108
            aload 9 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 10 /* paramTypes */
        start local 10 // java.lang.Class[] paramTypes
         5: .line 109
            aload 5 /* arg0 */
            aload 10 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 11 /* cArg0 */
        start local 11 // java.lang.Object cArg0
         6: .line 110
            aload 8 /* proc */
            aload 10 /* paramTypes */
            iconst_1
            aaload
            invokevirtual org.jruby.RubyProc.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 12 /* cArg1 */
        start local 12 // java.lang.Object cArg1
         7: .line 111
            aload 9 /* method */
            aload 1 /* context */
            aload 7 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 11 /* cArg0 */
            aload 12 /* cArg1 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 12 // java.lang.Object cArg1
        end local 11 // java.lang.Object cArg0
        end local 10 // java.lang.Class[] paramTypes
        end local 9 // org.jruby.javasupport.JavaMethod method
        end local 8 // org.jruby.RubyProc proc
        end local 7 // org.jruby.java.proxies.JavaProxy proxy
         8: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            aload 5 /* arg0 */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.runtime.Block block
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0    9     1     context  Lorg/jruby/runtime/ThreadContext;
            0    9     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     3       clazz  Lorg/jruby/RubyModule;
            0    9     4        name  Ljava/lang/String;
            0    9     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     6       block  Lorg/jruby/runtime/Block;
            2    8     7       proxy  Lorg/jruby/java/proxies/JavaProxy;
            3    8     8        proc  Lorg/jruby/RubyProc;
            4    8     9      method  Lorg/jruby/javasupport/JavaMethod;
            5    8    10  paramTypes  [Ljava/lang/Class;
            6    8    11       cArg0  Ljava/lang/Object;
            7    8    12       cArg1  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      block    

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;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=7, locals=15, args_size=8
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 7 // org.jruby.runtime.Block block
         0: .line 118
            aload 7 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 9
         1: .line 119
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 8 /* proxy */
        start local 8 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 120
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 7 /* block */
            aload 7 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            astore 9 /* proc */
        start local 9 // org.jruby.RubyProc proc
         3: .line 121
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            aload 9 /* proc */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallableArityThree:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 10 /* method */
        start local 10 // org.jruby.javasupport.JavaMethod method
         4: .line 122
            aload 10 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 11 /* paramTypes */
        start local 11 // java.lang.Class[] paramTypes
         5: .line 123
            aload 5 /* arg0 */
            aload 11 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 12 /* cArg0 */
        start local 12 // java.lang.Object cArg0
         6: .line 124
            aload 6 /* arg1 */
            aload 11 /* paramTypes */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 13 /* cArg1 */
        start local 13 // java.lang.Object cArg1
         7: .line 125
            aload 9 /* proc */
            aload 11 /* paramTypes */
            iconst_2
            aaload
            invokevirtual org.jruby.RubyProc.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 14 /* cArg2 */
        start local 14 // java.lang.Object cArg2
         8: .line 126
            aload 10 /* method */
            aload 1 /* context */
            aload 8 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 12 /* cArg0 */
            aload 13 /* cArg1 */
            aload 14 /* cArg2 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 14 // java.lang.Object cArg2
        end local 13 // java.lang.Object cArg1
        end local 12 // java.lang.Object cArg0
        end local 11 // java.lang.Class[] paramTypes
        end local 10 // org.jruby.javasupport.JavaMethod method
        end local 9 // org.jruby.RubyProc proc
        end local 8 // org.jruby.java.proxies.JavaProxy proxy
         9: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // org.jruby.runtime.Block block
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0   10     1     context  Lorg/jruby/runtime/ThreadContext;
            0   10     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     3       clazz  Lorg/jruby/RubyModule;
            0   10     4        name  Ljava/lang/String;
            0   10     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     6        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     7       block  Lorg/jruby/runtime/Block;
            2    9     8       proxy  Lorg/jruby/java/proxies/JavaProxy;
            3    9     9        proc  Lorg/jruby/RubyProc;
            4    9    10      method  Lorg/jruby/javasupport/JavaMethod;
            5    9    11  paramTypes  [Ljava/lang/Class;
            6    9    12       cArg0  Ljava/lang/Object;
            7    9    13       cArg1  Ljava/lang/Object;
            8    9    14       cArg2  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      arg1     
      block    

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=17, args_size=9
        start local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 7 // org.jruby.runtime.builtin.IRubyObject arg2
        start local 8 // org.jruby.runtime.Block block
         0: .line 133
            aload 8 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 10
         1: .line 134
            aload 2 /* self */
            invokestatic org.jruby.java.invokers.InstanceMethodInvoker.castJavaProxy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/java/proxies/JavaProxy;
            astore 9 /* proxy */
        start local 9 // org.jruby.java.proxies.JavaProxy proxy
         2: .line 135
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 8 /* block */
            aload 8 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            astore 10 /* proc */
        start local 10 // org.jruby.RubyProc proc
         3: .line 136
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            aload 7 /* arg2 */
            aload 10 /* proc */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.findCallableArityFour:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 11 /* method */
        start local 11 // org.jruby.javasupport.JavaMethod method
         4: .line 137
            aload 11 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 12 /* paramTypes */
        start local 12 // java.lang.Class[] paramTypes
         5: .line 138
            aload 5 /* arg0 */
            aload 12 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 13 /* cArg0 */
        start local 13 // java.lang.Object cArg0
         6: .line 139
            aload 6 /* arg1 */
            aload 12 /* paramTypes */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 14 /* cArg1 */
        start local 14 // java.lang.Object cArg1
         7: .line 140
            aload 7 /* arg2 */
            aload 12 /* paramTypes */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 15 /* cArg2 */
        start local 15 // java.lang.Object cArg2
         8: .line 141
            aload 10 /* proc */
            aload 12 /* paramTypes */
            iconst_3
            aaload
            invokevirtual org.jruby.RubyProc.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 16 /* cArg3 */
        start local 16 // java.lang.Object cArg3
         9: .line 142
            aload 11 /* method */
            aload 1 /* context */
            aload 9 /* proxy */
            invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
            aload 13 /* cArg0 */
            aload 14 /* cArg1 */
            aload 15 /* cArg2 */
            aload 16 /* cArg3 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 16 // java.lang.Object cArg3
        end local 15 // java.lang.Object cArg2
        end local 14 // java.lang.Object cArg1
        end local 13 // java.lang.Object cArg0
        end local 12 // java.lang.Class[] paramTypes
        end local 11 // org.jruby.javasupport.JavaMethod method
        end local 10 // org.jruby.RubyProc proc
        end local 9 // org.jruby.java.proxies.JavaProxy proxy
        10: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            aload 7 /* arg2 */
            invokevirtual org.jruby.java.invokers.InstanceMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 8 // org.jruby.runtime.Block block
        end local 7 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.InstanceMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/jruby/java/invokers/InstanceMethodInvoker;
            0   11     1     context  Lorg/jruby/runtime/ThreadContext;
            0   11     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     3       clazz  Lorg/jruby/RubyModule;
            0   11     4        name  Ljava/lang/String;
            0   11     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     6        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     7        arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     8       block  Lorg/jruby/runtime/Block;
            2   10     9       proxy  Lorg/jruby/java/proxies/JavaProxy;
            3   10    10        proc  Lorg/jruby/RubyProc;
            4   10    11      method  Lorg/jruby/javasupport/JavaMethod;
            5   10    12  paramTypes  [Ljava/lang/Class;
            6   10    13       cArg0  Ljava/lang/Object;
            7   10    14       cArg1  Ljava/lang/Object;
            8   10    15       cArg2  Ljava/lang/Object;
            9   10    16       cArg3  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      arg1     
      arg2     
      block    
}
SourceFile: "InstanceMethodInvoker.java"
InnerClasses:
  public final Type = org.jruby.runtime.Block$Type of org.jruby.runtime.Block