public class com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest
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.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_ARRAY:[I
1: getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.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.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_LIST:Ljava/util/List;
2: getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_ARRAY:[I
invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
putstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.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/scriptengine/test/ScriptEngineInteropArrayTest;
public void testArrayBasic();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: invokestatic org.graalvm.polyglot.HostAccess.newBuilder:()Lorg/graalvm/polyglot/HostAccess$Builder;
ldc Ljava/util/List;
ldc Ljava/lang/Object;
aconst_null
invokedynamic apply()Ljava/util/function/Function;
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/js/scriptengine/test/ScriptEngineInteropArrayTest.lambda$0(Ljava/util/List;)Ljava/lang/Object; (6)
(Ljava/util/List;)Ljava/lang/Object;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.targetTypeMapping:(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Predicate;Ljava/util/function/Function;)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: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 4
start local 4 3: aload 4
4: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.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;
5: invokestatic com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.create:(Lorg/graalvm/polyglot/Engine;Lorg/graalvm/polyglot/Context$Builder;)Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
astore 5
start local 5 6: aload 5
getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JS_ARRAY_STRING:Ljava/lang/String;
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
astore 6
start local 6 7: aload 6
instanceof java.util.List
invokestatic org.junit.Assert.assertTrue:(Z)V
8: aload 6
checkcast java.util.List
astore 7
start local 7 9: aload 7
invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.commonCheck:(Ljava/util/List;)V
end local 7 end local 6 10: aload 5
ifnull 13
aload 5
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
goto 13
StackMap locals: com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest org.graalvm.polyglot.HostAccess java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
StackMap stack: java.lang.Throwable
11: astore 2
aload 5
ifnull 12
aload 5
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
end local 5 StackMap locals:
StackMap stack:
12: aload 2
athrow
StackMap locals:
StackMap stack:
13: aload 4
ifnull 21
aload 4
invokevirtual org.graalvm.polyglot.Engine.close:()V
goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 3
aload 2
ifnonnull 15
aload 3
astore 2
goto 16
StackMap locals:
StackMap stack:
15: aload 2
aload 3
if_acmpeq 16
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 4
ifnull 17
aload 4
invokevirtual org.graalvm.polyglot.Engine.close:()V
end local 4 StackMap locals:
StackMap stack:
17: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 3
aload 2
ifnonnull 19
aload 3
astore 2
goto 20
StackMap locals:
StackMap stack:
19: aload 2
aload 3
if_acmpeq 20
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
20: aload 2
athrow
21: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest;
1 22 1 hostAccess Lorg/graalvm/polyglot/HostAccess;
3 17 4 graalEngine Lorg/graalvm/polyglot/Engine;
6 12 5 graalJSScriptEngine Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
7 10 6 o Ljava/lang/Object;
9 10 7 list Ljava/util/List<*>;
Exception table:
from to target type
6 10 11 any
3 13 14 any
2 18 18 any
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
private static void commonCheck(java.util.List<?>);
descriptor: (Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_LIST:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
aload 0
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
1: getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_LIST:Ljava/util/List;
aload 0
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 list Ljava/util/List<*>;
Signature: (Ljava/util/List<*>;)V
MethodParameters:
Name Flags
list
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.scriptengine.test.ScriptEngineInteropArrayTest.testArrayAsParameter:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest;
Exceptions:
throws javax.script.ScriptException
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.scriptengine.test.ScriptEngineInteropArrayTest.testArrayAsParameter:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
private static void testArrayAsParameter(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, 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: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 4
start local 4 3: aload 4
4: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.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;
5: invokestatic com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.create:(Lorg/graalvm/polyglot/Engine;Lorg/graalvm/polyglot/Context$Builder;)Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
astore 5
start local 5 6: aload 5
bipush 100
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 6
start local 6 7: new com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS
dup
invokespecial com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS.<init>:()V
astore 7
start local 7 8: aload 6
ldc "objectFromJava"
aload 7
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 5
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.scriptengine.test.ScriptEngineInteropArrayTest.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 com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
pop
10: getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_ARRAY:[I
arraylength
i2l
aload 7
getfield com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS.list:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
11: getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JS_ARRAY_STRING:Ljava/lang/String;
aload 7
getfield com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$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 7 end local 6 12: aload 5
ifnull 15
aload 5
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
goto 15
StackMap locals: java.lang.String org.graalvm.polyglot.HostAccess java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
StackMap stack: java.lang.Throwable
13: astore 2
aload 5
ifnull 14
aload 5
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
end local 5 StackMap locals:
StackMap stack:
14: aload 2
athrow
StackMap locals:
StackMap stack:
15: aload 4
ifnull 23
aload 4
invokevirtual org.graalvm.polyglot.Engine.close:()V
goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 3
aload 2
ifnonnull 17
aload 3
astore 2
goto 18
StackMap locals:
StackMap stack:
17: aload 2
aload 3
if_acmpeq 18
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 4
ifnull 19
aload 4
invokevirtual org.graalvm.polyglot.Engine.close:()V
end local 4 StackMap locals:
StackMap stack:
19: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 3
aload 2
ifnonnull 21
aload 3
astore 2
goto 22
StackMap locals:
StackMap stack:
21: aload 2
aload 3
if_acmpeq 22
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 2
athrow
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 methodName Ljava/lang/String;
1 24 1 hostAccess Lorg/graalvm/polyglot/HostAccess;
3 19 4 graalEngine Lorg/graalvm/polyglot/Engine;
6 14 5 graalJSScriptEngine Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
7 12 6 bindings Ljavax/script/Bindings;
8 12 7 objectFromJava Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest$ToBePassedToJS;
Exception table:
from to target type
6 12 13 any
3 15 16 any
2 20 20 any
Exceptions:
throws javax.script.ScriptException
MethodParameters:
Name Flags
methodName
public void testJavaArrayAsJSArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: invokestatic org.graalvm.polyglot.HostAccess.newBuilder:()Lorg/graalvm/polyglot/HostAccess$Builder;
ldc Ljava/util/List;
ldc Ljava/lang/Object;
aconst_null
invokedynamic apply()Ljava/util/function/Function;
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/js/scriptengine/test/ScriptEngineInteropArrayTest.lambda$1(Ljava/util/List;)Ljava/lang/Object; (6)
(Ljava/util/List;)Ljava/lang/Object;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.targetTypeMapping:(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Predicate;Ljava/util/function/Function;)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: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 4
start local 4 3: aload 4
4: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.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;
5: invokestatic com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.create:(Lorg/graalvm/polyglot/Engine;Lorg/graalvm/polyglot/Context$Builder;)Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
astore 5
start local 5 6: aload 5
bipush 100
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 6
start local 6 7: aload 6
ldc "arrayFromJava"
getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_ARRAY:[I
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 5
ldc "var recreatedArray = [];for (var i = 0; i < arrayFromJava.length; i++)recreatedArray.push(arrayFromJava[i]);recreatedArray"
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
astore 7
start local 7 9: aload 7
instanceof java.util.List
invokestatic org.junit.Assert.assertTrue:(Z)V
10: aload 7
checkcast java.util.List
astore 8
start local 8 11: aload 8
invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.commonCheck:(Ljava/util/List;)V
end local 8 end local 7 end local 6 12: aload 5
ifnull 15
aload 5
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
goto 15
StackMap locals: com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest org.graalvm.polyglot.HostAccess java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
StackMap stack: java.lang.Throwable
13: astore 2
aload 5
ifnull 14
aload 5
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
end local 5 StackMap locals:
StackMap stack:
14: aload 2
athrow
StackMap locals:
StackMap stack:
15: aload 4
ifnull 23
aload 4
invokevirtual org.graalvm.polyglot.Engine.close:()V
goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 3
aload 2
ifnonnull 17
aload 3
astore 2
goto 18
StackMap locals:
StackMap stack:
17: aload 2
aload 3
if_acmpeq 18
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 4
ifnull 19
aload 4
invokevirtual org.graalvm.polyglot.Engine.close:()V
end local 4 StackMap locals:
StackMap stack:
19: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 3
aload 2
ifnonnull 21
aload 3
astore 2
goto 22
StackMap locals:
StackMap stack:
21: aload 2
aload 3
if_acmpeq 22
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 2
athrow
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest;
1 24 1 hostAccess Lorg/graalvm/polyglot/HostAccess;
3 19 4 graalEngine Lorg/graalvm/polyglot/Engine;
6 14 5 graalJSScriptEngine Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
7 12 6 bindings Ljavax/script/Bindings;
9 12 7 o Ljava/lang/Object;
11 12 8 list Ljava/util/List<*>;
Exception table:
from to target type
6 12 13 any
3 15 16 any
2 20 20 any
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testJavaListAsJSArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: invokestatic org.graalvm.polyglot.HostAccess.newBuilder:()Lorg/graalvm/polyglot/HostAccess$Builder;
ldc Ljava/util/List;
ldc Ljava/lang/Object;
aconst_null
invokedynamic apply()Ljava/util/function/Function;
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/js/scriptengine/test/ScriptEngineInteropArrayTest.lambda$2(Ljava/util/List;)Ljava/lang/Object; (6)
(Ljava/util/List;)Ljava/lang/Object;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.targetTypeMapping:(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Predicate;Ljava/util/function/Function;)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: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 4
start local 4 3: aload 4
4: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.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;
5: invokestatic com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.create:(Lorg/graalvm/polyglot/Engine;Lorg/graalvm/polyglot/Context$Builder;)Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
astore 5
start local 5 6: aload 5
bipush 100
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 6
start local 6 7: aload 6
ldc "arrayFromJava"
getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_LIST:Ljava/util/List;
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 5
ldc "var recreatedArray = [];for (var i = 0; i < arrayFromJava.length; i++)recreatedArray.push(arrayFromJava[i]);recreatedArray"
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
astore 7
start local 7 9: aload 7
instanceof java.util.List
invokestatic org.junit.Assert.assertTrue:(Z)V
10: aload 7
checkcast java.util.List
astore 8
start local 8 11: aload 8
invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.commonCheck:(Ljava/util/List;)V
end local 8 end local 7 end local 6 12: aload 5
ifnull 15
aload 5
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
goto 15
StackMap locals: com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest org.graalvm.polyglot.HostAccess java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
StackMap stack: java.lang.Throwable
13: astore 2
aload 5
ifnull 14
aload 5
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
end local 5 StackMap locals:
StackMap stack:
14: aload 2
athrow
StackMap locals:
StackMap stack:
15: aload 4
ifnull 23
aload 4
invokevirtual org.graalvm.polyglot.Engine.close:()V
goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 3
aload 2
ifnonnull 17
aload 3
astore 2
goto 18
StackMap locals:
StackMap stack:
17: aload 2
aload 3
if_acmpeq 18
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 4
ifnull 19
aload 4
invokevirtual org.graalvm.polyglot.Engine.close:()V
end local 4 StackMap locals:
StackMap stack:
19: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 3
aload 2
ifnonnull 21
aload 3
astore 2
goto 22
StackMap locals:
StackMap stack:
21: aload 2
aload 3
if_acmpeq 22
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 2
athrow
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest;
1 24 1 hostAccess Lorg/graalvm/polyglot/HostAccess;
3 19 4 graalEngine Lorg/graalvm/polyglot/Engine;
6 14 5 graalJSScriptEngine Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
7 12 6 bindings Ljavax/script/Bindings;
9 12 7 o Ljava/lang/Object;
11 12 8 list Ljava/util/List<*>;
Exception table:
from to target type
6 12 13 any
3 15 16 any
2 20 20 any
Exceptions:
throws javax.script.ScriptException
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.scriptengine.test.ScriptEngineInteropArrayTest.testJavaReturnArrayOrListAsJSArray:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest;
Exceptions:
throws javax.script.ScriptException
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.scriptengine.test.ScriptEngineInteropArrayTest.testJavaReturnArrayOrListAsJSArray:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest;
Exceptions:
throws javax.script.ScriptException
RuntimeVisibleAnnotations:
org.junit.Test()
private static void testJavaReturnArrayOrListAsJSArray(boolean);
descriptor: (Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=12, args_size=1
start local 0 0: invokestatic org.graalvm.polyglot.HostAccess.newBuilder:()Lorg/graalvm/polyglot/HostAccess$Builder;
ldc Ljava/util/List;
ldc Ljava/lang/Object;
aconst_null
invokedynamic apply()Ljava/util/function/Function;
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/js/scriptengine/test/ScriptEngineInteropArrayTest.lambda$3(Ljava/util/List;)Ljava/lang/Object; (6)
(Ljava/util/List;)Ljava/lang/Object;
invokevirtual org.graalvm.polyglot.HostAccess$Builder.targetTypeMapping:(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Predicate;Ljava/util/function/Function;)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: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 6
start local 6 9: aload 6
10: iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.scriptengine.test.TestUtil.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;
11: invokestatic com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.create:(Lorg/graalvm/polyglot/Engine;Lorg/graalvm/polyglot/Context$Builder;)Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
astore 7
start local 7 12: aload 7
bipush 100
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getBindings:(I)Ljavax/script/Bindings;
astore 8
start local 8 13: new com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS
dup
invokespecial com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS.<init>:()V
astore 9
start local 9 14: aload 8
ldc "objectFromJava"
aload 9
invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 7
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;
16: ldc "var recreatedArray = [];"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: ldc "for (var i = 0; i < arrayFromJava.length; i++)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: ldc "recreatedArray.push(arrayFromJava[i]);"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: ldc "recreatedArray"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
astore 10
start local 10 21: aload 10
instanceof java.util.List
invokestatic org.junit.Assert.assertTrue:(Z)V
22: aload 10
checkcast java.util.List
astore 11
start local 11 23: aload 11
invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.commonCheck:(Ljava/util/List;)V
end local 11 end local 10 end local 9 end local 8 24: aload 7
ifnull 27
aload 7
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
goto 27
StackMap locals: int org.graalvm.polyglot.HostAccess$Builder org.graalvm.polyglot.HostAccess java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine com.oracle.truffle.js.scriptengine.GraalJSScriptEngine
StackMap stack: java.lang.Throwable
25: astore 4
aload 7
ifnull 26
aload 7
invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
end local 7 StackMap locals:
StackMap stack:
26: aload 4
athrow
StackMap locals:
StackMap stack:
27: aload 6
ifnull 35
aload 6
invokevirtual org.graalvm.polyglot.Engine.close:()V
goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 5
aload 4
ifnonnull 29
aload 5
astore 4
goto 30
StackMap locals:
StackMap stack:
29: aload 4
aload 5
if_acmpeq 30
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
30: aload 6
ifnull 31
aload 6
invokevirtual org.graalvm.polyglot.Engine.close:()V
end local 6 StackMap locals:
StackMap stack:
31: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
32: astore 5
aload 4
ifnonnull 33
aload 5
astore 4
goto 34
StackMap locals:
StackMap stack:
33: aload 4
aload 5
if_acmpeq 34
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
34: aload 4
athrow
35: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 isArray Z
1 36 1 hostAccessBuilder Lorg/graalvm/polyglot/HostAccess$Builder;
4 36 2 hostAccess Lorg/graalvm/polyglot/HostAccess;
7 36 3 methodName Ljava/lang/String;
9 31 6 graalEngine Lorg/graalvm/polyglot/Engine;
12 26 7 graalJSScriptEngine Lcom/oracle/truffle/js/scriptengine/GraalJSScriptEngine;
13 24 8 bindings Ljavax/script/Bindings;
14 24 9 objectFromJava Lcom/oracle/truffle/js/scriptengine/test/ScriptEngineInteropArrayTest$ToBePassedToJS;
21 24 10 o Ljava/lang/Object;
23 24 11 list Ljava/util/List<*>;
Exception table:
from to target type
12 24 25 any
9 27 28 any
8 32 32 any
Exceptions:
throws javax.script.ScriptException
MethodParameters:
Name Flags
isArray
private static java.lang.Object lambda$0(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Ljava/util/List;
private static java.lang.Object lambda$1(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Ljava/util/List;
private static java.lang.Object lambda$2(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Ljava/util/List;
private static java.lang.Object lambda$3(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Ljava/util/List;
}
SourceFile: "ScriptEngineInteropArrayTest.java"
NestMembers:
com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS
InnerClasses:
public ToBePassedToJS = com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS of com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest
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.Engine$Builder of org.graalvm.polyglot.Engine
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