public final class com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode extends com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode implements com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode
super_class: com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode
{
private final com.oracle.truffle.api.Assumption shapeValidAssumption;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.Assumption unchangedAssumption;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.ref.WeakReference<com.oracle.truffle.js.runtime.objects.JSDynamicObject> expectedObjectRef;
descriptor: Ljava/lang/ref/WeakReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/ref/WeakReference<Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;>;
public void <init>(com.oracle.truffle.api.object.Shape, com.oracle.truffle.js.runtime.objects.JSDynamicObject, java.lang.Object, com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/js/runtime/JSContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 4
invokespecial com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/js/runtime/JSContext;)V
1: aload 0
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getValidAssumption:()Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.shapeValidAssumption:Lcom/oracle/truffle/api/Assumption;
2: aload 0
aload 1
aload 3
invokestatic com.oracle.truffle.js.runtime.objects.JSShape.getPropertyAssumption:(Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.unchangedAssumption:Lcom/oracle/truffle/api/Assumption;
3: aload 0
new java.lang.ref.WeakReference
dup
aload 2
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.expectedObjectRef:Ljava/lang/ref/WeakReference;
4: return
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/access/PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode;
0 5 1 shape Lcom/oracle/truffle/api/object/Shape;
0 5 2 thisObj Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
0 5 3 key Ljava/lang/Object;
0 5 4 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
shape
thisObj
key
context
public boolean accept(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
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.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.expectedObjectRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.objects.JSDynamicObject
astore 2
start local 2 1: aload 1
aload 2
if_acmpne 2
iconst_1
ireturn
StackMap locals: com.oracle.truffle.js.runtime.objects.JSDynamicObject
StackMap stack:
2: iconst_0
ireturn
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/PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode;
0 3 1 thisObj Ljava/lang/Object;
1 3 2 expectedObj Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
MethodParameters:
Name Flags
thisObj
public com.oracle.truffle.api.object.DynamicObject getStore(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.js.runtime.objects.JSDynamicObject
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode;
0 1 1 thisObj Ljava/lang/Object;
MethodParameters:
Name Flags
thisObj
public boolean isValid();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.isSingleRealm:()Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.shapeValidAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.unchangedAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.expectedObjectRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
ifnonnull 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode;
protected boolean isUnstable();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.shapeValidAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 1
aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.unchangedAssumption:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode;
public java.lang.Object getExpectedObject();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.expectedObjectRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode;
public void clearExpectedObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode.expectedObjectRef:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/access/PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode;
}
SourceFile: "PropertyCacheNode.java"
NestHost: com.oracle.truffle.js.nodes.access.PropertyCacheNode
InnerClasses:
protected abstract AbstractAssumptionShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$AbstractAssumptionShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected final ConstantObjectAssumptionShapeCheckNode = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectAssumptionShapeCheckNode of com.oracle.truffle.js.nodes.access.PropertyCacheNode
protected abstract ConstantObjectReceiverCheck = com.oracle.truffle.js.nodes.access.PropertyCacheNode$ConstantObjectReceiverCheck of com.oracle.truffle.js.nodes.access.PropertyCacheNode