class com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode extends com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode
super_class: com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode
{
protected com.oracle.truffle.js.nodes.JavaScriptNode valueNode;
descriptor: Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x0004) ACC_PROTECTED
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
void <init>(java.lang.Object, boolean, int, com.oracle.truffle.js.nodes.JavaScriptNode, boolean);
descriptor: (Ljava/lang/Object;ZILcom/oracle/truffle/js/nodes/JavaScriptNode;Z)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
iload 2
iload 3
iload 5
invokespecial com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode.<init>:(Ljava/lang/Object;ZIZ)V
1: aload 0
aload 4
putfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
2: return
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 3 0 this Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralDataMemberNode;
0 3 1 name Ljava/lang/Object;
0 3 2 isStatic Z
0 3 3 attributes I
0 3 4 valueNode Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 3 5 isField Z
MethodParameters:
Name Flags
name
isStatic
attributes
valueNode
isField
public final void executeVoid(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/JSContext;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 1
aload 3
invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.executeWithHomeObject:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
astore 5
start local 5 1: aload 0
aload 2
aload 5
aload 4
invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.execute:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
2: return
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 3 0 this Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralDataMemberNode;
0 3 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 3 2 receiver Lcom/oracle/truffle/api/object/DynamicObject;
0 3 3 homeObject Lcom/oracle/truffle/api/object/DynamicObject;
0 3 4 context Lcom/oracle/truffle/js/runtime/JSContext;
1 3 5 value Ljava/lang/Object;
MethodParameters:
Name Flags
frame
receiver
homeObject
context
public java.lang.Object executeValue(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
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.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 1
aload 2
invokestatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.executeWithHomeObject:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralDataMemberNode;
0 1 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 1 2 homeObject Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
frame
homeObject
private void execute(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.isField:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.cache:Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry;
astore 4
start local 4 3: goto 16
4: StackMap locals: com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry
StackMap stack:
aload 4
getstatic com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.GENERIC:Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry;
if_acmpne 7
5: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.executeGeneric:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
6: return
7: StackMap locals:
StackMap stack:
aload 4
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry.oldShape:Lcom/oracle/truffle/api/object/Shape;
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.check:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 15
8: aload 4
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry.newShapeNotObsoleteAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.check:()V
9: goto 12
StackMap locals:
StackMap stack: com.oracle.truffle.api.nodes.InvalidAssumptionException
10: pop
11: goto 17
12: StackMap locals:
StackMap stack:
aload 4
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry.property:Lcom/oracle/truffle/api/object/Property;
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
aload 2
invokevirtual com.oracle.truffle.api.object.Location.canStore:(Ljava/lang/Object;)Z
ifeq 15
13: aload 4
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry.property:Lcom/oracle/truffle/api/object/Property;
aload 1
aload 2
aload 4
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry.oldShape:Lcom/oracle/truffle/api/object/Shape;
aload 4
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry.newShape:Lcom/oracle/truffle/api/object/Shape;
invokevirtual com.oracle.truffle.api.object.Property.setSafe:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
14: return
15: StackMap locals:
StackMap stack:
aload 4
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry.next:Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry;
astore 4
StackMap locals:
StackMap stack:
16: aload 4
ifnonnull 4
end local 4 17: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
18: aload 0
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.rewrite:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
19: return
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/js/nodes/access/ObjectLiteralNode$ObjectLiteralDataMemberNode;
0 20 1 obj Lcom/oracle/truffle/api/object/DynamicObject;
0 20 2 value Ljava/lang/Object;
0 20 3 context Lcom/oracle/truffle/js/runtime/JSContext;
3 17 4 resolved Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry;
Exception table:
from to target type
8 9 10 Class com.oracle.truffle.api.nodes.InvalidAssumptionException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
obj
value
context
private void executeGeneric(com.oracle.truffle.api.object.DynamicObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.attributes:B
invokestatic com.oracle.truffle.js.runtime.objects.PropertyDescriptor.createData:(Ljava/lang/Object;I)Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
astore 3
start local 3 1: aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.name:Ljava/lang/Object;
aload 3
invokestatic com.oracle.truffle.js.runtime.JSRuntime.definePropertyOrThrow:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralDataMemberNode;
0 3 1 obj Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 value Ljava/lang/Object;
1 3 3 propDesc Lcom/oracle/truffle/js/runtime/objects/PropertyDescriptor;
MethodParameters:
Name Flags
obj
value
private void rewrite(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 1
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 4
start local 4 2: aload 4
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.name:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 5
start local 5 3: aload 5
ifnull 11
4: aload 5
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isData:(Lcom/oracle/truffle/api/object/Property;)Z
ifeq 7
aload 5
invokestatic com.oracle.truffle.js.runtime.objects.JSProperty.isProxy:(Lcom/oracle/truffle/api/object/Property;)Z
ifne 7
aload 5
invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
bipush 7
iand
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.attributes:B
if_icmpne 7
5: aload 5
aload 1
aload 2
aconst_null
invokevirtual com.oracle.truffle.api.object.Property.setGeneric:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)V
6: goto 8
7: StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.Property
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.name:Ljava/lang/Object;
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.attributes:B
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.defineDataProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 6
start local 6 9: aload 6
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.name:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 7
start local 7 10: goto 14
end local 7 end local 6 11: StackMap locals:
StackMap stack:
aload 3
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.name:Ljava/lang/Object;
aload 2
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.attributes:B
invokestatic com.oracle.truffle.js.runtime.objects.JSObjectUtil.putDataProperty:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;I)V
12: aload 1
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 6
start local 6 13: aload 6
invokevirtual com.oracle.truffle.api.object.Shape.getLastProperty:()Lcom/oracle/truffle/api/object/Property;
astore 7
start local 7 14: StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.Property
StackMap stack:
aload 0
aload 4
aload 6
aload 7
aload 6
invokevirtual com.oracle.truffle.api.object.Shape.getValidAssumption:()Lcom/oracle/truffle/api/Assumption;
aload 3
invokevirtual com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.insertIntoCache:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/api/Assumption;Lcom/oracle/truffle/js/runtime/JSContext;)V
15: return
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 16 0 this Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralDataMemberNode;
0 16 1 obj Lcom/oracle/truffle/api/object/DynamicObject;
0 16 2 value Ljava/lang/Object;
0 16 3 context Lcom/oracle/truffle/js/runtime/JSContext;
2 16 4 oldShape Lcom/oracle/truffle/api/object/Shape;
3 16 5 property Lcom/oracle/truffle/api/object/Property;
9 11 6 newShape Lcom/oracle/truffle/api/object/Shape;
13 16 6 newShape Lcom/oracle/truffle/api/object/Shape;
10 11 7 newProperty Lcom/oracle/truffle/api/object/Property;
14 16 7 newProperty Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
obj
value
context
protected com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralMemberNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode
dup
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.name:Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.isStatic:Z
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.attributes:B
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.valueNode:Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 1
invokestatic com.oracle.truffle.js.nodes.JavaScriptNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 0
getfield com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.isField:Z
invokespecial com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode.<init>:(Ljava/lang/Object;ZILcom/oracle/truffle/js/nodes/JavaScriptNode;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/ObjectLiteralNode$ObjectLiteralDataMemberNode;
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/access/ObjectLiteralNode$ObjectLiteralMemberNode;
MethodParameters:
Name Flags
materializedTags
}
SourceFile: "ObjectLiteralNode.java"
NestHost: com.oracle.truffle.js.nodes.access.ObjectLiteralNode
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
private abstract CachingObjectLiteralMemberNode = com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode of com.oracle.truffle.js.nodes.access.ObjectLiteralNode
protected final CacheEntry = com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode$CacheEntry of com.oracle.truffle.js.nodes.access.ObjectLiteralNode$CachingObjectLiteralMemberNode
private ObjectLiteralDataMemberNode = com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralDataMemberNode of com.oracle.truffle.js.nodes.access.ObjectLiteralNode
public abstract ObjectLiteralMemberNode = com.oracle.truffle.js.nodes.access.ObjectLiteralNode$ObjectLiteralMemberNode of com.oracle.truffle.js.nodes.access.ObjectLiteralNode