abstract class com.oracle.truffle.polyglot.HostExecuteNode extends com.oracle.truffle.api.nodes.Node
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.polyglot.HostExecuteNode
super_class: com.oracle.truffle.api.nodes.Node
{
static final int LIMIT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final java.lang.Class<?>[] EMPTY_CLASS_ARRAY;
descriptor: [Ljava/lang/Class;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: [Ljava/lang/Class<*>;
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/polyglot/HostExecuteNode;
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.polyglot.HostExecuteNode.$assertionsDisabled:Z
3: iconst_0
anewarray java.lang.Class
putstatic com.oracle.truffle.polyglot.HostExecuteNode.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
static com.oracle.truffle.polyglot.HostExecuteNode create();
descriptor: ()Lcom/oracle/truffle/polyglot/HostExecuteNode;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tHostExecuteNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
public abstract java.lang.Object execute(com.oracle.truffle.polyglot.HostMethodDesc, java.lang.Object, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException, com.oracle.truffle.api.interop.ArityException
MethodParameters:
Name Flags
method
obj
args
languageContext
static com.oracle.truffle.polyglot.ToHostNode[] createToHost(int);
descriptor: (I)[Lcom/oracle/truffle/polyglot/ToHostNode;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tToHostNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
argsLength
java.lang.Object doFixed(com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, java.lang.Object, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, com.oracle.truffle.polyglot.ToHostNode[], com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode, com.oracle.truffle.api.profiles.ValueProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;Lcom/oracle/truffle/api/profiles/ValueProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=8, locals=16, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 0: aload 5
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 11
start local 11 1: aload 3
arraylength
iload 11
if_icmpeq 4
2: aload 9
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
3: iload 11
aload 3
arraylength
invokestatic com.oracle.truffle.api.interop.ArityException.create:(II)Lcom/oracle/truffle/api/interop/ArityException;
athrow
4: StackMap locals: int
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
astore 12
start local 12 5: aload 5
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
astore 13
start local 13 6: aload 3
arraylength
anewarray java.lang.Object
astore 14
start local 14 7: iconst_0
istore 15
start local 15 8: goto 11
9: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.lang.Object java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod com.oracle.truffle.polyglot.ToHostNode[] com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode com.oracle.truffle.api.profiles.ValueProfile com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.polyglot.PolyglotEngineImpl int java.lang.Class[] java.lang.reflect.Type[] java.lang.Object[] int
StackMap stack:
aload 14
iload 15
aload 6
iload 15
aaload
aload 3
iload 15
aaload
aload 12
iload 15
aaload
aload 13
iload 15
aaload
aload 4
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;
aastore
10: iinc 15 1
StackMap locals:
StackMap stack:
11: iload 15
aload 6
arraylength
if_icmplt 9
end local 15 12: goto 16
StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.lang.Object java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod com.oracle.truffle.polyglot.ToHostNode[] com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode com.oracle.truffle.api.profiles.ValueProfile com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.polyglot.PolyglotEngineImpl int java.lang.Class[] java.lang.reflect.Type[] java.lang.Object[]
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
13: astore 15
start local 15 14: aload 9
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
15: aload 3
aload 15
getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.unsupportedTypeException:([Ljava/lang/Object;Ljava/lang/Throwable;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 15 16: StackMap locals:
StackMap stack:
aload 5
aload 8
aload 2
invokevirtual com.oracle.truffle.api.profiles.ValueProfile.profile:(Ljava/lang/Object;)Ljava/lang/Object;
aload 14
aload 10
aload 4
aload 7
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.doInvoke:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;)Ljava/lang/Object;
areturn
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
0 17 1 method Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 17 2 obj Ljava/lang/Object;
0 17 3 args [Ljava/lang/Object;
0 17 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 17 5 cachedMethod Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 17 6 toJavaNodes [Lcom/oracle/truffle/polyglot/ToHostNode;
0 17 7 toGuest Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
0 17 8 receiverProfile Lcom/oracle/truffle/api/profiles/ValueProfile;
0 17 9 errorBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
0 17 10 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 17 11 arity I
5 17 12 types [Ljava/lang/Class;
6 17 13 genericTypes [Ljava/lang/reflect/Type;
7 17 14 convertedArguments [Ljava/lang/Object;
8 12 15 i I
14 16 15 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
Exception table:
from to target type
7 12 13 Class com.oracle.truffle.polyglot.PolyglotEngineException
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
com.oracle.truffle.api.dsl.Specialization(guards = {"!method.isVarArgs()", "method == cachedMethod"}, limit = "LIMIT")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "method")
5:
com.oracle.truffle.api.dsl.Cached(value = "createToHost(method.getParameterCount())")
6:
com.oracle.truffle.api.dsl.Cached()
7:
com.oracle.truffle.api.dsl.Cached(value = "createClassProfile()")
8:
com.oracle.truffle.api.dsl.Cached()
9:
com.oracle.truffle.api.dsl.Cached(value = "languageContext.context.engine", allowUncached = true)
MethodParameters:
Name Flags
method
obj
args
languageContext
cachedMethod
toJavaNodes
toGuest
receiverProfile
errorBranch
engine
java.lang.Object doVarArgs(com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, java.lang.Object, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, com.oracle.truffle.polyglot.ToHostNode, com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode, com.oracle.truffle.api.profiles.ValueProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;Lcom/oracle/truffle/api/profiles/ValueProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=8, locals=19, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 0: aload 5
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 11
start local 11 1: iload 11
iconst_1
isub
istore 12
start local 12 2: aload 3
arraylength
iload 12
if_icmpge 5
3: aload 9
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
4: iload 12
aload 3
arraylength
invokestatic com.oracle.truffle.api.interop.ArityException.create:(II)Lcom/oracle/truffle/api/interop/ArityException;
athrow
5: StackMap locals: int int
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
astore 13
start local 13 6: aload 5
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
astore 14
start local 14 7: aload 3
arraylength
anewarray java.lang.Object
astore 15
start local 15 8: iconst_0
istore 16
start local 16 9: goto 12
10: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.lang.Object java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod com.oracle.truffle.polyglot.ToHostNode com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode com.oracle.truffle.api.profiles.ValueProfile com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.polyglot.PolyglotEngineImpl int int java.lang.Class[] java.lang.reflect.Type[] java.lang.Object[] int
StackMap stack:
aload 15
iload 16
aload 6
aload 3
iload 16
aaload
aload 13
iload 16
aaload
aload 14
iload 16
aaload
aload 4
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;
aastore
11: iinc 16 1
StackMap locals:
StackMap stack:
12: iload 16
iload 12
if_icmplt 10
end local 16 13: aload 3
aload 5
aload 4
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.asVarArgs:([Ljava/lang/Object;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Z
ifeq 23
14: iload 12
istore 16
start local 16 15: goto 20
16: StackMap locals:
StackMap stack:
aload 13
iload 12
aaload
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 17
start local 17 17: aload 14
iload 12
aaload
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.getGenericComponentType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
astore 18
start local 18 18: aload 15
iload 16
aload 6
aload 3
iload 16
aaload
aload 17
aload 18
aload 4
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;
aastore
end local 18 end local 17 19: iinc 16 1
StackMap locals:
StackMap stack:
20: iload 16
aload 3
arraylength
if_icmplt 16
end local 16 21: aload 5
aload 15
iload 11
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.createVarArgsArray:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;I)[Ljava/lang/Object;
astore 15
22: goto 28
23: StackMap locals:
StackMap stack:
aload 15
iload 12
aload 6
aload 3
iload 12
aaload
aload 13
iload 12
aaload
aload 14
iload 12
aaload
aload 4
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;
aastore
24: goto 28
StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
25: astore 16
start local 16 26: aload 9
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
27: aload 3
aload 16
getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.unsupportedTypeException:([Ljava/lang/Object;Ljava/lang/Throwable;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 16 28: StackMap locals:
StackMap stack:
aload 5
aload 8
aload 2
invokevirtual com.oracle.truffle.api.profiles.ValueProfile.profile:(Ljava/lang/Object;)Ljava/lang/Object;
aload 15
aload 10
aload 4
aload 7
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.doInvoke:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;)Ljava/lang/Object;
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
0 29 1 method Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 29 2 obj Ljava/lang/Object;
0 29 3 args [Ljava/lang/Object;
0 29 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 29 5 cachedMethod Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 29 6 toJavaNode Lcom/oracle/truffle/polyglot/ToHostNode;
0 29 7 toGuest Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
0 29 8 receiverProfile Lcom/oracle/truffle/api/profiles/ValueProfile;
0 29 9 errorBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
0 29 10 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 29 11 parameterCount I
2 29 12 minArity I
6 29 13 types [Ljava/lang/Class;
7 29 14 genericTypes [Ljava/lang/reflect/Type;
8 29 15 convertedArguments [Ljava/lang/Object;
9 13 16 i I
15 21 16 i I
17 19 17 expectedType Ljava/lang/Class<*>;
18 19 18 expectedGenericType Ljava/lang/reflect/Type;
26 28 16 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
Exception table:
from to target type
8 24 25 Class com.oracle.truffle.polyglot.PolyglotEngineException
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"method.isVarArgs()", "method == cachedMethod"}, limit = "LIMIT")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "method")
5:
com.oracle.truffle.api.dsl.Cached()
6:
com.oracle.truffle.api.dsl.Cached()
7:
com.oracle.truffle.api.dsl.Cached(value = "createClassProfile()")
8:
com.oracle.truffle.api.dsl.Cached()
9:
com.oracle.truffle.api.dsl.Cached(value = "languageContext.context.engine", allowUncached = true)
MethodParameters:
Name Flags
method
obj
args
languageContext
cachedMethod
toJavaNode
toGuest
receiverProfile
errorBranch
engine
static java.lang.Object doSingleUncached(com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, java.lang.Object, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.ToHostNode, com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode, com.oracle.truffle.api.profiles.ConditionProfile, com.oracle.truffle.polyglot.HostExecuteNode$HostMethodProfileNode, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;Lcom/oracle/truffle/polyglot/HostExecuteNode$HostMethodProfileNode;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=15, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 0
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 10
start local 10 1: aload 6
aload 0
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 7
2: iload 10
iconst_1
isub
istore 11
start local 11 3: aload 2
arraylength
iload 11
if_icmpge 4
iconst_1
goto 5
StackMap locals: int int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 12
start local 12 6: goto 11
end local 12 end local 11 7: StackMap locals:
StackMap stack:
iload 10
istore 11
start local 11 8: aload 2
arraylength
iload 11
if_icmpeq 9
iconst_1
goto 10
StackMap locals: int
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 12
start local 12 11: StackMap locals: int
StackMap stack:
iload 12
ifeq 14
12: aload 8
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
13: iload 11
aload 2
arraylength
invokestatic com.oracle.truffle.api.interop.ArityException.create:(II)Lcom/oracle/truffle/api/interop/ArityException;
athrow
14: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
aload 4
aload 6
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.prepareArgumentsUncached:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;)[Ljava/lang/Object;
astore 13
start local 13 15: goto 19
end local 13 StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
16: astore 14
start local 14 17: aload 8
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
18: aload 2
aload 14
getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.unsupportedTypeException:([Ljava/lang/Object;Ljava/lang/Throwable;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 14 start local 13 19: StackMap locals: java.lang.Object[]
StackMap stack:
aload 7
aload 0
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode$HostMethodProfileNode.execute:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
aload 1
aload 13
aload 9
aload 3
aload 5
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.doInvoke:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;)Ljava/lang/Object;
areturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 method Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 20 1 obj Ljava/lang/Object;
0 20 2 args [Ljava/lang/Object;
0 20 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 20 4 toJavaNode Lcom/oracle/truffle/polyglot/ToHostNode;
0 20 5 toGuest Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
0 20 6 isVarArgsProfile Lcom/oracle/truffle/api/profiles/ConditionProfile;
0 20 7 methodProfile Lcom/oracle/truffle/polyglot/HostExecuteNode$HostMethodProfileNode;
0 20 8 errorBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
0 20 9 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 20 10 parameterCount I
3 7 11 minArity I
8 20 11 minArity I
6 7 12 arityError Z
11 20 12 arityError Z
15 16 13 convertedArguments [Ljava/lang/Object;
19 20 13 convertedArguments [Ljava/lang/Object;
17 19 14 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
Exception table:
from to target type
14 15 16 Class com.oracle.truffle.polyglot.PolyglotEngineException
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"doFixed", "doVarArgs"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
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 = "toGuest")
com.oracle.truffle.api.dsl.Cached()
6:
com.oracle.truffle.api.dsl.Cached$Shared(value = "varArgsProfile")
com.oracle.truffle.api.dsl.Cached()
7:
com.oracle.truffle.api.dsl.Cached$Shared(value = "hostMethodProfile")
com.oracle.truffle.api.dsl.Cached()
8:
com.oracle.truffle.api.dsl.Cached$Shared(value = "errorBranch")
com.oracle.truffle.api.dsl.Cached()
9:
com.oracle.truffle.api.dsl.Cached$Shared(value = "engine")
com.oracle.truffle.api.dsl.Cached(value = "languageContext.context.engine", allowUncached = true)
MethodParameters:
Name Flags
method
obj
args
languageContext
toJavaNode
toGuest
isVarArgsProfile
methodProfile
errorBranch
engine
final java.lang.Object doOverloadedCached(com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod, java.lang.Object, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod, com.oracle.truffle.polyglot.ToHostNode, com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[], com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, boolean, com.oracle.truffle.api.profiles.ValueProfile, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;Lcom/oracle/truffle/api/interop/InteropLibrary;[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;ZLcom/oracle/truffle/api/profiles/ValueProfile;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Code:
stack=8, locals=22, args_size=15
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 start local 12 start local 13 start local 14 0: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 1
aload 10
aload 0
aload 1
aload 3
aload 4
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode.selectOverload:(Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 10
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
astore 15
start local 15 2: aload 10
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
astore 16
start local 16 3: aload 9
arraylength
anewarray java.lang.Object
astore 17
start local 17 4: iload 11
ifeq 20
5: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 6
aload 10
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: java.lang.Class[] java.lang.reflect.Type[] java.lang.Object[]
StackMap stack:
aload 10
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 18
start local 18 7: iconst_0
istore 19
start local 19 8: goto 17
9: StackMap locals: int int
StackMap stack:
iload 19
iload 18
iconst_1
isub
if_icmpge 10
aload 15
iload 19
aaload
goto 11
StackMap locals:
StackMap stack:
10: aload 15
iload 18
iconst_1
isub
aaload
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
11: astore 20
start local 20 12: iload 19
iload 18
iconst_1
isub
if_icmpge 13
aload 16
iload 19
aaload
goto 14
StackMap locals: java.lang.Class
StackMap stack:
13: aload 16
iload 18
iconst_1
isub
aaload
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.getGenericComponentType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
StackMap locals:
StackMap stack: java.lang.reflect.Type
14: astore 21
start local 21 15: aload 17
iload 19
aload 6
aload 3
iload 19
aaload
aload 20
aload 21
aload 4
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;
aastore
end local 21 end local 20 16: iinc 19 1
StackMap locals:
StackMap stack:
17: iload 19
aload 9
arraylength
if_icmplt 9
end local 19 18: aload 10
aload 17
iload 18
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.createVarArgsArray:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;I)[Ljava/lang/Object;
astore 17
end local 18 19: goto 29
20: StackMap locals:
StackMap stack:
iconst_0
istore 18
start local 18 21: goto 24
22: StackMap locals: int
StackMap stack:
aload 17
iload 18
aload 6
aload 3
iload 18
aaload
aload 15
iload 18
aaload
aload 16
iload 18
aaload
aload 4
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;
aastore
23: iinc 18 1
StackMap locals:
StackMap stack:
24: iload 18
aload 9
arraylength
if_icmplt 22
end local 18 25: goto 29
StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod java.lang.Object java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod com.oracle.truffle.polyglot.ToHostNode com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod int com.oracle.truffle.api.profiles.ValueProfile com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Class[] java.lang.reflect.Type[] java.lang.Object[]
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
26: astore 18
start local 18 27: aload 13
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
28: aload 3
aload 18
getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.unsupportedTypeException:([Ljava/lang/Object;Ljava/lang/Throwable;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 18 29: StackMap locals:
StackMap stack:
aload 10
aload 12
aload 2
invokevirtual com.oracle.truffle.api.profiles.ValueProfile.profile:(Ljava/lang/Object;)Ljava/lang/Object;
aload 17
aload 14
aload 4
aload 7
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.doInvoke:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;)Ljava/lang/Object;
areturn
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
0 30 1 method Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;
0 30 2 obj Ljava/lang/Object;
0 30 3 args [Ljava/lang/Object;
0 30 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 30 5 cachedMethod Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;
0 30 6 toJavaNode Lcom/oracle/truffle/polyglot/ToHostNode;
0 30 7 toGuest Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
0 30 8 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 30 9 cachedArgTypes [Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
0 30 10 overload Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 30 11 asVarArgs Z
0 30 12 receiverProfile Lcom/oracle/truffle/api/profiles/ValueProfile;
0 30 13 errorBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
0 30 14 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
2 30 15 types [Ljava/lang/Class;
3 30 16 genericTypes [Ljava/lang/reflect/Type;
4 30 17 convertedArguments [Ljava/lang/Object;
7 19 18 parameterCount I
8 18 19 i I
12 16 20 expectedType Ljava/lang/Class<*>;
15 16 21 expectedGenericType Ljava/lang/reflect/Type;
21 25 18 i I
27 29 18 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
Exception table:
from to target type
4 25 26 Class com.oracle.truffle.polyglot.PolyglotEngineException
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
com.oracle.truffle.api.dsl.Specialization(guards = {"method == cachedMethod", "checkArgTypes(args, cachedArgTypes, interop, languageContext, asVarArgs)"}, limit = "LIMIT")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
com.oracle.truffle.api.dsl.Cached(value = "method")
5:
com.oracle.truffle.api.dsl.Cached()
6:
com.oracle.truffle.api.dsl.Cached()
7:
com.oracle.truffle.api.library.CachedLibrary(limit = "LIMIT")
8:
com.oracle.truffle.api.dsl.Cached(value = "createArgTypesArray(args)")
9:
com.oracle.truffle.api.dsl.Cached(value = "selectOverload(method, args, languageContext, cachedArgTypes)")
10:
com.oracle.truffle.api.dsl.Cached(value = "asVarArgs(args, overload, languageContext)")
11:
com.oracle.truffle.api.dsl.Cached(value = "createClassProfile()")
12:
com.oracle.truffle.api.dsl.Cached()
13:
com.oracle.truffle.api.dsl.Cached(value = "languageContext.context.engine", allowUncached = true)
MethodParameters:
Name Flags
method
obj
args
languageContext
cachedMethod
toJavaNode
toGuest
interop
cachedArgTypes
overload
asVarArgs
receiverProfile
errorBranch
engine
final java.lang.Object doOverloadedUncached(com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod, java.lang.Object, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.ToHostNode, com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode, com.oracle.truffle.api.profiles.ConditionProfile, com.oracle.truffle.polyglot.HostExecuteNode$HostMethodProfileNode, com.oracle.truffle.api.profiles.BranchProfile, com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;Lcom/oracle/truffle/polyglot/HostExecuteNode$HostMethodProfileNode;Lcom/oracle/truffle/api/profiles/BranchProfile;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=14, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 0: aload 0
aload 1
aload 3
aload 4
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode.selectOverload:(Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
astore 11
start local 11 1: aload 11
aload 3
aload 4
aload 5
aload 7
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.prepareArgumentsUncached:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;)[Ljava/lang/Object;
astore 12
start local 12 2: goto 6
end local 12 StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod java.lang.Object java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.ToHostNode com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode com.oracle.truffle.api.profiles.ConditionProfile com.oracle.truffle.polyglot.HostExecuteNode$HostMethodProfileNode com.oracle.truffle.api.profiles.BranchProfile com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
3: astore 13
start local 13 4: aload 9
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
5: aload 3
aload 13
getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.unsupportedTypeException:([Ljava/lang/Object;Ljava/lang/Throwable;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 13 start local 12 6: StackMap locals: java.lang.Object[]
StackMap stack:
aload 8
aload 11
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode$HostMethodProfileNode.execute:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
aload 2
aload 12
aload 10
aload 4
aload 6
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.doInvoke:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;)Ljava/lang/Object;
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
0 7 1 method Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;
0 7 2 obj Ljava/lang/Object;
0 7 3 args [Ljava/lang/Object;
0 7 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 7 5 toJavaNode Lcom/oracle/truffle/polyglot/ToHostNode;
0 7 6 toGuest Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
0 7 7 isVarArgsProfile Lcom/oracle/truffle/api/profiles/ConditionProfile;
0 7 8 methodProfile Lcom/oracle/truffle/polyglot/HostExecuteNode$HostMethodProfileNode;
0 7 9 errorBranch Lcom/oracle/truffle/api/profiles/BranchProfile;
0 7 10 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1 7 11 overload Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
2 3 12 convertedArguments [Ljava/lang/Object;
6 7 12 convertedArguments [Ljava/lang/Object;
4 6 13 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
Exception table:
from to target type
1 2 3 Class com.oracle.truffle.polyglot.PolyglotEngineException
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"doOverloadedCached"})
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
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 = "toGuest")
com.oracle.truffle.api.dsl.Cached()
6:
com.oracle.truffle.api.dsl.Cached$Shared(value = "varArgsProfile")
com.oracle.truffle.api.dsl.Cached()
7:
com.oracle.truffle.api.dsl.Cached$Shared(value = "hostMethodProfile")
com.oracle.truffle.api.dsl.Cached()
8:
com.oracle.truffle.api.dsl.Cached$Shared(value = "errorBranch")
com.oracle.truffle.api.dsl.Cached()
9:
com.oracle.truffle.api.dsl.Cached$Shared(value = "engine")
com.oracle.truffle.api.dsl.Cached(value = "languageContext.context.engine", allowUncached = true)
MethodParameters:
Name Flags
method
obj
args
languageContext
toJavaNode
toGuest
isVarArgsProfile
methodProfile
errorBranch
engine
private static java.lang.Object[] prepareArgumentsUncached(com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.ToHostNode, com.oracle.truffle.api.profiles.ConditionProfile);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/api/profiles/ConditionProfile;)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
astore 5
start local 5 1: aload 0
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
astore 6
start local 6 2: aload 1
arraylength
anewarray java.lang.Object
astore 7
start local 7 3: aload 4
aload 0
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 18
aload 1
aload 0
aload 2
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.asVarArgs:([Ljava/lang/Object;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Z
ifeq 18
4: aload 0
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 8
start local 8 5: iconst_0
istore 9
start local 9 6: goto 15
7: StackMap locals: com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.ToHostNode com.oracle.truffle.api.profiles.ConditionProfile java.lang.Class[] java.lang.reflect.Type[] java.lang.Object[] int int
StackMap stack:
iload 9
iload 8
iconst_1
isub
if_icmpge 8
aload 5
iload 9
aaload
goto 9
StackMap locals:
StackMap stack:
8: aload 5
iload 8
iconst_1
isub
aaload
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
9: astore 10
start local 10 10: iload 9
iload 8
iconst_1
isub
if_icmpge 11
aload 6
iload 9
aaload
goto 12
StackMap locals: java.lang.Class
StackMap stack:
11: aload 6
iload 8
iconst_1
isub
aaload
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.getGenericComponentType:(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
StackMap locals:
StackMap stack: java.lang.reflect.Type
12: astore 11
start local 11 13: aload 7
iload 9
aload 3
aload 1
iload 9
aaload
aload 10
aload 11
aload 2
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;
aastore
end local 11 end local 10 14: iinc 9 1
StackMap locals:
StackMap stack:
15: iload 9
aload 1
arraylength
if_icmplt 7
end local 9 16: aload 0
aload 7
iload 8
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.createVarArgsArray:(Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;I)[Ljava/lang/Object;
astore 7
end local 8 17: goto 23
18: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 19: goto 22
20: StackMap locals: int
StackMap stack:
aload 7
iload 8
aload 3
aload 1
iload 8
aaload
aload 5
iload 8
aaload
aload 6
iload 8
aaload
aload 2
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;
aastore
21: iinc 8 1
StackMap locals:
StackMap stack:
22: iload 8
aload 1
arraylength
if_icmplt 20
end local 8 23: StackMap locals:
StackMap stack:
aload 7
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 method Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 24 1 args [Ljava/lang/Object;
0 24 2 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 24 3 toJavaNode Lcom/oracle/truffle/polyglot/ToHostNode;
0 24 4 isVarArgsProfile Lcom/oracle/truffle/api/profiles/ConditionProfile;
1 24 5 types [Ljava/lang/Class;
2 24 6 genericTypes [Ljava/lang/reflect/Type;
3 24 7 convertedArguments [Ljava/lang/Object;
5 17 8 parameterCount I
6 16 9 i I
10 14 10 expectedType Ljava/lang/Class<*>;
13 14 11 expectedGenericType Ljava/lang/reflect/Type;
19 23 8 i I
MethodParameters:
Name Flags
method
args
languageContext
toJavaNode
isVarArgsProfile
static com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] createArgTypesArray(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
arraylength
anewarray com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode
astore 1
start local 1 1: aload 1
getstatic com.oracle.truffle.polyglot.HostExecuteNode$NullCheckNode.INSTANCE:Lcom/oracle/truffle/polyglot/HostExecuteNode$NullCheckNode;
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 args [Ljava/lang/Object;
1 3 1 nodes [Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
MethodParameters:
Name Flags
args
private void fillArgTypesArray([], com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[], com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, boolean, java.util.List<com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod>, int, com.oracle.truffle.polyglot.PolyglotLanguageContext);
descriptor: ([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;ZLjava/util/List;ILcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=8
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTargetMappingNodeGen cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
Signature: ([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;ZLjava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;ILcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
MethodParameters:
Name Flags
args
cachedArgTypes
selected
varArgs
applicable
priority
languageContext
private static com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode createPrimitiveTargetCheck(java.util.List<com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod>, com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, , java.lang.Class<?>, int, int, boolean);
descriptor: (Ljava/util/List;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;Ljava/lang/Class;IIZ)Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=12, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 3
astore 7
start local 7 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 8
start local 8 2: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 16
StackMap locals: java.util.List com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.lang.Object java.lang.Class int int int java.lang.Class java.util.Collection top java.util.Iterator
StackMap stack:
3: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
astore 9
start local 9 4: aload 9
aload 1
if_acmpne 6
5: goto 16
6: StackMap locals: java.util.List com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.lang.Object java.lang.Class int int int java.lang.Class java.util.Collection com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.util.Iterator
StackMap stack:
aload 9
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
iload 6
if_icmpeq 8
7: goto 16
8: StackMap locals:
StackMap stack:
aload 9
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
iload 4
iload 6
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.getParameterType:([Ljava/lang/Class;IZ)Ljava/lang/Class;
astore 11
start local 11 9: aload 11
aload 3
if_acmpne 11
10: goto 16
11: StackMap locals: java.lang.Class
StackMap stack:
aload 8
aload 11
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 13
12: goto 16
13: StackMap locals:
StackMap stack:
aload 11
invokestatic com.oracle.truffle.polyglot.ToHostNode.isPrimitiveTarget:(Ljava/lang/Class;)Z
ifne 14
aload 3
invokestatic com.oracle.truffle.polyglot.ToHostNode.isPrimitiveTarget:(Ljava/lang/Class;)Z
ifeq 16
14: StackMap locals:
StackMap stack:
aload 3
aload 11
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.isAssignableFrom:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 16
aload 2
aload 11
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.isSubtypeOf:(Ljava/lang/Object;Ljava/lang/Class;)Z
ifne 16
15: aload 8
aload 11
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 9 16: StackMap locals: java.util.List com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.lang.Object java.lang.Class int int int java.lang.Class java.util.Collection top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
17: new com.oracle.truffle.polyglot.HostExecuteNode$PrimitiveType
dup
aload 7
aload 8
getstatic com.oracle.truffle.polyglot.HostExecuteNode.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
iload 5
invokespecial com.oracle.truffle.polyglot.HostExecuteNode$PrimitiveType.<init>:(Ljava/lang/Class;[Ljava/lang/Class;I)V
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 applicable Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
0 18 1 selected Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 18 2 arg Ljava/lang/Object;
0 18 3 targetType Ljava/lang/Class<*>;
0 18 4 parameterIndex I
0 18 5 priority I
0 18 6 varArgs Z
1 18 7 currentTargetType Ljava/lang/Class<*>;
2 18 8 otherPossibleTypes Ljava/util/Collection<Ljava/lang/Class<*>;>;
4 16 9 other Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
9 16 11 paramType Ljava/lang/Class<*>;
Signature: (Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;Ljava/lang/Class<*>;IIZ)Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
MethodParameters:
Name Flags
applicable
selected
arg
targetType
parameterIndex
priority
varArgs
static boolean checkArgTypes(java.lang.Object[], com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[], com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.polyglot.PolyglotLanguageContext, boolean);
descriptor: ([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Z
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
arraylength
aload 1
arraylength
if_icmpeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 3: goto 8
4: StackMap locals: int
StackMap stack:
aload 1
iload 5
aaload
astore 6
start local 6 5: aload 6
aload 0
iload 5
aaload
aload 2
aload 3
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode.execute:(Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Z
ifne 7
6: iconst_0
ireturn
end local 6 7: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
aload 1
arraylength
if_icmplt 4
end local 5 9: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 args [Ljava/lang/Object;
0 10 1 argTypes [Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
0 10 2 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 10 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 10 4 dummy Z
3 9 5 i I
5 7 6 argType Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
args
argTypes
interop
languageContext
dummy
static boolean asVarArgs(java.lang.Object[], com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, com.oracle.truffle.polyglot.PolyglotLanguageContext);
descriptor: ([Ljava/lang/Object;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
ifeq 14
1: aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 3
start local 3 2: aload 0
arraylength
iload 3
if_icmpne 12
3: aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
iload 3
iconst_1
isub
aaload
astore 4
start local 4 4: aload 0
iload 3
iconst_1
isub
aaload
aload 4
aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
iload 3
iconst_1
isub
aaload
5: aconst_null
aload 2
iconst_3
6: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
invokestatic com.oracle.truffle.polyglot.TargetMappingNode.getUncached:()Lcom/oracle/truffle/polyglot/TargetMappingNode;
7: invokestatic com.oracle.truffle.polyglot.ToHostNode.canConvert:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ILcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/TargetMappingNode;)Z
8: ifeq 10
9: iconst_0
goto 11
StackMap locals: int java.lang.Class
StackMap stack:
10: iconst_1
StackMap locals:
StackMap stack: int
11: ireturn
end local 4 12: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 13
aload 0
arraylength
iload 3
if_icmpne 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 14: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 args [Ljava/lang/Object;
0 15 1 overload Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 15 2 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
2 14 3 parameterCount I
4 12 4 varArgParamType Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
args
overload
languageContext
static java.lang.Class<?> primitiveTypeToBoxedType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 3
2: ldc Ljava/lang/Boolean;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 5
4: ldc Ljava/lang/Byte;
areturn
5: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 7
6: ldc Ljava/lang/Short;
areturn
7: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 9
8: ldc Ljava/lang/Character;
areturn
9: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 11
10: ldc Ljava/lang/Integer;
areturn
11: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 13
12: ldc Ljava/lang/Long;
areturn
13: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 15
14: ldc Ljava/lang/Float;
areturn
15: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 17
16: ldc Ljava/lang/Double;
areturn
17: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 primitiveType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
primitiveType
static java.lang.Class<?> boxedTypeToPrimitiveType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc Ljava/lang/Boolean;
if_acmpne 2
1: getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
areturn
2: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/Byte;
if_acmpne 4
3: getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
areturn
4: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/Short;
if_acmpne 6
5: getstatic java.lang.Short.TYPE:Ljava/lang/Class;
areturn
6: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/Character;
if_acmpne 8
7: getstatic java.lang.Character.TYPE:Ljava/lang/Class;
areturn
8: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/Integer;
if_acmpne 10
9: getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
areturn
10: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/Long;
if_acmpne 12
11: getstatic java.lang.Long.TYPE:Ljava/lang/Class;
areturn
12: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/Float;
if_acmpne 14
13: getstatic java.lang.Float.TYPE:Ljava/lang/Class;
areturn
14: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/Double;
if_acmpne 16
15: getstatic java.lang.Double.TYPE:Ljava/lang/Class;
areturn
16: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 primitiveType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
primitiveType
com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod selectOverload(com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
aconst_null
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode.selectOverload:(Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
0 1 1 method Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;
0 1 2 args [Ljava/lang/Object;
0 1 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
method
args
languageContext
com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod selectOverload(com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[]);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
flags: (0x0000)
Code:
stack=7, locals=16, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod.getOverloads:()[Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
astore 5
start local 5 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 2: ldc 2147483647
istore 7
start local 7 3: iconst_0
istore 8
start local 8 4: iconst_0
istore 9
start local 9 5: aload 5
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 21
StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[] java.util.List int int int top int int com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[]
StackMap stack:
6: aload 13
iload 11
aaload
astore 10
start local 10 7: aload 10
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 14
start local 14 8: aload 10
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
ifne 13
9: aload 2
arraylength
iload 14
if_icmpeq 19
10: iload 7
iload 14
invokestatic java.lang.Math.min:(II)I
istore 7
11: iload 8
iload 14
invokestatic java.lang.Math.max:(II)I
istore 8
12: goto 20
13: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[] java.util.List int int int com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod int int com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[] int
StackMap stack:
iconst_1
istore 9
14: iload 14
iconst_1
isub
istore 15
start local 15 15: aload 2
arraylength
iload 15
if_icmpge 19
16: iload 7
iload 15
invokestatic java.lang.Math.min:(II)I
istore 7
17: iload 8
iload 15
invokestatic java.lang.Math.max:(II)I
istore 8
18: goto 20
end local 15 19: StackMap locals:
StackMap stack:
aload 6
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 14 end local 10 20: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[] java.util.List int int int top int int com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[]
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
21: iload 11
iload 12
if_icmplt 6
22: aload 6
invokeinterface java.util.List.isEmpty:()Z
ifeq 26
23: aload 2
arraylength
iload 8
if_icmple 24
iload 8
goto 25
StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[] java.util.List int int int
StackMap stack:
24: iload 7
StackMap locals:
StackMap stack: int
25: aload 2
arraylength
invokestatic com.oracle.truffle.api.interop.ArityException.create:(II)Lcom/oracle/truffle/api/interop/ArityException;
athrow
26: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.ToHostNode.PRIORITIES:[I
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 32
StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[] java.util.List int int int top top int int int[]
StackMap stack:
27: aload 14
iload 12
iaload
istore 11
start local 11 28: aload 0
aload 6
aload 2
aload 3
iconst_0
iload 11
aload 4
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode.findBestCandidate:(Ljava/util/List;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ZI[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
astore 10
start local 10 29: aload 10
ifnull 31
30: aload 10
areturn
end local 11 end local 10 31: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
32: iload 12
iload 13
if_icmplt 27
33: iload 9
ifeq 41
34: getstatic com.oracle.truffle.polyglot.ToHostNode.PRIORITIES:[I
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 40
StackMap locals:
StackMap stack:
35: aload 14
iload 12
iaload
istore 11
start local 11 36: aload 0
aload 6
aload 2
aload 3
iconst_1
iload 11
aload 4
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode.findBestCandidate:(Ljava/util/List;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ZI[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
astore 10
start local 10 37: aload 10
ifnull 39
38: aload 10
areturn
end local 11 end local 10 39: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
40: iload 12
iload 13
if_icmplt 35
41: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[] java.util.List int int int
StackMap stack:
aload 5
aload 2
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.noApplicableOverloadsException:([Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
0 42 1 method Lcom/oracle/truffle/polyglot/HostMethodDesc$OverloadedMethod;
0 42 2 args [Ljava/lang/Object;
0 42 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 42 4 cachedArgTypes [Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
1 42 5 overloads [Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
2 42 6 applicableByArity Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
3 42 7 minOverallArity I
4 42 8 maxOverallArity I
5 42 9 anyVarArgs Z
7 20 10 overload Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
8 20 14 paramCount I
15 19 15 fixedParamCount I
29 31 10 best Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
37 39 10 best Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
28 31 11 priority I
36 39 11 priority I
Exceptions:
throws com.oracle.truffle.api.interop.ArityException, com.oracle.truffle.api.interop.UnsupportedTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
method
args
languageContext
cachedArgTypes
private com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod findBestCandidate(java.util.List<com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod>, [], com.oracle.truffle.polyglot.PolyglotLanguageContext, boolean, int, com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[]);
descriptor: (Ljava/util/List;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ZI[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=17, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 1: iload 4
ifne 25
2: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 23
StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List top java.util.Iterator
StackMap stack:
3: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
astore 8
start local 8 4: aload 8
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 10
start local 10 5: aload 8
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
ifeq 6
iload 10
aload 2
arraylength
if_icmpne 23
6: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.util.Iterator int
StackMap stack:
getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 7
iload 10
aload 2
arraylength
if_icmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 8
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
astore 11
start local 11 8: aload 8
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
astore 12
start local 12 9: iconst_1
istore 13
start local 13 10: iconst_0
istore 14
start local 14 11: goto 20
12: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.util.Iterator int java.lang.Class[] java.lang.reflect.Type[] int int
StackMap stack:
aload 2
iload 14
aaload
aload 11
iload 14
aaload
aload 12
iload 14
aaload
aconst_null
13: aload 3
iload 5
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 2
iload 14
aaload
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
14: invokestatic com.oracle.truffle.polyglot.TargetMappingNode.getUncached:()Lcom/oracle/truffle/polyglot/TargetMappingNode;
15: invokestatic com.oracle.truffle.polyglot.ToHostNode.canConvert:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ILcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/TargetMappingNode;)Z
16: ifne 19
17: iconst_0
istore 13
18: goto 21
19: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
20: iload 14
iload 10
if_icmplt 12
end local 14 21: StackMap locals:
StackMap stack:
iload 13
ifeq 23
22: aload 7
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 13 end local 12 end local 11 end local 10 end local 8 23: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
24: goto 65
25: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List
StackMap stack:
aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 64
StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List top java.util.Iterator
StackMap stack:
26: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
astore 8
start local 8 27: aload 8
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
ifeq 64
28: aload 8
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
istore 10
start local 10 29: aload 8
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
astore 11
start local 11 30: aload 8
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
astore 12
start local 12 31: iconst_1
istore 13
start local 13 32: iconst_0
istore 14
start local 14 33: goto 42
34: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.util.Iterator int java.lang.Class[] java.lang.reflect.Type[] int int
StackMap stack:
aload 2
iload 14
aaload
aload 11
iload 14
aaload
aload 12
iload 14
aaload
aconst_null
35: aload 3
iload 5
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 2
iload 14
aaload
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
36: invokestatic com.oracle.truffle.polyglot.TargetMappingNode.getUncached:()Lcom/oracle/truffle/polyglot/TargetMappingNode;
37: invokestatic com.oracle.truffle.polyglot.ToHostNode.canConvert:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ILcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/TargetMappingNode;)Z
38: ifne 41
39: iconst_0
istore 13
40: goto 43
41: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
42: iload 14
iload 10
iconst_1
isub
if_icmplt 34
end local 14 43: StackMap locals:
StackMap stack:
iload 13
ifeq 64
44: aload 11
iload 10
iconst_1
isub
aaload
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 14
start local 14 45: aload 12
iload 10
iconst_1
isub
aaload
astore 15
start local 15 46: aload 15
instanceof java.lang.reflect.GenericArrayType
ifeq 50
47: aload 15
checkcast java.lang.reflect.GenericArrayType
astore 16
start local 16 48: aload 16
invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
astore 15
end local 16 49: goto 51
50: StackMap locals: java.lang.Class java.lang.reflect.Type
StackMap stack:
aload 14
astore 15
51: StackMap locals:
StackMap stack:
iload 10
iconst_1
isub
istore 16
start local 16 52: goto 61
53: StackMap locals: int
StackMap stack:
aload 2
iload 16
aaload
aload 14
aload 15
aconst_null
54: aload 3
iload 5
55: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 2
iload 16
aaload
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
invokestatic com.oracle.truffle.polyglot.TargetMappingNode.getUncached:()Lcom/oracle/truffle/polyglot/TargetMappingNode;
56: invokestatic com.oracle.truffle.polyglot.ToHostNode.canConvert:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ILcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/TargetMappingNode;)Z
57: ifne 60
58: iconst_0
istore 13
59: goto 62
60: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
61: iload 16
aload 2
arraylength
if_icmplt 53
end local 16 62: StackMap locals:
StackMap stack:
iload 13
ifeq 64
63: aload 7
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 8 64: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
65: StackMap locals: com.oracle.truffle.polyglot.HostExecuteNode java.util.List java.lang.Object[] com.oracle.truffle.polyglot.PolyglotLanguageContext int int com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode[] java.util.List
StackMap stack:
aload 7
invokeinterface java.util.List.isEmpty:()Z
ifne 77
66: aload 7
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 71
67: aload 7
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
astore 8
start local 8 68: aload 6
ifnull 70
69: aload 0
aload 2
aload 6
aload 8
iload 4
aload 1
iload 5
aload 3
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode.fillArgTypesArray:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;ZLjava/util/List;ILcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
70: StackMap locals: com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
StackMap stack:
aload 8
areturn
end local 8 71: StackMap locals:
StackMap stack:
aload 3
aload 7
aload 2
iload 4
iload 5
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.findMostSpecificOverload:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/List;[Ljava/lang/Object;ZI)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
astore 8
start local 8 72: aload 8
ifnull 76
73: aload 6
ifnull 75
74: aload 0
aload 2
aload 6
aload 8
iload 4
aload 1
iload 5
aload 3
invokevirtual com.oracle.truffle.polyglot.HostExecuteNode.fillArgTypesArray:([Ljava/lang/Object;[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;ZLjava/util/List;ILcom/oracle/truffle/polyglot/PolyglotLanguageContext;)V
75: StackMap locals: com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
StackMap stack:
aload 8
areturn
76: StackMap locals:
StackMap stack:
aload 7
aload 2
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.ambiguousOverloadsException:(Ljava/util/List;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 8 77: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 78 0 this Lcom/oracle/truffle/polyglot/HostExecuteNode;
0 78 1 applicableByArity Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
0 78 2 args [Ljava/lang/Object;
0 78 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 78 4 varArgs Z
0 78 5 priority I
0 78 6 cachedArgTypes [Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;
1 78 7 candidates Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
4 23 8 candidate Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
5 23 10 paramCount I
8 23 11 parameterTypes [Ljava/lang/Class;
9 23 12 genericParameterTypes [Ljava/lang/reflect/Type;
10 23 13 applicable Z
11 21 14 i I
27 64 8 candidate Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
29 64 10 parameterCount I
30 64 11 parameterTypes [Ljava/lang/Class;
31 64 12 genericParameterTypes [Ljava/lang/reflect/Type;
32 64 13 applicable Z
33 43 14 i I
45 64 14 varArgsComponentType Ljava/lang/Class<*>;
46 64 15 varArgsGenericComponentType Ljava/lang/reflect/Type;
48 49 16 arrayType Ljava/lang/reflect/GenericArrayType;
52 62 16 i I
68 71 8 best Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
72 77 8 best Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException
Signature: (Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ZI[Lcom/oracle/truffle/polyglot/HostExecuteNode$TypeCheckNode;)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
MethodParameters:
Name Flags
applicableByArity
args
languageContext
varArgs
priority
cachedArgTypes
private static com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod findMostSpecificOverload(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.util.List<com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod>, [], boolean, int);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/List;[Ljava/lang/Object;ZI)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 1
aload 1
invokeinterface java.util.List.size:()I
iconst_2
if_icmpge 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.List.size:()I
iconst_2
if_icmpne 7
2: aload 0
aload 1
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
aload 1
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
aload 2
iload 3
iload 4
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.compareOverloads:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;ZI)I
istore 5
start local 5 3: iload 5
ifne 4
aconst_null
goto 6
StackMap locals: int
StackMap stack:
4: iload 5
ifge 5
aload 1
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
goto 6
StackMap locals:
StackMap stack:
5: aload 1
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
6: areturn
end local 5 7: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
start local 5 8: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 6
start local 6 9: aload 6
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: goto 27
11: StackMap locals: java.util.Iterator java.util.List
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
astore 7
start local 7 12: iconst_0
istore 8
start local 8 13: aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
start local 9 14: goto 24
15: StackMap locals: com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod int java.util.Iterator
StackMap stack:
aload 0
aload 7
aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
aload 2
iload 3
iload 4
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.compareOverloads:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;ZI)I
istore 10
start local 10 16: iload 10
ifne 19
17: iconst_1
istore 8
18: goto 24
StackMap locals: int
StackMap stack:
19: iload 10
ifge 23
20: aload 9
invokeinterface java.util.Iterator.remove:()V
21: iconst_1
istore 8
22: goto 24
23: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 24
iload 10
ifgt 24
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 10 24: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
end local 9 25: iload 8
ifeq 27
26: aload 6
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 27: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
28: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 29
aload 6
invokeinterface java.util.List.isEmpty:()Z
ifeq 29
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
29: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.List.size:()I
iconst_1
if_icmpne 31
30: aload 6
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
areturn
31: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 32 1 candidates Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
0 32 2 args [Ljava/lang/Object;
0 32 3 varArgs Z
0 32 4 priority I
3 7 5 res I
8 32 5 candIt Ljava/util/Iterator<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
9 32 6 best Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
12 27 7 cand Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
13 27 8 add Z
14 25 9 bestIt Ljava/util/Iterator<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
16 24 10 res I
Signature: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;[Ljava/lang/Object;ZI)Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
MethodParameters:
Name Flags
languageContext
candidates
args
varArgs
priority
private static int compareOverloads(com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, java.lang.Object[], boolean, int);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;ZI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 3
iload 4
ifeq 3
aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
ifeq 2
aload 2
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.isVarArgs:()Z
ifne 3
StackMap locals: int
StackMap stack:
2: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 5
iload 4
ifne 5
aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
aload 2
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
if_icmpne 4
aload 3
arraylength
aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
if_icmpeq 5
StackMap locals:
StackMap stack:
4: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 6: goto 23
7: StackMap locals: int
StackMap stack:
aload 1
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
iload 7
iload 4
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.getParameterType:([Ljava/lang/Class;IZ)Ljava/lang/Class;
astore 8
start local 8 8: aload 2
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
iload 7
iload 4
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.getParameterType:([Ljava/lang/Class;IZ)Ljava/lang/Class;
astore 9
start local 9 9: aload 8
aload 9
if_acmpne 11
10: goto 22
11: StackMap locals: java.lang.Class java.lang.Class
StackMap stack:
aload 0
aload 8
aload 9
aload 3
iload 7
aaload
iload 5
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.compareByPriority:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)I
istore 10
start local 10 12: iload 10
ifne 16
13: aload 8
aload 9
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.compareAssignable:(Ljava/lang/Class;Ljava/lang/Class;)I
istore 10
14: iload 10
ifne 16
15: goto 22
16: StackMap locals: int
StackMap stack:
iload 6
ifne 19
17: iload 10
istore 6
18: goto 22
StackMap locals:
StackMap stack:
19: iload 6
iload 10
if_icmpeq 22
20: iconst_0
istore 6
21: goto 24
end local 10 end local 9 end local 8 22: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
23: iload 7
aload 3
arraylength
if_icmplt 7
end local 7 24: StackMap locals:
StackMap stack:
iload 6
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 25 1 m1 Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 25 2 m2 Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 25 3 args [Ljava/lang/Object;
0 25 4 varArgs Z
0 25 5 priority I
1 25 6 res I
6 24 7 i I
8 22 8 t1 Ljava/lang/Class<*>;
9 22 9 t2 Ljava/lang/Class<*>;
12 22 10 r I
MethodParameters:
Name Flags
languageContext
m1
m2
args
varArgs
priority
private static java.lang.Class<?> getParameterType(java.lang.Class<?>[], int, boolean);
descriptor: ([Ljava/lang/Class;IZ)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 1
iload 1
aload 0
arraylength
iconst_1
isub
if_icmplt 1
aload 0
aload 0
arraylength
iconst_1
isub
aaload
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
iload 1
aaload
StackMap locals:
StackMap stack: java.lang.Class
2: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 parameterTypes [Ljava/lang/Class;
0 3 1 i I
0 3 2 varArgs Z
Signature: ([Ljava/lang/Class<*>;IZ)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
parameterTypes
i
varArgs
private static int compareByPriority(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.Class<?>, java.lang.Class<?>, , );
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=13, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 4
iconst_1
if_icmpgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 3
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
astore 5
start local 5 3: invokestatic com.oracle.truffle.polyglot.TargetMappingNode.getUncached:()Lcom/oracle/truffle/polyglot/TargetMappingNode;
astore 6
start local 6 4: getstatic com.oracle.truffle.polyglot.ToHostNode.PRIORITIES:[I
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 15
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Class java.lang.Class java.lang.Object int com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.polyglot.TargetMappingNode top int int int[]
StackMap stack:
5: aload 10
iload 8
iaload
istore 7
start local 7 6: iload 7
iload 4
if_icmple 8
7: goto 16
8: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Class java.lang.Class java.lang.Object int com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.polyglot.TargetMappingNode int int int int[]
StackMap stack:
aload 3
aload 1
aload 1
aconst_null
aload 0
iload 7
aload 5
aload 6
invokestatic com.oracle.truffle.polyglot.ToHostNode.canConvert:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ILcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/TargetMappingNode;)Z
istore 11
start local 11 9: aload 3
aload 2
aload 2
aconst_null
aload 0
iload 7
aload 5
aload 6
invokestatic com.oracle.truffle.polyglot.ToHostNode.canConvert:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ILcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/TargetMappingNode;)Z
istore 12
start local 12 10: iload 11
iload 12
if_icmpeq 14
11: iload 11
ifeq 12
iconst_m1
goto 13
StackMap locals: int int
StackMap stack:
12: iconst_1
StackMap locals:
StackMap stack: int
13: ireturn
end local 12 end local 11 end local 7 14: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Class java.lang.Class java.lang.Object int com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.polyglot.TargetMappingNode top int int int[]
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
15: iload 8
iload 9
if_icmplt 5
16: StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Class java.lang.Class java.lang.Object int com.oracle.truffle.api.interop.InteropLibrary com.oracle.truffle.polyglot.TargetMappingNode
StackMap stack:
iconst_0
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 17 1 t1 Ljava/lang/Class<*>;
0 17 2 t2 Ljava/lang/Class<*>;
0 17 3 arg Ljava/lang/Object;
0 17 4 priority I
3 17 5 argInterop Lcom/oracle/truffle/api/interop/InteropLibrary;
4 17 6 mapping Lcom/oracle/truffle/polyglot/TargetMappingNode;
6 14 7 p I
9 14 11 p1 Z
10 14 12 p2 Z
Signature: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/Object;I)I
MethodParameters:
Name Flags
languageContext
t1
t2
arg
priority
private static int compareAssignable(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.isAssignableFrom:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.isAssignableFrom:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 4
3: iconst_m1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 t1 Ljava/lang/Class<*>;
0 5 1 t2 Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)I
MethodParameters:
Name Flags
t1
t2
private static boolean isAssignableFrom(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
istore 2
start local 2 3: aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
istore 3
start local 3 4: iload 2
ifeq 5
aload 1
goto 6
StackMap locals: int int
StackMap stack:
5: aload 1
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.boxedTypeToPrimitiveType:(Ljava/lang/Class;)Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
6: astore 4
start local 4 7: iload 3
ifeq 8
aload 0
goto 9
StackMap locals: java.lang.Class
StackMap stack:
8: aload 0
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.boxedTypeToPrimitiveType:(Ljava/lang/Class;)Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
9: astore 5
start local 5 10: aload 5
ifnull 16
aload 4
ifnull 16
11: aload 5
aload 4
if_acmpne 14
12: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 13
iload 2
iload 3
if_icmpne 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals: java.lang.Class
StackMap stack:
iload 2
ireturn
14: StackMap locals:
StackMap stack:
aload 5
aload 4
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.isWideningPrimitiveConversion:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 20
15: iconst_1
ireturn
16: StackMap locals:
StackMap stack:
aload 4
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 18
aload 0
ldc Ljava/lang/String;
if_acmpeq 17
aload 0
ldc Ljava/lang/CharSequence;
if_acmpne 18
17: StackMap locals:
StackMap stack:
iconst_1
ireturn
18: StackMap locals:
StackMap stack:
aload 5
ifnonnull 20
aload 4
ifnull 20
aload 0
aload 4
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.primitiveTypeToBoxedType:(Ljava/lang/Class;)Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 20
19: iconst_1
ireturn
20: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 toType Ljava/lang/Class<*>;
0 21 1 fromType Ljava/lang/Class<*>;
3 21 2 fromIsPrimitive Z
4 21 3 toIsPrimitive Z
7 21 4 fromAsPrimitive Ljava/lang/Class<*>;
10 21 5 toAsPrimitive Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
toType
fromType
private static boolean isSubtypeOf(, java.lang.Class<?>);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: aload 0
instanceof com.oracle.truffle.polyglot.HostObject
ifeq 3
2: aload 0
checkcast com.oracle.truffle.polyglot.HostObject
getfield com.oracle.truffle.polyglot.HostObject.obj:Ljava/lang/Object;
astore 2
3: StackMap locals: java.lang.Object
StackMap stack:
aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 7
4: aload 2
ifnull 6
aload 1
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 5
aload 2
instanceof com.oracle.truffle.api.interop.TruffleObject
ifeq 6
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
StackMap locals:
StackMap stack:
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 2
ifnull 12
8: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.boxedTypeToPrimitiveType:(Ljava/lang/Class;)Ljava/lang/Class;
astore 3
start local 3 9: aload 3
ifnull 12
10: aload 3
aload 1
if_acmpeq 11
aload 1
aload 3
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.isWideningPrimitiveConversion:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifne 11
iconst_0
ireturn
StackMap locals: java.lang.Class
StackMap stack:
11: iconst_1
ireturn
end local 3 12: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 argument Ljava/lang/Object;
0 13 1 parameterType Ljava/lang/Class<*>;
1 13 2 value Ljava/lang/Object;
9 12 3 boxedToPrimitive Ljava/lang/Class<*>;
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
argument
parameterType
private static boolean isWideningPrimitiveConversion(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 4
2: aload 0
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpeq 3
aload 0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpeq 3
aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpeq 3
aload 0
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpeq 3
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpeq 3
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 7
5: aload 0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpeq 6
aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpeq 6
aload 0
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpeq 6
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpeq 6
iconst_0
ireturn
StackMap locals:
StackMap stack:
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 10
8: aload 0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpeq 9
aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpeq 9
aload 0
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpeq 9
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpeq 9
iconst_0
ireturn
StackMap locals:
StackMap stack:
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 13
11: aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpeq 12
aload 0
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpeq 12
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpeq 12
iconst_0
ireturn
StackMap locals:
StackMap stack:
12: iconst_1
ireturn
13: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 16
14: aload 0
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpeq 15
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpeq 15
iconst_0
ireturn
StackMap locals:
StackMap stack:
15: iconst_1
ireturn
16: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 19
17: aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 18
iconst_1
ireturn
StackMap locals:
StackMap stack:
18: iconst_0
ireturn
19: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 toType Ljava/lang/Class<*>;
0 20 1 fromType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
toType
fromType
private static java.lang.RuntimeException ambiguousOverloadsException(java.util.List<com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod>, []);
descriptor: (Ljava/util/List;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: ldc "Multiple applicable overloads found for method name %s (candidates: %s, arguments: %s)"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
aastore
dup
iconst_2
aload 1
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.arrayToStringWithTypes:([Ljava/lang/Object;)Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 1: aload 1
aload 2
invokestatic com.oracle.truffle.api.interop.UnsupportedTypeException.create:([Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 candidates Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;
0 2 1 args [Ljava/lang/Object;
1 2 2 message Ljava/lang/String;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException
Signature: (Ljava/util/List<Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;>;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
MethodParameters:
Name Flags
candidates
args
private static java.lang.RuntimeException noApplicableOverloadsException(com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod[], java.lang.Object[]);
descriptor: ([Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;)Ljava/lang/RuntimeException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: ldc "no applicable overload found (overloads: %s, arguments: %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
aastore
dup
iconst_1
aload 1
invokestatic com.oracle.truffle.polyglot.HostExecuteNode.arrayToStringWithTypes:([Ljava/lang/Object;)Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 1: aload 1
aload 2
invokestatic com.oracle.truffle.api.interop.UnsupportedTypeException.create:([Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 overloads [Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 2 1 args [Ljava/lang/Object;
1 2 2 message Ljava/lang/String;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException
MethodParameters:
Name Flags
overloads
args
private static java.lang.reflect.Type getGenericComponentType(java.lang.reflect.Type);
descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof java.lang.reflect.GenericArrayType
ifeq 1
aload 0
checkcast java.lang.reflect.GenericArrayType
invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
checkcast java.lang.Class
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.reflect.Type
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 type Ljava/lang/reflect/Type;
MethodParameters:
Name Flags
type
private static java.lang.Object[] createVarArgsArray(com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, java.lang.Object[], int);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;[Ljava/lang/Object;I)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterTypes:()[Ljava/lang/Class;
astore 4
start local 4 1: iload 2
anewarray java.lang.Object
astore 3
start local 3 2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: java.lang.Object[] java.lang.Class[] int
StackMap stack:
aload 3
iload 5
aload 1
iload 5
aaload
aastore
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 2
iconst_1
isub
if_icmplt 4
end local 5 7: aload 4
iload 2
iconst_1
isub
aaload
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 5
start local 5 8: aload 5
aload 1
arraylength
iload 2
isub
iconst_1
iadd
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
astore 6
start local 6 9: iload 2
iconst_1
isub
istore 7
start local 7 10: iconst_0
istore 8
start local 8 11: goto 14
12: StackMap locals: com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod java.lang.Object[] int java.lang.Object[] java.lang.Class[] java.lang.Class java.lang.Object int int
StackMap stack:
aload 6
iload 8
aload 1
iload 7
aaload
invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
13: iinc 7 1
iinc 8 1
StackMap locals:
StackMap stack:
14: iload 7
aload 1
arraylength
if_icmplt 12
end local 8 end local 7 15: aload 3
iload 2
iconst_1
isub
aload 6
aastore
16: aload 3
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 method Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 17 1 args [Ljava/lang/Object;
0 17 2 parameterCount I
2 17 3 arguments [Ljava/lang/Object;
1 17 4 parameterTypes [Ljava/lang/Class;
3 7 5 i I
8 17 5 varArgsType Ljava/lang/Class<*>;
9 17 6 varArgs Ljava/lang/Object;
10 15 7 i I
11 15 8 j I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
method
args
parameterCount
private static java.lang.Object doInvoke(com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod, java.lang.Object, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotEngineImpl, com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode);
descriptor: (Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 1
aload 3
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.HostExecuteNode.$assertionsDisabled:Z
ifne 2
aload 2
arraylength
aload 0
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.getParameterCount:()I
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
invokevirtual com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.invokeGuestToHost:(Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 6
start local 6 3: aload 5
aload 4
aload 6
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode.execute:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 method Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod;
0 4 1 obj Ljava/lang/Object;
0 4 2 arguments [Ljava/lang/Object;
0 4 3 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 4 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 4 5 toGuest Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
3 4 6 ret Ljava/lang/Object;
MethodParameters:
Name Flags
method
obj
arguments
engine
languageContext
toGuest
private static java.lang.String arrayToStringWithTypes(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: new java.util.StringJoiner
dup
ldc ", "
ldc "["
ldc "]"
invokespecial java.util.StringJoiner.<init>:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
astore 1
start local 1 1: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: java.lang.Object[] java.util.StringJoiner top int int java.lang.Object[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 1
aload 2
ifnonnull 4
aconst_null
goto 5
StackMap locals: java.lang.Object[] java.util.StringJoiner java.lang.Object int int java.lang.Object[]
StackMap stack: java.util.StringJoiner
4: new java.lang.StringBuilder
dup
aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: java.lang.Object[] java.util.StringJoiner java.lang.Object int int java.lang.Object[]
StackMap stack: java.util.StringJoiner java.lang.String
5: invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
end local 2 6: iinc 3 1
StackMap locals: java.lang.Object[] java.util.StringJoiner top int int java.lang.Object[]
StackMap stack:
7: iload 3
iload 4
if_icmplt 2
8: aload 1
invokevirtual java.util.StringJoiner.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 args [Ljava/lang/Object;
1 9 1 sj Ljava/util/StringJoiner;
3 6 2 arg Ljava/lang/Object;
MethodParameters:
Name Flags
args
}
SourceFile: "HostExecuteNode.java"
NestMembers:
com.oracle.truffle.polyglot.HostExecuteNode$DirectTypeCheck com.oracle.truffle.polyglot.HostExecuteNode$HostMethodProfileNode com.oracle.truffle.polyglot.HostExecuteNode$JavaObjectType com.oracle.truffle.polyglot.HostExecuteNode$NullCheckNode com.oracle.truffle.polyglot.HostExecuteNode$PrimitiveType com.oracle.truffle.polyglot.HostExecuteNode$TargetMappingType com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode
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
final DirectTypeCheck = com.oracle.truffle.polyglot.HostExecuteNode$DirectTypeCheck of com.oracle.truffle.polyglot.HostExecuteNode
abstract HostMethodProfileNode = com.oracle.truffle.polyglot.HostExecuteNode$HostMethodProfileNode of com.oracle.truffle.polyglot.HostExecuteNode
final JavaObjectType = com.oracle.truffle.polyglot.HostExecuteNode$JavaObjectType of com.oracle.truffle.polyglot.HostExecuteNode
final NullCheckNode = com.oracle.truffle.polyglot.HostExecuteNode$NullCheckNode of com.oracle.truffle.polyglot.HostExecuteNode
final PrimitiveType = com.oracle.truffle.polyglot.HostExecuteNode$PrimitiveType of com.oracle.truffle.polyglot.HostExecuteNode
final TargetMappingType = com.oracle.truffle.polyglot.HostExecuteNode$TargetMappingType of com.oracle.truffle.polyglot.HostExecuteNode
abstract TypeCheckNode = com.oracle.truffle.polyglot.HostExecuteNode$TypeCheckNode of com.oracle.truffle.polyglot.HostExecuteNode
final OverloadedMethod = com.oracle.truffle.polyglot.HostMethodDesc$OverloadedMethod of com.oracle.truffle.polyglot.HostMethodDesc
abstract SingleMethod = com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod of com.oracle.truffle.polyglot.HostMethodDesc
abstract ToGuestValueNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.ReportPolymorphism()
com.oracle.truffle.api.dsl.GenerateUncached()