public abstract class com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode extends com.oracle.truffle.js.nodes.array.JSArrayElementIndexNode
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode
super_class: com.oracle.truffle.js.nodes.array.JSArrayElementIndexNode
{
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/array/JSArrayNextElementIndexNode;
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.array.JSArrayNextElementIndexNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.oracle.truffle.js.nodes.array.JSArrayElementIndexNode.<init>:(Lcom/oracle/truffle/js/runtime/JSContext;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 2 1 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
context
public static com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode create(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tJSArrayNextElementIndexNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
context
public final long executeLong(java.lang.Object, long, long);
descriptor: (Ljava/lang/Object;JJ)J
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
aload 1
lload 2
lload 4
aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.isArray:(Ljava/lang/Object;)Z
invokevirtual com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.executeLong:(Ljava/lang/Object;JJZ)J
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 1 1 object Ljava/lang/Object;
0 1 2 currentIndex J
0 1 4 length J
MethodParameters:
Name Flags
object
currentIndex
length
public abstract long executeLong(java.lang.Object, long, long, boolean);
descriptor: (Ljava/lang/Object;JJZ)J
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
object
currentIndex
length
isArray
public long doWithoutHolesCached(com.oracle.truffle.api.object.DynamicObject, long, long, boolean, com.oracle.truffle.js.runtime.array.ScriptArray);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJZLcom/oracle/truffle/js/runtime/array/ScriptArray;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 0: getstatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.$assertionsDisabled:Z
ifne 2
aload 1
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.isSupportedArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 1
aload 7
aload 1
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.getArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
if_acmpeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 7
aload 1
lload 2
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.nextElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;J)J
lreturn
end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 3 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 currentIndex J
0 3 4 length J
0 3 6 isArray Z
0 3 7 cachedArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isArray", "!hasPrototypeElements(object)", "getArrayType(object) == cachedArrayType", "!cachedArrayType.hasHoles(object)"}, limit = "MAX_CACHED_ARRAY_TYPES")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "getArrayTypeIfArray(object, isArray)")
MethodParameters:
Name Flags
object
currentIndex
length
isArray
cachedArrayType
public long doWithoutHolesUncached(com.oracle.truffle.api.object.DynamicObject, long, long, boolean);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJZ)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 6 0: getstatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.isSupportedArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.getArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
aload 1
lload 2
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.nextElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;J)J
lreturn
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 2 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 2 2 currentIndex J
0 2 4 length J
0 2 6 isArray Z
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isArray", "!hasPrototypeElements(object)", "!hasHoles(object)"}, replaces = {"doWithoutHolesCached"})
MethodParameters:
Name Flags
object
currentIndex
length
isArray
public long nextWithHolesCached(com.oracle.truffle.api.object.DynamicObject, long, long, boolean, com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode, com.oracle.truffle.api.profiles.ConditionProfile);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJZLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=10, args_size=8
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 start local 8 start local 9 0: getstatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.$assertionsDisabled:Z
ifne 2
aload 1
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.isSupportedArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 1
aload 7
aload 1
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.getArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
if_acmpeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
lload 4
aload 7
aload 8
aload 9
invokevirtual com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.holesArrayImpl:(Lcom/oracle/truffle/api/object/DynamicObject;JJLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;)J
lreturn
end local 9 end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 3 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 currentIndex J
0 3 4 length J
0 3 6 isArray Z
0 3 7 cachedArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 3 8 nextElementIndexNode Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 3 9 isPlusOne Lcom/oracle/truffle/api/profiles/ConditionProfile;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isArray", "!hasPrototypeElements(object)", "getArrayType(object) == cachedArrayType", "cachedArrayType.hasHoles(object)"}, limit = "MAX_CACHED_ARRAY_TYPES")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "getArrayTypeIfArray(object, isArray)")
5:
com.oracle.truffle.api.dsl.Cached(value = "create(context)")
6:
com.oracle.truffle.api.dsl.Cached(value = "createBinaryProfile()")
MethodParameters:
Name Flags
object
currentIndex
length
isArray
cachedArrayType
nextElementIndexNode
isPlusOne
public long nextWithHolesUncached(com.oracle.truffle.api.object.DynamicObject, long, long, boolean, com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode, com.oracle.truffle.api.profiles.ConditionProfile, com.oracle.truffle.api.profiles.ValueProfile);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJZLcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;Lcom/oracle/truffle/api/profiles/ValueProfile;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=8
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 start local 8 start local 9 0: getstatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.isSupportedArray:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 9
aload 1
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.getArrayType:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
invokevirtual com.oracle.truffle.api.profiles.ValueProfile.profile:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.array.ScriptArray
astore 10
start local 10 2: aload 0
aload 1
lload 2
lload 4
aload 10
aload 7
aload 8
invokevirtual com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.holesArrayImpl:(Lcom/oracle/truffle/api/object/DynamicObject;JJLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;)J
lreturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 3 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 currentIndex J
0 3 4 length J
0 3 6 isArray Z
0 3 7 nextElementIndexNode Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 3 8 isPlusOne Lcom/oracle/truffle/api/profiles/ConditionProfile;
0 3 9 arrayTypeProfile Lcom/oracle/truffle/api/profiles/ValueProfile;
2 3 10 arrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isArray", "hasPrototypeElements(object) || hasHoles(object)"}, replaces = {"nextWithHolesCached"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "create(context)")
5:
com.oracle.truffle.api.dsl.Cached(value = "createBinaryProfile()")
6:
com.oracle.truffle.api.dsl.Cached(value = "createClassProfile()")
MethodParameters:
Name Flags
object
currentIndex
length
isArray
nextElementIndexNode
isPlusOne
arrayTypeProfile
private long holesArrayImpl(com.oracle.truffle.api.object.DynamicObject, long, long, com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode, com.oracle.truffle.api.profiles.ConditionProfile);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=16, args_size=7
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 start local 8 0: aload 6
aload 1
lload 2
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.nextElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;J)J
lstore 9
start local 9 1: lload 2
lconst_1
ladd
lstore 11
start local 11 2: aload 8
lload 9
lload 11
lcmp
ifne 3
iconst_1
goto 4
StackMap locals: com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode com.oracle.truffle.api.object.DynamicObject long long com.oracle.truffle.js.runtime.array.ScriptArray com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode com.oracle.truffle.api.profiles.ConditionProfile long long
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
3: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode com.oracle.truffle.api.object.DynamicObject long long com.oracle.truffle.js.runtime.array.ScriptArray com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode com.oracle.truffle.api.profiles.ConditionProfile long long
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
4: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 6
5: lload 9
lreturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
invokevirtual com.oracle.truffle.js.runtime.JSContext.getArrayPrototypeNoElementsAssumption:()Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 14
7: aload 1
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 13
start local 13 8: goto 13
9: StackMap locals: com.oracle.truffle.api.object.DynamicObject
StackMap stack:
aload 7
aload 13
lload 2
lload 4
invokevirtual com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.executeLong:(Ljava/lang/Object;JJ)J
lstore 14
start local 14 10: lload 11
lload 14
lcmp
ifgt 12
lload 14
lload 4
lcmp
ifge 12
11: lload 9
lload 14
invokestatic java.lang.Math.min:(JJ)J
lstore 9
12: StackMap locals: long
StackMap stack:
aload 13
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 13
end local 14 13: StackMap locals:
StackMap stack:
aload 13
getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 9
end local 13 14: StackMap locals:
StackMap stack:
lload 9
lreturn
end local 11 end local 9 end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 15 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 15 2 currentIndex J
0 15 4 length J
0 15 6 array Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 15 7 nextElementIndexNode Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 15 8 isPlusOne Lcom/oracle/truffle/api/profiles/ConditionProfile;
1 15 9 nextIndex J
2 15 11 plusOne J
8 14 13 prototype Lcom/oracle/truffle/api/object/DynamicObject;
10 13 14 candidate J
MethodParameters:
Name Flags
object
currentIndex
length
array
nextElementIndexNode
isPlusOne
public long nextObjectViaEnumeration(com.oracle.truffle.api.object.DynamicObject, long, long, boolean, com.oracle.truffle.js.nodes.access.JSHasPropertyNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJZLcom/oracle/truffle/js/nodes/access/JSHasPropertyNode;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 0: lload 2
lconst_1
ladd
lstore 8
start local 8 1: aload 7
aload 1
lload 8
invokevirtual com.oracle.truffle.js.nodes.access.JSHasPropertyNode.executeBoolean:(Ljava/lang/Object;J)Z
ifeq 3
2: lload 8
lreturn
3: StackMap locals: long
StackMap stack:
aload 1
lload 2
lload 4
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.nextObjectViaEnumerationIntl:(Lcom/oracle/truffle/api/object/DynamicObject;JJ)J
lreturn
end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 4 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 currentIndex J
0 4 4 length J
0 4 6 isArray Z
0 4 7 hasPropertyNode Lcom/oracle/truffle/js/nodes/access/JSHasPropertyNode;
1 4 8 currentIndexPlusOne J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isArray", "isSuitableForEnumBasedProcessingUsingOwnKeys(object, length)"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "create()")
MethodParameters:
Name Flags
object
currentIndex
length
isArray
hasPropertyNode
public long nextObjectViaFullEnumeration(com.oracle.truffle.api.object.DynamicObject, long, long, boolean, com.oracle.truffle.js.nodes.access.JSHasPropertyNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJZLcom/oracle/truffle/js/nodes/access/JSHasPropertyNode;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 0: lload 2
lconst_1
ladd
lstore 8
start local 8 1: aload 7
aload 1
lload 8
invokevirtual com.oracle.truffle.js.nodes.access.JSHasPropertyNode.executeBoolean:(Ljava/lang/Object;J)Z
ifeq 3
2: lload 8
lreturn
3: StackMap locals: long
StackMap stack:
aload 1
lload 2
lload 4
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.nextObjectViaFullEnumerationIntl:(Lcom/oracle/truffle/api/object/DynamicObject;JJ)J
lreturn
end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 4 1 object Lcom/oracle/truffle/api/object/DynamicObject;
0 4 2 currentIndex J
0 4 4 length J
0 4 6 isArray Z
0 4 7 hasPropertyNode Lcom/oracle/truffle/js/nodes/access/JSHasPropertyNode;
1 4 8 currentIndexPlusOne J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isArray", "!isSuitableForEnumBasedProcessingUsingOwnKeys(object, length)", "isSuitableForEnumBasedProcessing(object, length)"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "create()")
MethodParameters:
Name Flags
object
currentIndex
length
isArray
hasPropertyNode
public long nextObjectViaPolling(java.lang.Object, long, long, boolean, com.oracle.truffle.js.nodes.access.JSHasPropertyNode);
descriptor: (Ljava/lang/Object;JJZLcom/oracle/truffle/js/nodes/access/JSHasPropertyNode;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 0: lload 2
lconst_1
ladd
lstore 8
start local 8 1: goto 5
2: StackMap locals: long
StackMap stack:
lload 8
lconst_1
ladd
lstore 8
3: lload 8
lload 4
lcmp
iflt 5
4: getstatic com.oracle.truffle.js.runtime.JSRuntime.MAX_SAFE_INTEGER_LONG:J
lreturn
5: StackMap locals:
StackMap stack:
aload 7
aload 1
lload 8
invokevirtual com.oracle.truffle.js.nodes.access.JSHasPropertyNode.executeBoolean:(Ljava/lang/Object;J)Z
ifeq 2
6: lload 8
lreturn
end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 7 1 object Ljava/lang/Object;
0 7 2 currentIndex J
0 7 4 length J
0 7 6 isArray Z
0 7 7 hasPropertyNode Lcom/oracle/truffle/js/nodes/access/JSHasPropertyNode;
1 7 8 index J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isArray", "!isSuitableForEnumBasedProcessing(object, length)"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "create()")
MethodParameters:
Name Flags
object
currentIndex
length
isArray
hasPropertyNode
private static long nextObjectViaEnumerationIntl(com.oracle.truffle.api.object.DynamicObject, long, long);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJ)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 3 0: lload 3
lconst_0
lcmp
ifne 1
lconst_1
goto 2
StackMap locals:
StackMap stack:
1: lload 3
StackMap locals:
StackMap stack: long
2: lstore 5
start local 5 3: aload 0
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.ownPropertyKeys:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 11
StackMap locals: com.oracle.truffle.api.object.DynamicObject long long long top java.util.Iterator
StackMap stack:
4: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 7
start local 7 5: aload 7
ifnonnull 7
6: goto 11
7: StackMap locals: com.oracle.truffle.api.object.DynamicObject long long long java.lang.Object java.util.Iterator
StackMap stack:
aload 7
instanceof java.lang.String
ifeq 11
8: aload 7
checkcast java.lang.String
invokestatic com.oracle.truffle.js.runtime.JSRuntime.propertyNameToIntegerIndex:(Ljava/lang/String;)J
lstore 9
start local 9 9: lload 9
lload 1
lcmp
ifle 11
lload 9
lload 5
lcmp
ifge 11
10: lload 9
lstore 5
end local 9 end local 7 11: StackMap locals: com.oracle.truffle.api.object.DynamicObject long long long top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
12: lload 5
lreturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 object Lcom/oracle/truffle/api/object/DynamicObject;
0 13 1 currentIndex J
0 13 3 length J
3 13 5 result J
5 11 7 key Ljava/lang/Object;
9 11 9 candidate J
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
object
currentIndex
length
private static long nextObjectViaFullEnumerationIntl(com.oracle.truffle.api.object.DynamicObject, long, long);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;JJ)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 3 0: ldc 9223372036854775807
lstore 5
start local 5 1: aload 0
astore 7
start local 7 2: StackMap locals: long com.oracle.truffle.api.object.DynamicObject
StackMap stack:
lload 5
aload 7
lload 1
lload 3
invokestatic com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.nextObjectViaEnumerationIntl:(Lcom/oracle/truffle/api/object/DynamicObject;JJ)J
invokestatic java.lang.Math.min:(JJ)J
lstore 5
3: aload 7
invokestatic com.oracle.truffle.js.runtime.objects.JSObject.getPrototype:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 7
4: aload 7
getstatic com.oracle.truffle.js.runtime.objects.Null.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
if_acmpne 2
5: lload 5
lreturn
end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 object Lcom/oracle/truffle/api/object/DynamicObject;
0 6 1 currentIndex J
0 6 3 length J
1 6 5 result J
2 6 7 chainObject Lcom/oracle/truffle/api/object/DynamicObject;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
object
currentIndex
length
}
SourceFile: "JSArrayNextElementIndexNode.java"
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives