final class jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker implements jdk.dynalink.linker.TypeBasedGuardingDynamicLinker
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker
  super_class: java.lang.Object
{
  private final jdk.dynalink.linker.GuardingDynamicLinker staticClassLinker;
    descriptor: Ljdk/dynalink/linker/GuardingDynamicLinker;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(jdk.dynalink.beans.BeansLinker);
    descriptor: (Ljdk/dynalink/beans/BeansLinker;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker this
        start local 1 // jdk.dynalink.beans.BeansLinker beansLinker
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
            aload 1 /* beansLinker */
            ldc Ljdk/dynalink/beans/StaticClass;
            invokevirtual jdk.dynalink.beans.BeansLinker.getLinkerForClass:(Ljava/lang/Class;)Ljdk/dynalink/linker/TypeBasedGuardingDynamicLinker;
            putfield jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.staticClassLinker:Ljdk/dynalink/linker/GuardingDynamicLinker;
         2: .line 61
            return
        end local 1 // jdk.dynalink.beans.BeansLinker beansLinker
        end local 0 // jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljdk/nashorn/internal/runtime/linker/NashornStaticClassLinker;
            0    3     1  beansLinker  Ljdk/dynalink/beans/BeansLinker;
    MethodParameters:
             Name  Flags
      beansLinker  final

  public boolean canLinkType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker this
        start local 1 // java.lang.Class type
         0: .line 65
            aload 1 /* type */
            ldc Ljdk/dynalink/beans/StaticClass;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Class type
        end local 0 // jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/internal/runtime/linker/NashornStaticClassLinker;
            0    2     1  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      type  final

  public jdk.dynalink.linker.GuardedInvocation getGuardedInvocation(jdk.dynalink.linker.LinkRequest, jdk.dynalink.linker.LinkerServices);
    descriptor: (Ljdk/dynalink/linker/LinkRequest;Ljdk/dynalink/linker/LinkerServices;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker this
        start local 1 // jdk.dynalink.linker.LinkRequest request
        start local 2 // jdk.dynalink.linker.LinkerServices linkerServices
         0: .line 70
            aload 1 /* request */
            invokeinterface jdk.dynalink.linker.LinkRequest.getReceiver:()Ljava/lang/Object;
            astore 3 /* self */
        start local 3 // java.lang.Object self
         1: .line 71
            aload 3 /* self */
            ifnull 2
            aload 3 /* self */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljdk/dynalink/beans/StaticClass;
            if_acmpeq 3
         2: .line 72
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
         3: .line 74
      StackMap locals:
      StackMap stack:
            aload 3 /* self */
            checkcast jdk.dynalink.beans.StaticClass
            invokevirtual jdk.dynalink.beans.StaticClass.getRepresentedClass:()Ljava/lang/Class;
            astore 4 /* receiverClass */
        start local 4 // java.lang.Class receiverClass
         4: .line 76
            aload 4 /* receiverClass */
            iconst_1
            invokestatic jdk.nashorn.internal.runtime.linker.Bootstrap.checkReflectionAccess:(Ljava/lang/Class;Z)V
         5: .line 77
            aload 1 /* request */
            invokeinterface jdk.dynalink.linker.LinkRequest.getCallSiteDescriptor:()Ljdk/dynalink/CallSiteDescriptor;
            astore 5 /* desc */
        start local 5 // jdk.dynalink.CallSiteDescriptor desc
         6: .line 79
            aload 5 /* desc */
            invokevirtual jdk.dynalink.CallSiteDescriptor.getOperation:()Ljdk/dynalink/Operation;
            invokestatic jdk.dynalink.NamedOperation.getBaseOperation:(Ljdk/dynalink/Operation;)Ljdk/dynalink/Operation;
            getstatic jdk.dynalink.StandardOperation.NEW:Ljdk/dynalink/StandardOperation;
            if_acmpne 19
         7: .line 80
            aload 4 /* receiverClass */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 9
         8: .line 81
            ldc "new.on.nonpublic.javatype"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* receiverClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic jdk.nashorn.internal.runtime.ECMAErrors.typeError:(Ljava/lang/String;[Ljava/lang/String;)Ljdk/nashorn/internal/runtime/ECMAException;
            athrow
         9: .line 85
      StackMap locals: java.lang.Class jdk.dynalink.CallSiteDescriptor
      StackMap stack:
            aload 4 /* receiverClass */
            invokestatic jdk.nashorn.internal.runtime.Context.checkPackageAccess:(Ljava/lang/Class;)V
        10: .line 88
            aload 4 /* receiverClass */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornLinker.isAbstractClass:(Ljava/lang/Class;)Z
            ifeq 18
        11: .line 90
            aload 1 /* request */
            invokeinterface jdk.dynalink.linker.LinkRequest.getArguments:()[Ljava/lang/Object;
            astore 6 /* args */
        start local 6 // java.lang.Object[] args
        12: .line 92
            aload 1 /* request */
            invokeinterface jdk.dynalink.linker.LinkRequest.getCallSiteDescriptor:()Ljdk/dynalink/CallSiteDescriptor;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.getLookupInternal:(Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/invoke/MethodHandles$Lookup;
        13: .line 91
            astore 7 /* lookup */
        start local 7 // java.lang.invoke.MethodHandles$Lookup lookup
        14: .line 94
            aload 6 /* args */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* receiverClass */
            aastore
            aconst_null
            aload 7 /* lookup */
            invokestatic jdk.nashorn.internal.runtime.linker.JavaAdapterFactory.getAdapterClassFor:([Ljava/lang/Class;Ljdk/nashorn/internal/runtime/ScriptObject;Ljava/lang/invoke/MethodHandles$Lookup;)Ljdk/dynalink/beans/StaticClass;
            aastore
        15: .line 95
            aload 1 /* request */
            aload 1 /* request */
            invokeinterface jdk.dynalink.linker.LinkRequest.getCallSiteDescriptor:()Ljdk/dynalink/CallSiteDescriptor;
            aload 6 /* args */
            invokeinterface jdk.dynalink.linker.LinkRequest.replaceArguments:(Ljdk/dynalink/CallSiteDescriptor;[Ljava/lang/Object;)Ljdk/dynalink/linker/LinkRequest;
            astore 8 /* adapterRequest */
        start local 8 // jdk.dynalink.linker.LinkRequest adapterRequest
        16: .line 96
            aload 0 /* this */
            aload 2 /* linkerServices */
            aload 8 /* adapterRequest */
            invokevirtual jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.delegate:(Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            aload 4 /* receiverClass */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.checkNullConstructor:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/Class;)Ljdk/dynalink/linker/GuardedInvocation;
            astore 9 /* gi */
        start local 9 // jdk.dynalink.linker.GuardedInvocation gi
        17: .line 98
            aload 9 /* gi */
            aload 9 /* gi */
            invokevirtual jdk.dynalink.linker.GuardedInvocation.getInvocation:()Ljava/lang/invoke/MethodHandle;
            aload 3 /* self */
            invokestatic jdk.dynalink.linker.support.Guards.getIdentityGuard:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            invokevirtual jdk.dynalink.linker.GuardedInvocation.replaceMethods:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 9 // jdk.dynalink.linker.GuardedInvocation gi
        end local 8 // jdk.dynalink.linker.LinkRequest adapterRequest
        end local 7 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 6 // java.lang.Object[] args
        18: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* linkerServices */
            aload 1 /* request */
            invokevirtual jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.delegate:(Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            aload 4 /* receiverClass */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.checkNullConstructor:(Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/Class;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        19: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* linkerServices */
            aload 1 /* request */
            invokevirtual jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.delegate:(Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 5 // jdk.dynalink.CallSiteDescriptor desc
        end local 4 // java.lang.Class receiverClass
        end local 3 // java.lang.Object self
        end local 2 // jdk.dynalink.linker.LinkerServices linkerServices
        end local 1 // jdk.dynalink.linker.LinkRequest request
        end local 0 // jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Ljdk/nashorn/internal/runtime/linker/NashornStaticClassLinker;
            0   20     1         request  Ljdk/dynalink/linker/LinkRequest;
            0   20     2  linkerServices  Ljdk/dynalink/linker/LinkerServices;
            1   20     3            self  Ljava/lang/Object;
            4   20     4   receiverClass  Ljava/lang/Class<*>;
            6   20     5            desc  Ljdk/dynalink/CallSiteDescriptor;
           12   18     6            args  [Ljava/lang/Object;
           14   18     7          lookup  Ljava/lang/invoke/MethodHandles$Lookup;
           16   18     8  adapterRequest  Ljdk/dynalink/linker/LinkRequest;
           17   18     9              gi  Ljdk/dynalink/linker/GuardedInvocation;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
                Name  Flags
      request         final
      linkerServices  final

  private jdk.dynalink.linker.GuardedInvocation delegate(jdk.dynalink.linker.LinkerServices, jdk.dynalink.linker.LinkRequest);
    descriptor: (Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/linker/LinkRequest;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker this
        start local 1 // jdk.dynalink.linker.LinkerServices linkerServices
        start local 2 // jdk.dynalink.linker.LinkRequest request
         0: .line 111
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker.staticClassLinker:Ljdk/dynalink/linker/GuardingDynamicLinker;
            aload 2 /* request */
            aload 1 /* linkerServices */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornBeansLinker.getGuardedInvocation:(Ljdk/dynalink/linker/GuardingDynamicLinker;Ljdk/dynalink/linker/LinkRequest;Ljdk/dynalink/linker/LinkerServices;)Ljdk/dynalink/linker/GuardedInvocation;
            areturn
        end local 2 // jdk.dynalink.linker.LinkRequest request
        end local 1 // jdk.dynalink.linker.LinkerServices linkerServices
        end local 0 // jdk.nashorn.internal.runtime.linker.NashornStaticClassLinker this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Ljdk/nashorn/internal/runtime/linker/NashornStaticClassLinker;
            0    1     1  linkerServices  Ljdk/dynalink/linker/LinkerServices;
            0    1     2         request  Ljdk/dynalink/linker/LinkRequest;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
                Name  Flags
      linkerServices  final
      request         final

  private static jdk.dynalink.linker.GuardedInvocation checkNullConstructor(jdk.dynalink.linker.GuardedInvocation, java.lang.Class<?>);
    descriptor: (Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/Class;)Ljdk/dynalink/linker/GuardedInvocation;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.dynalink.linker.GuardedInvocation ctorInvocation
        start local 1 // java.lang.Class receiverClass
         0: .line 115
            aload 0 /* ctorInvocation */
            ifnonnull 2
         1: .line 116
            ldc "no.constructor.matches.args"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* receiverClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic jdk.nashorn.internal.runtime.ECMAErrors.typeError:(Ljava/lang/String;[Ljava/lang/String;)Ljdk/nashorn/internal/runtime/ECMAException;
            athrow
         2: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* ctorInvocation */
            areturn
        end local 1 // java.lang.Class receiverClass
        end local 0 // jdk.dynalink.linker.GuardedInvocation ctorInvocation
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0  ctorInvocation  Ljdk/dynalink/linker/GuardedInvocation;
            0    3     1   receiverClass  Ljava/lang/Class<*>;
    Signature: (Ljdk/dynalink/linker/GuardedInvocation;Ljava/lang/Class<*>;)Ljdk/dynalink/linker/GuardedInvocation;
    MethodParameters:
                Name  Flags
      ctorInvocation  final
      receiverClass   final
}
SourceFile: "NashornStaticClassLinker.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles