public final class com.oracle.truffle.api.test.host.CallbackConvertTest extends com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.test.host.CallbackConvertTest
super_class: com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
{
private char ch;
descriptor: C
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
public void callback(char);
descriptor: (C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield com.oracle.truffle.api.test.host.CallbackConvertTest.ch:C
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
0 2 1 v C
MethodParameters:
Name Flags
v
protected com.oracle.truffle.api.interop.TruffleObject asTruffleObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/TruffleObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.host.CallbackConvertTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
instanceof com.oracle.truffle.api.interop.TruffleObject
ifeq 3
2: aload 2
checkcast com.oracle.truffle.api.interop.TruffleObject
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.host.CallbackConvertTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asBoxedGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.interop.TruffleObject
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
0 4 1 javaObj Ljava/lang/Object;
1 4 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
javaObj
protected <T> T asJavaObject(java.lang.Class<T>, );
descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.test.host.CallbackConvertTest.context:Lorg/graalvm/polyglot/Context;
aload 2
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
aload 1
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
0 1 1 type Ljava/lang/Class<TT;>;
0 1 2 truffleObject Ljava/lang/Object;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;)TT;
MethodParameters:
Name Flags
type
truffleObject
public void callWithIntTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.setupEnv:()V
1: aload 0
aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asTruffleObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/TruffleObject;
astore 1
start local 1 2: aload 0
ldc Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithInt;
aload 1
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asJavaObject:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt
astore 2
start local 2 3: aload 2
bipush 32
invokeinterface com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt.callback:(I)V
4: ldc 32
aload 0
getfield com.oracle.truffle.api.test.host.CallbackConvertTest.ch:C
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
2 6 1 truffle Lcom/oracle/truffle/api/interop/TruffleObject;
3 6 2 callback Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithInt;
RuntimeVisibleAnnotations:
org.junit.Test()
public void callWithHugeIntTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.setupEnv:()V
1: aload 0
aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asTruffleObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/TruffleObject;
astore 1
start local 1 2: aload 0
ldc Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithInt;
aload 1
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asJavaObject:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt
astore 2
start local 2 3: aload 2
ldc 1073741823
invokeinterface com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt.callback:(I)V
4: new java.lang.StringBuilder
dup
ldc "Should thrown an exception as the int value is too big for char: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.api.test.host.CallbackConvertTest.ch:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
2 6 1 truffle Lcom/oracle/truffle/api/interop/TruffleObject;
3 6 2 callback Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithInt;
RuntimeVisibleAnnotations:
org.junit.Test(expected = Ljava/lang/IllegalArgumentException;)
public void callWithCharTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.setupEnv:()V
1: aload 0
aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asTruffleObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/TruffleObject;
astore 1
start local 1 2: aload 0
ldc Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithChar;
aload 1
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asJavaObject:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithChar
astore 2
start local 2 3: aload 2
bipush 65
invokeinterface com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithChar.callback:(C)V
4: ldc 65
aload 0
getfield com.oracle.truffle.api.test.host.CallbackConvertTest.ch:C
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
2 6 1 truffle Lcom/oracle/truffle/api/interop/TruffleObject;
3 6 2 callback Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithChar;
RuntimeVisibleAnnotations:
org.junit.Test()
public void callWithNegativeNumberTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.setupEnv:()V
1: aload 0
aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asTruffleObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/TruffleObject;
astore 1
start local 1 2: aload 0
ldc Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithInt;
aload 1
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asJavaObject:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt
astore 2
start local 2 3: aload 2
bipush -32
invokeinterface com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt.callback:(I)V
4: ldc "The call will not get here"
lconst_0
aload 0
getfield com.oracle.truffle.api.test.host.CallbackConvertTest.ch:C
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
2 6 1 truffle Lcom/oracle/truffle/api/interop/TruffleObject;
3 6 2 callback Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithInt;
RuntimeVisibleAnnotations:
org.junit.Test(expected = Ljava/lang/IllegalArgumentException;)
public void callWithPositiveNumberTest();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.setupEnv:()V
1: aload 0
aload 0
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asTruffleObject:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/TruffleObject;
astore 1
start local 1 2: aload 0
ldc Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithInt;
aload 1
invokevirtual com.oracle.truffle.api.test.host.CallbackConvertTest.asJavaObject:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt
astore 2
start local 2 3: aload 2
ldc 65504
invokeinterface com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt.callback:(I)V
4: ldc 65504
aload 0
getfield com.oracle.truffle.api.test.host.CallbackConvertTest.ch:C
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/host/CallbackConvertTest;
2 6 1 truffle Lcom/oracle/truffle/api/interop/TruffleObject;
3 6 2 callback Lcom/oracle/truffle/api/test/host/CallbackConvertTest$CallWithInt;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "CallbackConvertTest.java"
NestMembers:
com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithChar com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt
InnerClasses:
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public abstract CallWithChar = com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithChar of com.oracle.truffle.api.test.host.CallbackConvertTest
public abstract CallWithInt = com.oracle.truffle.api.test.host.CallbackConvertTest$CallWithInt of com.oracle.truffle.api.test.host.CallbackConvertTest