public abstract class com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode 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.binary.InstanceofNode$OrdinaryHasInstanceNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
  protected final com.oracle.truffle.js.runtime.JSContext context;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private boolean lessThan4;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private com.oracle.truffle.js.nodes.access.PropertyGetNode getPrototypeNode;
    descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.binary.InstanceofNode$IsBoundFunctionCacheNode boundFuncCacheNode;
    descriptor: Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$IsBoundFunctionCacheNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 205
            ldc Lcom/oracle/truffle/js/nodes/binary/InstanceofNode;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  protected void <init>(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 214
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
         1: .line 208
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.lessThan4:Z
         2: .line 215
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
         3: .line 216
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.oracle.truffle.js.nodes.binary.InstanceofNode$IsBoundFunctionCacheNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$IsBoundFunctionCacheNode;
            putfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.boundFuncCacheNode:Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$IsBoundFunctionCacheNode;
         4: .line 217
            return
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    5     1  context  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
         Name  Flags
      context  

  public static com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode create(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 220
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tOrdinaryHasInstanceNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
         Name  Flags
      context  

  private com.oracle.truffle.api.object.DynamicObject getConstructorPrototype(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/profiles/BranchProfile;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject rhs
        start local 2 // com.oracle.truffle.api.profiles.BranchProfile invalidPrototypeBranch
         0: .line 224
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.getPrototypeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            ifnonnull 3
         1: .line 225
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 226
            aload 0 /* this */
            aload 0 /* this */
            ldc "prototype"
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.create:(Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            invokevirtual com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.js.nodes.access.PropertyGetNode
            putfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.getPrototypeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
         3: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.getPrototypeNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
            aload 1 /* rhs */
            invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* proto */
        start local 3 // java.lang.Object proto
         4: .line 229
            aload 3 /* proto */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isObject:(Ljava/lang/Object;)Z
            ifne 7
         5: .line 230
            aload 2 /* invalidPrototypeBranch */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         6: .line 231
            aload 0 /* this */
            aload 1 /* rhs */
            aload 3 /* proto */
            invokevirtual com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.createTypeErrorInvalidPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         7: .line 233
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* proto */
            checkcast com.oracle.truffle.api.object.DynamicObject
            areturn
        end local 3 // java.lang.Object proto
        end local 2 // com.oracle.truffle.api.profiles.BranchProfile invalidPrototypeBranch
        end local 1 // com.oracle.truffle.api.object.DynamicObject rhs
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0                    this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    8     1                     rhs  Lcom/oracle/truffle/api/object/DynamicObject;
            0    8     2  invalidPrototypeBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            4    8     3                   proto  Ljava/lang/Object;
    MethodParameters:
                        Name  Flags
      rhs                     
      invalidPrototypeBranch  

  protected boolean doNotCallable(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object check
         0: .line 239
            iconst_0
            ireturn
        end local 2 // java.lang.Object check
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    1     1    obj  Ljava/lang/Object;
            0    1     2  check  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"!isCallable(check)"})
    MethodParameters:
       Name  Flags
      obj    
      check  

  protected boolean doIsBound(java.lang.Object, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.nodes.binary.InstanceofNode);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/binary/InstanceofNode;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // java.lang.Object obj
        start local 2 // com.oracle.truffle.api.object.DynamicObject check
        start local 3 // com.oracle.truffle.js.nodes.binary.InstanceofNode instanceofNode
         0: .line 245
            aload 2 /* check */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getBoundTargetFunction:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* boundTargetFunction */
        start local 4 // com.oracle.truffle.api.object.DynamicObject boundTargetFunction
         1: .line 246
            aload 3 /* instanceofNode */
            aload 1 /* obj */
            aload 4 /* boundTargetFunction */
            invokevirtual com.oracle.truffle.js.nodes.binary.InstanceofNode.executeBoolean:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 4 // com.oracle.truffle.api.object.DynamicObject boundTargetFunction
        end local 3 // com.oracle.truffle.js.nodes.binary.InstanceofNode instanceofNode
        end local 2 // com.oracle.truffle.api.object.DynamicObject check
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    2     1                  obj  Ljava/lang/Object;
            0    2     2                check  Lcom/oracle/truffle/api/object/DynamicObject;
            0    2     3       instanceofNode  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode;
            1    2     4  boundTargetFunction  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isJSFunction(check)", "isBoundFunction(check)"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached(value = "create(context)")
    MethodParameters:
                Name  Flags
      obj             
      check           
      instanceofNode  

  protected boolean doNotAnObject(java.lang.Object, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // java.lang.Object left
        start local 2 // com.oracle.truffle.api.object.DynamicObject right
         0: .line 251
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject right
        end local 1 // java.lang.Object left
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    1     1   left  Ljava/lang/Object;
            0    1     2  right  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"!isJSObject(left)", "isJSFunction(right)", "!isBoundFunction(right)"})
    MethodParameters:
       Name  Flags
      left   
      right  

  protected boolean doNotAnObjectProxy(java.lang.Object, com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // java.lang.Object left
        start local 2 // com.oracle.truffle.api.object.DynamicObject right
         0: .line 256
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.object.DynamicObject right
        end local 1 // java.lang.Object left
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    1     1   left  Ljava/lang/Object;
            0    1     2  right  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"!isJSObject(left)", "isJSProxy(right)", "isCallableProxy(right)"})
    MethodParameters:
       Name  Flags
      left   
      right  

  protected boolean doJSObject(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.nodes.access.IsJSObjectNode, com.oracle.truffle.js.nodes.access.GetPrototypeNode, com.oracle.truffle.js.nodes.access.GetPrototypeNode, com.oracle.truffle.js.nodes.access.GetPrototypeNode, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=15, args_size=13
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject left
        start local 2 // com.oracle.truffle.api.object.DynamicObject right
        start local 3 // com.oracle.truffle.js.nodes.access.IsJSObjectNode isObjectNode
        start local 4 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype1Node
        start local 5 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype2Node
        start local 6 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype3Node
        start local 7 // com.oracle.truffle.api.profiles.BranchProfile firstTrue
        start local 8 // com.oracle.truffle.api.profiles.BranchProfile firstFalse
        start local 9 // com.oracle.truffle.api.profiles.BranchProfile need2Hops
        start local 10 // com.oracle.truffle.api.profiles.BranchProfile need3Hops
        start local 11 // com.oracle.truffle.api.profiles.BranchProfile errorBranch
        start local 12 // com.oracle.truffle.api.profiles.BranchProfile invalidPrototypeBranch
         0: .line 271
            aload 0 /* this */
            aload 2 /* right */
            aload 12 /* invalidPrototypeBranch */
            invokevirtual com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.getConstructorPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/profiles/BranchProfile;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 13 /* ctorPrototype */
        start local 13 // com.oracle.truffle.api.object.DynamicObject ctorPrototype
         1: .line 272
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.lessThan4:Z
            ifeq 21
         2: .line 273
            aload 4 /* getPrototype1Node */
            aload 1 /* left */
            invokevirtual com.oracle.truffle.js.nodes.access.GetPrototypeNode.executeJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 14 /* proto */
        start local 14 // com.oracle.truffle.api.object.DynamicObject proto
         3: .line 274
            aload 14 /* proto */
            aload 13 /* ctorPrototype */
            if_acmpne 6
         4: .line 275
            aload 7 /* firstTrue */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         5: .line 276
            iconst_1
            ireturn
         6: .line 277
      StackMap locals: com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.DynamicObject
      StackMap stack:
            aload 14 /* proto */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 9
         7: .line 278
            aload 8 /* firstFalse */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         8: .line 279
            iconst_0
            ireturn
         9: .line 281
      StackMap locals:
      StackMap stack:
            aload 9 /* need2Hops */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
        10: .line 282
            aload 5 /* getPrototype2Node */
            aload 14 /* proto */
            invokevirtual com.oracle.truffle.js.nodes.access.GetPrototypeNode.executeJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 14 /* proto */
        11: .line 283
            aload 14 /* proto */
            aload 13 /* ctorPrototype */
            if_acmpne 13
        12: .line 284
            iconst_1
            ireturn
        13: .line 285
      StackMap locals:
      StackMap stack:
            aload 14 /* proto */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 15
        14: .line 286
            iconst_0
            ireturn
        15: .line 288
      StackMap locals:
      StackMap stack:
            aload 10 /* need3Hops */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
        16: .line 289
            aload 6 /* getPrototype3Node */
            aload 14 /* proto */
            invokevirtual com.oracle.truffle.js.nodes.access.GetPrototypeNode.executeJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 14 /* proto */
        17: .line 290
            aload 14 /* proto */
            aload 13 /* ctorPrototype */
            if_acmpne 19
        18: .line 291
            iconst_1
            ireturn
        19: .line 293
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        20: .line 294
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.lessThan4:Z
        end local 14 // com.oracle.truffle.api.object.DynamicObject proto
        21: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* left */
            aload 13 /* ctorPrototype */
            aload 6 /* getPrototype3Node */
            aload 11 /* errorBranch */
            invokevirtual com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.doJSObject4:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Z
            ireturn
        end local 13 // com.oracle.truffle.api.object.DynamicObject ctorPrototype
        end local 12 // com.oracle.truffle.api.profiles.BranchProfile invalidPrototypeBranch
        end local 11 // com.oracle.truffle.api.profiles.BranchProfile errorBranch
        end local 10 // com.oracle.truffle.api.profiles.BranchProfile need3Hops
        end local 9 // com.oracle.truffle.api.profiles.BranchProfile need2Hops
        end local 8 // com.oracle.truffle.api.profiles.BranchProfile firstFalse
        end local 7 // com.oracle.truffle.api.profiles.BranchProfile firstTrue
        end local 6 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype3Node
        end local 5 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype2Node
        end local 4 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype1Node
        end local 3 // com.oracle.truffle.js.nodes.access.IsJSObjectNode isObjectNode
        end local 2 // com.oracle.truffle.api.object.DynamicObject right
        end local 1 // com.oracle.truffle.api.object.DynamicObject left
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   22     0                    this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0   22     1                    left  Lcom/oracle/truffle/api/object/DynamicObject;
            0   22     2                   right  Lcom/oracle/truffle/api/object/DynamicObject;
            0   22     3            isObjectNode  Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
            0   22     4       getPrototype1Node  Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
            0   22     5       getPrototype2Node  Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
            0   22     6       getPrototype3Node  Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
            0   22     7               firstTrue  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0   22     8              firstFalse  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0   22     9               need2Hops  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0   22    10               need3Hops  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0   22    11             errorBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0   22    12  invalidPrototypeBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            1   22    13           ctorPrototype  Lcom/oracle/truffle/api/object/DynamicObject;
            3   21    14                   proto  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isObjectNode.executeBoolean(left)", "isJSFunction(right)", "!isBoundFunction(right)"}, limit = "1")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isObjectNode")
      3:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getPrototype1Node")
      4:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getPrototype2Node")
      5:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getPrototype3Node")
      6:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "firstTrue")
      7:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "firstFalse")
      8:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "need2Hops")
      9:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "need3Hops")
      10:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "errorBranch")
      11:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "invalidPrototypeBranch")
    MethodParameters:
                        Name  Flags
      left                    
      right                   
      isObjectNode            
      getPrototype1Node       
      getPrototype2Node       
      getPrototype3Node       
      firstTrue               
      firstFalse              
      need2Hops               
      need3Hops               
      errorBranch             
      invalidPrototypeBranch  

  protected boolean doJSObjectProxy(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.nodes.access.IsJSObjectNode, com.oracle.truffle.js.nodes.access.GetPrototypeNode, com.oracle.truffle.js.nodes.access.GetPrototypeNode, com.oracle.truffle.js.nodes.access.GetPrototypeNode, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=13, locals=13, args_size=13
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject left
        start local 2 // com.oracle.truffle.api.object.DynamicObject right
        start local 3 // com.oracle.truffle.js.nodes.access.IsJSObjectNode isObjectNode
        start local 4 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype1Node
        start local 5 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype2Node
        start local 6 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype3Node
        start local 7 // com.oracle.truffle.api.profiles.BranchProfile firstTrue
        start local 8 // com.oracle.truffle.api.profiles.BranchProfile firstFalse
        start local 9 // com.oracle.truffle.api.profiles.BranchProfile need2Hops
        start local 10 // com.oracle.truffle.api.profiles.BranchProfile need3Hops
        start local 11 // com.oracle.truffle.api.profiles.BranchProfile errorBranch
        start local 12 // com.oracle.truffle.api.profiles.BranchProfile invalidPrototypeBranch
         0: .line 311
            aload 0 /* this */
            aload 1 /* left */
            aload 2 /* right */
            aload 3 /* isObjectNode */
            aload 4 /* getPrototype1Node */
            aload 5 /* getPrototype2Node */
            aload 6 /* getPrototype3Node */
            aload 7 /* firstTrue */
            aload 8 /* firstFalse */
            aload 9 /* need2Hops */
            aload 10 /* need3Hops */
            aload 11 /* errorBranch */
            aload 12 /* invalidPrototypeBranch */
            invokevirtual com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.doJSObject:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;)Z
            ireturn
        end local 12 // com.oracle.truffle.api.profiles.BranchProfile invalidPrototypeBranch
        end local 11 // com.oracle.truffle.api.profiles.BranchProfile errorBranch
        end local 10 // com.oracle.truffle.api.profiles.BranchProfile need3Hops
        end local 9 // com.oracle.truffle.api.profiles.BranchProfile need2Hops
        end local 8 // com.oracle.truffle.api.profiles.BranchProfile firstFalse
        end local 7 // com.oracle.truffle.api.profiles.BranchProfile firstTrue
        end local 6 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype3Node
        end local 5 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype2Node
        end local 4 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getPrototype1Node
        end local 3 // com.oracle.truffle.js.nodes.access.IsJSObjectNode isObjectNode
        end local 2 // com.oracle.truffle.api.object.DynamicObject right
        end local 1 // com.oracle.truffle.api.object.DynamicObject left
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    1     0                    this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    1     1                    left  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2                   right  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     3            isObjectNode  Lcom/oracle/truffle/js/nodes/access/IsJSObjectNode;
            0    1     4       getPrototype1Node  Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
            0    1     5       getPrototype2Node  Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
            0    1     6       getPrototype3Node  Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
            0    1     7               firstTrue  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0    1     8              firstFalse  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0    1     9               need2Hops  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0    1    10               need3Hops  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0    1    11             errorBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            0    1    12  invalidPrototypeBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isObjectNode.executeBoolean(left)", "isJSProxy(right)", "isCallableProxy(right)"}, limit = "1")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isObjectNode")
      3:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getPrototype1Node")
      4:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getPrototype2Node")
      5:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "getPrototype3Node")
      6:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "firstTrue")
      7:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "firstFalse")
      8:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "need2Hops")
      9:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "need3Hops")
      10:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "errorBranch")
      11:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "invalidPrototypeBranch")
    MethodParameters:
                        Name  Flags
      left                    
      right                   
      isObjectNode            
      getPrototype1Node       
      getPrototype2Node       
      getPrototype3Node       
      firstTrue               
      firstFalse              
      need2Hops               
      need3Hops               
      errorBranch             
      invalidPrototypeBranch  

  private boolean doJSObject4(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.nodes.access.GetPrototypeNode, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=5
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
        start local 2 // com.oracle.truffle.api.object.DynamicObject check
        start local 3 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getLoopedPrototypeNode
        start local 4 // com.oracle.truffle.api.profiles.BranchProfile errorBranch
         0: .line 315
            aload 1 /* obj */
            astore 5 /* proto */
        start local 5 // com.oracle.truffle.api.object.DynamicObject proto
         1: .line 316
            iconst_0
            istore 6 /* counter */
        start local 6 // int counter
         2: .line 317
            goto 9
         3: .line 318
      StackMap locals: com.oracle.truffle.api.object.DynamicObject int
      StackMap stack:
            iinc 6 /* counter */ 1
         4: .line 319
            iload 6 /* counter */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getMaxPrototypeChainLength:()I
            if_icmple 7
         5: .line 320
            aload 4 /* errorBranch */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
         6: .line 321
            ldc "prototype chain length exceeded"
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         7: .line 323
      StackMap locals:
      StackMap stack:
            aload 5 /* proto */
            aload 2 /* check */
            if_acmpne 9
         8: .line 324
            iconst_1
            ireturn
         9: .line 317
      StackMap locals:
      StackMap stack:
            aload 3 /* getLoopedPrototypeNode */
            aload 5 /* proto */
            invokevirtual com.oracle.truffle.js.nodes.access.GetPrototypeNode.executeJSObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
            dup
            astore 5 /* proto */
            getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpne 3
        10: .line 327
            iconst_0
            ireturn
        end local 6 // int counter
        end local 5 // com.oracle.truffle.api.object.DynamicObject proto
        end local 4 // com.oracle.truffle.api.profiles.BranchProfile errorBranch
        end local 3 // com.oracle.truffle.js.nodes.access.GetPrototypeNode getLoopedPrototypeNode
        end local 2 // com.oracle.truffle.api.object.DynamicObject check
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   11     0                    this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0   11     1                     obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0   11     2                   check  Lcom/oracle/truffle/api/object/DynamicObject;
            0   11     3  getLoopedPrototypeNode  Lcom/oracle/truffle/js/nodes/access/GetPrototypeNode;
            0   11     4             errorBranch  Lcom/oracle/truffle/api/profiles/BranchProfile;
            1   11     5                   proto  Lcom/oracle/truffle/api/object/DynamicObject;
            2   11     6                 counter  I
    MethodParameters:
                        Name  Flags
      obj                     
      check                   
      getLoopedPrototypeNode  
      errorBranch             

  protected boolean isBoundFunction(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject func
         0: .line 331
            getstatic com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.$assertionsDisabled:Z
            ifne 1
            aload 1 /* func */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.isJSFunction:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode.boundFuncCacheNode:Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$IsBoundFunctionCacheNode;
            aload 1 /* func */
            invokevirtual com.oracle.truffle.js.nodes.binary.InstanceofNode$IsBoundFunctionCacheNode.executeBoolean:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
            ireturn
        end local 1 // com.oracle.truffle.api.object.DynamicObject func
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    2     1  func  Lcom/oracle/truffle/api/object/DynamicObject;
    MethodParameters:
      Name  Flags
      func  

  private com.oracle.truffle.js.runtime.JSException createTypeErrorInvalidPrototype(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/JSException;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject obj
        start local 2 // java.lang.Object proto
         0: .line 337
            new java.lang.StringBuilder
            dup
            ldc "\"prototype\" of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* obj */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.safeToString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is not an Object, it is "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* proto */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.safeToString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* this */
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeError:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/js/runtime/JSException;
            areturn
        end local 2 // java.lang.Object proto
        end local 1 // com.oracle.truffle.api.object.DynamicObject obj
        end local 0 // com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/binary/InstanceofNode$OrdinaryHasInstanceNode;
            0    1     1    obj  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2  proto  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      obj    
      proto  
}
SourceFile: "InstanceofNode.java"
NestHost: com.oracle.truffle.js.nodes.binary.InstanceofNode
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract Shared = com.oracle.truffle.api.dsl.Cached$Shared of com.oracle.truffle.api.dsl.Cached
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  public abstract IsBoundFunctionCacheNode = com.oracle.truffle.js.nodes.binary.InstanceofNode$IsBoundFunctionCacheNode of com.oracle.truffle.js.nodes.binary.InstanceofNode
  public abstract OrdinaryHasInstanceNode = com.oracle.truffle.js.nodes.binary.InstanceofNode$OrdinaryHasInstanceNode of com.oracle.truffle.js.nodes.binary.InstanceofNode