public class com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  super_class: java.lang.Object
{
  static final com.oracle.truffle.api.interop.InteropLibrary INTEROP;
    descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 103
            ldc Lcom/oracle/truffle/api/interop/InteropLibrary;
            invokestatic com.oracle.truffle.api.library.LibraryFactory.resolve:(Ljava/lang/Class;)Lcom/oracle/truffle/api/library/LibraryFactory;
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            putstatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            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.sl.test.SLInstrumentLegacyTest this
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;

  public void testLexicalScopes();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=1
        start local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
         0: .line 107
            ldc "function test(n) {\n  a = 1;\n  if (a > 0) {\n    b = 10;\n    println(b);\n  }\n  if (a == 1) {\n    b = 20;\n    a = 0;\n    c = 1;\n    if (b > 0) {\n      a = 4;\n      b = 5;\n      c = 6;\n      d = 7;\n      println(d);\n    }\n  }\n  println(b);\n  println(a);\n}\nfunction main() {\n  test(\"n_n\");\n}"
            astore 1 /* code */
        start local 1 // java.lang.String code
         1: .line 131
            ldc "sl"
            aload 1 /* code */
            ldc "testing"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 2 /* source */
        start local 2 // org.graalvm.polyglot.Source source
         2: .line 133
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
            new com.oracle.truffle.sl.test.SLInstrumentLegacyTest$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.sl.test.SLInstrumentLegacyTest$1.<init>:(Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;)V
            invokevirtual org.graalvm.polyglot.Engine$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
         4: .line 138
            invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
         5: .line 133
            astore 6 /* engine */
        start local 6 // org.graalvm.polyglot.Engine engine
         6: .line 139
            aload 6 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "testEnvironmentHandlerLegacyInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            astore 7 /* envInstr */
        start local 7 // org.graalvm.polyglot.Instrument envInstr
         7: .line 140
            aload 7 /* envInstr */
            ldc Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$Environment;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.sl.test.SLInstrumentLegacyTest$Environment
            getfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$Environment.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            astore 8 /* env */
        start local 8 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
         8: .line 141
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* throwables */
        start local 3 // java.util.List throwables
         9: .line 142
            aload 8 /* env */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Source.getLineCount:()I
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.lineIn:(II)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            new com.oracle.truffle.sl.test.SLInstrumentLegacyTest$2
            dup
            aload 0 /* this */
            aload 8 /* env */
            aload 3 /* throwables */
            invokespecial com.oracle.truffle.sl.test.SLInstrumentLegacyTest$2.<init>:(Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Ljava/util/List;)V
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
        10: .line 170
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 6 /* engine */
            invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
        end local 8 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
        end local 7 // org.graalvm.polyglot.Instrument envInstr
        11: .line 171
            aload 6 /* engine */
            ifnull 17
            aload 6 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
            goto 17
        end local 3 // java.util.List throwables
      StackMap locals: com.oracle.truffle.sl.test.SLInstrumentLegacyTest java.lang.String org.graalvm.polyglot.Source top java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 6 /* engine */
            ifnull 13
            aload 6 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.close:()V
        end local 6 // org.graalvm.polyglot.Engine engine
      StackMap locals:
      StackMap stack:
        13: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 5
            aload 4
            ifnonnull 15
            aload 5
            astore 4
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4
            aload 5
            if_acmpeq 16
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 4
            athrow
        start local 3 // java.util.List throwables
        17: .line 172
      StackMap locals: com.oracle.truffle.sl.test.SLInstrumentLegacyTest java.lang.String org.graalvm.polyglot.Source java.util.List
      StackMap stack:
            aload 3 /* throwables */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aload 3 /* throwables */
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        18: .line 173
            return
        end local 3 // java.util.List throwables
        end local 2 // org.graalvm.polyglot.Source source
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;
            1   19     1        code  Ljava/lang/String;
            2   19     2      source  Lorg/graalvm/polyglot/Source;
            9   12     3  throwables  Ljava/util/List<Ljava/lang/Throwable;>;
           17   19     3  throwables  Ljava/util/List<Ljava/lang/Throwable;>;
            6   13     6      engine  Lorg/graalvm/polyglot/Engine;
            7   11     7    envInstr  Lorg/graalvm/polyglot/Instrument;
            8   11     8         env  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
      Exception table:
        from    to  target  type
           6    11      12  any
           3    14      14  any
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static void verifyLexicalScopes(java.lang.Iterable<com.oracle.truffle.api.Scope>, java.lang.Iterable<com.oracle.truffle.api.Scope>, int, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Ljava/lang/Iterable;Ljava/lang/Iterable;ILcom/oracle/truffle/api/frame/MaterializedFrame;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // java.lang.Iterable lexicalScopes
        start local 1 // java.lang.Iterable dynamicScopes
        start local 2 // int line
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
         0: .line 177
            iconst_0
            istore 4 /* depth */
        start local 4 // int depth
         1: .line 178
            iload 2 /* line */
            tableswitch { // 1 - 23
                    1: 2
                    2: 3
                    3: 25
                    4: 50
                    5: 84
                    6: 265
                    7: 25
                    8: 50
                    9: 84
                   10: 84
                   11: 124
                   12: 150
                   13: 150
                   14: 150
                   15: 150
                   16: 201
                   17: 265
                   18: 265
                   19: 25
                   20: 25
                   21: 265
                   22: 243
                   23: 243
              default: 265
          }
         2: .line 180
      StackMap locals: int
      StackMap stack:
            goto 266
         3: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* lexicalScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
         5: .line 184
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
         6: .line 185
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* arguments */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
         7: .line 186
            aload 7 /* arguments */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
         8: .line 187
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* variables */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject variables
         9: .line 188
            aload 8 /* variables */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        10: .line 189
            iinc 4 /* depth */ 1
        end local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        end local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 5 // com.oracle.truffle.api.Scope ls
        11: .line 182
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        12: .line 191
            ldc "LexicalScope depth"
            lconst_1
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        13: .line 192
            iconst_0
            istore 4 /* depth */
        14: .line 193
            aload 1 /* dynamicScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals:
      StackMap stack:
        15: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
        16: .line 195
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
        17: .line 196
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* arguments */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        18: .line 197
            aload 7 /* arguments */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        19: .line 198
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* variables */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        20: .line 199
            aload 8 /* variables */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        21: .line 200
            iinc 4 /* depth */ 1
        end local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        end local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 5 // com.oracle.truffle.api.Scope ls
        22: .line 193
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        23: .line 202
            ldc "DynamicScope depth"
            lconst_1
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        24: .line 203
            goto 266
        25: .line 208
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int
      StackMap stack:
            aload 0 /* lexicalScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 33
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
        26: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
        27: .line 209
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
        28: .line 210
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* arguments */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        29: .line 211
            aload 7 /* arguments */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        30: .line 212
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* variables */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        31: .line 213
            aload 8 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        32: .line 214
            iinc 4 /* depth */ 1
        end local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        end local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 5 // com.oracle.truffle.api.Scope ls
        33: .line 208
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        34: .line 216
            ldc "LexicalScope depth"
            lconst_1
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        35: .line 217
            iconst_0
            istore 4 /* depth */
        36: .line 218
            aload 1 /* dynamicScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 47
      StackMap locals:
      StackMap stack:
        37: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
        38: .line 219
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
        39: .line 220
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* arguments */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        40: .line 221
            aload 7 /* arguments */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        41: .line 222
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* variables */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        42: .line 223
            iload 2 /* line */
            bipush 19
            if_icmpge 43
            lconst_1
            goto 44
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator com.oracle.truffle.api.interop.TruffleObject com.oracle.truffle.api.interop.TruffleObject
      StackMap stack:
        43: ldc 4
      StackMap locals:
      StackMap stack: long
        44: lstore 9 /* aVal */
        start local 9 // long aVal
        45: .line 224
            aload 8 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            lload 9 /* aVal */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        46: .line 225
            iinc 4 /* depth */ 1
        end local 9 // long aVal
        end local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        end local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 5 // com.oracle.truffle.api.Scope ls
        47: .line 218
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        48: .line 227
            ldc "DynamicScope depth"
            lconst_1
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        49: .line 228
            goto 266
        50: .line 231
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int
      StackMap stack:
            aload 0 /* lexicalScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 64
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
        51: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
        52: .line 232
            iload 4 /* depth */
            ifne 58
        53: .line 233
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
        54: .line 234
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        55: .line 235
            aload 7 /* variables */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        56: .line 236
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        57: .line 237
            goto 63
        58: .line 238
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
        59: .line 239
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        60: .line 240
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        61: .line 241
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* arguments */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject arguments
        62: .line 242
            aload 8 /* arguments */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        end local 8 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        63: .line 244
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
        64: .line 231
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 51
        65: .line 246
            ldc "LexicalScope depth"
            ldc 2
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        66: .line 247
            iconst_0
            istore 4 /* depth */
        67: .line 248
            aload 1 /* dynamicScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 81
      StackMap locals:
      StackMap stack:
        68: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
        69: .line 249
            iload 4 /* depth */
            ifne 75
        70: .line 250
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
        71: .line 251
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        72: .line 252
            aload 7 /* variables */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        73: .line 253
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        74: .line 254
            goto 80
        75: .line 255
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
        76: .line 256
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        77: .line 257
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            lconst_1
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        78: .line 258
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* arguments */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject arguments
        79: .line 259
            aload 8 /* arguments */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        end local 8 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        80: .line 261
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
        81: .line 248
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 68
        82: .line 263
            ldc "DynamicScope depth"
            ldc 2
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        83: .line 264
            goto 266
        84: .line 268
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int
      StackMap stack:
            aload 0 /* lexicalScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 98
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
        85: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
        86: .line 269
            iload 4 /* depth */
            ifne 92
        87: .line 270
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
        88: .line 271
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        89: .line 272
            aload 7 /* variables */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "b"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        90: .line 273
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        91: .line 274
            goto 97
        92: .line 275
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
        93: .line 276
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        94: .line 277
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        95: .line 278
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* arguments */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject arguments
        96: .line 279
            aload 8 /* arguments */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        end local 8 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
        97: .line 281
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
        98: .line 268
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 85
        99: .line 283
            ldc "LexicalScope depth"
            ldc 2
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       100: .line 284
            iconst_0
            istore 4 /* depth */
       101: .line 285
            aload 1 /* dynamicScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 121
      StackMap locals:
      StackMap stack:
       102: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       103: .line 286
            iload 4 /* depth */
            ifne 112
       104: .line 287
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       105: .line 288
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       106: .line 289
            iload 2 /* line */
            iconst_5
            if_icmpne 107
            ldc 10
            goto 108
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator com.oracle.truffle.api.interop.TruffleObject
      StackMap stack:
       107: ldc 20
      StackMap locals:
      StackMap stack: long
       108: lstore 8 /* bVal */
        start local 8 // long bVal
       109: .line 290
            aload 7 /* variables */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "b"
            aastore
            dup
            iconst_1
            lload 8 /* bVal */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       110: .line 291
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 8 // long bVal
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       111: .line 292
            goto 120
       112: .line 293
      StackMap locals:
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       113: .line 294
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       114: .line 295
            iload 2 /* line */
            bipush 10
            if_icmpne 115
            lconst_0
            goto 116
      StackMap locals: com.oracle.truffle.api.interop.TruffleObject
      StackMap stack:
       115: lconst_1
      StackMap locals:
      StackMap stack: long
       116: lstore 8 /* aVal */
        start local 8 // long aVal
       117: .line 296
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            lload 8 /* aVal */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       118: .line 297
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 10 /* arguments */
        start local 10 // com.oracle.truffle.api.interop.TruffleObject arguments
       119: .line 298
            aload 10 /* arguments */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        end local 10 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 8 // long aVal
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       120: .line 300
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
       121: .line 285
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 102
       122: .line 302
            ldc "DynamicScope depth"
            ldc 2
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       123: .line 303
            goto 266
       124: .line 305
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int
      StackMap stack:
            aload 0 /* lexicalScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 134
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
       125: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       126: .line 306
            iload 4 /* depth */
            ifne 132
       127: .line 307
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       128: .line 308
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       129: .line 309
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "b"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            dup
            iconst_2
            ldc "c"
            aastore
            dup
            iconst_3
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       130: .line 310
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       131: .line 311
            goto 133
       132: .line 312
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       133: .line 314
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
       134: .line 305
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 125
       135: .line 316
            ldc "LexicalScope depth"
            ldc 2
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       136: .line 317
            iconst_0
            istore 4 /* depth */
       137: .line 318
            aload 1 /* dynamicScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 147
      StackMap locals:
      StackMap stack:
       138: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       139: .line 319
            iload 4 /* depth */
            ifne 145
       140: .line 320
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       141: .line 321
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       142: .line 322
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "b"
            aastore
            dup
            iconst_1
            ldc 20
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc "c"
            aastore
            dup
            iconst_3
            lconst_1
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       143: .line 323
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       144: .line 324
            goto 146
       145: .line 325
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       146: .line 327
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
       147: .line 318
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 138
       148: .line 329
            ldc "DynamicScope depth"
            ldc 2
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       149: .line 330
            goto 266
       150: .line 335
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int
      StackMap stack:
            aload 0 /* lexicalScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 168
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
       151: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       152: .line 336
            iload 4 /* depth */
            ifne 158
       153: .line 337
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       154: .line 338
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       155: .line 339
            aload 7 /* variables */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       156: .line 340
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       157: .line 341
            goto 167
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
       158: iload 4 /* depth */
            iconst_1
            if_icmpne 164
       159: .line 342
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       160: .line 343
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       161: .line 344
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "b"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            dup
            iconst_2
            ldc "c"
            aastore
            dup
            iconst_3
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       162: .line 345
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       163: .line 346
            goto 167
       164: .line 347
      StackMap locals:
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       165: .line 348
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       166: .line 349
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       167: .line 351
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
       168: .line 335
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 151
       169: .line 353
            ldc "LexicalScope depth"
            ldc 3
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       170: .line 354
            iconst_0
            istore 4 /* depth */
       171: .line 355
            aload 1 /* dynamicScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 198
      StackMap locals:
      StackMap stack:
       172: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       173: .line 356
            iload 4 /* depth */
            ifne 179
       174: .line 357
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       175: .line 358
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       176: .line 359
            aload 7 /* variables */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       177: .line 360
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       178: .line 361
            goto 197
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
       179: iload 4 /* depth */
            iconst_1
            if_icmpne 191
       180: .line 362
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       181: .line 363
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       182: .line 364
            iload 2 /* line */
            bipush 14
            if_icmpge 183
            ldc 20
            goto 184
      StackMap locals: com.oracle.truffle.api.interop.TruffleObject
      StackMap stack:
       183: ldc 5
      StackMap locals:
      StackMap stack: long
       184: lstore 8 /* bVal */
        start local 8 // long bVal
       185: .line 365
            iload 2 /* line */
            bipush 15
            if_icmpge 186
            lconst_1
            goto 187
      StackMap locals: long
      StackMap stack:
       186: ldc 6
      StackMap locals:
      StackMap stack: long
       187: lstore 10 /* cVal */
        start local 10 // long cVal
       188: .line 366
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "b"
            aastore
            dup
            iconst_1
            lload 8 /* bVal */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc "c"
            aastore
            dup
            iconst_3
            lload 10 /* cVal */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       189: .line 367
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 10 // long cVal
        end local 8 // long bVal
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       190: .line 368
            goto 197
       191: .line 369
      StackMap locals:
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       192: .line 370
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       193: .line 371
            iload 2 /* line */
            bipush 12
            if_icmpne 194
            lconst_0
            goto 195
      StackMap locals: com.oracle.truffle.api.interop.TruffleObject
      StackMap stack:
       194: ldc 4
      StackMap locals:
      StackMap stack: long
       195: lstore 8 /* aVal */
        start local 8 // long aVal
       196: .line 372
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            lload 8 /* aVal */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        end local 8 // long aVal
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       197: .line 374
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
       198: .line 355
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 172
       199: .line 376
            ldc "DynamicScope depth"
            ldc 3
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       200: .line 377
            goto 266
       201: .line 379
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int
      StackMap stack:
            aload 0 /* lexicalScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 219
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
       202: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       203: .line 380
            iload 4 /* depth */
            ifne 209
       204: .line 381
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       205: .line 382
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       206: .line 383
            aload 7 /* variables */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "d"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       207: .line 384
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       208: .line 385
            goto 218
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
       209: iload 4 /* depth */
            iconst_1
            if_icmpne 215
       210: .line 386
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       211: .line 387
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       212: .line 388
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "b"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            dup
            iconst_2
            ldc "c"
            aastore
            dup
            iconst_3
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       213: .line 389
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       214: .line 390
            goto 218
       215: .line 391
      StackMap locals:
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       216: .line 392
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       217: .line 393
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            aconst_null
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            aconst_null
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       218: .line 395
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
       219: .line 379
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 202
       220: .line 397
            ldc "LexicalScope depth"
            ldc 3
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       221: .line 398
            iconst_0
            istore 4 /* depth */
       222: .line 399
            aload 1 /* dynamicScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 240
      StackMap locals:
      StackMap stack:
       223: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       224: .line 400
            iload 4 /* depth */
            ifne 230
       225: .line 401
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       226: .line 402
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       227: .line 403
            aload 7 /* variables */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "d"
            aastore
            dup
            iconst_1
            ldc 7
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       228: .line 404
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       229: .line 405
            goto 239
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int com.oracle.truffle.api.Scope java.util.Iterator
      StackMap stack:
       230: iload 4 /* depth */
            iconst_1
            if_icmpne 236
       231: .line 406
            aload 5 /* ls */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkBlock:(Lcom/oracle/truffle/api/Scope;)V
       232: .line 407
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       233: .line 408
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "b"
            aastore
            dup
            iconst_1
            ldc 5
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc "c"
            aastore
            dup
            iconst_3
            ldc 6
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       234: .line 409
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       235: .line 410
            goto 239
       236: .line 411
      StackMap locals:
      StackMap stack:
            aload 5 /* ls */
            ldc "test"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       237: .line 412
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* variables */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       238: .line 413
            aload 7 /* variables */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "n"
            aastore
            dup
            iconst_1
            ldc "n_n"
            aastore
            dup
            iconst_2
            ldc "a"
            aastore
            dup
            iconst_3
            ldc 4
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
        end local 7 // com.oracle.truffle.api.interop.TruffleObject variables
       239: .line 415
      StackMap locals:
      StackMap stack:
            iinc 4 /* depth */ 1
        end local 5 // com.oracle.truffle.api.Scope ls
       240: .line 399
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 223
       241: .line 417
            ldc "DynamicScope depth"
            ldc 3
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       242: .line 418
            goto 266
       243: .line 421
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int
      StackMap stack:
            aload 0 /* lexicalScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 251
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int top java.util.Iterator
      StackMap stack:
       244: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       245: .line 422
            aload 5 /* ls */
            ldc "main"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       246: .line 423
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* arguments */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
       247: .line 424
            aload 7 /* arguments */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       248: .line 425
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* variables */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject variables
       249: .line 426
            aload 8 /* variables */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       250: .line 427
            iinc 4 /* depth */ 1
        end local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        end local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 5 // com.oracle.truffle.api.Scope ls
       251: .line 421
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 244
       252: .line 429
            ldc "LexicalScope depth"
            lconst_1
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       253: .line 430
            iconst_0
            istore 4 /* depth */
       254: .line 431
            aload 1 /* dynamicScopes */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 262
      StackMap locals:
      StackMap stack:
       255: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.Scope
            astore 5 /* ls */
        start local 5 // com.oracle.truffle.api.Scope ls
       256: .line 432
            aload 5 /* ls */
            ldc "main"
            aload 3 /* frame */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkRootNode:(Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
       257: .line 433
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getArguments:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 7 /* arguments */
        start local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
       258: .line 434
            aload 7 /* arguments */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       259: .line 435
            aload 5 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getVariables:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            astore 8 /* variables */
        start local 8 // com.oracle.truffle.api.interop.TruffleObject variables
       260: .line 436
            aload 8 /* variables */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.checkVars:(Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
       261: .line 437
            iinc 4 /* depth */ 1
        end local 8 // com.oracle.truffle.api.interop.TruffleObject variables
        end local 7 // com.oracle.truffle.api.interop.TruffleObject arguments
        end local 5 // com.oracle.truffle.api.Scope ls
       262: .line 431
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 255
       263: .line 439
            ldc "DynamicScope depth"
            lconst_1
            iload 4 /* depth */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
       264: .line 440
            goto 266
       265: .line 442
      StackMap locals: java.lang.Iterable java.lang.Iterable int com.oracle.truffle.api.frame.MaterializedFrame int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Untested line: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* line */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
       266: .line 445
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int depth
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 2 // int line
        end local 1 // java.lang.Iterable dynamicScopes
        end local 0 // java.lang.Iterable lexicalScopes
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  267     0  lexicalScopes  Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
            0  267     1  dynamicScopes  Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
            0  267     2           line  I
            0  267     3          frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            1  267     4          depth  I
            5   11     5             ls  Lcom/oracle/truffle/api/Scope;
            7   11     7      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
            9   11     8      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           16   22     5             ls  Lcom/oracle/truffle/api/Scope;
           18   22     7      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
           20   22     8      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           27   33     5             ls  Lcom/oracle/truffle/api/Scope;
           29   33     7      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
           31   33     8      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           38   47     5             ls  Lcom/oracle/truffle/api/Scope;
           40   47     7      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
           42   47     8      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           45   47     9           aVal  J
           52   64     5             ls  Lcom/oracle/truffle/api/Scope;
           55   57     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           60   63     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           62   63     8      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
           69   81     5             ls  Lcom/oracle/truffle/api/Scope;
           72   74     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           77   80     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           79   80     8      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
           86   98     5             ls  Lcom/oracle/truffle/api/Scope;
           89   91     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           94   97     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
           96   97     8      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
          103  121     5             ls  Lcom/oracle/truffle/api/Scope;
          106  111     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          109  111     8           bVal  J
          114  120     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          117  120     8           aVal  J
          119  120    10      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
          126  134     5             ls  Lcom/oracle/truffle/api/Scope;
          129  131     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          139  147     5             ls  Lcom/oracle/truffle/api/Scope;
          142  144     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          152  168     5             ls  Lcom/oracle/truffle/api/Scope;
          155  157     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          161  163     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          166  167     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          173  198     5             ls  Lcom/oracle/truffle/api/Scope;
          176  178     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          182  190     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          185  190     8           bVal  J
          188  190    10           cVal  J
          193  197     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          196  197     8           aVal  J
          203  219     5             ls  Lcom/oracle/truffle/api/Scope;
          206  208     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          212  214     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          217  218     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          224  240     5             ls  Lcom/oracle/truffle/api/Scope;
          227  229     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          233  235     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          238  239     7      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          245  251     5             ls  Lcom/oracle/truffle/api/Scope;
          247  251     7      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
          249  251     8      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
          256  262     5             ls  Lcom/oracle/truffle/api/Scope;
          258  262     7      arguments  Lcom/oracle/truffle/api/interop/TruffleObject;
          260  262     8      variables  Lcom/oracle/truffle/api/interop/TruffleObject;
    Signature: (Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;ILcom/oracle/truffle/api/frame/MaterializedFrame;)V
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      lexicalScopes  
      dynamicScopes  
      line           
      frame          

  private static void checkRootNode(com.oracle.truffle.api.Scope, java.lang.String, com.oracle.truffle.api.frame.MaterializedFrame);
    descriptor: (Lcom/oracle/truffle/api/Scope;Ljava/lang/String;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.Scope ls
        start local 1 // java.lang.String name
        start local 2 // com.oracle.truffle.api.frame.MaterializedFrame frame
         0: .line 448
            aload 1 /* name */
            aload 0 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getName:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 449
            aload 0 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getNode:()Lcom/oracle/truffle/api/nodes/Node;
            astore 3 /* node */
        start local 3 // com.oracle.truffle.api.nodes.Node node
         2: .line 450
            aload 3 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 3 /* node */
            instanceof com.oracle.truffle.api.nodes.RootNode
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         3: .line 451
            aload 1 /* name */
            aload 3 /* node */
            checkcast com.oracle.truffle.api.nodes.RootNode
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 452
            aload 2 /* frame */
            invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            aload 3 /* node */
            checkcast com.oracle.truffle.api.nodes.RootNode
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 453
            return
        end local 3 // com.oracle.truffle.api.nodes.Node node
        end local 2 // com.oracle.truffle.api.frame.MaterializedFrame frame
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.api.Scope ls
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0     ls  Lcom/oracle/truffle/api/Scope;
            0    6     1   name  Ljava/lang/String;
            0    6     2  frame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            2    6     3   node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
       Name  Flags
      ls     
      name   
      frame  

  private static void checkBlock(com.oracle.truffle.api.Scope);
    descriptor: (Lcom/oracle/truffle/api/Scope;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.Scope ls
         0: .line 456
            ldc "block"
            aload 0 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getName:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 458
            aload 0 /* ls */
            invokevirtual com.oracle.truffle.api.Scope.getNode:()Lcom/oracle/truffle/api/nodes/Node;
            astore 1 /* node */
        start local 1 // com.oracle.truffle.api.nodes.Node node
         2: .line 459
            aload 1 /* node */
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         3: .line 460
            aload 1 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* node */
            instanceof com.oracle.truffle.api.nodes.RootNode
            invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
         4: .line 461
            return
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.Scope ls
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    ls  Lcom/oracle/truffle/api/Scope;
            2    5     1  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      ls    

  private static boolean contains(com.oracle.truffle.api.interop.TruffleObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.interop.TruffleObject vars
        start local 1 // java.lang.String key
         0: .line 464
            getstatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* vars */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.api.interop.TruffleObject vars
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  vars  Lcom/oracle/truffle/api/interop/TruffleObject;
            0    1     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      vars  
      key   

  private static java.lang.Object read(com.oracle.truffle.api.interop.TruffleObject, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.interop.TruffleObject vars
        start local 1 // java.lang.String key
         0: .line 469
            getstatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* vars */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
         1: areturn
         2: .line 470
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.InteropException
            astore 2 /* e */
        start local 2 // com.oracle.truffle.api.interop.InteropException e
         3: .line 471
            aload 2 /* e */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // com.oracle.truffle.api.interop.InteropException e
        end local 1 // java.lang.String key
        end local 0 // com.oracle.truffle.api.interop.TruffleObject vars
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  vars  Lcom/oracle/truffle/api/interop/TruffleObject;
            0    4     1   key  Ljava/lang/String;
            3    4     2     e  Lcom/oracle/truffle/api/interop/InteropException;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.api.interop.UnknownIdentifierException
           0     1       2  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
      Name  Flags
      vars  
      key   

  private static boolean isNull(com.oracle.truffle.api.interop.TruffleObject);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.interop.TruffleObject vars
         0: .line 476
            getstatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* vars */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // com.oracle.truffle.api.interop.TruffleObject vars
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  vars  Lcom/oracle/truffle/api/interop/TruffleObject;
    MethodParameters:
      Name  Flags
      vars  

  private static int keySize(com.oracle.truffle.api.interop.TruffleObject);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.interop.TruffleObject vars
         0: .line 481
            getstatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            getstatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* vars */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            l2i
         1: ireturn
         2: .line 482
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 1 /* e */
        start local 1 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         3: .line 483
            aload 1 /* e */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // com.oracle.truffle.api.interop.UnsupportedMessageException e
        end local 0 // com.oracle.truffle.api.interop.TruffleObject vars
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  vars  Lcom/oracle/truffle/api/interop/TruffleObject;
            3    4     1     e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
      Name  Flags
      vars  

  private static void checkVars(com.oracle.truffle.api.interop.TruffleObject, java.lang.Object[]);
    descriptor: (Lcom/oracle/truffle/api/interop/TruffleObject;[Ljava/lang/Object;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.interop.TruffleObject vars
        start local 1 // java.lang.Object[] expected
         0: .line 488
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 10
         2: .line 489
      StackMap locals: int
      StackMap stack:
            aload 1 /* expected */
            iload 2 /* i */
            aaload
            checkcast java.lang.String
            astore 3 /* name */
        start local 3 // java.lang.String name
         3: .line 490
            aload 1 /* expected */
            iload 2 /* i */
            iconst_1
            iadd
            aaload
            astore 4 /* value */
        start local 4 // java.lang.Object value
         4: .line 491
            aload 3 /* name */
            aload 0 /* vars */
            aload 3 /* name */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.contains:(Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         5: .line 492
            aload 4 /* value */
            ifnull 8
         6: .line 493
            aload 3 /* name */
            aload 4 /* value */
            aload 0 /* vars */
            aload 3 /* name */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.read:(Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 494
            goto 9
         8: .line 495
      StackMap locals: java.lang.String java.lang.Object
      StackMap stack:
            aload 0 /* vars */
            aload 3 /* name */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.read:(Lcom/oracle/truffle/api/interop/TruffleObject;Ljava/lang/String;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.interop.TruffleObject
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.isNull:(Lcom/oracle/truffle/api/interop/TruffleObject;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        end local 4 // java.lang.Object value
        end local 3 // java.lang.String name
         9: .line 488
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 2
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 1 /* expected */
            arraylength
            if_icmplt 2
        end local 2 // int i
        11: .line 498
            aload 1 /* expected */
            arraylength
            iconst_2
            idiv
            i2l
            aload 0 /* vars */
            invokestatic com.oracle.truffle.sl.test.SLInstrumentLegacyTest.keySize:(Lcom/oracle/truffle/api/interop/TruffleObject;)I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        12: .line 499
            return
        end local 1 // java.lang.Object[] expected
        end local 0 // com.oracle.truffle.api.interop.TruffleObject vars
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      vars  Lcom/oracle/truffle/api/interop/TruffleObject;
            0   13     1  expected  [Ljava/lang/Object;
            1   11     2         i  I
            3    9     3      name  Ljava/lang/String;
            4    9     4     value  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      vars      
      expected  

  public void testOutput();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=18, args_size=1
        start local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
         0: .line 503
            ldc "function main() {\n  f = fac(5);\n  println(f);\n}\nfunction fac(n) {\n  println(n);\n  if (n <= 1) {\n    return 1;\n  }\n  return n * fac(n - 1);\n}\n"
            astore 1 /* code */
        start local 1 // java.lang.String code
         1: .line 514
            ldc "5\n4\n3\n2\n1\n120\n"
            astore 2 /* fullOutput */
        start local 2 // java.lang.String fullOutput
         2: .line 515
            ldc "[5, 4, 3, 2, 1, 120]"
            astore 3 /* fullLines */
        start local 3 // java.lang.String fullLines
         3: .line 517
            ldc "sl"
            aload 1 /* code */
            ldc "testing"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 4 /* source */
        start local 4 // org.graalvm.polyglot.Source source
         4: .line 518
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 5 /* engineOut */
        start local 5 // java.io.ByteArrayOutputStream engineOut
         5: .line 519
            invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
            aload 5 /* engineOut */
            invokevirtual org.graalvm.polyglot.Engine$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
            invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
            astore 6 /* engine */
        start local 6 // org.graalvm.polyglot.Engine engine
         6: .line 520
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 6 /* engine */
            invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 7 /* context */
        start local 7 // org.graalvm.polyglot.Context context
         7: .line 521
            aload 7 /* context */
            aload 4 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         8: .line 522
            aload 2 /* fullOutput */
            astore 8 /* engineOutput */
        start local 8 // java.lang.String engineOutput
         9: .line 523
            aload 8 /* engineOutput */
            aload 5 /* engineOut */
            invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 526
            aload 6 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "testEnvironmentHandlerLegacyInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            astore 9 /* outInstr */
        start local 9 // org.graalvm.polyglot.Instrument outInstr
        11: .line 527
            aload 9 /* outInstr */
            ldc Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$Environment;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.sl.test.SLInstrumentLegacyTest$Environment
            getfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$Environment.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            astore 10 /* env */
        start local 10 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
        12: .line 528
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 11 /* consumedOut */
        start local 11 // java.io.ByteArrayOutputStream consumedOut
        13: .line 529
            aload 10 /* env */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            aload 11 /* consumedOut */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachOutConsumer:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            astore 12 /* outputConsumerBinding */
        start local 12 // com.oracle.truffle.api.instrumentation.EventBinding outputConsumerBinding
        14: .line 530
            lconst_0
            aload 11 /* consumedOut */
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        15: .line 531
            aload 7 /* context */
            aload 4 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
        16: .line 532
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 11 /* consumedOut */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 13 /* fromOutReader */
        start local 13 // java.io.BufferedReader fromOutReader
        17: .line 533
            new java.lang.StringBuilder
            dup
            aload 8 /* engineOutput */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* fullOutput */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* engineOutput */
        18: .line 534
            aload 8 /* engineOutput */
            aload 5 /* engineOut */
            invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        19: .line 535
            aload 13 /* fromOutReader */
            invokevirtual java.io.BufferedReader.ready:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        20: .line 536
            aload 3 /* fullLines */
            aload 0 /* this */
            aload 13 /* fromOutReader */
            invokevirtual com.oracle.truffle.sl.test.SLInstrumentLegacyTest.readLinesList:(Ljava/io/BufferedReader;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        21: .line 539
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 14 /* consumedOut2 */
        start local 14 // java.io.ByteArrayOutputStream consumedOut2
        22: .line 540
            aload 10 /* env */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            aload 14 /* consumedOut2 */
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachOutConsumer:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            astore 15 /* outputConsumerBinding2 */
        start local 15 // com.oracle.truffle.api.instrumentation.EventBinding outputConsumerBinding2
        23: .line 541
            lconst_0
            aload 14 /* consumedOut2 */
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        24: .line 542
            aload 7 /* context */
            aload 4 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
        25: .line 543
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 11 /* consumedOut */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 13 /* fromOutReader */
        26: .line 544
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 14 /* consumedOut2 */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 16 /* fromOutReader2 */
        start local 16 // java.io.BufferedReader fromOutReader2
        27: .line 545
            new java.lang.StringBuilder
            dup
            aload 8 /* engineOutput */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* fullOutput */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* engineOutput */
        28: .line 546
            aload 8 /* engineOutput */
            aload 5 /* engineOut */
            invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        29: .line 547
            aload 13 /* fromOutReader */
            invokevirtual java.io.BufferedReader.ready:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        30: .line 548
            aload 16 /* fromOutReader2 */
            invokevirtual java.io.BufferedReader.ready:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        31: .line 549
            new java.lang.StringBuilder
            dup
            aload 3 /* fullLines */
            iconst_0
            aload 3 /* fullLines */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* fullLines */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 17 /* fullLines2x */
        start local 17 // java.lang.String fullLines2x
        32: .line 550
            aload 17 /* fullLines2x */
            aload 0 /* this */
            aload 13 /* fromOutReader */
            invokevirtual com.oracle.truffle.sl.test.SLInstrumentLegacyTest.readLinesList:(Ljava/io/BufferedReader;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        33: .line 551
            aload 3 /* fullLines */
            aload 0 /* this */
            aload 16 /* fromOutReader2 */
            invokevirtual com.oracle.truffle.sl.test.SLInstrumentLegacyTest.readLinesList:(Ljava/io/BufferedReader;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        34: .line 554
            aload 12 /* outputConsumerBinding */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
        35: .line 555
            aload 11 /* consumedOut */
            invokevirtual java.io.ByteArrayOutputStream.reset:()V
        36: .line 556
            aload 14 /* consumedOut2 */
            invokevirtual java.io.ByteArrayOutputStream.reset:()V
        37: .line 557
            aload 7 /* context */
            aload 4 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
        38: .line 558
            new java.lang.StringBuilder
            dup
            aload 8 /* engineOutput */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* fullOutput */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* engineOutput */
        39: .line 559
            aload 8 /* engineOutput */
            aload 5 /* engineOut */
            invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        40: .line 560
            lconst_0
            aload 11 /* consumedOut */
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        41: .line 561
            aload 14 /* consumedOut2 */
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            ifle 42
            iconst_1
            goto 43
      StackMap locals: com.oracle.truffle.sl.test.SLInstrumentLegacyTest java.lang.String java.lang.String java.lang.String org.graalvm.polyglot.Source java.io.ByteArrayOutputStream org.graalvm.polyglot.Engine org.graalvm.polyglot.Context java.lang.String org.graalvm.polyglot.Instrument com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.io.ByteArrayOutputStream com.oracle.truffle.api.instrumentation.EventBinding java.io.BufferedReader java.io.ByteArrayOutputStream com.oracle.truffle.api.instrumentation.EventBinding java.io.BufferedReader java.lang.String
      StackMap stack:
        42: iconst_0
      StackMap locals:
      StackMap stack: int
        43: invokestatic org.junit.Assert.assertTrue:(Z)V
        44: .line 562
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 14 /* consumedOut2 */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 16 /* fromOutReader2 */
        45: .line 563
            aload 3 /* fullLines */
            aload 0 /* this */
            aload 16 /* fromOutReader2 */
            invokevirtual com.oracle.truffle.sl.test.SLInstrumentLegacyTest.readLinesList:(Ljava/io/BufferedReader;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        46: .line 566
            aload 14 /* consumedOut2 */
            invokevirtual java.io.ByteArrayOutputStream.reset:()V
        47: .line 567
            aload 15 /* outputConsumerBinding2 */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
        48: .line 568
            aload 7 /* context */
            aload 4 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
        49: .line 569
            new java.lang.StringBuilder
            dup
            aload 8 /* engineOutput */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* fullOutput */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* engineOutput */
        50: .line 570
            aload 8 /* engineOutput */
            aload 5 /* engineOut */
            invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        51: .line 571
            lconst_0
            aload 11 /* consumedOut */
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        52: .line 572
            lconst_0
            aload 14 /* consumedOut2 */
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        53: .line 574
            return
        end local 17 // java.lang.String fullLines2x
        end local 16 // java.io.BufferedReader fromOutReader2
        end local 15 // com.oracle.truffle.api.instrumentation.EventBinding outputConsumerBinding2
        end local 14 // java.io.ByteArrayOutputStream consumedOut2
        end local 13 // java.io.BufferedReader fromOutReader
        end local 12 // com.oracle.truffle.api.instrumentation.EventBinding outputConsumerBinding
        end local 11 // java.io.ByteArrayOutputStream consumedOut
        end local 10 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
        end local 9 // org.graalvm.polyglot.Instrument outInstr
        end local 8 // java.lang.String engineOutput
        end local 7 // org.graalvm.polyglot.Context context
        end local 6 // org.graalvm.polyglot.Engine engine
        end local 5 // java.io.ByteArrayOutputStream engineOut
        end local 4 // org.graalvm.polyglot.Source source
        end local 3 // java.lang.String fullLines
        end local 2 // java.lang.String fullOutput
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   54     0                    this  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;
            1   54     1                    code  Ljava/lang/String;
            2   54     2              fullOutput  Ljava/lang/String;
            3   54     3               fullLines  Ljava/lang/String;
            4   54     4                  source  Lorg/graalvm/polyglot/Source;
            5   54     5               engineOut  Ljava/io/ByteArrayOutputStream;
            6   54     6                  engine  Lorg/graalvm/polyglot/Engine;
            7   54     7                 context  Lorg/graalvm/polyglot/Context;
            9   54     8            engineOutput  Ljava/lang/String;
           11   54     9                outInstr  Lorg/graalvm/polyglot/Instrument;
           12   54    10                     env  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
           13   54    11             consumedOut  Ljava/io/ByteArrayOutputStream;
           14   54    12   outputConsumerBinding  Lcom/oracle/truffle/api/instrumentation/EventBinding<Ljava/io/ByteArrayOutputStream;>;
           17   54    13           fromOutReader  Ljava/io/BufferedReader;
           22   54    14            consumedOut2  Ljava/io/ByteArrayOutputStream;
           23   54    15  outputConsumerBinding2  Lcom/oracle/truffle/api/instrumentation/EventBinding<Ljava/io/ByteArrayOutputStream;>;
           27   54    16          fromOutReader2  Ljava/io/BufferedReader;
           32   54    17             fullLines2x  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  java.lang.String readLinesList(java.io.BufferedReader);
    descriptor: (Ljava/io/BufferedReader;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
        start local 1 // java.io.BufferedReader br
         0: .line 577
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* lines */
        start local 2 // java.util.List lines
         1: .line 578
            goto 6
         2: .line 579
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* br */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 3 /* line */
        start local 3 // java.lang.String line
         3: .line 580
            aload 3 /* line */
            ifnonnull 5
         4: .line 581
            goto 7
         5: .line 583
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* lines */
            aload 3 /* line */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String line
         6: .line 578
      StackMap locals:
      StackMap stack:
            aload 1 /* br */
            invokevirtual java.io.BufferedReader.ready:()Z
            ifne 2
         7: .line 585
      StackMap locals:
      StackMap stack:
            aload 2 /* lines */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.util.List lines
        end local 1 // java.io.BufferedReader br
        end local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;
            0    8     1     br  Ljava/io/BufferedReader;
            1    8     2  lines  Ljava/util/List<Ljava/lang/String;>;
            3    6     3   line  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      br    

  public void testRedoIO();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
         0: .line 593
            ldc "function main() {\n  a = readln();\n  return a;\n}\n"
            astore 1 /* code */
        start local 1 // java.lang.String code
         1: .line 597
            ldc "sl"
            aload 1 /* code */
            ldc "testing"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 2 /* ioWait */
        start local 2 // org.graalvm.polyglot.Source ioWait
         2: .line 598
            iconst_1
            anewarray com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy
            astore 3 /* redoIOPtr */
        start local 3 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy[] redoIOPtr
         3: .line 599
            new java.io.ByteArrayInputStream
            dup
            ldc "O.K."
            invokevirtual java.lang.String.getBytes:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 4 /* strIn */
        start local 4 // java.io.InputStream strIn
         4: .line 600
            new com.oracle.truffle.sl.test.SLInstrumentLegacyTest$3
            dup
            aload 0 /* this */
            aload 3 /* redoIOPtr */
            aload 4 /* strIn */
            invokespecial com.oracle.truffle.sl.test.SLInstrumentLegacyTest$3.<init>:(Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;[Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$TestRedoIOLegacy;Ljava/io/InputStream;)V
            astore 5 /* delegateInputStream */
        start local 5 // java.io.InputStream delegateInputStream
         5: .line 617
            invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
            aload 5 /* delegateInputStream */
            invokevirtual org.graalvm.polyglot.Engine$Builder.in:(Ljava/io/InputStream;)Lorg/graalvm/polyglot/Engine$Builder;
            invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
            astore 6 /* engine */
        start local 6 // org.graalvm.polyglot.Engine engine
         6: .line 618
            aload 6 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "testRedoIOLegacy"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            ldc Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$TestRedoIOLegacy;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy
            astore 7 /* redoIO */
        start local 7 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy redoIO
         7: .line 619
            aload 3 /* redoIOPtr */
            iconst_0
            aload 7 /* redoIO */
            aastore
         8: .line 620
            aload 7 /* redoIO */
            getfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy.inRead:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.drainPermits:()I
            pop
         9: .line 621
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 6 /* engine */
            invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 8 /* context */
        start local 8 // org.graalvm.polyglot.Context context
        10: .line 622
            aload 8 /* context */
            aload 2 /* ioWait */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 9 /* ret */
        start local 9 // org.graalvm.polyglot.Value ret
        11: .line 623
            ldc "O.K."
            aload 9 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 624
            aload 7 /* redoIO */
            getfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy.beforePop:Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        13: .line 625
            return
        end local 9 // org.graalvm.polyglot.Value ret
        end local 8 // org.graalvm.polyglot.Context context
        end local 7 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy redoIO
        end local 6 // org.graalvm.polyglot.Engine engine
        end local 5 // java.io.InputStream delegateInputStream
        end local 4 // java.io.InputStream strIn
        end local 3 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy[] redoIOPtr
        end local 2 // org.graalvm.polyglot.Source ioWait
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   14     0                 this  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;
            1   14     1                 code  Ljava/lang/String;
            2   14     2               ioWait  Lorg/graalvm/polyglot/Source;
            3   14     3            redoIOPtr  [Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$TestRedoIOLegacy;
            4   14     4                strIn  Ljava/io/InputStream;
            5   14     5  delegateInputStream  Ljava/io/InputStream;
            6   14     6               engine  Lorg/graalvm/polyglot/Engine;
            7   14     7               redoIO  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$TestRedoIOLegacy;
           10   14     8              context  Lorg/graalvm/polyglot/Context;
           11   14     9                  ret  Lorg/graalvm/polyglot/Value;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testEarlyReturn();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
         0: .line 694
            ldc "function main() {\n  a = 10;\n  b = a;\n  // Let fce() warm up and specialize:\n  while (a == b && a < 100000) {\n    a = fce(a);\n    b = b + 1;\n  }\n  c = a;\n  // Run fce() and alter it's return type in an instrument:\n  c = fce(c);\n  return c;\n}\nfunction fce(x) {\n  return x + 1;\n}\n"
            astore 1 /* code */
        start local 1 // java.lang.String code
         1: .line 710
            ldc "sl"
            aload 1 /* code */
            ldc "testing"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 2 /* source */
        start local 2 // org.graalvm.polyglot.Source source
         2: .line 711
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 3 /* engineOut */
        start local 3 // java.io.ByteArrayOutputStream engineOut
         3: .line 712
            invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
            aload 3 /* engineOut */
            invokevirtual org.graalvm.polyglot.Engine$Builder.err:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
            invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
            astore 4 /* engine */
        start local 4 // org.graalvm.polyglot.Engine engine
         4: .line 713
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            aload 4 /* engine */
            invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            astore 5 /* context */
        start local 5 // org.graalvm.polyglot.Context context
         5: .line 715
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        start local 6 // org.graalvm.polyglot.Value ret
         6: .line 716
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         7: .line 717
            ldc 100001
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asLong:()J
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         8: .line 719
            aload 5 /* context */
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "testEarlyReturnLegacy"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            ldc Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$EarlyReturnLegacyInstrument;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument
            astore 7 /* earlyReturn */
        start local 7 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument earlyReturn
         9: .line 721
            aload 7 /* earlyReturn */
            ldc "fce(a)"
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.fceCode:Ljava/lang/String;
        10: .line 722
            aload 7 /* earlyReturn */
            ldc 200000
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.returnValue:Ljava/lang/Object;
        11: .line 723
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        12: .line 724
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        13: .line 725
            ldc 200001
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asLong:()J
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        14: .line 727
            aload 7 /* earlyReturn */
            ldc "Hello!"
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.returnValue:Ljava/lang/Object;
        15: .line 728
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        16: .line 729
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        17: .line 730
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isString:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        18: .line 731
            ldc "Hello!1"
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        19: .line 734
            aload 7 /* earlyReturn */
            ldc "<>"
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.fceCode:Ljava/lang/String;
        20: .line 735
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        21: .line 736
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        22: .line 737
            ldc 100001
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asLong:()J
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        23: .line 739
            aload 7 /* earlyReturn */
            ldc "fce(a)"
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.fceCode:Ljava/lang/String;
        24: .line 740
            aload 7 /* earlyReturn */
            new java.math.BigInteger
            dup
            ldc "-42"
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.returnValue:Ljava/lang/Object;
        25: .line 743
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
        26: .line 744
            iconst_0
            istore 8 /* interopFailure */
        start local 8 // boolean interopFailure
        27: .line 745
            goto 30
        end local 8 // boolean interopFailure
      StackMap locals: com.oracle.truffle.sl.test.SLInstrumentLegacyTest java.lang.String org.graalvm.polyglot.Source java.io.ByteArrayOutputStream org.graalvm.polyglot.Engine org.graalvm.polyglot.Context org.graalvm.polyglot.Value com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument
      StackMap stack: org.graalvm.polyglot.PolyglotException
        28: pop
        29: .line 746
            iconst_1
            istore 8 /* interopFailure */
        start local 8 // boolean interopFailure
        30: .line 748
      StackMap locals: int
      StackMap stack:
            iload 8 /* interopFailure */
            invokestatic org.junit.Assert.assertTrue:(Z)V
        31: .line 750
            aload 7 /* earlyReturn */
            new com.oracle.truffle.sl.runtime.SLBigNumber
            dup
            new java.math.BigInteger
            dup
            ldc "-42"
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
            invokespecial com.oracle.truffle.sl.runtime.SLBigNumber.<init>:(Ljava/math/BigInteger;)V
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.returnValue:Ljava/lang/Object;
        32: .line 751
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        33: .line 752
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        34: .line 753
            ldc -41
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asLong:()J
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        35: .line 755
            aload 7 /* earlyReturn */
            ldc "fce(c)"
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.fceCode:Ljava/lang/String;
        36: .line 756
            aload 7 /* earlyReturn */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.returnValue:Ljava/lang/Object;
        37: .line 757
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        38: .line 758
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isBoolean:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        39: .line 759
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        40: .line 761
            aload 7 /* earlyReturn */
            ldc "fce(c)"
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.fceCode:Ljava/lang/String;
        41: .line 762
            aload 7 /* earlyReturn */
            ldc -42.0
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.returnValue:Ljava/lang/Object;
        42: .line 763
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        43: .line 764
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        44: .line 765
            ldc -42.0
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asDouble:()D
            ldc 1.0E-8
            invokestatic org.junit.Assert.assertEquals:(DDD)V
        45: .line 767
            aload 7 /* earlyReturn */
            ldc "fce(c)"
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.fceCode:Ljava/lang/String;
        46: .line 768
            aload 7 /* earlyReturn */
            ldc "Hello!"
            putfield com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument.returnValue:Ljava/lang/Object;
        47: .line 769
            aload 5 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        48: .line 770
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.isString:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        49: .line 771
            ldc "Hello!"
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        50: .line 772
            return
        end local 8 // boolean interopFailure
        end local 7 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument earlyReturn
        end local 6 // org.graalvm.polyglot.Value ret
        end local 5 // org.graalvm.polyglot.Context context
        end local 4 // org.graalvm.polyglot.Engine engine
        end local 3 // java.io.ByteArrayOutputStream engineOut
        end local 2 // org.graalvm.polyglot.Source source
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   51     0            this  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;
            1   51     1            code  Ljava/lang/String;
            2   51     2          source  Lorg/graalvm/polyglot/Source;
            3   51     3       engineOut  Ljava/io/ByteArrayOutputStream;
            4   51     4          engine  Lorg/graalvm/polyglot/Engine;
            5   51     5         context  Lorg/graalvm/polyglot/Context;
            6   51     6             ret  Lorg/graalvm/polyglot/Value;
            9   51     7     earlyReturn  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$EarlyReturnLegacyInstrument;
           27   28     8  interopFailure  Z
           30   51     8  interopFailure  Z
      Exception table:
        from    to  target  type
          25    27      28  Class org.graalvm.polyglot.PolyglotException
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testReplaceNodeReturnValue();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
         0: .line 817
            ldc "java.vm.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ldc "Graal:graal-enterprise"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 818
            return
         2: .line 820
      StackMap locals:
      StackMap stack:
            ldc "function main() {\n  a = new();\n  b = a.rp1;\n  return b;\n}\n"
            astore 1 /* code */
        start local 1 // java.lang.String code
         3: .line 825
            ldc "sl"
            aload 1 /* code */
            ldc "testing"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 2 /* source */
        start local 2 // org.graalvm.polyglot.Source source
         4: .line 826
            aload 2 /* source */
            invokestatic com.oracle.truffle.tck.DebuggerTester.getSourceImpl:(Lorg/graalvm/polyglot/Source;)Lcom/oracle/truffle/api/source/Source;
            bipush 24
            iconst_5
            invokevirtual com.oracle.truffle.api.source.Source.createSection:(II)Lcom/oracle/truffle/api/source/SourceSection;
            astore 3 /* ss */
        start local 3 // com.oracle.truffle.api.source.SourceSection ss
         5: .line 827
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         6: .line 828
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "testNewNodeReplacedLegacy"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            ldc Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$NewReplacedInstrumentLegacy;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.sl.test.SLInstrumentLegacyTest$NewReplacedInstrumentLegacy
            astore 5 /* replaced */
        start local 5 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$NewReplacedInstrumentLegacy replaced
         7: .line 829
            aload 5 /* replaced */
            aload 3 /* ss */
            invokevirtual com.oracle.truffle.sl.test.SLInstrumentLegacyTest$NewReplacedInstrumentLegacy.attachAt:(Lcom/oracle/truffle/api/source/SourceSection;)V
         8: .line 831
            aload 4 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 6 /* ret */
        start local 6 // org.graalvm.polyglot.Value ret
         9: .line 832
            ldc "Replaced Value"
            aload 6 /* ret */
            invokevirtual org.graalvm.polyglot.Value.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 833
            return
        end local 6 // org.graalvm.polyglot.Value ret
        end local 5 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$NewReplacedInstrumentLegacy replaced
        end local 4 // org.graalvm.polyglot.Context context
        end local 3 // com.oracle.truffle.api.source.SourceSection ss
        end local 2 // org.graalvm.polyglot.Source source
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;
            3   11     1      code  Ljava/lang/String;
            4   11     2    source  Lorg/graalvm/polyglot/Source;
            5   11     3        ss  Lcom/oracle/truffle/api/source/SourceSection;
            6   11     4   context  Lorg/graalvm/polyglot/Context;
            7   11     5  replaced  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$NewReplacedInstrumentLegacy;
            9   11     6       ret  Lorg/graalvm/polyglot/Value;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testChangeArgumentsOnReenter();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
         0: .line 942
            ldc "function main() {\n  y = fce(0, 10000);\n  return y;\n}\nfunction fce(x, z) {\n  y = 2 * x;\n  if (y < z) {\n    print(\"A bad error.\");\n    return 0 - 1;\n  } else {\n    return y;\n  }\n}\n"
            astore 1 /* code */
        start local 1 // java.lang.String code
         1: .line 955
            ldc "sl"
            aload 1 /* code */
            ldc "testing"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 2 /* source */
        start local 2 // org.graalvm.polyglot.Source source
         2: .line 956
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            astore 3 /* context */
        start local 3 // org.graalvm.polyglot.Context context
         3: .line 957
            aload 3 /* context */
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "testIncreaseArgumentOnErrorLegacy"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            ldc Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.sl.test.SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument
            astore 4 /* incOnError */
        start local 4 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument incOnError
         4: .line 958
            aload 4 /* incOnError */
            ldc "A bad error"
            invokevirtual com.oracle.truffle.sl.test.SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument.attachOn:(Ljava/lang/String;)V
         5: .line 960
            aload 3 /* context */
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            astore 5 /* ret */
        start local 5 // org.graalvm.polyglot.Value ret
         6: .line 961
            ldc 10000
            aload 5 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asInt:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         7: .line 962
            return
        end local 5 // org.graalvm.polyglot.Value ret
        end local 4 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument incOnError
        end local 3 // org.graalvm.polyglot.Context context
        end local 2 // org.graalvm.polyglot.Source source
        end local 1 // java.lang.String code
        end local 0 // com.oracle.truffle.sl.test.SLInstrumentLegacyTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest;
            1    8     1        code  Ljava/lang/String;
            2    8     2      source  Lorg/graalvm/polyglot/Source;
            3    8     3     context  Lorg/graalvm/polyglot/Context;
            4    8     4  incOnError  Lcom/oracle/truffle/sl/test/SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument;
            6    8     5         ret  Lorg/graalvm/polyglot/Value;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "SLInstrumentLegacyTest.java"
NestMembers:
  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$1  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$2  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$3  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument$1  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$Environment  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EnvironmentHandlerLegacyInstrument  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument$1  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument$2  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$KeysArrayLegacy  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$NewReplacedInstrumentLegacy  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$NewReplacedInstrumentLegacy$1  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$NewReplacedInstrumentLegacy$ReplacedTruffleObjectLegacy  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$RuntimeInterruptedException  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy$1  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy$1$1
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$1
  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$2
  com.oracle.truffle.sl.test.SLInstrumentLegacyTest$3
  public EarlyReturnLegacyInstrument = com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EarlyReturnLegacyInstrument of com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  private Environment = com.oracle.truffle.sl.test.SLInstrumentLegacyTest$Environment of com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  public EnvironmentHandlerLegacyInstrument = com.oracle.truffle.sl.test.SLInstrumentLegacyTest$EnvironmentHandlerLegacyInstrument of com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  public final IncreaseArgOnErrorLegacyInstrument = com.oracle.truffle.sl.test.SLInstrumentLegacyTest$IncreaseArgOnErrorLegacyInstrument of com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  final KeysArrayLegacy = com.oracle.truffle.sl.test.SLInstrumentLegacyTest$KeysArrayLegacy of com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  public final NewReplacedInstrumentLegacy = com.oracle.truffle.sl.test.SLInstrumentLegacyTest$NewReplacedInstrumentLegacy of com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  private RuntimeInterruptedException = com.oracle.truffle.sl.test.SLInstrumentLegacyTest$RuntimeInterruptedException of com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  public TestRedoIOLegacy = com.oracle.truffle.sl.test.SLInstrumentLegacyTest$TestRedoIOLegacy of com.oracle.truffle.sl.test.SLInstrumentLegacyTest
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  public final Builder = org.graalvm.polyglot.Engine$Builder of org.graalvm.polyglot.Engine
  public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source