public abstract class org.jruby.ir.targets.LazyObjectSite extends org.jruby.ir.targets.ConstructObjectSite
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.jruby.ir.targets.LazyObjectSite
  super_class: org.jruby.ir.targets.ConstructObjectSite
{
  private static final java.lang.invoke.MethodHandle CACHE;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 23
            ldc Lorg/jruby/runtime/builtin/IRubyObject;
            ldc Lorg/jruby/ir/targets/LazyObjectSite;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Lcom/headius/invokebinder/Binder;
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "cache"
            invokevirtual com.headius.invokebinder.Binder.invokeVirtualQuiet:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;)Ljava/lang/invoke/MethodHandle;
            putstatic org.jruby.ir.targets.LazyObjectSite.CACHE:Ljava/lang/invoke/MethodHandle;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ir.targets.LazyObjectSite this
        start local 1 // java.lang.invoke.MethodType type
         0: .line 20
            aload 0 /* this */
            aload 1 /* type */
            invokespecial org.jruby.ir.targets.ConstructObjectSite.<init>:(Ljava/lang/invoke/MethodType;)V
         1: .line 21
            return
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // org.jruby.ir.targets.LazyObjectSite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/targets/LazyObjectSite;
            0    2     1  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  public org.jruby.runtime.builtin.IRubyObject cache(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.ir.targets.LazyObjectSite this
        start local 1 // org.jruby.runtime.builtin.IRubyObject t
         0: .line 26
            aconst_null
            astore 2 /* constant */
        start local 2 // java.lang.invoke.MethodHandle constant
         1: .line 28
            aload 1 /* t */
            instanceof org.jruby.compiler.Constantizable
            ifeq 3
         2: .line 29
            aload 1 /* t */
            checkcast org.jruby.compiler.Constantizable
            invokeinterface org.jruby.compiler.Constantizable.constant:()Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 2 /* constant */
         3: .line 32
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 2 /* constant */
            ifnonnull 8
         4: .line 33
            aload 0 /* this */
            invokevirtual org.jruby.ir.targets.LazyObjectSite.type:()Ljava/lang/invoke/MethodType;
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/invoke/MethodType;)Lcom/headius/invokebinder/Binder;
         5: .line 34
            invokevirtual com.headius.invokebinder.Binder.dropAll:()Lcom/headius/invokebinder/Binder;
         6: .line 35
            aload 1 /* t */
            invokevirtual com.headius.invokebinder.Binder.constant:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
         7: .line 33
            astore 2 /* constant */
         8: .line 38
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* constant */
            invokevirtual org.jruby.ir.targets.LazyObjectSite.setTarget:(Ljava/lang/invoke/MethodHandle;)V
         9: .line 40
            aload 1 /* t */
            areturn
        end local 2 // java.lang.invoke.MethodHandle constant
        end local 1 // org.jruby.runtime.builtin.IRubyObject t
        end local 0 // org.jruby.ir.targets.LazyObjectSite this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/jruby/ir/targets/LazyObjectSite;
            0   10     1         t  Lorg/jruby/runtime/builtin/IRubyObject;
            1   10     2  constant  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      t     

  public com.headius.invokebinder.Binder prepareBinder();
    descriptor: ()Lcom/headius/invokebinder/Binder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ir.targets.LazyObjectSite this
         0: .line 46
            aload 0 /* this */
            invokevirtual org.jruby.ir.targets.LazyObjectSite.type:()Ljava/lang/invoke/MethodType;
            invokestatic com.headius.invokebinder.Binder.from:(Ljava/lang/invoke/MethodType;)Lcom/headius/invokebinder/Binder;
         1: .line 47
            getstatic org.jruby.ir.targets.LazyObjectSite.CACHE:Ljava/lang/invoke/MethodHandle;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            invokevirtual com.headius.invokebinder.Binder.filterReturn:(Ljava/lang/invoke/MethodHandle;)Lcom/headius/invokebinder/Binder;
         2: .line 45
            areturn
        end local 0 // org.jruby.ir.targets.LazyObjectSite this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ir/targets/LazyObjectSite;
}
SourceFile: "LazyObjectSite.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles