class com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester implements com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$TestScopeInstrument$Tester
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester
super_class: java.lang.Object
{
private final java.lang.StringBuilder visitedLocations;
descriptor: Ljava/lang/StringBuilder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
putfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester.visitedLocations:Ljava/lang/StringBuilder;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$DefaultScopeTester;
public void doTestScope(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/VirtualFrame;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 2
aconst_null
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: invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 2
aload 3
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
2: invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 2
aconst_null
iload 4
invokevirtual com.oracle.truffle.api.interop.NodeLibrary.getScope:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;Z)Ljava/lang/Object;
astore 5
start local 5 3: invokestatic com.oracle.truffle.api.interop.NodeLibrary.getUncached:()Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 2
aload 3
iload 4
invokevirtual com.oracle.truffle.api.interop.NodeLibrary.getScope:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;Z)Ljava/lang/Object;
astore 6
start local 6 4: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasScopeParent:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
5: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 6
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasScopeParent:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
6: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
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;
astore 7
start local 7 7: aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
istore 8
start local 8 8: iload 8
iconst_1
if_icmpne 17
9: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", scope name: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "local"
aload 7
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
10: ldc "Lexical arguments"
lconst_0
aload 5
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.getKeySize:(Ljava/lang/Object;)I
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
11: ldc "Dunamic arguments"
ldc 2
aload 6
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.getKeySize:(Ljava/lang/Object;)I
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
12: ldc "Argument 0: "
aload 6
ldc "0"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.contains:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
13: ldc "Argument 1: "
aload 6
ldc "1"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.contains:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
14: ldc "Argument 0: "
iconst_4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 6
ldc "0"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.read:(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: ldc "Argument 1: "
iconst_5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 6
ldc "1"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.read:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
16: goto 45
17: StackMap locals: com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.VirtualFrame int java.lang.Object java.lang.Object java.lang.String int
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", scope name: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "local"
aload 7
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
18: aload 5
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 9
start local 9 19: iload 4
ifeq 20
iconst_2
goto 21
StackMap locals: com.oracle.truffle.api.interop.TruffleObject
StackMap stack:
20: iconst_3
StackMap locals:
StackMap stack: int
21: istore 10
start local 10 22: aload 9
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.getKeySize:(Ljava/lang/Object;)I
istore 11
start local 11 23: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
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;
iload 10
i2l
iload 11
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
24: iload 10
iconst_1
if_icmplt 27
25: ldc "Var a: "
aload 9
ldc "a"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.contains:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
26: aload 9
ldc "a"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.read:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.isNull:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
27: StackMap locals: int int
StackMap stack:
iload 10
iconst_2
if_icmplt 30
28: ldc "Var b: "
aload 9
ldc "b"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.contains:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
29: aload 9
ldc "b"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.read:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.isNull:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
30: StackMap locals:
StackMap stack:
iload 10
iconst_3
if_icmplt 33
31: ldc "Var n: "
aload 9
ldc "n"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.contains:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
32: aload 9
ldc "n"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.read:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.isNull:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
33: StackMap locals:
StackMap stack:
aload 6
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 9
34: iload 4
ifeq 35
iconst_1
goto 36
StackMap locals:
StackMap stack:
35: iconst_2
StackMap locals:
StackMap stack: int
36: istore 10
37: aload 9
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.getKeySize:(Ljava/lang/Object;)I
istore 11
38: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
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;
iload 10
i2l
iload 11
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
39: iload 10
iconst_1
if_icmplt 42
40: ldc "Var a: "
aload 9
ldc "a"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.contains:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
41: ldc "Var a: "
bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 9
ldc "a"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.read:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
42: StackMap locals:
StackMap stack:
iload 10
iconst_2
if_icmplt 45
43: ldc "Var n: "
aload 9
ldc "n"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.contains:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
44: ldc "Var n: "
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 9
ldc "n"
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.read:(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 11 end local 10 end local 9 45: StackMap locals:
StackMap stack:
iload 8
iconst_2
if_icmpne 47
46: aload 1
invokestatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester.doTestTopScope:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
47: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester.visitedLocations:Ljava/lang/StringBuilder;
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
48: aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester.visitedLocations:Ljava/lang/StringBuilder;
iload 4
ifeq 49
ldc "Enter"
goto 50
StackMap locals:
StackMap stack: java.lang.StringBuilder
49: ldc "Exit"
StackMap locals: com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.VirtualFrame int java.lang.Object java.lang.Object java.lang.String int
StackMap stack: java.lang.StringBuilder java.lang.String
50: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
51: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$DefaultScopeTester;
0 52 1 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
0 52 2 node Lcom/oracle/truffle/api/nodes/Node;
0 52 3 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 52 4 nodeEnter Z
3 52 5 lexicalScope Ljava/lang/Object;
4 52 6 dynamicScope Ljava/lang/Object;
7 52 7 scopeName Ljava/lang/String;
8 52 8 line I
19 45 9 vars Lcom/oracle/truffle/api/interop/TruffleObject;
22 45 10 numVars I
23 45 11 varSize I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
env
node
frame
nodeEnter
private static void doTestTopScope(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getLanguages:()Ljava/util/Map;
ldc "instrumentation-test-language"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.nodes.LanguageInfo
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getScope:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)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.hasScopeParent:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
2: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
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;
astore 2
start local 2 3: ldc "global"
aload 2
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
5: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 6: aload 3
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
7: getstatic com.oracle.truffle.api.instrumentation.test.VariablesScopeTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 4
start local 4 8: lconst_0
aload 4
invokevirtual java.lang.Number.intValue:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
1 10 1 scope Ljava/lang/Object;
3 10 2 scopeName Ljava/lang/String;
6 10 3 keys Ljava/lang/Object;
8 10 4 size Ljava/lang/Number;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
env
private java.lang.String getVisitedLocations();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester.visitedLocations:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/test/VariablesScopeTest$DefaultScopeTester;
}
SourceFile: "VariablesScopeTest.java"
NestHost: com.oracle.truffle.api.instrumentation.test.VariablesScopeTest
InnerClasses:
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
private DefaultScopeTester = com.oracle.truffle.api.instrumentation.test.VariablesScopeTest$DefaultScopeTester 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