public abstract class com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode extends com.oracle.truffle.js.nodes.function.JSBuiltinNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode
  super_class: com.oracle.truffle.js.nodes.function.JSBuiltinNode
{
  private com.oracle.truffle.js.nodes.function.JSFunctionCallNode call;
    descriptor: Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  private com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode toObjectArray;
    descriptor: Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
    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 187
            ldc Lcom/oracle/truffle/js/builtins/ReflectBuiltins;
            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.builtins.ReflectBuiltins$ReflectApplyNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.function.JSBuiltin);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/function/JSBuiltin;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode this
         0: .line 55
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.builtins.ReflectBuiltinsFactory cannot be resolved\n\tThe import com.oracle.truffle.js.nodes.cast.JSToObjectArrayNodeGen cannot be resolved\n\tReflectApplyNodeGen cannot be resolved\n\tReflectConstructNodeGen cannot be resolved\n\tReflectDefinePropertyNodeGen cannot be resolved\n\tReflectDeletePropertyNodeGen cannot be resolved\n\tReflectGetNodeGen cannot be resolved\n\tReflectGetOwnPropertyDescriptorNodeGen cannot be resolved\n\tReflectGetPrototypeOfNodeGen cannot be resolved\n\tReflectHasNodeGen cannot be resolved\n\tReflectIsExtensibleNodeGen cannot be resolved\n\tReflectOwnKeysNodeGen cannot be resolved\n\tReflectPreventExtensionsNodeGen cannot be resolved\n\tReflectSetNodeGen cannot be resolved\n\tReflectSetPrototypeOfNodeGen cannot be resolved\n\tJSToObjectArrayNodeGen cannot be resolved\n\tJSToObjectArrayNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/builtins/ReflectBuiltins$ReflectApplyNode;
    MethodParameters:
         Name  Flags
      context  
      builtin  

  protected final java.lang.Object applyFunction(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode this
        start local 1 // com.oracle.truffle.api.object.DynamicObject target
        start local 2 // java.lang.Object thisArgument
        start local 3 // java.lang.Object argumentsList
         0: .line 199
            aload 0 /* this */
            aload 1 /* target */
            aload 2 /* thisArgument */
            aload 3 /* argumentsList */
            invokevirtual com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode.apply:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object argumentsList
        end local 2 // java.lang.Object thisArgument
        end local 1 // com.oracle.truffle.api.object.DynamicObject target
        end local 0 // com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/js/builtins/ReflectBuiltins$ReflectApplyNode;
            0    1     1         target  Lcom/oracle/truffle/api/object/DynamicObject;
            0    1     2   thisArgument  Ljava/lang/Object;
            0    1     3  argumentsList  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isJSFunction(target)"})
    MethodParameters:
               Name  Flags
      target         
      thisArgument   
      argumentsList  

  protected final java.lang.Object applyCallable(java.lang.Object, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.unary.IsCallableNode);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;)Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.Object thisArgument
        start local 3 // java.lang.Object argumentsList
        start local 4 // com.oracle.truffle.js.nodes.unary.IsCallableNode isCallable
         0: .line 205
            aload 0 /* this */
            aload 1 /* target */
            aload 2 /* thisArgument */
            aload 3 /* argumentsList */
            invokevirtual com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode.apply:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // com.oracle.truffle.js.nodes.unary.IsCallableNode isCallable
        end local 3 // java.lang.Object argumentsList
        end local 2 // java.lang.Object thisArgument
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/js/builtins/ReflectBuiltins$ReflectApplyNode;
            0    1     1         target  Ljava/lang/Object;
            0    1     2   thisArgument  Ljava/lang/Object;
            0    1     3  argumentsList  Ljava/lang/Object;
            0    1     4     isCallable  Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isCallable.executeBoolean(target)"}, replaces = {"applyFunction"}, limit = "1")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isCallable")
    MethodParameters:
               Name  Flags
      target         
      thisArgument   
      argumentsList  
      isCallable     

  private java.lang.Object apply(java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode this
        start local 1 // java.lang.Object target
        start local 2 // java.lang.Object thisArgument
        start local 3 // java.lang.Object argumentsList
         0: .line 209
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode.toObjectArray:Lcom/oracle/truffle/js/nodes/cast/JSToObjectArrayNode;
            aload 3 /* argumentsList */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSToObjectArrayNode.executeObjectArray:(Ljava/lang/Object;)[Ljava/lang/Object;
            astore 4 /* applyUserArgs */
        start local 4 // java.lang.Object[] applyUserArgs
         1: .line 210
            getstatic com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode.$assertionsDisabled:Z
            ifne 2
            aload 4 /* applyUserArgs */
            arraylength
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode.getContext:()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.getMaxApplyArgumentLength:()I
            if_icmple 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 211
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 2 /* thisArgument */
            aload 1 /* target */
            aload 4 /* applyUserArgs */
            invokestatic com.oracle.truffle.js.runtime.JSArguments.create:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
            astore 5 /* passedOnArguments */
        start local 5 // java.lang.Object[] passedOnArguments
         3: .line 212
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode.call:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
            aload 5 /* passedOnArguments */
            invokevirtual com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // java.lang.Object[] passedOnArguments
        end local 4 // java.lang.Object[] applyUserArgs
        end local 3 // java.lang.Object argumentsList
        end local 2 // java.lang.Object thisArgument
        end local 1 // java.lang.Object target
        end local 0 // com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/oracle/truffle/js/builtins/ReflectBuiltins$ReflectApplyNode;
            0    4     1             target  Ljava/lang/Object;
            0    4     2       thisArgument  Ljava/lang/Object;
            0    4     3      argumentsList  Ljava/lang/Object;
            1    4     4      applyUserArgs  [Ljava/lang/Object;
            3    4     5  passedOnArguments  [Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      target         
      thisArgument   
      argumentsList  

  protected static java.lang.Object error(java.lang.Object, java.lang.Object, java.lang.Object, com.oracle.truffle.js.nodes.unary.IsCallableNode);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;)Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // java.lang.Object target
        start local 1 // java.lang.Object thisArgument
        start local 2 // java.lang.Object argumentsList
        start local 3 // com.oracle.truffle.js.nodes.unary.IsCallableNode isCallable
         0: .line 219
            invokestatic com.oracle.truffle.js.runtime.Errors.createTypeErrorCallableExpected:()Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 3 // com.oracle.truffle.js.nodes.unary.IsCallableNode isCallable
        end local 2 // java.lang.Object argumentsList
        end local 1 // java.lang.Object thisArgument
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0         target  Ljava/lang/Object;
            0    1     1   thisArgument  Ljava/lang/Object;
            0    1     2  argumentsList  Ljava/lang/Object;
            0    1     3     isCallable  Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"!isCallable.executeBoolean(target)"}, limit = "1")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.dsl.Cached()
        com.oracle.truffle.api.dsl.Cached$Shared(value = "isCallable")
    MethodParameters:
               Name  Flags
      target         
      thisArgument   
      argumentsList  
      isCallable     
}
SourceFile: "ReflectBuiltins.java"
NestHost: com.oracle.truffle.js.builtins.ReflectBuiltins
InnerClasses:
  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 ReflectApplyNode = com.oracle.truffle.js.builtins.ReflectBuiltins$ReflectApplyNode of com.oracle.truffle.js.builtins.ReflectBuiltins