final class com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper implements com.oracle.truffle.api.interop.TruffleObject
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper
super_class: java.lang.Object
{
final java.lang.Object original;
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.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper this
start local 1 // java.lang.Object original
0: .line 307
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 308
aload 0 /* this */
aload 1 /* original */
putfield com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper.original:Ljava/lang/Object;
2: .line 309
return
end local 1 // java.lang.Object original
end local 0 // com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest$IdentityPreservingWrapper;
0 3 1 original Ljava/lang/Object;
MethodParameters:
Name Flags
original
com.oracle.truffle.api.utilities.TriState isIdenticalOrUndefined(java.lang.Object, com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/api/interop/InteropLibrary;)Lcom/oracle/truffle/api/utilities/TriState;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 // com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper this
start local 1 // java.lang.Object other
start local 2 // com.oracle.truffle.api.interop.InteropLibrary thisLib
start local 3 // com.oracle.truffle.api.interop.InteropLibrary otherLib
0: .line 316
aload 0 /* this */
aload 1 /* other */
if_acmpne 2
1: .line 317
getstatic com.oracle.truffle.api.utilities.TriState.TRUE:Lcom/oracle/truffle/api/utilities/TriState;
areturn
2: .line 318
StackMap locals:
StackMap stack:
aload 3 /* otherLib */
aload 1 /* other */
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasIdentity:(Ljava/lang/Object;)Z
ifeq 4
3: .line 319
aload 2 /* thisLib */
aload 0 /* this */
getfield com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper.original:Ljava/lang/Object;
aload 1 /* other */
aload 3 /* otherLib */
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic com.oracle.truffle.api.utilities.TriState.valueOf:(Z)Lcom/oracle/truffle/api/utilities/TriState;
areturn
4: .line 321
StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.utilities.TriState.UNDEFINED:Lcom/oracle/truffle/api/utilities/TriState;
areturn
end local 3 // com.oracle.truffle.api.interop.InteropLibrary otherLib
end local 2 // com.oracle.truffle.api.interop.InteropLibrary thisLib
end local 1 // java.lang.Object other
end local 0 // com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest$IdentityPreservingWrapper;
0 5 1 other Ljava/lang/Object;
0 5 2 thisLib Lcom/oracle/truffle/api/interop/InteropLibrary;
0 5 3 otherLib Lcom/oracle/truffle/api/interop/InteropLibrary;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
RuntimeInvisibleParameterAnnotations:
0:
1:
com.oracle.truffle.api.library.CachedLibrary(value = "this.original")
2:
com.oracle.truffle.api.library.CachedLibrary(limit = "3")
MethodParameters:
Name Flags
other
thisLib
otherLib
int identityHashCode(com.oracle.truffle.api.interop.InteropLibrary);
descriptor: (Lcom/oracle/truffle/api/interop/InteropLibrary;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper this
start local 1 // com.oracle.truffle.api.interop.InteropLibrary thisLib
0: .line 328
aload 1 /* thisLib */
aload 0 /* this */
getfield com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper.original:Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.identityHashCode:(Ljava/lang/Object;)I
ireturn
end local 1 // com.oracle.truffle.api.interop.InteropLibrary thisLib
end local 0 // com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest$IdentityPreservingWrapper;
0 1 1 thisLib Lcom/oracle/truffle/api/interop/InteropLibrary;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
RuntimeInvisibleParameterAnnotations:
0:
com.oracle.truffle.api.library.CachedLibrary(value = "this.original")
MethodParameters:
Name Flags
thisLib
}
SourceFile: "ObjectIdentityTest.java"
NestHost: com.oracle.truffle.js.test.interop.ObjectIdentityTest
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
final IdentityPreservingWrapper = com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper of com.oracle.truffle.js.test.interop.ObjectIdentityTest
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;)