public class com.oracle.truffle.js.test.interop.ObjectIdentityTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.interop.ObjectIdentityTest
super_class: java.lang.Object
{
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/js/test/interop/ObjectIdentityTest;
public void proxyObjectIdentity();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: ldc "key"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
invokestatic org.graalvm.polyglot.proxy.ProxyObject.fromMap:(Ljava/util/Map;)Lorg/graalvm/polyglot/proxy/ProxyObject;
astore 4
start local 4 3: ldc "key"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
invokestatic org.graalvm.polyglot.proxy.ProxyObject.fromMap:(Ljava/util/Map;)Lorg/graalvm/polyglot/proxy/ProxyObject;
astore 5
start local 5 4: aload 3
ldc "js"
ldc "(function(a, b){return a == b;})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 5: aload 3
ldc "js"
ldc "(function(a, b){return a === b;})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 7
start local 7 6: aload 6
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 6
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
9: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
end local 7 end local 6 end local 5 end local 4 10: aload 3
ifnull 16
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 16
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
11: astore 1
aload 3
ifnull 12
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
2 12 3 context Lorg/graalvm/polyglot/Context;
3 10 4 proxy1 Lorg/graalvm/polyglot/proxy/ProxyObject;
4 10 5 proxy2 Lorg/graalvm/polyglot/proxy/ProxyObject;
5 10 6 equals Lorg/graalvm/polyglot/Value;
6 10 7 identical Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 10 11 any
1 13 13 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void mixedObjectIdentity();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: ldc "key"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
invokestatic org.graalvm.polyglot.proxy.ProxyObject.fromMap:(Ljava/util/Map;)Lorg/graalvm/polyglot/proxy/ProxyObject;
astore 4
start local 4 3: aload 3
ldc "js"
ldc "({})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 4: aload 3
ldc "js"
ldc "(function(a, b){return a == b;})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 5: aload 3
ldc "js"
ldc "(function(a, b){return a === b;})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 7
start local 7 6: aload 6
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
7: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
8: aload 6
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
9: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
10: aload 6
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
11: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
12: aload 6
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
13: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 7 end local 6 end local 5 end local 4 14: aload 3
ifnull 20
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 20
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
15: astore 1
aload 3
ifnull 16
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
16: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 2
aload 1
ifnonnull 18
aload 2
astore 1
goto 19
StackMap locals:
StackMap stack:
18: aload 1
aload 2
if_acmpeq 19
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
19: aload 1
athrow
20: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
2 16 3 context Lorg/graalvm/polyglot/Context;
3 14 4 proxy Lorg/graalvm/polyglot/proxy/ProxyObject;
4 14 5 jsobj Lorg/graalvm/polyglot/Value;
5 14 6 equals Lorg/graalvm/polyglot/Value;
6 14 7 identical Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 14 15 any
1 17 17 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void foreignNullIdentity();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: new com.oracle.truffle.js.test.polyglot.ForeignNull
dup
invokespecial com.oracle.truffle.js.test.polyglot.ForeignNull.<init>:()V
astore 4
start local 4 3: new com.oracle.truffle.js.test.polyglot.ForeignNull
dup
invokespecial com.oracle.truffle.js.test.polyglot.ForeignNull.<init>:()V
astore 5
start local 5 4: aload 3
ldc "js"
ldc "null"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 5: aload 3
ldc "js"
ldc "(function(a, b){return a == b;})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 7
start local 7 6: aload 3
ldc "js"
ldc "(function(a, b){return a === b;})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 8
start local 8 7: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 8
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
9: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
10: aload 8
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
11: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 6
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
12: aload 8
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 6
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
13: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
14: aload 8
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 8 end local 7 end local 6 end local 5 end local 4 15: aload 3
ifnull 21
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 21
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
16: astore 1
aload 3
ifnull 17
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
17: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 2
aload 1
ifnonnull 19
aload 2
astore 1
goto 20
StackMap locals:
StackMap stack:
19: aload 1
aload 2
if_acmpeq 20
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
20: aload 1
athrow
21: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
2 17 3 context Lorg/graalvm/polyglot/Context;
3 15 4 null1 Ljava/lang/Object;
4 15 5 null2 Ljava/lang/Object;
5 15 6 jsnull Lorg/graalvm/polyglot/Value;
6 15 7 equals Lorg/graalvm/polyglot/Value;
7 15 8 identical Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 15 16 any
1 18 18 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testForeignObjectWithoutIdentity();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic com.oracle.truffle.js.test.polyglot.ForeignBoxedObject.createNew:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 4
start local 4 3: bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic com.oracle.truffle.js.test.polyglot.ForeignBoxedObject.createNew:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/DynamicObject;
astore 5
start local 5 4: aload 3
ldc "js"
ldc "(function(a, b){return a == b;})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 5: aload 3
ldc "js"
ldc "(function(a, b){return a === b;})"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 7
start local 7 6: aload 6
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: aload 6
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 4
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
9: aload 7
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
end local 7 end local 6 end local 5 end local 4 10: aload 3
ifnull 16
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 16
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
11: astore 1
aload 3
ifnull 12
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
2 12 3 context Lorg/graalvm/polyglot/Context;
3 10 4 value1 Ljava/lang/Object;
4 10 5 value2 Ljava/lang/Object;
5 10 6 equals Lorg/graalvm/polyglot/Value;
6 10 7 identical Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 10 11 any
1 13 13 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testJSObjectIdentity();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: new com.oracle.truffle.js.test.TestHelper
dup
invokespecial com.oracle.truffle.js.test.TestHelper.<init>:()V
astore 4
start local 4 3: aload 4
ldc "({})"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
astore 5
start local 5 4: aload 4
ldc "({})"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
astore 6
start local 6 5: aload 1
aload 5
aload 5
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
6: aload 1
aload 5
aload 6
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
end local 6 end local 5 7: aload 4
ifnull 13
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
goto 13
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest com.oracle.truffle.api.interop.InteropLibrary java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.test.TestHelper
StackMap stack: java.lang.Throwable
8: astore 2
aload 4
ifnull 9
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
end local 4 StackMap locals:
StackMap stack:
9: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 3
aload 2
ifnonnull 11
aload 3
astore 2
goto 12
StackMap locals:
StackMap stack:
11: aload 2
aload 3
if_acmpeq 12
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 2
athrow
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
1 14 1 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
3 9 4 testHelper Lcom/oracle/truffle/js/test/TestHelper;
4 7 5 jsobj1 Ljava/lang/Object;
5 7 6 jsobj2 Ljava/lang/Object;
Exception table:
from to target type
3 7 8 any
2 10 10 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testJSErrorIdentity();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "try { throw new Error('expected'); } catch (e) { e }"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: aload 4
invokevirtual org.graalvm.polyglot.Value.toString:()Ljava/lang/String;
aload 4
invokevirtual org.graalvm.polyglot.Value.isException:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
4: aload 4
invokevirtual org.graalvm.polyglot.Value.throwException:()Ljava/lang/RuntimeException;
pop
5: ldc "should have thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
6: goto 10
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context org.graalvm.polyglot.Value
StackMap stack: org.graalvm.polyglot.PolyglotException
7: astore 5
start local 5 8: aload 5
invokevirtual org.graalvm.polyglot.PolyglotException.getGuestObject:()Lorg/graalvm/polyglot/Value;
astore 6
start local 6 9: ldc "Exception and Error object have the same identity"
aload 6
aload 4
invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 6 end local 5 end local 4 10: StackMap locals:
StackMap stack:
aload 3
ifnull 16
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 1
aload 3
ifnull 12
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
2 12 3 context Lorg/graalvm/polyglot/Context;
3 10 4 error Lorg/graalvm/polyglot/Value;
8 10 5 ex Lorg/graalvm/polyglot/PolyglotException;
9 10 6 exception Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
4 6 7 Class org.graalvm.polyglot.PolyglotException
2 10 11 any
1 13 13 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testInteropFunctionIdentity();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: new com.oracle.truffle.js.test.TestHelper
dup
invokespecial com.oracle.truffle.js.test.TestHelper.<init>:()V
astore 4
start local 4 3: aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.enter:()V
4: aload 4
ldc "(function(){})"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
astore 5
start local 5 5: aload 4
ldc "({})"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
astore 6
start local 6 6: invokestatic com.oracle.truffle.js.nodes.interop.ExportValueNode.getUncached:()Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
astore 7
start local 7 7: aload 7
aload 5
aload 6
iconst_1
invokevirtual com.oracle.truffle.js.nodes.interop.ExportValueNode.execute:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
astore 8
start local 8 8: aload 8
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 8
instanceof com.oracle.truffle.js.runtime.interop.InteropBoundFunction
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
9: aload 1
aload 8
aload 5
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
10: aload 1
aload 5
aload 8
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
11: aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.leave:()V
end local 8 end local 7 end local 6 end local 5 12: aload 4
ifnull 18
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
goto 18
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest com.oracle.truffle.api.interop.InteropLibrary java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.test.TestHelper
StackMap stack: java.lang.Throwable
13: astore 2
aload 4
ifnull 14
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
end local 4 StackMap locals:
StackMap stack:
14: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 3
aload 2
ifnonnull 16
aload 3
astore 2
goto 17
StackMap locals:
StackMap stack:
16: aload 2
aload 3
if_acmpeq 17
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 2
athrow
18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
1 19 1 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
3 14 4 testHelper Lcom/oracle/truffle/js/test/TestHelper;
5 12 5 jsfun Ljava/lang/Object;
6 12 6 jsobj Ljava/lang/Object;
7 12 7 exportValueNode Lcom/oracle/truffle/js/nodes/interop/ExportValueNode;
8 12 8 interopBoundFunction Ljava/lang/Object;
Exception table:
from to target type
3 12 13 any
2 15 15 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testThrownIdentitylessValue();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: new com.oracle.truffle.js.test.TestHelper
dup
invokespecial com.oracle.truffle.js.test.TestHelper.<init>:()V
astore 4
start local 4 3: aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.enter:()V
4: aconst_null
astore 5
start local 5 5: aconst_null
astore 6
start local 6 6: aconst_null
astore 7
start local 7 7: aload 4
ldc "throw 42;"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
pop
8: ldc "should have thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
9: goto 13
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest com.oracle.truffle.api.interop.InteropLibrary java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.test.TestHelper java.lang.Object java.lang.Object java.lang.Object
StackMap stack: com.oracle.truffle.js.runtime.UserScriptException
10: astore 8
start local 8 11: aload 8
invokevirtual com.oracle.truffle.js.runtime.UserScriptException.getErrorObject:()Ljava/lang/Object;
astore 5
12: aload 8
astore 6
end local 8 13: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasIdentity:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
14: aload 1
aload 6
aload 5
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
15: aload 1
aload 5
aload 6
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
16: aload 4
ldc "throw 42;"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
pop
17: ldc "should have thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
18: goto 22
StackMap locals:
StackMap stack: com.oracle.truffle.js.runtime.UserScriptException
19: astore 8
start local 8 20: aload 8
astore 7
21: aload 5
aload 8
invokevirtual com.oracle.truffle.js.runtime.UserScriptException.getErrorObject:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 8 22: StackMap locals:
StackMap stack:
aload 6
aload 7
invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
23: aload 1
aload 7
aload 5
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
24: aload 1
aload 5
aload 7
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
25: aload 1
aload 6
aload 7
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
26: aload 4
ldc "try { throw new Error('expected'); } catch (e) { e }"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
astore 8
start local 8 27: aload 1
aload 8
aload 6
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
28: aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.leave:()V
end local 8 end local 7 end local 6 end local 5 29: aload 4
ifnull 35
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
goto 35
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest com.oracle.truffle.api.interop.InteropLibrary java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.test.TestHelper
StackMap stack: java.lang.Throwable
30: astore 2
aload 4
ifnull 31
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
end local 4 StackMap locals:
StackMap stack:
31: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
32: astore 3
aload 2
ifnonnull 33
aload 3
astore 2
goto 34
StackMap locals:
StackMap stack:
33: aload 2
aload 3
if_acmpeq 34
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
34: aload 2
athrow
35: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
1 36 1 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
3 31 4 testHelper Lcom/oracle/truffle/js/test/TestHelper;
5 29 5 value Ljava/lang/Object;
6 29 6 ex1 Ljava/lang/Object;
7 29 7 ex2 Ljava/lang/Object;
11 13 8 ex Lcom/oracle/truffle/js/runtime/UserScriptException;
20 22 8 ex Lcom/oracle/truffle/js/runtime/UserScriptException;
27 29 8 jserror Ljava/lang/Object;
Exception table:
from to target type
7 9 10 Class com.oracle.truffle.js.runtime.UserScriptException
16 18 19 Class com.oracle.truffle.js.runtime.UserScriptException
3 29 30 any
2 32 32 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testOneIdentityTwoExceptions();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: new com.oracle.truffle.js.test.TestHelper
dup
invokespecial com.oracle.truffle.js.test.TestHelper.<init>:()V
astore 4
start local 4 3: aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.enter:()V
4: aconst_null
astore 5
start local 5 5: aconst_null
astore 6
start local 6 6: aconst_null
astore 7
start local 7 7: aload 4
ldc "throw null;"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
pop
8: ldc "should have thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
9: goto 13
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest com.oracle.truffle.api.interop.InteropLibrary java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.test.TestHelper java.lang.Object java.lang.Object java.lang.Object
StackMap stack: com.oracle.truffle.js.runtime.UserScriptException
10: astore 8
start local 8 11: aload 8
invokevirtual com.oracle.truffle.js.runtime.UserScriptException.getErrorObject:()Ljava/lang/Object;
astore 5
12: aload 8
astore 6
end local 8 13: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasIdentity:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
14: aload 1
aload 6
aload 5
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
15: aload 1
aload 5
aload 6
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
16: aload 4
ldc "throw null;"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
pop
17: ldc "should have thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
18: goto 22
StackMap locals:
StackMap stack: com.oracle.truffle.js.runtime.UserScriptException
19: astore 8
start local 8 20: aload 8
astore 7
21: aload 5
aload 8
invokevirtual com.oracle.truffle.js.runtime.UserScriptException.getErrorObject:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 8 22: StackMap locals:
StackMap stack:
aload 6
aload 7
invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
23: aload 1
aload 7
aload 5
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
24: aload 1
aload 5
aload 7
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
25: aload 1
aload 6
aload 7
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
26: aload 4
ldc "try { throw new Error('expected'); } catch (e) { e }"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
astore 8
start local 8 27: aload 1
aload 8
aload 6
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
28: aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.leave:()V
end local 8 end local 7 end local 6 end local 5 29: aload 4
ifnull 35
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
goto 35
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest com.oracle.truffle.api.interop.InteropLibrary java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.test.TestHelper
StackMap stack: java.lang.Throwable
30: astore 2
aload 4
ifnull 31
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
end local 4 StackMap locals:
StackMap stack:
31: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
32: astore 3
aload 2
ifnonnull 33
aload 3
astore 2
goto 34
StackMap locals:
StackMap stack:
33: aload 2
aload 3
if_acmpeq 34
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
34: aload 2
athrow
35: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
1 36 1 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
3 31 4 testHelper Lcom/oracle/truffle/js/test/TestHelper;
5 29 5 value Ljava/lang/Object;
6 29 6 ex1 Ljava/lang/Object;
7 29 7 ex2 Ljava/lang/Object;
11 13 8 ex Lcom/oracle/truffle/js/runtime/UserScriptException;
20 22 8 ex Lcom/oracle/truffle/js/runtime/UserScriptException;
27 29 8 jserror Ljava/lang/Object;
Exception table:
from to target type
7 9 10 Class com.oracle.truffle.js.runtime.UserScriptException
16 18 19 Class com.oracle.truffle.js.runtime.UserScriptException
3 29 30 any
2 32 32 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testIdentityPreservingWrapper();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: new com.oracle.truffle.js.test.TestHelper
dup
invokespecial com.oracle.truffle.js.test.TestHelper.<init>:()V
astore 4
start local 4 3: aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.enter:()V
4: aconst_null
astore 5
start local 5 5: aload 4
ldc "undefined.error"
invokevirtual com.oracle.truffle.js.test.TestHelper.runNoPolyglot:(Ljava/lang/String;)Ljava/lang/Object;
pop
6: ldc "should have thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
7: goto 10
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest com.oracle.truffle.api.interop.InteropLibrary java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.test.TestHelper com.oracle.truffle.js.runtime.JSException
StackMap stack: com.oracle.truffle.js.runtime.JSException
8: astore 6
start local 6 9: aload 6
astore 5
end local 6 10: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.js.runtime.JSException.getErrorObject:()Lcom/oracle/truffle/api/object/DynamicObject;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
11: new com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper
dup
aload 5
invokespecial com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper.<init>:(Ljava/lang/Object;)V
astore 6
start local 6 12: aload 1
aload 5
aload 6
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
13: aload 1
aload 5
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasIdentity:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
14: aload 1
aload 6
aload 5
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isIdentical:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
15: aload 1
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasIdentity:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
16: aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.getPolyglotContext:()Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.leave:()V
end local 6 end local 5 17: aload 4
ifnull 23
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
goto 23
StackMap locals: com.oracle.truffle.js.test.interop.ObjectIdentityTest com.oracle.truffle.api.interop.InteropLibrary java.lang.Throwable java.lang.Throwable com.oracle.truffle.js.test.TestHelper
StackMap stack: java.lang.Throwable
18: astore 2
aload 4
ifnull 19
aload 4
invokevirtual com.oracle.truffle.js.test.TestHelper.close:()V
end local 4 StackMap locals:
StackMap stack:
19: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 3
aload 2
ifnonnull 21
aload 3
astore 2
goto 22
StackMap locals:
StackMap stack:
21: aload 2
aload 3
if_acmpeq 22
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 2
athrow
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/truffle/js/test/interop/ObjectIdentityTest;
1 24 1 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
3 19 4 testHelper Lcom/oracle/truffle/js/test/TestHelper;
5 17 5 err Lcom/oracle/truffle/js/runtime/JSException;
9 10 6 ex Lcom/oracle/truffle/js/runtime/JSException;
12 17 6 wrapper Ljava/lang/Object;
Exception table:
from to target type
5 7 8 Class com.oracle.truffle.js.runtime.JSException
3 17 18 any
2 20 20 any
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "ObjectIdentityTest.java"
NestMembers:
com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper
InnerClasses:
final IdentityPreservingWrapper = com.oracle.truffle.js.test.interop.ObjectIdentityTest$IdentityPreservingWrapper of com.oracle.truffle.js.test.interop.ObjectIdentityTest
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context