class com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode 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$HolesDoubleArrayWriteElementCacheNode
super_class: com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode
{
private final com.oracle.truffle.api.profiles.BranchProfile doubleValueBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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 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$HolesDoubleArrayWriteElementCacheNode.$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$HolesDoubleArrayWriteElementCacheNode.doubleValueBranch: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$HolesDoubleArrayWriteElementCacheNode.intValueBranch: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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode;
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=8, 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$HolesDoubleArrayWriteElementCacheNode.cast:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
checkcast com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray
astore 7
start local 7 1: aload 5
instanceof java.lang.Double
ifeq 5
2: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.doubleValueBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
3: aload 5
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dstore 8
start local 8 4: goto 11
end local 8 StackMap locals: com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray
StackMap stack:
5: aload 5
instanceof java.lang.Integer
ifeq 9
6: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.intValueBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
7: aload 5
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2d
dstore 8
start local 8 8: goto 11
end local 8 9: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.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.HolesDoubleArray.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$HolesDoubleArrayWriteElementCacheNode.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
start local 8 11: StackMap locals: double
StackMap stack:
aload 0
aload 1
aload 7
lload 3
dload 8
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.executeWithDoubleValueInner:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/HolesDoubleArray;JDLcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ireturn
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 12 0 this Lcom/oracle/truffle/js/nodes/access/WriteElementNode$HolesDoubleArrayWriteElementCacheNode;
0 12 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 12 2 array Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 12 3 index J
0 12 5 value Ljava/lang/Object;
0 12 6 root Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
1 12 7 holesDoubleArray Lcom/oracle/truffle/js/runtime/array/dyn/HolesDoubleArray;
4 5 8 doubleValue D
8 9 8 doubleValue D
11 12 8 doubleValue D
MethodParameters:
Name Flags
target
array
index
value
root
private boolean executeWithDoubleValueInner(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray, long, double, com.oracle.truffle.js.nodes.access.WriteElementNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/HolesDoubleArray;JDLcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 7 0: aload 0
aload 1
aload 2
lload 3
aload 7
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.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 8
start local 8 3: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.containsHolesProfile:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 0
aload 1
aload 2
lload 3
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.containsHoles:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/HolesDoubleArray;J)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
istore 9
start local 9 4: iload 9
ifeq 12
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.inBoundsFastCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.isInBoundsFast:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifeq 5
dload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.isHoleValue:(D)Z
ifne 5
iconst_1
goto 6
StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray long double 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$HolesDoubleArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray long double 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$HolesDoubleArrayWriteElementCacheNode.inBoundsFastHoleCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
iload 8
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.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 8
dload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.setInBoundsFastHole:(Lcom/oracle/truffle/api/object/DynamicObject;ID)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 2
aload 1
iload 8
dload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.setInBoundsFastNonHole:(Lcom/oracle/truffle/api/object/DynamicObject;ID)V
11: StackMap locals:
StackMap stack:
iconst_1
ireturn
12: StackMap locals:
StackMap stack:
iload 9
ifeq 17
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.inBoundsCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
iload 8
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.isInBounds:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
ifeq 13
dload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.isHoleValue:(D)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$HolesDoubleArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray long double 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 8
dload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.setInBounds:(Lcom/oracle/truffle/api/object/DynamicObject;IDLcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;)V
16: iconst_1
ireturn
17: StackMap locals:
StackMap stack:
iload 9
ifeq 22
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.supportedContainsHolesCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.isSupported:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifeq 18
dload 5
invokestatic com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.isHoleValue:(D)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$HolesDoubleArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray long double 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 8
dload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.setSupported:(Lcom/oracle/truffle/api/object/DynamicObject;IDLcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;)V
21: iconst_1
ireturn
22: StackMap locals:
StackMap stack:
iload 9
ifne 25
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.supportedNotContainsHolesCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.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
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.toNonHoles:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/dyn/AbstractDoubleArray;
astore 10
start local 10 24: goto 27
end local 10 25: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 26
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.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
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray.toSparse:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/SparseArray;
astore 10
start local 10 27: StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
StackMap stack:
aload 0
aload 10
aload 1
lload 3
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aload 7
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode.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 10 end local 9 end local 8 end local 7 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$HolesDoubleArrayWriteElementCacheNode;
0 28 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 28 2 holesDoubleArray Lcom/oracle/truffle/js/runtime/array/dyn/HolesDoubleArray;
0 28 3 index J
0 28 5 doubleValue D
0 28 7 root Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
3 28 8 iIndex I
4 28 9 containsHoles Z
24 25 10 toArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
27 28 10 toArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
MethodParameters:
Name Flags
target
holesDoubleArray
index
doubleValue
root
private boolean containsHoles(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray, long);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/HolesDoubleArray;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$HolesDoubleArrayWriteElementCacheNode.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$HolesDoubleArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray 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.HolesDoubleArray.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$HolesDoubleArrayWriteElementCacheNode;
0 4 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 holesDoubleArray Lcom/oracle/truffle/js/runtime/array/dyn/HolesDoubleArray;
0 4 3 index J
MethodParameters:
Name Flags
target
holesDoubleArray
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 HolesDoubleArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$HolesDoubleArrayWriteElementCacheNode 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