public class com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode
super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
private final com.oracle.truffle.js.runtime.JSContext context;
descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.truffle.js.nodes.unary.IsCallableNode isCallableFulfillNode;
descriptor: Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.unary.IsCallableNode isCallableRejectNode;
descriptor: Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertyGetNode getPromiseFulfillReactionsNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertyGetNode getPromiseRejectReactionsNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertyGetNode getPromiseResultNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertyGetNode getPromiseIsHandledNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.access.PropertySetNode setPromiseIsHandledNode;
descriptor: Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private com.oracle.truffle.js.nodes.promise.PromiseReactionJobNode promiseReactionJobNode;
descriptor: Lcom/oracle/truffle/js/nodes/promise/PromiseReactionJobNode;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private final com.oracle.truffle.api.profiles.ConditionProfile pendingProf;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile fulfilledProf;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile unhandledProf;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile growProfile;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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/promise/PerformPromiseThenNode;
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.promise.PerformPromiseThenNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
1: aload 0
invokestatic com.oracle.truffle.js.nodes.unary.IsCallableNode.create:()Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.isCallableFulfillNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
2: aload 0
invokestatic com.oracle.truffle.js.nodes.unary.IsCallableNode.create:()Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.isCallableRejectNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
3: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.pendingProf:Lcom/oracle/truffle/api/profiles/ConditionProfile;
4: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.fulfilledProf:Lcom/oracle/truffle/api/profiles/ConditionProfile;
5: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.unhandledProf:Lcom/oracle/truffle/api/profiles/ConditionProfile;
6: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
7: aload 0
aload 1
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
8: aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSPromise.PROMISE_FULFILL_REACTIONS:Lcom/oracle/truffle/api/object/HiddenKey;
aload 1
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.createGetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseFulfillReactionsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
9: aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSPromise.PROMISE_REJECT_REACTIONS:Lcom/oracle/truffle/api/object/HiddenKey;
aload 1
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.createGetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseRejectReactionsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
10: aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSPromise.PROMISE_IS_HANDLED:Lcom/oracle/truffle/api/object/HiddenKey;
aload 1
invokestatic com.oracle.truffle.js.nodes.access.PropertySetNode.createSetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.setPromiseIsHandledNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/js/nodes/promise/PerformPromiseThenNode;
0 12 1 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
context
public static com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode create(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/promise/PerformPromiseThenNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode
dup
aload 0
invokespecial com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
context
public com.oracle.truffle.api.object.DynamicObject execute(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, java.lang.Object, com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PromiseCapabilityRecord;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSPromise.isJSPromise:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.isCallableFulfillNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
aload 2
invokevirtual com.oracle.truffle.js.nodes.unary.IsCallableNode.executeBoolean:(Ljava/lang/Object;)Z
ifeq 2
aload 2
goto 3
StackMap locals:
StackMap stack:
2: getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
StackMap locals:
StackMap stack: java.lang.Object
3: astore 5
start local 5 4: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.isCallableRejectNode:Lcom/oracle/truffle/js/nodes/unary/IsCallableNode;
aload 3
invokevirtual com.oracle.truffle.js.nodes.unary.IsCallableNode.executeBoolean:(Ljava/lang/Object;)Z
ifeq 5
aload 3
goto 6
StackMap locals: java.lang.Object
StackMap stack:
5: getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
StackMap locals:
StackMap stack: java.lang.Object
6: astore 6
start local 6 7: getstatic com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.$assertionsDisabled:Z
ifne 9
aload 4
ifnonnull 9
aload 5
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpeq 8
aload 6
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 9
StackMap locals: java.lang.Object
StackMap stack:
8: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 4
aload 5
iconst_1
invokestatic com.oracle.truffle.js.runtime.objects.PromiseReactionRecord.create:(Lcom/oracle/truffle/js/runtime/objects/PromiseCapabilityRecord;Ljava/lang/Object;Z)Lcom/oracle/truffle/js/runtime/objects/PromiseReactionRecord;
astore 7
start local 7 10: aload 4
aload 6
iconst_0
invokestatic com.oracle.truffle.js.runtime.objects.PromiseReactionRecord.create:(Lcom/oracle/truffle/js/runtime/objects/PromiseCapabilityRecord;Ljava/lang/Object;Z)Lcom/oracle/truffle/js/runtime/objects/PromiseReactionRecord;
astore 8
start local 8 11: aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSPromise.getPromiseState:(Lcom/oracle/truffle/api/object/DynamicObject;)I
istore 9
start local 9 12: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.pendingProf:Lcom/oracle/truffle/api/profiles/ConditionProfile;
iload 9
ifne 13
iconst_1
goto 14
StackMap locals: com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseReactionRecord com.oracle.truffle.js.runtime.objects.PromiseReactionRecord int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
13: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseReactionRecord com.oracle.truffle.js.runtime.objects.PromiseReactionRecord int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
14: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 18
15: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseFulfillReactionsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.util.SimpleArrayList
aload 7
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.add:(Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
16: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseRejectReactionsNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.util.SimpleArrayList
aload 8
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.growProfile:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.add:(Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
17: goto 33
StackMap locals:
StackMap stack:
18: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.fulfilledProf:Lcom/oracle/truffle/api/profiles/ConditionProfile;
iload 9
iconst_1
if_icmpne 19
iconst_1
goto 20
StackMap locals:
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
19: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseReactionRecord com.oracle.truffle.js.runtime.objects.PromiseReactionRecord int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
20: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 25
21: aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseResult:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
astore 10
start local 10 22: aload 0
aload 7
aload 10
invokevirtual com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseReactionJob:(Lcom/oracle/truffle/js/runtime/objects/PromiseReactionRecord;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 11
start local 11 23: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
aload 11
invokevirtual com.oracle.truffle.js.runtime.JSContext.promiseEnqueueJob:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)V
end local 11 end local 10 24: goto 33
25: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.$assertionsDisabled:Z
ifne 26
iload 9
iconst_2
if_icmpeq 26
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
26: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseResult:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
astore 10
start local 10 27: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.unhandledProf:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseIsHandled:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 28
iconst_0
goto 29
StackMap locals: com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseReactionRecord com.oracle.truffle.js.runtime.objects.PromiseReactionRecord int java.lang.Object
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
28: iconst_1
StackMap locals: com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord java.lang.Object java.lang.Object com.oracle.truffle.js.runtime.objects.PromiseReactionRecord com.oracle.truffle.js.runtime.objects.PromiseReactionRecord int java.lang.Object
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
29: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 31
30: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
aload 1
iconst_1
getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
invokevirtual com.oracle.truffle.js.runtime.JSContext.notifyPromiseRejectionTracker:(Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/Object;)V
31: StackMap locals:
StackMap stack:
aload 0
aload 8
aload 10
invokevirtual com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseReactionJob:(Lcom/oracle/truffle/js/runtime/objects/PromiseReactionRecord;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 11
start local 11 32: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
aload 11
invokevirtual com.oracle.truffle.js.runtime.JSContext.promiseEnqueueJob:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/object/DynamicObject;)V
end local 11 end local 10 33: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.setPromiseIsHandledNode:Lcom/oracle/truffle/js/nodes/access/PropertySetNode;
aload 1
iconst_1
invokevirtual com.oracle.truffle.js.nodes.access.PropertySetNode.setValueBoolean:(Ljava/lang/Object;Z)V
34: aload 4
ifnonnull 36
35: getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
areturn
36: StackMap locals:
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.js.runtime.objects.PromiseCapabilityRecord.getPromise:()Lcom/oracle/truffle/api/object/DynamicObject;
areturn
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 37 0 this Lcom/oracle/truffle/js/nodes/promise/PerformPromiseThenNode;
0 37 1 promise Lcom/oracle/truffle/api/object/DynamicObject;
0 37 2 onFulfilled Ljava/lang/Object;
0 37 3 onRejected Ljava/lang/Object;
0 37 4 resultCapability Lcom/oracle/truffle/js/runtime/objects/PromiseCapabilityRecord;
4 37 5 onFulfilledHandler Ljava/lang/Object;
7 37 6 onRejectedHandler Ljava/lang/Object;
10 37 7 fulfillReaction Lcom/oracle/truffle/js/runtime/objects/PromiseReactionRecord;
11 37 8 rejectReaction Lcom/oracle/truffle/js/runtime/objects/PromiseReactionRecord;
12 37 9 promiseState I
22 24 10 value Ljava/lang/Object;
23 24 11 job Lcom/oracle/truffle/api/object/DynamicObject;
27 33 10 reason Ljava/lang/Object;
32 33 11 job Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
promise
onFulfilled
onRejected
resultCapability
private com.oracle.truffle.api.object.DynamicObject getPromiseReactionJob(com.oracle.truffle.js.runtime.objects.PromiseReactionRecord, java.lang.Object);
descriptor: (Lcom/oracle/truffle/js/runtime/objects/PromiseReactionRecord;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.promiseReactionJobNode:Lcom/oracle/truffle/js/nodes/promise/PromiseReactionJobNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.promise.PromiseReactionJobNode.create:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/promise/PromiseReactionJobNode;
invokevirtual com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.promise.PromiseReactionJobNode
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.promiseReactionJobNode:Lcom/oracle/truffle/js/nodes/promise/PromiseReactionJobNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.promiseReactionJobNode:Lcom/oracle/truffle/js/nodes/promise/PromiseReactionJobNode;
aload 1
aload 2
invokevirtual com.oracle.truffle.js.nodes.promise.PromiseReactionJobNode.execute:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/promise/PerformPromiseThenNode;
0 4 1 reaction Lcom/oracle/truffle/js/runtime/objects/PromiseReactionRecord;
0 4 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
reaction
value
private java.lang.Object getPromiseResult(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
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.promise.PerformPromiseThenNode.getPromiseResultNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSPromise.PROMISE_RESULT:Lcom/oracle/truffle/api/object/HiddenKey;
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.createGetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
invokevirtual com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.PropertyGetNode
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseResultNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseResultNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/promise/PerformPromiseThenNode;
0 4 1 promise Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
promise
private boolean getPromiseIsHandled(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)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.promise.PerformPromiseThenNode.getPromiseIsHandledNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
ifnonnull 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
aload 0
getstatic com.oracle.truffle.js.runtime.builtins.JSPromise.PROMISE_IS_HANDLED:Lcom/oracle/truffle/api/object/HiddenKey;
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokestatic com.oracle.truffle.js.nodes.access.PropertyGetNode.createGetHidden:(Lcom/oracle/truffle/api/object/HiddenKey;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
invokevirtual com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.PropertyGetNode
putfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseIsHandledNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.promise.PerformPromiseThenNode.getPromiseIsHandledNode:Lcom/oracle/truffle/js/nodes/access/PropertyGetNode;
aload 1
invokevirtual com.oracle.truffle.js.nodes.access.PropertyGetNode.getValueBoolean:(Ljava/lang/Object;)Z
4: ireturn
5: StackMap locals:
StackMap stack: com.oracle.truffle.api.nodes.UnexpectedResultException
pop
6: invokestatic com.oracle.truffle.js.runtime.Errors.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/nodes/promise/PerformPromiseThenNode;
0 7 1 promise Lcom/oracle/truffle/api/object/DynamicObject;
Exception table:
from to target type
0 4 5 Class com.oracle.truffle.api.nodes.UnexpectedResultException
MethodParameters:
Name Flags
promise
}
SourceFile: "PerformPromiseThenNode.java"
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node