public final class com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode extends com.oracle.truffle.js.runtime.JavaScriptRootNode implements com.oracle.truffle.js.nodes.promise.AsyncRootNode
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode
super_class: com.oracle.truffle.js.runtime.JavaScriptRootNode
{
private static final int ASYNC_FRAME_ARG_INDEX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private final com.oracle.truffle.js.runtime.JSContext context;
descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String functionName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.truffle.js.nodes.JavaScriptNode functionBody;
descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode readAsyncContext;
descriptor: Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode writeAsyncResult;
descriptor: Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.function.JSFunctionCallNode callResolveNode;
descriptor: Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.function.JSFunctionCallNode callRejectNode;
descriptor: Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.control.TryCatchNode$GetErrorObjectNode getErrorObjectNode;
descriptor: Lcom/oracle/truffle/js/nodes/control/TryCatchNode$GetErrorObjectNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.api.interop.InteropLibrary exceptions;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.js.nodes.JavaScriptNode, com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode, com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode, com.oracle.truffle.api.source.SourceSection, java.lang.String);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;Lcom/oracle/truffle/api/source/SourceSection;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.runtime.JSContext.getLanguage:()Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
aload 5
aconst_null
invokespecial com.oracle.truffle.js.runtime.JavaScriptRootNode.<init>:(Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/frame/FrameDescriptor;)V
1: aload 0
aload 1
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
2: aload 0
aload 2
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.functionBody:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
3: aload 0
aload 4
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.readAsyncContext:Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
4: aload 0
aload 3
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.writeAsyncResult:Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
5: aload 0
invokestatic com.oracle.truffle.js.nodes.function.JSFunctionCallNode.createCall:()Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.callResolveNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
6: aload 0
aload 6
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.functionName:Ljava/lang/String;
7: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
0 8 1 context Lcom/oracle/truffle/js/runtime/JSContext;
0 8 2 body Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 8 3 asyncResult Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
0 8 4 readAsyncContext Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
0 8 5 functionSourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 8 6 functionName Ljava/lang/String;
MethodParameters:
Name Flags
context
body
asyncResult
readAsyncContext
functionSourceSection
functionName
public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=13, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
astore 2
start local 2 1: aload 2
iconst_0
aaload
invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.castMaterializedFrame:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/MaterializedFrame;
astore 3
start local 3 2: aload 2
iconst_1
aaload
checkcast com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord
astore 4
start local 4 3: aload 2
iconst_2
aaload
checkcast com.oracle.truffle.js.runtime.objects.Completion
astore 5
start local 5 4: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.writeAsyncResult:Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
aload 3
aload 5
invokevirtual com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode.executeWrite:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
astore 6
start local 6 6: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.neverCreatedChildRealms:()Z
ifeq 11
7: getstatic com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.$assertionsDisabled:Z
ifne 8
aload 6
aload 3
invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.getFunctionObject:(Lcom/oracle/truffle/api/frame/Frame;)Lcom/oracle/truffle/api/object/DynamicObject;
invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
if_acmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord com.oracle.truffle.js.runtime.objects.Completion com.oracle.truffle.js.runtime.JSRealm
StackMap stack:
aload 6
astore 7
start local 7 9: iconst_0
istore 8
start local 8 10: goto 15
end local 8 end local 7 11: StackMap locals:
StackMap stack:
aload 3
invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.getFunctionObject:(Lcom/oracle/truffle/api/frame/Frame;)Lcom/oracle/truffle/api/object/DynamicObject;
invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getRealm:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/JSRealm;
astore 7
start local 7 12: aload 7
aload 6
if_acmpeq 13
iconst_1
goto 14
StackMap locals: com.oracle.truffle.js.runtime.JSRealm
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 8
start local 8 15: StackMap locals: int
StackMap stack:
aconst_null
astore 9
start local 9 16: aconst_null
astore 10
start local 10 17: iload 8
ifeq 20
18: aload 7
invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTruffleContext:()Lcom/oracle/truffle/api/TruffleContext;
astore 10
19: aload 10
aload 0
invokevirtual com.oracle.truffle.api.TruffleContext.enter:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 9
20: StackMap locals: java.lang.Object com.oracle.truffle.api.TruffleContext
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.functionBody:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 3
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
astore 11
start local 11 21: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.callResolveNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
aload 4
aload 11
invokestatic com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode.promiseCapabilityResolve:(Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;Lcom/oracle/truffle/js/runtime/objects/PromiseCapabilityRecord;Ljava/lang/Object;)V
end local 11 22: goto 38
StackMap locals:
StackMap stack: com.oracle.truffle.js.nodes.control.YieldException
23: astore 11
start local 11 24: getstatic com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.$assertionsDisabled:Z
ifne 25
aload 11
invokevirtual com.oracle.truffle.js.nodes.control.YieldException.isAwait:()Z
ifne 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 11 25: StackMap locals:
StackMap stack:
iload 8
ifeq 40
26: aload 10
aload 0
aload 9
invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
goto 40
27: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
start local 11 28: aload 0
aload 11
invokevirtual com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.shouldCatch:(Ljava/lang/Throwable;)Z
ifeq 31
29: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.callRejectNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
aload 4
aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.getErrorObjectNode:Lcom/oracle/truffle/js/nodes/control/TryCatchNode$GetErrorObjectNode;
aload 11
invokevirtual com.oracle.truffle.js.nodes.control.TryCatchNode$GetErrorObjectNode.execute:(Ljava/lang/Throwable;)Ljava/lang/Object;
invokestatic com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode.promiseCapabilityReject:(Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;Lcom/oracle/truffle/js/runtime/objects/PromiseCapabilityRecord;Ljava/lang/Object;)V
30: goto 32
31: StackMap locals: java.lang.Throwable
StackMap stack:
aload 11
athrow
end local 11 32: StackMap locals:
StackMap stack:
iload 8
ifeq 40
33: aload 10
aload 0
aload 9
invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
goto 40
34: StackMap locals:
StackMap stack: java.lang.Throwable
astore 12
35: iload 8
ifeq 37
36: aload 10
aload 0
aload 9
invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
37: StackMap locals: com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord com.oracle.truffle.js.runtime.objects.Completion com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSRealm int java.lang.Object com.oracle.truffle.api.TruffleContext top java.lang.Throwable
StackMap stack:
aload 12
athrow
38: StackMap locals: com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object[] com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord com.oracle.truffle.js.runtime.objects.Completion com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSRealm int java.lang.Object com.oracle.truffle.api.TruffleContext
StackMap stack:
iload 8
ifeq 40
39: aload 10
aload 0
aload 9
invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
40: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
0 41 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 41 2 args [Ljava/lang/Object;
2 41 3 asyncFrame Lcom/oracle/truffle/api/frame/VirtualFrame;
3 41 4 promiseCapability Lcom/oracle/truffle/js/runtime/objects/PromiseCapabilityRecord;
4 41 5 resumptionValue Lcom/oracle/truffle/js/runtime/objects/Completion;
6 41 6 currentRealm Lcom/oracle/truffle/js/runtime/JSRealm;
9 11 7 realm Lcom/oracle/truffle/js/runtime/JSRealm;
12 41 7 realm Lcom/oracle/truffle/js/runtime/JSRealm;
10 11 8 enterContext Z
15 41 8 enterContext Z
16 41 9 prev Ljava/lang/Object;
17 41 10 childContext Lcom/oracle/truffle/api/TruffleContext;
21 22 11 result Ljava/lang/Object;
24 25 11 e Lcom/oracle/truffle/js/nodes/control/YieldException;
28 32 11 e Ljava/lang/Throwable;
Exception table:
from to target type
20 22 23 Class com.oracle.truffle.js.nodes.control.YieldException
20 22 27 Class java.lang.Throwable
20 25 34 any
27 32 34 any
MethodParameters:
Name Flags
frame
private boolean shouldCatch(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.getErrorObjectNode:Lcom/oracle/truffle/js/nodes/control/TryCatchNode$GetErrorObjectNode;
ifnull 1
aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.callRejectNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
ifnull 1
aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
ifnonnull 5
1: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.control.TryCatchNode$GetErrorObjectNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/control/TryCatchNode$GetErrorObjectNode;
invokevirtual com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.control.TryCatchNode$GetErrorObjectNode
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.getErrorObjectNode:Lcom/oracle/truffle/js/nodes/control/TryCatchNode$GetErrorObjectNode;
3: aload 0
aload 0
invokestatic com.oracle.truffle.js.nodes.function.JSFunctionCallNode.createCall:()Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
invokevirtual com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.function.JSFunctionCallNode
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.callRejectNode:Lcom/oracle/truffle/js/nodes/function/JSFunctionCallNode;
4: aload 0
aload 0
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
iconst_5
invokevirtual com.oracle.truffle.api.library.LibraryFactory.createDispatched:(I)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
invokevirtual com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.api.interop.InteropLibrary
putfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
5: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.exceptions:Lcom/oracle/truffle/api/interop/InteropLibrary;
invokestatic com.oracle.truffle.js.nodes.control.TryCatchNode.shouldCatch:(Ljava/lang/Throwable;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
0 6 1 exception Ljava/lang/Throwable;
MethodParameters:
Name Flags
exception
public boolean isResumption();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
public java.lang.String getName();
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.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.functionName:Ljava/lang/String;
ifnull 2
aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.functionName:Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 2
1: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.functionName:Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
ldc ":async"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
public com.oracle.truffle.api.object.DynamicObject getAsyncFunctionPromise(com.oracle.truffle.api.frame.Frame);
descriptor: (Lcom/oracle/truffle/api/frame/Frame;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.readAsyncContext:Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
aload 1
checkcast com.oracle.truffle.api.frame.VirtualFrame
invokevirtual com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 2
start local 2 1: aload 2
iconst_0
aaload
checkcast com.oracle.truffle.api.RootCallTarget
astore 3
start local 3 2: getstatic com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.$assertionsDisabled:Z
ifne 3
aload 3
invokeinterface com.oracle.truffle.api.RootCallTarget.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
aload 0
if_acmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: java.lang.Object[] com.oracle.truffle.api.RootCallTarget
StackMap stack:
aload 2
iconst_1
aaload
astore 4
start local 4 4: aload 4
checkcast com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord
invokevirtual com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord.getPromise:()Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
0 5 1 asyncFrame Lcom/oracle/truffle/api/frame/Frame;
1 5 2 initialState [Ljava/lang/Object;
2 5 3 resumeTarget Lcom/oracle/truffle/api/RootCallTarget;
4 5 4 promiseCapability Ljava/lang/Object;
MethodParameters:
Name Flags
asyncFrame
public java.util.List<com.oracle.truffle.api.TruffleStackTraceElement> getSavedStackTrace(com.oracle.truffle.api.frame.Frame);
descriptor: (Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.readAsyncContext:Lcom/oracle/truffle/js/nodes/access/JSReadFrameSlotNode;
aload 1
checkcast com.oracle.truffle.api.frame.VirtualFrame
invokevirtual com.oracle.truffle.js.nodes.access.JSReadFrameSlotNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 2
start local 2 1: aload 2
iconst_3
aaload
checkcast java.util.List
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
0 2 1 asyncFrame Lcom/oracle/truffle/api/frame/Frame;
1 2 2 initialState [Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
MethodParameters:
Name Flags
asyncFrame
protected java.util.List<com.oracle.truffle.api.TruffleStackTraceElement> findAsynchronousFrames(com.oracle.truffle.api.frame.Frame);
descriptor: (Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionAsyncStackTraces:()Z
ifeq 1
aload 0
getfield com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getLanguage:()Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getAsyncStackDepth:()I
ifne 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.oracle.truffle.api.frame.Frame.getArguments:()[Ljava/lang/Object;
iconst_0
aaload
astore 3
start local 3 3: aload 3
instanceof com.oracle.truffle.api.frame.MaterializedFrame
ifeq 6
4: aload 3
checkcast com.oracle.truffle.api.frame.MaterializedFrame
astore 2
start local 2 5: goto 7
end local 2 6: StackMap locals: com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode com.oracle.truffle.api.frame.Frame top java.lang.Object
StackMap stack:
aload 1
invokestatic com.oracle.truffle.js.nodes.access.ScopeFrameNode.getNonBlockScopeParentFrame:(Lcom/oracle/truffle/api/frame/Frame;)Lcom/oracle/truffle/api/frame/Frame;
checkcast com.oracle.truffle.api.frame.VirtualFrame
astore 2
start local 2 7: StackMap locals: com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode com.oracle.truffle.api.frame.Frame com.oracle.truffle.api.frame.VirtualFrame java.lang.Object
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode.getSavedStackTrace:(Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/js/nodes/control/AsyncFunctionBodyNode$AsyncFunctionRootNode;
0 8 1 frame Lcom/oracle/truffle/api/frame/Frame;
5 6 2 asyncFrame Lcom/oracle/truffle/api/frame/VirtualFrame;
7 8 2 asyncFrame Lcom/oracle/truffle/api/frame/VirtualFrame;
3 8 3 frameArg Ljava/lang/Object;
Signature: (Lcom/oracle/truffle/api/frame/Frame;)Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
MethodParameters:
Name Flags
frame
}
SourceFile: "AsyncFunctionBodyNode.java"
NestHost: com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public final AsyncFunctionRootNode = com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode$AsyncFunctionRootNode of com.oracle.truffle.js.nodes.control.AsyncFunctionBodyNode
public final GetErrorObjectNode = com.oracle.truffle.js.nodes.control.TryCatchNode$GetErrorObjectNode of com.oracle.truffle.js.nodes.control.TryCatchNode
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo(cost = com.oracle.truffle.api.nodes.NodeCost.NONE:Lcom/oracle/truffle/api/nodes/NodeCost;, language = "JavaScript", description = "The root node of async functions in JavaScript.")