public class com.oracle.truffle.api.test.TruffleExceptionTest extends com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.test.TruffleExceptionTest
  super_class: com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
{
  private com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler verifyingHandler;
    descriptor: Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 91
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;

  public void setUp();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 97
            aload 0 /* this */
            new com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler
            dup
            ldc Lcom/oracle/truffle/api/exception/AbstractTruffleException;
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler.<init>:(Ljava/lang/Class;)V
            putfield com.oracle.truffle.api.test.TruffleExceptionTest.verifyingHandler:Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;
         1: .line 98
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  public void testTruffleException();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 102
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest.verifyingHandler:Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;
            invokestatic com.oracle.truffle.api.test.TruffleExceptionTest.createContext:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;)Lorg/graalvm/polyglot/Context;
            new com.oracle.truffle.api.test.TruffleExceptionTest$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$1.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)V
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.setupEnv:(Lorg/graalvm/polyglot/Context;Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)V
         1: .line 108
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest.verifyingHandler:Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;
            iconst_3
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind
            dup
            iconst_0
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.TRY:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.CATCH:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            aastore
            dup
            iconst_2
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.FINALLY:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            aastore
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler.expect:([Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;)V
         2: .line 109
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest.context:Lorg/graalvm/polyglot/Context;
            ldc "proxyLanguage"
            ldc "Test"
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            pop
         3: .line 110
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testTruffleExceptionCustomGuestObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 114
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest.verifyingHandler:Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;
            invokestatic com.oracle.truffle.api.test.TruffleExceptionTest.createContext:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;)Lorg/graalvm/polyglot/Context;
            new com.oracle.truffle.api.test.TruffleExceptionTest$2
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$2.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)V
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.setupEnv:(Lorg/graalvm/polyglot/Context;Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)V
         1: .line 120
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest.verifyingHandler:Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;
            iconst_3
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind
            dup
            iconst_0
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.TRY:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.CATCH:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            aastore
            dup
            iconst_2
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.FINALLY:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            aastore
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler.expect:([Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;)V
         2: .line 121
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest.context:Lorg/graalvm/polyglot/Context;
            ldc "proxyLanguage"
            ldc "Test"
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            pop
         3: .line 122
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testPolyglotStackTrace();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 126
            aload 0 /* this */
            new com.oracle.truffle.api.test.TruffleExceptionTest$3
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$3.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)V
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 135
            ldc "<proxyLanguage> test"
            aastore
            dup
            iconst_1
         2: .line 136
            ldc "(org.graalvm.sdk/)?org.graalvm.polyglot.Context.eval"
            aastore
         3: .line 126
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testStackTraceImpl:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;[Ljava/lang/String;)V
         4: .line 137
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testPolyglotStackTrace2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 141
            aload 0 /* this */
            new com.oracle.truffle.api.test.TruffleExceptionTest$4
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$4.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)V
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 153
            ldc "<proxyLanguage> test-throw"
            aastore
            dup
            iconst_1
         2: .line 154
            ldc "<proxyLanguage> test-call-inner"
            aastore
            dup
            iconst_2
         3: .line 155
            ldc "<proxyLanguage> test-call-outer"
            aastore
            dup
            iconst_3
         4: .line 156
            ldc "(org.graalvm.sdk/)?org.graalvm.polyglot.Context.eval"
            aastore
         5: .line 141
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testStackTraceImpl:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;[Ljava/lang/String;)V
         6: .line 157
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testPolyglotStackTraceInternalFrame();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 161
            aload 0 /* this */
            new com.oracle.truffle.api.test.TruffleExceptionTest$5
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$5.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)V
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 174
            ldc "<proxyLanguage> test-call-inner"
            aastore
            dup
            iconst_1
         2: .line 175
            ldc "<proxyLanguage> test-call-outer"
            aastore
            dup
            iconst_2
         3: .line 176
            ldc "(org.graalvm.sdk/)?org.graalvm.polyglot.Context.eval"
            aastore
         4: .line 161
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testStackTraceImpl:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;[Ljava/lang/String;)V
         5: .line 177
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testPolyglotStackTraceExplicitFillIn();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 181
            aload 0 /* this */
            new com.oracle.truffle.api.test.TruffleExceptionTest$6
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$6.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)V
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 192
            ldc "<proxyLanguage> test"
            aastore
            dup
            iconst_1
         2: .line 193
            ldc "(org.graalvm.sdk/)?org.graalvm.polyglot.Context.eval"
            aastore
         3: .line 181
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testStackTraceImpl:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;[Ljava/lang/String;)V
         4: .line 194
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testPolyglotStackTraceInternalError();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 198
            aload 0 /* this */
            new com.oracle.truffle.api.test.TruffleExceptionTest$7
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$7.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)V
            iconst_5
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 205
            ldc "com.oracle.truffle.api.test.TruffleExceptionTest$InternalExceptionFactory.apply"
            invokestatic java.util.regex.Pattern.quote:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 206
            ldc "com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode.executeVoid"
            invokestatic java.util.regex.Pattern.quote:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_2
         3: .line 207
            ldc "com.oracle.truffle.api.test.TruffleExceptionTest$TestRootNode.execute"
            invokestatic java.util.regex.Pattern.quote:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_3
         4: .line 208
            ldc "<proxyLanguage> test"
            aastore
            dup
            iconst_4
         5: .line 209
            ldc "(org.graalvm.sdk/)?org.graalvm.polyglot.Context.eval"
            aastore
         6: .line 198
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testStackTraceImpl:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;[Ljava/lang/String;)V
         7: .line 210
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void testStackTraceImpl(com.oracle.truffle.api.test.polyglot.ProxyLanguage, java.lang.String[]);
    descriptor: (Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;[Ljava/lang/String;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
        start local 1 // com.oracle.truffle.api.test.polyglot.ProxyLanguage proxy
        start local 2 // java.lang.String[] patterns
         0: .line 213
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            aload 1 /* proxy */
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.setupEnv:(Lorg/graalvm/polyglot/Context;Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)V
         1: .line 214
            aload 0 /* this */
            invokedynamic call(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/oracle/truffle/api/test/TruffleExceptionTest.lambda$0()Ljava/lang/Object; (7)
                  ()Ljava/lang/Object;
            ldc Lorg/graalvm/polyglot/PolyglotException;
            aload 2 /* patterns */
            invokedynamic accept([Ljava/lang/String;)Ljava/util/function/Consumer;
              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;)V
                  com/oracle/truffle/api/test/TruffleExceptionTest.lambda$1([Ljava/lang/String;Lorg/graalvm/polyglot/PolyglotException;)V (6)
                  (Lorg/graalvm/polyglot/PolyglotException;)V
            invokestatic com.oracle.truffle.api.test.TruffleExceptionTest.assertFails:(Ljava/util/concurrent/Callable;Ljava/lang/Class;Ljava/util/function/Consumer;)V
         2: .line 217
            return
        end local 2 // java.lang.String[] patterns
        end local 1 // com.oracle.truffle.api.test.polyglot.ProxyLanguage proxy
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
            0    3     1     proxy  Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
            0    3     2  patterns  [Ljava/lang/String;
    MethodParameters:
          Name  Flags
      proxy     
      patterns  

  static void verifyStackTrace(org.graalvm.polyglot.PolyglotException, java.lang.String[]);
    descriptor: (Lorg/graalvm/polyglot/PolyglotException;[Ljava/lang/String;)V
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.graalvm.polyglot.PolyglotException pe
        start local 1 // java.lang.String[] patterns
         0: .line 220
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 2 /* buffer */
        start local 2 // java.io.StringWriter buffer
         1: .line 221
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: new java.io.PrintWriter
            dup
            aload 2 /* buffer */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            astore 5 /* out */
        start local 5 // java.io.PrintWriter out
         3: .line 222
            aload 0 /* pe */
            aload 5 /* out */
            invokevirtual org.graalvm.polyglot.PolyglotException.printStackTrace:(Ljava/io/PrintWriter;)V
         4: .line 223
            aload 5 /* out */
            ifnull 10
            aload 5 /* out */
            invokevirtual java.io.PrintWriter.close:()V
            goto 10
      StackMap locals: org.graalvm.polyglot.PolyglotException java.lang.String[] java.io.StringWriter java.lang.Throwable java.lang.Throwable java.io.PrintWriter
      StackMap stack: java.lang.Throwable
         5: astore 3
            aload 5 /* out */
            ifnull 6
            aload 5 /* out */
            invokevirtual java.io.PrintWriter.close:()V
        end local 5 // java.io.PrintWriter out
      StackMap locals:
      StackMap stack:
         6: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 4
            aload 3
            ifnonnull 8
            aload 4
            astore 3
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 3
            aload 4
            if_acmpeq 9
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 3
            athrow
        10: .line 224
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            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/api/test/TruffleExceptionTest.lambda$2(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  com/oracle/truffle/api/test/TruffleExceptionTest.lambda$3(Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            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/api/test/TruffleExceptionTest.lambda$4(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        11: .line 230
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  com/oracle/truffle/api/test/TruffleExceptionTest.lambda$5(I)[Ljava/lang/String; (6)
                  (I)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        12: .line 224
            astore 3 /* lines */
        start local 3 // java.lang.String[] lines
        13: .line 231
            new java.lang.StringBuilder
            dup
            ldc "Not enough lines "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* lines */
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* patterns */
            arraylength
            aload 3 /* lines */
            arraylength
            if_icmpgt 14
            iconst_1
            goto 15
      StackMap locals: org.graalvm.polyglot.PolyglotException java.lang.String[] java.io.StringWriter java.lang.String[]
      StackMap stack: java.lang.String
        14: iconst_0
      StackMap locals: org.graalvm.polyglot.PolyglotException java.lang.String[] java.io.StringWriter java.lang.String[]
      StackMap stack: java.lang.String int
        15: invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        16: .line 232
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        17: goto 22
        18: .line 233
      StackMap locals: int
      StackMap stack:
            aload 3 /* lines */
            iload 4 /* i */
            aaload
            astore 5 /* line */
        start local 5 // java.lang.String line
        19: .line 234
            aload 1 /* patterns */
            iload 4 /* i */
            aaload
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 6 /* pattern */
        start local 6 // java.util.regex.Pattern pattern
        20: .line 235
            new java.lang.StringBuilder
            dup
            ldc "Expected "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* patterns */
            iload 4 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " but got "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* line */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* pattern */
            aload 5 /* line */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        end local 6 // java.util.regex.Pattern pattern
        end local 5 // java.lang.String line
        21: .line 232
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 4 /* i */
            aload 3 /* lines */
            arraylength
            if_icmpge 23
            iload 4 /* i */
            aload 1 /* patterns */
            arraylength
            if_icmplt 18
        end local 4 // int i
        23: .line 237
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String[] lines
        end local 2 // java.io.StringWriter buffer
        end local 1 // java.lang.String[] patterns
        end local 0 // org.graalvm.polyglot.PolyglotException pe
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0        pe  Lorg/graalvm/polyglot/PolyglotException;
            0   24     1  patterns  [Ljava/lang/String;
            1   24     2    buffer  Ljava/io/StringWriter;
            3    6     5       out  Ljava/io/PrintWriter;
           13   24     3     lines  [Ljava/lang/String;
           17   23     4         i  I
           19   21     5      line  Ljava/lang/String;
           20   21     6   pattern  Ljava/util/regex/Pattern;
      Exception table:
        from    to  target  type
           3     4       5  any
           2     7       7  any
    MethodParameters:
          Name  Flags
      pe        
      patterns  

  public void testExceptionFromPolyglotExceptionConstructor();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 241
            aload 0 /* this */
            getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
            iconst_0
            iconst_0
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testExceptionFromPolyglotExceptionConstructorImpl:(Lcom/oracle/truffle/api/interop/ExceptionType;Z[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
         1: .line 242
            aload 0 /* this */
            getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
            iconst_1
            iconst_1
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind
            dup
            iconst_0
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.IS_EXCEPTION:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
            aastore
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testExceptionFromPolyglotExceptionConstructorImpl:(Lcom/oracle/truffle/api/interop/ExceptionType;Z[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
         2: .line 243
            aload 0 /* this */
            getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
            iconst_1
            iconst_1
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind
            dup
            iconst_0
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.GET_EXCEPTION_TYPE:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
            aastore
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testExceptionFromPolyglotExceptionConstructorImpl:(Lcom/oracle/truffle/api/interop/ExceptionType;Z[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
         3: .line 244
            aload 0 /* this */
            getstatic com.oracle.truffle.api.interop.ExceptionType.EXIT:Lcom/oracle/truffle/api/interop/ExceptionType;
            iconst_1
            iconst_1
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind
            dup
            iconst_0
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.GET_EXCEPTION_EXIT_STATUS:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
            aastore
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testExceptionFromPolyglotExceptionConstructorImpl:(Lcom/oracle/truffle/api/interop/ExceptionType;Z[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
         4: .line 245
            aload 0 /* this */
            getstatic com.oracle.truffle.api.interop.ExceptionType.PARSE_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
            iconst_1
            iconst_1
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind
            dup
            iconst_0
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.IS_EXCEPTION_INCOMPLETE_SOURCE:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
            aastore
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testExceptionFromPolyglotExceptionConstructorImpl:(Lcom/oracle/truffle/api/interop/ExceptionType;Z[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
         5: .line 246
            aload 0 /* this */
            getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
            iconst_1
            iconst_1
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind
            dup
            iconst_0
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.HAS_SOURCE_LOCATION:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
            aastore
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testExceptionFromPolyglotExceptionConstructorImpl:(Lcom/oracle/truffle/api/interop/ExceptionType;Z[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
         6: .line 247
            aload 0 /* this */
            getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
            iconst_1
            iconst_1
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind
            dup
            iconst_0
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.GET_SOURCE_LOCATION:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
            aastore
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.testExceptionFromPolyglotExceptionConstructorImpl:(Lcom/oracle/truffle/api/interop/ExceptionType;Z[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
         7: .line 248
            return
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void testExceptionFromPolyglotExceptionConstructorImpl(com.oracle.truffle.api.interop.ExceptionType, boolean, com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind[]);
    descriptor: (Lcom/oracle/truffle/api/interop/ExceptionType;Z[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
        start local 1 // com.oracle.truffle.api.interop.ExceptionType type
        start local 2 // boolean internal
        start local 3 // com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind[] failOn
         0: .line 251
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            new com.oracle.truffle.api.test.TruffleExceptionTest$8
            dup
            aload 0 /* this */
            aload 1 /* type */
            aload 3 /* failOn */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$8.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest;Lcom/oracle/truffle/api/interop/ExceptionType;[Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
            invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest.setupEnv:(Lorg/graalvm/polyglot/Context;Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)V
         1: .line 258
            aload 0 /* this */
            invokedynamic call(Lcom/oracle/truffle/api/test/TruffleExceptionTest;)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/oracle/truffle/api/test/TruffleExceptionTest.lambda$6()Ljava/lang/Object; (7)
                  ()Ljava/lang/Object;
            ldc Lorg/graalvm/polyglot/PolyglotException;
            iload 2 /* internal */
            invokedynamic accept(Z)Ljava/util/function/Consumer;
              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;)V
                  com/oracle/truffle/api/test/TruffleExceptionTest.lambda$7(ZLorg/graalvm/polyglot/PolyglotException;)V (6)
                  (Lorg/graalvm/polyglot/PolyglotException;)V
            invokestatic com.oracle.truffle.api.test.TruffleExceptionTest.assertFails:(Ljava/util/concurrent/Callable;Ljava/lang/Class;Ljava/util/function/Consumer;)V
         2: .line 261
            return
        end local 3 // com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind[] failOn
        end local 2 // boolean internal
        end local 1 // com.oracle.truffle.api.interop.ExceptionType type
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
            0    3     1      type  Lcom/oracle/truffle/api/interop/ExceptionType;
            0    3     2  internal  Z
            0    3     3    failOn  [Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
    MethodParameters:
          Name  Flags
      type      
      internal  
      failOn    

  static org.graalvm.polyglot.Context createContext(com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler);
    descriptor: (Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;)Lorg/graalvm/polyglot/Context;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler handler
         0: .line 264
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            ldc "log.%s.level"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* handler */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler.loggerName:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            ldc "FINE"
            invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 0 /* handler */
            invokevirtual org.graalvm.polyglot.Context$Builder.logHandler:(Ljava/util/logging/Handler;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            areturn
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler handler
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  handler  Lcom/oracle/truffle/api/test/TruffleExceptionTest$VerifyingHandler;
    MethodParameters:
         Name  Flags
      handler  

  static com.oracle.truffle.api.CallTarget createAST(java.lang.Class<?>, com.oracle.truffle.api.TruffleLanguage<com.oracle.truffle.api.test.polyglot.ProxyLanguage$LanguageContext>, com.oracle.truffle.api.test.TruffleExceptionTest$ExceptionFactory, boolean);
    descriptor: (Ljava/lang/Class;Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/test/TruffleExceptionTest$ExceptionFactory;Z)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=6, args_size=4
        start local 0 // java.lang.Class testClass
        start local 1 // com.oracle.truffle.api.TruffleLanguage lang
        start local 2 // com.oracle.truffle.api.test.TruffleExceptionTest$ExceptionFactory exceptionObjectFactroy
        start local 3 // boolean customStackTraceElementGuestObject
         0: .line 269
            new com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode
            dup
            aload 2 /* exceptionObjectFactroy */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$ExceptionFactory;)V
            astore 4 /* throwNode */
        start local 4 // com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode throwNode
         1: .line 270
            new com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode
            dup
            new com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode
            dup
            aload 0 /* testClass */
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.TRY:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            iconst_1
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode
            dup
            iconst_0
            aload 4 /* throwNode */
            aastore
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;[Lcom/oracle/truffle/api/test/TruffleExceptionTest$StatementNode;)V
         2: .line 271
            new com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode
            dup
            aload 0 /* testClass */
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.CATCH:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            iconst_0
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;[Lcom/oracle/truffle/api/test/TruffleExceptionTest$StatementNode;)V
         3: .line 272
            new com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode
            dup
            aload 0 /* testClass */
            getstatic com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind.FINALLY:Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;
            iconst_0
            anewarray com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode.<init>:(Ljava/lang/Class;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode$Kind;[Lcom/oracle/truffle/api/test/TruffleExceptionTest$StatementNode;)V
         4: .line 270
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode.<init>:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;Lcom/oracle/truffle/api/test/TruffleExceptionTest$BlockNode;)V
            astore 5 /* tryCatch */
        start local 5 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode tryCatch
         5: .line 273
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
         6: new com.oracle.truffle.api.test.TruffleExceptionTest$TestRootNode
            dup
            aload 1 /* lang */
            ldc "test"
            iload 3 /* customStackTraceElementGuestObject */
            ifeq 7
            ldc "unnamed"
            goto 8
      StackMap locals: java.lang.Class com.oracle.truffle.api.TruffleLanguage com.oracle.truffle.api.test.TruffleExceptionTest$ExceptionFactory int com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode
      StackMap stack: com.oracle.truffle.api.TruffleRuntime new 6 new 6 com.oracle.truffle.api.TruffleLanguage java.lang.String
         7: aconst_null
      StackMap locals: java.lang.Class com.oracle.truffle.api.TruffleLanguage com.oracle.truffle.api.test.TruffleExceptionTest$ExceptionFactory int com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode
      StackMap stack: com.oracle.truffle.api.TruffleRuntime new 6 new 6 com.oracle.truffle.api.TruffleLanguage java.lang.String java.lang.String
         8: aload 5 /* tryCatch */
            invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$TestRootNode.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/api/test/TruffleExceptionTest$StatementNode;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            areturn
        end local 5 // com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode tryCatch
        end local 4 // com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode throwNode
        end local 3 // boolean customStackTraceElementGuestObject
        end local 2 // com.oracle.truffle.api.test.TruffleExceptionTest$ExceptionFactory exceptionObjectFactroy
        end local 1 // com.oracle.truffle.api.TruffleLanguage lang
        end local 0 // java.lang.Class testClass
      LocalVariableTable:
        Start  End  Slot                                Name  Signature
            0    9     0                           testClass  Ljava/lang/Class<*>;
            0    9     1                                lang  Lcom/oracle/truffle/api/TruffleLanguage<Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage$LanguageContext;>;
            0    9     2              exceptionObjectFactroy  Lcom/oracle/truffle/api/test/TruffleExceptionTest$ExceptionFactory;
            0    9     3  customStackTraceElementGuestObject  Z
            1    9     4                           throwNode  Lcom/oracle/truffle/api/test/TruffleExceptionTest$ThrowNode;
            5    9     5                            tryCatch  Lcom/oracle/truffle/api/test/TruffleExceptionTest$TryCatchNode;
    Signature: (Ljava/lang/Class<*>;Lcom/oracle/truffle/api/TruffleLanguage<Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage$LanguageContext;>;Lcom/oracle/truffle/api/test/TruffleExceptionTest$ExceptionFactory;Z)Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
                                    Name  Flags
      testClass                           
      lang                                
      exceptionObjectFactroy              
      customStackTraceElementGuestObject  

  static <T extends java.lang.Throwable> T sthrow(java.lang.Class<T>, java.lang.Throwable) throws T;
    descriptor: (Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.Class type
        start local 1 // java.lang.Throwable t
         0: .line 278
            aload 1 /* t */
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/Class<TT;>;
            0    1     1     t  Ljava/lang/Throwable;
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Throwable;>(Ljava/lang/Class<TT;>;Ljava/lang/Throwable;)TT;^TT;
    MethodParameters:
      Name  Flags
      type  
      t     

  private java.lang.Object lambda$0();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 214
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest.context:Lorg/graalvm/polyglot/Context;
            ldc "proxyLanguage"
            ldc "Test"
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            areturn
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    Exceptions:
      throws java.lang.Exception

  private static void lambda$1(java.lang.String[], org.graalvm.polyglot.PolyglotException);
    descriptor: ([Ljava/lang/String;Lorg/graalvm/polyglot/PolyglotException;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.polyglot.PolyglotException pe
         0: .line 215
            aload 1 /* pe */
            aload 0
            invokestatic com.oracle.truffle.api.test.TruffleExceptionTest.verifyStackTrace:(Lorg/graalvm/polyglot/PolyglotException;[Ljava/lang/String;)V
         1: .line 216
            return
        end local 1 // org.graalvm.polyglot.PolyglotException pe
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1    pe  Lorg/graalvm/polyglot/PolyglotException;

  private static java.lang.String lambda$2(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String l
         0: .line 224
            aload 0 /* l */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     l  Ljava/lang/String;

  private static boolean lambda$3(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String l
         0: .line 224
            aload 0 /* l */
            ldc "at "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     l  Ljava/lang/String;

  private static java.lang.String lambda$4(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String l
         0: .line 225
            aload 0 /* l */
            bipush 40
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* end */
        start local 1 // int end
         1: .line 226
            iload 1 /* end */
            ifge 3
         2: .line 227
            aload 0 /* l */
            invokevirtual java.lang.String.length:()I
            istore 1 /* end */
         3: .line 229
      StackMap locals: int
      StackMap stack:
            aload 0 /* l */
            iconst_3
            iload 1 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // int end
        end local 0 // java.lang.String l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     l  Ljava/lang/String;
            1    4     1   end  I

  private static java.lang.String[] lambda$5(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int len
         0: .line 230
            iload 0 /* len */
            anewarray java.lang.String
            areturn
        end local 0 // int len
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   len  I

  private java.lang.Object lambda$6();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
         0: .line 258
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.TruffleExceptionTest.context:Lorg/graalvm/polyglot/Context;
            ldc "proxyLanguage"
            ldc "Test"
            invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
            areturn
        end local 0 // com.oracle.truffle.api.test.TruffleExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/test/TruffleExceptionTest;
    Exceptions:
      throws java.lang.Exception

  private static void lambda$7(boolean, org.graalvm.polyglot.PolyglotException);
    descriptor: (ZLorg/graalvm/polyglot/PolyglotException;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.polyglot.PolyglotException pe
         0: .line 259
            iload 0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 1 /* pe */
            invokevirtual org.graalvm.polyglot.PolyglotException.isInternalError:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 260
            return
        end local 1 // org.graalvm.polyglot.PolyglotException pe
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1    pe  Lorg/graalvm/polyglot/PolyglotException;
}
SourceFile: "TruffleExceptionTest.java"
NestMembers:
  com.oracle.truffle.api.test.TruffleExceptionTest$1  com.oracle.truffle.api.test.TruffleExceptionTest$2  com.oracle.truffle.api.test.TruffleExceptionTest$3  com.oracle.truffle.api.test.TruffleExceptionTest$4  com.oracle.truffle.api.test.TruffleExceptionTest$5  com.oracle.truffle.api.test.TruffleExceptionTest$6  com.oracle.truffle.api.test.TruffleExceptionTest$7  com.oracle.truffle.api.test.TruffleExceptionTest$8  com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode  com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind  com.oracle.truffle.api.test.TruffleExceptionTest$ExceptionFactory  com.oracle.truffle.api.test.TruffleExceptionTest$InjectException  com.oracle.truffle.api.test.TruffleExceptionTest$InternalExceptionFactory  com.oracle.truffle.api.test.TruffleExceptionTest$InvokeNode  com.oracle.truffle.api.test.TruffleExceptionTest$LogNode  com.oracle.truffle.api.test.TruffleExceptionTest$StackTraceElementGuestObject  com.oracle.truffle.api.test.TruffleExceptionTest$StackTraceElementGuestObject$OwnerMetaObject  com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode  com.oracle.truffle.api.test.TruffleExceptionTest$TestRootNode  com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode  com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl  com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind  com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode  com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler
InnerClasses:
  com.oracle.truffle.api.test.TruffleExceptionTest$1
  com.oracle.truffle.api.test.TruffleExceptionTest$2
  com.oracle.truffle.api.test.TruffleExceptionTest$3
  com.oracle.truffle.api.test.TruffleExceptionTest$4
  com.oracle.truffle.api.test.TruffleExceptionTest$5
  com.oracle.truffle.api.test.TruffleExceptionTest$6
  com.oracle.truffle.api.test.TruffleExceptionTest$7
  com.oracle.truffle.api.test.TruffleExceptionTest$8
  BlockNode = com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode of com.oracle.truffle.api.test.TruffleExceptionTest
  final Kind = com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode$Kind of com.oracle.truffle.api.test.TruffleExceptionTest$BlockNode
  abstract ExceptionFactory = com.oracle.truffle.api.test.TruffleExceptionTest$ExceptionFactory of com.oracle.truffle.api.test.TruffleExceptionTest
  private final InjectException = com.oracle.truffle.api.test.TruffleExceptionTest$InjectException of com.oracle.truffle.api.test.TruffleExceptionTest
  final InternalExceptionFactory = com.oracle.truffle.api.test.TruffleExceptionTest$InternalExceptionFactory of com.oracle.truffle.api.test.TruffleExceptionTest
  InvokeNode = com.oracle.truffle.api.test.TruffleExceptionTest$InvokeNode of com.oracle.truffle.api.test.TruffleExceptionTest
  private LogNode = com.oracle.truffle.api.test.TruffleExceptionTest$LogNode of com.oracle.truffle.api.test.TruffleExceptionTest
  final StackTraceElementGuestObject = com.oracle.truffle.api.test.TruffleExceptionTest$StackTraceElementGuestObject of com.oracle.truffle.api.test.TruffleExceptionTest
  abstract StatementNode = com.oracle.truffle.api.test.TruffleExceptionTest$StatementNode of com.oracle.truffle.api.test.TruffleExceptionTest
  final TestRootNode = com.oracle.truffle.api.test.TruffleExceptionTest$TestRootNode of com.oracle.truffle.api.test.TruffleExceptionTest
  ThrowNode = com.oracle.truffle.api.test.TruffleExceptionTest$ThrowNode of com.oracle.truffle.api.test.TruffleExceptionTest
  final TruffleExceptionImpl = com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl of com.oracle.truffle.api.test.TruffleExceptionTest
  final MessageKind = com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind of com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl
  private final TryCatchNode = com.oracle.truffle.api.test.TruffleExceptionTest$TryCatchNode of com.oracle.truffle.api.test.TruffleExceptionTest
  final VerifyingHandler = com.oracle.truffle.api.test.TruffleExceptionTest$VerifyingHandler of com.oracle.truffle.api.test.TruffleExceptionTest
  public LanguageContext = com.oracle.truffle.api.test.polyglot.ProxyLanguage$LanguageContext of com.oracle.truffle.api.test.polyglot.ProxyLanguage
  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