public final class com.oracle.truffle.sl.nodes.expression.SLInvokeNode extends com.oracle.truffle.sl.nodes.SLExpressionNode
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.sl.nodes.expression.SLInvokeNode
super_class: com.oracle.truffle.sl.nodes.SLExpressionNode
{
private com.oracle.truffle.sl.nodes.SLExpressionNode functionNode;
descriptor: Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final com.oracle.truffle.sl.nodes.SLExpressionNode[] argumentNodes;
descriptor: [Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Children()
private com.oracle.truffle.api.interop.InteropLibrary library;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
public void <init>(com.oracle.truffle.sl.nodes.SLExpressionNode, com.oracle.truffle.sl.nodes.SLExpressionNode[]);
descriptor: (Lcom/oracle/truffle/sl/nodes/SLExpressionNode;[Lcom/oracle/truffle/sl/nodes/SLExpressionNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.oracle.truffle.sl.nodes.SLExpressionNode.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.functionNode:Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
2: aload 0
aload 2
putfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.argumentNodes:[Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
3: aload 0
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
iconst_3
invokevirtual com.oracle.truffle.api.library.LibraryFactory.createDispatched:(I)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
putfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.library:Lcom/oracle/truffle/api/interop/InteropLibrary;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/sl/nodes/expression/SLInvokeNode;
0 5 1 functionNode Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
0 5 2 argumentNodes [Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
MethodParameters:
Name Flags
functionNode
argumentNodes
public java.lang.Object executeGeneric(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.functionNode:Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
aload 1
invokevirtual com.oracle.truffle.sl.nodes.SLExpressionNode.executeGeneric:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
astore 2
start local 2 1: aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.argumentNodes:[Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic com.oracle.truffle.api.CompilerAsserts.compilationConstant:(Ljava/lang/Object;)V
2: aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.argumentNodes:[Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
arraylength
anewarray java.lang.Object
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 7
5: StackMap locals: java.lang.Object java.lang.Object[] int
StackMap stack:
aload 3
iload 4
aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.argumentNodes:[Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
iload 4
aaload
aload 1
invokevirtual com.oracle.truffle.sl.nodes.SLExpressionNode.executeGeneric:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
aastore
6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.argumentNodes:[Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
arraylength
if_icmplt 5
end local 4 8: aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLInvokeNode.library:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
9: areturn
10: StackMap locals: com.oracle.truffle.sl.nodes.expression.SLInvokeNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object java.lang.Object[]
StackMap stack: com.oracle.truffle.api.interop.InteropException
pop
11: aload 0
aload 2
invokestatic com.oracle.truffle.sl.runtime.SLUndefinedNameException.undefinedFunction:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Lcom/oracle/truffle/sl/runtime/SLUndefinedNameException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/sl/nodes/expression/SLInvokeNode;
0 12 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 12 2 function Ljava/lang/Object;
3 12 3 argumentValues [Ljava/lang/Object;
4 8 4 i I
Exception table:
from to target type
8 9 10 Class com.oracle.truffle.api.interop.ArityException
8 9 10 Class com.oracle.truffle.api.interop.UnsupportedTypeException
8 9 10 Class com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
frame
public boolean hasTag(java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$CallTag;
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.oracle.truffle.sl.nodes.SLExpressionNode.hasTag:(Ljava/lang/Class;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/sl/nodes/expression/SLInvokeNode;
0 3 1 tag Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;
Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;)Z
MethodParameters:
Name Flags
tag
}
SourceFile: "SLInvokeNode.java"
InnerClasses:
public final CallTag = com.oracle.truffle.api.instrumentation.StandardTags$CallTag of com.oracle.truffle.api.instrumentation.StandardTags
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo(shortName = "invoke")