class com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode extends com.oracle.truffle.js.nodes.function.JSFunctionArgumentsNode
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode
  super_class: com.oracle.truffle.js.nodes.function.JSFunctionArgumentsNode
{
  private final com.oracle.truffle.api.profiles.BranchProfile growProfile;
    descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>(com.oracle.truffle.js.nodes.JavaScriptNode[]);
    descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode this
        start local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
         0: .line 181
            aload 0 /* this */
            aload 1 /* args */
            invokespecial com.oracle.truffle.js.nodes.function.JSFunctionArgumentsNode.<init>:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
         1: .line 178
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
            putfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
         2: .line 182
            return
        end local 1 // com.oracle.truffle.js.nodes.JavaScriptNode[] args
        end local 0 // com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/nodes/function/SpreadFunctionArgumentsNode;
            0    3     1  args  [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    MethodParameters:
      Name  Flags
      args  

  public int getCount(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 186
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.args:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            arraylength
            ireturn
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/function/SpreadFunctionArgumentsNode;
            0    1     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
    MethodParameters:
       Name  Flags
      frame  

  public java.lang.Object[] executeFillObjectArray(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object[], int);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;[Ljava/lang/Object;I)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        start local 2 // java.lang.Object[] arguments
        start local 3 // int fixedArgumentsLength
         0: .line 193
            iload 3 /* fixedArgumentsLength */
            i2l
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.args:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            arraylength
            i2l
            ladd
            ldc 3
            ladd
            invokestatic com.oracle.truffle.js.runtime.util.SimpleArrayList.create:(J)Lcom/oracle/truffle/js/runtime/util/SimpleArrayList;
            astore 4 /* argList */
        start local 4 // com.oracle.truffle.js.runtime.util.SimpleArrayList argList
         1: .line 194
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 5
         3: .line 195
      StackMap locals: com.oracle.truffle.js.runtime.util.SimpleArrayList int
      StackMap stack:
            aload 4 /* argList */
            aload 2 /* arguments */
            iload 5 /* i */
            aaload
            invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.addUnchecked:(Ljava/lang/Object;)V
         4: .line 194
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 5 /* i */
            iload 3 /* fixedArgumentsLength */
            if_icmplt 3
        end local 5 // int i
         6: .line 197
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 13
         8: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.args:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            iload 5 /* i */
            aaload
            instanceof com.oracle.truffle.js.nodes.function.SpreadArgumentNode
            ifeq 11
         9: .line 199
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.args:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            iload 5 /* i */
            aaload
            checkcast com.oracle.truffle.js.nodes.function.SpreadArgumentNode
            aload 1 /* frame */
            aload 4 /* argList */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokevirtual com.oracle.truffle.js.nodes.function.SpreadArgumentNode.executeToList:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/runtime/util/SimpleArrayList;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
        10: .line 200
            goto 12
        11: .line 201
      StackMap locals:
      StackMap stack:
            aload 4 /* argList */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.args:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            iload 5 /* i */
            aaload
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
            invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.add:(Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
        12: .line 197
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.args:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            arraylength
            if_icmplt 8
        end local 5 // int i
        14: .line 204
            aload 4 /* argList */
            invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.toArray:()[Ljava/lang/Object;
            areturn
        end local 4 // com.oracle.truffle.js.runtime.util.SimpleArrayList argList
        end local 3 // int fixedArgumentsLength
        end local 2 // java.lang.Object[] arguments
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   15     0                  this  Lcom/oracle/truffle/js/nodes/function/SpreadFunctionArgumentsNode;
            0   15     1                 frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            0   15     2             arguments  [Ljava/lang/Object;
            0   15     3  fixedArgumentsLength  I
            1   15     4               argList  Lcom/oracle/truffle/js/runtime/util/SimpleArrayList<Ljava/lang/Object;>;
            2    6     5                     i  I
            7   14     5                     i  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
                      Name  Flags
      frame                 
      arguments             
      fixedArgumentsLength  

  protected com.oracle.truffle.js.nodes.function.AbstractFunctionArgumentsNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode this
        start local 1 // java.util.Set materializedTags
         0: .line 209
            new com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.args:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.js.nodes.JavaScriptNode.cloneUninitialized:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            invokespecial com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode.<init>:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.js.nodes.function.SpreadFunctionArgumentsNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/js/nodes/function/SpreadFunctionArgumentsNode;
            0    1     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/js/nodes/function/AbstractFunctionArgumentsNode;
    MethodParameters:
                  Name  Flags
      materializedTags  
}
SourceFile: "JSFunctionArgumentsNode.java"