public abstract class com.oracle.truffle.js.nodes.access.IsJSObjectNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.nodes.access.IsJSObjectNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
  protected static final int MAX_CLASS_COUNT;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final boolean includeNullUndefined;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.IsJSObjectNode this
        start local 1 // boolean includeNullUndefined
         0: .line 61
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
         1: .line 62
            aload 0 /* this */
            iload 1 /* includeNullUndefined */
            putfield com.oracle.truffle.js.nodes.access.IsJSObjectNode.includeNullUndefined:Z
         2: .line 63
            return
        end local 1 // boolean includeNullUndefined
        end local 0 // com.oracle.truffle.js.nodes.access.IsJSObjectNode this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0                  this  Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
            0    3     1  includeNullUndefined  Z
    MethodParameters:
                      Name  Flags
      includeNullUndefined  

  public abstract boolean executeBoolean(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      obj   

  protected static boolean isObjectCached(, java.lang.Class<?>, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Z)Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // java.lang.Object object
        start local 1 // java.lang.Class cachedClass
        start local 2 // boolean cachedResult
         0: .line 72
            iload 2 /* cachedResult */
            ireturn
        end local 2 // boolean cachedResult
        end local 1 // java.lang.Class cachedClass
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0        object  Ljava/lang/Object;
            0    1     1   cachedClass  Ljava/lang/Class<*>;
            0    1     2  cachedResult  Z
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Z)Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"cachedClass != null", "cachedClass.isInstance(object)"}, limit = "MAX_CLASS_COUNT")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached(value = "getClassIfJSDynamicObject(object)")
      2:
        com.oracle.truffle.api.dsl.Cached(value = "guardIsJSObject(object)")
    MethodParameters:
              Name  Flags
      object        
      cachedClass   
      cachedResult  

  protected boolean isObject(java.lang.Object, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/ConditionProfile;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.access.IsJSObjectNode this
        start local 1 // java.lang.Object object
        start local 2 // com.oracle.truffle.api.profiles.ConditionProfile resultProfile
         0: .line 78
            aload 2 /* resultProfile */
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.js.nodes.access.IsJSObjectNode.guardIsJSObject:(Ljava/lang/Object;)Z
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ireturn
        end local 2 // com.oracle.truffle.api.profiles.ConditionProfile resultProfile
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.truffle.js.nodes.access.IsJSObjectNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
            0    1     1         object  Ljava/lang/Object;
            0    1     2  resultProfile  Lcom/oracle/truffle/api/profiles/ConditionProfile;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(replaces = {"isObjectCached"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
        com.oracle.truffle.api.dsl.Cached(value = "createBinaryProfile()")
    MethodParameters:
               Name  Flags
      object         
      resultProfile  

  public static com.oracle.truffle.js.nodes.access.IsJSObjectNode create();
    descriptor: ()Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 82
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tIsJSObjectNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.js.nodes.access.IsJSObjectNode createIncludeNullUndefined();
    descriptor: ()Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 86
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tIsJSObjectNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected boolean guardIsJSObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.access.IsJSObjectNode this
        start local 1 // java.lang.Object obj
         0: .line 91
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.access.IsJSObjectNode.includeNullUndefined:Z
            ifeq 2
         1: .line 92
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ireturn
         2: .line 94
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.nodes.JSGuards.isJSObject:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.nodes.access.IsJSObjectNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
            0    3     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "IsJSObjectNode.java"
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.ImportStatic(value = {Lcom/oracle/truffle/js/runtime/objects/JSObject;})