abstract class com.oracle.truffle.polyglot.ToHostNode 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.ToHostNode
super_class: com.oracle.truffle.api.nodes.Node
{
static final int LIMIT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 5
static final int HIGHEST;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int STRICT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int LOOSE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int COERCE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int FUNCTION_PROXY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final int OBJECT_PROXY_IFACE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 5
static final int OBJECT_PROXY_CLASS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
static final int HOST_PROXY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 7
static final int LOWEST;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8
static final int[] PRIORITIES;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/ToHostNode;
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.ToHostNode.$assertionsDisabled:Z
3: bipush 9
newarray 10
dup
iconst_1
iconst_1
iastore
dup
iconst_2
iconst_2
iastore
dup
iconst_3
iconst_3
iastore
dup
iconst_4
iconst_4
iastore
dup
iconst_5
iconst_5
iastore
dup
bipush 6
bipush 6
iastore
dup
bipush 7
bipush 7
iastore
dup
bipush 8
bipush 8
iastore
putstatic com.oracle.truffle.polyglot.ToHostNode.PRIORITIES:[I
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
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/ToHostNode;
public abstract execute(, java.lang.Class<?>, java.lang.reflect.Type, com.oracle.truffle.polyglot.PolyglotLanguageContext, boolean);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Ljava/lang/Object;
MethodParameters:
Name Flags
value
targetType
genericType
languageContext
useTargetMapping
protected doCached(, java.lang.Class<?>, java.lang.reflect.Type, com.oracle.truffle.polyglot.PolyglotLanguageContext, boolean, com.oracle.truffle.api.interop.InteropLibrary, java.lang.Class<?>, boolean, boolean, com.oracle.truffle.polyglot.TargetMappingNode, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ZLcom/oracle/truffle/api/interop/InteropLibrary;Ljava/lang/Class;ZZLcom/oracle/truffle/polyglot/TargetMappingNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=10, locals=12, args_size=12
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 0: aload 1
aload 7
aload 3
iload 9
iload 8
aload 4
aload 6
iload 5
aload 10
aload 11
invokestatic com.oracle.truffle.polyglot.ToHostNode.convertImpl:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;ZZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;ZLcom/oracle/truffle/polyglot/TargetMappingNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
areturn
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 1 0 this Lcom/oracle/truffle/polyglot/ToHostNode;
0 1 1 operand Ljava/lang/Object;
0 1 2 targetType Ljava/lang/Class<*>;
0 1 3 genericType Ljava/lang/reflect/Type;
0 1 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 1 5 useCustomTargetTypes Z
0 1 6 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 1 7 cachedTargetType Ljava/lang/Class<*>;
0 1 8 primitiveTarget Z
0 1 9 allowsImplementation Z
0 1 10 targetMapping Lcom/oracle/truffle/polyglot/TargetMappingNode;
0 1 11 error Lcom/oracle/truffle/api/profiles/BranchProfile;
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;ZLcom/oracle/truffle/api/interop/InteropLibrary;Ljava/lang/Class<*>;ZZLcom/oracle/truffle/polyglot/TargetMappingNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"targetType == cachedTargetType"}, limit = "LIMIT")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
4:
5:
com.oracle.truffle.api.library.CachedLibrary(value = "operand")
6:
com.oracle.truffle.api.dsl.Cached(value = "targetType")
7:
com.oracle.truffle.api.dsl.Cached(value = "isPrimitiveTarget(cachedTargetType)")
8:
com.oracle.truffle.api.dsl.Cached(value = "allowsImplementation(languageContext, targetType)")
9:
com.oracle.truffle.api.dsl.Cached()
10:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
operand
targetType
genericType
languageContext
useCustomTargetTypes
interop
cachedTargetType
primitiveTarget
allowsImplementation
targetMapping
error
static boolean allowsImplementation(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.Class<?>);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.isAbstractType:(Ljava/lang/Class;)Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getHostClassCache:()Lcom/oracle/truffle/polyglot/HostClassCache;
aload 1
invokevirtual com.oracle.truffle.polyglot.HostClassCache.forClass:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/HostClassDesc;
astore 2
start local 2 5: aload 2
invokevirtual com.oracle.truffle.polyglot.HostClassDesc.isAllowsImplementation:()Z
ifeq 6
aload 2
invokevirtual com.oracle.truffle.polyglot.HostClassDesc.isAllowedTargetType:()Z
ifeq 6
iconst_1
ireturn
StackMap locals: com.oracle.truffle.polyglot.HostClassDesc
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 languagecontext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 7 1 type Ljava/lang/Class<*>;
5 7 2 classDesc Lcom/oracle/truffle/polyglot/HostClassDesc;
Signature: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class<*>;)Z
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
languagecontext
type
protected static doGeneric(, java.lang.Class<?>, java.lang.reflect.Type, com.oracle.truffle.polyglot.PolyglotLanguageContext, boolean);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Ljava/lang/Object;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=10, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aload 1
invokestatic com.oracle.truffle.polyglot.ToHostNode.allowsImplementation:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class;)Z
1: aload 1
invokestatic com.oracle.truffle.polyglot.ToHostNode.isPrimitiveTarget:(Ljava/lang/Class;)Z
aload 3
2: aload 0
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
3: iload 4
4: invokestatic com.oracle.truffle.polyglot.TargetMappingNode.getUncached:()Lcom/oracle/truffle/polyglot/TargetMappingNode;
5: invokestatic com.oracle.truffle.api.profiles.BranchProfile.getUncached:()Lcom/oracle/truffle/api/profiles/BranchProfile;
6: invokestatic com.oracle.truffle.polyglot.ToHostNode.convertImpl:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;ZZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;ZLcom/oracle/truffle/polyglot/TargetMappingNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 operand Ljava/lang/Object;
0 7 1 targetType Ljava/lang/Class<*>;
0 7 2 genericType Ljava/lang/reflect/Type;
0 7 3 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 7 4 useTargetMapping Z
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"doCached"})
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
operand
targetType
genericType
languageContext
useTargetMapping
static convertLossLess(, java.lang.Class<?>, com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNumber:(Ljava/lang/Object;)Z
ifeq 22
1: aload 1
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpeq 2
aload 1
ldc Ljava/lang/Byte;
if_acmpne 4
2: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asByte:(Ljava/lang/Object;)B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
3: areturn
4: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpeq 5
aload 1
ldc Ljava/lang/Short;
if_acmpne 7
5: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asShort:(Ljava/lang/Object;)S
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
6: areturn
7: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpeq 8
aload 1
ldc Ljava/lang/Integer;
if_acmpne 10
8: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asInt:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
9: areturn
10: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 1
ldc Ljava/lang/Long;
if_acmpne 13
11: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asLong:(Ljava/lang/Object;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
12: areturn
13: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpeq 14
aload 1
ldc Ljava/lang/Float;
if_acmpne 16
14: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asFloat:(Ljava/lang/Object;)F
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
15: areturn
16: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpeq 17
aload 1
ldc Ljava/lang/Double;
if_acmpne 19
17: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDouble:(Ljava/lang/Object;)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
18: areturn
19: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/Number;
if_acmpne 36
20: aload 0
aload 2
invokestatic com.oracle.truffle.polyglot.ToHostNode.convertToNumber:(Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
21: areturn
22: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isBoolean:(Ljava/lang/Object;)Z
ifeq 26
23: aload 1
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpeq 24
aload 1
ldc Ljava/lang/Boolean;
if_acmpne 36
24: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asBoolean:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
25: areturn
26: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
ifeq 36
27: aload 1
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpeq 28
aload 1
ldc Ljava/lang/Character;
if_acmpne 32
28: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
astore 3
start local 3 29: aload 3
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpne 36
30: aload 3
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
31: areturn
end local 3 32: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/String;
if_acmpeq 33
aload 1
ldc Ljava/lang/CharSequence;
if_acmpne 36
33: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
34: areturn
35: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
pop
36: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 value Ljava/lang/Object;
0 37 1 requestedType Ljava/lang/Class<*>;
0 37 2 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
29 32 3 str Ljava/lang/String;
Exception table:
from to target type
0 3 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
4 6 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
7 9 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
10 12 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
13 15 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
16 18 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
19 21 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
22 25 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
26 31 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
32 34 35 Class com.oracle.truffle.api.interop.UnsupportedMessageException
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
MethodParameters:
Name Flags
value
requestedType
interop
private static java.lang.String toString(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 value Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
value
private static convertImpl(, java.lang.Class<?>, java.lang.reflect.Type, boolean, boolean, com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.api.interop.InteropLibrary, boolean, com.oracle.truffle.polyglot.TargetMappingNode, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;ZZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;ZLcom/oracle/truffle/polyglot/TargetMappingNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=12, 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: iload 7
ifeq 4
1: aload 8
aload 0
aload 1
aload 5
aload 6
iconst_0
iconst_0
iconst_1
invokevirtual com.oracle.truffle.polyglot.TargetMappingNode.execute:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;ZII)Ljava/lang/Object;
astore 10
start local 10 2: aload 10
getstatic com.oracle.truffle.polyglot.TargetMappingNode.NO_RESULT:Ljava/lang/Object;
if_acmpeq 4
3: aload 10
areturn
end local 10 4: StackMap locals:
StackMap stack:
iload 4
ifeq 8
5: aload 0
aload 1
aload 6
invokestatic com.oracle.truffle.polyglot.ToHostNode.convertLossLess:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
astore 10
start local 10 6: aload 10
ifnull 8
7: aload 10
areturn
end local 10 8: StackMap locals:
StackMap stack:
aload 1
aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.isJavaInstance:(Ljava/lang/Class;Ljava/lang/Object;)Z
ifeq 10
9: aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.valueOf:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
10: StackMap locals:
StackMap stack:
iload 7
ifeq 14
11: aload 8
aload 0
aload 1
aload 5
aload 6
iconst_0
iconst_2
iconst_2
invokevirtual com.oracle.truffle.polyglot.TargetMappingNode.execute:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;ZII)Ljava/lang/Object;
astore 10
start local 10 12: aload 10
getstatic com.oracle.truffle.polyglot.TargetMappingNode.NO_RESULT:Ljava/lang/Object;
if_acmpeq 14
13: aload 10
areturn
end local 10 14: StackMap locals:
StackMap stack:
iload 4
ifeq 18
15: aload 0
aload 1
aload 6
invokestatic com.oracle.truffle.polyglot.ToHostNode.convertLossy:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
astore 10
start local 10 16: aload 10
ifnull 18
17: aload 10
areturn
end local 10 18: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/graalvm/polyglot/Value;
if_acmpne 22
aload 5
ifnull 22
19: aload 0
instanceof org.graalvm.polyglot.Value
ifeq 20
aload 0
goto 21
StackMap locals:
StackMap stack:
20: aload 5
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
StackMap locals:
StackMap stack: java.lang.Object
21: areturn
22: StackMap locals:
StackMap stack:
aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
ifeq 26
23: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 25
24: aload 5
aload 0
aload 1
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.nullCoercion:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/RuntimeException;
athrow
25: StackMap locals:
StackMap stack:
aconst_null
areturn
26: StackMap locals:
StackMap stack:
aload 0
instanceof com.oracle.truffle.api.interop.TruffleObject
ifeq 30
27: aload 0
checkcast com.oracle.truffle.api.interop.TruffleObject
aload 1
aload 2
iload 3
aload 5
invokestatic com.oracle.truffle.polyglot.ToHostNode.asJavaObject:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;ZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 10
start local 10 28: aload 10
ifnull 30
29: aload 10
areturn
end local 10 30: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 33
31: aload 0
astore 10
start local 10 32: goto 39
end local 10 33: StackMap locals:
StackMap stack:
iload 7
ifeq 37
34: aload 8
aload 0
aload 1
aload 5
aload 6
iconst_0
iconst_3
bipush 8
invokevirtual com.oracle.truffle.polyglot.TargetMappingNode.execute:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;ZII)Ljava/lang/Object;
astore 11
start local 11 35: aload 11
getstatic com.oracle.truffle.polyglot.TargetMappingNode.NO_RESULT:Ljava/lang/Object;
if_acmpeq 37
36: aload 11
areturn
end local 11 37: StackMap locals:
StackMap stack:
aload 9
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
38: aload 5
aload 0
aload 1
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvertPrimitive:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/RuntimeException;
athrow
start local 10 39: StackMap locals: java.lang.Object
StackMap stack:
aload 1
aload 10
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
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 40 0 value Ljava/lang/Object;
0 40 1 targetType Ljava/lang/Class<*>;
0 40 2 genericType Ljava/lang/reflect/Type;
0 40 3 allowsImplementation Z
0 40 4 primitiveTargetType Z
0 40 5 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 40 6 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 40 7 useCustomTargetTypes Z
0 40 8 targetMapping Lcom/oracle/truffle/polyglot/TargetMappingNode;
0 40 9 error Lcom/oracle/truffle/api/profiles/BranchProfile;
2 4 10 result Ljava/lang/Object;
6 8 10 convertedValue Ljava/lang/Object;
12 14 10 convertedValue Ljava/lang/Object;
16 18 10 convertedValue Ljava/lang/Object;
28 30 10 convertedValue Ljava/lang/Object;
32 33 10 convertedValue Ljava/lang/Object;
39 40 10 convertedValue Ljava/lang/Object;
35 37 11 result Ljava/lang/Object;
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;ZZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;ZLcom/oracle/truffle/polyglot/TargetMappingNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
MethodParameters:
Name Flags
value
targetType
genericType
allowsImplementation
primitiveTargetType
languageContext
interop
useCustomTargetTypes
targetMapping
error
private static convertLossy(, java.lang.Class<?>, com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpeq 1
aload 1
ldc Ljava/lang/Character;
if_acmpne 8
1: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInInt:(Ljava/lang/Object;)Z
ifeq 8
2: aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asInt:(Ljava/lang/Object;)I
istore 3
start local 3 3: iload 3
iflt 8
iload 3
ldc 65536
if_icmpge 8
4: iload 3
i2c
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
5: areturn
end local 3 6: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
astore 3
start local 3 7: aload 3
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
pop
end local 3 8: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 value Ljava/lang/Object;
0 9 1 targetType Ljava/lang/Class<*>;
0 9 2 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
3 6 3 v I
7 8 3 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
Exception table:
from to target type
2 5 6 Class com.oracle.truffle.api.interop.UnsupportedMessageException
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
MethodParameters:
Name Flags
value
targetType
interop
static boolean canConvert(, java.lang.Class<?>, java.lang.reflect.Type, java.lang.Boolean, com.oracle.truffle.polyglot.PolyglotLanguageContext, int, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.polyglot.TargetMappingNode);
descriptor: (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
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 7
ifnull 3
1: aload 7
aload 0
aload 1
aload 4
aload 6
iconst_1
iconst_0
iload 5
invokevirtual com.oracle.truffle.polyglot.TargetMappingNode.execute:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;ZII)Ljava/lang/Object;
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
if_acmpne 3
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
iload 5
ifgt 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
ifeq 9
6: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
iconst_1
ireturn
9: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/graalvm/polyglot/Value;
if_acmpne 11
aload 4
ifnull 11
10: iconst_1
ireturn
11: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.polyglot.ToHostNode.isPrimitiveTarget:(Ljava/lang/Class;)Z
ifeq 15
12: aload 0
aload 1
aload 6
invokestatic com.oracle.truffle.polyglot.ToHostNode.convertLossLess:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
astore 8
start local 8 13: aload 8
ifnull 15
14: iconst_1
ireturn
end local 8 15: StackMap locals:
StackMap stack:
aload 1
aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.isJavaInstance:(Ljava/lang/Class;Ljava/lang/Object;)Z
ifeq 17
16: iconst_1
ireturn
17: StackMap locals:
StackMap stack:
iload 5
iconst_1
if_icmpgt 19
18: iconst_0
ireturn
19: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/Object;
if_acmpne 21
20: iconst_1
ireturn
21: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/util/List;
if_acmpne 23
22: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
ireturn
23: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/util/Map;
if_acmpne 25
24: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ireturn
25: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/util/function/Function;
if_acmpne 28
26: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
ifne 27
aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isInstantiable:(Ljava/lang/Object;)Z
ifne 27
iconst_0
ireturn
StackMap locals:
StackMap stack:
27: iconst_1
ireturn
28: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/LocalDate;
if_acmpne 30
29: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isDate:(Ljava/lang/Object;)Z
ireturn
30: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/LocalTime;
if_acmpne 32
31: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTime:(Ljava/lang/Object;)Z
ireturn
32: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/LocalDateTime;
if_acmpne 35
33: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isDate:(Ljava/lang/Object;)Z
ifeq 34
aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTime:(Ljava/lang/Object;)Z
ifeq 34
iconst_1
ireturn
StackMap locals:
StackMap stack:
34: iconst_0
ireturn
35: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/ZonedDateTime;
if_acmpeq 36
aload 1
ldc Ljava/util/Date;
if_acmpeq 36
aload 1
ldc Ljava/time/Instant;
if_acmpne 37
36: StackMap locals:
StackMap stack:
aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isInstant:(Ljava/lang/Object;)Z
ireturn
37: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/ZoneId;
if_acmpne 39
38: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTimeZone:(Ljava/lang/Object;)Z
ireturn
39: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/Duration;
if_acmpne 41
40: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isDuration:(Ljava/lang/Object;)Z
ireturn
41: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/graalvm/polyglot/PolyglotException;
if_acmpne 43
42: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isException:(Ljava/lang/Object;)Z
ireturn
43: StackMap locals:
StackMap stack:
iload 5
iconst_2
if_icmpgt 45
44: iconst_0
ireturn
45: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.isArray:()Z
ifeq 47
46: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
ireturn
47: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.truffle.polyglot.ToHostNode.isPrimitiveTarget:(Ljava/lang/Class;)Z
ifeq 51
48: aload 0
aload 1
aload 6
invokestatic com.oracle.truffle.polyglot.ToHostNode.convertLossy:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
astore 8
start local 8 49: aload 8
ifnull 51
50: iconst_1
ireturn
end local 8 51: StackMap locals:
StackMap stack:
aload 0
instanceof com.oracle.truffle.api.interop.TruffleObject
ifeq 64
52: iload 5
bipush 7
if_icmpge 54
aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.isInstance:(Ljava/lang/Object;)Z
ifeq 54
53: iconst_0
ireturn
54: StackMap locals:
StackMap stack:
iload 5
iconst_4
if_icmplt 58
aload 1
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.isFunctionalInterface:(Ljava/lang/Class;)Z
ifeq 58
55: aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
ifne 56
aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isInstantiable:(Ljava/lang/Object;)Z
ifeq 58
StackMap locals:
StackMap stack:
56: aload 1
aload 3
aload 4
invokestatic com.oracle.truffle.polyglot.ToHostNode.checkAllowsImplementation:(Ljava/lang/Class;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Z
ifeq 58
57: iconst_1
ireturn
58: StackMap locals:
StackMap stack:
iload 5
iconst_5
if_icmplt 59
aload 1
invokevirtual java.lang.Class.isInterface:()Z
ifne 60
StackMap locals:
StackMap stack:
59: iload 5
bipush 6
if_icmplt 63
aload 1
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.isAbstractType:(Ljava/lang/Class;)Z
ifeq 63
60: StackMap locals:
StackMap stack:
aload 6
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifeq 63
61: aload 1
aload 3
aload 4
invokestatic com.oracle.truffle.polyglot.ToHostNode.checkAllowsImplementation:(Ljava/lang/Class;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Z
ifeq 63
62: iconst_1
ireturn
63: StackMap locals:
StackMap stack:
iconst_0
ireturn
64: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.ToHostNode.$assertionsDisabled:Z
ifne 65
aload 0
instanceof com.oracle.truffle.api.interop.TruffleObject
ifeq 65
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
65: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ireturn
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 66 0 value Ljava/lang/Object;
0 66 1 targetType Ljava/lang/Class<*>;
0 66 2 genericType Ljava/lang/reflect/Type;
0 66 3 allowsImplementation Ljava/lang/Boolean;
0 66 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 66 5 priority I
0 66 6 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 66 7 targetMapping Lcom/oracle/truffle/polyglot/TargetMappingNode;
13 15 8 convertedValue Ljava/lang/Object;
49 51 8 convertedValue Ljava/lang/Object;
Signature: (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
MethodParameters:
Name Flags
value
targetType
genericType
allowsImplementation
languageContext
priority
interop
targetMapping
private static boolean checkAllowsImplementation(java.lang.Class<?>, java.lang.Boolean, com.oracle.truffle.polyglot.PolyglotLanguageContext);
descriptor: (Ljava/lang/Class;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 3
1: aload 2
aload 0
invokestatic com.oracle.truffle.polyglot.ToHostNode.allowsImplementation:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class;)Z
istore 3
start local 3 2: goto 4
end local 3 3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Boolean.booleanValue:()Z
istore 3
start local 3 4: StackMap locals: int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 targetType Ljava/lang/Class<*>;
0 5 1 allowsImplementation Ljava/lang/Boolean;
0 5 2 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
2 3 3 implementations Z
4 5 3 implementations Z
Signature: (Ljava/lang/Class<*>;Ljava/lang/Boolean;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Z
MethodParameters:
Name Flags
targetType
allowsImplementation
languageContext
static boolean isPrimitiveTarget(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 0
ldc Ljava/lang/Integer;
if_acmpeq 11
1: aload 0
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 0
ldc Ljava/lang/Boolean;
if_acmpeq 11
2: aload 0
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 0
ldc Ljava/lang/Byte;
if_acmpeq 11
3: aload 0
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 0
ldc Ljava/lang/Short;
if_acmpeq 11
4: aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 0
ldc Ljava/lang/Long;
if_acmpeq 11
5: aload 0
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 0
ldc Ljava/lang/Float;
if_acmpeq 11
6: aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 0
ldc Ljava/lang/Double;
if_acmpeq 11
7: aload 0
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpeq 11
aload 0
ldc Ljava/lang/Character;
if_acmpeq 11
8: aload 0
ldc Ljava/lang/Number;
if_acmpeq 11
9: ldc Ljava/lang/CharSequence;
aload 0
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 11
10: iconst_0
ireturn
StackMap locals:
StackMap stack:
11: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
static java.lang.Object convertToObject(java.lang.Object, com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
ifeq 5
3: aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
4: areturn
5: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isBoolean:(Ljava/lang/Object;)Z
ifeq 8
6: aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asBoolean:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
7: areturn
8: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNumber:(Ljava/lang/Object;)Z
ifeq 13
9: aload 0
aload 2
invokestatic com.oracle.truffle.polyglot.ToHostNode.convertToNumber:(Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
astore 3
start local 3 10: aload 3
ifnull 22
11: aload 3
12: areturn
end local 3 13: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifeq 16
14: aload 0
ldc Ljava/util/Map;
aconst_null
iconst_0
aload 1
invokestatic com.oracle.truffle.polyglot.ToHostNode.asJavaObject:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;ZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
15: areturn
16: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
ifeq 19
17: aload 0
ldc Ljava/util/List;
aconst_null
iconst_0
aload 1
invokestatic com.oracle.truffle.polyglot.ToHostNode.asJavaObject:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;ZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
18: areturn
19: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
ifne 20
aload 2
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isInstantiable:(Ljava/lang/Object;)Z
ifeq 22
20: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/util/function/Function;
aconst_null
iconst_0
aload 1
invokestatic com.oracle.truffle.polyglot.ToHostNode.asJavaObject:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;ZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
21: areturn
22: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
23: areturn
24: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
astore 3
start local 3 25: aload 3
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 value Ljava/lang/Object;
0 26 1 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 26 2 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
10 13 3 result Ljava/lang/Object;
25 26 3 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
Exception table:
from to target type
0 1 24 Class com.oracle.truffle.api.interop.UnsupportedMessageException
2 4 24 Class com.oracle.truffle.api.interop.UnsupportedMessageException
5 7 24 Class com.oracle.truffle.api.interop.UnsupportedMessageException
8 12 24 Class com.oracle.truffle.api.interop.UnsupportedMessageException
13 15 24 Class com.oracle.truffle.api.interop.UnsupportedMessageException
16 18 24 Class com.oracle.truffle.api.interop.UnsupportedMessageException
19 21 24 Class com.oracle.truffle.api.interop.UnsupportedMessageException
22 23 24 Class com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
value
languageContext
interop
private static java.lang.Object convertToNumber(java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
instanceof java.lang.Number
ifeq 3
1: aload 0
2: areturn
3: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInByte:(Ljava/lang/Object;)Z
ifeq 6
4: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asByte:(Ljava/lang/Object;)B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
5: areturn
6: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInShort:(Ljava/lang/Object;)Z
ifeq 9
7: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asShort:(Ljava/lang/Object;)S
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
8: areturn
9: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInInt:(Ljava/lang/Object;)Z
ifeq 12
10: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asInt:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
11: areturn
12: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInLong:(Ljava/lang/Object;)Z
ifeq 15
13: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asLong:(Ljava/lang/Object;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
14: areturn
15: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInFloat:(Ljava/lang/Object;)Z
ifeq 18
16: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asFloat:(Ljava/lang/Object;)F
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
17: areturn
18: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.fitsInDouble:(Ljava/lang/Object;)Z
ifeq 22
19: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDouble:(Ljava/lang/Object;)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
20: areturn
21: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
pop
22: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 value Ljava/lang/Object;
0 23 1 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
Exception table:
from to target type
0 2 21 Class com.oracle.truffle.api.interop.UnsupportedMessageException
3 5 21 Class com.oracle.truffle.api.interop.UnsupportedMessageException
6 8 21 Class com.oracle.truffle.api.interop.UnsupportedMessageException
9 11 21 Class com.oracle.truffle.api.interop.UnsupportedMessageException
12 14 21 Class com.oracle.truffle.api.interop.UnsupportedMessageException
15 17 21 Class com.oracle.truffle.api.interop.UnsupportedMessageException
18 20 21 Class com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
value
interop
private static <T> T asJavaObject(, java.lang.Class<T>, java.lang.reflect.Type, boolean, com.oracle.truffle.polyglot.PolyglotLanguageContext);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;ZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 0
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 1: getstatic com.oracle.truffle.polyglot.ToHostNode.$assertionsDisabled:Z
ifne 2
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: com.oracle.truffle.api.interop.InteropLibrary
StackMap stack:
aload 1
aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.isJavaInstance:(Ljava/lang/Class;Ljava/lang/Object;)Z
ifeq 5
3: aload 0
invokestatic com.oracle.truffle.polyglot.HostObject.valueOf:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 4: goto 124
end local 6 StackMap locals:
StackMap stack:
5: aload 1
ldc Ljava/lang/Object;
if_acmpne 8
6: aload 0
aload 4
aload 5
invokestatic com.oracle.truffle.polyglot.ToHostNode.convertToObject:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
astore 6
start local 6 7: goto 124
end local 6 StackMap locals:
StackMap stack:
8: aload 1
ldc Ljava/util/List;
if_acmpne 15
9: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
ifeq 14
10: aload 0
aload 5
invokestatic com.oracle.truffle.polyglot.ToHostNode.shouldImplementFunction:(Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
istore 7
start local 7 11: aload 2
iconst_0
invokestatic com.oracle.truffle.polyglot.ToHostNode.getGenericParameterType:(Ljava/lang/reflect/Type;I)Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass;
astore 8
start local 8 12: aload 4
aload 0
iload 7
aload 8
getfield com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.clazz:Ljava/lang/Class;
aload 8
getfield com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.type:Ljava/lang/reflect/Type;
invokestatic com.oracle.truffle.polyglot.PolyglotList.create:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;ZLjava/lang/Class;Ljava/lang/reflect/Type;)Ljava/util/List;
astore 6
end local 8 end local 7 start local 6 13: goto 124
end local 6 14: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have array elements."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
15: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/util/Map;
if_acmpne 32
16: aload 2
iconst_0
invokestatic com.oracle.truffle.polyglot.ToHostNode.getGenericParameterType:(Ljava/lang/reflect/Type;I)Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass;
getfield com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.clazz:Ljava/lang/Class;
astore 7
start local 7 17: aload 2
iconst_1
invokestatic com.oracle.truffle.polyglot.ToHostNode.getGenericParameterType:(Ljava/lang/reflect/Type;I)Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass;
astore 8
start local 8 18: aload 7
invokestatic com.oracle.truffle.polyglot.ToHostNode.isSupportedMapKeyType:(Ljava/lang/Class;)Z
ifne 20
19: aload 7
invokestatic com.oracle.truffle.polyglot.ToHostNode.newInvalidKeyTypeException:(Ljava/lang/reflect/Type;)Ljava/lang/RuntimeException;
athrow
20: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary top java.lang.Class com.oracle.truffle.polyglot.ToHostNode$TypeAndClass
StackMap stack:
ldc Ljava/lang/Number;
aload 7
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 21
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
ifeq 21
iconst_1
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 9
start local 9 23: aload 7
ldc Ljava/lang/Object;
if_acmpeq 24
aload 7
ldc Ljava/lang/String;
if_acmpne 25
StackMap locals: int
StackMap stack:
24: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifeq 25
iconst_1
goto 26
StackMap locals:
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: istore 10
start local 10 27: iload 10
ifne 28
iload 9
ifeq 31
28: StackMap locals: int
StackMap stack:
aload 0
aload 5
invokestatic com.oracle.truffle.polyglot.ToHostNode.shouldImplementFunction:(Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
istore 11
start local 11 29: aload 4
aload 0
iload 11
aload 7
aload 8
getfield com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.clazz:Ljava/lang/Class;
aload 8
getfield com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.type:Ljava/lang/reflect/Type;
invokestatic com.oracle.truffle.polyglot.PolyglotMap.create:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;ZLjava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Type;)Ljava/util/Map;
astore 6
end local 11 start local 6 30: goto 124
end local 6 31: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have members or array elements."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 10 end local 9 end local 8 end local 7 32: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary
StackMap stack:
aload 1
ldc Ljava/util/function/Function;
if_acmpne 41
33: aload 2
iconst_1
invokestatic com.oracle.truffle.polyglot.ToHostNode.getGenericParameterType:(Ljava/lang/reflect/Type;I)Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass;
astore 7
start local 7 34: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
ifne 35
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isInstantiable:(Ljava/lang/Object;)Z
ifeq 37
35: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary top com.oracle.truffle.polyglot.ToHostNode$TypeAndClass
StackMap stack:
aload 4
aload 0
aload 7
getfield com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.clazz:Ljava/lang/Class;
aload 7
getfield com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.type:Ljava/lang/reflect/Type;
invokestatic com.oracle.truffle.polyglot.PolyglotFunction.create:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/polyglot/PolyglotFunction;
astore 6
start local 6 36: goto 124
end local 6 StackMap locals:
StackMap stack:
37: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifeq 40
38: aload 1
aload 0
aload 4
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.newProxyInstance:(Ljava/lang/Class;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 6
start local 6 39: goto 124
end local 6 40: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must be executable or instantiable."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 7 41: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary
StackMap stack:
aload 1
invokevirtual java.lang.Class.isArray:()Z
ifeq 46
42: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
ifeq 45
43: aload 5
aload 0
aload 1
aload 2
aload 4
invokestatic com.oracle.truffle.polyglot.ToHostNode.truffleObjectToArray:(Lcom/oracle/truffle/api/interop/InteropLibrary;Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 6
start local 6 44: goto 124
end local 6 45: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have array elements."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
46: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/LocalDate;
if_acmpne 53
47: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isDate:(Ljava/lang/Object;)Z
ifeq 52
48: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDate:(Ljava/lang/Object;)Ljava/time/LocalDate;
astore 6
start local 6 49: goto 124
end local 6 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
50: astore 7
start local 7 51: aload 7
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 7 52: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have date and time information."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
53: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/LocalTime;
if_acmpne 60
54: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTime:(Ljava/lang/Object;)Z
ifeq 59
55: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asTime:(Ljava/lang/Object;)Ljava/time/LocalTime;
astore 6
start local 6 56: goto 124
end local 6 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
57: astore 7
start local 7 58: aload 7
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 7 59: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have date and time information."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
60: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/LocalDateTime;
if_acmpne 70
61: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isDate:(Ljava/lang/Object;)Z
ifeq 69
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTime:(Ljava/lang/Object;)Z
ifeq 69
62: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDate:(Ljava/lang/Object;)Ljava/time/LocalDate;
astore 7
start local 7 63: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asTime:(Ljava/lang/Object;)Ljava/time/LocalTime;
astore 8
start local 8 64: goto 67
end local 8 end local 7 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
65: astore 9
start local 9 66: aload 9
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 9 start local 7 start local 8 67: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary top java.time.LocalDate java.time.LocalTime
StackMap stack:
aload 7
aload 8
invokestatic com.oracle.truffle.polyglot.ToHostNode.createDateTime:(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
astore 6
end local 8 end local 7 start local 6 68: goto 124
end local 6 69: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have date and time information."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
70: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/ZonedDateTime;
if_acmpne 81
71: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isDate:(Ljava/lang/Object;)Z
ifeq 80
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTime:(Ljava/lang/Object;)Z
ifeq 80
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTimeZone:(Ljava/lang/Object;)Z
ifeq 80
72: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDate:(Ljava/lang/Object;)Ljava/time/LocalDate;
astore 7
start local 7 73: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asTime:(Ljava/lang/Object;)Ljava/time/LocalTime;
astore 8
start local 8 74: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asTimeZone:(Ljava/lang/Object;)Ljava/time/ZoneId;
astore 9
start local 9 75: goto 78
end local 9 end local 8 end local 7 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
76: astore 10
start local 10 77: aload 10
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 10 start local 7 start local 8 start local 9 78: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary top java.time.LocalDate java.time.LocalTime java.time.ZoneId
StackMap stack:
aload 7
aload 8
aload 9
invokestatic com.oracle.truffle.polyglot.ToHostNode.createZonedDateTime:(Ljava/time/LocalDate;Ljava/time/LocalTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
astore 6
end local 9 end local 8 end local 7 start local 6 79: goto 124
end local 6 80: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have date, time and time-zone information."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
81: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/ZoneId;
if_acmpne 88
82: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTimeZone:(Ljava/lang/Object;)Z
ifeq 87
83: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asTimeZone:(Ljava/lang/Object;)Ljava/time/ZoneId;
astore 6
start local 6 84: goto 124
end local 6 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
85: astore 7
start local 7 86: aload 7
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 7 87: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have time-zone information."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
88: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/Instant;
if_acmpeq 89
aload 1
ldc Ljava/util/Date;
if_acmpne 100
89: StackMap locals:
StackMap stack:
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isDate:(Ljava/lang/Object;)Z
ifeq 99
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTime:(Ljava/lang/Object;)Z
ifeq 99
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isTimeZone:(Ljava/lang/Object;)Z
ifeq 99
90: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asInstant:(Ljava/lang/Object;)Ljava/time/Instant;
astore 7
start local 7 91: goto 94
end local 7 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
92: astore 8
start local 8 93: aload 8
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 8 start local 7 94: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary top java.time.Instant
StackMap stack:
aload 1
ldc Ljava/util/Date;
if_acmpne 97
95: aload 7
invokestatic java.util.Date.from:(Ljava/time/Instant;)Ljava/util/Date;
astore 6
start local 6 96: goto 124
end local 6 97: StackMap locals:
StackMap stack:
aload 1
aload 7
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
end local 7 start local 6 98: goto 124
end local 6 99: StackMap locals: java.lang.Object java.lang.Class java.lang.reflect.Type int com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.interop.InteropLibrary
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have date, time and time-zone information."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
100: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/time/Duration;
if_acmpne 107
101: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isDuration:(Ljava/lang/Object;)Z
ifeq 106
102: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asDuration:(Ljava/lang/Object;)Ljava/time/Duration;
astore 6
start local 6 103: goto 124
end local 6 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
104: astore 7
start local 7 105: aload 7
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 7 106: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have duration information."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
107: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/graalvm/polyglot/PolyglotException;
if_acmpne 112
108: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isException:(Ljava/lang/Object;)Z
ifeq 111
109: aload 0
aload 5
aload 4
invokestatic com.oracle.truffle.polyglot.ToHostNode.asPolyglotException:(Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 6
start local 6 110: goto 124
end local 6 111: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must be an exception."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
112: StackMap locals:
StackMap stack:
iload 3
ifeq 123
aload 1
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.isAbstractType:(Ljava/lang/Class;)Z
ifeq 123
113: aload 1
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.isFunctionalInterface:(Ljava/lang/Class;)Z
ifeq 116
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
ifne 114
aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isInstantiable:(Ljava/lang/Object;)Z
ifeq 116
114: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 4
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.asJavaFunction:(Ljava/lang/Class;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 6
start local 6 115: goto 124
end local 6 StackMap locals:
StackMap stack:
116: aload 5
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
ifeq 122
117: aload 1
invokevirtual java.lang.Class.isInterface:()Z
ifeq 120
118: aload 1
aload 0
aload 4
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.newProxyInstance:(Ljava/lang/Class;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 6
start local 6 119: goto 124
end local 6 120: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 4
invokestatic com.oracle.truffle.polyglot.HostInteropReflect.newAdapterInstance:(Ljava/lang/Class;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
astore 6
start local 6 121: goto 124
end local 6 122: StackMap locals:
StackMap stack:
aload 4
aload 0
aload 1
ldc "Value must have members."
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.cannotConvert:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
123: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 6 124: StackMap locals: java.lang.Object
StackMap stack:
getstatic com.oracle.truffle.polyglot.ToHostNode.$assertionsDisabled:Z
ifne 125
aload 1
aload 6
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 125
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
125: StackMap locals:
StackMap stack:
aload 1
aload 6
invokevirtual java.lang.Class.cast:(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 126 0 value Ljava/lang/Object;
0 126 1 targetType Ljava/lang/Class<TT;>;
0 126 2 genericType Ljava/lang/reflect/Type;
0 126 3 allowsImplementation Z
0 126 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
1 126 5 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
4 5 6 obj Ljava/lang/Object;
7 8 6 obj Ljava/lang/Object;
13 14 6 obj Ljava/lang/Object;
30 31 6 obj Ljava/lang/Object;
36 37 6 obj Ljava/lang/Object;
39 40 6 obj Ljava/lang/Object;
44 45 6 obj Ljava/lang/Object;
49 50 6 obj Ljava/lang/Object;
56 57 6 obj Ljava/lang/Object;
68 69 6 obj Ljava/lang/Object;
79 80 6 obj Ljava/lang/Object;
84 85 6 obj Ljava/lang/Object;
96 97 6 obj Ljava/lang/Object;
98 99 6 obj Ljava/lang/Object;
103 104 6 obj Ljava/lang/Object;
110 111 6 obj Ljava/lang/Object;
115 116 6 obj Ljava/lang/Object;
119 120 6 obj Ljava/lang/Object;
121 122 6 obj Ljava/lang/Object;
124 126 6 obj Ljava/lang/Object;
11 13 7 implementsFunction Z
12 13 8 elementType Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass<*>;
17 32 7 keyClazz Ljava/lang/Class<*>;
18 32 8 valueType Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass<*>;
23 32 9 hasSize Z
27 32 10 hasKeys Z
29 30 11 implementsFunction Z
34 41 7 returnType Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass<*>;
51 52 7 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
58 59 7 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
63 65 7 date Ljava/time/LocalDate;
67 68 7 date Ljava/time/LocalDate;
64 65 8 time Ljava/time/LocalTime;
67 68 8 time Ljava/time/LocalTime;
66 67 9 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
73 76 7 date Ljava/time/LocalDate;
78 79 7 date Ljava/time/LocalDate;
74 76 8 time Ljava/time/LocalTime;
78 79 8 time Ljava/time/LocalTime;
75 76 9 timeZone Ljava/time/ZoneId;
78 79 9 timeZone Ljava/time/ZoneId;
77 78 10 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
86 87 7 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
91 92 7 instantValue Ljava/time/Instant;
94 98 7 instantValue Ljava/time/Instant;
93 94 8 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
105 106 7 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
Exception table:
from to target type
48 49 50 Class com.oracle.truffle.api.interop.UnsupportedMessageException
55 56 57 Class com.oracle.truffle.api.interop.UnsupportedMessageException
62 64 65 Class com.oracle.truffle.api.interop.UnsupportedMessageException
72 75 76 Class com.oracle.truffle.api.interop.UnsupportedMessageException
83 84 85 Class com.oracle.truffle.api.interop.UnsupportedMessageException
90 91 92 Class com.oracle.truffle.api.interop.UnsupportedMessageException
102 103 104 Class com.oracle.truffle.api.interop.UnsupportedMessageException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;Ljava/lang/reflect/Type;ZLcom/oracle/truffle/polyglot/PolyglotLanguageContext;)TT;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
value
targetType
genericType
allowsImplementation
languageContext
private static java.lang.Object asPolyglotException(java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.polyglot.PolyglotLanguageContext);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.throwException:(Ljava/lang/Object;)Ljava/lang/RuntimeException;
pop
1: invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
athrow
2: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
astore 3
start local 3 3: aload 3
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 3 4: StackMap locals:
StackMap stack: java.lang.ThreadDeath
astore 3
start local 3 5: aload 3
athrow
end local 3 6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 7: aload 2
aload 3
iconst_1
invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 value Ljava/lang/Object;
0 8 1 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
0 8 2 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
3 4 3 e Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
5 6 3 e Ljava/lang/ThreadDeath;
7 8 3 e Ljava/lang/Throwable;
Exception table:
from to target type
0 2 2 Class com.oracle.truffle.api.interop.UnsupportedMessageException
0 2 4 Class java.lang.ThreadDeath
0 2 6 Class java.lang.Throwable
MethodParameters:
Name Flags
value
interop
languageContext
private static java.time.ZonedDateTime createZonedDateTime(java.time.LocalDate, java.time.LocalTime, java.time.ZoneId);
descriptor: (Ljava/time/LocalDate;Ljava/time/LocalTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic java.time.ZonedDateTime.of:(Ljava/time/LocalDate;Ljava/time/LocalTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 date Ljava/time/LocalDate;
0 1 1 time Ljava/time/LocalTime;
0 1 2 timeZone Ljava/time/ZoneId;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
date
time
timeZone
private static java.time.LocalDateTime createDateTime(java.time.LocalDate, java.time.LocalTime);
descriptor: (Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
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 java.time.LocalDateTime.of:(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 date Ljava/time/LocalDate;
0 1 1 time Ljava/time/LocalTime;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
date
time
private static boolean shouldImplementFunction(java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iload 2
ifne 4
3: aload 1
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isInstantiable:(Ljava/lang/Object;)Z
istore 3
4: StackMap locals: int int
StackMap stack:
iload 2
ifne 5
iload 3
ifne 5
iconst_0
goto 6
StackMap locals:
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: istore 4
start local 4 7: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 truffleObject Ljava/lang/Object;
0 8 1 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
1 8 2 executable Z
2 8 3 instantiable Z
7 8 4 implementsFunction Z
MethodParameters:
Name Flags
truffleObject
interop
private static boolean isSupportedMapKeyType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc Ljava/lang/Object;
if_acmpeq 1
aload 0
ldc Ljava/lang/String;
if_acmpeq 1
aload 0
ldc Ljava/lang/Long;
if_acmpeq 1
aload 0
ldc Ljava/lang/Integer;
if_acmpeq 1
aload 0
ldc Ljava/lang/Number;
if_acmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 keyType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
keyType
private static java.lang.RuntimeException newInvalidKeyTypeException(java.lang.reflect.Type);
descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/RuntimeException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Unsupported Map key type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.classCast:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 targetType Ljava/lang/reflect/Type;
1 2 1 message Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
targetType
private static com.oracle.truffle.polyglot.ToHostNode$TypeAndClass<?> getGenericParameterType(java.lang.reflect.Type, int);
descriptor: (Ljava/lang/reflect/Type;I)Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
instanceof java.lang.reflect.ParameterizedType
ifeq 11
1: aload 0
checkcast java.lang.reflect.ParameterizedType
astore 2
start local 2 2: aload 2
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
astore 3
start local 3 3: ldc Ljava/lang/Object;
astore 4
start local 4 4: iload 1
aload 3
arraylength
if_icmpge 11
5: aload 3
iload 1
aaload
astore 5
start local 5 6: aload 5
instanceof java.lang.reflect.ParameterizedType
ifeq 8
7: aload 5
checkcast java.lang.reflect.ParameterizedType
invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
astore 5
8: StackMap locals: java.lang.reflect.Type int java.lang.reflect.ParameterizedType java.lang.reflect.Type[] java.lang.Class java.lang.reflect.Type
StackMap stack:
aload 5
instanceof java.lang.Class
ifeq 10
9: aload 5
checkcast java.lang.Class
astore 4
10: StackMap locals:
StackMap stack:
new com.oracle.truffle.polyglot.ToHostNode$TypeAndClass
dup
aload 3
iload 1
aaload
aload 4
invokespecial com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.<init>:(Ljava/lang/reflect/Type;Ljava/lang/Class;)V
areturn
end local 5 end local 4 end local 3 end local 2 11: StackMap locals: java.lang.reflect.Type int
StackMap stack:
getstatic com.oracle.truffle.polyglot.ToHostNode$TypeAndClass.ANY:Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 genericType Ljava/lang/reflect/Type;
0 12 1 index I
2 11 2 parametrizedType Ljava/lang/reflect/ParameterizedType;
3 11 3 typeArguments [Ljava/lang/reflect/Type;
4 11 4 elementClass Ljava/lang/Class<*>;
6 11 5 elementType Ljava/lang/reflect/Type;
Signature: (Ljava/lang/reflect/Type;I)Lcom/oracle/truffle/polyglot/ToHostNode$TypeAndClass<*>;
MethodParameters:
Name Flags
genericType
index
private static java.lang.reflect.Type getGenericArrayComponentType(java.lang.reflect.Type);
descriptor: (Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
instanceof java.lang.reflect.GenericArrayType
ifeq 4
2: aload 0
checkcast java.lang.reflect.GenericArrayType
astore 2
start local 2 3: aload 2
invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
astore 1
end local 2 4: StackMap locals: java.lang.reflect.Type
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 genericType Ljava/lang/reflect/Type;
1 5 1 genericComponentType Ljava/lang/reflect/Type;
3 4 2 genericArrayType Ljava/lang/reflect/GenericArrayType;
MethodParameters:
Name Flags
genericType
private static truffleObjectToArray(com.oracle.truffle.api.interop.InteropLibrary, , java.lang.Class<?>, java.lang.reflect.Type, com.oracle.truffle.polyglot.PolyglotLanguageContext);
descriptor: (Lcom/oracle/truffle/api/interop/InteropLibrary;Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=5
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
Signature: (Lcom/oracle/truffle/api/interop/InteropLibrary;Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Ljava/lang/Object;
MethodParameters:
Name Flags
interop
receiver
arrayType
genericArrayType
languageContext
}
SourceFile: "ToHostNode.java"
NestMembers:
com.oracle.truffle.polyglot.ToHostNode$TypeAndClass
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
final TypeAndClass = com.oracle.truffle.polyglot.ToHostNode$TypeAndClass of com.oracle.truffle.polyglot.ToHostNode
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.GenerateUncached()