public abstract class com.oracle.graal.python.nodes.call.InvokeNode extends com.oracle.truffle.api.nodes.Node implements com.oracle.graal.python.nodes.IndirectCallNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.graal.python.nodes.call.InvokeNode
  super_class: com.oracle.truffle.api.nodes.Node
{
  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 49
            ldc Lcom/oracle/graal/python/nodes/call/InvokeNode;
            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.graal.python.nodes.call.InvokeNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.python.nodes.call.InvokeNode this
         0: .line 49
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
            return
        end local 0 // com.oracle.graal.python.nodes.call.InvokeNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/python/nodes/call/InvokeNode;

  protected static boolean shouldInlineGenerators();
    descriptor: ()Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 51
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 52
            invokestatic com.oracle.graal.python.PythonLanguage.getCurrent:()Lcom/oracle/graal/python/PythonLanguage;
            getstatic com.oracle.graal.python.runtime.PythonOptions.ForceInlineGeneratorCalls:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.graal.python.PythonLanguage.getEngineOption:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected static boolean forceSplitBuiltins();
    descriptor: ()Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 56
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 57
            invokestatic com.oracle.graal.python.PythonLanguage.getCurrent:()Lcom/oracle/graal/python/PythonLanguage;
            getstatic com.oracle.graal.python.runtime.PythonOptions.EnableForcedSplits:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.graal.python.PythonLanguage.getEngineOption:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected static com.oracle.truffle.api.RootCallTarget getCallTarget(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/RootCallTarget;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.Object callee
         0: .line 63
            aload 0 /* callee */
            astore 2 /* actualCallee */
        start local 2 // java.lang.Object actualCallee
         1: .line 64
            aload 2 /* actualCallee */
            instanceof com.oracle.graal.python.builtins.objects.function.PFunction
            ifeq 4
         2: .line 65
            aload 2 /* actualCallee */
            checkcast com.oracle.graal.python.builtins.objects.function.PFunction
            invokevirtual com.oracle.graal.python.builtins.objects.function.PFunction.getCallTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            astore 1 /* callTarget */
        start local 1 // com.oracle.truffle.api.RootCallTarget callTarget
         3: .line 66
            goto 8
        end local 1 // com.oracle.truffle.api.RootCallTarget callTarget
      StackMap locals: java.lang.Object top java.lang.Object
      StackMap stack:
         4: aload 2 /* actualCallee */
            instanceof com.oracle.graal.python.builtins.objects.function.PBuiltinFunction
            ifeq 7
         5: .line 67
            aload 0 /* callee */
            checkcast com.oracle.graal.python.builtins.objects.function.PBuiltinFunction
            invokevirtual com.oracle.graal.python.builtins.objects.function.PBuiltinFunction.getCallTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            astore 1 /* callTarget */
        start local 1 // com.oracle.truffle.api.RootCallTarget callTarget
         6: .line 68
            goto 8
        end local 1 // com.oracle.truffle.api.RootCallTarget callTarget
         7: .line 69
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported callee type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* actualCallee */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // com.oracle.truffle.api.RootCallTarget callTarget
         8: .line 71
      StackMap locals: java.lang.Object com.oracle.truffle.api.RootCallTarget java.lang.Object
      StackMap stack:
            aload 1 /* callTarget */
            areturn
        end local 2 // java.lang.Object actualCallee
        end local 1 // com.oracle.truffle.api.RootCallTarget callTarget
        end local 0 // java.lang.Object callee
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0        callee  Ljava/lang/Object;
            3    4     1    callTarget  Lcom/oracle/truffle/api/RootCallTarget;
            6    7     1    callTarget  Lcom/oracle/truffle/api/RootCallTarget;
            8    9     1    callTarget  Lcom/oracle/truffle/api/RootCallTarget;
            1    9     2  actualCallee  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      callee  

  protected static void optionallySetClassBodySpecial(java.lang.Object[], com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.profiles.ConditionProfile);
    descriptor: ([Ljava/lang/Object;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/profiles/ConditionProfile;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[] arguments
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
        start local 2 // com.oracle.truffle.api.profiles.ConditionProfile isClassBodyProfile
         0: .line 75
            aload 1 /* callTarget */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 3 /* rootNode */
        start local 3 // com.oracle.truffle.api.nodes.RootNode rootNode
         1: .line 76
            aload 2 /* isClassBodyProfile */
            aload 3 /* rootNode */
            instanceof com.oracle.graal.python.nodes.function.ClassBodyRootNode
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 4
         2: .line 77
            getstatic com.oracle.graal.python.nodes.call.InvokeNode.$assertionsDisabled:Z
            ifne 3
            aload 0 /* arguments */
            invokestatic com.oracle.graal.python.builtins.objects.function.PArguments.getSpecialArgument:([Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 3
            new java.lang.AssertionError
            dup
            ldc "there cannot be a special argument in a class body"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 78
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 0 /* arguments */
            aload 3 /* rootNode */
            invokestatic com.oracle.graal.python.builtins.objects.function.PArguments.setSpecialArgument:([Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 80
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 2 // com.oracle.truffle.api.profiles.ConditionProfile isClassBodyProfile
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // java.lang.Object[] arguments
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0           arguments  [Ljava/lang/Object;
            0    5     1          callTarget  Lcom/oracle/truffle/api/CallTarget;
            0    5     2  isClassBodyProfile  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            1    5     3            rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
                    Name  Flags
      arguments           
      callTarget          
      isClassBodyProfile  

  protected static void optionallySetGeneratorFunction(java.lang.Object[], com.oracle.truffle.api.CallTarget, com.oracle.truffle.api.profiles.ConditionProfile, com.oracle.graal.python.builtins.objects.function.PFunction);
    descriptor: ([Ljava/lang/Object;Lcom/oracle/truffle/api/CallTarget;Lcom/oracle/truffle/api/profiles/ConditionProfile;Lcom/oracle/graal/python/builtins/objects/function/PFunction;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.lang.Object[] arguments
        start local 1 // com.oracle.truffle.api.CallTarget callTarget
        start local 2 // com.oracle.truffle.api.profiles.ConditionProfile isGeneratorFunctionProfile
        start local 3 // com.oracle.graal.python.builtins.objects.function.PFunction callee
         0: .line 83
            aload 1 /* callTarget */
            checkcast com.oracle.truffle.api.RootCallTarget
            invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 4 /* rootNode */
        start local 4 // com.oracle.truffle.api.nodes.RootNode rootNode
         1: .line 84
            aload 2 /* isGeneratorFunctionProfile */
            aload 4 /* rootNode */
            instanceof com.oracle.graal.python.nodes.generator.GeneratorFunctionRootNode
            invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
            ifeq 4
         2: .line 85
            getstatic com.oracle.graal.python.nodes.call.InvokeNode.$assertionsDisabled:Z
            ifne 3
            aload 3 /* callee */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            ldc "generator function callee not passed to invoke node"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 86
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 0 /* arguments */
            aload 3 /* callee */
            invokestatic com.oracle.graal.python.builtins.objects.function.PArguments.setGeneratorFunction:([Ljava/lang/Object;Lcom/oracle/graal/python/builtins/objects/function/PFunction;)V
         4: .line 88
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 3 // com.oracle.graal.python.builtins.objects.function.PFunction callee
        end local 2 // com.oracle.truffle.api.profiles.ConditionProfile isGeneratorFunctionProfile
        end local 1 // com.oracle.truffle.api.CallTarget callTarget
        end local 0 // java.lang.Object[] arguments
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    5     0                   arguments  [Ljava/lang/Object;
            0    5     1                  callTarget  Lcom/oracle/truffle/api/CallTarget;
            0    5     2  isGeneratorFunctionProfile  Lcom/oracle/truffle/api/profiles/ConditionProfile;
            0    5     3                      callee  Lcom/oracle/graal/python/builtins/objects/function/PFunction;
            1    5     4                    rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
                            Name  Flags
      arguments                   
      callTarget                  
      isGeneratorFunctionProfile  
      callee                      

  protected static boolean isBuiltin(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object callee
         0: .line 91
            aload 0 /* callee */
            instanceof com.oracle.graal.python.builtins.objects.function.PBuiltinFunction
            ifne 1
            aload 0 /* callee */
            instanceof com.oracle.graal.python.builtins.objects.method.PBuiltinMethod
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.lang.Object callee
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  callee  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      callee  

  public static java.lang.Object invokeUncached(com.oracle.graal.python.builtins.objects.function.PBuiltinFunction, java.lang.Object[]);
    descriptor: (Lcom/oracle/graal/python/builtins/objects/function/PBuiltinFunction;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.graal.python.builtins.objects.function.PBuiltinFunction callee
        start local 1 // java.lang.Object[] arguments
         0: .line 95
            invokestatic com.oracle.graal.python.nodes.call.GenericInvokeNode.getUncached:()Lcom/oracle/graal/python/nodes/call/GenericInvokeNode;
            aload 0 /* callee */
            aload 1 /* arguments */
            invokevirtual com.oracle.graal.python.nodes.call.GenericInvokeNode.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object[] arguments
        end local 0 // com.oracle.graal.python.builtins.objects.function.PBuiltinFunction callee
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0     callee  Lcom/oracle/graal/python/builtins/objects/function/PBuiltinFunction;
            0    1     1  arguments  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      callee     
      arguments  

  public static java.lang.Object invokeUncached(com.oracle.truffle.api.RootCallTarget, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/api/RootCallTarget;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.RootCallTarget ct
        start local 1 // java.lang.Object[] arguments
         0: .line 99
            invokestatic com.oracle.graal.python.nodes.call.GenericInvokeNode.getUncached:()Lcom/oracle/graal/python/nodes/call/GenericInvokeNode;
            aload 0 /* ct */
            aload 1 /* arguments */
            invokevirtual com.oracle.graal.python.nodes.call.GenericInvokeNode.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object[] arguments
        end local 0 // com.oracle.truffle.api.RootCallTarget ct
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0         ct  Lcom/oracle/truffle/api/RootCallTarget;
            0    1     1  arguments  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      ct         
      arguments  
}
SourceFile: "InvokeNode.java"
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives