final class com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode extends com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode
super_class: com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode
{
void <init>(java.lang.Object, com.oracle.truffle.js.nodes.JavaScriptNode);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode this
start local 1 // java.lang.Object identifier
start local 2 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
0: .line 90
aload 0 /* this */
aload 1 /* identifier */
aload 2 /* rhs */
invokespecial com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
1: .line 91
return
end local 2 // com.oracle.truffle.js.nodes.JavaScriptNode rhs
end local 1 // java.lang.Object identifier
end local 0 // com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/access/LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode;
0 2 1 identifier Ljava/lang/Object;
0 2 2 rhs Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
identifier
rhs
public java.lang.Object executeWrite(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=13, args_size=3
start local 0 // com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
start local 2 // java.lang.Object value
0: .line 95
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
1: .line 97
aload 1 /* frame */
astore 3 /* outerFrame */
start local 3 // com.oracle.truffle.api.frame.Frame outerFrame
2: .line 98
iconst_0
istore 4 /* frameLevel */
start local 4 // int frameLevel
3: .line 99
StackMap locals: com.oracle.truffle.api.frame.Frame int
StackMap stack:
aload 3 /* outerFrame */
astore 5 /* outerScope */
start local 5 // com.oracle.truffle.api.frame.Frame outerScope
4: .line 100
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6 /* parentSlotList */
start local 6 // java.util.List parentSlotList
5: .line 101
iconst_0
istore 7 /* scopeLevel */
start local 7 // int scopeLevel
6: .line 102
StackMap locals: com.oracle.truffle.api.frame.Frame java.util.List int
StackMap stack:
aload 5 /* outerScope */
invokeinterface com.oracle.truffle.api.frame.Frame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
astore 8 /* outerFrameDescriptor */
start local 8 // com.oracle.truffle.api.frame.FrameDescriptor outerFrameDescriptor
7: .line 103
aload 8 /* outerFrameDescriptor */
aload 0 /* this */
getfield com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode.identifier:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
astore 9 /* slot */
start local 9 // com.oracle.truffle.api.frame.FrameSlot slot
8: .line 104
aload 9 /* slot */
ifnull 13
9: .line 105
aload 6 /* parentSlotList */
getstatic com.oracle.truffle.js.nodes.access.ScopeFrameNode.EMPTY_FRAME_SLOT_ARRAY:[Lcom/oracle/truffle/api/frame/FrameSlot;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.FrameSlot[]
astore 10 /* parentSlots */
start local 10 // com.oracle.truffle.api.frame.FrameSlot[] parentSlots
10: .line 106
iload 4 /* frameLevel */
iload 7 /* scopeLevel */
aload 10 /* parentSlots */
invokestatic com.oracle.truffle.js.nodes.access.ScopeFrameNode.create:(II[Lcom/oracle/truffle/api/frame/FrameSlot;)Lcom/oracle/truffle/js/nodes/access/ScopeFrameNode;
astore 11 /* scopeFrameNode */
start local 11 // com.oracle.truffle.js.nodes.access.ScopeFrameNode scopeFrameNode
11: .line 107
aload 9 /* slot */
aload 11 /* scopeFrameNode */
aload 0 /* this */
getfield com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode.rhs:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 8 /* outerFrameDescriptor */
aload 9 /* slot */
invokestatic com.oracle.truffle.js.runtime.JSFrameUtil.hasTemporalDeadZone:(Lcom/oracle/truffle/api/frame/FrameSlot;)Z
invokestatic com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode.create:(Lcom/oracle/truffle/api/frame/FrameSlot;Lcom/oracle/truffle/js/nodes/access/ScopeFrameNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/frame/FrameDescriptor;Z)Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
astore 12 /* resolved */
start local 12 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode resolved
12: .line 108
aload 0 /* this */
aload 12 /* resolved */
invokevirtual com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode.replace:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode
aload 1 /* frame */
aload 2 /* value */
invokevirtual com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode.executeWrite:(Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 12 // com.oracle.truffle.js.nodes.access.JSWriteFrameSlotNode resolved
end local 11 // com.oracle.truffle.js.nodes.access.ScopeFrameNode scopeFrameNode
end local 10 // com.oracle.truffle.api.frame.FrameSlot[] parentSlots
13: .line 111
StackMap locals: com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.api.frame.FrameSlot
StackMap stack:
aload 8 /* outerFrameDescriptor */
getstatic com.oracle.truffle.js.nodes.access.ScopeFrameNode.PARENT_SCOPE_IDENTIFIER:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
astore 10 /* parentSlot */
start local 10 // com.oracle.truffle.api.frame.FrameSlot parentSlot
14: .line 112
aload 10 /* parentSlot */
ifnonnull 16
15: .line 113
goto 19
16: .line 115
StackMap locals: com.oracle.truffle.api.frame.FrameSlot
StackMap stack:
aload 5 /* outerScope */
aload 10 /* parentSlot */
invokestatic com.oracle.truffle.api.frame.FrameUtil.getObjectSafe:(Lcom/oracle/truffle/api/frame/Frame;Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.frame.Frame
astore 5 /* outerScope */
17: .line 116
aload 6 /* parentSlotList */
aload 10 /* parentSlot */
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 10 // com.oracle.truffle.api.frame.FrameSlot parentSlot
end local 9 // com.oracle.truffle.api.frame.FrameSlot slot
end local 8 // com.oracle.truffle.api.frame.FrameDescriptor outerFrameDescriptor
18: .line 101
iinc 7 /* scopeLevel */ 1
goto 6
end local 7 // int scopeLevel
19: .line 119
StackMap locals: com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Object com.oracle.truffle.api.frame.Frame int com.oracle.truffle.api.frame.Frame java.util.List
StackMap stack:
aload 3 /* outerFrame */
invokeinterface com.oracle.truffle.api.frame.Frame.getArguments:()[Ljava/lang/Object;
invokestatic com.oracle.truffle.js.runtime.JSArguments.getEnclosingFrame:([Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/MaterializedFrame;
astore 3 /* outerFrame */
20: .line 120
aload 3 /* outerFrame */
getstatic com.oracle.truffle.js.runtime.JSFrameUtil.NULL_MATERIALIZED_FRAME:Lcom/oracle/truffle/api/frame/MaterializedFrame;
if_acmpne 22
21: .line 121
goto 23
end local 6 // java.util.List parentSlotList
end local 5 // com.oracle.truffle.api.frame.Frame outerScope
22: .line 98
StackMap locals:
StackMap stack:
iinc 4 /* frameLevel */ 1
goto 3
end local 4 // int frameLevel
23: .line 125
StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
ldc "frame slot not found"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 3 // com.oracle.truffle.api.frame.Frame outerFrame
end local 2 // java.lang.Object value
end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
end local 0 // com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/truffle/js/nodes/access/LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode;
0 24 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 24 2 value Ljava/lang/Object;
2 24 3 outerFrame Lcom/oracle/truffle/api/frame/Frame;
3 23 4 frameLevel I
4 22 5 outerScope Lcom/oracle/truffle/api/frame/Frame;
5 22 6 parentSlotList Ljava/util/List<Lcom/oracle/truffle/api/frame/FrameSlot;>;
6 19 7 scopeLevel I
7 18 8 outerFrameDescriptor Lcom/oracle/truffle/api/frame/FrameDescriptor;
8 18 9 slot Lcom/oracle/truffle/api/frame/FrameSlot;
10 13 10 parentSlots [Lcom/oracle/truffle/api/frame/FrameSlot;
11 13 11 scopeFrameNode Lcom/oracle/truffle/js/nodes/access/ScopeFrameNode;
12 13 12 resolved Lcom/oracle/truffle/js/nodes/access/JSWriteFrameSlotNode;
14 18 10 parentSlot Lcom/oracle/truffle/api/frame/FrameSlot;
MethodParameters:
Name Flags
frame
value
protected com.oracle.truffle.js.nodes.JavaScriptNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 // com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode this
start local 1 // java.util.Set materializedTags
0: .line 130
new com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode
dup
aload 0 /* this */
getfield com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode.identifier:Ljava/lang/Object;
aload 0 /* this */
getfield com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode.rhs:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 1 /* materializedTags */
invokestatic com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
invokespecial com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
areturn
end local 1 // java.util.Set materializedTags
end local 0 // com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode;
0 1 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/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
materializedTags
}
SourceFile: "LazyWriteFrameSlotNode.java"
NestHost: com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode
InnerClasses:
private final LazyWriteFrameSlotUninitNode = com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode$LazyWriteFrameSlotUninitNode of com.oracle.truffle.js.nodes.access.LazyWriteFrameSlotNode
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo(cost = com.oracle.truffle.api.nodes.NodeCost.UNINITIALIZED:Lcom/oracle/truffle/api/nodes/NodeCost;)