class com.oracle.truffle.api.library.test.ProxyTest$Proxy
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.library.test.ProxyTest$Proxy
super_class: java.lang.Object
{
final java.lang.Object delegate;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
void <init>(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.truffle.api.library.test.ProxyTest$Proxy this
start local 1 // java.lang.Object delegate
0: .line 96
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 97
aload 0 /* this */
aload 1 /* delegate */
putfield com.oracle.truffle.api.library.test.ProxyTest$Proxy.delegate:Ljava/lang/Object;
2: .line 98
return
end local 1 // java.lang.Object delegate
end local 0 // com.oracle.truffle.api.library.test.ProxyTest$Proxy this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/library/test/ProxyTest$Proxy;
0 3 1 delegate Ljava/lang/Object;
MethodParameters:
Name Flags
delegate
java.lang.Object send(com.oracle.truffle.api.library.Message, java.lang.Object[]);
descriptor: (Lcom/oracle/truffle/api/library/Message;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0080) ACC_VARARGS
Code:
stack=4, locals=5, args_size=3
start local 0 // com.oracle.truffle.api.library.test.ProxyTest$Proxy this
start local 1 // com.oracle.truffle.api.library.Message message
start local 2 // java.lang.Object[] arguments
0: .line 103
invokestatic com.oracle.truffle.api.library.ReflectionLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
aload 0 /* this */
getfield com.oracle.truffle.api.library.test.ProxyTest$Proxy.delegate:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.library.ReflectionLibrary
astore 3 /* reflect */
start local 3 // com.oracle.truffle.api.library.ReflectionLibrary reflect
1: .line 104
ldc "incrementMethod"
aload 1 /* message */
invokevirtual com.oracle.truffle.api.library.Message.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
2: .line 105
aload 3 /* reflect */
aload 0 /* this */
getfield com.oracle.truffle.api.library.test.ProxyTest$Proxy.delegate:Ljava/lang/Object;
aload 1 /* message */
aload 2 /* arguments */
invokevirtual com.oracle.truffle.api.library.ReflectionLibrary.send:(Ljava/lang/Object;Lcom/oracle/truffle/api/library/Message;[Ljava/lang/Object;)Ljava/lang/Object;
3: areturn
4: .line 107
StackMap locals: com.oracle.truffle.api.library.ReflectionLibrary
StackMap stack:
aload 2 /* arguments */
iconst_0
aload 2 /* arguments */
iconst_0
aaload
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
5: .line 108
aload 3 /* reflect */
aload 0 /* this */
getfield com.oracle.truffle.api.library.test.ProxyTest$Proxy.delegate:Ljava/lang/Object;
aload 1 /* message */
aload 2 /* arguments */
invokevirtual com.oracle.truffle.api.library.ReflectionLibrary.send:(Ljava/lang/Object;Lcom/oracle/truffle/api/library/Message;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 4 /* result */
start local 4 // int result
6: .line 109
iload 4 /* result */
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
7: areturn
end local 4 // int result
end local 3 // com.oracle.truffle.api.library.ReflectionLibrary reflect
8: .line 111
StackMap locals: com.oracle.truffle.api.library.test.ProxyTest$Proxy com.oracle.truffle.api.library.Message java.lang.Object[]
StackMap stack: java.lang.Throwable
astore 3 /* e */
start local 3 // java.lang.Throwable e
9: .line 112
new java.lang.RuntimeException
dup
aload 3 /* e */
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 // java.lang.Throwable e
end local 2 // java.lang.Object[] arguments
end local 1 // com.oracle.truffle.api.library.Message message
end local 0 // com.oracle.truffle.api.library.test.ProxyTest$Proxy this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/library/test/ProxyTest$Proxy;
0 10 1 message Lcom/oracle/truffle/api/library/Message;
0 10 2 arguments [Ljava/lang/Object;
1 8 3 reflect Lcom/oracle/truffle/api/library/ReflectionLibrary;
6 8 4 result I
9 10 3 e Ljava/lang/Throwable;
Exception table:
from to target type
0 3 8 Class java.lang.Throwable
4 7 8 Class java.lang.Throwable
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
MethodParameters:
Name Flags
message
arguments
}
SourceFile: "ProxyTest.java"
NestHost: com.oracle.truffle.api.library.test.ProxyTest
InnerClasses:
Proxy = com.oracle.truffle.api.library.test.ProxyTest$Proxy of com.oracle.truffle.api.library.test.ProxyTest
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/library/ReflectionLibrary;)