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: .line 65
            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: .line 66
            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: .line 67
            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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
      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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
         0: .line 101
            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 /* hostAccess */
        start local 1 // org.graalvm.polyglot.HostAccess hostAccess
         1: .line 102
            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 /* graalEngine */
        start local 4 // org.graalvm.polyglot.Engine graalEngine
         3: .line 104
            aload 4 /* graalEngine */
         4: .line 105
            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 /* hostAccess */
            invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
         5: .line 103
            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 /* graalJSScriptEngine */
        start local 5 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
         6: .line 106
            aload 5 /* graalJSScriptEngine */
            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 /* o */
        start local 6 // java.lang.Object o
         7: .line 107
            aload 6 /* o */
            instanceof java.util.List
            invokestatic org.junit.Assert.assertTrue:(Z)V
         8: .line 108
            aload 6 /* o */
            checkcast java.util.List
            astore 7 /* list */
        start local 7 // java.util.List list
         9: .line 109
            aload 7 /* list */
            invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.commonCheck:(Ljava/util/List;)V
        end local 7 // java.util.List list
        end local 6 // java.lang.Object o
        10: .line 110
            aload 5 /* graalJSScriptEngine */
            ifnull 13
            aload 5 /* graalJSScriptEngine */
            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 /* graalJSScriptEngine */
            ifnull 12
            aload 5 /* graalJSScriptEngine */
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
        end local 5 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
      StackMap locals:
      StackMap stack:
        12: aload 2
            athrow
      StackMap locals:
      StackMap stack:
        13: aload 4 /* graalEngine */
            ifnull 21
            aload 4 /* graalEngine */
            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 /* graalEngine */
            ifnull 17
            aload 4 /* graalEngine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        end local 4 // org.graalvm.polyglot.Engine graalEngine
      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: .line 111
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.HostAccess hostAccess
        end local 0 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
      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 // java.util.List list
         0: .line 114
            getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_LIST:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            i2l
            aload 0 /* list */
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 115
            getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_LIST:Ljava/util/List;
            aload 0 /* list */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 116
            return
        end local 0 // java.util.List list
      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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
         0: .line 120
            ldc "methodWithListArgument"
            invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.testArrayAsParameter:(Ljava/lang/String;)V
         1: .line 121
            return
        end local 0 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
      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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
         0: .line 125
            ldc "methodWithArrayArgument"
            invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.testArrayAsParameter:(Ljava/lang/String;)V
         1: .line 126
            return
        end local 0 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
      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 // java.lang.String methodName
         0: .line 136
            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 /* hostAccess */
        start local 1 // org.graalvm.polyglot.HostAccess hostAccess
         1: .line 137
            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 /* graalEngine */
        start local 4 // org.graalvm.polyglot.Engine graalEngine
         3: .line 139
            aload 4 /* graalEngine */
         4: .line 140
            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 /* hostAccess */
            invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
         5: .line 138
            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 /* graalJSScriptEngine */
        start local 5 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
         6: .line 141
            aload 5 /* graalJSScriptEngine */
            bipush 100
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 6 /* bindings */
        start local 6 // javax.script.Bindings bindings
         7: .line 142
            new com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS
            dup
            invokespecial com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS.<init>:()V
            astore 7 /* objectFromJava */
        start local 7 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS objectFromJava
         8: .line 143
            aload 6 /* bindings */
            ldc "objectFromJava"
            aload 7 /* objectFromJava */
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 144
            aload 5 /* graalJSScriptEngine */
            new java.lang.StringBuilder
            dup
            ldc "objectFromJava."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* methodName */
            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: .line 145
            getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JAVA_ARRAY:[I
            arraylength
            i2l
            aload 7 /* objectFromJava */
            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: .line 146
            getstatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.JS_ARRAY_STRING:Ljava/lang/String;
            aload 7 /* objectFromJava */
            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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS objectFromJava
        end local 6 // javax.script.Bindings bindings
        12: .line 147
            aload 5 /* graalJSScriptEngine */
            ifnull 15
            aload 5 /* graalJSScriptEngine */
            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 /* graalJSScriptEngine */
            ifnull 14
            aload 5 /* graalJSScriptEngine */
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
        end local 5 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
      StackMap locals:
      StackMap stack:
        15: aload 4 /* graalEngine */
            ifnull 23
            aload 4 /* graalEngine */
            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 /* graalEngine */
            ifnull 19
            aload 4 /* graalEngine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        end local 4 // org.graalvm.polyglot.Engine graalEngine
      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: .line 148
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.HostAccess hostAccess
        end local 0 // java.lang.String methodName
      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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
         0: .line 156
            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 /* hostAccess */
        start local 1 // org.graalvm.polyglot.HostAccess hostAccess
         1: .line 157
            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 /* graalEngine */
        start local 4 // org.graalvm.polyglot.Engine graalEngine
         3: .line 159
            aload 4 /* graalEngine */
         4: .line 160
            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 /* hostAccess */
            invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
         5: .line 158
            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 /* graalJSScriptEngine */
        start local 5 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
         6: .line 161
            aload 5 /* graalJSScriptEngine */
            bipush 100
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 6 /* bindings */
        start local 6 // javax.script.Bindings bindings
         7: .line 162
            aload 6 /* bindings */
            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: .line 163
            aload 5 /* graalJSScriptEngine */
            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 /* o */
        start local 7 // java.lang.Object o
         9: .line 167
            aload 7 /* o */
            instanceof java.util.List
            invokestatic org.junit.Assert.assertTrue:(Z)V
        10: .line 168
            aload 7 /* o */
            checkcast java.util.List
            astore 8 /* list */
        start local 8 // java.util.List list
        11: .line 169
            aload 8 /* list */
            invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.commonCheck:(Ljava/util/List;)V
        end local 8 // java.util.List list
        end local 7 // java.lang.Object o
        end local 6 // javax.script.Bindings bindings
        12: .line 170
            aload 5 /* graalJSScriptEngine */
            ifnull 15
            aload 5 /* graalJSScriptEngine */
            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 /* graalJSScriptEngine */
            ifnull 14
            aload 5 /* graalJSScriptEngine */
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
        end local 5 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
      StackMap locals:
      StackMap stack:
        15: aload 4 /* graalEngine */
            ifnull 23
            aload 4 /* graalEngine */
            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 /* graalEngine */
            ifnull 19
            aload 4 /* graalEngine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        end local 4 // org.graalvm.polyglot.Engine graalEngine
      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: .line 171
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.HostAccess hostAccess
        end local 0 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
      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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
         0: .line 179
            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 /* hostAccess */
        start local 1 // org.graalvm.polyglot.HostAccess hostAccess
         1: .line 180
            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 /* graalEngine */
        start local 4 // org.graalvm.polyglot.Engine graalEngine
         3: .line 182
            aload 4 /* graalEngine */
         4: .line 183
            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 /* hostAccess */
            invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
         5: .line 181
            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 /* graalJSScriptEngine */
        start local 5 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
         6: .line 184
            aload 5 /* graalJSScriptEngine */
            bipush 100
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 6 /* bindings */
        start local 6 // javax.script.Bindings bindings
         7: .line 185
            aload 6 /* bindings */
            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: .line 186
            aload 5 /* graalJSScriptEngine */
            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 /* o */
        start local 7 // java.lang.Object o
         9: .line 190
            aload 7 /* o */
            instanceof java.util.List
            invokestatic org.junit.Assert.assertTrue:(Z)V
        10: .line 191
            aload 7 /* o */
            checkcast java.util.List
            astore 8 /* list */
        start local 8 // java.util.List list
        11: .line 192
            aload 8 /* list */
            invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.commonCheck:(Ljava/util/List;)V
        end local 8 // java.util.List list
        end local 7 // java.lang.Object o
        end local 6 // javax.script.Bindings bindings
        12: .line 193
            aload 5 /* graalJSScriptEngine */
            ifnull 15
            aload 5 /* graalJSScriptEngine */
            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 /* graalJSScriptEngine */
            ifnull 14
            aload 5 /* graalJSScriptEngine */
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
        end local 5 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
      StackMap locals:
      StackMap stack:
        15: aload 4 /* graalEngine */
            ifnull 23
            aload 4 /* graalEngine */
            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 /* graalEngine */
            ifnull 19
            aload 4 /* graalEngine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        end local 4 // org.graalvm.polyglot.Engine graalEngine
      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: .line 194
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.HostAccess hostAccess
        end local 0 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
      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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
         0: .line 198
            iconst_1
            invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.testJavaReturnArrayOrListAsJSArray:(Z)V
         1: .line 199
            return
        end local 0 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
      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 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
         0: .line 203
            iconst_0
            invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.testJavaReturnArrayOrListAsJSArray:(Z)V
         1: .line 204
            return
        end local 0 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest this
      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 // boolean isArray
         0: .line 211
            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 /* hostAccessBuilder */
        start local 1 // org.graalvm.polyglot.HostAccess$Builder hostAccessBuilder
         1: .line 212
            iload 0 /* isArray */
            ifeq 2
            aload 1 /* hostAccessBuilder */
            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 /* hostAccessBuilder */
            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 /* hostAccess */
        start local 2 // org.graalvm.polyglot.HostAccess hostAccess
         4: .line 213
            iload 0 /* isArray */
            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 /* methodName */
        start local 3 // java.lang.String methodName
         7: .line 214
            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 /* graalEngine */
        start local 6 // org.graalvm.polyglot.Engine graalEngine
         9: .line 216
            aload 6 /* graalEngine */
        10: .line 217
            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 /* hostAccess */
            invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
        11: .line 215
            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 /* graalJSScriptEngine */
        start local 7 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
        12: .line 218
            aload 7 /* graalJSScriptEngine */
            bipush 100
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.getBindings:(I)Ljavax/script/Bindings;
            astore 8 /* bindings */
        start local 8 // javax.script.Bindings bindings
        13: .line 219
            new com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS
            dup
            invokespecial com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS.<init>:()V
            astore 9 /* objectFromJava */
        start local 9 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS objectFromJava
        14: .line 220
            aload 8 /* bindings */
            ldc "objectFromJava"
            aload 9 /* objectFromJava */
            invokeinterface javax.script.Bindings.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 221
            aload 7 /* graalJSScriptEngine */
            new java.lang.StringBuilder
            dup
            ldc "var arrayFromJava = objectFromJava."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "();"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 222
            ldc "var recreatedArray = [];"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 223
            ldc "for (var i = 0; i < arrayFromJava.length; i++)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 224
            ldc "recreatedArray.push(arrayFromJava[i]);"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 225
            ldc "recreatedArray"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 221
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval:(Ljava/lang/String;)Ljava/lang/Object;
            astore 10 /* o */
        start local 10 // java.lang.Object o
        21: .line 226
            aload 10 /* o */
            instanceof java.util.List
            invokestatic org.junit.Assert.assertTrue:(Z)V
        22: .line 227
            aload 10 /* o */
            checkcast java.util.List
            astore 11 /* list */
        start local 11 // java.util.List list
        23: .line 228
            aload 11 /* list */
            invokestatic com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest.commonCheck:(Ljava/util/List;)V
        end local 11 // java.util.List list
        end local 10 // java.lang.Object o
        end local 9 // com.oracle.truffle.js.scriptengine.test.ScriptEngineInteropArrayTest$ToBePassedToJS objectFromJava
        end local 8 // javax.script.Bindings bindings
        24: .line 229
            aload 7 /* graalJSScriptEngine */
            ifnull 27
            aload 7 /* graalJSScriptEngine */
            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 /* graalJSScriptEngine */
            ifnull 26
            aload 7 /* graalJSScriptEngine */
            invokevirtual com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.close:()V
        end local 7 // com.oracle.truffle.js.scriptengine.GraalJSScriptEngine graalJSScriptEngine
      StackMap locals:
      StackMap stack:
        26: aload 4
            athrow
      StackMap locals:
      StackMap stack:
        27: aload 6 /* graalEngine */
            ifnull 35
            aload 6 /* graalEngine */
            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 /* graalEngine */
            ifnull 31
            aload 6 /* graalEngine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        end local 6 // org.graalvm.polyglot.Engine graalEngine
      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: .line 230
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String methodName
        end local 2 // org.graalvm.polyglot.HostAccess hostAccess
        end local 1 // org.graalvm.polyglot.HostAccess$Builder hostAccessBuilder
        end local 0 // boolean isArray
      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 // java.util.List v
         0: .line 101
            aload 0 /* v */
            areturn
        end local 0 // java.util.List v
      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 // java.util.List v
         0: .line 156
            aload 0 /* v */
            areturn
        end local 0 // java.util.List v
      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 // java.util.List v
         0: .line 179
            aload 0 /* v */
            areturn
        end local 0 // java.util.List v
      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 // java.util.List v
         0: .line 211
            aload 0 /* v */
            areturn
        end local 0 // java.util.List v
      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