public class com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage extends com.oracle.truffle.api.TruffleLanguage<com.oracle.truffle.api.instrumentation.test.InstrumentContext>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  super_class: com.oracle.truffle.api.TruffleLanguage
{
  public static final java.lang.String ID;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "instrumentation-test-language"

  public static final java.lang.String NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Instrumentation Test Language"

  public static final java.lang.String FILENAME_EXTENSION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: ".titl"

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> EXPRESSION;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> DEFINE;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> LOOP;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> STATEMENT;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> CALL;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> ROOT_BODY;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> ROOT;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> BLOCK;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> CONSTANT;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag> TRY_CATCH;
    descriptor: Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;

  public static final java.lang.Class<?>[] TAGS;
    descriptor: [Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  public static final java.lang.String[] TAG_NAMES;
    descriptor: [Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static int rootSourceSectionQueryCount;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public static java.util.Map<java.lang.String, java.lang.Object> envConfig;
    descriptor: Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private com.oracle.truffle.api.CallTarget lastParsed;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 200
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.EXPRESSION:Ljava/lang/Class;
         1: .line 201
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$DefineTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.DEFINE:Ljava/lang/Class;
         2: .line 202
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$LoopTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.LOOP:Ljava/lang/Class;
         3: .line 203
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.STATEMENT:Ljava/lang/Class;
         4: .line 204
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$CallTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.CALL:Ljava/lang/Class;
         5: .line 205
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.ROOT_BODY:Ljava/lang/Class;
         6: .line 206
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.ROOT:Ljava/lang/Class;
         7: .line 207
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BlockTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.BLOCK:Ljava/lang/Class;
         8: .line 208
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$ConstantTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.CONSTANT:Ljava/lang/Class;
         9: .line 209
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$TryBlockTag;
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.TRY_CATCH:Ljava/lang/Class;
        10: .line 211
            bipush 10
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.EXPRESSION:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.DEFINE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.LOOP:Ljava/lang/Class;
            aastore
            dup
            iconst_3
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.STATEMENT:Ljava/lang/Class;
            aastore
            dup
            iconst_4
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.CALL:Ljava/lang/Class;
            aastore
            dup
            iconst_5
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.BLOCK:Ljava/lang/Class;
            aastore
            dup
            bipush 6
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.ROOT_BODY:Ljava/lang/Class;
            aastore
            dup
            bipush 7
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.ROOT:Ljava/lang/Class;
            aastore
            dup
            bipush 8
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.CONSTANT:Ljava/lang/Class;
            aastore
            dup
            bipush 9
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.TRY_CATCH:Ljava/lang/Class;
            aastore
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.TAGS:[Ljava/lang/Class;
        11: .line 212
            bipush 34
            anewarray java.lang.String
            dup
            iconst_0
            ldc "EXPRESSION"
            aastore
            dup
            iconst_1
            ldc "DEFINE"
            aastore
            dup
            iconst_2
            ldc "CONTEXT"
            aastore
            dup
            iconst_3
            ldc "LOOP"
            aastore
            dup
            iconst_4
            ldc "STATEMENT"
            aastore
            dup
            iconst_5
            ldc "CALL"
            aastore
            dup
            bipush 6
            ldc "RECURSIVE_CALL"
            aastore
            dup
            bipush 7
            ldc "CALL_WITH"
            aastore
            dup
            bipush 8
            ldc "BLOCK"
            aastore
            dup
            bipush 9
            ldc "ROOT_BODY"
            aastore
            dup
            bipush 10
            ldc "ROOT"
            aastore
            dup
            bipush 11
            ldc "CONSTANT"
            aastore
            dup
            bipush 12
        12: .line 213
            ldc "VARIABLE"
            aastore
            dup
            bipush 13
            ldc "ARGUMENT"
            aastore
            dup
            bipush 14
            ldc "READ_VAR"
            aastore
            dup
            bipush 15
            ldc "PRINT"
            aastore
            dup
            bipush 16
            ldc "ALLOCATION"
            aastore
            dup
            bipush 17
            ldc "SLEEP"
            aastore
            dup
            bipush 18
            ldc "SPAWN"
            aastore
            dup
            bipush 19
            ldc "JOIN"
            aastore
            dup
            bipush 20
            ldc "INVALIDATE"
            aastore
            dup
            bipush 21
            ldc "INTERNAL"
            aastore
            dup
            bipush 22
            ldc "INNER_FRAME"
            aastore
            dup
            bipush 23
            ldc "MATERIALIZE_CHILD_EXPRESSION"
            aastore
            dup
            bipush 24
        13: .line 214
            ldc "MATERIALIZE_CHILD_STMT_AND_EXPR"
            aastore
            dup
            bipush 25
            ldc "MATERIALIZE_CHILD_STMT_AND_EXPR_NC"
            aastore
            dup
            bipush 26
            ldc "MATERIALIZE_CHILD_STMT_AND_EXPR_SEPARATELY"
            aastore
            dup
            bipush 27
            ldc "MATERIALIZE_CHILD_STATEMENT"
            aastore
            dup
            bipush 28
            ldc "BLOCK_NO_SOURCE_SECTION"
            aastore
            dup
            bipush 29
        14: .line 215
            ldc "TRY"
            aastore
            dup
            bipush 30
            ldc "CATCH"
            aastore
            dup
            bipush 31
            ldc "THROW"
            aastore
            dup
            bipush 32
            ldc "UNEXPECTED_RESULT"
            aastore
            dup
            bipush 33
            ldc "MULTIPLE"
            aastore
        15: .line 212
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.TAG_NAMES:[Ljava/lang/String;
        16: .line 231
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.envConfig:Ljava/util/Map;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  protected com.oracle.truffle.api.instrumentation.test.InstrumentContext createContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 235
            aconst_null
            astore 2 /* initSource */
        start local 2 // com.oracle.truffle.api.source.Source initSource
         1: .line 236
            aconst_null
            astore 3 /* runInitAfterExec */
        start local 3 // java.lang.Boolean runInitAfterExec
         2: .line 237
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.envConfig:Ljava/util/Map;
            ifnull 7
         3: .line 238
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.envConfig:Ljava/util/Map;
            ldc "initSource"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Source
            astore 4 /* initPolyglotSource */
        start local 4 // org.graalvm.polyglot.Source initPolyglotSource
         4: .line 239
            aload 4 /* initPolyglotSource */
            ifnull 6
         5: .line 240
            aload 4 /* initPolyglotSource */
            invokestatic com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest.sourceToImpl:(Lorg/graalvm/polyglot/Source;)Lcom/oracle/truffle/api/source/Source;
            astore 2 /* initSource */
         6: .line 242
      StackMap locals: com.oracle.truffle.api.source.Source java.lang.Boolean org.graalvm.polyglot.Source
      StackMap stack:
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.envConfig:Ljava/util/Map;
            ldc "runInitAfterExec"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 3 /* runInitAfterExec */
        end local 4 // org.graalvm.polyglot.Source initPolyglotSource
         7: .line 244
      StackMap locals:
      StackMap stack:
            aload 1 /* env */
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SpecialServiceImpl
            dup
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SpecialServiceImpl.<init>:()V
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.registerService:(Ljava/lang/Object;)V
         8: .line 245
            new com.oracle.truffle.api.instrumentation.test.InstrumentContext
            dup
            aload 1 /* env */
            aload 2 /* initSource */
            aload 3 /* runInitAfterExec */
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentContext.<init>:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/source/Source;Ljava/lang/Boolean;)V
            areturn
        end local 3 // java.lang.Boolean runInitAfterExec
        end local 2 // com.oracle.truffle.api.source.Source initSource
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    9     1                 env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    9     2          initSource  Lcom/oracle/truffle/api/source/Source;
            2    9     3    runInitAfterExec  Ljava/lang/Boolean;
            4    7     4  initPolyglotSource  Lorg/graalvm/polyglot/Source;
    MethodParameters:
      Name  Flags
      env   

  public static com.oracle.truffle.api.CallTarget getLastParsedCalltarget();
    descriptor: ()Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 251
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getCurrentLanguage:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.lastParsed:Lcom/oracle/truffle/api/CallTarget;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void initializeContext(com.oracle.truffle.api.instrumentation.test.InstrumentContext);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=10, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
         0: .line 256
            aload 0 /* this */
            aload 1 /* context */
            invokespecial com.oracle.truffle.api.TruffleLanguage.initializeContext:(Ljava/lang/Object;)V
         1: .line 257
            aload 1 /* context */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.initSource:Lcom/oracle/truffle/api/source/Source;
            astore 2 /* code */
        start local 2 // com.oracle.truffle.api.source.Source code
         2: .line 258
            aload 2 /* code */
            ifnull 9
         3: .line 259
            aload 2 /* code */
            iconst_0
            aload 2 /* code */
            invokevirtual com.oracle.truffle.api.source.Source.getLength:()I
            invokevirtual com.oracle.truffle.api.source.Source.createSection:(II)Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* outer */
        start local 3 // com.oracle.truffle.api.source.SourceSection outer
         4: .line 260
            aload 0 /* this */
            aload 2 /* code */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.parse:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            astore 4 /* node */
        start local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
         5: .line 261
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationTestRootNode
            dup
            aload 0 /* this */
            ldc ""
            aload 3 /* outer */
            iconst_1
            anewarray com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode
            dup
            iconst_0
            aload 4 /* node */
            aastore
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationTestRootNode.<init>:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;Ljava/lang/String;Lcom/oracle/truffle/api/source/SourceSection;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            astore 5 /* rct */
        start local 5 // com.oracle.truffle.api.RootCallTarget rct
         6: .line 262
            aload 5 /* rct */
            iconst_0
            anewarray java.lang.Object
            invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 263
            aload 1 /* context */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.runInitAfterExec:Z
            ifeq 9
         8: .line 264
            aload 1 /* context */
            aload 5 /* rct */
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.afterTarget:Lcom/oracle/truffle/api/RootCallTarget;
        end local 5 // com.oracle.truffle.api.RootCallTarget rct
        end local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
        end local 3 // com.oracle.truffle.api.source.SourceSection outer
         9: .line 267
      StackMap locals: com.oracle.truffle.api.source.Source
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.api.source.Source code
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0   10     1  context  Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
            2   10     2     code  Lcom/oracle/truffle/api/source/Source;
            4    9     3    outer  Lcom/oracle/truffle/api/source/SourceSection;
            5    9     4     node  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            6    9     5      rct  Lcom/oracle/truffle/api/RootCallTarget;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      context  

  protected boolean isThreadAccessAllowed(java.lang.Thread, boolean);
    descriptor: (Ljava/lang/Thread;Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // java.lang.Thread thread
        start local 2 // boolean singleThreaded
         0: .line 271
            iconst_1
            ireturn
        end local 2 // boolean singleThreaded
        end local 1 // java.lang.Thread thread
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    1     1          thread  Ljava/lang/Thread;
            0    1     2  singleThreaded  Z
    MethodParameters:
                Name  Flags
      thread          
      singleThreaded  

  protected com.oracle.truffle.api.CallTarget parse(com.oracle.truffle.api.TruffleLanguage$ParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=12, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
         0: .line 276
            aload 1 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ParsingRequest.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 2 /* code */
        start local 2 // com.oracle.truffle.api.source.Source code
         1: .line 277
            aload 2 /* code */
            iconst_0
            aload 2 /* code */
            invokevirtual com.oracle.truffle.api.source.Source.getLength:()I
            invokevirtual com.oracle.truffle.api.source.Source.createSection:(II)Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* outer */
        start local 3 // com.oracle.truffle.api.source.SourceSection outer
         2: .line 280
            aload 0 /* this */
            aload 2 /* code */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.parse:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            astore 4 /* node */
        start local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
         3: .line 281
            goto 6
        end local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage com.oracle.truffle.api.TruffleLanguage$ParsingRequest com.oracle.truffle.api.source.Source com.oracle.truffle.api.source.SourceSection
      StackMap stack: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError
         4: astore 5 /* e */
        start local 5 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError e
         5: .line 282
            new java.io.IOException
            dup
            aload 5 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError e
        start local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
         6: .line 284
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getCurrentContext:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentContext
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.afterTarget:Lcom/oracle/truffle/api/RootCallTarget;
            astore 5 /* afterTarget */
        start local 5 // com.oracle.truffle.api.RootCallTarget afterTarget
         7: .line 285
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationTestRootNode
            dup
            aload 0 /* this */
            ldc ""
            aload 3 /* outer */
            aload 5 /* afterTarget */
            iconst_1
            anewarray com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode
            dup
            iconst_0
            aload 4 /* node */
            aastore
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationTestRootNode.<init>:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;Ljava/lang/String;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/RootCallTarget;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            dup_x1
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.lastParsed:Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 5 // com.oracle.truffle.api.RootCallTarget afterTarget
        end local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
        end local 3 // com.oracle.truffle.api.source.SourceSection outer
        end local 2 // com.oracle.truffle.api.source.Source code
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    8     1      request  Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;
            1    8     2         code  Lcom/oracle/truffle/api/source/Source;
            2    8     3        outer  Lcom/oracle/truffle/api/source/SourceSection;
            3    4     4         node  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            6    8     4         node  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            5    6     5            e  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$LanguageError;
            7    8     5  afterTarget  Lcom/oracle/truffle/api/RootCallTarget;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      request  

  public static com.oracle.truffle.api.nodes.RootNode parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=5, args_size=1
        start local 0 // java.lang.String code
         0: .line 289
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getCurrentLanguage:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
            astore 1 /* testLanguage */
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage testLanguage
         1: .line 290
            ldc "instrumentation-test-language"
            aload 0 /* code */
            ldc "test"
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            astore 2 /* source */
        start local 2 // com.oracle.truffle.api.source.Source source
         2: .line 291
            aload 2 /* source */
            iconst_0
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getLength:()I
            invokevirtual com.oracle.truffle.api.source.Source.createSection:(II)Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* outer */
        start local 3 // com.oracle.truffle.api.source.SourceSection outer
         3: .line 292
            aload 1 /* testLanguage */
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.parse:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            astore 4 /* base */
        start local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode base
         4: .line 293
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationTestRootNode
            dup
            aload 1 /* testLanguage */
            ldc ""
            aload 3 /* outer */
            iconst_1
            anewarray com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode
            dup
            iconst_0
            aload 4 /* base */
            aastore
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationTestRootNode.<init>:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;Ljava/lang/String;Lcom/oracle/truffle/api/source/SourceSection;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
            areturn
        end local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode base
        end local 3 // com.oracle.truffle.api.source.SourceSection outer
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage testLanguage
        end local 0 // java.lang.String code
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          code  Ljava/lang/String;
            1    5     1  testLanguage  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            2    5     2        source  Lcom/oracle/truffle/api/source/Source;
            3    5     3         outer  Lcom/oracle/truffle/api/source/SourceSection;
            4    5     4          base  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
    MethodParameters:
      Name  Flags
      code  

  protected com.oracle.truffle.api.nodes.ExecutableNode parse(com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
         0: .line 298
            aload 1 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 2 /* code */
        start local 2 // com.oracle.truffle.api.source.Source code
         1: .line 299
            aload 1 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
            astore 3 /* location */
        start local 3 // com.oracle.truffle.api.nodes.Node location
         2: .line 300
            aload 3 /* location */
            ifnonnull 4
         3: .line 301
            new java.lang.IllegalArgumentException
            dup
            ldc "Location must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 305
      StackMap locals: com.oracle.truffle.api.source.Source com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 0 /* this */
            aload 2 /* code */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.parse:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            astore 4 /* node */
        start local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
         5: .line 306
            goto 8
        end local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError
         6: astore 5 /* e */
        start local 5 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError e
         7: .line 307
            new java.io.IOException
            dup
            aload 5 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError e
        start local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
         8: .line 309
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode
      StackMap stack:
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InlineExecutableNode
            dup
            aload 0 /* this */
            aload 4 /* node */
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InlineExecutableNode.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
            areturn
        end local 4 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode node
        end local 3 // com.oracle.truffle.api.nodes.Node location
        end local 2 // com.oracle.truffle.api.source.Source code
        end local 1 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    9     1   request  Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;
            1    9     2      code  Lcom/oracle/truffle/api/source/Source;
            2    9     3  location  Lcom/oracle/truffle/api/nodes/Node;
            5    6     4      node  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            8    9     4      node  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            7    8     5         e  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$LanguageError;
      Exception table:
        from    to  target  type
           4     5       6  Class com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      request  

  public static com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage current();
    descriptor: ()Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 313
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getCurrentLanguage:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.api.TruffleLanguage$Env currentEnv();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$Env;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 317
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getCurrentContext:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentContext
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected final com.oracle.truffle.api.nodes.ExecutableNode parseOriginal(com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
         0: .line 321
            aload 0 /* this */
            aload 1 /* request */
            invokespecial com.oracle.truffle.api.TruffleLanguage.parse:(Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    1     1  request  Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      request  

  public com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode parse(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.source.Source code
         0: .line 342
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Parser
            dup
            aload 0 /* this */
            aload 1 /* code */
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Parser.<init>:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;Lcom/oracle/truffle/api/source/Source;)V
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Parser.parse:()Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            areturn
        end local 1 // com.oracle.truffle.api.source.Source code
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    1     1  code  Lcom/oracle/truffle/api/source/Source;
    MethodParameters:
      Name  Flags
      code  

  private static void joinSpawnedThreads(com.oracle.truffle.api.instrumentation.test.InstrumentContext, boolean);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        start local 1 // boolean noInterrupt
         0: .line 1696
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* threads */
        start local 2 // java.util.List threads
         1: .line 1697
            aload 0 /* context */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.spawnedThreads:Ljava/util/Set;
            dup
            astore 3
            monitorenter
         2: .line 1698
            aload 0 /* context */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.spawnedThreads:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext int java.util.List java.util.Set top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 4 /* t */
        start local 4 // java.lang.Thread t
         4: .line 1699
            aload 4 /* t */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifeq 6
         5: .line 1700
            aload 2 /* threads */
            aload 4 /* t */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.Thread t
         6: .line 1698
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 1697
            aload 3
            monitorexit
         8: goto 11
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext int java.util.List java.util.Set
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 1704
      StackMap locals:
      StackMap stack:
            aload 2 /* threads */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 18
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext int java.util.List top java.util.Iterator
      StackMap stack:
        12: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 3 /* t */
        start local 3 // java.lang.Thread t
        13: .line 1706
            aload 3 /* t */
            invokevirtual java.lang.Thread.join:()V
        14: .line 1707
            goto 18
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext int java.util.List java.lang.Thread java.util.Iterator
      StackMap stack: java.lang.InterruptedException
        15: astore 5 /* ex */
        start local 5 // java.lang.InterruptedException ex
        16: .line 1708
            iload 1 /* noInterrupt */
            ifne 18
        17: .line 1709
            new java.lang.RuntimeException
            dup
            aload 5 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.InterruptedException ex
        end local 3 // java.lang.Thread t
        18: .line 1704
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext int java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        19: .line 1713
            aload 2 /* threads */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 0
        20: .line 1714
            return
        end local 2 // java.util.List threads
        end local 1 // boolean noInterrupt
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0      context  Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
            0   21     1  noInterrupt  Z
            1   21     2      threads  Ljava/util/List<Ljava/lang/Thread;>;
            4    6     4            t  Ljava/lang/Thread;
           13   18     3            t  Ljava/lang/Thread;
           16   18     5           ex  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any
          13    14      15  Class java.lang.InterruptedException
    MethodParameters:
             Name  Flags
      context      
      noInterrupt  

  private static java.lang.Object parseIdent(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String identifier
         0: .line 2367
            aload 0 /* identifier */
            ldc "infinity"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 2368
            ldc Infinity
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
         2: .line 2370
      StackMap locals:
      StackMap stack:
            aload 0 /* identifier */
            ldc "true"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 2371
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         4: .line 2372
      StackMap locals:
      StackMap stack:
            aload 0 /* identifier */
            ldc "false"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 2373
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         6: .line 2375
      StackMap locals:
      StackMap stack:
            aload 0 /* identifier */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 0 // java.lang.String identifier
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  identifier  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      identifier  

  protected java.lang.Object getScope(com.oracle.truffle.api.instrumentation.test.InstrumentContext);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
         0: .line 2787
            aload 1 /* context */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.callFunctions:Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$FunctionsObject;
            areturn
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    1     1  context  Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
    MethodParameters:
         Name  Flags
      context  

  protected java.lang.Object getLanguageView(com.oracle.truffle.api.instrumentation.test.InstrumentContext, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        start local 2 // java.lang.Object value
         0: .line 2792
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationLanguageView
            dup
            aload 2 /* value */
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationLanguageView.<init>:(Ljava/lang/Object;)V
            areturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    1     1  context  Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
            0    1     2    value  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      value    

  public static int getRootSourceSectionQueryCount();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 2796
            getstatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.rootSourceSectionQueryCount:I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String toString(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object object
         0: .line 3159
            aload 0 /* object */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  object  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
        Name  Flags
      object  

  protected void finalizeContext(com.oracle.truffle.api.instrumentation.test.InstrumentContext);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
         0: .line 3171
            aload 1 /* context */
            iconst_1
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.joinSpawnedThreads:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;Z)V
         1: .line 3172
            return
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    2     1  context  Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
    MethodParameters:
         Name  Flags
      context  

  protected void initializeThread(com.oracle.truffle.api.instrumentation.test.InstrumentContext, java.lang.Thread);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;Ljava/lang/Thread;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        start local 2 // java.lang.Thread thread
         0: .line 3176
            aload 2 /* thread */
            invokevirtual java.lang.Thread.getUncaughtExceptionHandler:()Ljava/lang/Thread$UncaughtExceptionHandler;
            astore 3 /* currentHandler */
        start local 3 // java.lang.Thread$UncaughtExceptionHandler currentHandler
         1: .line 3177
            aload 3 /* currentHandler */
            ifnull 3
            ldc "com.oracle.truffle.polyglot.PolyglotLanguageContext$PolyglotUncaughtExceptionHandler"
            aload 3 /* currentHandler */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 3178
            aload 2 /* thread */
            aload 1 /* context */
            invokedynamic uncaughtException(Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;)Ljava/lang/Thread$UncaughtExceptionHandler;
              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/Thread;Ljava/lang/Throwable;)V
                  com/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage.lambda$0(Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;Ljava/lang/Thread;Ljava/lang/Throwable;)V (6)
                  (Ljava/lang/Thread;Ljava/lang/Throwable;)V
            invokevirtual java.lang.Thread.setUncaughtExceptionHandler:(Ljava/lang/Thread$UncaughtExceptionHandler;)V
         3: .line 3205
      StackMap locals: java.lang.Thread$UncaughtExceptionHandler
      StackMap stack:
            return
        end local 3 // java.lang.Thread$UncaughtExceptionHandler currentHandler
        end local 2 // java.lang.Thread thread
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentContext context
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;
            0    4     1         context  Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
            0    4     2          thread  Ljava/lang/Thread;
            1    4     3  currentHandler  Ljava/lang/Thread$UncaughtExceptionHandler;
    MethodParameters:
         Name  Flags
      context  
      thread   

  protected java.lang.Object createContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.createContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void initializeThread(java.lang.Object, java.lang.Thread);
    descriptor: (Ljava/lang/Object;Ljava/lang/Thread;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentContext
            aload 2
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.initializeThread:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;Ljava/lang/Thread;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object getLanguageView(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentContext
            aload 2
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getLanguageView:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void initializeContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentContext
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.initializeContext:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  protected java.lang.Object getScope(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentContext
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getScope:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void finalizeContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentContext
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.finalizeContext:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int access$6(com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage;)I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getAsynchronousStackDepth:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.lang.Object access$7(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage.getCurrentContext:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$0(com.oracle.truffle.api.instrumentation.test.InstrumentContext, java.lang.Thread, java.lang.Throwable);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;Ljava/lang/Thread;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=7, args_size=3
        start local 1 // java.lang.Thread t
        start local 2 // java.lang.Throwable e
         0: .line 3179
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
            astore 3 /* interop */
        start local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
         1: .line 3181
            iconst_0
            istore 5 /* cancelled */
        start local 5 // boolean cancelled
         2: .line 3182
            aload 3 /* interop */
            aload 2 /* e */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isException:(Ljava/lang/Object;)Z
            ifeq 10
         3: .line 3184
            aload 3 /* interop */
            aload 2 /* e */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getExceptionType:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/ExceptionType;
            astore 6 /* exceptionType */
        start local 6 // com.oracle.truffle.api.interop.ExceptionType exceptionType
         4: .line 3185
            aload 6 /* exceptionType */
            getstatic com.oracle.truffle.api.interop.ExceptionType.INTERRUPT:Lcom/oracle/truffle/api/interop/ExceptionType;
            if_acmpne 5
            iconst_1
            goto 6
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext java.lang.Thread java.lang.Throwable com.oracle.truffle.api.interop.InteropLibrary top int com.oracle.truffle.api.interop.ExceptionType
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 4 /* interrupted */
        end local 6 // com.oracle.truffle.api.interop.ExceptionType exceptionType
        start local 4 // boolean interrupted
         7: .line 3186
            goto 16
        end local 4 // boolean interrupted
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext java.lang.Thread java.lang.Throwable com.oracle.truffle.api.interop.InteropLibrary top int
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
         8: astore 6 /* ume */
        start local 6 // com.oracle.truffle.api.interop.UnsupportedMessageException ume
         9: .line 3187
            aload 6 /* ume */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // com.oracle.truffle.api.interop.UnsupportedMessageException ume
        10: .line 3190
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            ifnull 11
            aload 2 /* e */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            instanceof java.lang.InterruptedException
            ifeq 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 4 /* interrupted */
        start local 4 // boolean interrupted
        13: .line 3191
            aload 2 /* e */
            ifnull 14
            ldc "com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution"
            aload 2 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
            iconst_1
            goto 15
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext java.lang.Thread java.lang.Throwable com.oracle.truffle.api.interop.InteropLibrary int int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 5 /* cancelled */
        16: .line 3193
      StackMap locals:
      StackMap stack:
            iload 4 /* interrupted */
            ifne 22
            iload 5 /* cancelled */
            ifne 22
        17: .line 3194
            aload 0
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 6 /* currentEnv */
        start local 6 // com.oracle.truffle.api.TruffleLanguage$Env currentEnv
        18: .line 3196
            aload 2 /* e */
            new java.io.PrintStream
            dup
            aload 6 /* currentEnv */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.err:()Ljava/io/OutputStream;
            invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
        19: .line 3197
            goto 22
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext java.lang.Thread java.lang.Throwable com.oracle.truffle.api.interop.InteropLibrary int int com.oracle.truffle.api.TruffleLanguage$Env
      StackMap stack: java.lang.Throwable
        20: pop
        21: .line 3200
            aload 2 /* e */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        end local 6 // com.oracle.truffle.api.TruffleLanguage$Env currentEnv
        end local 5 // boolean cancelled
        end local 4 // boolean interrupted
        end local 3 // com.oracle.truffle.api.interop.InteropLibrary interop
        22: .line 3203
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentContext java.lang.Thread java.lang.Throwable
      StackMap stack:
            return
        end local 2 // java.lang.Throwable e
        end local 1 // java.lang.Thread t
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     1              t  Ljava/lang/Thread;
            0   23     2              e  Ljava/lang/Throwable;
            1   22     3        interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
            7    8     4    interrupted  Z
           13   22     4    interrupted  Z
            2   22     5      cancelled  Z
            4    7     6  exceptionType  Lcom/oracle/truffle/api/interop/ExceptionType;
            9   10     6            ume  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
           18   22     6     currentEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
      Exception table:
        from    to  target  type
           3     7       8  Class com.oracle.truffle.api.interop.UnsupportedMessageException
          18    19      20  Class java.lang.Throwable
}
Signature: Lcom/oracle/truffle/api/TruffleLanguage<Lcom/oracle/truffle/api/instrumentation/test/InstrumentContext;>;
SourceFile: "InstrumentationTestLanguage.java"
NestMembers:
  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$AllocatedObject  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$AllocationNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ArgumentNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$AsyncStackInfo  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNoSourceSectionNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockTag  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CallNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CallWithNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CatchNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantTag  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ContextNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$DefineNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$DefineTag  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ExpressionNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Function  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionBodyNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionRootNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionsObject  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InlineExecutableNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InnerFrameNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationLanguageView  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationMetaObject  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationTestRootNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode$VariablesWithThis  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode$VariablesWithThis$MembersWithReceiver  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InternalNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InvalidateNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$JoinNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$KeysObject  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LoopTag  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializeChildExpressionNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializeChildStatementAndExpressionNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializeChildStatementAndExpressionSeparatelyNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializeChildStatementNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildExpressionMaterializeChildStatementNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildExpressionNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildStatementAndExpressionNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildStatementAndExpressionSeparatelyNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildStatementMaterializeChildExpressionNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildStatementNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Null  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Parser  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$PrintNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$PrintNode$Output  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ReadVariableNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$RecursiveCallNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SleepNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SpawnNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SpawnNode$1  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SpawnNode$2  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SpecialServiceImpl  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$StatementNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThrowNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThrowNode$TestLanguageException  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TryCatchNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TryNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TryNode$CatchesInfoObject  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TypeSpecializedNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$UnexpectedResultNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode  com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode$LoopConditionNode
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final ContextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy of com.oracle.truffle.api.TruffleLanguage
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public final InlineParsingRequest = com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest of com.oracle.truffle.api.TruffleLanguage
  public final ParsingRequest = com.oracle.truffle.api.TruffleLanguage$ParsingRequest of com.oracle.truffle.api.TruffleLanguage
  public abstract Registration = com.oracle.truffle.api.TruffleLanguage$Registration of com.oracle.truffle.api.TruffleLanguage
  public final CallTag = com.oracle.truffle.api.instrumentation.StandardTags$CallTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final ExpressionTag = com.oracle.truffle.api.instrumentation.StandardTags$ExpressionTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final RootBodyTag = com.oracle.truffle.api.instrumentation.StandardTags$RootBodyTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final TryBlockTag = com.oracle.truffle.api.instrumentation.StandardTags$TryBlockTag of com.oracle.truffle.api.instrumentation.StandardTags
  AllocatedObject = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$AllocatedObject of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private AllocationNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$AllocationNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private ArgumentNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ArgumentNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final AsyncStackInfo = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$AsyncStackInfo of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public abstract BaseNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  BlockNoSourceSectionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNoSourceSectionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  BlockNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  BlockTag = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockTag of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private CallNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CallNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private CallWithNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CallWithNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  CatchNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$CatchNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private ConstantNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  ConstantTag = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantTag of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  ContextNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ContextNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  DefineNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$DefineNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  DefineTag = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$DefineTag of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  ExpressionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ExpressionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  final Function = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Function of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final FunctionBodyNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionBodyNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final FunctionRootNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionRootNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  FunctionsObject = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$FunctionsObject of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private InlineExecutableNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InlineExecutableNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private InnerFrameNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InnerFrameNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  final InstrumentationLanguageView = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationLanguageView of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  final InstrumentationMetaObject = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationMetaObject of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private InstrumentationTestRootNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentationTestRootNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public abstract InstrumentedNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InstrumentedNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  final InternalNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InternalNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private InvalidateNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$InvalidateNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private JoinNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$JoinNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  KeysObject = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$KeysObject of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private LanguageError = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LanguageError of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  LoopTag = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$LoopTag of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializeChildExpressionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializeChildExpressionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializeChildStatementAndExpressionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializeChildStatementAndExpressionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializeChildStatementAndExpressionSeparatelyNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializeChildStatementAndExpressionSeparatelyNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializeChildStatementNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializeChildStatementNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializedChildExpressionMaterializeChildStatementNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildExpressionMaterializeChildStatementNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializedChildExpressionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildExpressionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializedChildStatementAndExpressionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildStatementAndExpressionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializedChildStatementAndExpressionSeparatelyNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildStatementAndExpressionSeparatelyNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializedChildStatementMaterializeChildExpressionNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildStatementMaterializeChildExpressionNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MaterializedChildStatementNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MaterializedChildStatementNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MultipleNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public final Null = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Null of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final Parser = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$Parser of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  PrintNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$PrintNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final ReadVariableNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ReadVariableNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private RecursiveCallNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$RecursiveCallNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private SleepNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SleepNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private SpawnNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SpawnNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public final SpecialServiceImpl = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$SpecialServiceImpl of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  StatementNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$StatementNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final ThisArg = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThisArg of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public ThrowNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ThrowNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  TryCatchNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TryCatchNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  TryNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TryNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public TypeSpecializedNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$TypeSpecializedNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private UnexpectedResultNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$UnexpectedResultNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  private final VariableNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$VariableNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  final WhileLoopNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$WhileLoopNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
  public abstract UncaughtExceptionHandler = java.lang.Thread$UncaughtExceptionHandler of java.lang.Thread
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.TruffleLanguage$Registration(id = "instrumentation-test-language", name = "Instrumentation Test Language", version = "2.0", services = {Lcom/oracle/truffle/api/instrumentation/test/SpecialService;}, contextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy.SHARED:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;)
      com.oracle.truffle.api.instrumentation.ProvidedTags(value = {Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;, Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$DefineTag;, Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$LoopTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$CallTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$TryBlockTag;, Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BlockTag;, Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$ConstantTag;})