public class com.oracle.truffle.sl.test.SLInstrumentTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.sl.test.SLInstrumentTest
super_class: java.lang.Object
{
static final com.oracle.truffle.api.interop.InteropLibrary INTEROP;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/interop/InteropLibrary;
invokestatic com.oracle.truffle.api.library.LibraryFactory.resolve:(Ljava/lang/Class;)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.sl.test.SLInstrumentTest.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 java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/test/SLInstrumentTest;
public void testLexicalScopes();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=1
start local 0 0: ldc "function test(n) {\n a = 1;\n if (a > 0) {\n b = 10;\n println(b);\n }\n if (a == 1) {\n b = 20;\n a = 0;\n c = 1;\n if (b > 0) {\n a = 4;\n b = 5;\n c = 6;\n d = 7;\n println(d);\n }\n e = 30;\n }\n f = 40;\n println(b);\n println(a);\n}\nfunction main() {\n test(\"n_n\");\n}"
astore 1
start local 1 1: ldc "sl"
aload 1
ldc "testing"
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 2: aconst_null
astore 4
aconst_null
astore 5
3: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
new com.oracle.truffle.sl.test.SLInstrumentTest$1
dup
aload 0
invokespecial com.oracle.truffle.sl.test.SLInstrumentTest$1.<init>:(Lcom/oracle/truffle/sl/test/SLInstrumentTest;)V
invokevirtual org.graalvm.polyglot.Engine$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
4: invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
5: astore 6
start local 6 6: aload 6
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testEnvironmentHandlerInstrument"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
astore 7
start local 7 7: aload 7
ldc Lcom/oracle/truffle/sl/test/SLInstrumentTest$Environment;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.sl.test.SLInstrumentTest$Environment
getfield com.oracle.truffle.sl.test.SLInstrumentTest$Environment.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
astore 8
start local 8 8: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 9: aload 8
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
aload 2
invokevirtual org.graalvm.polyglot.Source.getLineCount:()I
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.lineIn:(II)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
new com.oracle.truffle.sl.test.SLInstrumentTest$2
dup
aload 0
aload 3
invokespecial com.oracle.truffle.sl.test.SLInstrumentTest$2.<init>:(Lcom/oracle/truffle/sl/test/SLInstrumentTest;Ljava/util/List;)V
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
pop
10: iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 6
invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
end local 8 end local 7 11: aload 6
ifnull 17
aload 6
invokevirtual org.graalvm.polyglot.Engine.close:()V
goto 17
end local 3 StackMap locals: com.oracle.truffle.sl.test.SLInstrumentTest java.lang.String org.graalvm.polyglot.Source top java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Engine
StackMap stack: java.lang.Throwable
12: astore 4
aload 6
ifnull 13
aload 6
invokevirtual org.graalvm.polyglot.Engine.close:()V
end local 6 StackMap locals:
StackMap stack:
13: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 5
aload 4
ifnonnull 15
aload 5
astore 4
goto 16
StackMap locals:
StackMap stack:
15: aload 4
aload 5
if_acmpeq 16
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 4
athrow
start local 3 17: StackMap locals: com.oracle.truffle.sl.test.SLInstrumentTest java.lang.String org.graalvm.polyglot.Source java.util.List
StackMap stack:
aload 3
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 3
invokeinterface java.util.List.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/sl/test/SLInstrumentTest;
1 19 1 code Ljava/lang/String;
2 19 2 source Lorg/graalvm/polyglot/Source;
9 12 3 throwables Ljava/util/List<Ljava/lang/Throwable;>;
17 19 3 throwables Ljava/util/List<Ljava/lang/Throwable;>;
6 13 6 engine Lorg/graalvm/polyglot/Engine;
7 11 7 envInstr Lorg/graalvm/polyglot/Instrument;
8 11 8 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
Exception table:
from to target type
6 11 12 any
3 14 14 any
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
private static void verifyLexicalScopes(boolean, java.lang.Object[], java.lang.Object[], int, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: (Z[Ljava/lang/Object;[Ljava/lang/Object;ILcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 3
tableswitch { // 1 - 25
1: 1
2: 2
3: 11
4: 17
5: 32
6: 125
7: 11
8: 17
9: 32
10: 32
11: 51
12: 60
13: 60
14: 60
15: 60
16: 86
17: 125
18: 98
19: 125
20: 110
21: 110
22: 110
23: 125
24: 119
25: 119
default: 125
}
1: StackMap locals:
StackMap stack:
goto 126
2: StackMap locals:
StackMap stack:
aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
3: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
4: iload 0
ifeq 7
5: aload 1
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
9: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
10: goto 126
11: StackMap locals:
StackMap stack:
aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
12: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
13: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
14: aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
15: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
16: goto 126
17: StackMap locals:
StackMap stack:
aload 1
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
18: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
19: iload 3
iconst_4
if_icmpne 20
ldc 10
goto 21
StackMap locals:
StackMap stack:
20: ldc 20
StackMap locals:
StackMap stack: long
21: lstore 6
start local 6 22: iload 0
ifeq 25
23: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
24: goto 26
25: StackMap locals: long
StackMap stack:
aload 1
bipush 6
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "n"
aastore
dup
iconst_3
ldc "n_n"
aastore
dup
iconst_4
ldc "a"
aastore
dup
iconst_5
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
26: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
27: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
28: aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
29: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
30: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
31: goto 126
end local 6 32: StackMap locals:
StackMap stack:
aload 1
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
33: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
34: iload 3
bipush 10
if_icmpeq 35
iload 3
bipush 9
if_icmpne 36
iload 0
ifne 36
StackMap locals:
StackMap stack:
35: lconst_0
goto 37
StackMap locals:
StackMap stack:
36: lconst_1
StackMap locals:
StackMap stack: long
37: lstore 8
start local 8 38: iload 3
iconst_5
if_icmpne 39
ldc 10
goto 40
StackMap locals: int java.lang.Object[] java.lang.Object[] int com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame top top long
StackMap stack:
39: ldc 20
StackMap locals:
StackMap stack: long
40: lstore 6
start local 6 41: iload 0
ifne 42
iload 3
bipush 10
if_icmpeq 44
42: StackMap locals: int java.lang.Object[] java.lang.Object[] int com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame long long
StackMap stack:
aload 1
bipush 6
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "n"
aastore
dup
iconst_3
ldc "n_n"
aastore
dup
iconst_4
ldc "a"
aastore
dup
iconst_5
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
43: goto 45
44: StackMap locals:
StackMap stack:
aload 1
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "c"
aastore
dup
iconst_3
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "n"
aastore
dup
iconst_5
ldc "n_n"
aastore
dup
bipush 6
ldc "a"
aastore
dup
bipush 7
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
45: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
46: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
47: aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
48: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
49: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
50: goto 126
end local 8 end local 6 51: StackMap locals:
StackMap stack:
aload 1
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
52: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
53: aload 1
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
ldc 20
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "c"
aastore
dup
iconst_3
lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "n"
aastore
dup
iconst_5
ldc "n_n"
aastore
dup
bipush 6
ldc "a"
aastore
dup
bipush 7
lconst_0
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
54: aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
55: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
56: aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
57: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
lconst_0
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
58: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
59: goto 126
60: StackMap locals:
StackMap stack:
aload 1
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
61: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
62: iload 3
bipush 12
if_icmpne 63
iload 0
ifeq 63
lconst_0
goto 64
StackMap locals:
StackMap stack:
63: ldc 4
StackMap locals:
StackMap stack: long
64: lstore 8
start local 8 65: iload 3
bipush 13
if_icmplt 66
iload 3
bipush 13
if_icmpne 67
iload 0
ifeq 67
StackMap locals: int java.lang.Object[] java.lang.Object[] int com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame top top long
StackMap stack:
66: ldc 20
goto 68
StackMap locals:
StackMap stack:
67: ldc 5
StackMap locals:
StackMap stack: long
68: lstore 6
start local 6 69: iload 3
bipush 14
if_icmplt 70
iload 3
bipush 14
if_icmpne 71
iload 0
ifeq 71
StackMap locals: int java.lang.Object[] java.lang.Object[] int com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame long long
StackMap stack:
70: lconst_1
goto 72
StackMap locals:
StackMap stack:
71: ldc 6
StackMap locals:
StackMap stack: long
72: lstore 10
start local 10 73: iload 0
ifne 74
iload 3
bipush 15
if_icmpeq 76
74: StackMap locals: long
StackMap stack:
aload 1
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "c"
aastore
dup
iconst_3
lload 10
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "n"
aastore
dup
iconst_5
ldc "n_n"
aastore
dup
bipush 6
ldc "a"
aastore
dup
bipush 7
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
75: goto 77
76: StackMap locals:
StackMap stack:
aload 1
bipush 10
anewarray java.lang.Object
dup
iconst_0
ldc "d"
aastore
dup
iconst_1
ldc 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "b"
aastore
dup
iconst_3
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "c"
aastore
dup
iconst_5
lload 10
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
bipush 6
ldc "n"
aastore
dup
bipush 7
ldc "n_n"
aastore
dup
bipush 8
ldc "a"
aastore
dup
bipush 9
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
77: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
78: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
79: aload 1
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
80: aload 1
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "c"
aastore
dup
iconst_3
lload 10
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "n"
aastore
dup
iconst_5
ldc "n_n"
aastore
dup
bipush 6
ldc "a"
aastore
dup
bipush 7
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
81: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
82: aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
83: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
lload 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
84: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
85: goto 126
end local 10 end local 8 end local 6 86: StackMap locals:
StackMap stack:
aload 1
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
87: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
88: aload 1
bipush 10
anewarray java.lang.Object
dup
iconst_0
ldc "d"
aastore
dup
iconst_1
ldc 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "b"
aastore
dup
iconst_3
ldc 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "c"
aastore
dup
iconst_5
ldc 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
bipush 6
ldc "n"
aastore
dup
bipush 7
ldc "n_n"
aastore
dup
bipush 8
ldc "a"
aastore
dup
bipush 9
ldc 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
89: aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
90: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
91: aload 1
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
92: aload 1
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
ldc 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "c"
aastore
dup
iconst_3
ldc 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "n"
aastore
dup
iconst_5
ldc "n_n"
aastore
dup
bipush 6
ldc "a"
aastore
dup
bipush 7
ldc 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
93: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
94: aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
95: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
ldc 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
96: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
97: goto 126
98: StackMap locals:
StackMap stack:
aload 1
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
99: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
100: iload 0
ifeq 103
101: aload 1
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
ldc 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "c"
aastore
dup
iconst_3
ldc 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "n"
aastore
dup
iconst_5
ldc "n_n"
aastore
dup
bipush 6
ldc "a"
aastore
dup
bipush 7
ldc 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
102: goto 104
103: StackMap locals:
StackMap stack:
aload 1
bipush 10
anewarray java.lang.Object
dup
iconst_0
ldc "b"
aastore
dup
iconst_1
ldc 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc "c"
aastore
dup
iconst_3
ldc 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "e"
aastore
dup
iconst_5
ldc 30
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
bipush 6
ldc "n"
aastore
dup
bipush 7
ldc "n_n"
aastore
dup
bipush 8
ldc "a"
aastore
dup
bipush 9
ldc 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
104: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
105: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
106: aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
107: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
ldc 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
108: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
109: goto 126
110: StackMap locals:
StackMap stack:
aload 1
ldc "test"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
111: aload 2
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
112: iload 3
bipush 20
if_icmpne 115
iload 0
ifeq 115
113: aload 1
iconst_4
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
ldc 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
114: goto 116
115: StackMap locals:
StackMap stack:
aload 1
bipush 6
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "n_n"
aastore
dup
iconst_2
ldc "a"
aastore
dup
iconst_3
ldc 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc "f"
aastore
dup
iconst_5
ldc 40
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
116: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
117: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
118: goto 126
119: StackMap locals:
StackMap stack:
aload 1
ldc "main"
aload 4
aload 5
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
120: aload 2
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
121: aload 1
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkVars:([Ljava/lang/Object;[Ljava/lang/Object;)V
122: aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
123: aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.getParentScopes:([Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
124: goto 126
125: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Untested line: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
126: StackMap locals:
StackMap stack:
return
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 127 0 onEnter Z
0 127 1 scopes [Ljava/lang/Object;
0 127 2 arguments [Ljava/lang/Object;
0 127 3 line I
0 127 4 node Lcom/oracle/truffle/api/nodes/Node;
0 127 5 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
22 32 6 bVal J
41 51 6 bVal J
69 86 6 bVal J
38 51 8 aVal J
65 86 8 aVal J
73 86 10 cVal J
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.InvalidArrayIndexException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
onEnter
scopes
arguments
line
node
frame
private static void checkRootNode(java.lang.Object[], java.lang.String, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: ([Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 4
StackMap locals: java.lang.Object[] java.lang.String com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.frame.MaterializedFrame top int int java.lang.Object[]
StackMap stack:
1: aload 7
iload 5
aaload
astore 4
start local 4 2: aload 4
aload 1
aload 2
aload 3
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkRootNode:(Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
end local 4 3: iinc 5 1
StackMap locals:
StackMap stack:
4: iload 5
iload 6
if_icmplt 1
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 scopes [Ljava/lang/Object;
0 6 1 name Ljava/lang/String;
0 6 2 node Lcom/oracle/truffle/api/nodes/Node;
0 6 3 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
2 3 4 scope Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
scopes
name
node
frame
private static void checkRootNode(java.lang.Object, java.lang.String, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.MaterializedFrame);
descriptor: (Ljava/lang/Object;Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/MaterializedFrame;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.toDisplayString:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
astore 4
start local 4 3: aload 2
aload 4
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.findScopeNode:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
astore 5
start local 5 4: aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 5
instanceof com.oracle.truffle.api.nodes.RootNode
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
5: aload 1
aload 5
checkcast com.oracle.truffle.api.nodes.RootNode
invokevirtual com.oracle.truffle.api.nodes.RootNode.getName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
6: aload 3
invokeinterface com.oracle.truffle.api.frame.MaterializedFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aload 5
checkcast com.oracle.truffle.api.nodes.RootNode
invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: return
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 8 0 scope Ljava/lang/Object;
0 8 1 name Ljava/lang/String;
0 8 2 node Lcom/oracle/truffle/api/nodes/Node;
0 8 3 frame Lcom/oracle/truffle/api/frame/MaterializedFrame;
3 8 4 section Lcom/oracle/truffle/api/source/SourceSection;
4 8 5 scopeNode Lcom/oracle/truffle/api/nodes/Node;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
scope
name
node
frame
private static void checkBlock(java.lang.Object[], com.oracle.truffle.api.nodes.Node);
descriptor: ([Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: java.lang.Object[] com.oracle.truffle.api.nodes.Node top int int java.lang.Object[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
aload 1
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.checkBlock:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 scopes [Ljava/lang/Object;
0 6 1 node Lcom/oracle/truffle/api/nodes/Node;
2 3 2 scope Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
scopes
node
private static void checkBlock(java.lang.Object, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: ldc "block"
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.toDisplayString:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
1: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getSourceLocation:(Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
astore 2
start local 2 3: aload 1
aload 2
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.findScopeNode:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
astore 3
start local 3 4: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 3
instanceof com.oracle.truffle.api.nodes.RootNode
invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 scope Ljava/lang/Object;
0 6 1 node Lcom/oracle/truffle/api/nodes/Node;
3 6 2 section Lcom/oracle/truffle/api/source/SourceSection;
4 6 3 scopeNode Lcom/oracle/truffle/api/nodes/Node;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
scope
node
private static com.oracle.truffle.api.nodes.Node findScopeNode(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/nodes/Node;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 2
start local 2 1: aload 1
aload 2
invokevirtual com.oracle.truffle.api.nodes.RootNode.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.source.SourceSection.equals:(Ljava/lang/Object;)Z
ifeq 3
2: aload 2
areturn
3: StackMap locals: com.oracle.truffle.api.nodes.RootNode
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
start local 3 4: goto 8
5: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 1
aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.source.SourceSection.equals:(Ljava/lang/Object;)Z
ifeq 7
6: goto 9
7: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
8: StackMap locals:
StackMap stack:
aload 3
ifnonnull 5
9: StackMap locals:
StackMap stack:
aload 3
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
10: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 node Lcom/oracle/truffle/api/nodes/Node;
0 11 1 section Lcom/oracle/truffle/api/source/SourceSection;
1 11 2 root Lcom/oracle/truffle/api/nodes/RootNode;
4 11 3 scopeNode Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
node
section
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.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberExisting:(Ljava/lang/Object;Ljava/lang/String;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 vars Ljava/lang/Object;
0 1 1 key Ljava/lang/String;
MethodParameters:
Name Flags
vars
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.sl.test.SLInstrumentTest.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: new java.lang.AssertionError
dup
aload 2
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 vars 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
vars
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.sl.test.SLInstrumentTest.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 vars Ljava/lang/Object;
MethodParameters:
Name Flags
vars
private static void checkVars(java.lang.Object[], java.lang.Object[]);
descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;)V
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=13, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 33
2: StackMap locals: int
StackMap stack:
iload 2
aload 0
arraylength
iconst_2
idiv
if_icmpge 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 3
start local 3 5: aload 0
iload 2
aaload
astore 4
start local 4 6: getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMembers:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 7: getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getArraySize:(Ljava/lang/Object;)J
l2i
istore 6
start local 6 8: new java.util.ArrayList
dup
iload 6
invokespecial java.util.ArrayList.<init>:(I)V
astore 7
start local 7 9: iconst_0
istore 8
start local 8 10: goto 13
11: StackMap locals: java.lang.Object[] java.lang.Object[] int int java.lang.Object java.lang.Object int java.util.List int
StackMap stack:
aload 7
getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
iload 8
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
12: iinc 8 1
StackMap locals:
StackMap stack:
13: iload 8
iload 6
if_icmplt 11
end local 8 14: aload 7
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 8
start local 8 15: aload 8
aload 1
arraylength
iconst_2
idiv
i2l
iload 6
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
16: iconst_0
istore 9
start local 9 17: goto 31
18: StackMap locals: java.lang.Object[] java.lang.Object[] int int java.lang.Object java.lang.Object int java.util.List java.lang.String int
StackMap stack:
aload 1
iload 9
aaload
checkcast java.lang.String
astore 10
start local 10 19: new java.lang.StringBuilder
dup
aload 10
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
aload 10
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.contains:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
20: getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
iload 9
iconst_2
idiv
i2l
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readArrayElement:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 11
start local 11 21: aload 8
aload 10
getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 11
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.asString:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
22: getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 11
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasSourceLocation:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
23: iload 3
ifeq 27
24: getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
aload 10
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberWritable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertFalse:(Z)V
25: aload 4
aload 10
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.read:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.isNull:(Ljava/lang/Object;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
26: goto 30
27: StackMap locals: java.lang.String java.lang.Object
StackMap stack:
aload 1
iload 9
iconst_1
iadd
aaload
astore 12
start local 12 28: aload 10
aload 12
aload 4
aload 10
invokestatic com.oracle.truffle.sl.test.SLInstrumentTest.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
29: getstatic com.oracle.truffle.sl.test.SLInstrumentTest.INTEROP:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
aload 10
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMemberWritable:(Ljava/lang/Object;Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 12 end local 11 end local 10 30: StackMap locals:
StackMap stack:
iinc 9 2
StackMap locals:
StackMap stack:
31: iload 9
aload 1
arraylength
if_icmplt 18
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 32: iinc 2 1
StackMap locals: java.lang.Object[] java.lang.Object[] int
StackMap stack:
33: iload 2
aload 0
arraylength
if_icmplt 2
end local 2 34: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 scopes [Ljava/lang/Object;
0 35 1 expected [Ljava/lang/Object;
1 34 2 s I
5 32 3 lexical Z
6 32 4 vars Ljava/lang/Object;
7 32 5 members Ljava/lang/Object;
8 32 6 numMembers I
9 32 7 memberNamesList Ljava/util/List<Ljava/lang/String;>;
10 14 8 i I
15 32 8 memberNames Ljava/lang/String;
17 32 9 i I
19 30 10 name Ljava/lang/String;
21 30 11 member Ljava/lang/Object;
28 30 12 value Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException, com.oracle.truffle.api.interop.InvalidArrayIndexException
MethodParameters:
Name Flags
scopes
expected
private static boolean getParentScopes(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 9
3: StackMap locals: int int
StackMap stack:
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
iload 2
aaload
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasScopeParent:(Ljava/lang/Object;)Z
ifeq 7
4: iconst_1
istore 1
5: aload 0
iload 2
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0
iload 2
aaload
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getScopeParent:(Ljava/lang/Object;)Ljava/lang/Object;
aastore
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
iload 2
aconst_null
aastore
8: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 0
arraylength
if_icmplt 3
end local 2 10: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 scopes [Ljava/lang/Object;
1 11 1 haveParent Z
2 10 2 s I
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
scopes
public void testOutput();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=18, args_size=1
start local 0 0: ldc "function main() {\n f = fac(5);\n println(f);\n}\nfunction fac(n) {\n println(n);\n if (n <= 1) {\n return 1;\n }\n return n * fac(n - 1);\n}\n"
astore 1
start local 1 1: ldc "5\n4\n3\n2\n1\n120\n"
astore 2
start local 2 2: ldc "[5, 4, 3, 2, 1, 120]"
astore 3
start local 3 3: ldc "sl"
aload 1
ldc "testing"
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 4
start local 4 4: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 5
start local 5 5: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
aload 5
invokevirtual org.graalvm.polyglot.Engine$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 6
start local 6 6: iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 6
invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 7
start local 7 7: aload 7
aload 4
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
8: aload 2
astore 8
start local 8 9: aload 8
aload 5
invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: aload 6
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testEnvironmentHandlerInstrument"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
astore 9
start local 9 11: aload 9
ldc Lcom/oracle/truffle/sl/test/SLInstrumentTest$Environment;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.sl.test.SLInstrumentTest$Environment
getfield com.oracle.truffle.sl.test.SLInstrumentTest$Environment.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
astore 10
start local 10 12: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 11
start local 11 13: aload 10
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
aload 11
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachOutConsumer:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
astore 12
start local 12 14: lconst_0
aload 11
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
15: aload 7
aload 4
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
16: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
new java.io.ByteArrayInputStream
dup
aload 11
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 13
start local 13 17: new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
18: aload 8
aload 5
invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: aload 13
invokevirtual java.io.BufferedReader.ready:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
20: aload 3
aload 0
aload 13
invokevirtual com.oracle.truffle.sl.test.SLInstrumentTest.readLinesList:(Ljava/io/BufferedReader;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
21: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 14
start local 14 22: aload 10
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
aload 14
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachOutConsumer:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
astore 15
start local 15 23: lconst_0
aload 14
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
24: aload 7
aload 4
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
25: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
new java.io.ByteArrayInputStream
dup
aload 11
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 13
26: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
new java.io.ByteArrayInputStream
dup
aload 14
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 16
start local 16 27: new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
28: aload 8
aload 5
invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
29: aload 13
invokevirtual java.io.BufferedReader.ready:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
30: aload 16
invokevirtual java.io.BufferedReader.ready:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
31: new java.lang.StringBuilder
dup
aload 3
iconst_0
aload 3
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 17
start local 17 32: aload 17
aload 0
aload 13
invokevirtual com.oracle.truffle.sl.test.SLInstrumentTest.readLinesList:(Ljava/io/BufferedReader;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
33: aload 3
aload 0
aload 16
invokevirtual com.oracle.truffle.sl.test.SLInstrumentTest.readLinesList:(Ljava/io/BufferedReader;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
34: aload 12
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
35: aload 11
invokevirtual java.io.ByteArrayOutputStream.reset:()V
36: aload 14
invokevirtual java.io.ByteArrayOutputStream.reset:()V
37: aload 7
aload 4
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
38: new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
39: aload 8
aload 5
invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
40: lconst_0
aload 11
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
41: aload 14
invokevirtual java.io.ByteArrayOutputStream.size:()I
ifle 42
iconst_1
goto 43
StackMap locals: com.oracle.truffle.sl.test.SLInstrumentTest java.lang.String java.lang.String java.lang.String org.graalvm.polyglot.Source java.io.ByteArrayOutputStream org.graalvm.polyglot.Engine org.graalvm.polyglot.Context java.lang.String org.graalvm.polyglot.Instrument com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.io.ByteArrayOutputStream com.oracle.truffle.api.instrumentation.EventBinding java.io.BufferedReader java.io.ByteArrayOutputStream com.oracle.truffle.api.instrumentation.EventBinding java.io.BufferedReader java.lang.String
StackMap stack:
42: iconst_0
StackMap locals:
StackMap stack: int
43: invokestatic org.junit.Assert.assertTrue:(Z)V
44: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
new java.io.ByteArrayInputStream
dup
aload 14
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 16
45: aload 3
aload 0
aload 16
invokevirtual com.oracle.truffle.sl.test.SLInstrumentTest.readLinesList:(Ljava/io/BufferedReader;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
46: aload 14
invokevirtual java.io.ByteArrayOutputStream.reset:()V
47: aload 15
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
48: aload 7
aload 4
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
49: new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
50: aload 8
aload 5
invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
51: lconst_0
aload 11
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
52: lconst_0
aload 14
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
53: return
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 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 54 0 this Lcom/oracle/truffle/sl/test/SLInstrumentTest;
1 54 1 code Ljava/lang/String;
2 54 2 fullOutput Ljava/lang/String;
3 54 3 fullLines Ljava/lang/String;
4 54 4 source Lorg/graalvm/polyglot/Source;
5 54 5 engineOut Ljava/io/ByteArrayOutputStream;
6 54 6 engine Lorg/graalvm/polyglot/Engine;
7 54 7 context Lorg/graalvm/polyglot/Context;
9 54 8 engineOutput Ljava/lang/String;
11 54 9 outInstr Lorg/graalvm/polyglot/Instrument;
12 54 10 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
13 54 11 consumedOut Ljava/io/ByteArrayOutputStream;
14 54 12 outputConsumerBinding Lcom/oracle/truffle/api/instrumentation/EventBinding<Ljava/io/ByteArrayOutputStream;>;
17 54 13 fromOutReader Ljava/io/BufferedReader;
22 54 14 consumedOut2 Ljava/io/ByteArrayOutputStream;
23 54 15 outputConsumerBinding2 Lcom/oracle/truffle/api/instrumentation/EventBinding<Ljava/io/ByteArrayOutputStream;>;
27 54 16 fromOutReader2 Ljava/io/BufferedReader;
32 54 17 fullLines2x Ljava/lang/String;
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
org.junit.Test()
java.lang.String readLinesList(java.io.BufferedReader);
descriptor: (Ljava/io/BufferedReader;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: goto 6
2: StackMap locals: java.util.List
StackMap stack:
aload 1
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 3
start local 3 3: aload 3
ifnonnull 5
4: goto 7
5: StackMap locals: java.lang.String
StackMap stack:
aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 6: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.BufferedReader.ready:()Z
ifne 2
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/sl/test/SLInstrumentTest;
0 8 1 br Ljava/io/BufferedReader;
1 8 2 lines Ljava/util/List<Ljava/lang/String;>;
3 6 3 line Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
br
public void testRedoIO();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=1
start local 0 0: ldc "function main() {\n a = readln();\n return a;\n}\n"
astore 1
start local 1 1: ldc "sl"
aload 1
ldc "testing"
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 2: iconst_1
anewarray com.oracle.truffle.sl.test.SLInstrumentTest$TestRedoIO
astore 3
start local 3 3: new java.io.ByteArrayInputStream
dup
ldc "O.K."
invokevirtual java.lang.String.getBytes:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 4
start local 4 4: new com.oracle.truffle.sl.test.SLInstrumentTest$3
dup
aload 0
aload 3
aload 4
invokespecial com.oracle.truffle.sl.test.SLInstrumentTest$3.<init>:(Lcom/oracle/truffle/sl/test/SLInstrumentTest;[Lcom/oracle/truffle/sl/test/SLInstrumentTest$TestRedoIO;Ljava/io/InputStream;)V
astore 5
start local 5 5: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
aload 5
invokevirtual org.graalvm.polyglot.Engine$Builder.in:(Ljava/io/InputStream;)Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 6
start local 6 6: aload 6
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testRedoIO"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/sl/test/SLInstrumentTest$TestRedoIO;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.sl.test.SLInstrumentTest$TestRedoIO
astore 7
start local 7 7: aload 3
iconst_0
aload 7
aastore
8: aload 7
getfield com.oracle.truffle.sl.test.SLInstrumentTest$TestRedoIO.inRead:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.drainPermits:()I
pop
9: iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 6
invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 8
start local 8 10: aload 8
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 9
start local 9 11: ldc "O.K."
aload 9
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: aload 7
getfield com.oracle.truffle.sl.test.SLInstrumentTest$TestRedoIO.beforePop:Z
invokestatic org.junit.Assert.assertFalse:(Z)V
13: return
end local 9 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 14 0 this Lcom/oracle/truffle/sl/test/SLInstrumentTest;
1 14 1 code Ljava/lang/String;
2 14 2 ioWait Lorg/graalvm/polyglot/Source;
3 14 3 redoIOPtr [Lcom/oracle/truffle/sl/test/SLInstrumentTest$TestRedoIO;
4 14 4 strIn Ljava/io/InputStream;
5 14 5 delegateInputStream Ljava/io/InputStream;
6 14 6 engine Lorg/graalvm/polyglot/Engine;
7 14 7 redoIO Lcom/oracle/truffle/sl/test/SLInstrumentTest$TestRedoIO;
10 14 8 context Lorg/graalvm/polyglot/Context;
11 14 9 ret Lorg/graalvm/polyglot/Value;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void testEarlyReturn();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=1
start local 0 0: ldc "function main() {\n a = 10;\n b = a;\n // Let fce() warm up and specialize:\n while (a == b && a < 100000) {\n a = fce(a);\n b = b + 1;\n }\n c = a;\n // Run fce() and alter it's return type in an instrument:\n c = fce(c);\n return c;\n}\nfunction fce(x) {\n return x + 1;\n}\n"
astore 1
start local 1 1: ldc "sl"
aload 1
ldc "testing"
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 2: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 3
start local 3 3: invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
aload 3
invokevirtual org.graalvm.polyglot.Engine$Builder.err:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
invokevirtual org.graalvm.polyglot.Engine$Builder.build:()Lorg/graalvm/polyglot/Engine;
astore 4
start local 4 4: iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 4
invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 5
start local 5 5: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 6: aload 6
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
7: ldc 100001
aload 6
invokevirtual org.graalvm.polyglot.Value.asLong:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: aload 5
invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testEarlyReturn"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/sl/test/SLInstrumentTest$EarlyReturnInstrument;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument
astore 7
start local 7 9: aload 7
ldc "fce(a)"
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.fceCode:Ljava/lang/String;
10: aload 7
ldc 200000
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.returnValue:Ljava/lang/Object;
11: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
12: aload 6
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
13: ldc 200001
aload 6
invokevirtual org.graalvm.polyglot.Value.asLong:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
14: aload 7
ldc "Hello!"
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.returnValue:Ljava/lang/Object;
15: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
16: aload 6
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
17: aload 6
invokevirtual org.graalvm.polyglot.Value.isString:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
18: ldc "Hello!1"
aload 6
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: aload 7
ldc "<>"
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.fceCode:Ljava/lang/String;
20: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
21: aload 6
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
22: ldc 100001
aload 6
invokevirtual org.graalvm.polyglot.Value.asLong:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
23: aload 7
ldc "fce(a)"
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.fceCode:Ljava/lang/String;
24: aload 7
new java.math.BigInteger
dup
ldc "-42"
invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.returnValue:Ljava/lang/Object;
25: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
26: iconst_0
istore 8
start local 8 27: goto 30
end local 8 StackMap locals: com.oracle.truffle.sl.test.SLInstrumentTest java.lang.String org.graalvm.polyglot.Source java.io.ByteArrayOutputStream org.graalvm.polyglot.Engine org.graalvm.polyglot.Context org.graalvm.polyglot.Value com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument
StackMap stack: org.graalvm.polyglot.PolyglotException
28: pop
29: iconst_1
istore 8
start local 8 30: StackMap locals: int
StackMap stack:
iload 8
invokestatic org.junit.Assert.assertTrue:(Z)V
31: aload 7
new com.oracle.truffle.sl.runtime.SLBigNumber
dup
new java.math.BigInteger
dup
ldc "-42"
invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
invokespecial com.oracle.truffle.sl.runtime.SLBigNumber.<init>:(Ljava/math/BigInteger;)V
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.returnValue:Ljava/lang/Object;
32: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
33: aload 6
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
34: ldc -41
aload 6
invokevirtual org.graalvm.polyglot.Value.asLong:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
35: aload 7
ldc "fce(c)"
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.fceCode:Ljava/lang/String;
36: aload 7
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.returnValue:Ljava/lang/Object;
37: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
38: aload 6
invokevirtual org.graalvm.polyglot.Value.isBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
39: getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
aload 6
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
40: aload 7
ldc "fce(c)"
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.fceCode:Ljava/lang/String;
41: aload 7
ldc -42.0
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.returnValue:Ljava/lang/Object;
42: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
43: aload 6
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
44: ldc -42.0
aload 6
invokevirtual org.graalvm.polyglot.Value.asDouble:()D
ldc 1.0E-8
invokestatic org.junit.Assert.assertEquals:(DDD)V
45: aload 7
ldc "fce(c)"
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.fceCode:Ljava/lang/String;
46: aload 7
ldc "Hello!"
putfield com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument.returnValue:Ljava/lang/Object;
47: aload 5
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
48: aload 6
invokevirtual org.graalvm.polyglot.Value.isString:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
49: ldc "Hello!"
aload 6
invokevirtual org.graalvm.polyglot.Value.asString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
50: 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 51 0 this Lcom/oracle/truffle/sl/test/SLInstrumentTest;
1 51 1 code Ljava/lang/String;
2 51 2 source Lorg/graalvm/polyglot/Source;
3 51 3 engineOut Ljava/io/ByteArrayOutputStream;
4 51 4 engine Lorg/graalvm/polyglot/Engine;
5 51 5 context Lorg/graalvm/polyglot/Context;
6 51 6 ret Lorg/graalvm/polyglot/Value;
9 51 7 earlyReturn Lcom/oracle/truffle/sl/test/SLInstrumentTest$EarlyReturnInstrument;
27 28 8 interopFailure Z
30 51 8 interopFailure Z
Exception table:
from to target type
25 27 28 Class org.graalvm.polyglot.PolyglotException
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testReplaceNodeReturnValue();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: ldc "java.vm.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
ldc "Graal:graal-enterprise"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
ldc "function main() {\n a = new();\n b = a.rp1;\n return b;\n}\n"
astore 1
start local 1 3: ldc "sl"
aload 1
ldc "testing"
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 4: aload 2
invokestatic com.oracle.truffle.tck.DebuggerTester.getSourceImpl:(Lorg/graalvm/polyglot/Source;)Lcom/oracle/truffle/api/source/Source;
bipush 24
iconst_5
invokevirtual com.oracle.truffle.api.source.Source.createSection:(II)Lcom/oracle/truffle/api/source/SourceSection;
astore 3
start local 3 5: iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
astore 4
start local 4 6: aload 4
invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testNewNodeReplaced"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/sl/test/SLInstrumentTest$NewReplacedInstrument;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.sl.test.SLInstrumentTest$NewReplacedInstrument
astore 5
start local 5 7: aload 5
aload 3
invokevirtual com.oracle.truffle.sl.test.SLInstrumentTest$NewReplacedInstrument.attachAt:(Lcom/oracle/truffle/api/source/SourceSection;)V
8: aload 4
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 6
start local 6 9: ldc "Replaced Value"
aload 6
invokevirtual org.graalvm.polyglot.Value.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: 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 11 0 this Lcom/oracle/truffle/sl/test/SLInstrumentTest;
3 11 1 code Ljava/lang/String;
4 11 2 source Lorg/graalvm/polyglot/Source;
5 11 3 ss Lcom/oracle/truffle/api/source/SourceSection;
6 11 4 context Lorg/graalvm/polyglot/Context;
7 11 5 replaced Lcom/oracle/truffle/sl/test/SLInstrumentTest$NewReplacedInstrument;
9 11 6 ret Lorg/graalvm/polyglot/Value;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testChangeArgumentsOnReenter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: ldc "function main() {\n y = fce(0, 10000);\n return y;\n}\nfunction fce(x, z) {\n y = 2 * x;\n if (y < z) {\n print(\"A bad error.\");\n return 0 - 1;\n } else {\n return y;\n }\n}\n"
astore 1
start local 1 1: ldc "sl"
aload 1
ldc "testing"
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 2: iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
astore 3
start local 3 3: aload 3
invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testIncreaseArgumentOnError"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/sl/test/SLInstrumentTest$IncreaseArgOnErrorInstrument;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.sl.test.SLInstrumentTest$IncreaseArgOnErrorInstrument
astore 4
start local 4 4: aload 4
ldc "A bad error"
invokevirtual com.oracle.truffle.sl.test.SLInstrumentTest$IncreaseArgOnErrorInstrument.attachOn:(Ljava/lang/String;)V
5: aload 3
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 5
start local 5 6: ldc 10000
aload 5
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: return
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 8 0 this Lcom/oracle/truffle/sl/test/SLInstrumentTest;
1 8 1 code Ljava/lang/String;
2 8 2 source Lorg/graalvm/polyglot/Source;
3 8 3 context Lorg/graalvm/polyglot/Context;
4 8 4 incOnError Lcom/oracle/truffle/sl/test/SLInstrumentTest$IncreaseArgOnErrorInstrument;
6 8 5 ret Lorg/graalvm/polyglot/Value;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "SLInstrumentTest.java"
NestMembers:
com.oracle.truffle.sl.test.SLInstrumentTest$1 com.oracle.truffle.sl.test.SLInstrumentTest$2 com.oracle.truffle.sl.test.SLInstrumentTest$3 com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument$1 com.oracle.truffle.sl.test.SLInstrumentTest$Environment com.oracle.truffle.sl.test.SLInstrumentTest$EnvironmentHandlerInstrument com.oracle.truffle.sl.test.SLInstrumentTest$IncreaseArgOnErrorInstrument com.oracle.truffle.sl.test.SLInstrumentTest$IncreaseArgOnErrorInstrument$1 com.oracle.truffle.sl.test.SLInstrumentTest$IncreaseArgOnErrorInstrument$2 com.oracle.truffle.sl.test.SLInstrumentTest$KeysArray com.oracle.truffle.sl.test.SLInstrumentTest$NewReplacedInstrument com.oracle.truffle.sl.test.SLInstrumentTest$NewReplacedInstrument$1 com.oracle.truffle.sl.test.SLInstrumentTest$NewReplacedInstrument$ReplacedTruffleObject com.oracle.truffle.sl.test.SLInstrumentTest$RuntimeInterruptedException com.oracle.truffle.sl.test.SLInstrumentTest$TestRedoIO com.oracle.truffle.sl.test.SLInstrumentTest$TestRedoIO$1 com.oracle.truffle.sl.test.SLInstrumentTest$TestRedoIO$1$1
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
com.oracle.truffle.sl.test.SLInstrumentTest$1
com.oracle.truffle.sl.test.SLInstrumentTest$2
com.oracle.truffle.sl.test.SLInstrumentTest$3
public EarlyReturnInstrument = com.oracle.truffle.sl.test.SLInstrumentTest$EarlyReturnInstrument of com.oracle.truffle.sl.test.SLInstrumentTest
private Environment = com.oracle.truffle.sl.test.SLInstrumentTest$Environment of com.oracle.truffle.sl.test.SLInstrumentTest
public EnvironmentHandlerInstrument = com.oracle.truffle.sl.test.SLInstrumentTest$EnvironmentHandlerInstrument of com.oracle.truffle.sl.test.SLInstrumentTest
public final IncreaseArgOnErrorInstrument = com.oracle.truffle.sl.test.SLInstrumentTest$IncreaseArgOnErrorInstrument of com.oracle.truffle.sl.test.SLInstrumentTest
final KeysArray = com.oracle.truffle.sl.test.SLInstrumentTest$KeysArray of com.oracle.truffle.sl.test.SLInstrumentTest
public final NewReplacedInstrument = com.oracle.truffle.sl.test.SLInstrumentTest$NewReplacedInstrument of com.oracle.truffle.sl.test.SLInstrumentTest
private RuntimeInterruptedException = com.oracle.truffle.sl.test.SLInstrumentTest$RuntimeInterruptedException of com.oracle.truffle.sl.test.SLInstrumentTest
public TestRedoIO = com.oracle.truffle.sl.test.SLInstrumentTest$TestRedoIO of com.oracle.truffle.sl.test.SLInstrumentTest
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
public final Builder = org.graalvm.polyglot.Engine$Builder of org.graalvm.polyglot.Engine
public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source