public final class com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode 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.SLFunctionLiteralNode
super_class: com.oracle.truffle.sl.nodes.SLExpressionNode
{
private final java.lang.String functionName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.truffle.sl.runtime.SLFunction cachedFunction;
descriptor: Lcom/oracle/truffle/sl/runtime/SLFunction;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private com.oracle.truffle.api.TruffleLanguage$ContextReference<com.oracle.truffle.sl.runtime.SLContext> contextRef;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
flags: (0x0002) ACC_PRIVATE
Signature: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/sl/runtime/SLContext;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private com.oracle.truffle.sl.SLLanguage language;
descriptor: Lcom/oracle/truffle/sl/SLLanguage;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.truffle.sl.nodes.SLExpressionNode.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.functionName:Ljava/lang/String;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/sl/nodes/expression/SLFunctionLiteralNode;
0 3 1 functionName Ljava/lang/String;
MethodParameters:
Name Flags
functionName
public com.oracle.truffle.sl.runtime.SLFunction executeGeneric(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/sl/runtime/SLFunction;
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.SLFunctionLiteralNode.contextRef:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
astore 2
start local 2 1: aload 2
ifnonnull 4
2: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aload 0
aload 0
ldc Lcom/oracle/truffle/sl/SLLanguage;
invokevirtual com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.lookupContextReference:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
dup_x1
putfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.contextRef:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
astore 2
4: StackMap locals: com.oracle.truffle.api.TruffleLanguage$ContextReference
StackMap stack:
aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.language:Lcom/oracle/truffle/sl/SLLanguage;
astore 3
start local 3 5: aload 3
ifnonnull 8
6: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
7: aload 0
aload 0
ldc Lcom/oracle/truffle/sl/SLLanguage;
invokevirtual com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.lookupLanguageReference:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
invokevirtual com.oracle.truffle.api.TruffleLanguage$LanguageReference.get:()Lcom/oracle/truffle/api/TruffleLanguage;
checkcast com.oracle.truffle.sl.SLLanguage
dup_x1
putfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.language:Lcom/oracle/truffle/sl/SLLanguage;
astore 3
8: StackMap locals: com.oracle.truffle.sl.SLLanguage
StackMap stack:
aload 3
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
9: aload 3
invokevirtual com.oracle.truffle.sl.SLLanguage.isSingleContext:()Z
ifeq 15
10: aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.cachedFunction:Lcom/oracle/truffle/sl/runtime/SLFunction;
astore 4
start local 4 11: aload 4
ifnonnull 19
12: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
13: aload 0
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.sl.runtime.SLContext
invokevirtual com.oracle.truffle.sl.runtime.SLContext.getFunctionRegistry:()Lcom/oracle/truffle/sl/runtime/SLFunctionRegistry;
aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.functionName:Ljava/lang/String;
iconst_1
invokevirtual com.oracle.truffle.sl.runtime.SLFunctionRegistry.lookup:(Ljava/lang/String;Z)Lcom/oracle/truffle/sl/runtime/SLFunction;
dup
astore 4
putfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.cachedFunction:Lcom/oracle/truffle/sl/runtime/SLFunction;
14: goto 19
end local 4 15: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.cachedFunction:Lcom/oracle/truffle/sl/runtime/SLFunction;
ifnull 18
16: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
17: aload 0
aconst_null
putfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.cachedFunction:Lcom/oracle/truffle/sl/runtime/SLFunction;
18: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.sl.runtime.SLContext
invokevirtual com.oracle.truffle.sl.runtime.SLContext.getFunctionRegistry:()Lcom/oracle/truffle/sl/runtime/SLFunctionRegistry;
aload 0
getfield com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.functionName:Ljava/lang/String;
iconst_1
invokevirtual com.oracle.truffle.sl.runtime.SLFunctionRegistry.lookup:(Ljava/lang/String;Z)Lcom/oracle/truffle/sl/runtime/SLFunction;
astore 4
start local 4 19: StackMap locals: com.oracle.truffle.sl.runtime.SLFunction
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/sl/nodes/expression/SLFunctionLiteralNode;
0 20 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 20 2 contextReference Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/sl/runtime/SLContext;>;
5 20 3 l Lcom/oracle/truffle/sl/SLLanguage;
11 15 4 function Lcom/oracle/truffle/sl/runtime/SLFunction;
19 20 4 function Lcom/oracle/truffle/sl/runtime/SLFunction;
MethodParameters:
Name Flags
frame
public java.lang.Object executeGeneric(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode.executeGeneric:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/sl/runtime/SLFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "SLFunctionLiteralNode.java"
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
public abstract LanguageReference = com.oracle.truffle.api.TruffleLanguage$LanguageReference of com.oracle.truffle.api.TruffleLanguage
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo(shortName = "func")