public abstract class com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode extends com.oracle.truffle.js.nodes.JavaScriptNode implements com.oracle.truffle.js.nodes.function.FunctionNameHolder
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
super_class: com.oracle.truffle.js.nodes.JavaScriptNode
{
protected final com.oracle.truffle.js.runtime.builtins.JSFunctionData functionData;
descriptor: Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.oracle.truffle.js.nodes.function.FunctionRootNode functionNode;
descriptor: Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected void <init>(com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.js.nodes.function.FunctionRootNode);
descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
2: aload 0
aload 2
putfield com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.functionNode:Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
0 4 1 functionData Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
0 4 2 functionNode Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
MethodParameters:
Name Flags
functionData
functionNode
public static com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode create(com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.js.nodes.function.FunctionRootNode);
descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.needsParentFrame:()Z
ifeq 2
1: new com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$DefaultFunctionExpressionNode
dup
aload 0
aload 1
invokespecial com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$DefaultFunctionExpressionNode.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)V
areturn
2: StackMap locals:
StackMap stack:
new com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$AutonomousFunctionExpressionNode
dup
aload 0
aload 1
invokespecial com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$AutonomousFunctionExpressionNode.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 function Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
0 3 1 functionNode Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
MethodParameters:
Name Flags
function
functionNode
public static com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode createLexicalThis(com.oracle.truffle.js.runtime.builtins.JSFunctionData, com.oracle.truffle.js.nodes.function.FunctionRootNode, com.oracle.truffle.js.nodes.JavaScriptNode);
descriptor: (Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$LexicalThisFunctionExpressionNode
dup
aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$LexicalThisFunctionExpressionNode.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 function Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
0 1 1 functionNode Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
0 1 2 thisNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
function
functionNode
thisNode
public static com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode createEmpty(com.oracle.truffle.js.runtime.JSContext, int, java.lang.String);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;ILjava/lang/String;)Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$AutonomousFunctionExpressionNode
dup
aload 0
aload 0
invokevirtual com.oracle.truffle.js.runtime.JSContext.getEmptyFunctionCallTarget:()Lcom/oracle/truffle/api/CallTarget;
iload 1
aload 2
invokestatic com.oracle.truffle.js.runtime.builtins.JSFunctionData.create:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/CallTarget;ILjava/lang/String;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
aconst_null
invokespecial com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$AutonomousFunctionExpressionNode.<init>:(Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lcom/oracle/truffle/js/runtime/JSContext;
0 1 1 length I
0 1 2 sourceName Ljava/lang/String;
MethodParameters:
Name Flags
context
length
sourceName
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/js/nodes/instrumentation/JSTags$LiteralTag;
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$InputNodeTag;
if_acmpne 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 1
ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$DeclareTag;
if_acmpne 8
5: aload 0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: ireturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
0 9 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
public java.lang.Object getNodeObject();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
invokespecial com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
ifeq 2
1: ldc "literalType"
getstatic com.oracle.truffle.js.nodes.instrumentation.JSTags$LiteralTag$Type.FunctionLiteral:Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$LiteralTag$Type;
invokevirtual com.oracle.truffle.js.nodes.instrumentation.JSTags$LiteralTag$Type.name:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTags.createNodeObjectDescriptor:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/instrumentation/NodeObjectDescriptor;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
ldc "var"
invokestatic com.oracle.truffle.js.nodes.instrumentation.DeclareTagProvider.createDeclareNodeObject:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/instrumentation/NodeObjectDescriptor;
astore 1
start local 1 3: aload 1
ldc "literalType"
getstatic com.oracle.truffle.js.nodes.instrumentation.JSTags$LiteralTag$Type.FunctionLiteral:Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$LiteralTag$Type;
invokevirtual com.oracle.truffle.js.nodes.instrumentation.JSTags$LiteralTag$Type.name:()Ljava/lang/String;
invokevirtual com.oracle.truffle.js.nodes.instrumentation.NodeObjectDescriptor.addProperty:(Ljava/lang/String;Ljava/lang/Object;)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
3 5 1 descriptor Lcom/oracle/truffle/js/nodes/instrumentation/NodeObjectDescriptor;
public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Set.isEmpty:()Z
ifne 2
1: aload 0
getfield com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.materialize:()V
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
0 3 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/api/instrumentation/InstrumentableNode;
MethodParameters:
Name Flags
materializedTags
public com.oracle.truffle.js.runtime.builtins.JSFunctionData getFunctionData();
descriptor: ()Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
public com.oracle.truffle.js.nodes.function.FunctionRootNode getFunctionNode();
descriptor: ()Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
getfield com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.functionNode:Lcom/oracle/truffle/js/nodes/function/FunctionRootNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
public java.lang.String getFunctionName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
public void setFunctionName(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: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
getfield com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode.functionData:Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
aload 1
invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.setName:(Ljava/lang/String;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/function/JSFunctionExpressionNode;
0 3 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
}
SourceFile: "JSFunctionExpressionNode.java"
NestMembers:
com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$AutonomousFunctionExpressionNode com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$DefaultFunctionExpressionNode com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$LexicalThisFunctionExpressionNode
InnerClasses:
public final ExpressionTag = com.oracle.truffle.api.instrumentation.StandardTags$ExpressionTag of com.oracle.truffle.api.instrumentation.StandardTags
private final AutonomousFunctionExpressionNode = com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$AutonomousFunctionExpressionNode of com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
private final DefaultFunctionExpressionNode = com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$DefaultFunctionExpressionNode of com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
private final LexicalThisFunctionExpressionNode = com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode$LexicalThisFunctionExpressionNode of com.oracle.truffle.js.nodes.function.JSFunctionExpressionNode
public final DeclareTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$DeclareTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
public final InputNodeTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$InputNodeTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
public final LiteralTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$LiteralTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
public final Type = com.oracle.truffle.js.nodes.instrumentation.JSTags$LiteralTag$Type of com.oracle.truffle.js.nodes.instrumentation.JSTags$LiteralTag