public final class com.oracle.truffle.sl.nodes.controlflow.SLReturnNode extends com.oracle.truffle.sl.nodes.SLStatementNode
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.sl.nodes.controlflow.SLReturnNode
super_class: com.oracle.truffle.sl.nodes.SLStatementNode
{
private com.oracle.truffle.sl.nodes.SLExpressionNode valueNode;
descriptor: Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
public void <init>(com.oracle.truffle.sl.nodes.SLExpressionNode);
descriptor: (Lcom/oracle/truffle/sl/nodes/SLExpressionNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.truffle.sl.nodes.controlflow.SLReturnNode this
start local 1 // com.oracle.truffle.sl.nodes.SLExpressionNode valueNode
0: .line 61
aload 0 /* this */
invokespecial com.oracle.truffle.sl.nodes.SLStatementNode.<init>:()V
1: .line 62
aload 0 /* this */
aload 1 /* valueNode */
putfield com.oracle.truffle.sl.nodes.controlflow.SLReturnNode.valueNode:Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
2: .line 63
return
end local 1 // com.oracle.truffle.sl.nodes.SLExpressionNode valueNode
end local 0 // com.oracle.truffle.sl.nodes.controlflow.SLReturnNode this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/sl/nodes/controlflow/SLReturnNode;
0 3 1 valueNode Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
MethodParameters:
Name Flags
valueNode
public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 // com.oracle.truffle.sl.nodes.controlflow.SLReturnNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
0: .line 68
aload 0 /* this */
getfield com.oracle.truffle.sl.nodes.controlflow.SLReturnNode.valueNode:Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
ifnull 3
1: .line 69
aload 0 /* this */
getfield com.oracle.truffle.sl.nodes.controlflow.SLReturnNode.valueNode:Lcom/oracle/truffle/sl/nodes/SLExpressionNode;
aload 1 /* frame */
invokevirtual com.oracle.truffle.sl.nodes.SLExpressionNode.executeGeneric:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
astore 2 /* result */
start local 2 // java.lang.Object result
2: .line 70
goto 4
end local 2 // java.lang.Object result
3: .line 74
StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.sl.runtime.SLNull.SINGLETON:Lcom/oracle/truffle/sl/runtime/SLNull;
astore 2 /* result */
start local 2 // java.lang.Object result
4: .line 76
StackMap locals: java.lang.Object
StackMap stack:
new com.oracle.truffle.sl.nodes.controlflow.SLReturnException
dup
aload 2 /* result */
invokespecial com.oracle.truffle.sl.nodes.controlflow.SLReturnException.<init>:(Ljava/lang/Object;)V
athrow
end local 2 // java.lang.Object result
end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
end local 0 // com.oracle.truffle.sl.nodes.controlflow.SLReturnNode this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/sl/nodes/controlflow/SLReturnNode;
0 5 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
2 3 2 result Ljava/lang/Object;
4 5 2 result Ljava/lang/Object;
MethodParameters:
Name Flags
frame
}
SourceFile: "SLReturnNode.java"
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo(shortName = "return", description = "The node implementing a return statement")