class com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode extends com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode
super_class: com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode
{
private final com.oracle.truffle.api.profiles.ConditionProfile inBoundsFastCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile inBoundsFastHoleCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile inBoundsCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile supportedCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.js.runtime.array.ScriptArray$ProfileHolder profile;
descriptor: Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
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/access/WriteElementNode;
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.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode);
descriptor: (Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
1: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.inBoundsFastCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
2: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.inBoundsFastHoleCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
3: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.inBoundsCondition: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.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.supportedCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
5: aload 0
invokestatic com.oracle.truffle.js.runtime.array.dyn.AbstractWritableArray.createSetSupportedProfile:()Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
6: getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 7
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lcom/oracle/truffle/js/runtime/array/dyn/HolesObjectArray;
if_acmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode com.oracle.truffle.js.runtime.array.ScriptArray com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/js/nodes/access/WriteElementNode$HolesObjectArrayWriteElementCacheNode;
0 8 1 arrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 8 2 arrayCacheNext Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;
MethodParameters:
Name Flags
arrayType
arrayCacheNext
protected boolean executeSetArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long, java.lang.Object, com.oracle.truffle.js.nodes.access.WriteElementNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLjava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: aload 2
checkcast com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray
astore 7
start local 7 1: aload 0
aload 1
aload 7
lload 3
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.holesArrayNeedsSlowSet:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/AbstractWritableArray;JLcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ifeq 3
2: iconst_0
ireturn
3: StackMap locals: com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.inBoundsFastCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 7
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.isInBoundsFast:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 10
4: getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 5
aload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.isHoleValue:(Ljava/lang/Object;)Z
ifeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.inBoundsFastHoleCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 7
aload 1
lload 3
l2i
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.isHoleFast:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 8
6: aload 7
aload 1
lload 3
l2i
aload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.setInBoundsFastHole:(Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/Object;)V
7: goto 9
8: StackMap locals:
StackMap stack:
aload 7
aload 1
lload 3
l2i
aload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.setInBoundsFastNonHole:(Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/Object;)V
9: StackMap locals:
StackMap stack:
iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.inBoundsCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 7
aload 1
lload 3
l2i
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.isInBounds:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 14
11: getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 12
aload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.isHoleValue:(Ljava/lang/Object;)Z
ifeq 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
aload 7
aload 1
lload 3
l2i
aload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.setInBounds:(Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/Object;Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;)V
13: iconst_1
ireturn
14: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.supportedCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 7
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.isSupported:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 18
15: getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 16
aload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.isHoleValue:(Ljava/lang/Object;)Z
ifeq 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
aload 7
aload 1
lload 3
l2i
aload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.setSupported:(Lcom/oracle/truffle/api/object/DynamicObject;ILjava/lang/Object;)V
17: iconst_1
ireturn
18: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 19
aload 7
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.isSparse:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifne 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
aload 0
aload 7
aload 1
lload 3
aload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesObjectArray.toSparse:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/SparseArray;
aload 1
lload 3
aload 5
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode.setArrayAndWrite:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ireturn
end local 7 end local 6 end local 5 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/WriteElementNode$HolesObjectArrayWriteElementCacheNode;
0 20 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 20 2 array Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 20 3 index J
0 20 5 value Ljava/lang/Object;
0 20 6 root Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
1 20 7 objectArray Lcom/oracle/truffle/js/runtime/array/dyn/HolesObjectArray;
MethodParameters:
Name Flags
target
array
index
value
root
}
SourceFile: "WriteElementNode.java"
NestHost: com.oracle.truffle.js.nodes.access.WriteElementNode
InnerClasses:
abstract ArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
private HolesObjectArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$HolesObjectArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
private abstract RecursiveCachedArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
public abstract ProfileHolder = com.oracle.truffle.js.runtime.array.ScriptArray$ProfileHolder of com.oracle.truffle.js.runtime.array.ScriptArray