class com.oracle.truffle.polyglot.HostObject$WriteArrayElement
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.polyglot.HostObject$WriteArrayElement
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$WriteArrayElement;
static void doArray(com.oracle.truffle.polyglot.HostObject, long, java.lang.Object, com.oracle.truffle.polyglot.ToHostNode, com.oracle.truffle.polyglot.HostObject$IsArrayNode, com.oracle.truffle.polyglot.HostObject$ArraySet, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Lcom/oracle/truffle/polyglot/HostObject;JLjava/lang/Object;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/polyglot/HostObject$IsArrayNode;Lcom/oracle/truffle/polyglot/HostObject$ArraySet;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=11, args_size=7
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 start local 7 0: lload 1
lconst_0
lcmp
iflt 1
ldc 2147483647
lload 1
lcmp
ifge 3
1: StackMap locals:
StackMap stack:
aload 7
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 8
start local 8 4: aload 4
aload 3
aload 8
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
aconst_null
aload 0
getfield com.oracle.truffle.polyglot.HostObject.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iconst_1
invokevirtual com.oracle.truffle.polyglot.ToHostNode.execute:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Ljava/lang/Object;
astore 9
start local 9 5: goto 9
end local 9 StackMap locals: com.oracle.truffle.polyglot.HostObject long java.lang.Object com.oracle.truffle.polyglot.ToHostNode com.oracle.truffle.polyglot.HostObject$IsArrayNode com.oracle.truffle.polyglot.HostObject$ArraySet com.oracle.truffle.api.profiles.BranchProfile java.lang.Object
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
6: astore 10
start local 10 7: aload 7
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
8: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
aload 10
invokestatic com.oracle.truffle.polyglot.HostObject$WriteArrayElement.getMessage:(Lcom/oracle/truffle/polyglot/PolyglotEngineException;)Ljava/lang/String;
invokestatic com.oracle.truffle.api.interop.UnsupportedTypeException.create:([Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 10 start local 9 9: StackMap locals: java.lang.Object
StackMap stack:
aload 6
aload 8
lload 1
l2i
aload 9
invokevirtual com.oracle.truffle.polyglot.HostObject$ArraySet.execute:(Ljava/lang/Object;ILjava/lang/Object;)V
10: goto 14
StackMap locals:
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
11: pop
12: aload 7
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
13: lload 1
invokestatic com.oracle.truffle.api.interop.InvalidArrayIndexException.create:(J)Lcom/oracle/truffle/api/interop/InvalidArrayIndexException;
athrow
14: StackMap locals:
StackMap stack:
return
end local 9 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 15 0 receiver Lcom/oracle/truffle/polyglot/HostObject;
0 15 1 index J
0 15 3 value Ljava/lang/Object;
0 15 4 toHostNode Lcom/oracle/truffle/polyglot/ToHostNode;
0 15 5 isArray Lcom/oracle/truffle/polyglot/HostObject$IsArrayNode;
0 15 6 arraySet Lcom/oracle/truffle/polyglot/HostObject$ArraySet;
0 15 7 error Lcom/oracle/truffle/api/profiles/BranchProfile;
4 15 8 obj Ljava/lang/Object;
5 6 9 javaValue Ljava/lang/Object;
9 15 9 javaValue Ljava/lang/Object;
7 9 10 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
Exception table:
from to target type
4 5 6 Class com.oracle.truffle.polyglot.PolyglotEngineException
9 10 11 Class java.lang.ArrayIndexOutOfBoundsException
Exceptions:
throws com.oracle.truffle.api.interop.InvalidArrayIndexException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isArray.execute(receiver)"}, limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached$Shared(value = "toHost")
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached$Shared(value = "isArray")
com.oracle.truffle.api.dsl.Cached()
5:
com.oracle.truffle.api.dsl.Cached()
6:
com.oracle.truffle.api.dsl.Cached$Shared(value = "error")
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
receiver
index
value
toHostNode
isArray
arraySet
error
private static java.lang.String getMessage(com.oracle.truffle.polyglot.PolyglotEngineException);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineException;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
e
static void doList(com.oracle.truffle.polyglot.HostObject, long, java.lang.Object, com.oracle.truffle.polyglot.HostObject$IsListNode, com.oracle.truffle.polyglot.ToHostNode, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Lcom/oracle/truffle/polyglot/HostObject;JLjava/lang/Object;Lcom/oracle/truffle/polyglot/HostObject$IsListNode;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, 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 5
aload 3
ldc Ljava/lang/Object;
aconst_null
aload 0
getfield com.oracle.truffle.polyglot.HostObject.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iconst_1
invokevirtual com.oracle.truffle.polyglot.ToHostNode.execute:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Ljava/lang/Object;
astore 7
start local 7 4: goto 8
end local 7 StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
5: astore 8
start local 8 6: aload 6
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
7: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
aload 8
invokestatic com.oracle.truffle.polyglot.HostObject$WriteArrayElement.getMessage:(Lcom/oracle/truffle/polyglot/PolyglotEngineException;)Ljava/lang/String;
invokestatic com.oracle.truffle.api.interop.UnsupportedTypeException.create:([Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 8 start local 7 8: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.polyglot.HostObject.obj:Ljava/lang/Object;
checkcast java.util.List
astore 8
start local 8 9: aload 8
lload 1
aload 7
invokestatic com.oracle.truffle.polyglot.HostObject$WriteArrayElement.setList:(Ljava/util/List;JLjava/lang/Object;)V
end local 8 10: goto 14
StackMap locals:
StackMap stack: java.lang.IndexOutOfBoundsException
11: pop
12: aload 6
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
13: lload 1
invokestatic com.oracle.truffle.api.interop.InvalidArrayIndexException.create:(J)Lcom/oracle/truffle/api/interop/InvalidArrayIndexException;
athrow
14: StackMap locals:
StackMap stack:
return
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 15 0 receiver Lcom/oracle/truffle/polyglot/HostObject;
0 15 1 index J
0 15 3 value Ljava/lang/Object;
0 15 4 isList Lcom/oracle/truffle/polyglot/HostObject$IsListNode;
0 15 5 toHostNode Lcom/oracle/truffle/polyglot/ToHostNode;
0 15 6 error Lcom/oracle/truffle/api/profiles/BranchProfile;
4 5 7 javaValue Ljava/lang/Object;
8 15 7 javaValue Ljava/lang/Object;
6 8 8 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
9 10 8 list Ljava/util/List<Ljava/lang/Object;>;
Exception table:
from to target type
3 4 5 Class com.oracle.truffle.polyglot.PolyglotEngineException
8 10 11 Class java.lang.IndexOutOfBoundsException
Exceptions:
throws com.oracle.truffle.api.interop.InvalidArrayIndexException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"isList.execute(receiver)"}, limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached$Shared(value = "isList")
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached$Shared(value = "toHost")
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
value
isList
toHostNode
error
private static void setList(java.util.List<java.lang.Object>, long, );
descriptor: (Ljava/util/List;JLjava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: lload 1
aload 0
invokeinterface java.util.List.size:()I
i2l
lcmp
ifne 3
1: aload 0
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
lload 1
l2i
aload 3
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 list Ljava/util/List<Ljava/lang/Object;>;
0 5 1 index J
0 5 3 hostValue Ljava/lang/Object;
Signature: (Ljava/util/List<Ljava/lang/Object;>;JLjava/lang/Object;)V
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
list
index
hostValue final
static void doNotArrayOrList(com.oracle.truffle.polyglot.HostObject, long, java.lang.Object, com.oracle.truffle.polyglot.HostObject$IsListNode, com.oracle.truffle.polyglot.HostObject$IsArrayNode);
descriptor: (Lcom/oracle/truffle/polyglot/HostObject;JLjava/lang/Object;Lcom/oracle/truffle/polyglot/HostObject$IsListNode;Lcom/oracle/truffle/polyglot/HostObject$IsArrayNode;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=6, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
athrow
end local 5 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 value Ljava/lang/Object;
0 1 4 isList Lcom/oracle/truffle/polyglot/HostObject$IsListNode;
0 1 5 isArray Lcom/oracle/truffle/polyglot/HostObject$IsArrayNode;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"!isList.execute(receiver)", "!isArray.execute(receiver)"}, limit = "1")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached$Shared(value = "isList")
com.oracle.truffle.api.dsl.Cached()
4:
com.oracle.truffle.api.dsl.Cached$Shared(value = "isArray")
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
receiver
index
value
isList
isArray
}
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 ArraySet = com.oracle.truffle.polyglot.HostObject$ArraySet 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
WriteArrayElement = com.oracle.truffle.polyglot.HostObject$WriteArrayElement of com.oracle.truffle.polyglot.HostObject
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()