abstract class com.oracle.truffle.polyglot.HostObject$ReadArrayElement
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.polyglot.HostObject$ReadArrayElement
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/HostObject$ReadArrayElement;
protected static java.lang.Object doArray(com.oracle.truffle.polyglot.HostObject, long, com.oracle.truffle.polyglot.HostObject$ArrayGet, com.oracle.truffle.polyglot.HostObject$IsArrayNode, com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Lcom/oracle/truffle/polyglot/HostObject;JLcom/oracle/truffle/polyglot/HostObject$ArrayGet;Lcom/oracle/truffle/polyglot/HostObject$IsArrayNode;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=9, args_size=6
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 0: lload 1
lconst_0
lcmp
iflt 1
ldc 2147483647
lload 1
lcmp
ifge 3
1: StackMap locals:
StackMap stack:
aload 6
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
2: lload 1
invokestatic com.oracle.truffle.api.interop.InvalidArrayIndexException.create:(J)Lcom/oracle/truffle/api/interop/InvalidArrayIndexException;
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.HostObject.obj:Ljava/lang/Object;
astore 7
start local 7 4: aconst_null
astore 8
start local 8 5: aload 3
aload 7
lload 1
l2i
invokevirtual com.oracle.truffle.polyglot.HostObject$ArrayGet.execute:(Ljava/lang/Object;I)Ljava/lang/Object;
astore 8
6: goto 10
StackMap locals: com.oracle.truffle.polyglot.HostObject long com.oracle.truffle.polyglot.HostObject$ArrayGet com.oracle.truffle.polyglot.HostObject$IsArrayNode com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode com.oracle.truffle.api.profiles.BranchProfile java.lang.Object java.lang.Object
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
7: pop
8: aload 6
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
9: lload 1
invokestatic com.oracle.truffle.api.interop.InvalidArrayIndexException.create:(J)Lcom/oracle/truffle/api/interop/InvalidArrayIndexException;
athrow
10: StackMap locals:
StackMap stack:
aload 5
aload 0
getfield com.oracle.truffle.polyglot.HostObject.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 8
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode.execute:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 receiver Lcom/oracle/truffle/polyglot/HostObject;
0 11 1 index J
0 11 3 arrayGet Lcom/oracle/truffle/polyglot/HostObject$ArrayGet;
0 11 4 isArray Lcom/oracle/truffle/polyglot/HostObject$IsArrayNode;
0 11 5 toGuest Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
0 11 6 error Lcom/oracle/truffle/api/profiles/BranchProfile;
4 11 7 obj Ljava/lang/Object;
5 11 8 val Ljava/lang/Object;
Exception table:
from to target type
5 6 7 Class java.lang.ArrayIndexOutOfBoundsException
Exceptions:
throws com.oracle.truffle.api.interop.InvalidArrayIndexException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isArray.execute(receiver)"}, limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.Cached()
3:
com.oracle.truffle.api.dsl.Cached$Shared(value = "isArray")
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached$Shared(value = "toGuest")
com.oracle.truffle.api.dsl.Cached()
5:
com.oracle.truffle.api.dsl.Cached$Shared(value = "error")
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
receiver
index
arrayGet
isArray
toGuest
error
protected static java.lang.Object doList(com.oracle.truffle.polyglot.HostObject, long, com.oracle.truffle.polyglot.HostObject$IsListNode, com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Lcom/oracle/truffle/polyglot/HostObject;JLcom/oracle/truffle/polyglot/HostObject$IsListNode;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: lload 1
lconst_0
lcmp
iflt 1
ldc 2147483647
lload 1
lcmp
ifge 3
1: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
2: lload 1
invokestatic com.oracle.truffle.api.interop.InvalidArrayIndexException.create:(J)Lcom/oracle/truffle/api/interop/InvalidArrayIndexException;
athrow
3: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield com.oracle.truffle.polyglot.HostObject.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
aload 0
getfield com.oracle.truffle.polyglot.HostObject.obj:Ljava/lang/Object;
checkcast java.util.List
lload 1
l2i
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode.execute:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)Ljava/lang/Object;
4: areturn
5: StackMap locals:
StackMap stack: java.lang.IndexOutOfBoundsException
pop
6: aload 5
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
7: lload 1
invokestatic com.oracle.truffle.api.interop.InvalidArrayIndexException.create:(J)Lcom/oracle/truffle/api/interop/InvalidArrayIndexException;
athrow
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 receiver Lcom/oracle/truffle/polyglot/HostObject;
0 8 1 index J
0 8 3 isList Lcom/oracle/truffle/polyglot/HostObject$IsListNode;
0 8 4 toGuest Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
0 8 5 error Lcom/oracle/truffle/api/profiles/BranchProfile;
Exception table:
from to target type
0 4 5 Class java.lang.IndexOutOfBoundsException
Exceptions:
throws com.oracle.truffle.api.interop.InvalidArrayIndexException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
com.oracle.truffle.api.dsl.Specialization(guards = {"isList.execute(receiver)"}, limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.Cached$Shared(value = "isList")
com.oracle.truffle.api.dsl.Cached()
3:
com.oracle.truffle.api.dsl.Cached$Shared(value = "toGuest")
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached$Shared(value = "error")
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
receiver
index
isList
toGuest
error
protected static java.lang.Object doNotArrayOrList(com.oracle.truffle.polyglot.HostObject, long, com.oracle.truffle.polyglot.HostObject$IsArrayNode, com.oracle.truffle.polyglot.HostObject$IsListNode);
descriptor: (Lcom/oracle/truffle/polyglot/HostObject;JLcom/oracle/truffle/polyglot/HostObject$IsArrayNode;Lcom/oracle/truffle/polyglot/HostObject$IsListNode;)Ljava/lang/Object;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=5, args_size=4
start local 0 start local 1 start local 3 start local 4 0: invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
athrow
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 receiver Lcom/oracle/truffle/polyglot/HostObject;
0 1 1 index J
0 1 3 isArray Lcom/oracle/truffle/polyglot/HostObject$IsArrayNode;
0 1 4 isList Lcom/oracle/truffle/polyglot/HostObject$IsListNode;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isArray.execute(receiver)", "!isList.execute(receiver)"}, limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
com.oracle.truffle.api.dsl.Cached$Shared(value = "isArray")
com.oracle.truffle.api.dsl.Cached()
3:
com.oracle.truffle.api.dsl.Cached$Shared(value = "isList")
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
receiver
index
isArray
isList
}
SourceFile: "HostObject.java"
NestHost: com.oracle.truffle.polyglot.HostObject
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract Shared = com.oracle.truffle.api.dsl.Cached$Shared of com.oracle.truffle.api.dsl.Cached
abstract ArrayGet = com.oracle.truffle.polyglot.HostObject$ArrayGet of com.oracle.truffle.polyglot.HostObject
abstract IsArrayNode = com.oracle.truffle.polyglot.HostObject$IsArrayNode of com.oracle.truffle.polyglot.HostObject
abstract IsListNode = com.oracle.truffle.polyglot.HostObject$IsListNode of com.oracle.truffle.polyglot.HostObject
abstract ReadArrayElement = com.oracle.truffle.polyglot.HostObject$ReadArrayElement of com.oracle.truffle.polyglot.HostObject
abstract ToGuestValueNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()