public class com.oracle.truffle.api.instrumentation.test.VariablesScopeTest 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.VariablesScopeTest
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: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
putstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.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 0: aload 0
invokespecial com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest;
public void testILScope();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testVariablesScopeInstrument"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.assureEnabled:(Lorg/graalvm/polyglot/Instrument;)V
1: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument;
new com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$ILScopeTester
dup
invokespecial com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$ILScopeTester.<init>:()V
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.setTester:(Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument$Tester;)V
2: aload 0
ldc "ROOT(DEFINE(\ntestFunction,ROOT(\nVARIABLE(a, 10),\nVARIABLE(b, 20),\nSTATEMENT)),\nCALL(testFunction))"
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
3: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument;
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.checkForFailure:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDefaultScope();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=1
start local 0 0: aload 0
aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testVariablesScopeInstrument"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.assureEnabled:(Lorg/graalvm/polyglot/Instrument;)V
1: aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.context:Lorg/graalvm/polyglot/Context;
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.createDefaultScopeLanguage:(Lorg/graalvm/polyglot/Context;)V
2: new com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester
dup
invokespecial com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester.<init>:()V
astore 1
start local 1 3: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.setTester:(Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument$Tester;)V
4: ldc "proxyLanguage"
ldc "test"
ldc "file"
invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
astore 2
start local 2 5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.context:Lorg/graalvm/polyglot/Context;
aload 2
invokevirtual org.graalvm.polyglot.Context.parse:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 6: ldc 9
aload 3
iconst_2
anewarray java.lang.Object
dup
iconst_0
iconst_4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iconst_5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument;
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.checkForFailure:()V
8: ldc "1Enter2Enter2Exit1Exit"
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester.getVisitedLocations:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest;
3 10 1 scopeTester Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$DefaultScopeTester;
5 10 2 source Lorg/graalvm/polyglot/Source;
6 10 3 program Lorg/graalvm/polyglot/Value;
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 0: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
astore 1
start local 1 1: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
l2i
2: ireturn
end local 1 3: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
astore 1
start local 1 4: aload 1
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 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 start local 1 0: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberReadable:(Ljava/lang/Object;Ljava/lang/String;)Z
ireturn
end local 1 end local 0 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 start local 1 0: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.InteropException
astore 2
start local 2 3: aload 2
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 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 0: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
ireturn
end local 0 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=2, args_size=1
start local 0 0: ldc "test-custom-variables-scope-language"
ldc "test"
invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
astore 1
start local 1 1: aload 0
aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testVariablesScopeInstrument"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.assureEnabled:(Lorg/graalvm/polyglot/Instrument;)V
2: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument;
new com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeTester
dup
invokespecial com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeTester.<init>:()V
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.setTester:(Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument$Tester;)V
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
4: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.INSTANCE:Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$TestScopeInstrument;
invokevirtual com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument.checkForFailure:()V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest;
1 6 1 source Lorg/graalvm/polyglot/Source;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
private static void createDefaultScopeLanguage(org.graalvm.polyglot.Context);
descriptor: (Lorg/graalvm/polyglot/Context;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$1
dup
invokespecial com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$1.<init>:()V
astore 1
start local 1 1: aload 1
invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.setDelegate:(Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
pop
2: aload 0
ldc "proxyLanguage"
invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Lorg/graalvm/polyglot/Context;
1 4 1 language Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
MethodParameters:
Name Flags
context
}
SourceFile: "VariablesScopeTest.java"
NestMembers:
com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$1 com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$1$1 com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeLanguage com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeLanguage$CustomRoot com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeLanguage$CustomRootBlockNode com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeLanguage$CustomScopeNode com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeLanguage$TopScopeObject com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeTester com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultRootBlockNode com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultStatementNode com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$ILScopeTester com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestObject com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestObject$Members com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument$1 com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument$Tester
InnerClasses:
com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$1
public CustomScopeLanguage = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeLanguage of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
private CustomScopeTester = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$CustomScopeTester of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
DefaultRootBlockNode = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultRootBlockNode of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
private DefaultScopeTester = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
DefaultStatementNode = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultStatementNode of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
private ILScopeTester = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$ILScopeTester of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
final TestObject = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestObject of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
public TestScopeInstrument = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
abstract Tester = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument$Tester of com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument
public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source