public class com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest extends com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest
super_class: com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest
{
private static final java.lang.String CODE1;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "ROOT(DEFINE(a, ROOT(\n STATEMENT()\n)), CALL(a))\n"
private static final java.lang.String CODE1_EXC;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "ROOT(DEFINE(a, ROOT(\n DEFINE(a, ROOT())\n)), CALL(a))\n"
private static final java.lang.String CODE2;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT()\n )),\n CALL(b)\n)), CALL(a))\n"
private static final java.lang.String CODE2_EXC;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT(DEFINE(a, ROOT()))\n )),\n CALL(b)\n)), CALL(a))\n"
com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow testControlFlow;
descriptor: Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
flags: (0x0000)
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
private static java.lang.String createDeepCode(int);
descriptor: (I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "ROOT("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
bipush 97
iload 0
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.createRecursiveCalls:(Ljava/lang/StringBuilder;CI)V
2: aload 1
ldc "CALL(a))\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 n I
1 4 1 code Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
n
private static void createRecursiveCalls(java.lang.StringBuilder, char, int);
descriptor: (Ljava/lang/StringBuilder;CI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 8
2: StackMap locals: int
StackMap stack:
aload 0
ldc "DEFINE("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
iload 1
iload 3
iadd
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
4: aload 0
ldc ", ROOT(CALL("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 0
iload 1
iload 3
iadd
iconst_1
iadd
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: aload 0
ldc "))),\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 2
if_icmplt 2
end local 3 9: aload 0
ldc "DEFINE("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 0
iload 1
iload 2
iadd
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
11: aload 0
ldc ", ROOT(STATEMENT())),\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 code Ljava/lang/StringBuilder;
0 13 1 name C
0 13 2 n I
1 9 3 i I
MethodParameters:
Name Flags
code
name
n
public void setup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest.setup:()V
1: aload 0
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testControlFlow"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow
putfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
2: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.submitExecutionListener:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
RuntimeVisibleAnnotations:
org.junit.Before()
public void teardown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
1: aload 0
invokespecial com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest.teardown:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
RuntimeVisibleAnnotations:
org.junit.After()
public void testReenterSimpleOnEnter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.ENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.REENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
ldc "ROOT(DEFINE(a, ROOT(\n STATEMENT()\n)), CALL(a))\n"
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
7: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: ldc "[CALL(a), CALL(a), STATEMENT()]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: ldc "[CALL(a), STATEMENT(), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: ldc "[null]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 15 1 actionsEnter Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 15 2 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testReenterSimpleOnReturn();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "CA"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_VALUE:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.REENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
ldc "ROOT(DEFINE(a, ROOT(\n STATEMENT()\n)), CALL(a))\n"
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
7: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: ldc "[CALL(a), STATEMENT(), CALL(a), STATEMENT()]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: ldc "[STATEMENT(), CALL(a), STATEMENT(), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "[Null, Null, Null, Null]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: ldc "[CA]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 15 1 actionsReturn Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 15 2 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testReenterSimpleOnException();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_EXCEPTIONAL:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.REENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aconst_null
astore 3
start local 3 7: aload 0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(a, ROOT())\n)), CALL(a))\n"
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
8: invokestatic org.junit.Assert.fail:()V
9: goto 13
StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest java.util.List java.util.List java.lang.String
StackMap stack: org.graalvm.polyglot.PolyglotException
10: astore 4
start local 4 11: aload 4
invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
astore 3
12: aload 3
aload 3
ldc "Identifier redefinition not supported"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 4 13: StackMap locals:
StackMap stack:
lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
14: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
15: ldc "[CALL(a), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
16: ldc "[CALL(a), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
17: new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
18: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: ldc "[null]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
20: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 21 1 actionsExc Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 21 2 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
7 21 3 message Ljava/lang/String;
11 13 4 pe Lorg/graalvm/polyglot/PolyglotException;
Exception table:
from to target type
7 9 10 Class org.graalvm.polyglot.PolyglotException
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testReturnSimpleOnEnter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.ENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.RETURN:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "ROOT(DEFINE(a, ROOT(\n STATEMENT()\n)), CALL(a))\n"
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 7: ldc 10
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: ldc "[com.oracle.truffle.api.instrumentation.UnwindException]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: ldc "[null]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 16 1 actionsEnter Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 16 2 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
7 16 3 ret I
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testReturnSimpleOnReturn();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "CA"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_VALUE:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.RETURN:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "ROOT(DEFINE(a, ROOT(\n STATEMENT()\n)), CALL(a))\n"
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 7: ldc 10
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: ldc "[CALL(a), STATEMENT()]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "[STATEMENT(), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: ldc "[Null, Null]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: ldc "[CA]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 16 1 actionsReturn Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 16 2 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
7 16 3 ret I
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testReturnSimpleOnException();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_EXCEPTIONAL:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.RETURN:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
bipush 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(a, ROOT())\n)), CALL(a))\n"
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 7: ldc 10
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
instanceof java.lang.IllegalArgumentException
invokestatic org.junit.Assert.assertTrue:(Z)V
13: ldc "[CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: ldc "[null]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 16 1 actionsExc Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 16 2 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
7 16 3 ret I
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnwindReenterOnEnter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "STATEMENT()"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "3uw"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.REENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.ENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT()\n )),\n CALL(b)\n)), CALL(a))\n"
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
7: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: ldc "[CALL(a), CALL(b), STATEMENT(), CALL(a), CALL(b), STATEMENT()]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: ldc "[STATEMENT(), CALL(b), CALL(a), STATEMENT(), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "com.oracle.truffle.api.instrumentation.UnwindException"
astore 3
start local 3 12: new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", Null, Null, Null]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: ldc "[STATEMENT(), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: ldc "[3uw, 3uw, 3uw]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 16 1 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 16 2 actionsReenter Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
12 16 3 uw Ljava/lang/String;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnwindReenterOnReturn();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "STATEMENT()"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "3uw"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.REENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_VALUE:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT()\n )),\n CALL(b)\n)), CALL(a))\n"
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
7: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: ldc "[CALL(a), CALL(b), STATEMENT(), CALL(a), CALL(b), STATEMENT()]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: ldc "[STATEMENT(), CALL(b), CALL(a), STATEMENT(), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "com.oracle.truffle.api.instrumentation.UnwindException"
astore 3
start local 3 12: new java.lang.StringBuilder
dup
ldc "[Null, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", Null, Null, Null]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: ldc "[STATEMENT(), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: ldc "[3uw, 3uw, 3uw]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 16 1 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 16 2 actionsReenter Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
12 16 3 uw Ljava/lang/String;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnwindReenterOnException();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "STATEMENT(DEFINE(a, ROOT()))"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "3uw"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.REENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_EXCEPTIONAL:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aconst_null
astore 3
start local 3 7: aload 0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT(DEFINE(a, ROOT()))\n )),\n CALL(b)\n)), CALL(a))\n"
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
8: invokestatic org.junit.Assert.fail:()V
9: goto 13
StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest java.util.List java.util.List java.lang.String
StackMap stack: org.graalvm.polyglot.PolyglotException
10: astore 4
start local 4 11: aload 4
invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
astore 3
12: aload 3
aload 3
ldc "Identifier redefinition not supported"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 4 13: StackMap locals:
StackMap stack:
lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
14: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
15: ldc "[CALL(a), CALL(b), STATEMENT(DEFINE(a, ROOT())), CALL(a), CALL(b), STATEMENT(DEFINE(a, ROOT()))]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
16: ldc "[STATEMENT(DEFINE(a, ROOT())), CALL(b), CALL(a), STATEMENT(DEFINE(a, ROOT())), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
17: ldc "com.oracle.truffle.api.instrumentation.UnwindException"
astore 4
start local 4 18: new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: ldc "[STATEMENT(DEFINE(a, ROOT())), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
20: ldc "[3uw, 3uw, 3uw]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
21: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 22 1 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 22 2 actionsReenter Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
7 22 3 message Ljava/lang/String;
11 13 4 pe Lorg/graalvm/polyglot/PolyglotException;
18 22 4 uw Ljava/lang/String;
Exception table:
from to target type
7 9 10 Class org.graalvm.polyglot.PolyglotException
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnwindReturnOnEnter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "STATEMENT()"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "3uw"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.RETURN:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.ENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT()\n )),\n CALL(b)\n)), CALL(a))\n"
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 7: ldc 42
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: ldc "[CALL(a), CALL(b), STATEMENT()]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "[STATEMENT(), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: ldc "com.oracle.truffle.api.instrumentation.UnwindException"
astore 4
start local 4 13: new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: ldc "[STATEMENT(), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: ldc "[3uw, 3uw, 3uw]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
16: return
end local 4 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/api/instrumentation/test/UnwindReenterReturnTest;
1 17 1 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 17 2 actionsReenter Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
7 17 3 ret I
13 17 4 uw Ljava/lang/String;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnwindReturnOnReturn();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "STATEMENT()"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "3uw"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.RETURN:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_VALUE:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT()\n )),\n CALL(b)\n)), CALL(a))\n"
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 7: ldc 42
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: ldc "[CALL(a), CALL(b), STATEMENT()]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: ldc "[STATEMENT(), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: ldc "com.oracle.truffle.api.instrumentation.UnwindException"
astore 4
start local 4 13: new java.lang.StringBuilder
dup
ldc "[Null, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: ldc "[STATEMENT(), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: ldc "[3uw, 3uw, 3uw]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
16: return
end local 4 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/api/instrumentation/test/UnwindReenterReturnTest;
1 17 1 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 17 2 actionsReenter Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
7 17 3 ret I
13 17 4 uw Ljava/lang/String;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnwindReturnOnException();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "STATEMENT(DEFINE(a, ROOT()))"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "3uw"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(a)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.RETURN:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_EXCEPTIONAL:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT(DEFINE(a, ROOT()))\n )),\n CALL(b)\n)), CALL(a))\n"
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 7: ldc 42
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: ldc "java.lang.IllegalArgumentException: Identifier redefinition not supported."
astore 4
start local 4 9: lconst_0
aload 1
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
10: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
11: ldc "[CALL(a), CALL(b), STATEMENT(DEFINE(a, ROOT()))]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
12: ldc "[STATEMENT(DEFINE(a, ROOT())), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: ldc "com.oracle.truffle.api.instrumentation.UnwindException"
astore 5
start local 5 14: new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: ldc "[STATEMENT(DEFINE(a, ROOT())), CALL(b), CALL(a)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
16: ldc "[3uw, 3uw, 3uw]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
17: 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 18 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 18 1 actionsUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
2 18 2 actionsReenter Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
7 18 3 ret I
9 18 4 message Ljava/lang/String;
14 18 5 uw Ljava/lang/String;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnwindRepeated();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testUnwindRepeated"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnwindRepeated;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindRepeated
astore 1
start local 1 1: sipush 1000
istore 2
start local 2 2: aload 1
ldc "STATEMENT()"
ldc "CALL(a)"
iload 2
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindRepeated.submit:(Ljava/lang/String;Ljava/lang/String;I)V
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "ROOT(DEFINE(a, ROOT(\n DEFINE(b, ROOT(\n STATEMENT()\n )),\n CALL(b)\n)), CALL(a))\n"
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 3
start local 3 4: ldc 4242
iload 3
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: iconst_3
iload 2
imul
iconst_3
iadd
i2l
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
6: iconst_0
istore 4
start local 4 7: goto 12
8: StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindRepeated int int int
StackMap stack:
ldc "CALL(a)"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
iconst_3
iload 4
imul
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: ldc "CALL(b)"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
iconst_3
iload 4
imul
iconst_1
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
10: ldc "STATEMENT()"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
iconst_3
iload 4
imul
iconst_2
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
iload 2
if_icmple 8
end local 4 13: iconst_3
iload 2
imul
iconst_3
iadd
i2l
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
14: iconst_0
istore 4
start local 4 15: goto 20
16: StackMap locals:
StackMap stack:
ldc "STATEMENT()"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
iconst_3
iload 4
imul
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
17: ldc "CALL(b)"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
iconst_3
iload 4
imul
iconst_1
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
18: ldc "CALL(a)"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
iconst_3
iload 4
imul
iconst_2
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: iinc 4 1
StackMap locals:
StackMap stack:
20: iload 4
iload 2
if_icmple 16
end local 4 21: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 22 1 unwindRepeated Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnwindRepeated;
2 22 2 repeats I
4 22 3 ret I
7 13 4 i I
15 21 4 i I
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMultiUnwind();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testUnwindMultiple"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnwindMultiple;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindMultiple
astore 1
start local 1 1: aload 1
iconst_1
bipush 6
anewarray java.lang.String
dup
iconst_0
ldc "CALL(g)"
aastore
dup
iconst_1
ldc "CALL(a)"
aastore
dup
iconst_2
ldc "CALL(e)"
aastore
dup
iconst_3
ldc "CALL(d)"
aastore
dup
iconst_4
ldc "CALL(l)"
aastore
dup
iconst_5
ldc "CALL(i)"
aastore
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindMultiple.submit:(Z[Ljava/lang/String;)V
2: aload 1
iconst_0
bipush 6
anewarray java.lang.String
dup
iconst_0
ldc "CALL(g)"
aastore
dup
iconst_1
ldc "CALL(c)"
aastore
dup
iconst_2
ldc "CALL(e)"
aastore
dup
iconst_3
ldc "CALL(c)"
aastore
dup
iconst_4
ldc "CALL(k)"
aastore
dup
iconst_5
ldc "CALL(i)"
aastore
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindMultiple.submit:(Z[Ljava/lang/String;)V
3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 5: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 6: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(e)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "e->b"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 4
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(b)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.REENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aload 3
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(k)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "k->j"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: aload 4
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(j)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.REENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: aload 2
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "STATEMENT()"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
ldc "s->k"
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: aload 4
new com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction
dup
ldc "CALL(k)"
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION.RETURN:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;
bipush 42
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokespecial com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$ACTION;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.ENTER:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.RETURN_EXCEPTIONAL:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.actions:Ljava/util/Map;
getstatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE.UNWIND:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$WHERE;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: bipush 12
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.createDeepCode:(I)Ljava/lang/String;
astore 5
start local 5 16: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 5
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
invokevirtual org.graalvm.polyglot.Value.asInt:()I
istore 6
start local 6 17: ldc 42
iload 6
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
18: lconst_0
aload 2
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
19: lconst_0
aload 3
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
20: lconst_0
aload 4
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
21: ldc "[CALL(a), CALL(b), CALL(c), CALL(d), CALL(e), CALL(b), CALL(c), CALL(d), CALL(e), CALL(f), CALL(g), CALL(a), CALL(b), CALL(c), CALL(d), CALL(e), CALL(f), CALL(g), CALL(h), CALL(i), CALL(j), CALL(k), CALL(l), CALL(i), CALL(j), CALL(k), CALL(l), CALL(m), STATEMENT()]"
22: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
23: invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
24: ldc "[CALL(e), CALL(d), CALL(c), CALL(b), CALL(g), CALL(f), CALL(e), CALL(d), CALL(c), CALL(b), CALL(a), CALL(l), CALL(k), CALL(j), CALL(i), STATEMENT(), CALL(m), CALL(l), CALL(k), CALL(j), CALL(i), CALL(h), CALL(g), CALL(f), CALL(e), CALL(d), CALL(c), CALL(b), CALL(a)]"
25: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
26: invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
27: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
28: ldc "com.oracle.truffle.api.instrumentation.UnwindException"
astore 7
start local 7 29: new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 8
start local 8 30: iconst_0
istore 9
start local 9 31: goto 35
32: StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindMultiple java.util.List java.util.List java.util.List java.lang.String int java.lang.String java.lang.StringBuilder int
StackMap stack:
aload 8
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
33: aload 8
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
34: iinc 9 1
StackMap locals:
StackMap stack:
35: iload 9
bipush 19
if_icmplt 32
end local 9 36: iconst_0
istore 9
start local 9 37: goto 40
38: StackMap locals:
StackMap stack:
aload 8
ldc "42, "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
39: iinc 9 1
StackMap locals:
StackMap stack:
40: iload 9
bipush 10
if_icmplt 38
end local 9 41: aload 8
aload 8
invokevirtual java.lang.StringBuilder.length:()I
iconst_2
isub
aload 8
invokevirtual java.lang.StringBuilder.length:()I
ldc "]"
invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
pop
42: aload 8
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
43: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
44: ldc "[CALL(e), CALL(d), CALL(c), CALL(b), CALL(k), CALL(j), STATEMENT(), CALL(m), CALL(l), CALL(k)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesUnwound:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
45: ldc "[e->b, e->b, e->b, e->b, k->j, k->j, s->k, s->k, s->k, s->k]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.unwoundInfos:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
46: 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 47 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 47 1 unwindMultiple Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnwindMultiple;
4 47 2 actionsUnwindE Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
5 47 3 actionsUnwindR Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
6 47 4 actionsOnUnwind Ljava/util/List<Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow$CodeAction;>;
16 47 5 code Ljava/lang/String;
17 47 6 ret I
29 47 7 uw Ljava/lang/String;
30 47 8 retVals Ljava/lang/StringBuilder;
31 36 9 i I
37 41 9 i I
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testParallelUnwindOneForAll();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.cleanup:()V
1: aload 0
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.newContext:()Lorg/graalvm/polyglot/Context;
putfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
2: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testUnwindParallel"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnwindParallel;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel
astore 1
start local 1 3: iconst_5
istore 2
start local 2 4: new java.lang.StringBuilder
dup
ldc "ROOT("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 3
start local 3 5: aload 3
bipush 97
iload 2
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.createRecursiveCalls:(Ljava/lang/StringBuilder;CI)V
6: aload 3
bipush 103
iload 2
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.createRecursiveCalls:(Ljava/lang/StringBuilder;CI)V
7: aload 3
bipush 109
iload 2
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.createRecursiveCalls:(Ljava/lang/StringBuilder;CI)V
8: aload 3
ldc "SPAWN(a),\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 3
ldc "SPAWN(g),\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 3
ldc "SPAWN(m),\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 3
ldc "JOIN())\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 13: new java.util.concurrent.CompletableFuture
dup
invokespecial java.util.concurrent.CompletableFuture.<init>:()V
astore 5
start local 5 14: aload 1
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel.submitOneForAll:(Ljava/util/concurrent/CompletableFuture;)V
15: aload 0
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
16: goto 18
StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel int java.lang.StringBuilder java.lang.String java.util.concurrent.CompletableFuture
StackMap stack: java.lang.Exception
17: pop
18: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
invokevirtual org.graalvm.polyglot.Context.close:(Z)V
19: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
20: aload 5
invokevirtual java.util.concurrent.CompletableFuture.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
astore 6
start local 6 21: aload 6
aload 6
ldc "A single instance of UnwindException thrown in two threads"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
22: 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 23 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
3 23 1 unwindParallel Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnwindParallel;
4 23 2 n I
5 23 3 codeBuilder Ljava/lang/StringBuilder;
13 23 4 code Ljava/lang/String;
14 23 5 failure Ljava/util/concurrent/CompletableFuture<Ljava/lang/Throwable;>;
21 23 6 message Ljava/lang/String;
Exception table:
from to target type
15 16 17 Class java.lang.Exception
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testParallelUnwindConcurrent();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.doParallelUnwind:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testParallelUnwindSequential();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.doParallelUnwind:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnexpectedTypeAndUnwind();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testUnexpectedTypeAndUnwind"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnexpectedTypeAndUnwind;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnexpectedTypeAndUnwind
astore 1
start local 1 1: bipush 43
istore 2
start local 2 2: aload 1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnexpectedTypeAndUnwind.submit:(Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "EXPRESSION(UNEXPECTED_RESULT(42))"
aastore
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.lines:([Ljava/lang/String;)Lorg/graalvm/polyglot/Source;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 3
start local 3 4: aload 3
invokevirtual org.graalvm.polyglot.Value.isNumber:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
5: iload 2
i2l
aload 3
invokevirtual org.graalvm.polyglot.Value.asInt:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
6: ldc "[UNEXPECTED_RESULT(42), UnexpectedResultException(42)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
7: ldc "[UnexpectedResultException(42), UNEXPECTED_RESULT(42)]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
8: ldc "[42, 42]"
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
1 10 1 unwindThrows Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnexpectedTypeAndUnwind;
2 10 2 expectedResult I
4 10 3 value Lorg/graalvm/polyglot/Value;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
private void doParallelUnwind(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.cleanup:()V
1: aload 0
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.newContext:()Lorg/graalvm/polyglot/Context;
putfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
2: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.engine:Lorg/graalvm/polyglot/Engine;
invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
ldc "testUnwindParallel"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.polyglot.Instrument
ldc Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnwindParallel;
invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel
astore 2
start local 2 3: iconst_5
istore 3
start local 3 4: new java.lang.StringBuilder
dup
ldc "ROOT("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 4
start local 4 5: aload 4
bipush 97
iload 3
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.createRecursiveCalls:(Ljava/lang/StringBuilder;CI)V
6: aload 4
bipush 103
iload 3
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.createRecursiveCalls:(Ljava/lang/StringBuilder;CI)V
7: aload 4
bipush 109
iload 3
invokestatic com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.createRecursiveCalls:(Ljava/lang/StringBuilder;CI)V
8: aload 4
ldc "SPAWN(a),\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 4
ldc "SPAWN(g),\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 4
ldc "SPAWN(m),\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 4
ldc "JOIN())\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 13: iload 1
ifeq 16
14: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel.submitConcurrent:()V
15: goto 17
16: StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest int com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel int java.lang.StringBuilder java.lang.String
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel.submitSequential:()V
17: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.run:(Ljava/lang/String;)Ljava/lang/String;
pop
18: ldc 18
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesEntered:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
19: ldc 18
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.nodesReturned:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
20: ldc 18
aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokeinterface java.util.List.size:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
21: ldc "com.oracle.truffle.api.instrumentation.UnwindException"
astore 6
start local 6 22: iconst_0
istore 7
start local 7 23: iconst_0
istore 8
start local 8 24: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.testControlFlow:Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$TestControlFlow;
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow.returnValuesExceptions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 33
StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest int com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel int java.lang.StringBuilder java.lang.String java.lang.String int int top java.util.Iterator
StackMap stack:
25: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 9
start local 9 26: aload 9
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 29
27: iinc 7 1
28: goto 33
StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest int com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel int java.lang.StringBuilder java.lang.String java.lang.String int int java.lang.Object java.util.Iterator
StackMap stack:
29: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 9
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ifeq 32
30: iinc 8 1
31: goto 33
32: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
aload 9
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 9 33: StackMap locals: com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest int com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel int java.lang.StringBuilder java.lang.String java.lang.String int int top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 25
34: ldc 3
iload 7
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
35: ldc 15
iload 8
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
36: aload 0
getfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
invokevirtual org.graalvm.polyglot.Context.close:()V
37: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest.context:Lorg/graalvm/polyglot/Context;
38: 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 39 0 this Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest;
0 39 1 concurrent Z
3 39 2 unwindParallel Lcom/oracle/truffle/api/instrumentation/test/UnwindReenterReturnTest$UnwindParallel;
4 39 3 n I
5 39 4 codeBuilder Ljava/lang/StringBuilder;
13 39 5 code Ljava/lang/String;
22 39 6 uw Ljava/lang/String;
23 39 7 numUnwinds I
24 39 8 numOnes I
26 33 9 rv Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
concurrent
}
SourceFile: "UnwindReenterReturnTest.java"
NestMembers:
com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$1 com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnexpectedTypeAndUnwind com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnexpectedTypeAndUnwind$1 com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindMultiple com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindMultiple$1 com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel$1 com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel$2 com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel$3 com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindRepeated com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindRepeated$1
InnerClasses:
public TestControlFlow = com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow of com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest
final ACTION = com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$ACTION of com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow
CodeAction = com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$CodeAction of com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow
final WHERE = com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow$WHERE of com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$TestControlFlow
public UnexpectedTypeAndUnwind = com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnexpectedTypeAndUnwind of com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest
public UnwindMultiple = com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindMultiple of com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest
public UnwindParallel = com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindParallel of com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest
public UnwindRepeated = com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest$UnwindRepeated of com.oracle.truffle.api.instrumentation.test.UnwindReenterReturnTest