public class org.jruby.runtime.invokedynamic.InvocationLinker
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.runtime.invokedynamic.InvocationLinker
  super_class: java.lang.Object
{
  private static final java.lang.invoke.MethodHandle CALL_THREAD_POLL_HANDLE;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 88
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            ldc Lorg/jruby/runtime/ThreadContext;
            iconst_0
            anewarray java.lang.Class
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Lcom/headius/invokebinder/Binder;
         1: .line 89
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc Lorg/jruby/runtime/ThreadContext;
            ldc "callThreadPoll"
            invokevirtual com.headius.invokebinder.Binder.invokeStaticQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/invoke/MethodHandle;
         2: .line 86
            putstatic org.jruby.runtime.invokedynamic.InvocationLinker.CALL_THREAD_POLL_HANDLE:Ljava/lang/invoke/MethodHandle;
         3: .line 89
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static java.lang.invoke.MethodHandle wrapWithFraming(com.headius.invokebinder.Signature, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.RubyModule, java.lang.String, java.lang.invoke.MethodHandle, org.jruby.parser.StaticScope);
    descriptor: (Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;Lorg/jruby/RubyModule;Ljava/lang/String;Ljava/lang/invoke/MethodHandle;Lorg/jruby/parser/StaticScope;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // com.headius.invokebinder.Signature signature
        start local 1 // org.jruby.internal.runtime.methods.CallConfiguration callConfig
        start local 2 // org.jruby.RubyModule implClass
        start local 3 // java.lang.String name
        start local 4 // java.lang.invoke.MethodHandle nativeTarget
        start local 5 // org.jruby.parser.StaticScope scope
         0: .line 54
            aload 0 /* signature */
            aload 1 /* callConfig */
            aload 2 /* implClass */
            aload 3 /* name */
            aload 5 /* scope */
            invokestatic org.jruby.runtime.invokedynamic.InvocationLinker.getFramePre:(Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/parser/StaticScope;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* framePre */
        start local 6 // java.lang.invoke.MethodHandle framePre
         1: .line 56
            aload 6 /* framePre */
            ifnull 17
         2: .line 57
            aload 0 /* signature */
            aload 1 /* callConfig */
            invokestatic org.jruby.runtime.invokedynamic.InvocationLinker.getFramePost:(Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;)Ljava/lang/invoke/MethodHandle;
            astore 7 /* framePost */
        start local 7 // java.lang.invoke.MethodHandle framePost
         3: .line 60
            aload 1 /* callConfig */
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.scoping:()Lorg/jruby/internal/runtime/methods/Scoping;
            pop
            getstatic org.jruby.internal.runtime.methods.Scoping.None:Lorg/jruby/internal/runtime/methods/Scoping;
            pop
         4: .line 61
            aload 1 /* callConfig */
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.framing:()Lorg/jruby/internal/runtime/methods/Framing;
            pop
            getstatic org.jruby.internal.runtime.methods.Framing.None:Lorg/jruby/internal/runtime/methods/Framing;
            pop
         5: .line 65
            aload 4 /* nativeTarget */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/invoke/MethodType;)Lcom/headius/invokebinder/Binder;
         6: .line 66
            aload 7 /* framePost */
            invokevirtual com.headius.invokebinder.Binder.tryFinally:(Ljava/lang/invoke/MethodHandle;)Lcom/headius/invokebinder/Binder;
         7: .line 67
            aload 4 /* nativeTarget */
            invokevirtual com.headius.invokebinder.Binder.invoke:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
         8: .line 64
            astore 4 /* nativeTarget */
         9: .line 70
            aload 4 /* nativeTarget */
            aload 6 /* framePre */
            invokestatic java.lang.invoke.MethodHandles.foldArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* nativeTarget */
        10: .line 75
            aload 4 /* nativeTarget */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/invoke/MethodType;)Lcom/headius/invokebinder/Binder;
        11: .line 77
            aload 4 /* nativeTarget */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/invoke/MethodType;)Lcom/headius/invokebinder/Binder;
            iconst_1
            newarray 10
            dup
            iconst_0
        12: .line 78
            iconst_0
            iastore
            invokevirtual com.headius.invokebinder.Binder.permute:([I)Lcom/headius/invokebinder/Binder;
        13: .line 79
            getstatic org.jruby.runtime.invokedynamic.InvocationLinker.CALL_THREAD_POLL_HANDLE:Ljava/lang/invoke/MethodHandle;
            invokevirtual com.headius.invokebinder.Binder.invoke:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        14: .line 76
            invokevirtual com.headius.invokebinder.Binder.fold:(Ljava/lang/invoke/MethodHandle;)Lcom/headius/invokebinder/Binder;
        15: .line 80
            aload 4 /* nativeTarget */
            invokevirtual com.headius.invokebinder.Binder.invoke:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        16: .line 74
            astore 4 /* nativeTarget */
        end local 7 // java.lang.invoke.MethodHandle framePost
        17: .line 83
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 4 /* nativeTarget */
            areturn
        end local 6 // java.lang.invoke.MethodHandle framePre
        end local 5 // org.jruby.parser.StaticScope scope
        end local 4 // java.lang.invoke.MethodHandle nativeTarget
        end local 3 // java.lang.String name
        end local 2 // org.jruby.RubyModule implClass
        end local 1 // org.jruby.internal.runtime.methods.CallConfiguration callConfig
        end local 0 // com.headius.invokebinder.Signature signature
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0     signature  Lcom/headius/invokebinder/Signature;
            0   18     1    callConfig  Lorg/jruby/internal/runtime/methods/CallConfiguration;
            0   18     2     implClass  Lorg/jruby/RubyModule;
            0   18     3          name  Ljava/lang/String;
            0   18     4  nativeTarget  Ljava/lang/invoke/MethodHandle;
            0   18     5         scope  Lorg/jruby/parser/StaticScope;
            1   18     6      framePre  Ljava/lang/invoke/MethodHandle;
            3   17     7     framePost  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
              Name  Flags
      signature     
      callConfig    
      implClass     
      name          
      nativeTarget  
      scope         

  public static java.lang.invoke.MethodHandle wrapWithFrameOnly(com.headius.invokebinder.Signature, org.jruby.RubyModule, java.lang.String, java.lang.invoke.MethodHandle);
    descriptor: (Lcom/headius/invokebinder/Signature;Lorg/jruby/RubyModule;Ljava/lang/String;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.headius.invokebinder.Signature signature
        start local 1 // org.jruby.RubyModule implClass
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodHandle nativeTarget
         0: .line 92
            aload 0 /* signature */
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameFullScopeNone:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            aload 1 /* implClass */
            aload 2 /* name */
            invokestatic org.jruby.runtime.invokedynamic.InvocationLinker.getFrameOnlyPre:(Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;Lorg/jruby/RubyModule;Ljava/lang/String;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* framePre */
        start local 4 // java.lang.invoke.MethodHandle framePre
         1: .line 94
            aload 0 /* signature */
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameFullScopeNone:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokestatic org.jruby.runtime.invokedynamic.InvocationLinker.getFramePost:(Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;)Ljava/lang/invoke/MethodHandle;
            astore 5 /* framePost */
        start local 5 // java.lang.invoke.MethodHandle framePost
         2: .line 98
            aload 3 /* nativeTarget */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/invoke/MethodType;)Lcom/headius/invokebinder/Binder;
         3: .line 99
            aload 5 /* framePost */
            invokevirtual com.headius.invokebinder.Binder.tryFinally:(Ljava/lang/invoke/MethodHandle;)Lcom/headius/invokebinder/Binder;
         4: .line 100
            aload 3 /* nativeTarget */
            invokevirtual com.headius.invokebinder.Binder.invoke:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
         5: .line 97
            astore 3 /* nativeTarget */
         6: .line 103
            aload 3 /* nativeTarget */
            aload 4 /* framePre */
            invokestatic java.lang.invoke.MethodHandles.foldArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* nativeTarget */
         7: .line 108
            aload 3 /* nativeTarget */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/invoke/MethodType;)Lcom/headius/invokebinder/Binder;
         8: .line 110
            aload 3 /* nativeTarget */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/invoke/MethodType;)Lcom/headius/invokebinder/Binder;
            iconst_1
            newarray 10
            dup
            iconst_0
         9: .line 111
            iconst_0
            iastore
            invokevirtual com.headius.invokebinder.Binder.permute:([I)Lcom/headius/invokebinder/Binder;
        10: .line 112
            getstatic org.jruby.runtime.invokedynamic.InvocationLinker.CALL_THREAD_POLL_HANDLE:Ljava/lang/invoke/MethodHandle;
            invokevirtual com.headius.invokebinder.Binder.invoke:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        11: .line 109
            invokevirtual com.headius.invokebinder.Binder.fold:(Ljava/lang/invoke/MethodHandle;)Lcom/headius/invokebinder/Binder;
        12: .line 113
            aload 3 /* nativeTarget */
            invokevirtual com.headius.invokebinder.Binder.invoke:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        13: .line 107
            astore 3 /* nativeTarget */
        14: .line 115
            aload 3 /* nativeTarget */
            areturn
        end local 5 // java.lang.invoke.MethodHandle framePost
        end local 4 // java.lang.invoke.MethodHandle framePre
        end local 3 // java.lang.invoke.MethodHandle nativeTarget
        end local 2 // java.lang.String name
        end local 1 // org.jruby.RubyModule implClass
        end local 0 // com.headius.invokebinder.Signature signature
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0     signature  Lcom/headius/invokebinder/Signature;
            0   15     1     implClass  Lorg/jruby/RubyModule;
            0   15     2          name  Ljava/lang/String;
            0   15     3  nativeTarget  Ljava/lang/invoke/MethodHandle;
            1   15     4      framePre  Ljava/lang/invoke/MethodHandle;
            2   15     5     framePost  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
              Name  Flags
      signature     
      implClass     
      name          
      nativeTarget  

  public static java.lang.invoke.MethodHandle getFramePre(com.headius.invokebinder.Signature, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.RubyModule, java.lang.String, org.jruby.parser.StaticScope);
    descriptor: (Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/parser/StaticScope;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=5
        start local 0 // com.headius.invokebinder.Signature signature
        start local 1 // org.jruby.internal.runtime.methods.CallConfiguration callConfig
        start local 2 // org.jruby.RubyModule implClass
        start local 3 // java.lang.String name
        start local 4 // org.jruby.parser.StaticScope scope
         0: .line 119
            aload 0 /* signature */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokevirtual com.headius.invokebinder.Signature.asFold:(Ljava/lang/Class;)Lcom/headius/invokebinder/Signature;
            astore 5 /* inbound */
        start local 5 // com.headius.invokebinder.Signature inbound
         1: .line 121
            aload 5 /* inbound */
            invokestatic com.headius.invokebinder.SmartBinder.from:(Lcom/headius/invokebinder/Signature;)Lcom/headius/invokebinder/SmartBinder;
         2: .line 120
            astore 6 /* binder */
        start local 6 // com.headius.invokebinder.SmartBinder binder
         3: .line 123
            invokestatic org.jruby.runtime.invokedynamic.InvocationLinker.$SWITCH_TABLE$org$jruby$internal$runtime$methods$CallConfiguration:()[I
            aload 1 /* callConfig */
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 4
                    2: 11
                    3: 18
                    4: 31
                    5: 31
                    6: 31
                    7: 30
                    8: 24
              default: 31
          }
         4: .line 126
      StackMap locals: com.headius.invokebinder.Signature com.headius.invokebinder.SmartBinder
      StackMap stack:
            aload 6 /* binder */
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
         5: .line 127
            ldc "context"
            aastore
            dup
            iconst_1
            ldc "self"
            aastore
            dup
            iconst_2
            ldc "block"
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.permute:([Ljava/lang/String;)Lcom/headius/invokebinder/SmartBinder;
         6: .line 128
            iconst_1
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "selfClass"
            aastore
            dup
            iconst_1
            ldc "name"
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/RubyModule;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* implClass */
            aastore
            dup
            iconst_1
            aload 3 /* name */
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.insert:(I[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Lcom/headius/invokebinder/SmartBinder;
         7: .line 129
            iconst_5
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "scope"
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/parser/StaticScope;
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* scope */
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.insert:(I[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Lcom/headius/invokebinder/SmartBinder;
         8: .line 130
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "preMethodFrameAndScope"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
         9: .line 131
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
        10: .line 126
            areturn
        11: .line 135
      StackMap locals:
      StackMap stack:
            aload 6 /* binder */
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
        12: .line 136
            ldc "context"
            aastore
            dup
            iconst_1
            ldc "self"
            aastore
            dup
            iconst_2
            ldc "block"
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.permute:([Ljava/lang/String;)Lcom/headius/invokebinder/SmartBinder;
        13: .line 137
            iconst_1
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "selfClass"
            aastore
            dup
            iconst_1
            ldc "name"
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/RubyModule;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* implClass */
            aastore
            dup
            iconst_1
            aload 3 /* name */
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.insert:(I[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Lcom/headius/invokebinder/SmartBinder;
        14: .line 138
            iconst_5
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "scope"
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/parser/StaticScope;
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* scope */
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.insert:(I[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Lcom/headius/invokebinder/SmartBinder;
        15: .line 139
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "preMethodFrameAndDummyScope"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
        16: .line 140
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
        17: .line 135
            areturn
        18: .line 144
      StackMap locals:
      StackMap stack:
            aload 6 /* binder */
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
        19: .line 145
            ldc "context"
            aastore
            dup
            iconst_1
            ldc "self"
            aastore
            dup
            iconst_2
            ldc "block"
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.permute:([Ljava/lang/String;)Lcom/headius/invokebinder/SmartBinder;
        20: .line 146
            iconst_1
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "selfClass"
            aastore
            dup
            iconst_1
            ldc "name"
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/RubyModule;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* implClass */
            aastore
            dup
            iconst_1
            aload 3 /* name */
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.insert:(I[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Lcom/headius/invokebinder/SmartBinder;
        21: .line 147
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "preMethodFrameOnly"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
        22: .line 148
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
        23: .line 144
            areturn
        24: .line 152
      StackMap locals:
      StackMap stack:
            aload 6 /* binder */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
        25: .line 153
            ldc "context"
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.permute:([Ljava/lang/String;)Lcom/headius/invokebinder/SmartBinder;
        26: .line 154
            iconst_1
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "selfClass"
            aastore
            dup
            iconst_1
            ldc "scope"
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/RubyModule;
            aastore
            dup
            iconst_1
            ldc Lorg/jruby/parser/StaticScope;
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* implClass */
            aastore
            dup
            iconst_1
            aload 4 /* scope */
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.insert:(I[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Lcom/headius/invokebinder/SmartBinder;
        27: .line 155
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "preMethodNoFrameAndDummyScope"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
        28: .line 156
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
        29: .line 152
            areturn
        30: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* signature */
            aload 1 /* callConfig */
            aload 2 /* implClass */
            aload 3 /* name */
            invokestatic org.jruby.runtime.invokedynamic.InvocationLinker.getFrameOnlyPre:(Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;Lorg/jruby/RubyModule;Ljava/lang/String;)Ljava/lang/invoke/MethodHandle;
            areturn
        31: .line 163
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // com.headius.invokebinder.SmartBinder binder
        end local 5 // com.headius.invokebinder.Signature inbound
        end local 4 // org.jruby.parser.StaticScope scope
        end local 3 // java.lang.String name
        end local 2 // org.jruby.RubyModule implClass
        end local 1 // org.jruby.internal.runtime.methods.CallConfiguration callConfig
        end local 0 // com.headius.invokebinder.Signature signature
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   32     0   signature  Lcom/headius/invokebinder/Signature;
            0   32     1  callConfig  Lorg/jruby/internal/runtime/methods/CallConfiguration;
            0   32     2   implClass  Lorg/jruby/RubyModule;
            0   32     3        name  Ljava/lang/String;
            0   32     4       scope  Lorg/jruby/parser/StaticScope;
            1   32     5     inbound  Lcom/headius/invokebinder/Signature;
            3   32     6      binder  Lcom/headius/invokebinder/SmartBinder;
    MethodParameters:
            Name  Flags
      signature   
      callConfig  
      implClass   
      name        
      scope       

  public static java.lang.invoke.MethodHandle getFrameOnlyPre(com.headius.invokebinder.Signature, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.RubyModule, java.lang.String);
    descriptor: (Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;Lorg/jruby/RubyModule;Ljava/lang/String;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // com.headius.invokebinder.Signature signature
        start local 1 // org.jruby.internal.runtime.methods.CallConfiguration callConfig
        start local 2 // org.jruby.RubyModule implClass
        start local 3 // java.lang.String name
         0: .line 167
            aload 0 /* signature */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokevirtual com.headius.invokebinder.Signature.asFold:(Ljava/lang/Class;)Lcom/headius/invokebinder/Signature;
            astore 4 /* inbound */
        start local 4 // com.headius.invokebinder.Signature inbound
         1: .line 169
            aload 4 /* inbound */
            invokestatic com.headius.invokebinder.SmartBinder.from:(Lcom/headius/invokebinder/Signature;)Lcom/headius/invokebinder/SmartBinder;
         2: .line 168
            astore 5 /* binder */
        start local 5 // com.headius.invokebinder.SmartBinder binder
         3: .line 171
            invokestatic org.jruby.runtime.invokedynamic.InvocationLinker.$SWITCH_TABLE$org$jruby$internal$runtime$methods$CallConfiguration:()[I
            aload 1 /* callConfig */
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            iaload
            tableswitch { // 3 - 3
                    3: 4
              default: 10
          }
         4: .line 174
      StackMap locals: com.headius.invokebinder.Signature com.headius.invokebinder.SmartBinder
      StackMap stack:
            aload 5 /* binder */
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
         5: .line 175
            ldc "context"
            aastore
            dup
            iconst_1
            ldc "self"
            aastore
            dup
            iconst_2
            ldc "block"
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.permute:([Ljava/lang/String;)Lcom/headius/invokebinder/SmartBinder;
         6: .line 176
            iconst_1
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "selfClass"
            aastore
            dup
            iconst_1
            ldc "name"
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/RubyModule;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokestatic org.jruby.runtime.Helpers.arrayOf:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* implClass */
            aastore
            dup
            iconst_1
            aload 3 /* name */
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.insert:(I[Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Lcom/headius/invokebinder/SmartBinder;
         7: .line 177
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "preMethodFrameOnly"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
         8: .line 178
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
         9: .line 174
            areturn
        10: .line 181
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid input: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* callConfig */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // com.headius.invokebinder.SmartBinder binder
        end local 4 // com.headius.invokebinder.Signature inbound
        end local 3 // java.lang.String name
        end local 2 // org.jruby.RubyModule implClass
        end local 1 // org.jruby.internal.runtime.methods.CallConfiguration callConfig
        end local 0 // com.headius.invokebinder.Signature signature
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0   signature  Lcom/headius/invokebinder/Signature;
            0   11     1  callConfig  Lorg/jruby/internal/runtime/methods/CallConfiguration;
            0   11     2   implClass  Lorg/jruby/RubyModule;
            0   11     3        name  Ljava/lang/String;
            1   11     4     inbound  Lcom/headius/invokebinder/Signature;
            3   11     5      binder  Lcom/headius/invokebinder/SmartBinder;
    MethodParameters:
            Name  Flags
      signature   
      callConfig  
      implClass   
      name        

  public static java.lang.invoke.MethodHandle getFramePost(com.headius.invokebinder.Signature, org.jruby.internal.runtime.methods.CallConfiguration);
    descriptor: (Lcom/headius/invokebinder/Signature;Lorg/jruby/internal/runtime/methods/CallConfiguration;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.headius.invokebinder.Signature signature
        start local 1 // org.jruby.internal.runtime.methods.CallConfiguration callConfig
         0: .line 187
            aload 0 /* signature */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokevirtual com.headius.invokebinder.Signature.asFold:(Ljava/lang/Class;)Lcom/headius/invokebinder/Signature;
            astore 2 /* inbound */
        start local 2 // com.headius.invokebinder.Signature inbound
         1: .line 189
            aload 2 /* inbound */
            invokestatic com.headius.invokebinder.SmartBinder.from:(Lcom/headius/invokebinder/Signature;)Lcom/headius/invokebinder/SmartBinder;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
         2: .line 190
            ldc "context"
            aastore
            invokevirtual com.headius.invokebinder.SmartBinder.permute:([Ljava/lang/String;)Lcom/headius/invokebinder/SmartBinder;
         3: .line 188
            astore 3 /* binder */
        start local 3 // com.headius.invokebinder.SmartBinder binder
         4: .line 192
            invokestatic org.jruby.runtime.invokedynamic.InvocationLinker.$SWITCH_TABLE$org$jruby$internal$runtime$methods$CallConfiguration:()[I
            aload 1 /* callConfig */
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 5
                    2: 9
                    3: 13
                    4: 25
                    5: 25
                    6: 25
                    7: 17
                    8: 21
              default: 25
          }
         5: .line 195
      StackMap locals: com.headius.invokebinder.Signature com.headius.invokebinder.SmartBinder
      StackMap stack:
            aload 3 /* binder */
         6: .line 196
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "postMethodFrameAndScope"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
         7: .line 197
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
         8: .line 195
            areturn
         9: .line 201
      StackMap locals:
      StackMap stack:
            aload 3 /* binder */
        10: .line 202
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "postMethodFrameAndScope"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
        11: .line 203
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
        12: .line 201
            areturn
        13: .line 207
      StackMap locals:
      StackMap stack:
            aload 3 /* binder */
        14: .line 208
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "postMethodFrameOnly"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
        15: .line 209
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
        16: .line 207
            areturn
        17: .line 213
      StackMap locals:
      StackMap stack:
            aload 3 /* binder */
        18: .line 214
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "postMethodScopeOnly"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
        19: .line 215
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
        20: .line 213
            areturn
        21: .line 219
      StackMap locals:
      StackMap stack:
            aload 3 /* binder */
        22: .line 220
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "postMethodScopeOnly"
            invokevirtual com.headius.invokebinder.SmartBinder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Lcom/headius/invokebinder/SmartHandle;
        23: .line 221
            invokevirtual com.headius.invokebinder.SmartHandle.handle:()Ljava/lang/invoke/MethodHandle;
        24: .line 219
            areturn
        25: .line 225
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // com.headius.invokebinder.SmartBinder binder
        end local 2 // com.headius.invokebinder.Signature inbound
        end local 1 // org.jruby.internal.runtime.methods.CallConfiguration callConfig
        end local 0 // com.headius.invokebinder.Signature signature
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0   signature  Lcom/headius/invokebinder/Signature;
            0   26     1  callConfig  Lorg/jruby/internal/runtime/methods/CallConfiguration;
            1   26     2     inbound  Lcom/headius/invokebinder/Signature;
            4   26     3      binder  Lcom/headius/invokebinder/SmartBinder;
    MethodParameters:
            Name  Flags
      signature   
      callConfig  

  static int[] $SWITCH_TABLE$org$jruby$internal$runtime$methods$CallConfiguration();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 51
            getstatic org.jruby.runtime.invokedynamic.InvocationLinker.$SWITCH_TABLE$org$jruby$internal$runtime$methods$CallConfiguration:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.jruby.internal.runtime.methods.CallConfiguration.values:()[Lorg/jruby/internal/runtime/methods/CallConfiguration;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameBacktraceScopeDummy:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            iconst_5
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameBacktraceScopeFull:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameBacktraceScopeNone:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            bipush 6
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameFullScopeDummy:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameFullScopeFull:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameFullScopeNone:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            iconst_3
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameNoneScopeDummy:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            bipush 8
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameNoneScopeFull:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            bipush 7
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.jruby.internal.runtime.methods.CallConfiguration.FrameNoneScopeNone:Lorg/jruby/internal/runtime/methods/CallConfiguration;
            invokevirtual org.jruby.internal.runtime.methods.CallConfiguration.ordinal:()I
            bipush 9
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            dup
            putstatic org.jruby.runtime.invokedynamic.InvocationLinker.$SWITCH_TABLE$org$jruby$internal$runtime$methods$CallConfiguration:[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
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
}
SourceFile: "InvocationLinker.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles