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

  private static final com.oracle.truffle.api.interop.NodeLibrary NODE_LIBRARY;
    descriptor: Lcom/oracle/truffle/api/interop/NodeLibrary;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected org.graalvm.polyglot.Context context;
    descriptor: Lorg/graalvm/polyglot/Context;
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 74
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
            putstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
         1: .line 75
            invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
            putstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.NODE_LIBRARY:Lcom/oracle/truffle/api/interop/NodeLibrary;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;

  public void setup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 81
            aload 0 /* this */
            iconst_0
            anewarray java.lang.String
            invokestatic com.oracle.truffle.js.test.instrumentation.TestUtil.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            putfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
         1: .line 82
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  public void tearDown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 86
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.close:()V
         1: .line 87
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
    RuntimeVisibleAnnotations: 
      org.junit.After()

  private static void ensureCreated(org.graalvm.polyglot.Instrument);
    descriptor: (Lorg/graalvm/polyglot/Instrument;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Instrument instrument
         0: .line 90
            ldc "Instrument not found"
            aload 0 /* instrument */
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 91
            aload 0 /* instrument */
            ldc Ljava/lang/Object;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            pop
         2: .line 92
            ldc "Instrument not created"
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 93
            return
        end local 0 // org.graalvm.polyglot.Instrument instrument
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  instrument  Lorg/graalvm/polyglot/Instrument;
    MethodParameters:
            Name  Flags
      instrument  

  public void testDefaultScope();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 97
            ldc "js"
            ldc "function testFunction() {\n  var a = 10;\n  var b = 20;\n  return a + b;\n}\ntestFunction();\n"
            invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 105
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
            aastore
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            putstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.filter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
         2: .line 106
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "TestJSScopeInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.ensureCreated:(Lorg/graalvm/polyglot/Instrument;)V
         3: .line 107
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            new com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester
            dup
            invokespecial com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester.<init>:()V
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.setTester:(Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;)V
         4: .line 108
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            aload 1 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         5: .line 109
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            iconst_4
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.checkSuccess:(I)V
         6: .line 110
            return
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
            1    7     1  source  Lorg/graalvm/polyglot/Source;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testParams();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 114
            ldc "js"
            ldc "function testParams(a, [b, c], d = 9) {\n   return a + b + c + d;\n}\ntestParams(4, [7, 6, 2]);\n"
            invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 120
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
            aastore
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            ldc "testParams"
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/lang/String;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/String.equals(Ljava/lang/Object;)Z (5)
                  (Ljava/lang/String;)Z
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.rootNameIs:(Ljava/util/function/Predicate;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            putstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.filter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
         2: .line 121
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "TestJSScopeInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.ensureCreated:(Lorg/graalvm/polyglot/Instrument;)V
         3: .line 122
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            invokedynamic testScope()Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
                  com/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest.lambda$1(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V (6)
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.setTester:(Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;)V
         4: .line 141
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            aload 1 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         5: .line 142
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            iconst_1
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.checkSuccess:(I)V
         6: .line 143
            return
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
            1    7     1  source  Lorg/graalvm/polyglot/Source;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testParamsSourceLocation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 147
            ldc "js"
            ldc "function testParams(a, [b, c], d = 9) {\n   return a + b + c + d;\n}\ntestParams(4, [7, 6, 2]);\n"
            invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 153
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
            aastore
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            ldc "testParams"
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/lang/String;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/String.equals(Ljava/lang/Object;)Z (5)
                  (Ljava/lang/String;)Z
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.rootNameIs:(Ljava/util/function/Predicate;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            putstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.filter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
         2: .line 154
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "TestJSScopeInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.ensureCreated:(Lorg/graalvm/polyglot/Instrument;)V
         3: .line 155
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            invokedynamic testScope()Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
                  com/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest.lambda$3(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V (6)
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.setTester:(Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;)V
         4: .line 172
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            aload 1 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         5: .line 173
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            iconst_1
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.checkSuccess:(I)V
         6: .line 174
            return
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
            1    7     1  source  Lorg/graalvm/polyglot/Source;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testVariableSourceLocation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 178
            ldc "js"
            ldc "function testFunction() {\n  var a = 10;\n  let b = 20;\n  const c = 30\n  return a + b + c;\n}\ntestFunction();\n"
            invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
            astore 1 /* source */
        start local 1 // org.graalvm.polyglot.Source source
         1: .line 187
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
            aastore
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            ldc "testFunction"
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/lang/String;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/String.equals(Ljava/lang/Object;)Z (5)
                  (Ljava/lang/String;)Z
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.rootNameIs:(Ljava/util/function/Predicate;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            putstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.filter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
         2: .line 188
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "TestJSScopeInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.ensureCreated:(Lorg/graalvm/polyglot/Instrument;)V
         3: .line 189
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            invokedynamic testScope()Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
                  com/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest.lambda$5(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V (6)
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.setTester:(Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;)V
         4: .line 213
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            aload 1 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         5: .line 214
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            iconst_1
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.checkSuccess:(I)V
         6: .line 215
            return
        end local 1 // org.graalvm.polyglot.Source source
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
            1    7     1  source  Lorg/graalvm/polyglot/Source;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void asyncFindScopes();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 219
            aload 0 /* this */
            ldc "Promise.resolve(42).then(async function foo (x) {});"
            ldc "foo"
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.asyncFindScopes:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 220
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void anonAsyncFindScopes();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
         0: .line 224
            aload 0 /* this */
            ldc "Promise.resolve(42).then(async (x) => {});"
            ldc ":=>"
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.asyncFindScopes:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 225
            return
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void asyncFindScopes(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
        start local 1 // java.lang.String src
        start local 2 // java.lang.String expectedAsyncFunctionName
         0: .line 228
            ldc "js"
            aload 1 /* src */
            invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
            astore 3 /* source */
        start local 3 // org.graalvm.polyglot.Source source
         1: .line 229
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
            aastore
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            putstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.filter:Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
         2: .line 230
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "TestJSScopeInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.ensureCreated:(Lorg/graalvm/polyglot/Instrument;)V
         3: .line 231
            iconst_2
            newarray 10
            astore 4 /* scopes */
        start local 4 // int[] scopes
         4: .line 232
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
            aload 2 /* expectedAsyncFunctionName */
            aload 4 /* scopes */
            invokedynamic testScope(Ljava/lang/String;[I)Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
                  com/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest.lambda$6(Ljava/lang/String;[ILcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V (6)
                  (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
            invokevirtual com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.setTester:(Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$ScopeTester;)V
         5: .line 247
            aload 0 /* this */
            getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
            aload 3 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         6: .line 248
            ldc "Async function scope inspected"
            aload 4 /* scopes */
            iconst_1
            iaload
            i2l
            lconst_1
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         7: .line 249
            ldc "All scopes have been entered"
            ldc 9
            aload 4 /* scopes */
            iconst_0
            iaload
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         8: .line 250
            return
        end local 4 // int[] scopes
        end local 3 // org.graalvm.polyglot.Source source
        end local 2 // java.lang.String expectedAsyncFunctionName
        end local 1 // java.lang.String src
        end local 0 // com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    9     0                       this  Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest;
            0    9     1                        src  Ljava/lang/String;
            0    9     2  expectedAsyncFunctionName  Ljava/lang/String;
            1    9     3                     source  Lorg/graalvm/polyglot/Source;
            4    9     4                     scopes  [I
    MethodParameters:
                           Name  Flags
      src                        
      expectedAsyncFunctionName  

  private static java.lang.Object findLocalScope(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node node
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 314
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.NODE_LIBRARY:Lcom/oracle/truffle/api/interop/NodeLibrary;
            aload 0 /* node */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.api.interop.NodeLibrary.hasScope:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         1: .line 315
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.NODE_LIBRARY:Lcom/oracle/truffle/api/interop/NodeLibrary;
            aload 0 /* node */
            aload 1 /* frame */
            iconst_1
            invokevirtual com.oracle.truffle.api.interop.NodeLibrary.getScope:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;Z)Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   node  Lcom/oracle/truffle/api/nodes/Node;
            0    2     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
       Name  Flags
      node   
      frame  

  private static java.lang.String getScopeName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object scope
         0: .line 319
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* scope */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.toDisplayString:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object scope
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  scope  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
       Name  Flags
      scope  

  private static java.lang.Object getKeys(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object object
         0: .line 323
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  object  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
        Name  Flags
      object  

  private static int getSize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object keys
         0: .line 327
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* keys */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            l2i
            ireturn
        end local 0 // java.lang.Object keys
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  keys  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
      Name  Flags
      keys  

  private static java.util.List<java.lang.String> getKeyList();
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // java.lang.Object membersObj
         0: .line 331
            aload 0 /* membersObj */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeys:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* keys */
        start local 1 // java.lang.Object keys
         1: .line 332
            aload 1 /* keys */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getSize:(Ljava/lang/Object;)I
            istore 2 /* len */
        start local 2 // int len
         2: .line 333
            new java.util.ArrayList
            dup
            iload 2 /* len */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* list */
        start local 3 // java.util.List list
         3: .line 334
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 335
      StackMap locals: java.lang.Object java.lang.Object int java.util.List int
      StackMap stack:
            aload 3 /* list */
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* keys */
            iload 4 /* i */
            i2l
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 334
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 2 /* len */
            if_icmplt 5
        end local 4 // int i
         8: .line 337
            aload 3 /* list */
            areturn
        end local 3 // java.util.List list
        end local 2 // int len
        end local 1 // java.lang.Object keys
        end local 0 // java.lang.Object membersObj
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0  membersObj  Ljava/lang/Object;
            1    9     1        keys  Ljava/lang/Object;
            2    9     2         len  I
            3    9     3        list  Ljava/util/List<Ljava/lang/String;>;
            4    8     4           i  I
    Exceptions:
      throws com.oracle.truffle.api.interop.InteropException
    Signature: (Ljava/lang/Object;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      membersObj  

  private static void lambda$1(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 123
            aload 1 /* node */
            aload 2 /* frame */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.findLocalScope:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 3 /* scope */
        start local 3 // java.lang.Object scope
         1: .line 124
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            istore 4 /* line */
        start local 4 // int line
         2: .line 125
            ldc "Function name"
            ldc "testParams"
            aload 3 /* scope */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getScopeName:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 126
            new java.lang.StringBuilder
            dup
            ldc "Line = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* line */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc 2
            iload 4 /* line */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         4: .line 128
            aload 3 /* scope */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeyList:(Ljava/lang/Object;)Ljava/util/List;
            astore 5 /* keyList */
        start local 5 // java.util.List keyList
         5: .line 129
            aload 5 /* keyList */
            ldc "this"
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         6: .line 130
            aload 5 /* keyList */
            invokeinterface java.util.List.size:()I
            istore 6 /* varCount */
        start local 6 // int varCount
         7: .line 131
            new java.lang.StringBuilder
            dup
            ldc "Line = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* line */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", num vars:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc 4
            iload 6 /* varCount */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         8: .line 132
            ldc "Param a"
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            ldc "a"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         9: .line 133
            ldc "Param b"
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            ldc "b"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        10: .line 134
            ldc "Param c"
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            ldc "c"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        11: .line 135
            ldc "Param d"
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            ldc "d"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        12: .line 136
            ldc "Param a"
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            ldc "a"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 137
            ldc "Param b"
            bipush 7
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            ldc "b"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        14: .line 138
            ldc "Param c"
            bipush 6
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            ldc "c"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        15: .line 139
            ldc "Param d"
            bipush 9
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 3 /* scope */
            ldc "d"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // int varCount
        end local 5 // java.util.List keyList
        end local 4 // int line
        end local 3 // java.lang.Object scope
        16: .line 140
            return
        end local 2 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0       env  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0   17     1      node  Lcom/oracle/truffle/api/nodes/Node;
            0   17     2     frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1   16     3     scope  Ljava/lang/Object;
            2   16     4      line  I
            5   16     5   keyList  Ljava/util/List<Ljava/lang/String;>;
            7   16     6  varCount  I
    Exceptions:
      throws java.lang.Exception

  private static void lambda$3(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 156
            aload 1 /* node */
            aload 2 /* frame */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.findLocalScope:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 3 /* scope */
        start local 3 // java.lang.Object scope
         1: .line 157
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            istore 4 /* line */
        start local 4 // int line
         2: .line 158
            ldc "Function name"
            ldc "testParams"
            aload 3 /* scope */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getScopeName:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 159
            new java.lang.StringBuilder
            dup
            ldc "Line = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* line */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc 2
            iload 4 /* line */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         4: .line 161
            aload 3 /* scope */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeys:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* keys */
        start local 5 // java.lang.Object keys
         5: .line 162
            aload 5 /* keys */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getSize:(Ljava/lang/Object;)I
            istore 6 /* nKeys */
        start local 6 // int nKeys
         6: .line 163
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 15
         8: .line 164
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.VirtualFrame java.lang.Object int java.lang.Object int int
      StackMap stack:
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* keys */
            iload 7 /* i */
            i2l
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
            astore 8 /* key */
        start local 8 // java.lang.Object key
         9: .line 165
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        10: .line 166
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 9 /* keyAsString */
        start local 9 // java.lang.String keyAsString
        11: .line 167
            aload 9 /* keyAsString */
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        12: .line 168
            aload 9 /* keyAsString */
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.isAvailable:()Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        13: .line 169
            aload 9 /* keyAsString */
            lconst_1
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        end local 9 // java.lang.String keyAsString
        end local 8 // java.lang.Object key
        14: .line 163
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            iload 6 /* nKeys */
            if_icmplt 8
        end local 7 // int i
        end local 6 // int nKeys
        end local 5 // java.lang.Object keys
        end local 4 // int line
        end local 3 // java.lang.Object scope
        16: .line 171
            return
        end local 2 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0          env  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0   17     1         node  Lcom/oracle/truffle/api/nodes/Node;
            0   17     2        frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1   16     3        scope  Ljava/lang/Object;
            2   16     4         line  I
            5   16     5         keys  Ljava/lang/Object;
            6   16     6        nKeys  I
            7   16     7            i  I
            9   14     8          key  Ljava/lang/Object;
           11   14     9  keyAsString  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception

  private static void lambda$5(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 190
            aload 1 /* node */
            aload 2 /* frame */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.findLocalScope:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 3 /* scope */
        start local 3 // java.lang.Object scope
         1: .line 191
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            istore 4 /* line */
        start local 4 // int line
         2: .line 192
            ldc "Function name"
            ldc "testFunction"
            aload 3 /* scope */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getScopeName:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 193
            new java.lang.StringBuilder
            dup
            ldc "Line = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* line */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            lconst_1
            iload 4 /* line */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         4: .line 195
            aload 3 /* scope */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeys:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* keys */
        start local 5 // java.lang.Object keys
         5: .line 196
            aload 5 /* keys */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getSize:(Ljava/lang/Object;)I
            istore 6 /* nKeys */
        start local 6 // int nKeys
         6: .line 197
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 18
         8: .line 198
      StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.VirtualFrame java.lang.Object int java.lang.Object int int
      StackMap stack:
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* keys */
            iload 7 /* i */
            i2l
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
            astore 8 /* key */
        start local 8 // java.lang.Object key
         9: .line 199
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        10: .line 200
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 9 /* keyAsString */
        start local 9 // java.lang.String keyAsString
        11: .line 202
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.NODE_LIBRARY:Lcom/oracle/truffle/api/interop/NodeLibrary;
            aload 1 /* node */
            aload 2 /* frame */
            invokevirtual com.oracle.truffle.api.interop.NodeLibrary.hasReceiverMember:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;)Z
            ifeq 14
        12: .line 203
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.NODE_LIBRARY:Lcom/oracle/truffle/api/interop/NodeLibrary;
            aload 1 /* node */
            aload 2 /* frame */
            invokevirtual com.oracle.truffle.api.interop.NodeLibrary.getReceiverMember:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
            aload 9 /* keyAsString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 204
            goto 17
        14: .line 208
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            aload 9 /* keyAsString */
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        15: .line 209
            aload 9 /* keyAsString */
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.isAvailable:()Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        16: .line 210
            aload 9 /* keyAsString */
            iconst_2
            iload 7 /* i */
            iadd
            i2l
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 8 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
        end local 9 // java.lang.String keyAsString
        end local 8 // java.lang.Object key
        17: .line 197
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 7 /* i */
            iload 6 /* nKeys */
            if_icmplt 8
        end local 7 // int i
        end local 6 // int nKeys
        end local 5 // java.lang.Object keys
        end local 4 // int line
        end local 3 // java.lang.Object scope
        19: .line 212
            return
        end local 2 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0          env  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0   20     1         node  Lcom/oracle/truffle/api/nodes/Node;
            0   20     2        frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1   19     3        scope  Ljava/lang/Object;
            2   19     4         line  I
            5   19     5         keys  Ljava/lang/Object;
            6   19     6        nKeys  I
            7   19     7            i  I
            9   17     8          key  Ljava/lang/Object;
           11   17     9  keyAsString  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception

  private static void lambda$6(java.lang.String, int[], com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Ljava/lang/String;[ILcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=10, args_size=5
        start local 2 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
        start local 3 // com.oracle.truffle.api.nodes.Node node
        start local 4 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 233
            aload 3 /* node */
            aload 4 /* frame */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.findLocalScope:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
            astore 5 /* scope */
        start local 5 // java.lang.Object scope
         1: .line 234
            aload 5 /* scope */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getScopeName:(Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* scopeName */
        start local 6 // java.lang.String scopeName
         2: .line 235
            aload 0
            aload 6 /* scopeName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         3: .line 236
            aload 5 /* scope */
            invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeyList:(Ljava/lang/Object;)Ljava/util/List;
            astore 7 /* keyList */
        start local 7 // java.util.List keyList
         4: .line 237
            aload 7 /* keyList */
            ldc "this"
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         5: .line 238
            aload 7 /* keyList */
            invokeinterface java.util.List.size:()I
            istore 8 /* varCount */
        start local 8 // int varCount
         6: .line 239
            aload 3 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            istore 9 /* line */
        start local 9 // int line
         7: .line 240
            new java.lang.StringBuilder
            dup
            ldc "Line = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* line */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", num vars: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 8 /* varCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* keyList */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            lconst_1
            iload 8 /* varCount */
            i2l
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         8: .line 241
            ldc "Param x"
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* scope */
            ldc "x"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         9: .line 242
            ldc "Param x"
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 5 /* scope */
            ldc "x"
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 243
            aload 1
            iconst_1
            iconst_1
            iastore
        end local 9 // int line
        end local 8 // int varCount
        end local 7 // java.util.List keyList
        11: .line 245
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            aload 1
            iconst_0
            dup2
            iaload
            iconst_1
            iadd
            iastore
        end local 6 // java.lang.String scopeName
        end local 5 // java.lang.Object scope
        12: .line 246
            return
        end local 4 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 3 // com.oracle.truffle.api.nodes.Node node
        end local 2 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     2        env  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            0   13     3       node  Lcom/oracle/truffle/api/nodes/Node;
            0   13     4      frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1   12     5      scope  Ljava/lang/Object;
            2   12     6  scopeName  Ljava/lang/String;
            4   11     7    keyList  Ljava/util/List<Ljava/lang/String;>;
            6   11     8   varCount  I
            7   11     9       line  I
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "ScopeInstrumentTest.java"
NestMembers:
  com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester  com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$ScopeTester  com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument  com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument$1
InnerClasses:
  public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
  public final RootBodyTag = com.oracle.truffle.api.instrumentation.StandardTags$RootBodyTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
  private DefaultScopeTester = com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester of com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest
  abstract ScopeTester = com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$ScopeTester of com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest
  public TestJSScopeInstrument = com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument of com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context