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: 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: 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 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;
public void setup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
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: return
end local 0 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 0: aload 0
getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.close:()V
1: return
end local 0 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 0: ldc "Instrument not found"
aload 0
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
ldc Ljava/lang/Object;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
pop
2: 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: return
end local 0 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 0: 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
start local 1 1: 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: aload 0
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: 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: aload 0
getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
5: 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: return
end local 1 end local 0 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 0: 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
start local 1 1: 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: aload 0
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: 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: aload 0
getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
5: 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: return
end local 1 end local 0 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 0: 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
start local 1 1: 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: aload 0
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: 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: aload 0
getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
5: 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: return
end local 1 end local 0 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 0: 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
start local 1 1: 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: aload 0
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: 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: aload 0
getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
5: 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: return
end local 1 end local 0 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 0: aload 0
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: return
end local 0 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 0: aload 0
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: return
end local 0 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 start local 1 start local 2 0: ldc "js"
aload 1
invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
astore 3
start local 3 1: 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: aload 0
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: iconst_2
newarray 10
astore 4
start local 4 4: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest$TestJSScopeInstrument.instance:Lcom/oracle/truffle/js/test/instrumentation/ScopeInstrumentTest$TestJSScopeInstrument;
aload 2
aload 4
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: aload 0
getfield com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.context:Lorg/graalvm/polyglot/Context;
aload 3
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
6: ldc "Async function scope inspected"
aload 4
iconst_1
iaload
i2l
lconst_1
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
7: ldc "All scopes have been entered"
ldc 9
aload 4
iconst_0
iaload
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.NODE_LIBRARY:Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 0
aload 1
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: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.NODE_LIBRARY:Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 0
aload 1
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 end local 0 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 0: 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
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 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 0: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 0 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 0: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
l2i
ireturn
end local 0 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 0: aload 0
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeys:(Ljava/lang/Object;)Ljava/lang/Object;
astore 1
start local 1 1: aload 1
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getSize:(Ljava/lang/Object;)I
istore 2
start local 2 2: new java.util.ArrayList
dup
iload 2
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 7
5: StackMap locals: java.lang.Object java.lang.Object int java.util.List int
StackMap stack:
aload 3
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
iload 4
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: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 2
if_icmplt 5
end local 4 8: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 1
aload 2
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
start local 3 1: aload 1
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
start local 4 2: ldc "Function name"
ldc "testParams"
aload 3
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: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc 2
iload 4
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
4: aload 3
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeyList:(Ljava/lang/Object;)Ljava/util/List;
astore 5
start local 5 5: aload 5
ldc "this"
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
6: aload 5
invokeinterface java.util.List.size:()I
istore 6
start local 6 7: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
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
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
8: ldc "Param a"
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
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: ldc "Param b"
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
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: ldc "Param c"
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
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: ldc "Param d"
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
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: 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
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: 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
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: 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
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: 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
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 end local 5 end local 4 end local 3 16: return
end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 1
aload 2
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
start local 3 1: aload 1
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
start local 4 2: ldc "Function name"
ldc "testParams"
aload 3
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: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc 2
iload 4
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
4: aload 3
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeys:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 5: aload 5
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getSize:(Ljava/lang/Object;)I
istore 6
start local 6 6: iconst_0
istore 7
start local 7 7: goto 15
8: 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
iload 7
i2l
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 8
start local 8 9: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
10: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
astore 9
start local 9 11: aload 9
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
12: aload 9
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
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: aload 9
lconst_1
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
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 end local 8 14: iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iload 6
if_icmplt 8
end local 7 end local 6 end local 5 end local 4 end local 3 16: return
end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 1
aload 2
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
start local 3 1: aload 1
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
start local 4 2: ldc "Function name"
ldc "testFunction"
aload 3
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: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
lconst_1
iload 4
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
4: aload 3
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeys:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 5: aload 5
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getSize:(Ljava/lang/Object;)I
istore 6
start local 6 6: iconst_0
istore 7
start local 7 7: goto 18
8: 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
iload 7
i2l
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 8
start local 8 9: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
10: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
astore 9
start local 9 11: getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.NODE_LIBRARY:Lcom/oracle/truffle/api/interop/NodeLibrary;
aload 1
aload 2
invokevirtual com.oracle.truffle.api.interop.NodeLibrary.hasReceiverMember:(Ljava/lang/Object;Lcom/oracle/truffle/api/frame/Frame;)Z
ifeq 14
12: 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
aload 2
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
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
13: goto 17
14: StackMap locals: java.lang.Object java.lang.String
StackMap stack:
aload 9
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
15: aload 9
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
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: aload 9
iconst_2
iload 7
iadd
i2l
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 8
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 end local 8 17: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
18: iload 7
iload 6
if_icmplt 8
end local 7 end local 6 end local 5 end local 4 end local 3 19: return
end local 2 end local 1 end local 0 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 start local 3 start local 4 0: aload 3
aload 4
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 1: aload 5
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getScopeName:(Ljava/lang/Object;)Ljava/lang/String;
astore 6
start local 6 2: aload 0
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
3: aload 5
invokestatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.getKeyList:(Ljava/lang/Object;)Ljava/util/List;
astore 7
start local 7 4: aload 7
ldc "this"
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
5: aload 7
invokeinterface java.util.List.size:()I
istore 8
start local 8 6: aload 3
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
start local 9 7: new java.lang.StringBuilder
dup
ldc "Line = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 9
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
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
lconst_1
iload 8
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
8: ldc "Param x"
getstatic com.oracle.truffle.js.test.instrumentation.ScopeInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
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: 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
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: aload 1
iconst_1
iconst_1
iastore
end local 9 end local 8 end local 7 11: StackMap locals: java.lang.Object java.lang.String
StackMap stack:
aload 1
iconst_0
dup2
iaload
iconst_1
iadd
iastore
end local 6 end local 5 12: return
end local 4 end local 3 end local 2 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