public class com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest extends com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest
super_class: com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
{
private static final com.oracle.truffle.api.interop.InteropLibrary INTEROP;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
putstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
return
LocalVariableTable:
Start End Slot Name Signature
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/polyglot/LanguageSPIHostInteropTest;
public void before();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.setupEnv:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
RuntimeVisibleAnnotations:
org.junit.Before()
public void testSystemMethod();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ldc Ljava/lang/System;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.lookupHostSymbol:(Ljava/lang/String;)Ljava/lang/Object;
astore 1
start local 1 1: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "getProperty"
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "file.separator"
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 2: aload 2
ldc Ljava/lang/String;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
3: aload 2
ldc "/"
invokestatic org.hamcrest.CoreMatchers.equalTo:(Ljava/lang/Object;)Lorg/hamcrest/Matcher;
ldc "\\"
invokestatic org.hamcrest.CoreMatchers.equalTo:(Ljava/lang/Object;)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.CoreMatchers.anyOf:(Lorg/hamcrest/Matcher;Lorg/hamcrest/Matcher;)Lorg/hamcrest/core/AnyOf;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
4: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "getProperty"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 3
start local 3 5: aload 3
ldc Lcom/oracle/truffle/api/interop/TruffleObject;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
6: ldc "IS_EXECUTABLE"
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
7: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "file.separator"
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 2
8: aload 2
ldc Ljava/lang/String;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
9: aload 2
ldc "/"
invokestatic org.hamcrest.CoreMatchers.equalTo:(Ljava/lang/Object;)Lorg/hamcrest/Matcher;
ldc "\\"
invokestatic org.hamcrest.CoreMatchers.equalTo:(Ljava/lang/Object;)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.CoreMatchers.anyOf:(Lorg/hamcrest/Matcher;Lorg/hamcrest/Matcher;)Lorg/hamcrest/core/AnyOf;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 11 1 system Ljava/lang/Object;
2 11 2 value Ljava/lang/Object;
5 11 3 getProperty Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
RuntimeVisibleAnnotations:
org.junit.Test()
public void conversionToClassYieldsTheClass();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ldc Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest$TestClass;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ldc Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest$TestClass;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.lookupHostSymbol:(Ljava/lang/String;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 2: aload 1
instanceof java.lang.Class
invokestatic org.junit.Assert.assertTrue:(Z)V
3: ldc "Both class objects are the same"
aload 1
aload 2
invokestatic org.junit.Assert.assertSame:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 5 1 javaValue Ljava/lang/Object;
2 5 2 javaSymbol Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
public void conversionToClassNull();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aconst_null
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.findMetaObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 1
start local 1 1: aload 1
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 3 1 meta Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
public void nullAsJavaObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aconst_null
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 4 1 nullObject Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
public void assertKeysAndProperties();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=1
start local 0 0: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 2
start local 2 2: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 3: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 3
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Ljava/util/List;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 4: aload 4
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "x"
aastore
dup
iconst_1
ldc "y"
aastore
dup
iconst_2
ldc "arr"
aastore
dup
iconst_3
ldc "value"
aastore
dup
iconst_4
ldc "map"
aastore
dup
iconst_5
ldc "dataMap"
aastore
dup
bipush 6
ldc "data"
aastore
dup
bipush 7
ldc "plus"
aastore
invokestatic org.hamcrest.CoreMatchers.hasItems:([Ljava/lang/Object;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
5: ldc Ljava/lang/Object;
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
astore 5
start local 5 6: aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 10
StackMap locals: com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data com.oracle.truffle.api.interop.TruffleObject java.lang.Object java.util.List java.lang.reflect.Method[] top int int java.lang.reflect.Method[]
StackMap stack:
7: aload 9
iload 7
aaload
astore 6
start local 6 8: ldc "No java.lang.Object methods"
aload 4
aload 6
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokestatic org.hamcrest.CoreMatchers.hasItem:(Ljava/lang/Object;)Lorg/hamcrest/Matcher;
invokestatic org.hamcrest.CoreMatchers.not:(Lorg/hamcrest/Matcher;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
end local 6 9: iinc 7 1
StackMap locals:
StackMap stack:
10: iload 7
iload 8
if_icmplt 7
11: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
iconst_1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;Z)Ljava/lang/Object;
astore 3
12: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 3
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Ljava/util/List;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.List
astore 4
13: aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 17
StackMap locals:
StackMap stack:
14: aload 9
iload 7
aaload
astore 6
start local 6 15: ldc "java.lang.Object methods"
aload 4
aload 6
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokestatic org.hamcrest.CoreMatchers.hasItem:(Ljava/lang/Object;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/String;Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
end local 6 16: iinc 7 1
StackMap locals:
StackMap stack:
17: iload 7
iload 8
if_icmplt 14
18: return
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 19 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 19 1 dataObj Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
2 19 2 data Lcom/oracle/truffle/api/interop/TruffleObject;
3 19 3 keys Ljava/lang/Object;
4 19 4 list Ljava/util/List<Ljava/lang/Object;>;
6 19 5 objectMethods [Ljava/lang/reflect/Method;
8 9 6 objectMethod Ljava/lang/reflect/Method;
15 16 6 objectMethod Ljava/lang/reflect/Method;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
RuntimeVisibleAnnotations:
org.junit.Test()
public void invokeJavaLangObjectFields();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=1
start local 0 0: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 2
start local 2 2: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
ldc "toString"
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 3: aload 3
instanceof java.lang.String
ifeq 4
aload 3
checkcast java.lang.String
new java.lang.StringBuilder
dup
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "@"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
iconst_1
goto 5
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data com.oracle.truffle.api.interop.TruffleObject java.lang.Object
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: invokestatic org.junit.Assert.assertTrue:(Z)V
6: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
ldc "getClass"
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 7: aload 4
instanceof com.oracle.truffle.api.interop.TruffleObject
ifeq 8
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 4
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
if_acmpne 8
iconst_1
goto 9
StackMap locals: java.lang.Object
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: invokestatic org.junit.Assert.assertTrue:(Z)V
10: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
ldc "equals"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
ldc "hashCode"
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
instanceof java.lang.Integer
invokestatic org.junit.Assert.assertTrue:(Z)V
12: iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "notify"
aastore
dup
iconst_1
ldc "notifyAll"
aastore
dup
iconst_2
ldc "wait"
aastore
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 16
StackMap locals: com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data com.oracle.truffle.api.interop.TruffleObject java.lang.Object java.lang.Object top int int java.lang.String[]
StackMap stack:
13: aload 8
iload 6
aaload
astore 5
start local 5 14: aload 0
aload 2
aload 5
invokedynamic call(Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/String;)Ljava/util/concurrent/Callable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest.lambda$0(Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/String;)Ljava/lang/Object; (6)
()Ljava/lang/Object;
ldc Ljava/lang/IllegalMonitorStateException;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertThrowsExceptionWithCause:(Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
end local 5 15: iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
iload 7
if_icmplt 13
17: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 18 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
2 18 2 obj Lcom/oracle/truffle/api/interop/TruffleObject;
3 18 3 string Ljava/lang/Object;
7 18 4 clazz Ljava/lang/Object;
14 15 5 m Ljava/lang/String;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
RuntimeVisibleAnnotations:
org.junit.Test()
public void indexJavaArrayWithNumberTypes();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: iconst_3
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
iconst_2
iastore
dup
iconst_2
iconst_3
iastore
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 2
start local 2 2: iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
lconst_1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
3: iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
lconst_1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
lconst_1
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.writeArrayElement:(Ljava/lang/Object;JLjava/lang/Object;)V
5: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
lconst_1
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.writeArrayElement:(Ljava/lang/Object;JLjava/lang/Object;)V
6: bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
lconst_1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
lconst_1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 9 1 a [I
2 9 2 truffleObject Lcom/oracle/truffle/api/interop/TruffleObject;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testAsGuestValue();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
astore 2
start local 2 3: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 4: aload 3
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
5: bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 1
6: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 7
iconst_1
goto 8
StackMap locals: java.lang.Object com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data java.lang.Object
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: invokestatic org.junit.Assert.assertTrue:(Z)V
9: bipush 42
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
astore 1
10: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 11
iconst_1
goto 12
StackMap locals:
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: invokestatic org.junit.Assert.assertTrue:(Z)V
13: bipush 42
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
astore 1
14: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 15
iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: invokestatic org.junit.Assert.assertTrue:(Z)V
17: ldc 424242424242
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 1
18: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 19
iconst_1
goto 20
StackMap locals:
StackMap stack:
19: iconst_0
StackMap locals:
StackMap stack: int
20: invokestatic org.junit.Assert.assertTrue:(Z)V
21: ldc 42.42
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
astore 1
22: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 23
iconst_1
goto 24
StackMap locals:
StackMap stack:
23: iconst_0
StackMap locals:
StackMap stack: int
24: invokestatic org.junit.Assert.assertTrue:(Z)V
25: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 1
26: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 27
iconst_1
goto 28
StackMap locals:
StackMap stack:
27: iconst_0
StackMap locals:
StackMap stack: int
28: invokestatic org.junit.Assert.assertTrue:(Z)V
29: ldc "42"
astore 1
30: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 31
iconst_1
goto 32
StackMap locals:
StackMap stack:
31: iconst_0
StackMap locals:
StackMap stack: int
32: invokestatic org.junit.Assert.assertTrue:(Z)V
33: bipush 52
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
astore 1
34: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 35
iconst_1
goto 36
StackMap locals:
StackMap stack:
35: iconst_0
StackMap locals:
StackMap stack: int
36: invokestatic org.junit.Assert.assertTrue:(Z)V
37: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 1
38: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
aload 1
if_acmpne 39
iconst_1
goto 40
StackMap locals:
StackMap stack:
39: iconst_0
StackMap locals:
StackMap stack: int
40: invokestatic org.junit.Assert.assertTrue:(Z)V
41: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 42 1 object Ljava/lang/Object;
3 42 2 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
4 42 3 obj Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
public void notUnboxable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic call(Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;)Ljava/util/concurrent/Callable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest.lambda$1()Ljava/lang/Object; (7)
()Ljava/lang/Object;
ldc Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertError:(Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
1: aload 0
invokedynamic call(Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;)Ljava/util/concurrent/Callable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest.lambda$2()Ljava/lang/Object; (7)
()Ljava/lang/Object;
ldc Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertError:(Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
2: aload 0
invokedynamic call(Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;)Ljava/util/concurrent/Callable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest.lambda$3()Ljava/lang/Object; (7)
()Ljava/lang/Object;
ldc Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertError:(Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testPrimitiveBoxing();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertNumberMembers:(Ljava/lang/Number;)V
1: aload 0
iconst_1
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertNumberMembers:(Ljava/lang/Number;)V
2: aload 0
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertNumberMembers:(Ljava/lang/Number;)V
3: aload 0
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertNumberMembers:(Ljava/lang/Number;)V
4: aload 0
fconst_1
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertNumberMembers:(Ljava/lang/Number;)V
5: aload 0
dconst_1
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertNumberMembers:(Ljava/lang/Number;)V
6: aload 0
ldc "foobarbaz"
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ldc "foobarbaz"
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asBoxedGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertStringMembers:(Ljava/lang/String;Ljava/lang/Object;)V
7: aload 0
ldc ""
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ldc ""
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asBoxedGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertStringMembers:(Ljava/lang/String;Ljava/lang/Object;)V
8: aload 0
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asBoxedGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertBooleanMembers:(Ljava/lang/Object;Ljava/lang/Object;)V
9: aload 0
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asBoxedGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertBooleanMembers:(Ljava/lang/Object;Ljava/lang/Object;)V
10: aload 0
bipush 97
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
bipush 97
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asBoxedGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertCharacterMembers:(Ljava/lang/Character;Ljava/lang/Object;)V
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
RuntimeVisibleAnnotations:
org.junit.Test()
private void assertNumberMembers(java.lang.Number);
descriptor: (Ljava/lang/Number;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asBoxedGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
instanceof com.oracle.truffle.api.interop.TruffleObject
invokestatic org.junit.Assert.assertTrue:(Z)V
2: aload 1
invokevirtual java.lang.Number.intValue:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
ldc "intValue"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
3: aload 1
invokevirtual java.lang.Number.longValue:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 2
ldc "longValue"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
4: aload 1
invokevirtual java.lang.Number.floatValue:()F
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
aload 2
ldc "floatValue"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
5: aload 1
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aload 2
ldc "doubleValue"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
6: aload 1
invokevirtual java.lang.Number.byteValue:()B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aload 2
ldc "byteValue"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
7: aload 1
invokevirtual java.lang.Number.shortValue:()S
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
aload 2
ldc "shortValue"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
8: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
ldc "equals"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
9: aload 1
invokevirtual java.lang.Object.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
ldc "hashCode"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
10: aload 1
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 2
ldc "toString"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
11: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
12: aload 1
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
0 14 1 testNumber Ljava/lang/Number;
1 14 2 guestValue Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
testNumber
private static void assertInvocable(java.lang.Object, java.lang.Object, java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 4
start local 4 1: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberInvocable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
3: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberWritable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
4: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberInsertable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
5: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberInternal:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
6: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberRemovable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
7: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 5
start local 5 8: aload 0
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: aload 0
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: aload 4
aload 2
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertHasKey:(Ljava/lang/Object;Ljava/lang/String;)V
11: return
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 12 0 expectedValue Ljava/lang/Object;
0 12 1 receiver Ljava/lang/Object;
0 12 2 method Ljava/lang/String;
0 12 3 args [Ljava/lang/Object;
1 12 4 o Lcom/oracle/truffle/api/interop/TruffleObject;
8 12 5 methodObject Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
expectedValue
receiver
method
args
private static void assertHasKey(java.lang.Object, java.lang.String);
descriptor: (Ljava/lang/Object;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 2
start local 2 1: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
lstore 4
start local 4 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 11
6: StackMap locals: java.lang.Object java.lang.String com.oracle.truffle.api.interop.TruffleObject java.lang.Object long java.util.List int
StackMap stack:
getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
iload 7
i2l
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 7: aload 8
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
8: return
9: StackMap locals: java.lang.String
StackMap stack:
aload 6
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 10: iinc 7 1
StackMap locals:
StackMap stack:
11: iload 7
i2l
lload 4
lcmp
iflt 6
end local 7 12: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Key not found "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ". Keys are "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 receiver Ljava/lang/Object;
0 13 1 key Ljava/lang/String;
1 13 2 o Lcom/oracle/truffle/api/interop/TruffleObject;
2 13 3 keys Ljava/lang/Object;
3 13 4 size J
4 13 6 allKeys Ljava/util/List<Ljava/lang/String;>;
5 12 7 i I
7 10 8 search Ljava/lang/String;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
receiver
key
private void assertStringMembers(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
astore 3
start local 3 1: aload 1
aload 3
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 3
invokevirtual java.lang.String.length:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
ldc "length"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
3: aload 1
invokevirtual java.lang.String.length:()I
ifle 5
4: aload 3
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
aload 2
ldc "charAt"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: java.lang.String
StackMap stack:
aload 3
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
ldc "equals"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
6: aload 3
invokevirtual java.lang.String.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
ldc "hashCode"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
7: aload 3
invokevirtual java.lang.String.toString:()Ljava/lang/String;
aload 2
ldc "toString"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
8: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
9: aload 3
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
0 11 1 unboxValue Ljava/lang/String;
0 11 2 stringObject Ljava/lang/Object;
1 11 3 string Ljava/lang/String;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
unboxValue
stringObject
private void assertBooleanMembers(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asBoolean:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 3
start local 3 1: aload 1
aload 3
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 1
aload 2
ldc "booleanValue"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
3: aload 3
aload 1
invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
ldc "equals"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
4: aload 3
aload 1
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.compareTo:(Ljava/lang/Boolean;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
ldc "compareTo"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
5: aload 3
invokevirtual java.lang.Boolean.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
ldc "hashCode"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
6: aload 3
invokevirtual java.lang.Boolean.toString:()Ljava/lang/String;
aload 2
ldc "toString"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
7: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 3
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
0 10 1 unboxValue Ljava/lang/Object;
0 10 2 booleanObject Ljava/lang/Object;
1 10 3 b Ljava/lang/Boolean;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
unboxValue
booleanObject
private void assertCharacterMembers(java.lang.Character, java.lang.Object);
descriptor: (Ljava/lang/Character;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
astore 3
start local 3 1: aload 1
invokevirtual java.lang.Character.toString:()Ljava/lang/String;
aload 3
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 1
aload 2
ldc "charValue"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
3: aload 3
aload 1
invokevirtual java.lang.Character.toString:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
ldc "equals"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
4: aload 3
aload 1
invokevirtual java.lang.Character.toString:()Ljava/lang/String;
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
ldc "compareTo"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
5: aload 3
invokevirtual java.lang.String.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
ldc "hashCode"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
6: aload 3
invokevirtual java.lang.String.toString:()Ljava/lang/String;
aload 2
ldc "toString"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.assertInvocable:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
7: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 1
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostObject:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
0 10 1 unboxValue Ljava/lang/Character;
0 10 2 charObject Ljava/lang/Object;
1 10 3 b Ljava/lang/String;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
unboxValue
charObject
public void keyInfoJavaObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
new com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest$TestJavaObject
dup
invokespecial com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest$TestJavaObject.<init>:()V
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
astore 1
start local 1 1: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "nnoonnee"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
2: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "aField"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
3: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "aField"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
4: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "aField"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberWritable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
5: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "aField"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberInvocable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
6: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "aField"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberRemovable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
7: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "toString"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "toString"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
9: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "toString"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberWritable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
10: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "toString"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberInvocable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
11: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "toString"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberRemovable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 13 1 d Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
private static void assertError(java.util.concurrent.Callable<?>, java.lang.Class<? extends java.lang.Exception>);
descriptor: (Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
pop
1: new java.lang.StringBuilder
dup
ldc "Expected "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " but no exception was thrown"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
2: goto 5
StackMap locals:
StackMap stack: java.lang.Exception
3: astore 2
start local 2 4: aload 1
invokevirtual java.lang.Class.toString:()Ljava/lang/String;
aload 1
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 callable Ljava/util/concurrent/Callable<*>;
0 6 1 exception Ljava/lang/Class<+Ljava/lang/Exception;>;
4 5 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 2 3 Class java.lang.Exception
Signature: (Ljava/util/concurrent/Callable<*>;Ljava/lang/Class<+Ljava/lang/Exception;>;)V
MethodParameters:
Name Flags
callable
exception
private void assertThrowsExceptionWithCause(java.util.concurrent.Callable<?>, java.lang.Class<? extends java.lang.Exception>);
descriptor: (Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
pop
1: new java.lang.StringBuilder
dup
ldc "Expected "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " but no exception was thrown"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Exception
3: astore 3
start local 3 4: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 3
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostException:(Ljava/lang/Throwable;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
5: aload 2
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 3
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asHostException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
0 7 1 callable Ljava/util/concurrent/Callable<*>;
0 7 2 exception Ljava/lang/Class<+Ljava/lang/Exception;>;
4 6 3 e Ljava/lang/Exception;
Exception table:
from to target type
0 2 3 Class java.lang.Exception
Signature: (Ljava/util/concurrent/Callable<*>;Ljava/lang/Class<+Ljava/lang/Exception;>;)V
MethodParameters:
Name Flags
callable
exception
public void testIsHostFunction();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ldc Ljava/lang/System;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.lookupHostSymbol:(Ljava/lang/String;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 1
start local 1 1: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "exit"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 2
start local 2 2: aload 2
instanceof com.oracle.truffle.api.interop.TruffleObject
invokestatic org.junit.Assert.assertTrue:(Z)V
3: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
4: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 2
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostFunction:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
5: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
ldc "out"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 3
start local 3 6: aload 2
instanceof com.oracle.truffle.api.interop.TruffleObject
invokestatic org.junit.Assert.assertTrue:(Z)V
7: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 3
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostObject:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 3
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostFunction:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
9: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostFunction:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
10: aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isHostFunction:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
1 12 1 system Lcom/oracle/truffle/api/interop/TruffleObject;
2 12 2 exit Ljava/lang/Object;
6 12 3 out Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
RuntimeVisibleAnnotations:
org.junit.Test()
private static java.lang.Object lambda$0(com.oracle.truffle.api.interop.TruffleObject, java.lang.String);
descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=2
0: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
aload 1
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
private java.lang.Object lambda$1();
descriptor: ()Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aconst_null
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asInt:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
Exceptions:
throws java.lang.Exception
private java.lang.Object lambda$2();
descriptor: ()Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aconst_null
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
Exceptions:
throws java.lang.Exception
private java.lang.Object lambda$3();
descriptor: ()Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
getfield com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
aconst_null
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.asGuestValue:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asBoolean:(Ljava/lang/Object;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/polyglot/LanguageSPIHostInteropTest;
Exceptions:
throws java.lang.Exception
}
SourceFile: "LanguageSPIHostInteropTest.java"
NestMembers:
com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest$TestClass com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest$TestJavaObject
InnerClasses:
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
TestClass = com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest$TestClass of com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest
public final TestJavaObject = com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest$TestJavaObject of com.oracle.truffle.api.test.polyglot.LanguageSPIHostInteropTest
public Data = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles