public final class jdk.nashorn.internal.runtime.linker.NashornGuards
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.linker.NashornGuards
  super_class: java.lang.Object
{
  private static final java.lang.invoke.MethodHandle IS_MAP;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_MAP_SCRIPTOBJECT;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_SCRIPTOBJECT;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_NOT_JSOBJECT;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle SAME_OBJECT;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean CCE_ONLY;
    descriptor: Z
    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 48
            ldc "isMap"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljdk/nashorn/internal/runtime/ScriptObject;
            aastore
            dup
            iconst_1
            ldc Ljdk/nashorn/internal/runtime/PropertyMap;
            aastore
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_MAP:Ljava/lang/invoke/MethodHandle;
         1: .line 49
            ldc "isMap"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            ldc Ljdk/nashorn/internal/runtime/PropertyMap;
            aastore
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_MAP_SCRIPTOBJECT:Ljava/lang/invoke/MethodHandle;
         2: .line 50
            ldc "isScriptObject"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_SCRIPTOBJECT:Ljava/lang/invoke/MethodHandle;
         3: .line 51
            ldc "isNotJSObject"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_NOT_JSOBJECT:Ljava/lang/invoke/MethodHandle;
         4: .line 52
            ldc "sameObject"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/ref/WeakReference;
            aastore
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.findOwnMH:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.nashorn.internal.runtime.linker.NashornGuards.SAME_OBJECT:Ljava/lang/invoke/MethodHandle;
         5: .line 56
            ldc "nashorn.cce"
            invokestatic jdk.nashorn.internal.runtime.options.Options.getBooleanProperty:(Ljava/lang/String;)Z
            putstatic jdk.nashorn.internal.runtime.linker.NashornGuards.CCE_ONLY:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.linker.NashornGuards this
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            return
        end local 0 // jdk.nashorn.internal.runtime.linker.NashornGuards this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/nashorn/internal/runtime/linker/NashornGuards;

  public static boolean explicitInstanceOfCheck(jdk.dynalink.CallSiteDescriptor, jdk.dynalink.linker.LinkRequest);
    descriptor: (Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkRequest;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.dynalink.CallSiteDescriptor desc
        start local 1 // jdk.dynalink.linker.LinkRequest request
         0: .line 76
            getstatic jdk.nashorn.internal.runtime.linker.NashornGuards.CCE_ONLY:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // jdk.dynalink.linker.LinkRequest request
        end local 0 // jdk.dynalink.CallSiteDescriptor desc
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     desc  Ljdk/dynalink/CallSiteDescriptor;
            0    3     1  request  Ljdk/dynalink/linker/LinkRequest;
    MethodParameters:
         Name  Flags
      desc     final
      request  final

  public static java.lang.invoke.MethodHandle getScriptObjectGuard();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 84
            getstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_SCRIPTOBJECT:Ljava/lang/invoke/MethodHandle;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.invoke.MethodHandle getNotJSObjectGuard();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 92
            getstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_NOT_JSOBJECT:Ljava/lang/invoke/MethodHandle;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.invoke.MethodHandle getScriptObjectGuard(boolean);
    descriptor: (Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // boolean explicitInstanceOfCheck
         0: .line 101
            iload 0 /* explicitInstanceOfCheck */
            ifeq 1
            getstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_SCRIPTOBJECT:Ljava/lang/invoke/MethodHandle;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         2: areturn
        end local 0 // boolean explicitInstanceOfCheck
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    3     0  explicitInstanceOfCheck  Z
    MethodParameters:
                         Name  Flags
      explicitInstanceOfCheck  final

  public static java.lang.invoke.MethodHandle getMapGuard(jdk.nashorn.internal.runtime.PropertyMap, boolean);
    descriptor: (Ljdk/nashorn/internal/runtime/PropertyMap;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.PropertyMap map
        start local 1 // boolean explicitInstanceOfCheck
         0: .line 114
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            iload 1 /* explicitInstanceOfCheck */
            ifeq 1
            getstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_MAP_SCRIPTOBJECT:Ljava/lang/invoke/MethodHandle;
            goto 2
      StackMap locals:
      StackMap stack: jdk.nashorn.internal.lookup.MethodHandleFunctionality
         1: getstatic jdk.nashorn.internal.runtime.linker.NashornGuards.IS_MAP:Ljava/lang/invoke/MethodHandle;
      StackMap locals: jdk.nashorn.internal.runtime.PropertyMap int
      StackMap stack: jdk.nashorn.internal.lookup.MethodHandleFunctionality java.lang.invoke.MethodHandle
         2: iconst_1
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* map */
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // boolean explicitInstanceOfCheck
        end local 0 // jdk.nashorn.internal.runtime.PropertyMap map
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    3     0                      map  Ljdk/nashorn/internal/runtime/PropertyMap;
            0    3     1  explicitInstanceOfCheck  Z
    MethodParameters:
                         Name  Flags
      map                      final
      explicitInstanceOfCheck  final

  static boolean needsGuard(jdk.nashorn.internal.runtime.Property, jdk.dynalink.CallSiteDescriptor);
    descriptor: (Ljdk/nashorn/internal/runtime/Property;Ljdk/dynalink/CallSiteDescriptor;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Property property
        start local 1 // jdk.dynalink.CallSiteDescriptor desc
         0: .line 124
            aload 0 /* property */
            ifnull 4
            aload 0 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.isConfigurable:()Z
            ifne 4
         1: .line 125
            aload 0 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.isBound:()Z
            ifne 4
            aload 0 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.hasDualFields:()Z
            ifne 4
         2: .line 126
            aload 1 /* desc */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isFastScope:(Ljdk/dynalink/CallSiteDescriptor;)Z
            ifeq 4
            aload 0 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.canChangeType:()Z
            ifne 4
         3: .line 124
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // jdk.dynalink.CallSiteDescriptor desc
        end local 0 // jdk.nashorn.internal.runtime.Property property
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  property  Ljdk/nashorn/internal/runtime/Property;
            0    5     1      desc  Ljdk/dynalink/CallSiteDescriptor;
    MethodParameters:
          Name  Flags
      property  final
      desc      final

  public static java.lang.invoke.MethodHandle getGuard(jdk.nashorn.internal.runtime.ScriptObject, jdk.nashorn.internal.runtime.Property, jdk.dynalink.CallSiteDescriptor, boolean);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/runtime/Property;Ljdk/dynalink/CallSiteDescriptor;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // jdk.nashorn.internal.runtime.ScriptObject sobj
        start local 1 // jdk.nashorn.internal.runtime.Property property
        start local 2 // jdk.dynalink.CallSiteDescriptor desc
        start local 3 // boolean explicitInstanceOfCheck
         0: .line 140
            aload 1 /* property */
            aload 2 /* desc */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.needsGuard:(Ljdk/nashorn/internal/runtime/Property;Ljdk/dynalink/CallSiteDescriptor;)Z
            ifne 2
         1: .line 141
            aconst_null
            areturn
         2: .line 143
      StackMap locals:
      StackMap stack:
            aload 2 /* desc */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.isScope:(Ljdk/dynalink/CallSiteDescriptor;)Z
            ifeq 7
            aload 0 /* sobj */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.isScope:()Z
            ifeq 7
         3: .line 144
            aload 1 /* property */
            ifnull 5
            aload 1 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.isBound:()Z
            ifeq 5
            aload 1 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.canChangeType:()Z
            ifne 5
         4: .line 146
            aload 0 /* sobj */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.getIdentityGuard:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/invoke/MethodHandle;
            areturn
         5: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* sobj */
            instanceof jdk.nashorn.internal.objects.Global
            ifne 7
            aload 1 /* property */
            ifnull 6
            aload 1 /* property */
            invokevirtual jdk.nashorn.internal.runtime.Property.isConfigurable:()Z
            ifeq 7
         6: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* sobj */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.getIdentityGuard:(Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/invoke/MethodHandle;
            aload 0 /* sobj */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            iload 3 /* explicitInstanceOfCheck */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.getMapGuard:(Ljdk/nashorn/internal/runtime/PropertyMap;Z)Ljava/lang/invoke/MethodHandle;
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.combineGuards:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
         7: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* sobj */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            iload 3 /* explicitInstanceOfCheck */
            invokestatic jdk.nashorn.internal.runtime.linker.NashornGuards.getMapGuard:(Ljdk/nashorn/internal/runtime/PropertyMap;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // boolean explicitInstanceOfCheck
        end local 2 // jdk.dynalink.CallSiteDescriptor desc
        end local 1 // jdk.nashorn.internal.runtime.Property property
        end local 0 // jdk.nashorn.internal.runtime.ScriptObject sobj
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                     sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
            0    8     1                 property  Ljdk/nashorn/internal/runtime/Property;
            0    8     2                     desc  Ljdk/dynalink/CallSiteDescriptor;
            0    8     3  explicitInstanceOfCheck  Z
    MethodParameters:
                         Name  Flags
      sobj                     final
      property                 final
      desc                     final
      explicitInstanceOfCheck  final

  public static java.lang.invoke.MethodHandle getIdentityGuard(jdk.nashorn.internal.runtime.ScriptObject);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.ScriptObject sobj
         0: .line 164
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic jdk.nashorn.internal.runtime.linker.NashornGuards.SAME_OBJECT:Ljava/lang/invoke/MethodHandle;
            iconst_1
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new java.lang.ref.WeakReference
            dup
            aload 0 /* sobj */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.ScriptObject sobj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  sobj  Ljdk/nashorn/internal/runtime/ScriptObject;
    MethodParameters:
      Name  Flags
      sobj  final

  public static java.lang.invoke.MethodHandle getStringGuard();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 173
            getstatic jdk.nashorn.internal.runtime.JSType.IS_STRING:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
            invokevirtual jdk.nashorn.internal.codegen.CompilerConstants$Call.methodHandle:()Ljava/lang/invoke/MethodHandle;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.invoke.MethodHandle getNumberGuard();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 182
            getstatic jdk.nashorn.internal.runtime.JSType.IS_NUMBER:Ljdk/nashorn/internal/codegen/CompilerConstants$Call;
            invokevirtual jdk.nashorn.internal.codegen.CompilerConstants$Call.methodHandle:()Ljava/lang/invoke/MethodHandle;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.invoke.MethodHandle combineGuards(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandle guard1
        start local 1 // java.lang.invoke.MethodHandle guard2
         0: .line 193
            aload 0 /* guard1 */
            ifnonnull 2
         1: .line 194
            aload 1 /* guard2 */
            areturn
         2: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* guard2 */
            ifnonnull 4
         3: .line 196
            aload 0 /* guard1 */
            areturn
         4: .line 198
      StackMap locals:
      StackMap stack:
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 0 /* guard1 */
            aload 1 /* guard2 */
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.constant:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodHandle guard2
        end local 0 // java.lang.invoke.MethodHandle guard1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  guard1  Ljava/lang/invoke/MethodHandle;
            0    5     1  guard2  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
        Name  Flags
      guard1  final
      guard2  final

  private static boolean isScriptObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object self
         0: .line 204
            aload 0 /* self */
            instanceof jdk.nashorn.internal.runtime.ScriptObject
            ireturn
        end local 0 // java.lang.Object self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  self  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      self  final

  private static boolean isScriptObject(java.lang.Class<? extends jdk.nashorn.internal.runtime.ScriptObject>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class clazz
        start local 1 // java.lang.Object self
         0: .line 209
            aload 0 /* clazz */
            aload 1 /* self */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object self
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<+Ljdk/nashorn/internal/runtime/ScriptObject;>;
            0    1     1   self  Ljava/lang/Object;
    Signature: (Ljava/lang/Class<+Ljdk/nashorn/internal/runtime/ScriptObject;>;Ljava/lang/Object;)Z
    MethodParameters:
       Name  Flags
      clazz  final
      self   final

  private static boolean isMap(jdk.nashorn.internal.runtime.ScriptObject, jdk.nashorn.internal.runtime.PropertyMap);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptObject;Ljdk/nashorn/internal/runtime/PropertyMap;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.ScriptObject self
        start local 1 // jdk.nashorn.internal.runtime.PropertyMap map
         0: .line 214
            aload 0 /* self */
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            aload 1 /* map */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // jdk.nashorn.internal.runtime.PropertyMap map
        end local 0 // jdk.nashorn.internal.runtime.ScriptObject self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  self  Ljdk/nashorn/internal/runtime/ScriptObject;
            0    2     1   map  Ljdk/nashorn/internal/runtime/PropertyMap;
    MethodParameters:
      Name  Flags
      self  final
      map   final

  private static boolean isNotJSObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object self
         0: .line 219
            aload 0 /* self */
            instanceof jdk.nashorn.api.scripting.JSObject
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Object self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  self  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      self  final

  private static boolean isMap(java.lang.Object, jdk.nashorn.internal.runtime.PropertyMap);
    descriptor: (Ljava/lang/Object;Ljdk/nashorn/internal/runtime/PropertyMap;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object self
        start local 1 // jdk.nashorn.internal.runtime.PropertyMap map
         0: .line 224
            aload 0 /* self */
            instanceof jdk.nashorn.internal.runtime.ScriptObject
            ifeq 1
            aload 0 /* self */
            checkcast jdk.nashorn.internal.runtime.ScriptObject
            invokevirtual jdk.nashorn.internal.runtime.ScriptObject.getMap:()Ljdk/nashorn/internal/runtime/PropertyMap;
            aload 1 /* map */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // jdk.nashorn.internal.runtime.PropertyMap map
        end local 0 // java.lang.Object self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  self  Ljava/lang/Object;
            0    2     1   map  Ljdk/nashorn/internal/runtime/PropertyMap;
    MethodParameters:
      Name  Flags
      self  final
      map   final

  private static boolean sameObject(, java.lang.ref.WeakReference<jdk.nashorn.internal.runtime.ScriptObject>);
    descriptor: (Ljava/lang/Object;Ljava/lang/ref/WeakReference;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object self
        start local 1 // java.lang.ref.WeakReference ref
         0: .line 230
            aload 0 /* self */
            aload 1 /* ref */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.ref.WeakReference ref
        end local 0 // java.lang.Object self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  self  Ljava/lang/Object;
            0    2     1   ref  Ljava/lang/ref/WeakReference<Ljdk/nashorn/internal/runtime/ScriptObject;>;
    Signature: (Ljava/lang/Object;Ljava/lang/ref/WeakReference<Ljdk/nashorn/internal/runtime/ScriptObject;>;)Z
    MethodParameters:
      Name  Flags
      self  final
      ref   final

  private static boolean isScriptFunction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object self
         0: .line 235
            aload 0 /* self */
            instanceof jdk.nashorn.internal.runtime.ScriptFunction
            ireturn
        end local 0 // java.lang.Object self
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  self  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      self  final

  private static java.lang.invoke.MethodHandle findOwnMH(java.lang.String, java.lang.Class<?>, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class rtype
        start local 2 // java.lang.Class[] types
         0: .line 239
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc Ljdk/nashorn/internal/runtime/linker/NashornGuards;
            aload 0 /* name */
            getstatic jdk.nashorn.internal.lookup.Lookup.MH:Ljdk/nashorn/internal/lookup/MethodHandleFunctionality;
            aload 1 /* rtype */
            aload 2 /* types */
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.type:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokeinterface jdk.nashorn.internal.lookup.MethodHandleFunctionality.findStatic:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.Class[] types
        end local 1 // java.lang.Class rtype
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   name  Ljava/lang/String;
            0    1     1  rtype  Ljava/lang/Class<*>;
            0    1     2  types  [Ljava/lang/Class;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;[Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      name   final
      rtype  final
      types  final
}
SourceFile: "NashornGuards.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Call = jdk.nashorn.internal.codegen.CompilerConstants$Call of jdk.nashorn.internal.codegen.CompilerConstants