public class com.oracle.truffle.js.test.interop.InteropArrayTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.interop.InteropArrayTest
super_class: java.lang.Object
{
private static final int[] JAVA_ARRAY;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.List<java.lang.Integer> JAVA_LIST;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Integer;>;
private static final java.lang.String JS_ARRAY_STRING;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_4
newarray 10
dup
iconst_0
iconst_3
iastore
dup
iconst_1
iconst_4
iastore
dup
iconst_2
iconst_1
iastore
dup
iconst_3
iconst_5
iastore
putstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_ARRAY:[I
1: getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_ARRAY:[I
invokestatic java.util.Arrays.stream:([I)Ljava/util/stream/IntStream;
invokeinterface java.util.stream.IntStream.boxed:()Ljava/util/stream/Stream;
invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
putstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_LIST:Ljava/util/List;
2: getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_ARRAY:[I
invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
putstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JS_ARRAY_STRING:Ljava/lang/String;
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 java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
public void testArrayGetMembers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "[3, 4, 1, 5]"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc 3
aload 4
ldc "0"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: ldc 3
aload 4
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
6: lconst_1
aload 4
ldc "2"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: lconst_1
aload 4
ldc 2
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
8: aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 4 9: aload 3
ifnull 15
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 15
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 11 3 context Lorg/graalvm/polyglot/Context;
3 9 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 9 10 any
1 12 12 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSlowArrayGetMembers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "var a = [3, 4, 1, 5]; Object.defineProperty(a, 2, {get: function(){return 42;}}); a;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc 3
aload 4
ldc "0"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: ldc 3
aload 4
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
6: ldc 42
aload 4
ldc "2"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: ldc 42
aload 4
ldc 2
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
8: aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 4 9: aload 3
ifnull 15
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 15
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 11 3 context Lorg/graalvm/polyglot/Context;
3 9 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 9 10 any
1 12 12 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSlowArrayWithIntKeyEnumerablePropertyGetMembers1();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "var a = [3, 4, 1, 5]; Object.defineProperty(a, 2, {get: function(){return 42;}, enumerable: true}); a;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc 3
aload 4
ldc "0"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: ldc 3
aload 4
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
6: ldc 42
aload 4
ldc "2"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: ldc 42
aload 4
ldc 2
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
8: aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 4 9: aload 3
ifnull 15
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 15
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 11 3 context Lorg/graalvm/polyglot/Context;
3 9 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 9 10 any
1 12 12 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSlowArrayWithIntKeyEnumerablePropertyGetMembers2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "var a = [3, 4, 1, 5]; Object.defineProperty(a, '2', {get: function(){return 42;}, enumerable: true}); a;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc 3
aload 4
ldc "0"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: ldc 3
aload 4
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
6: ldc 42
aload 4
ldc "2"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: ldc 42
aload 4
ldc 2
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
8: aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 4 9: aload 3
ifnull 15
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 15
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 11 3 context Lorg/graalvm/polyglot/Context;
3 9 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 9 10 any
1 12 12 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSlowArrayWithStringKeyEnumerablePropertyGetMembers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "var a = [3, 4, 1, 5]; Object.defineProperty(a, 'x', {get: function(){return 42;}, enumerable: true}); a;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc 3
aload 4
ldc "0"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: ldc 3
aload 4
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
6: lconst_1
aload 4
ldc "2"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: lconst_1
aload 4
ldc 2
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
8: ldc 42
aload 4
ldc "x"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
ldc "x"
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 4 10: aload 3
ifnull 16
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 16
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
11: astore 1
aload 3
ifnull 12
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 12 3 context Lorg/graalvm/polyglot/Context;
3 10 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 10 11 any
1 13 13 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testTypedArrayGetMembers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "Int8Array.from([3, 4, 1, 5]);"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc 3
aload 4
ldc "0"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: ldc 3
aload 4
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
6: lconst_1
aload 4
ldc "2"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: lconst_1
aload 4
ldc 2
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
8: aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 4 9: aload 3
ifnull 15
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 15
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 11 3 context Lorg/graalvm/polyglot/Context;
3 9 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 9 10 any
1 12 12 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testArgumentsObjectGetMembers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "(function(){return arguments;})(3, 4, 1, 5);"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc 3
aload 4
ldc "0"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: ldc 3
aload 4
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
6: lconst_1
aload 4
ldc "2"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: lconst_1
aload 4
ldc 2
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
8: aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 4
invokevirtual org.graalvm.polyglot.Value.getMemberKeys:()Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 4 9: aload 3
ifnull 15
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 15
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 11 3 context Lorg/graalvm/polyglot/Context;
3 9 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 9 10 any
1 12 12 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testArrayHoles();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "[3,,,5]"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: ldc 3
aload 4
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
5: ldc 5
aload 4
ldc 3
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
6: aload 4
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.isNull:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: aload 4
ldc 2
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.isNull:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 4
lconst_1
iconst_4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
9: aload 4
ldc 2
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
10: ldc 4
aload 4
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
11: lconst_1
aload 4
ldc 2
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
end local 4 12: aload 3
ifnull 18
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 18
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
13: astore 1
aload 3
ifnull 14
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
14: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 2
aload 1
ifnonnull 16
aload 2
astore 1
goto 17
StackMap locals:
StackMap stack:
16: aload 1
aload 2
if_acmpeq 17
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 1
athrow
18: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 14 3 context Lorg/graalvm/polyglot/Context;
3 12 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 12 13 any
1 15 15 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testArrayIndexOutOfBounds();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "[3, 4, 1, 5]"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: ldc 4
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: aload 4
ldc 4
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
pop
end local 4 5: aload 3
ifnull 11
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 11
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
6: astore 1
aload 3
ifnull 7
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
7: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 2
aload 1
ifnonnull 9
aload 2
astore 1
goto 10
StackMap locals:
StackMap stack:
9: aload 1
aload 2
if_acmpeq 10
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 1
athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 7 3 context Lorg/graalvm/polyglot/Context;
3 5 4 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 5 6 any
1 8 8 any
RuntimeVisibleAnnotations:
org.junit.Test(expected = Ljava/lang/ArrayIndexOutOfBoundsException;)
public void testArrayBasic();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JS_ARRAY_STRING:Ljava/lang/String;
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: aload 4
invokestatic com.oracle.truffle.js.test.interop.InteropArrayTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
end local 4 4: aload 3
ifnull 10
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 10
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
5: astore 1
aload 3
ifnull 6
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
6: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
aload 1
ifnonnull 8
aload 2
astore 1
goto 9
StackMap locals:
StackMap stack:
8: aload 1
aload 2
if_acmpeq 9
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
9: aload 1
athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 6 3 context Lorg/graalvm/polyglot/Context;
3 4 4 v Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 4 5 any
1 7 7 any
RuntimeVisibleAnnotations:
org.junit.Test()
private static void commonCheck(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_ARRAY:[I
arraylength
i2l
aload 0
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
1: getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_ARRAY:[I
2: iconst_0
aload 0
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
l2i
invokestatic java.util.stream.IntStream.range:(II)Ljava/util/stream/IntStream;
aload 0
invokedynamic applyAsInt(Lorg/graalvm/polyglot/Value;)Ljava/util/function/IntUnaryOperator;
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:
(I)I
com/oracle/truffle/js/test/interop/InteropArrayTest.lambda$0(Lorg/graalvm/polyglot/Value;I)I (6)
(I)I
invokeinterface java.util.stream.IntStream.map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
invokeinterface java.util.stream.IntStream.toArray:()[I
3: invokestatic org.junit.Assert.assertArrayEquals:([I[I)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 v Lorg/graalvm/polyglot/Value;
MethodParameters:
Name Flags
v
public void testArrayAsListParameter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "methodWithListArgument"
invokestatic com.oracle.truffle.js.test.interop.InteropArrayTest.testArrayAsParameter:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testArrayAsArrayParameter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "methodWithArrayArgument"
invokestatic com.oracle.truffle.js.test.interop.InteropArrayTest.testArrayAsParameter:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
RuntimeVisibleAnnotations:
org.junit.Test()
private static void testArrayAsParameter(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: invokestatic org.graalvm.polyglot.HostAccess.newBuilder:()Lorg/graalvm/polyglot/HostAccess$Builder;
ldc Lorg/graalvm/polyglot/HostAccess$Export;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.allowAccessAnnotatedBy:(Ljava/lang/Class;)Lorg/graalvm/polyglot/HostAccess$Builder;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.build:()Lorg/graalvm/polyglot/HostAccess;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 1
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 4
start local 4 3: aload 4
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 4: new com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS
dup
invokespecial com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS.<init>:()V
astore 6
start local 6 5: aload 5
ldc "objectFromJava"
aload 6
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
6: aload 4
ldc "js"
new java.lang.StringBuilder
dup
ldc "objectFromJava."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JS_ARRAY_STRING:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
7: getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_ARRAY:[I
arraylength
i2l
aload 6
getfield com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS.list:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JS_ARRAY_STRING:Ljava/lang/String;
aload 6
getfield com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS.list:Ljava/util/List;
invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 6 end local 5 9: aload 4
ifnull 15
aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 15
StackMap locals: java.lang.String org.graalvm.polyglot.HostAccess java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
10: astore 2
aload 4
ifnull 11
aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 4 StackMap locals:
StackMap stack:
11: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 3
aload 2
ifnonnull 13
aload 3
astore 2
goto 14
StackMap locals:
StackMap stack:
13: aload 2
aload 3
if_acmpeq 14
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 2
athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 methodName Ljava/lang/String;
1 16 1 hostAccess Lorg/graalvm/polyglot/HostAccess;
3 11 4 context Lorg/graalvm/polyglot/Context;
4 9 5 bindings Lorg/graalvm/polyglot/Value;
5 9 6 objectFromJava Lcom/oracle/truffle/js/test/interop/InteropArrayTest$ToBePassedToJS;
Exception table:
from to target type
3 9 10 any
2 12 12 any
MethodParameters:
Name Flags
methodName
public void testJavaArrayAsJSArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: invokestatic org.graalvm.polyglot.HostAccess.newBuilder:()Lorg/graalvm/polyglot/HostAccess$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.HostAccess$Builder.allowArrayAccess:(Z)Lorg/graalvm/polyglot/HostAccess$Builder;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.build:()Lorg/graalvm/polyglot/HostAccess;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 1
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 4
start local 4 3: aload 4
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 4: aload 5
ldc "arrayFromJava"
getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_ARRAY:[I
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
5: aload 4
ldc "js"
ldc "var recreatedArray = [];for (var i = 0; i < arrayFromJava.length; i++)recreatedArray.push(arrayFromJava[i]);recreatedArray"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 6: aload 6
invokestatic com.oracle.truffle.js.test.interop.InteropArrayTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
end local 6 end local 5 7: aload 4
ifnull 13
aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 13
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest org.graalvm.polyglot.HostAccess java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
8: astore 2
aload 4
ifnull 9
aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 4 StackMap locals:
StackMap stack:
9: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 3
aload 2
ifnonnull 11
aload 3
astore 2
goto 12
StackMap locals:
StackMap stack:
11: aload 2
aload 3
if_acmpeq 12
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 2
athrow
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
1 14 1 hostAccess Lorg/graalvm/polyglot/HostAccess;
3 9 4 context Lorg/graalvm/polyglot/Context;
4 7 5 bindings Lorg/graalvm/polyglot/Value;
6 7 6 v Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
3 7 8 any
2 10 10 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testJavaListAsJSArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: invokestatic org.graalvm.polyglot.HostAccess.newBuilder:()Lorg/graalvm/polyglot/HostAccess$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.HostAccess$Builder.allowListAccess:(Z)Lorg/graalvm/polyglot/HostAccess$Builder;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.build:()Lorg/graalvm/polyglot/HostAccess;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 1
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 4
start local 4 3: aload 4
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 4: aload 5
ldc "arrayFromJava"
getstatic com.oracle.truffle.js.test.interop.InteropArrayTest.JAVA_LIST:Ljava/util/List;
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
5: aload 4
ldc "js"
ldc "var recreatedArray = [];for (var i = 0; i < arrayFromJava.length; i++)recreatedArray.push(arrayFromJava[i]);recreatedArray"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 6: aload 6
invokestatic com.oracle.truffle.js.test.interop.InteropArrayTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
end local 6 end local 5 7: aload 4
ifnull 13
aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 13
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest org.graalvm.polyglot.HostAccess java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
8: astore 2
aload 4
ifnull 9
aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 4 StackMap locals:
StackMap stack:
9: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 3
aload 2
ifnonnull 11
aload 3
astore 2
goto 12
StackMap locals:
StackMap stack:
11: aload 2
aload 3
if_acmpeq 12
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 2
athrow
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
1 14 1 hostAccess Lorg/graalvm/polyglot/HostAccess;
3 9 4 context Lorg/graalvm/polyglot/Context;
4 7 5 bindings Lorg/graalvm/polyglot/Value;
6 7 6 v Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
3 7 8 any
2 10 10 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testJavaReturnArrayAsJSArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic com.oracle.truffle.js.test.interop.InteropArrayTest.testJavaReturnArrayOrListAsJSArray:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testJavaReturnListAsJSArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
invokestatic com.oracle.truffle.js.test.interop.InteropArrayTest.testJavaReturnArrayOrListAsJSArray:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
RuntimeVisibleAnnotations:
org.junit.Test()
private static void testJavaReturnArrayOrListAsJSArray(boolean);
descriptor: (Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=1
start local 0 0: invokestatic org.graalvm.polyglot.HostAccess.newBuilder:()Lorg/graalvm/polyglot/HostAccess$Builder;
ldc Lorg/graalvm/polyglot/HostAccess$Export;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.allowAccessAnnotatedBy:(Ljava/lang/Class;)Lorg/graalvm/polyglot/HostAccess$Builder;
astore 1
start local 1 1: iload 0
ifeq 2
aload 1
iconst_1
invokevirtual org.graalvm.polyglot.HostAccess$Builder.allowArrayAccess:(Z)Lorg/graalvm/polyglot/HostAccess$Builder;
goto 3
StackMap locals: org.graalvm.polyglot.HostAccess$Builder
StackMap stack:
2: aload 1
iconst_1
invokevirtual org.graalvm.polyglot.HostAccess$Builder.allowListAccess:(Z)Lorg/graalvm/polyglot/HostAccess$Builder;
StackMap locals:
StackMap stack: org.graalvm.polyglot.HostAccess$Builder
3: invokevirtual org.graalvm.polyglot.HostAccess$Builder.build:()Lorg/graalvm/polyglot/HostAccess;
astore 2
start local 2 4: iload 0
ifeq 5
ldc "methodThatReturnsArray"
goto 6
StackMap locals: org.graalvm.polyglot.HostAccess
StackMap stack:
5: ldc "methodThatReturnsList"
StackMap locals:
StackMap stack: java.lang.String
6: astore 3
start local 3 7: aconst_null
astore 4
aconst_null
astore 5
8: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 2
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 6
start local 6 9: aload 6
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 7
start local 7 10: new com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS
dup
invokespecial com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS.<init>:()V
astore 8
start local 8 11: aload 7
ldc "objectFromJava"
aload 8
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
12: aload 6
ldc "js"
new java.lang.StringBuilder
dup
ldc "var arrayFromJava = objectFromJava."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "();"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc "var recreatedArray = [];"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc "for (var i = 0; i < arrayFromJava.length; i++)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: ldc "recreatedArray.push(arrayFromJava[i]);"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc "recreatedArray"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 9
start local 9 18: aload 9
invokestatic com.oracle.truffle.js.test.interop.InteropArrayTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
end local 9 end local 8 end local 7 19: aload 6
ifnull 25
aload 6
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 25
StackMap locals: int org.graalvm.polyglot.HostAccess$Builder org.graalvm.polyglot.HostAccess java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
20: astore 4
aload 6
ifnull 21
aload 6
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 6 StackMap locals:
StackMap stack:
21: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 5
aload 4
ifnonnull 23
aload 5
astore 4
goto 24
StackMap locals:
StackMap stack:
23: aload 4
aload 5
if_acmpeq 24
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
24: aload 4
athrow
25: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 isArray Z
1 26 1 hostAccessBuilder Lorg/graalvm/polyglot/HostAccess$Builder;
4 26 2 hostAccess Lorg/graalvm/polyglot/HostAccess;
7 26 3 methodName Ljava/lang/String;
9 21 6 context Lorg/graalvm/polyglot/Context;
10 19 7 bindings Lorg/graalvm/polyglot/Value;
11 19 8 objectFromJava Lcom/oracle/truffle/js/test/interop/InteropArrayTest$ToBePassedToJS;
18 19 9 v Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
9 19 20 any
8 22 22 any
MethodParameters:
Name Flags
isArray
public void testPrintJavaArrayInJS();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: getstatic org.graalvm.polyglot.HostAccess.EXPLICIT:Lorg/graalvm/polyglot/HostAccess;
invokestatic org.graalvm.polyglot.HostAccess.newBuilder:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/HostAccess$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.HostAccess$Builder.allowArrayAccess:(Z)Lorg/graalvm/polyglot/HostAccess$Builder;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.build:()Lorg/graalvm/polyglot/HostAccess;
astore 1
start local 1 1: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 2
start local 2 2: aconst_null
astore 3
aconst_null
astore 4
3: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 1
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
aload 2
invokevirtual org.graalvm.polyglot.Context$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Context$Builder;
aload 2
invokevirtual org.graalvm.polyglot.Context$Builder.err:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 5
start local 5 4: aload 5
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "javaArray"
new com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS
dup
invokespecial com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS.<init>:()V
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
5: aload 5
ldc "js"
ldc "var arrayFromJava = javaArray.methodThatReturnsArrayWithJSObject({foo: 'bar', number: 42, f: function() { return 'yes';}, array: [2, 4, 8]});console.log(arrayFromJava);"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
6: ldc "[41, {foo: \"bar\", number: 42, f: function() { return 'yes';}, array: [2, 4, 8]}, \"string\", {x: 42, y: \"foo\"}]"
aload 2
invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 2
invokevirtual java.io.ByteArrayOutputStream.reset:()V
8: aload 5
ldc "js"
ldc "var arrayFromJava = javaArray.methodThatReturnsArray();console.log(arrayFromJava);"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
9: ldc "[3, 4, 1, 5]"
aload 2
invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: aload 2
invokevirtual java.io.ByteArrayOutputStream.reset:()V
11: aload 5
ldc "js"
ldc "var arrayFromJavaAsValue = javaArray.methodThatReturnsArrayAsValue();console.log(arrayFromJavaAsValue);"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
12: ldc "[3, 4, 1, 5]"
aload 2
invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: aload 5
ifnull 19
aload 5
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 19
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest org.graalvm.polyglot.HostAccess java.io.ByteArrayOutputStream java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
14: astore 3
aload 5
ifnull 15
aload 5
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 5 StackMap locals:
StackMap stack:
15: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 4
aload 3
ifnonnull 17
aload 4
astore 3
goto 18
StackMap locals:
StackMap stack:
17: aload 3
aload 4
if_acmpeq 18
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 3
athrow
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
1 20 1 accessWithArrays Lorg/graalvm/polyglot/HostAccess;
2 20 2 baos Ljava/io/ByteArrayOutputStream;
4 15 5 context Lorg/graalvm/polyglot/Context;
Exception table:
from to target type
4 13 14 any
3 16 16 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testForLetItemOfLazyArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "(function (arr) {\n let collect = [];\n for (let item of arr) {\n collect.push(item);\n collect.push(item);\n collect.push(item);\n }\n return collect;\n})\n"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: bipush 6
anewarray java.lang.Integer
dup
iconst_0
iconst_5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
bipush 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
bipush 11
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
bipush 13
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
bipush 17
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_5
bipush 23
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 5
start local 5 4: aload 4
iconst_1
anewarray java.lang.Object
dup
iconst_0
new com.oracle.truffle.js.test.interop.InteropArrayTest$LazyArray
dup
aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
invokespecial com.oracle.truffle.js.test.interop.InteropArrayTest$LazyArray.<init>:(Ljava/util/Iterator;)V
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 5: ldc "Array returned"
aload 6
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
6: aload 5
invokeinterface java.util.List.size:()I
iconst_3
imul
i2l
aload 6
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
end local 6 end local 5 end local 4 7: aload 3
ifnull 13
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 13
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
8: astore 1
aload 3
ifnull 9
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
9: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 2
aload 1
ifnonnull 11
aload 2
astore 1
goto 12
StackMap locals:
StackMap stack:
11: aload 1
aload 2
if_acmpeq 12
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 1
athrow
13: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 9 3 context Lorg/graalvm/polyglot/Context;
3 7 4 collect Lorg/graalvm/polyglot/Value;
4 7 5 list Ljava/util/List<Ljava/lang/Integer;>;
5 7 6 tripples Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 7 8 any
1 10 10 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testManyTypes();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: aload 3
ldc "js"
ldc "var arrays = [];var a;a = [1,2,3,4];arrays.push(a);a = [1000,2000,3000];arrays.push(a);a = [1.1,2.2,3.3];arrays.push(a);a = ['a','b','c'];arrays.push(a);a = [1,2,3,4]; a.push(5);arrays.push(a);a = [1000,2000,3000]; a.push(4000);arrays.push(a);a = [1.1,2.2,3.3]; a.push(4.4);arrays.push(a);a = ['a','b','c']; a.push('d');arrays.push(a);a = [,,1,2,3,4]; delete a[4];arrays.push(a);a = [1,,2,,3]; a.push(4);arrays.push(a);a = ['a',,'b',,'c']; a.push('d');arrays.push(a);a = [1]; a[2**31] = 2;arrays.push(a);arrays;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 9
5: StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context org.graalvm.polyglot.Value int
StackMap stack:
aload 4
iload 5
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 6: aload 6
invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: aload 6
lconst_0
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
end local 6 8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
i2l
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
lcmp
iflt 5
end local 5 end local 4 10: aload 3
ifnull 16
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 16
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
11: astore 1
aload 3
ifnull 12
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
12: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
aload 1
ifnonnull 14
aload 2
astore 1
goto 15
StackMap locals:
StackMap stack:
14: aload 1
aload 2
if_acmpeq 15
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 1
athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 12 3 context Lorg/graalvm/polyglot/Context;
3 10 4 arrays Lorg/graalvm/polyglot/Value;
4 10 5 i I
6 8 6 array Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 10 11 any
1 13 13 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testArrayFromForeignArrayLike();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.JSTest.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 3
start local 3 2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 4
start local 4 3: aload 4
ldc "length"
iconst_2
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 4
ldc "0"
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 4
ldc "1"
sipush 211
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 4
invokestatic org.graalvm.polyglot.proxy.ProxyObject.fromMap:(Ljava/util/Map;)Lorg/graalvm/polyglot/proxy/ProxyObject;
astore 5
start local 5 7: aload 3
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "arrayLike"
aload 5
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
8: aload 3
ldc "js"
ldc "var array = Array.from(arrayLike); array.length === 2 && array[0] === 42 && array[1] === 211;"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 9: aload 6
invokevirtual org.graalvm.polyglot.Value.isBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
10: aload 6
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 6 end local 5 end local 4 11: aload 3
ifnull 17
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 17
StackMap locals: com.oracle.truffle.js.test.interop.InteropArrayTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
12: astore 1
aload 3
ifnull 13
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
13: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 2
aload 1
ifnonnull 15
aload 2
astore 1
goto 16
StackMap locals:
StackMap stack:
15: aload 1
aload 2
if_acmpeq 16
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 1
athrow
17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/js/test/interop/InteropArrayTest;
2 13 3 context Lorg/graalvm/polyglot/Context;
3 11 4 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
7 11 5 arrayLike Ljava/lang/Object;
9 11 6 result Lorg/graalvm/polyglot/Value;
Exception table:
from to target type
2 11 12 any
1 14 14 any
RuntimeVisibleAnnotations:
org.junit.Test()
private static int lambda$0(org.graalvm.polyglot.Value, int);
descriptor: (Lorg/graalvm/polyglot/Value;I)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 1 0: aload 0
iload 1
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 i I
}
SourceFile: "InteropArrayTest.java"
NestMembers:
com.oracle.truffle.js.test.interop.InteropArrayTest$LazyArray com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS
InnerClasses:
private final LazyArray = com.oracle.truffle.js.test.interop.InteropArrayTest$LazyArray of com.oracle.truffle.js.test.interop.InteropArrayTest
public ToBePassedToJS = com.oracle.truffle.js.test.interop.InteropArrayTest$ToBePassedToJS of com.oracle.truffle.js.test.interop.InteropArrayTest
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
public final Builder = org.graalvm.polyglot.HostAccess$Builder of org.graalvm.polyglot.HostAccess
public abstract Export = org.graalvm.polyglot.HostAccess$Export of org.graalvm.polyglot.HostAccess