class com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester implements com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$ScopeTester
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$DefaultScopeTester;
public void testScope(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: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
aload 3
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 4
start local 4 1: aload 2
aconst_null
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
start local 5 2: 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 6
start local 6 3: iload 6
iconst_1
if_icmple 26
iload 6
bipush 6
if_icmpge 26
4: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", function name: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "testFunction"
aload 5
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
5: iconst_0
iload 6
iconst_2
isub
invokestatic java.lang.Math.max:(II)I
iconst_2
invokestatic java.lang.Math.min:(II)I
istore 7
start local 7 6: aload 4
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeyList:(Ljava/lang/Object;)Ljava/util/List;
astore 9
start local 9 7: aload 9
ldc "this"
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
8: aload 9
invokeinterface java.util.List.size:()I
istore 8
start local 8 9: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
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 2
iload 8
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
10: ldc "Var a: "
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
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
11: ldc "Var b: "
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
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
12: iload 7
iconst_1
if_icmplt 14
13: ldc "Var a: "
bipush 10
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 4
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
14: StackMap locals: com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester com.oracle.truffle.api.instrumentation.TruffleInstrument$Env com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.VirtualFrame java.lang.Object java.lang.Object int int int java.util.List
StackMap stack:
iload 7
iconst_2
if_icmplt 16
15: ldc "Var b: "
bipush 20
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 4
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
16: StackMap locals:
StackMap stack:
aload 5
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeyList:(Ljava/lang/Object;)Ljava/util/List;
astore 9
17: aload 9
ldc "this"
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
18: aload 9
invokeinterface java.util.List.size:()I
istore 8
19: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
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 2
iload 8
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
20: ldc "Var a: "
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
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
21: ldc "Var b: "
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
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
22: iload 7
iconst_1
if_icmplt 24
23: 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 5
ldc "a"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
24: StackMap locals:
StackMap stack:
iload 7
iconst_2
if_icmplt 26
25: 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 5
ldc "b"
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isNull:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 9 end local 8 end local 7 26: StackMap locals:
StackMap stack:
iload 6
bipush 6
if_icmpne 28
27: aload 1
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester.testGlobalScope:(Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
28: StackMap locals:
StackMap stack:
return
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 29 0 this Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$DefaultScopeTester;
0 29 1 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
0 29 2 node Lcom/oracle/truffle/api/nodes/Node;
0 29 3 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 29 4 dynamicScope Ljava/lang/Object;
2 29 5 lexicalScope Ljava/lang/Object;
3 29 6 line I
6 26 7 setVars I
9 26 8 varCount I
7 26 9 keyList Ljava/util/List<Ljava/lang/String;>;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
env
node
frame
private static void testGlobalScope(com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
descriptor: (Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, 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 "js"
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: ldc "global"
aload 1
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getScopeName:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 1
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeys:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 3: aload 2
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
4: ldc "number of keys >= 1"
aload 2
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getSize:(Ljava/lang/Object;)I
iconst_1
if_icmplt 5
iconst_1
goto 6
StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.lang.Object java.lang.Object
StackMap stack: java.lang.String
5: iconst_0
StackMap locals: com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.lang.Object java.lang.Object
StackMap stack: java.lang.String int
6: invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
7: ldc "testFunction"
astore 3
start local 3 8: aload 2
ldc "testFunction"
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$DefaultScopeTester.hasValue:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
9: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 4
start local 4 10: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isExecutable:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
11: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
1 12 1 globalScope Ljava/lang/Object;
3 12 2 keys Ljava/lang/Object;
8 12 3 functionName Ljava/lang/String;
10 12 4 function Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
env
private static boolean hasValue(java.lang.Object, java.lang.String);
descriptor: (Ljava/lang/Object;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getSize:(Ljava/lang/Object;)I
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 7
3: StackMap locals: int int
StackMap stack:
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
iload 3
i2l
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 4
start local 4 4: aload 4
instanceof java.lang.String
ifeq 6
aload 1
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_1
ireturn
end local 4 6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 2
if_icmplt 3
end local 3 8: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 object Ljava/lang/Object;
0 9 1 key Ljava/lang/String;
1 9 2 size I
2 8 3 i I
4 6 4 read Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.InvalidArrayIndexException
MethodParameters:
Name Flags
object
key
}
SourceFile: "ScopeInstrumentTest.java"
NestHost: com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest
InnerClasses:
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