class com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode 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$HolesIntArrayWriteElementCacheNode
super_class: com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode
{
private final com.oracle.truffle.api.profiles.BranchProfile intValueBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile toDoubleBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile toObjectBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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 supportedContainsHolesCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile supportedNotContainsHolesCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile hasExplicitHolesProfile;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile containsHolesProfile;
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$HolesIntArrayWriteElementCacheNode.$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.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.intValueBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
2: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.toDoubleBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
3: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.toObjectBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
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$HolesIntArrayWriteElementCacheNode.inBoundsFastCondition: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.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.inBoundsFastHoleCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
6: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.inBoundsCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
7: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.supportedContainsHolesCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
8: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.supportedNotContainsHolesCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
9: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.hasExplicitHolesProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
10: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.containsHolesProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
11: 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$HolesIntArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/js/nodes/access/WriteElementNode$HolesIntArrayWriteElementCacheNode;
0 13 1 arrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 13 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=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: aload 0
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.cast:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
checkcast com.oracle.truffle.js.runtime.array.dyn.HolesIntArray
astore 7
start local 7 1: aload 5
instanceof java.lang.Integer
ifeq 5
2: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.intValueBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
3: aload 5
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 8
start local 8 4: aload 0
aload 1
aload 7
lload 3
iload 8
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.executeWithIntValueInner:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/HolesIntArray;JILcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ireturn
end local 8 5: StackMap locals: com.oracle.truffle.js.runtime.array.dyn.HolesIntArray
StackMap stack:
aload 5
instanceof java.lang.Double
ifeq 9
6: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.toDoubleBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
7: aload 5
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dstore 8
start local 8 8: aload 0
aload 7
aload 1
lload 3
dload 8
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.toDouble:(Lcom/oracle/truffle/api/object/DynamicObject;JD)Lcom/oracle/truffle/js/runtime/array/dyn/AbstractWritableArray;
aload 1
lload 3
dload 8
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.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 8 9: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.toObjectBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
10: aload 0
aload 7
aload 1
lload 3
aload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.toObject:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/dyn/AbstractWritableArray;
aload 1
lload 3
aload 5
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.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 11 0 this Lcom/oracle/truffle/js/nodes/access/WriteElementNode$HolesIntArrayWriteElementCacheNode;
0 11 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 11 2 array Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 11 3 index J
0 11 5 value Ljava/lang/Object;
0 11 6 root Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
1 11 7 holesIntArray Lcom/oracle/truffle/js/runtime/array/dyn/HolesIntArray;
4 5 8 intValue I
8 9 8 doubleValue D
MethodParameters:
Name Flags
target
array
index
value
root
private boolean executeWithIntValueInner(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.dyn.HolesIntArray, long, int, com.oracle.truffle.js.nodes.access.WriteElementNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/HolesIntArray;JILcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: aload 0
aload 1
aload 2
lload 3
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.holesArrayNeedsSlowSet:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/AbstractWritableArray;JLcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
lload 3
l2i
istore 7
start local 7 3: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.containsHolesProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
aload 1
aload 2
lload 3
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.containsHoles:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/HolesIntArray;J)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 8
start local 8 4: iload 8
ifeq 12
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.inBoundsFastCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isInBoundsFast:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifeq 5
iload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isHoleValue:(I)Z
ifne 5
iconst_1
goto 6
StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesIntArray long int com.oracle.truffle.js.nodes.access.WriteElementNode int int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
5: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesIntArray long int com.oracle.truffle.js.nodes.access.WriteElementNode int int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
6: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 12
7: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.inBoundsFastHoleCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
iload 7
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isHoleFast:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 10
8: aload 2
aload 1
iload 7
iload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.setInBoundsFastHole:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 2
aload 1
iload 7
iload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.setInBoundsFastNonHole:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
11: StackMap locals:
StackMap stack:
iconst_1
ireturn
12: StackMap locals:
StackMap stack:
iload 8
ifeq 17
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.inBoundsCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
iload 7
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isInBounds:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
ifeq 13
iload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isHoleValue:(I)Z
ifne 13
iconst_1
goto 14
StackMap locals:
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
13: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesIntArray long int com.oracle.truffle.js.nodes.access.WriteElementNode int int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
14: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 17
15: aload 2
aload 1
iload 7
iload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.setInBounds:(Lcom/oracle/truffle/api/object/DynamicObject;IILcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;)V
16: iconst_1
ireturn
17: StackMap locals:
StackMap stack:
iload 8
ifeq 22
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.supportedContainsHolesCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isSupported:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifeq 18
iload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isHoleValue:(I)Z
ifne 18
iconst_1
goto 19
StackMap locals:
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
18: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesIntArray long int com.oracle.truffle.js.nodes.access.WriteElementNode int int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
19: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 22
20: aload 2
aload 1
iload 7
iload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.setSupported:(Lcom/oracle/truffle/api/object/DynamicObject;IILcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;)V
21: iconst_1
ireturn
22: StackMap locals:
StackMap stack:
iload 8
ifne 25
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.supportedNotContainsHolesCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isSupported:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 25
23: aload 2
aload 1
lload 3
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.toNonHoles:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/dyn/AbstractIntArray;
astore 9
start local 9 24: goto 27
end local 9 25: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 26
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isSparse:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifne 26
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
26: StackMap locals:
StackMap stack:
aload 2
aload 1
lload 3
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.toSparse:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/SparseArray;
astore 9
start local 9 27: StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
StackMap stack:
aload 0
aload 9
aload 1
lload 3
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode.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 9 end local 8 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 28 0 this Lcom/oracle/truffle/js/nodes/access/WriteElementNode$HolesIntArrayWriteElementCacheNode;
0 28 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 28 2 holesIntArray Lcom/oracle/truffle/js/runtime/array/dyn/HolesIntArray;
0 28 3 index J
0 28 5 intValue I
0 28 6 root Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
3 28 7 iIndex I
4 28 8 containsHoles Z
24 25 9 toArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
27 28 9 toArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
MethodParameters:
Name Flags
target
holesIntArray
index
intValue
root
private boolean containsHoles(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.dyn.HolesIntArray, long);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/HolesIntArray;J)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, 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.WriteElementNode$HolesIntArrayWriteElementCacheNode.hasExplicitHolesProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 1
invokestatic com.oracle.truffle.js.runtime.builtins.JSArray.arrayGetHoleCount:(Lcom/oracle/truffle/api/object/DynamicObject;)I
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
1: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesIntArray long
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
2: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifne 3
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesIntArray.isInBoundsFast:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifeq 3
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/access/WriteElementNode$HolesIntArrayWriteElementCacheNode;
0 4 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 holesIntArray Lcom/oracle/truffle/js/runtime/array/dyn/HolesIntArray;
0 4 3 index J
MethodParameters:
Name Flags
target
holesIntArray
index
}
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 HolesIntArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$HolesIntArrayWriteElementCacheNode 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