public class com.oracle.truffle.sl.test.SLDebugDirectTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.sl.test.SLDebugDirectTest
super_class: java.lang.Object
{
private static final java.lang.Object UNASSIGNED;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private com.oracle.truffle.api.debug.Debugger debugger;
descriptor: Lcom/oracle/truffle/api/debug/Debugger;
flags: (0x0002) ACC_PRIVATE
private final java.util.LinkedList<java.lang.Runnable> run;
descriptor: Ljava/util/LinkedList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/LinkedList<Ljava/lang/Runnable;>;
private com.oracle.truffle.api.debug.SuspendedEvent suspendedEvent;
descriptor: Lcom/oracle/truffle/api/debug/SuspendedEvent;
flags: (0x0002) ACC_PRIVATE
private java.lang.Throwable ex;
descriptor: Ljava/lang/Throwable;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Engine engine;
descriptor: Lorg/graalvm/polyglot/Engine;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Context context;
descriptor: Lorg/graalvm/polyglot/Context;
flags: (0x0002) ACC_PRIVATE
protected final java.io.ByteArrayOutputStream out;
descriptor: Ljava/io/ByteArrayOutputStream;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.io.ByteArrayOutputStream err;
descriptor: Ljava/io/ByteArrayOutputStream;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private com.oracle.truffle.api.debug.DebuggerSession session;
descriptor: Lcom/oracle/truffle/api/debug/DebuggerSession;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
2: aload 0
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.out:Ljava/io/ByteArrayOutputStream;
3: aload 0
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.err:Ljava/io/ByteArrayOutputStream;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
public void before();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
1: aload 0
invokestatic org.graalvm.polyglot.Engine.newBuilder:()Lorg/graalvm/polyglot/Engine$Builder;
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.out:Ljava/io/ByteArrayOutputStream;
invokevirtual org.graalvm.polyglot.Engine$Builder.out:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.err:Ljava/io/ByteArrayOutputStream;
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;
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.engine:Lorg/graalvm/polyglot/Engine;
2: aload 0
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "debugger"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/api/debug/Debugger;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.debug.Debugger
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.debugger:Lcom/oracle/truffle/api/debug/Debugger;
3: aload 0
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.debugger:Lcom/oracle/truffle/api/debug/Debugger;
aload 0
invokedynamic onSuspend(Lcom/oracle/truffle/sl/test/SLDebugDirectTest;)Lcom/oracle/truffle/api/debug/SuspendedCallback;
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/debug/SuspendedEvent;)V
com/oracle/truffle/sl/test/SLDebugDirectTest.lambda$0(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V (7)
(Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
invokevirtual com.oracle.truffle.api.debug.Debugger.startSession:(Lcom/oracle/truffle/api/debug/SuspendedCallback;)Lcom/oracle/truffle/api/debug/DebuggerSession;
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
4: aload 0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.engine:Lorg/graalvm/polyglot/Engine;
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;
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
5: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.clear:()V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
RuntimeVisibleAnnotations:
org.junit.Before()
public void dispose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.close:()V
1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.close:()V
2: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.close:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
RuntimeVisibleAnnotations:
org.junit.After()
private static org.graalvm.polyglot.Source createFactorial();
descriptor: ()Lorg/graalvm/polyglot/Source;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "sl"
ldc "function test() {\n res = fac(2);\n println(res);\n return res;\n}\nfunction fac(n) {\n if (n <= 1) {\n return 1;\n }\n nMinusOne = n - 1;\n nMOFact = fac(nMinusOne);\n res = n * nMOFact;\n return res;\n}\n"
1: ldc "factorial.sl"
2: invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
3: invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
4: areturn
LocalVariableTable:
Start End Slot Name Signature
private static org.graalvm.polyglot.Source createFactorialWithDebugger();
descriptor: ()Lorg/graalvm/polyglot/Source;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "sl"
ldc "function test() {\n res = fac(2);\n println(res);\n return res;\n}\nfunction fac(n) {\n if (n <= 1) {\n return 1;\n }\n nMinusOne = n - 1;\n nMOFact = fac(nMinusOne);\n debugger;\n res = n * nMOFact;\n return res;\n}\n"
1: ldc "factorial.sl"
2: invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
3: invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
4: areturn
LocalVariableTable:
Start End Slot Name Signature
private static org.graalvm.polyglot.Source createInteropComputation();
descriptor: ()Lorg/graalvm/polyglot/Source;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "sl"
ldc "function test() {\n}\nfunction interopFunction(notifyHandler) {\n executing = true;\n while (executing == true || executing) {\n executing = notifyHandler.isExecuting;\n }\n return executing;\n}\n"
1: ldc "interopComputation.sl"
2: invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
3: invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
4: areturn
LocalVariableTable:
Start End Slot Name Signature
protected final java.lang.String getOut();
descriptor: ()Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.out:Ljava/io/ByteArrayOutputStream;
invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
protected final java.lang.String getErr();
descriptor: ()Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.err:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.flush:()V
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.err:Ljava/io/ByteArrayOutputStream;
invokestatic com.oracle.truffle.sl.test.SLJavaInteropTest.toUnixString:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
Exception table:
from to target type
0 1 2 Class java.io.IOException
public void testBreakpoint();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.truffle.sl.test.SLDebugDirectTest.createFactorial:()Lorg/graalvm/polyglot/Source;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
aload 1
invokestatic com.oracle.truffle.tck.DebuggerTester.getSourceImpl:(Lorg/graalvm/polyglot/Source;)Lcom/oracle/truffle/api/source/Source;
invokestatic com.oracle.truffle.api.debug.Breakpoint.newBuilder:(Lcom/oracle/truffle/api/source/Source;)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
bipush 8
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.lineIs:(I)Lcom/oracle/truffle/api/debug/Breakpoint$Builder;
invokevirtual com.oracle.truffle.api.debug.Breakpoint$Builder.build:()Lcom/oracle/truffle/api/debug/Breakpoint;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.install:(Lcom/oracle/truffle/api/debug/Breakpoint;)Lcom/oracle/truffle/api/debug/Breakpoint;
pop
2: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
3: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertExecutedOK:()V
4: aload 0
ldc "fac"
bipush 8
iconst_1
5: ldc "return 1"
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
6: ldc "1"
aastore
dup
iconst_2
ldc "nMinusOne"
aastore
dup
iconst_3
7: getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
dup
iconst_4
ldc "nMOFact"
aastore
dup
iconst_5
8: getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
dup
bipush 6
ldc "res"
aastore
dup
bipush 7
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
9: invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
10: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.continueExecution:()V
11: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
ldc "sl"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "test"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 12: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertExecutedOK:()V
13: ldc "2\n"
aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.getOut:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: aload 2
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
15: aload 2
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 16: ldc "Factorial computed OK"
ldc 2
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
1 18 1 factorial Lorg/graalvm/polyglot/Source;
12 18 2 value Lorg/graalvm/polyglot/Value;
16 18 3 n I
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDebuggerBreakpoint();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.truffle.sl.test.SLDebugDirectTest.createFactorialWithDebugger:()Lorg/graalvm/polyglot/Source;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
2: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertExecutedOK:()V
3: aload 0
ldc "fac"
bipush 12
iconst_1
4: ldc "debugger"
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
5: ldc "2"
aastore
dup
iconst_2
ldc "nMinusOne"
aastore
dup
iconst_3
6: ldc "1"
aastore
dup
iconst_4
ldc "nMOFact"
aastore
dup
iconst_5
7: ldc "1"
aastore
dup
bipush 6
ldc "res"
aastore
dup
bipush 7
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
8: invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
9: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.continueExecution:()V
10: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
ldc "sl"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "test"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 11: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertExecutedOK:()V
12: ldc "2\n"
aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.getOut:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: aload 2
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
14: aload 2
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 15: ldc "Factorial computed OK"
ldc 2
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
1 17 1 factorial Lorg/graalvm/polyglot/Source;
11 17 2 value Lorg/graalvm/polyglot/Value;
15 17 3 n I
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void stepInStepOver();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=6, args_size=1
start local 0 0: invokestatic com.oracle.truffle.sl.test.SLDebugDirectTest.createFactorial:()Lorg/graalvm/polyglot/Source;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
2: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.suspendNextExecution:()V
3: aload 0
ldc "test"
iconst_2
iconst_1
ldc "res = fac(2)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "res"
aastore
dup
iconst_1
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
4: aload 0
iconst_1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepInto:(I)V
5: aload 0
ldc "fac"
bipush 7
iconst_1
6: ldc "n <= 1"
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
7: ldc "2"
aastore
dup
iconst_2
ldc "nMinusOne"
aastore
dup
iconst_3
8: getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
dup
iconst_4
ldc "nMOFact"
aastore
dup
iconst_5
9: getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
dup
bipush 6
ldc "res"
aastore
dup
bipush 7
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
10: invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
11: aload 0
iconst_1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepOver:(I)V
12: aload 0
ldc "fac"
bipush 10
iconst_1
13: ldc "nMinusOne = n - 1"
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
14: ldc "2"
aastore
dup
iconst_2
ldc "nMinusOne"
aastore
dup
iconst_3
15: getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
dup
iconst_4
ldc "nMOFact"
aastore
dup
iconst_5
16: getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
dup
bipush 6
ldc "res"
aastore
dup
bipush 7
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
17: invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
18: aload 0
iconst_1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepOver:(I)V
19: aload 0
ldc "fac"
bipush 11
iconst_1
20: ldc "nMOFact = fac(nMinusOne)"
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
21: ldc "2"
aastore
dup
iconst_2
ldc "nMinusOne"
aastore
dup
iconst_3
22: ldc "1"
aastore
dup
iconst_4
ldc "nMOFact"
aastore
dup
iconst_5
23: getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
dup
bipush 6
ldc "res"
aastore
dup
bipush 7
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
24: invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
25: aload 0
iconst_1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepOver:(I)V
26: aload 0
ldc "fac"
bipush 12
iconst_1
27: ldc "res = n * nMOFact"
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
ldc "2"
aastore
dup
iconst_2
ldc "nMinusOne"
aastore
dup
iconst_3
28: ldc "1"
aastore
dup
iconst_4
ldc "nMOFact"
aastore
dup
iconst_5
29: ldc "1"
aastore
dup
bipush 6
ldc "res"
aastore
dup
bipush 7
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
30: invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
31: aload 0
iconst_1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepOver:(I)V
32: aload 0
ldc "fac"
bipush 13
iconst_1
33: ldc "return res"
bipush 8
anewarray java.lang.Object
dup
iconst_0
ldc "n"
aastore
dup
iconst_1
34: ldc "2"
aastore
dup
iconst_2
ldc "nMinusOne"
aastore
dup
iconst_3
35: ldc "1"
aastore
dup
iconst_4
ldc "nMOFact"
aastore
dup
iconst_5
36: ldc "1"
aastore
dup
bipush 6
ldc "res"
aastore
dup
bipush 7
ldc "2"
aastore
37: invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
38: aload 0
iconst_1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepOver:(I)V
39: aload 0
ldc "test"
iconst_2
iconst_0
ldc "fac(2)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "res"
aastore
dup
iconst_1
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
40: aload 0
iconst_1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepOver:(I)V
41: aload 0
ldc "test"
iconst_3
iconst_1
ldc "println(res)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "res"
aastore
dup
iconst_1
ldc "2"
aastore
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
42: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepOut:()V
43: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
ldc "sl"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "test"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 44: aload 2
invokevirtual org.graalvm.polyglot.Value.canExecute:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
45: aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 46: aload 3
invokevirtual org.graalvm.polyglot.Value.toString:()Ljava/lang/String;
astore 4
start local 4 47: aload 3
invokevirtual org.graalvm.polyglot.Value.asInt:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 5
start local 5 48: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertExecutedOK:()V
49: aload 5
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
50: ldc "Factorial computed OK"
ldc 2
aload 5
invokevirtual java.lang.Number.intValue:()I
i2l
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
51: ldc "Factorial computed OK"
ldc "2"
aload 4
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
52: 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 53 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
1 53 1 factorial Lorg/graalvm/polyglot/Source;
44 53 2 value Lorg/graalvm/polyglot/Value;
46 53 3 resultValue Lorg/graalvm/polyglot/Value;
47 53 4 resultStr Ljava/lang/String;
48 53 5 result Ljava/lang/Number;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void testPause();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: invokestatic com.oracle.truffle.sl.test.SLDebugDirectTest.createInteropComputation:()Lorg/graalvm/polyglot/Source;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
2: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertExecutedOK:()V
3: new com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler
dup
invokespecial com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler.<init>:()V
astore 2
start local 2 4: new com.oracle.truffle.sl.test.SLDebugDirectTest$1
dup
aload 0
aload 2
invokespecial com.oracle.truffle.sl.test.SLDebugDirectTest$1.<init>:(Lcom/oracle/truffle/sl/test/SLDebugDirectTest;Lcom/oracle/truffle/sl/test/SLDebugDirectTest$ExecNotifyHandler;)V
5: invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest$1.start:()V
6: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
aload 0
aload 2
invokedynamic run(Lcom/oracle/truffle/sl/test/SLDebugDirectTest;Lcom/oracle/truffle/sl/test/SLDebugDirectTest$ExecNotifyHandler;)Ljava/lang/Runnable;
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:
()V
com/oracle/truffle/sl/test/SLDebugDirectTest.lambda$1(Lcom/oracle/truffle/sl/test/SLDebugDirectTest$ExecNotifyHandler;)V (7)
()V
invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
7: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
ldc "sl"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "interopFunction"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 8: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertExecutedOK:()V
9: aload 3
invokevirtual org.graalvm.polyglot.Value.isBoolean:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
10: aload 3
invokevirtual org.graalvm.polyglot.Value.asBoolean:()Z
istore 4
start local 4 11: ldc "Interop computation OK"
iload 4
ifeq 12
iconst_0
goto 13
StackMap locals: com.oracle.truffle.sl.test.SLDebugDirectTest org.graalvm.polyglot.Source com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler org.graalvm.polyglot.Value int
StackMap stack: java.lang.String
12: iconst_1
StackMap locals: com.oracle.truffle.sl.test.SLDebugDirectTest org.graalvm.polyglot.Source com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler org.graalvm.polyglot.Value int
StackMap stack: java.lang.String int
13: invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
14: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
1 15 1 interopComp Lorg/graalvm/polyglot/Source;
4 15 2 nh Lcom/oracle/truffle/sl/test/SLDebugDirectTest$ExecNotifyHandler;
8 15 3 value Lorg/graalvm/polyglot/Value;
11 15 4 n Z
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
private static org.graalvm.polyglot.Source createNull();
descriptor: ()Lorg/graalvm/polyglot/Source;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "sl"
ldc "function nullTest() {\n res = doNull();\n return res;\n}\nfunction doNull() {\n}\n"
1: ldc "nullTest.sl"
2: invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
3: invokevirtual org.graalvm.polyglot.Source$Builder.buildLiteral:()Lorg/graalvm/polyglot/Source;
4: areturn
LocalVariableTable:
Start End Slot Name Signature
public void testNull();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=4, args_size=1
start local 0 0: invokestatic com.oracle.truffle.sl.test.SLDebugDirectTest.createNull:()Lorg/graalvm/polyglot/Source;
astore 1
start local 1 1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
2: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.session:Lcom/oracle/truffle/api/debug/DebuggerSession;
invokevirtual com.oracle.truffle.api.debug.DebuggerSession.suspendNextExecution:()V
3: aload 0
ldc "nullTest"
iconst_2
iconst_1
ldc "res = doNull()"
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "res"
aastore
dup
iconst_1
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
aastore
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
4: aload 0
iconst_1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.stepInto:(I)V
5: aload 0
ldc "nullTest"
iconst_3
iconst_1
ldc "return res"
iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "res"
aastore
dup
iconst_1
ldc "NULL"
aastore
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertLocation:(Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
6: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.continueExecution:()V
7: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.context:Lorg/graalvm/polyglot/Context;
ldc "sl"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "nullTest"
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
astore 2
start local 2 8: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.assertExecutedOK:()V
9: aload 2
invokevirtual org.graalvm.polyglot.Value.toString:()Ljava/lang/String;
astore 3
start local 3 10: aload 3
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
11: ldc "SL displays null as NULL"
ldc "NULL"
aload 3
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
1 13 1 nullTest Lorg/graalvm/polyglot/Source;
8 13 2 value Lorg/graalvm/polyglot/Value;
10 13 3 val Ljava/lang/String;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
private void performWork();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.ex:Ljava/lang/Throwable;
ifnonnull 6
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 6
1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 1
start local 1 2: aload 1
invokeinterface java.lang.Runnable.run:()V
end local 1 3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
start local 1 5: aload 0
aload 1
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.ex:Ljava/lang/Throwable;
end local 1 6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
2 3 1 c Ljava/lang/Runnable;
5 6 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
private void stepOver(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
aload 0
iload 1
invokedynamic run(Lcom/oracle/truffle/sl/test/SLDebugDirectTest;I)Ljava/lang/Runnable;
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:
()V
com/oracle/truffle/sl/test/SLDebugDirectTest.lambda$2(I)V (7)
()V
invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
0 2 1 size I
MethodParameters:
Name Flags
size final
private void stepOut();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
aload 0
invokedynamic run(Lcom/oracle/truffle/sl/test/SLDebugDirectTest;)Ljava/lang/Runnable;
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:
()V
com/oracle/truffle/sl/test/SLDebugDirectTest.lambda$3()V (7)
()V
invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
private void continueExecution();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
aload 0
invokedynamic run(Lcom/oracle/truffle/sl/test/SLDebugDirectTest;)Ljava/lang/Runnable;
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:
()V
com/oracle/truffle/sl/test/SLDebugDirectTest.lambda$4()V (7)
()V
invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
private void stepInto(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
aload 0
iload 1
invokedynamic run(Lcom/oracle/truffle/sl/test/SLDebugDirectTest;I)Ljava/lang/Runnable;
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:
()V
com/oracle/truffle/sl/test/SLDebugDirectTest.lambda$5(I)V (7)
()V
invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
0 2 1 size I
MethodParameters:
Name Flags
size final
private void assertLocation(java.lang.String, int, boolean, java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/String;IZLjava/lang/String;[Ljava/lang/Object;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
aload 0
iload 2
aload 4
iload 3
aload 1
aload 5
invokedynamic run(Lcom/oracle/truffle/sl/test/SLDebugDirectTest;ILjava/lang/String;ZLjava/lang/String;[Ljava/lang/Object;)Ljava/lang/Runnable;
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:
()V
com/oracle/truffle/sl/test/SLDebugDirectTest.lambda$6(ILjava/lang/String;ZLjava/lang/String;[Ljava/lang/Object;)V (7)
()V
invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
1: 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 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
0 2 1 name Ljava/lang/String;
0 2 2 line I
0 2 3 isBefore Z
0 2 4 code Ljava/lang/String;
0 2 5 expectedFrame [Ljava/lang/Object;
MethodParameters:
Name Flags
name final
line final
isBefore final
code final
expectedFrame final
private void assertExecutedOK();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.getErr:()Ljava/lang/String;
aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.getErr:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.ex:Ljava/lang/Throwable;
ifnull 5
2: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.ex:Ljava/lang/Throwable;
instanceof java.lang.AssertionError
ifeq 4
3: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.ex:Ljava/lang/Throwable;
athrow
4: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "Error during execution"
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.ex:Ljava/lang/Throwable;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
5: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Assuming all requests processed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
Exceptions:
throws java.lang.Throwable
private void lambda$0(com.oracle.truffle.api.debug.SuspendedEvent);
descriptor: (Lcom/oracle/truffle/api/debug/SuspendedEvent;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
1: aload 0
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest.performWork:()V
2: aload 0
aconst_null
putfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
0 4 1 event Lcom/oracle/truffle/api/debug/SuspendedEvent;
private void lambda$1(com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler);
descriptor: (Lcom/oracle/truffle/sl/test/SLDebugDirectTest$ExecNotifyHandler;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=6, args_size=2
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
istore 2
start local 2 2: new java.lang.StringBuilder
dup
ldc "Unexpected line: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_5
iload 2
if_icmpgt 3
iload 2
bipush 6
if_icmpgt 3
iconst_1
goto 4
StackMap locals: com.oracle.truffle.sl.test.SLDebugDirectTest com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler int
StackMap stack: java.lang.String
3: iconst_0
StackMap locals: com.oracle.truffle.sl.test.SLDebugDirectTest com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler int
StackMap stack: java.lang.String int
4: invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
5: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getTopStackFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
astore 3
start local 3 6: aload 3
invokevirtual com.oracle.truffle.api.debug.DebugStackFrame.getScope:()Lcom/oracle/truffle/api/debug/DebugScope;
astore 4
start local 4 7: aload 4
ldc "executing"
invokevirtual com.oracle.truffle.api.debug.DebugScope.getDeclaredValue:(Ljava/lang/String;)Lcom/oracle/truffle/api/debug/DebugValue;
astore 5
start local 5 8: aload 5
ifnonnull 10
9: aload 4
invokevirtual com.oracle.truffle.api.debug.DebugScope.getParent:()Lcom/oracle/truffle/api/debug/DebugScope;
ldc "executing"
invokevirtual com.oracle.truffle.api.debug.DebugScope.getDeclaredValue:(Ljava/lang/String;)Lcom/oracle/truffle/api/debug/DebugValue;
astore 5
10: StackMap locals: com.oracle.truffle.api.debug.DebugStackFrame com.oracle.truffle.api.debug.DebugScope com.oracle.truffle.api.debug.DebugValue
StackMap stack:
aload 5
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
11: ldc "Value is null"
aload 5
invokevirtual com.oracle.truffle.api.debug.DebugValue.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
12: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.prepareContinue:()V
13: aload 1
invokevirtual com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler.pauseDone:()V
end local 5 end local 4 end local 3 end local 2 14: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
2 14 2 line I
6 14 3 frame Lcom/oracle/truffle/api/debug/DebugStackFrame;
7 14 4 scope Lcom/oracle/truffle/api/debug/DebugScope;
8 14 5 slot Lcom/oracle/truffle/api/debug/DebugValue;
private void lambda$2(int);
descriptor: (I)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
iload 1
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.prepareStepOver:(I)Lcom/oracle/truffle/api/debug/SuspendedEvent;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
private void lambda$3();
descriptor: ()V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
iconst_1
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.prepareStepOut:(I)Lcom/oracle/truffle/api/debug/SuspendedEvent;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
private void lambda$4();
descriptor: ()V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.prepareContinue:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
private void lambda$5(int);
descriptor: (I)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
iload 1
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.prepareStepInto:(I)Lcom/oracle/truffle/api/debug/SuspendedEvent;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
private void lambda$6(int, java.lang.String, boolean, java.lang.String, java.lang.Object[]);
descriptor: (ILjava/lang/String;ZLjava/lang/String;[Ljava/lang/Object;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=14, args_size=6
start local 0 0: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
1: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 6
start local 6 2: iload 1
i2l
aload 6
invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
3: aload 2
aload 6
invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
4: iload 3
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getSuspendAnchor:()Lcom/oracle/truffle/api/debug/SuspendAnchor;
getstatic com.oracle.truffle.api.debug.SuspendAnchor.BEFORE:Lcom/oracle/truffle/api/debug/SuspendAnchor;
if_acmpne 5
iconst_1
goto 6
StackMap locals: com.oracle.truffle.sl.test.SLDebugDirectTest int java.lang.String int java.lang.String java.lang.Object[] com.oracle.truffle.api.source.SourceSection
StackMap stack: java.lang.Boolean
5: iconst_0
StackMap locals: com.oracle.truffle.sl.test.SLDebugDirectTest int java.lang.String int java.lang.String java.lang.Object[] com.oracle.truffle.api.source.SourceSection
StackMap stack: java.lang.Boolean int
6: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.suspendedEvent:Lcom/oracle/truffle/api/debug/SuspendedEvent;
invokevirtual com.oracle.truffle.api.debug.SuspendedEvent.getTopStackFrame:()Lcom/oracle/truffle/api/debug/DebugStackFrame;
astore 7
start local 7 8: aload 4
aload 7
invokevirtual com.oracle.truffle.api.debug.DebugStackFrame.getName:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: iconst_0
istore 8
start local 8 10: goto 25
11: StackMap locals: com.oracle.truffle.api.debug.DebugStackFrame int
StackMap stack:
aload 5
iload 8
aaload
checkcast java.lang.String
astore 9
start local 9 12: aload 5
iload 8
iconst_1
iadd
aaload
astore 10
start local 10 13: aload 7
invokevirtual com.oracle.truffle.api.debug.DebugStackFrame.getScope:()Lcom/oracle/truffle/api/debug/DebugScope;
astore 11
start local 11 14: aload 11
aload 9
invokevirtual com.oracle.truffle.api.debug.DebugScope.getDeclaredValue:(Ljava/lang/String;)Lcom/oracle/truffle/api/debug/DebugValue;
astore 12
start local 12 15: goto 17
16: StackMap locals: com.oracle.truffle.sl.test.SLDebugDirectTest int java.lang.String int java.lang.String java.lang.Object[] com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.debug.DebugStackFrame int java.lang.String java.lang.Object com.oracle.truffle.api.debug.DebugScope com.oracle.truffle.api.debug.DebugValue
StackMap stack:
aload 11
aload 9
invokevirtual com.oracle.truffle.api.debug.DebugScope.getDeclaredValue:(Ljava/lang/String;)Lcom/oracle/truffle/api/debug/DebugValue;
astore 12
17: StackMap locals:
StackMap stack:
aload 12
ifnonnull 18
aload 11
invokevirtual com.oracle.truffle.api.debug.DebugScope.getParent:()Lcom/oracle/truffle/api/debug/DebugScope;
dup
astore 11
ifnonnull 16
18: StackMap locals:
StackMap stack:
aload 10
getstatic com.oracle.truffle.sl.test.SLDebugDirectTest.UNASSIGNED:Ljava/lang/Object;
if_acmpeq 23
19: aload 9
aload 12
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
20: aload 12
invokevirtual com.oracle.truffle.api.debug.DebugValue.toDisplayString:()Ljava/lang/String;
astore 13
start local 13 21: aload 10
aload 13
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 13 22: goto 24
23: StackMap locals:
StackMap stack:
aload 9
aload 12
invokestatic org.junit.Assert.assertNull:(Ljava/lang/String;Ljava/lang/Object;)V
end local 12 end local 11 end local 10 end local 9 24: StackMap locals: com.oracle.truffle.sl.test.SLDebugDirectTest int java.lang.String int java.lang.String java.lang.Object[] com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.debug.DebugStackFrame int
StackMap stack:
iinc 8 2
StackMap locals:
StackMap stack:
25: iload 8
aload 5
arraylength
if_icmplt 11
end local 8 26: aload 0
getfield com.oracle.truffle.sl.test.SLDebugDirectTest.run:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
checkcast java.lang.Runnable
invokeinterface java.lang.Runnable.run:()V
end local 7 end local 6 27: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/oracle/truffle/sl/test/SLDebugDirectTest;
2 27 6 suspendedSourceSection Lcom/oracle/truffle/api/source/SourceSection;
8 27 7 frame Lcom/oracle/truffle/api/debug/DebugStackFrame;
10 26 8 i I
12 24 9 expectedIdentifier Ljava/lang/String;
13 24 10 expectedValue Ljava/lang/Object;
14 24 11 scope Lcom/oracle/truffle/api/debug/DebugScope;
15 24 12 slot Lcom/oracle/truffle/api/debug/DebugValue;
21 22 13 slotValue Ljava/lang/String;
}
SourceFile: "SLDebugDirectTest.java"
NestMembers:
com.oracle.truffle.sl.test.SLDebugDirectTest$1 com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler
InnerClasses:
public final Builder = com.oracle.truffle.api.debug.Breakpoint$Builder of com.oracle.truffle.api.debug.Breakpoint
com.oracle.truffle.sl.test.SLDebugDirectTest$1
ExecNotifyHandler = com.oracle.truffle.sl.test.SLDebugDirectTest$ExecNotifyHandler of com.oracle.truffle.sl.test.SLDebugDirectTest
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
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