public class com.oracle.truffle.js.test.interop.ESModuleTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.test.interop.ESModuleTest
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/test/interop/ESModuleTest;

  private static void commonCheck(org.graalvm.polyglot.Value);
    descriptor: (Lorg/graalvm/polyglot/Value;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Value v
         0: .line 82
            aload 0 /* v */
            invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 83
            aload 0 /* v */
            lconst_0
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         2: .line 84
            ldc 121
            aload 0 /* v */
            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
         3: .line 85
            aload 0 /* v */
            lconst_1
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 86
            ldc 5
            aload 0 /* v */
            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
         5: .line 87
            aload 0 /* v */
            ldc 2
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 88
            ldc 11
            aload 0 /* v */
            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
         7: .line 89
            return
        end local 0 // org.graalvm.polyglot.Value v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     v  Lorg/graalvm/polyglot/Value;
    MethodParameters:
      Name  Flags
      v     

  private static void copyResourceToFile(java.lang.String, java.io.File);
    descriptor: (Ljava/lang/String;Ljava/io/File;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String resource
        start local 1 // java.io.File file
         0: .line 92
            aload 0 /* resource */
            aload 1 /* file */
            iconst_0
            iconst_0
            multianewarray [[Ljava/lang/String; 2
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.copyResourceToFile:(Ljava/lang/String;Ljava/io/File;[[Ljava/lang/String;)V
         1: .line 93
            return
        end local 1 // java.io.File file
        end local 0 // java.lang.String resource
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  resource  Ljava/lang/String;
            0    2     1      file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      resource  
      file      

  private static void copyResourceToFile(java.lang.String, java.io.File, java.lang.String[][]);
    descriptor: (Ljava/lang/String;Ljava/io/File;[[Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // java.lang.String resource
        start local 1 // java.io.File file
        start local 2 // java.lang.String[][] moduleNameReplacements
         0: .line 108
            ldc Lcom/oracle/truffle/js/test/interop/ESModuleTest;
            aload 0 /* resource */
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* inputStream */
        start local 3 // java.io.InputStream inputStream
         1: .line 109
            aconst_null
            astore 4
            aconst_null
            astore 5
         2: new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 3 /* inputStream */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 6 /* br */
        start local 6 // java.io.BufferedReader br
         3: .line 110
            new java.io.BufferedWriter
            dup
            new java.io.FileWriter
            dup
            aload 1 /* file */
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            invokespecial java.io.BufferedWriter.<init>:(Ljava/io/Writer;)V
            astore 7 /* bw */
        start local 7 // java.io.BufferedWriter bw
         4: .line 112
            goto 12
        start local 8 // java.lang.String line
         5: .line 113
      StackMap locals: java.lang.String java.io.File java.lang.String[][] java.io.InputStream java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.io.BufferedWriter java.lang.String
      StackMap stack:
            aload 2 /* moduleNameReplacements */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 9
      StackMap locals: java.lang.String java.io.File java.lang.String[][] java.io.InputStream java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.io.BufferedWriter java.lang.String top int int java.lang.String[][]
      StackMap stack:
         6: aload 12
            iload 10
            aaload
            astore 9 /* moduleNameReplacement */
        start local 9 // java.lang.String[] moduleNameReplacement
         7: .line 114
            aload 8 /* line */
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* moduleNameReplacement */
            iconst_0
            aaload
            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;
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* moduleNameReplacement */
            iconst_1
            aaload
            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 java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 8 /* line */
        end local 9 // java.lang.String[] moduleNameReplacement
         8: .line 113
            iinc 10 1
      StackMap locals:
      StackMap stack:
         9: iload 10
            iload 11
            if_icmplt 6
        10: .line 116
            aload 7 /* bw */
            aload 8 /* line */
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        11: .line 117
            aload 7 /* bw */
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
        end local 8 // java.lang.String line
        12: .line 112
      StackMap locals: java.lang.String java.io.File java.lang.String[][] java.io.InputStream java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.io.BufferedWriter
      StackMap stack:
            aload 6 /* br */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 8 /* line */
        start local 8 // java.lang.String line
        13: ifnonnull 5
        end local 8 // java.lang.String line
        14: .line 119
            aload 7 /* bw */
            ifnull 17
            aload 7 /* bw */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 4
            aload 7 /* bw */
            ifnull 16
            aload 7 /* bw */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 7 // java.io.BufferedWriter bw
      StackMap locals:
      StackMap stack:
        16: aload 4
            athrow
      StackMap locals:
      StackMap stack:
        17: aload 6 /* br */
            ifnull 25
            aload 6 /* br */
            invokevirtual java.io.BufferedReader.close:()V
            goto 25
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 5
            aload 4
            ifnonnull 19
            aload 5
            astore 4
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 4
            aload 5
            if_acmpeq 20
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 6 /* br */
            ifnull 21
            aload 6 /* br */
            invokevirtual java.io.BufferedReader.close:()V
        end local 6 // java.io.BufferedReader br
      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: .line 120
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.InputStream inputStream
        end local 2 // java.lang.String[][] moduleNameReplacements
        end local 1 // java.io.File file
        end local 0 // java.lang.String resource
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   26     0                resource  Ljava/lang/String;
            0   26     1                    file  Ljava/io/File;
            0   26     2  moduleNameReplacements  [[Ljava/lang/String;
            1   26     3             inputStream  Ljava/io/InputStream;
            3   21     6                      br  Ljava/io/BufferedReader;
            4   16     7                      bw  Ljava/io/BufferedWriter;
            5   12     8                    line  Ljava/lang/String;
           13   14     8                    line  Ljava/lang/String;
            7    8     9   moduleNameReplacement  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           4    14      15  any
           3    17      18  any
           2    22      22  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                        Name  Flags
      resource                
      file                    
      moduleNameReplacements  

  private static java.lang.String stripToLastSlash(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String resourceName
         0: .line 128
            aload 0 /* resourceName */
            ldc "/"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 1
            aload 0 /* resourceName */
            aload 0 /* resourceName */
            ldc "/"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* resourceName */
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // java.lang.String resourceName
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  resourceName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      resourceName  

  private static java.lang.String[] baseAndExtension(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String fileName
         0: .line 138
            aload 0 /* fileName */
            ldc "."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 1
            aload 0 /* fileName */
            iconst_0
            aload 0 /* fileName */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* fileName */
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 1 /* fileNameBase */
        start local 1 // java.lang.String fileNameBase
         3: .line 139
            aload 0 /* fileName */
            aload 1 /* fileNameBase */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* fileNameExtension */
        start local 2 // java.lang.String fileNameExtension
         4: .line 140
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* fileNameBase */
            aastore
            dup
            iconst_1
            aload 2 /* fileNameExtension */
            aastore
            areturn
        end local 2 // java.lang.String fileNameExtension
        end local 1 // java.lang.String fileNameBase
        end local 0 // java.lang.String fileName
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0           fileName  Ljava/lang/String;
            3    5     1       fileNameBase  Ljava/lang/String;
            4    5     2  fileNameExtension  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      fileName  

  private static java.io.File[] prepareTestFileAndModules(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)[Ljava/io/File;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=14, args_size=2
        start local 0 // java.lang.String mainFileResource
        start local 1 // java.lang.String[] moduleFileResources
         0: .line 152
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* moduleNames */
        start local 2 // java.util.List moduleNames
         1: .line 153
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* moduleFiles */
        start local 3 // java.util.List moduleFiles
         2: .line 154
            iconst_0
            istore 4 /* moduleNamesWithExtensionCount */
        start local 4 // int moduleNamesWithExtensionCount
         3: .line 155
            aload 1 /* moduleFileResources */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 17
      StackMap locals: java.lang.String java.lang.String[] java.util.List java.util.List int top int int java.lang.String[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* moduleFileResource */
        start local 5 // java.lang.String moduleFileResource
         5: .line 156
            aload 5 /* moduleFileResource */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.stripToLastSlash:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* moduleName */
        start local 9 // java.lang.String moduleName
         6: .line 157
            aload 9 /* moduleName */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.baseAndExtension:(Ljava/lang/String;)[Ljava/lang/String;
            astore 10 /* moduleNameBaseAndExtension */
        start local 10 // java.lang.String[] moduleNameBaseAndExtension
         7: .line 158
            aload 10 /* moduleNameBaseAndExtension */
            iconst_0
            aaload
            astore 11 /* moduleNameBase */
        start local 11 // java.lang.String moduleNameBase
         8: .line 159
            aload 10 /* moduleNameBaseAndExtension */
            iconst_1
            aaload
            astore 12 /* moduleNameExtension */
        start local 12 // java.lang.String moduleNameExtension
         9: .line 160
            aload 12 /* moduleNameExtension */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
        10: .line 161
            iinc 4 /* moduleNamesWithExtensionCount */ 1
        11: .line 164
      StackMap locals: java.lang.String java.lang.String[] java.util.List java.util.List int java.lang.String int int java.lang.String[] java.lang.String java.lang.String[] java.lang.String java.lang.String
      StackMap stack:
            aload 11 /* moduleNameBase */
            aload 12 /* moduleNameExtension */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 13 /* moduleFile */
        start local 13 // java.io.File moduleFile
        12: .line 165
            aload 13 /* moduleFile */
            invokevirtual java.io.File.deleteOnExit:()V
        13: .line 166
            aload 5 /* moduleFileResource */
            aload 13 /* moduleFile */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.copyResourceToFile:(Ljava/lang/String;Ljava/io/File;)V
        14: .line 168
            aload 2 /* moduleNames */
            aload 9 /* moduleName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 169
            aload 3 /* moduleFiles */
            aload 13 /* moduleFile */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.io.File moduleFile
        end local 12 // java.lang.String moduleNameExtension
        end local 11 // java.lang.String moduleNameBase
        end local 10 // java.lang.String[] moduleNameBaseAndExtension
        end local 9 // java.lang.String moduleName
        end local 5 // java.lang.String moduleFileResource
        16: .line 155
            iinc 6 1
      StackMap locals: java.lang.String java.lang.String[] java.util.List java.util.List int top int int java.lang.String[]
      StackMap stack:
        17: iload 6
            iload 7
            if_icmplt 4
        18: .line 172
            aload 3 /* moduleFiles */
            invokeinterface java.util.List.size:()I
            iload 4 /* moduleNamesWithExtensionCount */
            iadd
            anewarray java.lang.String[]
            astore 5 /* moduleNameReplacements */
        start local 5 // java.lang.String[][] moduleNameReplacements
        19: .line 173
            iconst_0
            istore 6 /* replacementIndex */
        start local 6 // int replacementIndex
        20: .line 174
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        21: goto 30
        22: .line 175
      StackMap locals: java.lang.String java.lang.String[] java.util.List java.util.List int java.lang.String[][] int int
      StackMap stack:
            aload 2 /* moduleNames */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* moduleName */
        start local 8 // java.lang.String moduleName
        23: .line 176
            aload 3 /* moduleFiles */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.io.File
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            astore 9 /* moduleTempFileName */
        start local 9 // java.lang.String moduleTempFileName
        24: .line 178
            aload 5 /* moduleNameReplacements */
            iload 6 /* replacementIndex */
            iinc 6 /* replacementIndex */ 1
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 8 /* moduleName */
            aastore
            dup
            iconst_1
            aload 9 /* moduleTempFileName */
            aastore
            aastore
        25: .line 179
            aload 8 /* moduleName */
            ldc "."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 29
        26: .line 180
            aload 8 /* moduleName */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.baseAndExtension:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            astore 10 /* moduleNameBase */
        start local 10 // java.lang.String moduleNameBase
        27: .line 181
            aload 9 /* moduleTempFileName */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.baseAndExtension:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            astore 11 /* moduleTempFileNameBase */
        start local 11 // java.lang.String moduleTempFileNameBase
        28: .line 182
            aload 5 /* moduleNameReplacements */
            iload 6 /* replacementIndex */
            iinc 6 /* replacementIndex */ 1
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 10 /* moduleNameBase */
            aastore
            dup
            iconst_1
            aload 11 /* moduleTempFileNameBase */
            aastore
            aastore
        end local 11 // java.lang.String moduleTempFileNameBase
        end local 10 // java.lang.String moduleNameBase
        end local 9 // java.lang.String moduleTempFileName
        end local 8 // java.lang.String moduleName
        29: .line 174
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 7 /* i */
            aload 3 /* moduleFiles */
            invokeinterface java.util.List.size:()I
            if_icmplt 22
        end local 7 // int i
        31: .line 186
            aload 0 /* mainFileResource */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.stripToLastSlash:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* mainFileName */
        start local 7 // java.lang.String mainFileName
        32: .line 187
            aload 7 /* mainFileName */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.baseAndExtension:(Ljava/lang/String;)[Ljava/lang/String;
            astore 8 /* mainFileNameBaseAndExtension */
        start local 8 // java.lang.String[] mainFileNameBaseAndExtension
        33: .line 188
            aload 8 /* mainFileNameBaseAndExtension */
            iconst_0
            aaload
            astore 9 /* mainFileNameBase */
        start local 9 // java.lang.String mainFileNameBase
        34: .line 189
            aload 8 /* mainFileNameBaseAndExtension */
            iconst_1
            aaload
            astore 10 /* mainFileNameExtension */
        start local 10 // java.lang.String mainFileNameExtension
        35: .line 191
            aload 9 /* mainFileNameBase */
            aload 10 /* mainFileNameExtension */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 11 /* mainFile */
        start local 11 // java.io.File mainFile
        36: .line 192
            aload 11 /* mainFile */
            invokevirtual java.io.File.deleteOnExit:()V
        37: .line 193
            aload 0 /* mainFileResource */
            aload 11 /* mainFile */
            aload 5 /* moduleNameReplacements */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.copyResourceToFile:(Ljava/lang/String;Ljava/io/File;[[Ljava/lang/String;)V
        38: .line 195
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* allFilesList */
        start local 12 // java.util.List allFilesList
        39: .line 196
            aload 12 /* allFilesList */
            aload 11 /* mainFile */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 197
            aload 12 /* allFilesList */
            aload 3 /* moduleFiles */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        41: .line 199
            aload 12 /* allFilesList */
            iconst_0
            anewarray java.io.File
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.io.File[]
            areturn
        end local 12 // java.util.List allFilesList
        end local 11 // java.io.File mainFile
        end local 10 // java.lang.String mainFileNameExtension
        end local 9 // java.lang.String mainFileNameBase
        end local 8 // java.lang.String[] mainFileNameBaseAndExtension
        end local 7 // java.lang.String mainFileName
        end local 6 // int replacementIndex
        end local 5 // java.lang.String[][] moduleNameReplacements
        end local 4 // int moduleNamesWithExtensionCount
        end local 3 // java.util.List moduleFiles
        end local 2 // java.util.List moduleNames
        end local 1 // java.lang.String[] moduleFileResources
        end local 0 // java.lang.String mainFileResource
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   42     0               mainFileResource  Ljava/lang/String;
            0   42     1            moduleFileResources  [Ljava/lang/String;
            1   42     2                    moduleNames  Ljava/util/List<Ljava/lang/String;>;
            2   42     3                    moduleFiles  Ljava/util/List<Ljava/io/File;>;
            3   42     4  moduleNamesWithExtensionCount  I
            5   16     5             moduleFileResource  Ljava/lang/String;
            6   16     9                     moduleName  Ljava/lang/String;
            7   16    10     moduleNameBaseAndExtension  [Ljava/lang/String;
            8   16    11                 moduleNameBase  Ljava/lang/String;
            9   16    12            moduleNameExtension  Ljava/lang/String;
           12   16    13                     moduleFile  Ljava/io/File;
           19   42     5         moduleNameReplacements  [[Ljava/lang/String;
           20   42     6               replacementIndex  I
           21   31     7                              i  I
           23   29     8                     moduleName  Ljava/lang/String;
           24   29     9             moduleTempFileName  Ljava/lang/String;
           27   29    10                 moduleNameBase  Ljava/lang/String;
           28   29    11         moduleTempFileNameBase  Ljava/lang/String;
           32   42     7                   mainFileName  Ljava/lang/String;
           33   42     8   mainFileNameBaseAndExtension  [Ljava/lang/String;
           34   42     9               mainFileNameBase  Ljava/lang/String;
           35   42    10          mainFileNameExtension  Ljava/lang/String;
           36   42    11                       mainFile  Ljava/io/File;
           39   42    12                   allFilesList  Ljava/util/List<Ljava/io/File;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                     Name  Flags
      mainFileResource     
      moduleFileResources  

  private static void deleteFiles(java.io.File[]);
    descriptor: ([Ljava/io/File;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.io.File[] filesArray
         0: .line 206
            aload 0 /* filesArray */
            ifnull 6
         1: .line 207
            aload 0 /* filesArray */
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: java.io.File[] top int int java.io.File[]
      StackMap stack:
         2: aload 4
            iload 2
            aaload
            astore 1 /* file */
        start local 1 // java.io.File file
         3: .line 209
            aload 1 /* file */
            invokevirtual java.io.File.delete:()Z
            pop
        end local 1 // java.io.File file
         4: .line 207
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 2
         6: .line 212
      StackMap locals: java.io.File[]
      StackMap stack:
            return
        end local 0 // java.io.File[] filesArray
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  filesArray  [Ljava/io/File;
            3    4     1        file  Ljava/io/File;
    MethodParameters:
            Name  Flags
      filesArray  

  public void testFunctionExport();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
         0: .line 220
            aconst_null
            astore 1 /* allFilesArray */
        start local 1 // java.io.File[] allFilesArray
         1: .line 221
            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;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowIO:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 222
            ldc "resources/functionexporttest.js"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "resources/functionexportmodule.js"
            aastore
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.prepareTestFileAndModules:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/io/File;
            astore 1 /* allFilesArray */
         4: .line 224
            ldc "js"
            aload 1 /* allFilesArray */
            iconst_0
            aaload
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            ldc "application/javascript+module"
            invokevirtual org.graalvm.polyglot.Source$Builder.mimeType:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 5 /* mainSource */
        start local 5 // org.graalvm.polyglot.Source mainSource
         5: .line 225
            aload 4 /* context */
            aload 5 /* mainSource */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* v */
        start local 6 // org.graalvm.polyglot.Value v
         6: .line 226
            aload 6 /* v */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
        end local 6 // org.graalvm.polyglot.Value v
        end local 5 // org.graalvm.polyglot.Source mainSource
         7: .line 227
            aload 4 /* context */
            ifnull 16
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[] java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 4 /* context */
            ifnull 9
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      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
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[]
      StackMap stack: java.lang.Throwable
        13: astore 7
        14: .line 228
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        15: .line 229
            aload 7
            athrow
        16: .line 228
      StackMap locals:
      StackMap stack:
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        17: .line 230
            return
        end local 1 // java.io.File[] allFilesArray
        end local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/js/test/interop/ESModuleTest;
            1   18     1  allFilesArray  [Ljava/io/File;
            3    9     4        context  Lorg/graalvm/polyglot/Context;
            5    7     5     mainSource  Lorg/graalvm/polyglot/Source;
            6    7     6              v  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           3     7       8  any
           2    10      10  any
           1    13      13  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testFunctionExportNoMimeType();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
         0: .line 238
            aconst_null
            astore 1 /* allFilesArray */
        start local 1 // java.io.File[] allFilesArray
         1: .line 239
            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;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowIO:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 240
            ldc "resources/functionexporttest.js"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "resources/functionexportmodule.js"
            aastore
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.prepareTestFileAndModules:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/io/File;
            astore 1 /* allFilesArray */
         4: .line 242
            aload 1 /* allFilesArray */
            iconst_0
            aaload
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            astore 5 /* mainFilePath */
        start local 5 // java.lang.String mainFilePath
         5: .line 243
            aload 5 /* mainFilePath */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.baseAndExtension:(Ljava/lang/String;)[Ljava/lang/String;
            astore 6 /* mainFileBaseAndExtension */
        start local 6 // java.lang.String[] mainFileBaseAndExtension
         6: .line 244
            new java.io.File
            dup
            new java.lang.StringBuilder
            dup
            aload 6 /* mainFileBaseAndExtension */
            iconst_0
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".mjs"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* mainFileWithMjsExtension */
        start local 7 // java.io.File mainFileWithMjsExtension
         7: .line 246
            aload 1 /* allFilesArray */
            iconst_0
            aaload
            aload 7 /* mainFileWithMjsExtension */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            pop
         8: .line 247
            ldc "js"
            aload 7 /* mainFileWithMjsExtension */
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 8 /* mainSource */
        start local 8 // org.graalvm.polyglot.Source mainSource
         9: .line 248
            aload 4 /* context */
            aload 8 /* mainSource */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 9 /* v */
        start local 9 // org.graalvm.polyglot.Value v
        10: .line 249
            aload 9 /* v */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
        end local 9 // org.graalvm.polyglot.Value v
        end local 8 // org.graalvm.polyglot.Source mainSource
        end local 7 // java.io.File mainFileWithMjsExtension
        end local 6 // java.lang.String[] mainFileBaseAndExtension
        end local 5 // java.lang.String mainFilePath
        11: .line 250
            aload 4 /* context */
            ifnull 20
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 20
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[] java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
        12: astore 2
            aload 4 /* context */
            ifnull 13
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
        13: aload 2
            athrow
      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 2
            athrow
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[]
      StackMap stack: java.lang.Throwable
        17: astore 10
        18: .line 251
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        19: .line 252
            aload 10
            athrow
        20: .line 251
      StackMap locals:
      StackMap stack:
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        21: .line 253
            return
        end local 1 // java.io.File[] allFilesArray
        end local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   22     0                      this  Lcom/oracle/truffle/js/test/interop/ESModuleTest;
            1   22     1             allFilesArray  [Ljava/io/File;
            3   13     4                   context  Lorg/graalvm/polyglot/Context;
            5   11     5              mainFilePath  Ljava/lang/String;
            6   11     6  mainFileBaseAndExtension  [Ljava/lang/String;
            7   11     7  mainFileWithMjsExtension  Ljava/io/File;
            9   11     8                mainSource  Lorg/graalvm/polyglot/Source;
           10   11     9                         v  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           3    11      12  any
           2    14      14  any
           1    17      17  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDefaultFunctionExport();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
         0: .line 260
            aconst_null
            astore 1 /* allFilesArray */
        start local 1 // java.io.File[] allFilesArray
         1: .line 261
            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;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowIO:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 262
            ldc "resources/defaultfunctionexporttest.js"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "resources/diagmodule.js"
            aastore
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.prepareTestFileAndModules:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/io/File;
            astore 1 /* allFilesArray */
         4: .line 264
            ldc "js"
            aload 1 /* allFilesArray */
            iconst_0
            aaload
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            ldc "application/javascript+module"
            invokevirtual org.graalvm.polyglot.Source$Builder.mimeType:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 5 /* mainSource */
        start local 5 // org.graalvm.polyglot.Source mainSource
         5: .line 265
            aload 4 /* context */
            aload 5 /* mainSource */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* v */
        start local 6 // org.graalvm.polyglot.Value v
         6: .line 266
            aload 6 /* v */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
        end local 6 // org.graalvm.polyglot.Value v
        end local 5 // org.graalvm.polyglot.Source mainSource
         7: .line 267
            aload 4 /* context */
            ifnull 16
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[] java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 4 /* context */
            ifnull 9
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      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
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[]
      StackMap stack: java.lang.Throwable
        13: astore 7
        14: .line 268
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        15: .line 269
            aload 7
            athrow
        16: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        17: .line 270
            return
        end local 1 // java.io.File[] allFilesArray
        end local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/js/test/interop/ESModuleTest;
            1   18     1  allFilesArray  [Ljava/io/File;
            3    9     4        context  Lorg/graalvm/polyglot/Context;
            5    7     5     mainSource  Lorg/graalvm/polyglot/Source;
            6    7     6              v  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           3     7       8  any
           2    10      10  any
           1    13      13  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testRenamedExport();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
         0: .line 277
            aconst_null
            astore 1 /* allFilesArray */
        start local 1 // java.io.File[] allFilesArray
         1: .line 278
            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;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowIO:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 280
            ldc "resources/renamedexporttest.js"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "resources/renamedexportmodule.js"
            aastore
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.prepareTestFileAndModules:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/io/File;
            astore 1 /* allFilesArray */
         4: .line 282
            ldc "js"
            aload 1 /* allFilesArray */
            iconst_0
            aaload
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            ldc "application/javascript+module"
            invokevirtual org.graalvm.polyglot.Source$Builder.mimeType:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 5 /* mainSource */
        start local 5 // org.graalvm.polyglot.Source mainSource
         5: .line 283
            aload 4 /* context */
            aload 5 /* mainSource */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* v */
        start local 6 // org.graalvm.polyglot.Value v
         6: .line 284
            aload 6 /* v */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
        end local 6 // org.graalvm.polyglot.Value v
        end local 5 // org.graalvm.polyglot.Source mainSource
         7: .line 285
            aload 4 /* context */
            ifnull 16
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[] java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 4 /* context */
            ifnull 9
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      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
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[]
      StackMap stack: java.lang.Throwable
        13: astore 7
        14: .line 286
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        15: .line 287
            aload 7
            athrow
        16: .line 286
      StackMap locals:
      StackMap stack:
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        17: .line 288
            return
        end local 1 // java.io.File[] allFilesArray
        end local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/js/test/interop/ESModuleTest;
            1   18     1  allFilesArray  [Ljava/io/File;
            3    9     4        context  Lorg/graalvm/polyglot/Context;
            5    7     5     mainSource  Lorg/graalvm/polyglot/Source;
            6    7     6              v  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           3     7       8  any
           2    10      10  any
           1    13      13  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testClassExport();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
         0: .line 295
            aconst_null
            astore 1 /* allFilesArray */
        start local 1 // java.io.File[] allFilesArray
         1: .line 296
            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;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowIO:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 297
            ldc "resources/classexporttest.js"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "resources/classexportmodule.js"
            aastore
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.prepareTestFileAndModules:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/io/File;
            astore 1 /* allFilesArray */
         4: .line 298
            ldc "js"
            aload 1 /* allFilesArray */
            iconst_0
            aaload
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            ldc "application/javascript+module"
            invokevirtual org.graalvm.polyglot.Source$Builder.mimeType:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 5 /* mainSource */
        start local 5 // org.graalvm.polyglot.Source mainSource
         5: .line 299
            aload 4 /* context */
            aload 5 /* mainSource */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* v */
        start local 6 // org.graalvm.polyglot.Value v
         6: .line 300
            aload 6 /* v */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
        end local 6 // org.graalvm.polyglot.Value v
        end local 5 // org.graalvm.polyglot.Source mainSource
         7: .line 301
            aload 4 /* context */
            ifnull 16
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[] java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 4 /* context */
            ifnull 9
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      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
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[]
      StackMap stack: java.lang.Throwable
        13: astore 7
        14: .line 302
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        15: .line 303
            aload 7
            athrow
        16: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        17: .line 304
            return
        end local 1 // java.io.File[] allFilesArray
        end local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/js/test/interop/ESModuleTest;
            1   18     1  allFilesArray  [Ljava/io/File;
            3    9     4        context  Lorg/graalvm/polyglot/Context;
            5    7     5     mainSource  Lorg/graalvm/polyglot/Source;
            6    7     6              v  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           3     7       8  any
           2    10      10  any
           1    13      13  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDefaultClassExport();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
         0: .line 311
            aconst_null
            astore 1 /* allFilesArray */
        start local 1 // java.io.File[] allFilesArray
         1: .line 312
            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;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowIO:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 313
            ldc "resources/defaultclassexporttest.js"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "resources/mymathmodule.js"
            aastore
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.prepareTestFileAndModules:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/io/File;
            astore 1 /* allFilesArray */
         4: .line 315
            ldc "js"
            aload 1 /* allFilesArray */
            iconst_0
            aaload
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            ldc "application/javascript+module"
            invokevirtual org.graalvm.polyglot.Source$Builder.mimeType:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 5 /* mainSource */
        start local 5 // org.graalvm.polyglot.Source mainSource
         5: .line 316
            aload 4 /* context */
            aload 5 /* mainSource */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* v */
        start local 6 // org.graalvm.polyglot.Value v
         6: .line 317
            aload 6 /* v */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
        end local 6 // org.graalvm.polyglot.Value v
        end local 5 // org.graalvm.polyglot.Source mainSource
         7: .line 318
            aload 4 /* context */
            ifnull 16
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 16
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[] java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 4 /* context */
            ifnull 9
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      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
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[]
      StackMap stack: java.lang.Throwable
        13: astore 7
        14: .line 319
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        15: .line 320
            aload 7
            athrow
        16: .line 319
      StackMap locals:
      StackMap stack:
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        17: .line 321
            return
        end local 1 // java.io.File[] allFilesArray
        end local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/js/test/interop/ESModuleTest;
            1   18     1  allFilesArray  [Ljava/io/File;
            3    9     4        context  Lorg/graalvm/polyglot/Context;
            5    7     5     mainSource  Lorg/graalvm/polyglot/Source;
            6    7     6              v  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           3     7       8  any
           2    10      10  any
           1    13      13  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testImportWithCustomFileSystem();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
         0: .line 329
            aconst_null
            astore 1 /* allFilesArray */
        start local 1 // java.io.File[] allFilesArray
         1: .line 330
            new com.oracle.truffle.js.test.interop.ESModuleTest$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.test.interop.ESModuleTest$1.<init>:(Lcom/oracle/truffle/js/test/interop/ESModuleTest;)V
            astore 2 /* fileSystem */
        start local 2 // org.graalvm.polyglot.io.FileSystem fileSystem
         2: .line 394
            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;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowIO:(Z)Lorg/graalvm/polyglot/Context$Builder;
            aload 2 /* fileSystem */
            invokevirtual org.graalvm.polyglot.Context$Builder.fileSystem:(Lorg/graalvm/polyglot/io/FileSystem;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 5 /* context */
        start local 5 // org.graalvm.polyglot.Context context
         4: .line 395
            ldc "resources/importwithcustomfilesystemtest.js"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "resources/functionexportmodule.js"
            aastore
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.prepareTestFileAndModules:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/io/File;
            astore 1 /* allFilesArray */
         5: .line 397
            ldc "js"
            aload 1 /* allFilesArray */
            iconst_0
            aaload
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/io/File;)Lorg/graalvm/polyglot/Source$Builder;
            ldc "application/javascript+module"
            invokevirtual org.graalvm.polyglot.Source$Builder.mimeType:(Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 6 /* mainSource */
        start local 6 // org.graalvm.polyglot.Source mainSource
         6: .line 398
            aload 5 /* context */
            aload 6 /* mainSource */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 7 /* v */
        start local 7 // org.graalvm.polyglot.Value v
         7: .line 399
            aload 7 /* v */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.commonCheck:(Lorg/graalvm/polyglot/Value;)V
        end local 7 // org.graalvm.polyglot.Value v
        end local 6 // org.graalvm.polyglot.Source mainSource
         8: .line 400
            aload 5 /* context */
            ifnull 17
            aload 5 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 17
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[] org.graalvm.polyglot.io.FileSystem java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 5 /* context */
            ifnull 10
            aload 5 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 5 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
        10: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 4
            aload 3
            ifnonnull 12
            aload 4
            astore 3
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 3
            aload 4
            if_acmpeq 13
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 3
            athrow
      StackMap locals: com.oracle.truffle.js.test.interop.ESModuleTest java.io.File[] org.graalvm.polyglot.io.FileSystem
      StackMap stack: java.lang.Throwable
        14: astore 8
        15: .line 401
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        16: .line 402
            aload 8
            athrow
        17: .line 401
      StackMap locals:
      StackMap stack:
            aload 1 /* allFilesArray */
            invokestatic com.oracle.truffle.js.test.interop.ESModuleTest.deleteFiles:([Ljava/io/File;)V
        18: .line 403
            return
        end local 2 // org.graalvm.polyglot.io.FileSystem fileSystem
        end local 1 // java.io.File[] allFilesArray
        end local 0 // com.oracle.truffle.js.test.interop.ESModuleTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lcom/oracle/truffle/js/test/interop/ESModuleTest;
            1   19     1  allFilesArray  [Ljava/io/File;
            2   19     2     fileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            4   10     5        context  Lorg/graalvm/polyglot/Context;
            6    8     6     mainSource  Lorg/graalvm/polyglot/Source;
            7    8     7              v  Lorg/graalvm/polyglot/Value;
      Exception table:
        from    to  target  type
           4     8       9  any
           3    11      11  any
           2    14      14  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "ESModuleTest.java"
NestMembers:
  com.oracle.truffle.js.test.interop.ESModuleTest$1
InnerClasses:
  com.oracle.truffle.js.test.interop.ESModuleTest$1
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source