public abstract class com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode
super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
protected final com.oracle.truffle.js.runtime.JSContext context;
descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
flags: (0x0014) ACC_PROTECTED, 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/array/JSArrayToDenseObjectArrayNode;
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.JSArrayToDenseObjectArrayNode.$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
invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
1: aload 0
aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.js.runtime.JSContext
putfield com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.context:Lcom/oracle/truffle/js/runtime/JSContext;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
0 3 1 context Lcom/oracle/truffle/js/runtime/JSContext;
MethodParameters:
Name Flags
context
public static com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode create(com.oracle.truffle.js.runtime.JSContext);
descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
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\tJSArrayToDenseObjectArrayNodeGen 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 abstract java.lang.Object[] executeObjectArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;J)[Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
array
arrayType
length
protected java.lang.Object[] fromDenseArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long, com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.access.ReadElementNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;)[Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: getstatic com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.$assertionsDisabled:Z
ifne 1
lload 3
invokestatic com.oracle.truffle.js.runtime.JSRuntime.longIsRepresentableAsInt:(J)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
lload 3
l2i
istore 7
start local 7 2: iload 7
anewarray java.lang.Object
astore 8
start local 8 3: iconst_0
istore 9
start local 9 4: goto 8
5: StackMap locals: int java.lang.Object[] int
StackMap stack:
aload 6
aload 1
iload 9
invokevirtual com.oracle.truffle.js.nodes.access.ReadElementNode.executeWithTargetAndIndex:(Ljava/lang/Object;I)Ljava/lang/Object;
astore 10
start local 10 6: aload 8
iload 9
aload 10
aastore
end local 10 7: iinc 9 1
StackMap locals:
StackMap stack:
8: iload 9
iload 7
if_icmplt 5
end local 9 9: aload 8
areturn
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 10 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
0 10 1 array Lcom/oracle/truffle/api/object/DynamicObject;
0 10 2 arrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 10 3 length J
0 10 5 cachedArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 10 6 readNode Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
2 10 7 iLen I
3 10 8 arr [Ljava/lang/Object;
4 9 9 index I
6 7 10 value Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"cachedArrayType.isInstance(arrayType)", "!cachedArrayType.isHolesType()", "!cachedArrayType.hasHoles(array)"}, limit = "5")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "arrayType")
4:
com.oracle.truffle.api.dsl.Cached(value = "create(context)")
MethodParameters:
Name Flags
array
arrayType
length
cachedArrayType
readNode
protected java.lang.Object[] fromSparseArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long, com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)[Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=11, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 start local 7 0: aload 5
aload 1
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.firstElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;)J
lstore 8
start local 8 1: new com.oracle.truffle.js.runtime.util.SimpleArrayList
dup
invokespecial com.oracle.truffle.js.runtime.util.SimpleArrayList.<init>:()V
astore 10
start local 10 2: goto 6
3: StackMap locals: long com.oracle.truffle.js.runtime.util.SimpleArrayList
StackMap stack:
getstatic com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.$assertionsDisabled:Z
ifne 4
aload 5
aload 1
lload 8
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 10
aload 5
aload 1
lload 8
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.getElement:(Lcom/oracle/truffle/api/object/DynamicObject;J)Ljava/lang/Object;
aload 7
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.add:(Ljava/lang/Object;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
5: aload 6
aload 1
lload 8
lload 3
invokevirtual com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode.executeLong:(Ljava/lang/Object;JJ)J
lstore 8
6: StackMap locals:
StackMap stack:
lload 8
aload 5
aload 1
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.lastElementIndex:(Lcom/oracle/truffle/api/object/DynamicObject;)J
lcmp
ifle 3
7: aload 10
aload 10
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.size:()I
anewarray java.lang.Object
invokevirtual com.oracle.truffle.js.runtime.util.SimpleArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
areturn
end local 10 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 8 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
0 8 1 array Lcom/oracle/truffle/api/object/DynamicObject;
0 8 2 arrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 8 3 length J
0 8 5 cachedArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 8 6 nextElementIndexNode Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 8 7 growProfile Lcom/oracle/truffle/api/profiles/BranchProfile;
1 8 8 pos J
2 8 10 list Lcom/oracle/truffle/js/runtime/util/SimpleArrayList<Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"cachedArrayType.isInstance(arrayType)", "cachedArrayType.isHolesType() || cachedArrayType.hasHoles(array)"}, limit = "5")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "arrayType")
4:
com.oracle.truffle.api.dsl.Cached(value = "create(context)")
5:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
array
arrayType
length
cachedArrayType
nextElementIndexNode
growProfile
protected java.lang.Object[] doUncached(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long, com.oracle.truffle.js.nodes.array.JSArrayNextElementIndexNode, com.oracle.truffle.js.nodes.access.ReadElementNode, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)[Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 start local 7 0: aload 2
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.isHolesType:()Z
ifne 1
aload 2
aload 1
invokevirtual com.oracle.truffle.js.runtime.array.ScriptArray.hasHoles:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ifeq 2
1: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
lload 3
aload 2
aload 5
aload 7
invokevirtual com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.fromSparseArray:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)[Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
lload 3
aload 2
aload 6
invokevirtual com.oracle.truffle.js.nodes.array.JSArrayToDenseObjectArrayNode.fromDenseArray:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/ReadElementNode;)[Ljava/lang/Object;
areturn
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 3 0 this Lcom/oracle/truffle/js/nodes/array/JSArrayToDenseObjectArrayNode;
0 3 1 array Lcom/oracle/truffle/api/object/DynamicObject;
0 3 2 arrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 3 3 length J
0 3 5 nextElementIndexNode Lcom/oracle/truffle/js/nodes/array/JSArrayNextElementIndexNode;
0 3 6 readNode Lcom/oracle/truffle/js/nodes/access/ReadElementNode;
0 3 7 growProfile Lcom/oracle/truffle/api/profiles/BranchProfile;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"fromDenseArray", "fromSparseArray"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "create(context)")
4:
com.oracle.truffle.api.dsl.Cached(value = "create(context)")
5:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
array
arrayType
length
nextElementIndexNode
readNode
growProfile
}
SourceFile: "JSArrayToDenseObjectArrayNode.java"