public class com.oracle.truffle.api.test.polyglot.ValueHostInteropTest 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.ValueHostInteropTest
super_class: com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
{
public static final boolean Java9OrLater;
descriptor: Z
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final org.graalvm.polyglot.TypeLiteral<java.util.List<java.lang.String>> LIST_STRING;
descriptor: Lorg/graalvm/polyglot/TypeLiteral;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/polyglot/TypeLiteral<Ljava/util/List<Ljava/lang/String;>;>;
private static final org.graalvm.polyglot.TypeLiteral<java.util.Map<java.lang.String, java.lang.String>> MAP_STRING_STRING;
descriptor: Lorg/graalvm/polyglot/TypeLiteral;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/polyglot/TypeLiteral<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "java.specification.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
ldc "1.9"
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
iflt 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.Java9OrLater:Z
3: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$1
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$1.<init>:()V
putstatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.LIST_STRING:Lorg/graalvm/polyglot/TypeLiteral;
4: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$2
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$2.<init>:()V
putstatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.MAP_STRING_STRING:Lorg/graalvm/polyglot/TypeLiteral;
5: 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/ValueHostInteropTest;
public void initObjects();
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.ValueHostInteropTest.setupEnv:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
RuntimeVisibleAnnotations:
org.junit.Before()
public void testAccessInvisibleAPIVirtualCall();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
ldc Ljava/awt/image/BufferedImage;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 3: aload 1
iconst_3
anewarray java.lang.Object
dup
iconst_0
sipush 450
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
sipush 450
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.newInstance:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 4: aload 2
ldc "getGraphics"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.invokeMember:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 5: aload 3
ldc "setBackground"
iconst_1
anewarray java.lang.Object
dup
iconst_0
getstatic java.awt.Color.white:Ljava/awt/Color;
aastore
invokevirtual org.graalvm.polyglot.Value.invokeMember:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
pop
6: return
end local 3 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/ValueHostInteropTest;
3 7 1 imageClass Lorg/graalvm/polyglot/Value;
4 7 2 image Lorg/graalvm/polyglot/Value;
5 7 3 graphics Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testAccessInvisibleAPIDirect();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.languageEnv:Lcom/oracle/truffle/api/TruffleLanguage$Env;
ldc "sun.awt.image.OffScreenImage"
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.lookupHostSymbol:(Ljava/lang/String;)Ljava/lang/Object;
pop
3: getstatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.Java9OrLater:Z
ifeq 9
4: ldc "On >= Java9 sun.awt.image should not be visible."
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
5: goto 9
StackMap locals:
StackMap stack: java.lang.RuntimeException
6: pop
7: getstatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.Java9OrLater:Z
ifne 9
8: ldc "On < Java9 sun.awt.image should be visible."
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
Exception table:
from to target type
2 5 6 Class java.lang.RuntimeException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testRecursiveListMarshalling();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: iconst_1
anewarray com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
iconst_0
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 2: aload 2
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
3: aload 2
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 4: aload 3
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
5: aload 2
invokestatic com.oracle.truffle.tck.tests.ValueAssert.assertValue:(Lorg/graalvm/polyglot/Value;)V
6: aload 3
invokestatic com.oracle.truffle.tck.tests.ValueAssert.assertValue:(Lorg/graalvm/polyglot/Value;)V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 8 1 testList Ljava/util/List<Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;>;
2 8 2 testListValue Lorg/graalvm/polyglot/Value;
4 8 3 data Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void conversionToClassNull();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aconst_null
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.getMetaObject:()Lorg/graalvm/polyglot/Value;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void nullAsJavaObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aconst_null
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
1: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aconst_null
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void doubleWrap();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=3, 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 1
bipush 32
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.x:I
2: aload 1
ldc 10.1
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.y:D
3: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
astore 2
start local 2 4: ldc "Assume delegated"
ldc 42.1
aload 2
aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.x:()I
i2d
aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.y:()D
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.plus:(DD)D
ldc 0.05
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;DDD)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 6 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
4 6 2 xyp Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
RuntimeVisibleAnnotations:
org.junit.Test()
public void assertThisIsSame();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: new java.util.concurrent.atomic.AtomicReference
dup
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
astore 1
start local 1 1: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$3
dup
aload 0
aload 1
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$3.<init>:(Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;Ljava/util/concurrent/atomic/AtomicReference;)V
astore 2
start local 2 2: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 2
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
astore 3
start local 3 3: aload 3
aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.assertThis:(Ljava/lang/Object;)Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
astore 4
start local 4 4: aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
5: aload 2
bipush 44
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.x:I
6: ldc 44
aload 4
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.x:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: aload 4
aload 3
invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
8: aload 4
aload 3
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: aload 4
invokevirtual java.lang.Object.hashCode:()I
i2l
aload 3
invokevirtual java.lang.Object.hashCode:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: return
end local 4 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/ValueHostInteropTest;
1 11 1 thisCalled Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Boolean;>;
2 11 2 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
3 11 3 xyp Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
4 11 4 anotherThis Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
RuntimeVisibleAnnotations:
org.junit.Test()
public void assertKeysAndProperties();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, 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.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 2: aload 2
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
bipush 8
anewarray java.lang.String
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
3: ldc Ljava/lang/Object;
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
astore 3
start local 3 4: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 8
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data org.graalvm.polyglot.Value java.lang.reflect.Method[] top int int java.lang.reflect.Method[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: ldc "No java.lang.Object methods"
aload 2
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
aload 4
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 4 7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 6
if_icmplt 5
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/ValueHostInteropTest;
1 10 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
2 10 2 dataValue Lorg/graalvm/polyglot/Value;
4 10 3 objectMethods [Ljava/lang/reflect/Method;
6 7 4 objectMethod Ljava/lang/reflect/Method;
RuntimeVisibleAnnotations:
org.junit.Test()
public void assertKeysFromAMap();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
start local 1 1: aload 1
ldc "one"
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
ldc "null"
aconst_null
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
ldc "three"
iconst_3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
astore 2
start local 2 5: aload 2
ldc "one"
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
6: aload 2
ldc "null"
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
7: aload 2
ldc "three"
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
8: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokestatic com.oracle.truffle.tck.tests.ValueAssert.assertValue:(Lorg/graalvm/polyglot/Value;)V
9: return
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/ValueHostInteropTest;
1 10 1 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
5 10 2 memberKeys Ljava/util/Set<Ljava/lang/String;>;
RuntimeVisibleAnnotations:
org.junit.Test()
public void readUnknownField();
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.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
ldc "unknown"
invokevirtual org.graalvm.polyglot.Value.hasMember:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
2: aload 1
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
ldc "unknown"
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
3: aload 1
ldc "unknown"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 5 1 dataValue Lorg/graalvm/polyglot/Value;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
static void assertThrowsExceptionWithCause(java.util.concurrent.Callable<?>, java.lang.Class<? extends java.lang.Exception>);
descriptor: (Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
flags: (0x0008) 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 9
StackMap locals:
StackMap stack: org.graalvm.polyglot.PolyglotException
3: astore 2
start local 2 4: aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.isHostException:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
5: aload 1
aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.asHostException:()Ljava/lang/Throwable;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 2 6: goto 9
7: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 8: aload 2
athrow
end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 callable Ljava/util/concurrent/Callable<*>;
0 10 1 exception Ljava/lang/Class<+Ljava/lang/Exception;>;
4 6 2 e Lorg/graalvm/polyglot/PolyglotException;
8 9 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 2 3 Class org.graalvm.polyglot.PolyglotException
0 2 7 Class java.lang.Exception
Exceptions:
throws java.lang.Exception
Signature: (Ljava/util/concurrent/Callable<*>;Ljava/lang/Class<+Ljava/lang/Exception;>;)V
MethodParameters:
Name Flags
callable
exception
public void readJavaLangObjectFields();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "notify"
invokevirtual com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertReadMethod:(Ljava/lang/String;)V
1: aload 0
ldc "notifyAll"
invokevirtual com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertReadMethod:(Ljava/lang/String;)V
2: aload 0
ldc "wait"
invokevirtual com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertReadMethod:(Ljava/lang/String;)V
3: aload 0
ldc "hashCode"
invokevirtual com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertReadMethod:(Ljava/lang/String;)V
4: aload 0
ldc "equals"
invokevirtual com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertReadMethod:(Ljava/lang/String;)V
5: aload 0
ldc "toString"
invokevirtual com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertReadMethod:(Ljava/lang/String;)V
6: aload 0
ldc "getClass"
invokevirtual com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertReadMethod:(Ljava/lang/String;)V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
RuntimeVisibleAnnotations:
org.junit.Test()
private void assertReadMethod(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 1: aload 2
aload 1
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 2: aload 3
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
3: aload 3
invokevirtual org.graalvm.polyglot.Value.canExecute:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
4: return
end local 3 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/ValueHostInteropTest;
0 5 1 name Ljava/lang/String;
1 5 2 dataValue Lorg/graalvm/polyglot/Value;
2 5 3 member Lorg/graalvm/polyglot/Value;
MethodParameters:
Name Flags
name final
public void invokeJavaLangObjectFields();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
ldc "toString"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
astore 2
start local 2 2: aload 1
invokevirtual org.graalvm.polyglot.Value.toString:()Ljava/lang/String;
astore 3
start local 3 3: aload 2
aload 3
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: aload 2
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
invokestatic org.junit.Assert.assertTrue:(Z)V
5: ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
aload 1
ldc "getClass"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
6: aload 1
ldc "equals"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
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 1
invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
invokevirtual java.lang.Object.hashCode:()I
i2l
aload 1
ldc "hashCode"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: 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 7
arraylength
istore 6
iconst_0
istore 5
goto 12
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest org.graalvm.polyglot.Value java.lang.String java.lang.String top int int java.lang.String[]
StackMap stack:
9: aload 7
iload 5
aaload
astore 4
start local 4 10: aload 1
aload 4
invokedynamic call(Lorg/graalvm/polyglot/Value;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/ValueHostInteropTest.lambda$0(Lorg/graalvm/polyglot/Value;Ljava/lang/String;)Ljava/lang/Object; (6)
()Ljava/lang/Object;
ldc Ljava/lang/IllegalMonitorStateException;
invokestatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertThrowsExceptionWithCause:(Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
end local 4 11: iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
iload 6
if_icmplt 9
13: return
end local 3 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/ValueHostInteropTest;
1 14 1 obj Lorg/graalvm/polyglot/Value;
2 14 2 toStringValue Ljava/lang/String;
3 14 3 indirectToStringValue Ljava/lang/String;
10 11 4 m Ljava/lang/String;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void accessAllProperties();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PrivatePOJO
dup
aload 0
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PrivatePOJO.<init>:(Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;)V
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
ldc Ljava/util/Map;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.Map
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 10
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest org.graalvm.polyglot.Value java.util.Map int top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 5: aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
astore 6
start local 6 6: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
astore 7
start local 7 7: aload 6
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
8: aload 7
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
9: iinc 3 1
end local 7 end local 6 end local 4 10: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
11: ldc "No properties"
lconst_0
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
12: new java.lang.StringBuilder
dup
ldc "Empty: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
lconst_0
aload 2
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
13: return
end local 3 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/ValueHostInteropTest;
1 14 1 pojo Lorg/graalvm/polyglot/Value;
2 14 2 map Ljava/util/Map<**>;
3 14 3 cnt I
5 10 4 entry Ljava/util/Map$Entry<**>;
6 10 6 key Ljava/lang/Object;
7 10 7 value Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.junit.Test()
public void accessAllPropertiesDirectly();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PrivatePOJO
dup
aload 0
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PrivatePOJO.<init>:(Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;)V
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: ldc "No props, class isn't public"
lconst_0
aload 1
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)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/ValueHostInteropTest;
1 3 1 pojo Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void accessAllPublicPropertiesDirectly();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PublicPOJO
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PublicPOJO.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 2: aload 2
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
astore 3
start local 3 3: ldc "One instance field and one method"
ldc 2
aload 3
arraylength
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
4: ldc "One field x"
ldc "x"
aload 3
iconst_0
aaload
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
5: ldc "One method to access x"
ldc "readX"
aload 3
iconst_1
aaload
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
6: aload 2
ldc "readX"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 7: aload 4
invokevirtual org.graalvm.polyglot.Value.canExecute:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 1
bipush 10
invokevirtual com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PublicPOJO.writeX:(I)V
9: ldc 10
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: return
end local 4 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/ValueHostInteropTest;
1 11 1 orig Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$PublicPOJO;
2 11 2 pojo Lorg/graalvm/polyglot/Value;
3 11 3 propertyNames [Ljava/lang/Object;
7 11 4 readX Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void arrayHasSize();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "Hello"
aastore
dup
iconst_1
ldc "World"
aastore
dup
iconst_2
ldc "!"
aastore
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: ldc "Three elements"
ldc 3
aload 1
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
3: ldc "Hello"
aload 1
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: ldc "World"
aload 1
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
5: ldc "!"
aload 1
ldc 2
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 7 1 arrObj Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void emptyArrayHasSize();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
iconst_0
anewarray java.lang.String
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: lconst_0
aload 1
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)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/ValueHostInteropTest;
1 4 1 arrObj Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void arrayAsList();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "Hello"
aastore
dup
iconst_1
ldc "World"
aastore
dup
iconst_2
ldc "!"
aastore
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 2: aload 2
getstatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.LIST_STRING:Lorg/graalvm/polyglot/TypeLiteral;
invokevirtual org.graalvm.polyglot.Value.as:(Lorg/graalvm/polyglot/TypeLiteral;)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 3: ldc "Three elements"
ldc 3
aload 3
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
4: ldc "Hello"
aload 3
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
5: ldc "World"
aload 3
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: ldc "!"
aload 3
iconst_2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 3
iconst_1
ldc "there"
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
8: ldc "there"
aload 1
iconst_1
aaload
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/ValueHostInteropTest;
1 10 1 arr [Ljava/lang/String;
2 10 2 arrObj Lorg/graalvm/polyglot/Value;
3 10 3 list Ljava/util/List<Ljava/lang/String;>;
RuntimeVisibleAnnotations:
org.junit.Test()
public void objectsAsMap();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, 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 1
bipush 10
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.x:I
2: aload 1
ldc 33.3
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.y:D
3: aload 1
aload 1
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.map:Ljava/lang/Object;
4: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.map:()Ljava/util/Map;
astore 2
start local 2 5: ldc "x"
aload 2
ldc "x"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
6: ldc "y"
aload 2
ldc "y"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ldc 33.3
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 2
ldc "x"
bipush 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: ldc "x changed"
aload 1
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.x:I
i2l
ldc 13
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
9: iconst_0
istore 3
start local 3 10: iconst_0
istore 4
start local 4 11: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
start local 5 12: goto 20
13: StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data java.util.Map int int java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 14: ldc "x"
aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
15: ldc "x value found"
aload 1
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.x:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
16: iconst_1
istore 3
17: StackMap locals: java.util.Map$Entry
StackMap stack:
ldc "y"
aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
18: ldc "y value found"
aload 1
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.y:D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
19: iconst_1
istore 4
end local 6 20: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
21: iload 3
invokestatic org.junit.Assert.assertTrue:(Z)V
22: iload 4
invokestatic org.junit.Assert.assertTrue:(Z)V
23: 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 24 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 24 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
5 24 2 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
10 24 3 foundX Z
11 24 4 foundY Z
12 24 5 it Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;>;
14 20 6 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
org.junit.Test()
public void nullCanBeReturned();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, 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.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
astore 2
start local 2 2: aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.value:()Ljava/lang/Integer;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 4 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
2 4 2 xyp Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
RuntimeVisibleAnnotations:
org.junit.Test()
public void integerCanBeConvertedFromAnObjectField();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, 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.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
astore 2
start local 2 2: aload 1
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.value:Ljava/lang/Object;
3: bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.value:()Ljava/lang/Integer;
invokestatic org.junit.Assert.assertEquals:(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/ValueHostInteropTest;
1 5 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
2 5 2 xyp Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
RuntimeVisibleAnnotations:
org.junit.Test()
public void isNull();
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.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aconst_null
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.polyglot.Value.isNull:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.isNull:()Z
invokestatic org.junit.Assert.assertFalse:(Z)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/ValueHostInteropTest;
1 4 1 value Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testClassStaticMembers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
ldc Ljava/lang/String;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
ldc "static"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 2: ldc "concatenated"
aload 2
ldc "join"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_3
anewarray java.lang.Object
dup
iconst_0
ldc "cat"
aastore
dup
iconst_1
ldc "con"
aastore
dup
iconst_2
ldc "enated"
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
3: ldc Ljava/lang/String;
aload 2
ldc "class"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(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/ValueHostInteropTest;
1 5 1 stringClass Lorg/graalvm/polyglot/Value;
2 5 2 stringStatic Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void functionalInterfaceOverridingObjectMethods();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=1
start local 0 0: ldc "Cannot get reflection data for a lambda"
getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
invokestatic org.junit.Assume.assumeFalse:(Ljava/lang/String;Z)V
1: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
invokedynamic call()Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithObjectMethodOverrides;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/ValueHostInteropTest.lambda$1([Ljava/lang/Object;)Ljava/lang/Object; (6)
([Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 2: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "call"
aastore
aload 1
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
invokestatic org.junit.Assert.assertArrayEquals:([Ljava/lang/Object;[Ljava/lang/Object;)V
3: ldc 42
aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
2 5 1 object Lorg/graalvm/polyglot/Value;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void executableAsFunction();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Ljava/util/function/Function;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.function.Function
astore 2
start local 2 2: ldc 13
aload 2
bipush 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
3: aload 2
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)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/ValueHostInteropTest;
1 5 1 executable Lcom/oracle/truffle/api/interop/TruffleObject;
2 5 2 f Ljava/util/function/Function<Ljava/lang/Integer;Ljava/lang/Integer;>;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void executableAsFunctionalInterface1();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithDefaults;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithDefaults
astore 2
start local 2 2: bipush 50
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
bipush 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
bipush 37
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithDefaults.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 2
invokevirtual java.lang.Object.hashCode:()I
pop
4: aload 2
aconst_null
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
pop
5: aload 2
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
6: aload 2
aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithDefaults;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
pop
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/ValueHostInteropTest;
1 9 1 executable Lcom/oracle/truffle/api/interop/TruffleObject;
2 9 2 f Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithDefaults;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void executableAsFunctionalInterface2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithObjectMethodOverrides;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithObjectMethodOverrides
astore 2
start local 2 2: bipush 50
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
bipush 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
bipush 37
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithObjectMethodOverrides.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithObjectMethodOverrides.hashCode:()I
pop
4: aload 2
aconst_null
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithObjectMethodOverrides.equals:(Ljava/lang/Object;)Z
pop
5: aload 2
aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithObjectMethodOverrides.equals:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
6: aload 2
aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithObjectMethodOverrides;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithObjectMethodOverrides.toString:()Ljava/lang/String;
pop
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/ValueHostInteropTest;
1 9 1 executable Lcom/oracle/truffle/api/interop/TruffleObject;
2 9 2 f Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithObjectMethodOverrides;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void executableAsFunctionalInterface3();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: ldc "JDK 9 or later"
ldc "java.specification.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
ldc "1.9"
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
iflt 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.String
1: iconst_0
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
StackMap stack: java.lang.String int
2: invokestatic org.junit.Assume.assumeTrue:(Ljava/lang/String;Z)V
3: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject.<init>:()V
astore 1
start local 1 4: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithDefaults;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithDefaults
astore 2
start local 2 5: bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
bipush 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
bipush 29
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithDefaults.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: ldc 50
aload 2
bipush 13
bipush 37
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithDefaults.call:(II)I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: aload 2
invokevirtual java.lang.Object.hashCode:()I
pop
8: aload 2
aconst_null
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
pop
9: aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
pop
10: return
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/ValueHostInteropTest;
4 11 1 executable Lcom/oracle/truffle/api/interop/TruffleObject;
5 11 2 f Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$FunctionalWithDefaults;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Ignore(value = "Interface not accessible")
org.junit.Test()
public void listUnwrapsTruffleObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, 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 1
iconst_1
anewarray com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
iconst_0
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
aastore
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.data:[Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
2: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
astore 2
start local 2 3: aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.data:()Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
astore 3
start local 3 4: aload 1
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.data:[Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
iconst_0
aaload
aload 3
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 6 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
3 6 2 xyp Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
4 6 3 value Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
RuntimeVisibleAnnotations:
org.junit.Test()
public void mapUnwrapsTruffleObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, 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 1
aload 1
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.dataMap:Ljava/lang/Object;
2: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
astore 2
start local 2 3: aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.dataMap:()Ljava/util/Map;
ldc "dataMap"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
astore 3
start local 3 4: aload 1
aload 3
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
5: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
astore 4
start local 4 6: aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.dataMap:()Ljava/util/Map;
ldc "dataMap"
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
astore 5
start local 5 7: aload 1
aload 5
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
8: aload 4
aload 1
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.dataMap:Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
9: 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 10 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 10 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
3 10 2 xyp Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
4 10 3 value Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
6 10 4 newValue Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
7 10 5 previousValue Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
RuntimeVisibleAnnotations:
org.junit.Test()
public void mapEntrySetUnwrapsTruffleObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, 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 1
aload 1
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.dataMap:Ljava/lang/Object;
2: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
astore 2
start local 2 3: aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.dataMap:()Ljava/util/Map;
astore 3
start local 3 4: aload 3
ldc "dataMap"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
astore 4
start local 4 5: aload 1
aload 4
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
6: aload 2
invokeinterface com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus.dataMap:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 15
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus java.util.Map com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 8: ldc "dataMap"
aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
9: aload 4
aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
10: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
astore 7
start local 7 11: aload 5
aload 7
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
astore 8
start local 8 12: aload 4
aload 8
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
13: aload 7
aload 3
ldc "dataMap"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
14: return
end local 8 end local 7 end local 5 15: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
16: ldc "Entry dataMap not found"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
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/ValueHostInteropTest;
1 18 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
3 18 2 xyp Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$XYPlus;
4 18 3 map Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;>;
5 18 4 value Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
8 15 5 entry Ljava/util/Map$Entry<Ljava/lang/String;Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;>;
11 15 7 newValue Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
12 15 8 prev Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testNewClass();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
ldc Ljava/util/HashMap;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.polyglot.Value.canInstantiate:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: aload 1
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.newInstance:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
4: aload 2
invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
instanceof java.util.HashMap
invokestatic org.junit.Assert.assertTrue:(Z)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 6 1 hashMapClass Lorg/graalvm/polyglot/Value;
3 6 2 hashMap Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testNewObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
ldc Ljava/lang/Object;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.newInstance:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 2: aload 2
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 4 1 objectClass Lorg/graalvm/polyglot/Value;
2 4 2 object Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testNewArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
ldc [J
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.newInstance:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 2: aload 2
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
3: aload 2
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
4: ldc 4
aload 2
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 6 1 objectClass Lorg/graalvm/polyglot/Value;
2 6 2 object Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMultiDimArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=1
start local 0 0: iconst_3
anewarray long[]
dup
iconst_0
1: iconst_2
newarray 11
dup
iconst_0
lconst_1
lastore
dup
iconst_1
ldc 2
lastore
aastore
dup
iconst_1
2: iconst_2
newarray 11
dup
iconst_0
ldc 3
lastore
dup
iconst_1
ldc 4
lastore
aastore
dup
iconst_2
3: iconst_2
newarray 11
dup
iconst_0
ldc 5
lastore
dup
iconst_1
ldc 6
lastore
aastore
4: astore 1
start local 1 5: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 6: aload 2
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: aload 2
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: ldc 3
aload 2
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: aload 2
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 10: aload 3
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
11: ldc 2
aload 3
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
12: ldc 3
aload 3
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
13: ldc 4
aload 3
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
5 15 1 matrix [[J
6 15 2 object Lorg/graalvm/polyglot/Value;
10 15 3 row Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testNewMultiDimArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
ldc [[J
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
invokedynamic call(Lorg/graalvm/polyglot/Value;)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/ValueHostInteropTest.lambda$2(Lorg/graalvm/polyglot/Value;)Ljava/lang/Object; (6)
()Ljava/lang/Object;
ldc Ljava/lang/IllegalArgumentException;
invokestatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.assertFails:(Ljava/util/concurrent/Callable;Ljava/lang/Class;)V
2: aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.newInstance:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.polyglot.Value.isHostObject:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
4: aload 2
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
5: ldc 4
aload 2
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
6: aload 2
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 7: aload 3
invokevirtual org.graalvm.polyglot.Value.isNull:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 2
lconst_0
iconst_2
newarray 11
dup
iconst_0
ldc 3
lastore
dup
iconst_1
ldc 4
lastore
invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
9: aload 2
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 3
10: aload 3
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
11: ldc 2
aload 3
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
12: ldc 3
aload 3
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
13: ldc 4
aload 3
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 15 1 objectClass Lorg/graalvm/polyglot/Value;
3 15 2 object Lorg/graalvm/polyglot/Value;
7 15 3 row Lorg/graalvm/polyglot/Value;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testException();
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.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
ldc "next"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
pop
2: ldc "expected an exception but none was thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
3: goto 7
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest org.graalvm.polyglot.Value
StackMap stack: org.graalvm.polyglot.PolyglotException
4: astore 2
start local 2 5: new java.lang.StringBuilder
dup
ldc "expected HostException but was: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.isHostException:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
6: aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.asHostException:()Ljava/lang/Throwable;
ldc Ljava/util/NoSuchElementException;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 8 1 iterator Lorg/graalvm/polyglot/Value;
5 7 2 ex Lorg/graalvm/polyglot/PolyglotException;
Exception table:
from to target type
1 3 4 Class org.graalvm.polyglot.PolyglotException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testException2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
ldc Ljava/util/HashMap;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 1
start local 1 1: aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_m1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.newInstance:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
pop
2: ldc "expected an exception but none was thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
3: goto 7
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest org.graalvm.polyglot.Value
StackMap stack: org.graalvm.polyglot.PolyglotException
4: astore 2
start local 2 5: new java.lang.StringBuilder
dup
ldc "expected HostException but was: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.isHostException:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
6: aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.asHostException:()Ljava/lang/Throwable;
ldc Ljava/lang/IllegalArgumentException;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
end local 2 7: StackMap locals:
StackMap stack:
aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc ""
aastore
invokevirtual org.graalvm.polyglot.Value.newInstance:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
pop
8: ldc "expected an exception but none was thrown"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
9: goto 11
StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
10: pop
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 12 1 hashMapClass Lorg/graalvm/polyglot/Value;
5 7 2 ex Lorg/graalvm/polyglot/PolyglotException;
Exception table:
from to target type
1 3 4 Class org.graalvm.polyglot.PolyglotException
7 9 10 Class java.lang.IllegalArgumentException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testRemoveMessage();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, 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 1
iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "Hello"
aastore
dup
iconst_1
ldc "World"
aastore
dup
iconst_2
ldc "!"
aastore
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.arr:[Ljava/lang/String;
2: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new java.util.ArrayList
dup
aload 1
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.arr:[Ljava/lang/String;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 3: ldc 3
aload 2
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
lconst_1
invokevirtual org.graalvm.polyglot.Value.removeArrayElement:(J)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
5: ldc 2
aload 2
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
6: aload 2
ldc 10
invokevirtual org.graalvm.polyglot.Value.removeArrayElement:(J)Z
pop
7: ldc "Out of bounds."
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
8: goto 10
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data org.graalvm.polyglot.Value
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
9: pop
10: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 1
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.arr:[Ljava/lang/String;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 11: aload 3
lconst_0
invokevirtual org.graalvm.polyglot.Value.removeArrayElement:(J)Z
pop
12: ldc "Remove of elements of an array is not supported."
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
13: goto 15
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data org.graalvm.polyglot.Value org.graalvm.polyglot.Value
StackMap stack: java.lang.UnsupportedOperationException
14: pop
15: StackMap locals:
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 4
start local 4 16: aload 4
ldc "a"
ldc "aa"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 4
ldc "b"
ldc "bb"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 4
invokestatic org.graalvm.polyglot.proxy.ProxyObject.fromMap:(Ljava/util/Map;)Lorg/graalvm/polyglot/proxy/ProxyObject;
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 19: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 5
ldc "a"
invokevirtual org.graalvm.polyglot.Value.removeMember:(Ljava/lang/String;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
20: lconst_1
aload 4
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
21: aload 5
ldc "a"
invokevirtual org.graalvm.polyglot.Value.removeMember:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
22: 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 23 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 23 1 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
3 23 2 truffleList Lorg/graalvm/polyglot/Value;
11 23 3 arrObj Lorg/graalvm/polyglot/Value;
16 23 4 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
19 23 5 truffleMap Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
6 8 9 Class java.lang.ArrayIndexOutOfBoundsException
11 13 14 Class java.lang.UnsupportedOperationException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testRemoveList();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$ArrayTruffleObject
dup
bipush 100
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$ArrayTruffleObject.<init>:(I)V
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 1
start local 1 1: ldc 100
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
2: aload 1
bipush 10
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
checkcast java.lang.Integer
astore 2
start local 2 3: bipush 90
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: ldc 99
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: aload 1
bipush 20
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
istore 3
start local 3 6: iload 3
invokestatic org.junit.Assert.assertTrue:(Z)V
7: ldc 98
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 9: aload 4
invokeinterface java.util.Iterator.remove:()V
10: ldc "IllegalStateException"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
11: goto 13
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest java.util.List java.lang.Integer int java.util.Iterator
StackMap stack: java.lang.IllegalStateException
12: pop
13: StackMap locals:
StackMap stack:
bipush 98
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: bipush 97
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: aload 4
invokeinterface java.util.Iterator.remove:()V
16: ldc 97
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
17: aload 4
invokeinterface java.util.Iterator.remove:()V
18: ldc "IllegalStateException"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
19: goto 21
StackMap locals:
StackMap stack: java.lang.IllegalStateException
20: pop
21: StackMap locals:
StackMap stack:
bipush 96
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
22: aload 4
invokeinterface java.util.Iterator.remove:()V
23: ldc 96
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
24: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "Hello"
aastore
dup
iconst_1
ldc "World"
aastore
dup
iconst_2
ldc "!"
aastore
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
getstatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.LIST_STRING:Lorg/graalvm/polyglot/TypeLiteral;
invokevirtual org.graalvm.polyglot.Value.as:(Lorg/graalvm/polyglot/TypeLiteral;)Ljava/lang/Object;
checkcast java.util.List
astore 5
start local 5 25: ldc "World"
aload 5
iconst_1
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
26: ldc "Remove of elements of an array is not supported."
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
27: goto 29
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest java.util.List java.lang.Integer int java.util.Iterator java.util.List
StackMap stack: java.lang.UnsupportedOperationException
28: pop
29: StackMap locals:
StackMap stack:
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 30 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 30 1 list Ljava/util/List<Ljava/lang/Integer;>;
3 30 2 value Ljava/lang/Integer;
6 30 3 success Z
9 30 4 liter Ljava/util/Iterator<Ljava/lang/Integer;>;
25 30 5 arr Ljava/util/List<Ljava/lang/String;>;
Exception table:
from to target type
9 11 12 Class java.lang.IllegalStateException
17 19 20 Class java.lang.IllegalStateException
25 27 28 Class java.lang.UnsupportedOperationException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testRemoveMap();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=15, args_size=1
start local 0 0: bipush 15
istore 1
start local 1 1: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 7
4: StackMap locals: int java.util.Map int
StackMap stack:
bipush 97
iload 3
iadd
i2c
istore 4
start local 4 5: aload 2
new java.lang.String
dup
iconst_1
newarray 5
dup
iconst_0
iload 4
castore
invokespecial java.lang.String.<init>:([C)V
new java.lang.String
dup
iconst_2
newarray 5
dup
iconst_0
iload 4
castore
dup
iconst_1
iload 4
castore
invokespecial java.lang.String.<init>:([C)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 1
if_icmplt 4
end local 3 8: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$RemoveKeysObject
dup
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$RemoveKeysObject.<init>:(Ljava/util/Map;)V
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
getstatic com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.MAP_STRING_STRING:Lorg/graalvm/polyglot/TypeLiteral;
invokevirtual org.graalvm.polyglot.Value.as:(Lorg/graalvm/polyglot/TypeLiteral;)Ljava/lang/Object;
checkcast java.util.Map
astore 3
start local 3 9: iload 1
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: aload 3
ldc "a"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 11: ldc "aa"
aload 4
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: iload 1
iconst_1
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
13: aload 3
ldc "b"
ldc "c"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;Ljava/lang/Object;)Z
istore 5
start local 5 14: iload 5
invokestatic org.junit.Assert.assertFalse:(Z)V
15: iload 1
iconst_1
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
16: aload 3
ldc "b"
ldc "bb"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;Ljava/lang/Object;)Z
istore 5
17: iload 5
invokestatic org.junit.Assert.assertTrue:(Z)V
18: iload 1
iconst_2
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
19: aload 3
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
astore 6
start local 6 20: aload 6
ldc "c"
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
istore 5
21: iload 5
invokestatic org.junit.Assert.assertTrue:(Z)V
22: iload 1
iconst_3
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
23: aload 6
ldc "xx"
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
istore 5
24: iload 5
invokestatic org.junit.Assert.assertFalse:(Z)V
25: iload 1
iconst_3
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
26: iload 1
iconst_3
isub
i2l
aload 6
invokeinterface java.util.Set.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
27: aload 6
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
start local 7 28: aload 7
invokeinterface java.util.Iterator.remove:()V
29: ldc "IllegalStateException"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
30: goto 32
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest int java.util.Map java.util.Map java.lang.String int java.util.Set java.util.Iterator
StackMap stack: java.lang.IllegalStateException
31: pop
32: StackMap locals:
StackMap stack:
ldc "d"
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
33: aload 7
invokeinterface java.util.Iterator.remove:()V
34: iload 1
iconst_4
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
35: aload 7
invokeinterface java.util.Iterator.remove:()V
36: ldc "IllegalStateException"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
37: goto 39
StackMap locals:
StackMap stack: java.lang.IllegalStateException
38: pop
39: StackMap locals:
StackMap stack:
ldc "e"
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
40: aload 7
invokeinterface java.util.Iterator.remove:()V
41: iload 1
iconst_5
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
42: aload 3
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
astore 8
start local 8 43: aload 8
new java.util.AbstractMap$SimpleEntry
dup
ldc "f"
ldc "ff"
invokespecial java.util.AbstractMap$SimpleEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
istore 5
44: iload 5
invokestatic org.junit.Assert.assertTrue:(Z)V
45: iload 1
bipush 6
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
46: aload 8
new java.util.AbstractMap$SimpleEntry
dup
ldc "g"
ldc "xx"
invokespecial java.util.AbstractMap$SimpleEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
istore 5
47: iload 5
invokestatic org.junit.Assert.assertFalse:(Z)V
48: aload 8
new java.util.AbstractMap$SimpleEntry
dup
ldc "xx"
ldc "gg"
invokespecial java.util.AbstractMap$SimpleEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
istore 5
49: iload 5
invokestatic org.junit.Assert.assertFalse:(Z)V
50: iload 1
bipush 6
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
51: aload 8
new java.util.AbstractMap$SimpleEntry
dup
ldc "g"
ldc "gg"
invokespecial java.util.AbstractMap$SimpleEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
istore 5
52: iload 5
invokestatic org.junit.Assert.assertTrue:(Z)V
53: iload 1
bipush 7
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
54: iload 1
bipush 7
isub
i2l
aload 8
invokeinterface java.util.Set.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
55: aload 8
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
start local 9 56: aload 9
invokeinterface java.util.Iterator.remove:()V
57: ldc "IllegalStateException"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
58: goto 60
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest int java.util.Map java.util.Map java.lang.String int java.util.Set java.util.Iterator java.util.Set java.util.Iterator
StackMap stack: java.lang.IllegalStateException
59: pop
60: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 10
start local 10 61: ldc "h"
aload 10
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
62: ldc "hh"
aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
63: aload 9
invokeinterface java.util.Iterator.remove:()V
64: iload 1
bipush 8
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
65: aload 3
invokeinterface java.util.Map.values:()Ljava/util/Collection;
astore 11
start local 11 66: aload 11
ldc "ii"
invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
istore 5
67: iload 5
invokestatic org.junit.Assert.assertTrue:(Z)V
68: iload 1
bipush 9
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
69: aload 11
ldc "xxx"
invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
istore 5
70: iload 5
invokestatic org.junit.Assert.assertFalse:(Z)V
71: iload 1
bipush 9
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
72: aload 11
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 12
start local 12 73: aload 12
invokeinterface java.util.Iterator.remove:()V
74: ldc "IllegalStateException"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
75: goto 77
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest int java.util.Map java.util.Map java.lang.String int java.util.Set java.util.Iterator java.util.Set java.util.Iterator java.util.Map$Entry java.util.Collection java.util.Iterator
StackMap stack: java.lang.IllegalStateException
76: pop
77: StackMap locals:
StackMap stack:
ldc "jj"
aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
78: aload 12
invokeinterface java.util.Iterator.remove:()V
79: iload 1
bipush 10
isub
i2l
aload 3
invokeinterface java.util.Map.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
80: iload 1
bipush 10
isub
i2l
aload 11
invokeinterface java.util.Collection.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
81: new com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data
dup
invokespecial com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.<init>:()V
astore 13
start local 13 82: aload 13
aload 13
putfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data.map:Ljava/lang/Object;
83: aload 0
getfield com.oracle.truffle.api.test.polyglot.ValueHostInteropTest.context:Lorg/graalvm/polyglot/Context;
aload 13
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
ldc Ljava/util/Map;
invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.Map
astore 14
start local 14 84: aload 14
ldc "x"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
85: ldc "Remove of object fields is not supported."
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
86: goto 88
StackMap locals: com.oracle.truffle.api.test.polyglot.ValueHostInteropTest int java.util.Map java.util.Map java.lang.String int java.util.Set java.util.Iterator java.util.Set java.util.Iterator java.util.Map$Entry java.util.Collection java.util.Iterator com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data java.util.Map
StackMap stack: java.lang.UnsupportedOperationException
87: pop
88: StackMap locals:
StackMap stack:
return
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 89 0 this Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest;
1 89 1 size I
2 89 2 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
3 8 3 i I
5 6 4 c C
9 89 3 jmap Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
11 89 4 value Ljava/lang/String;
14 89 5 success Z
20 89 6 keySet Ljava/util/Set<Ljava/lang/String;>;
28 89 7 siter Ljava/util/Iterator<Ljava/lang/String;>;
43 89 8 entrySet Ljava/util/Set<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;>;
56 89 9 esiter Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;>;
61 89 10 nextEntry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
66 89 11 values Ljava/util/Collection<Ljava/lang/String;>;
73 89 12 viter Ljava/util/Iterator<Ljava/lang/String;>;
82 89 13 data Lcom/oracle/truffle/api/test/polyglot/ValueHostInteropTest$Data;
84 89 14 dmap Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Exception table:
from to target type
28 30 31 Class java.lang.IllegalStateException
35 37 38 Class java.lang.IllegalStateException
56 58 59 Class java.lang.IllegalStateException
73 75 76 Class java.lang.IllegalStateException
84 86 87 Class java.lang.UnsupportedOperationException
RuntimeVisibleAnnotations:
org.junit.Test()
private static java.lang.Object lambda$0(org.graalvm.polyglot.Value, java.lang.String);
descriptor: (Lorg/graalvm/polyglot/Value;Ljava/lang/String;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
private static java.lang.Object lambda$1(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
arraylength
iconst_1
if_icmplt 1
aload 0
iconst_0
aaload
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 args [Ljava/lang/Object;
private static java.lang.Object lambda$2(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=1, args_size=1
0: aload 0
iconst_2
anewarray java.lang.Object
dup
iconst_0
iconst_3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iconst_4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.newInstance:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
SourceFile: "ValueHostInteropTest.java"
NestMembers:
com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$1 com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$2 com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$3 com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$ArrayTruffleObject com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithDefaults com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithObjectMethodOverrides com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$ListArray com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PrivatePOJO com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PublicPOJO com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$RemoveKeysObject com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$RemoveKeysObject$1 com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus
InnerClasses:
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$1
com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$2
com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$3
final ArrayTruffleObject = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$ArrayTruffleObject of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
public Data = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$Data of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
final FunctionObject = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionObject of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
public abstract FunctionalWithDefaults = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithDefaults of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
public abstract FunctionalWithObjectMethodOverrides = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$FunctionalWithObjectMethodOverrides of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
ListArray = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$ListArray of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
PrivatePOJO = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PrivatePOJO of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
public PublicPOJO = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$PublicPOJO of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
final RemoveKeysObject = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$RemoveKeysObject of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
public abstract XYPlus = com.oracle.truffle.api.test.polyglot.ValueHostInteropTest$XYPlus of com.oracle.truffle.api.test.polyglot.ValueHostInteropTest
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public SimpleEntry = java.util.AbstractMap$SimpleEntry of java.util.AbstractMap
public abstract Entry = java.util.Map$Entry of java.util.Map