public class com.oracle.truffle.api.test.host.MultiClassLoaderTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.test.host.MultiClassLoaderTest
super_class: java.lang.Object
{
private org.graalvm.polyglot.Context context;
descriptor: Lorg/graalvm/polyglot/Context;
flags: (0x0002) ACC_PRIVATE
private com.oracle.truffle.api.TruffleLanguage$Env env;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage$Env;
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 java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/host/MultiClassLoaderTest;
public void before();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.Context$Builder.allowAllAccess:(Z)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
putfield com.oracle.truffle.api.test.host.MultiClassLoaderTest.context:Lorg/graalvm/polyglot/Context;
1: new com.oracle.truffle.api.test.host.MultiClassLoaderTest$1
dup
aload 0
invokespecial com.oracle.truffle.api.test.host.MultiClassLoaderTest$1.<init>:(Lcom/oracle/truffle/api/test/host/MultiClassLoaderTest;)V
invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.setDelegate:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
pop
2: aload 0
getfield com.oracle.truffle.api.test.host.MultiClassLoaderTest.context:Lorg/graalvm/polyglot/Context;
ldc "proxyLanguage"
invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.test.host.MultiClassLoaderTest.context:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.enter:()V
4: aload 0
getfield com.oracle.truffle.api.test.host.MultiClassLoaderTest.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/host/MultiClassLoaderTest;
RuntimeVisibleAnnotations:
org.junit.Before()
public void after();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.host.MultiClassLoaderTest.context:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.leave:()V
1: aload 0
getfield com.oracle.truffle.api.test.host.MultiClassLoaderTest.context:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.close:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/host/MultiClassLoaderTest;
RuntimeVisibleAnnotations:
org.junit.After()
public void testSameFieldDifferentClassLoaders();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.host.MultiClassLoaderTest.context:Lorg/graalvm/polyglot/Context;
ldc "proxyLanguage"
ldc "get:tidal"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 8
3: StackMap locals: org.graalvm.polyglot.Value int
StackMap stack:
invokestatic com.oracle.truffle.api.test.host.MultiClassLoaderTest.fromOtherLoader:()Ljava/lang/Object;
astore 3
start local 3 4: aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 5: aload 4
invokevirtual org.graalvm.polyglot.Value.isString:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
6: ldc "wave"
aload 4
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 4 end local 3 7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
iconst_2
if_icmplt 3
end local 2 9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/test/host/MultiClassLoaderTest;
1 10 1 read Lorg/graalvm/polyglot/Value;
2 9 2 i I
4 7 3 options Ljava/lang/Object;
5 7 4 result Lorg/graalvm/polyglot/Value;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
private static java.lang.Object fromOtherLoader();
descriptor: ()Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=0
0: ldc Lcom/oracle/truffle/api/test/host/MultiClassLoaderTest;
astore 0
start local 0 1: aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
iconst_0
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
start local 1 2: iconst_1
anewarray java.net.URL
dup
iconst_0
aload 0
invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.URL
aastore
astore 2
start local 2 3: aload 0
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 4: new com.oracle.truffle.api.test.host.MultiClassLoaderTest$1MyClassLoader
dup
aload 2
aload 3
aload 1
invokespecial com.oracle.truffle.api.test.host.MultiClassLoaderTest$1MyClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/lang/String;)V
astore 4
start local 4 5: aload 4
ldc Lcom/oracle/truffle/api/test/host/ExampleOptions;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 5
start local 5 6: aload 5
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 thisClass Ljava/lang/Class<*>;
2 7 1 packagePrefix Ljava/lang/String;
3 7 2 urls [Ljava/net/URL;
4 7 3 parent Ljava/lang/ClassLoader;
5 7 4 otherLoader Ljava/lang/ClassLoader;
6 7 5 clazz Ljava/lang/Class<*>;
Exceptions:
throws java.lang.Exception
}
SourceFile: "MultiClassLoaderTest.java"
NestMembers:
com.oracle.truffle.api.test.host.MultiClassLoaderTest$1 com.oracle.truffle.api.test.host.MultiClassLoaderTest$1$1 com.oracle.truffle.api.test.host.MultiClassLoaderTest$1MyClassLoader
InnerClasses:
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
com.oracle.truffle.api.test.host.MultiClassLoaderTest$1
MyClassLoader = com.oracle.truffle.api.test.host.MultiClassLoaderTest$1MyClassLoader
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context