public class com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest extends com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest
  super_class: com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest
{
  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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 93
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
            putstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.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.api.instrumentation.test.VariablesScopeLegacyTest this
         0: .line 91
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest;

  public void testDefaultScope();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest this
         0: .line 97
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.engine:Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "testVariablesScopeLegacyInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.assureEnabled:(Lorg/graalvm/polyglot/Instrument;)V
         1: .line 98
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument;
            new com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$DefaultScopeTester
            dup
            invokespecial com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$DefaultScopeTester.<init>:()V
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.setTester:(Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument$Tester;)V
         2: .line 99
            aload 0 /* this */
            ldc "ROOT(DEFINE(\ntestFunction,ROOT(\nVARIABLE(a, 10),\nVARIABLE(b, 20),\nSTATEMENT)),\nCALL(testFunction))"
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.run:(Ljava/lang/String;)Ljava/lang/String;
            pop
         3: .line 100
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument;
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.checkForFailure:()V
         4: .line 101
            return
        end local 0 // com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static int getKeySize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object object
         0: .line 162
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* keys */
        start local 1 // java.lang.Object keys
         1: .line 163
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 1 /* keys */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
            l2i
         2: ireturn
        end local 1 // java.lang.Object keys
         3: .line 164
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 1 /* e */
        start local 1 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         4: .line 165
            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 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  object  Ljava/lang/Object;
            1    3     1    keys  Ljava/lang/Object;
            4    5     1       e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           0     2       3  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
        Name  Flags
      object  

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

  private static java.lang.Object read(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object object
        start local 1 // java.lang.String key
         0: .line 175
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
            aload 0 /* object */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
         1: areturn
         2: .line 176
      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 177
            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 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  object  Ljava/lang/Object;
            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
      object  
      key     

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

  public void testSPIScopeCalls();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest this
         0: .line 267
            ldc "test-custom-variables-scope-legacy-language"
            ldc "test"
            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 268
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.engine:Lorg/graalvm/polyglot/Engine;
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "testVariablesScopeLegacyInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.assureEnabled:(Lorg/graalvm/polyglot/Instrument;)V
         2: .line 269
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument;
            new com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeTester
            dup
            invokespecial com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeTester.<init>:()V
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.setTester:(Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument$Tester;)V
         3: .line 270
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.context:Lorg/graalvm/polyglot/Context;
            aload 1 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         4: .line 271
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument;
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.checkForFailure:()V
         5: .line 272
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument;
            new com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLibraryTester
            dup
            invokespecial com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLibraryTester.<init>:()V
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.setTester:(Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument$Tester;)V
         6: .line 273
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest.context:Lorg/graalvm/polyglot/Context;
            aload 1 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         7: .line 274
            getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument;
            invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.checkForFailure:()V
        end local 1 // org.graalvm.polyglot.Source source
         8: .line 275
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 2
        10: .line 276
            aconst_null
            putstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument;
        11: .line 277
            aconst_null
            putstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScope.LAST_INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$CustomScope;
        12: .line 278
            aload 2
            athrow
        13: .line 276
      StackMap locals:
      StackMap stack:
            aconst_null
            putstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$TestScopeLegacyInstrument;
        14: .line 277
            aconst_null
            putstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScope.LAST_INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest$CustomScope;
        15: .line 279
            return
        end local 0 // com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeLegacyTest;
            1    8     1  source  Lorg/graalvm/polyglot/Source;
      Exception table:
        from    to  target  type
           0     9       9  any
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "VariablesScopeLegacyTest.java"
NestMembers:
  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScope  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLegacyLanguage  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLegacyLanguage$1  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLegacyLanguage$1$1  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLegacyLanguage$CustomRoot  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLegacyLanguage$CustomRootBlockLegacyNode  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLegacyLanguage$CustomScopeLegacyNode  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLegacyLanguage$TopScopeJavaObject  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLibraryTester  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeTester  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$DefaultScopeTester  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestLegacyObject  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestLegacyObject$LegacyMembers  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument$1  com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument$Tester
InnerClasses:
  private CustomScope = com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScope of com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest
  public CustomScopeLegacyLanguage = com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLegacyLanguage of com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest
  private CustomScopeLibraryTester = com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeLibraryTester of com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest
  private CustomScopeTester = com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$CustomScopeTester of com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest
  private DefaultScopeTester = com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$DefaultScopeTester of com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest
  final TestLegacyObject = com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestLegacyObject of com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest
  public TestScopeLegacyInstrument = com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument of com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest
  abstract Tester = com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument$Tester of com.oracle.truffle.api.instrumentation.test.VariablesScopeLegacyTest$TestScopeLegacyInstrument