--- a
+++ b
@@ -171,5 +171,5 @@
def productElement(x$1: Int (INT)): Object {
- locals: value x$1, value x1
+ locals: value x$1, value x1, variable boxed1
startBlock: 1
- blocks: [1,2,3,4]
+ blocks: [1,3,4]
@@ -186,2 +186,4 @@
92 LOAD_LOCAL(value x$1)
+ 92 STORE_LOCAL(variable boxed1)
+ 92 LOAD_LOCAL(variable boxed1)
92 BOX INT
@@ -194,5 +196,2 @@
92 CALL_METHOD MyException.message (dynamic)
- 92 JUMP 2
-
- 2:
92 RETURN(REF(class Object))
@@ -246,3 +245,3 @@
startBlock: 1
- blocks: [1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18]
+ blocks: [1,2,3,4,5,6,8,11,12,13,14,15,16,17,18]
@@ -257,5 +256,2 @@
92 SCOPE_ENTER value x1
- 92 JUMP 7
-
- 7:
92 LOAD_LOCAL(value x1)
@@ -408,5 +404,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
- locals: value args, variable result, value ex6, value x4, value x5, value message, value x
+ locals: value args, variable result, value ex6, value x4, value x5, value x
startBlock: 1
- blocks: [1,2,3,4,5,8,10,11,13]
+ blocks: [1,2,3,5,8,10,11,13,14]
@@ -434,4 +430,13 @@
103 CALL_METHOD MyException.<init> (static-instance)
- 103 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 14
+ 14:
+ 101 LOAD_LOCAL(value ex6)
+ 101 STORE_LOCAL(value x4)
+ 101 SCOPE_ENTER value x4
+ 106 LOAD_LOCAL(value x4)
+ 106 IS_INSTANCE REF(class MyException)
+ 106 CZJUMP (BOOL)NE ? 5 : 8
+
13:
@@ -447,5 +452,2 @@
101 SCOPE_ENTER value x4
- 101 JUMP 4
-
- 4:
106 LOAD_LOCAL(value x4)
@@ -459,8 +461,5 @@
106 SCOPE_ENTER value x5
- 106 LOAD_LOCAL(value x5)
- 106 CALL_METHOD MyException.message (dynamic)
- 106 STORE_LOCAL(value message)
- 106 SCOPE_ENTER value message
106 LOAD_MODULE object Predef
- 106 LOAD_LOCAL(value message)
+ ? LOAD_LOCAL(value x5)
+ 106 CALL_METHOD MyException.message (dynamic)
106 CALL_METHOD scala.Predef.println (dynamic)
@@ -536,3 +535,3 @@
startBlock: 1
- blocks: [1,2,3,4,6,7,9,10]
+ blocks: [1,3,4,6,7,9,10,11,12,13]
@@ -565,4 +564,9 @@
306 CALL_METHOD MyException.<init> (static-instance)
- 306 THROW(MyException)
+ ? JUMP 11
+ 11:
+ ? LOAD_LOCAL(variable monitor4)
+ 305 MONITOR_EXIT
+ ? JUMP 12
+
9:
@@ -571,3 +575,3 @@
305 MONITOR_EXIT
- ? THROW(Throwable)
+ ? JUMP 12
@@ -577,4 +581,11 @@
304 MONITOR_EXIT
- ? THROW(Throwable)
+ ? STORE_LOCAL(value t)
+ ? JUMP 13
+ 12:
+ ? LOAD_LOCAL(variable monitor3)
+ 304 MONITOR_EXIT
+ ? STORE_LOCAL(value t)
+ ? JUMP 13
+
3:
@@ -591,5 +602,14 @@
310 CALL_METHOD scala.Predef.println (dynamic)
- 310 JUMP 2
+ 300 RETURN(UNIT)
- 2:
+ 13:
+ 310 LOAD_MODULE object Predef
+ 310 CALL_PRIMITIVE(StartConcat)
+ 310 CONSTANT("Caught crash: ")
+ 310 CALL_PRIMITIVE(StringConcat(REF(class String)))
+ 310 LOAD_LOCAL(value t)
+ 310 CALL_METHOD java.lang.Throwable.toString (dynamic)
+ 310 CALL_PRIMITIVE(StringConcat(REF(class String)))
+ 310 CALL_PRIMITIVE(EndConcat)
+ 310 CALL_METHOD scala.Predef.println (dynamic)
300 RETURN(UNIT)
@@ -601,6 +621,6 @@
with finalizer: null
- catch (Throwable) in Vector(7, 9, 10) starting at: 6
+ catch (Throwable) in Vector(7, 9, 10, 11) starting at: 6
consisting of blocks: List(6)
with finalizer: null
- catch (Throwable) in Vector(4, 6, 7, 9, 10) starting at: 3
+ catch (Throwable) in Vector(4, 6, 7, 9, 10, 11, 12) starting at: 3
consisting of blocks: List(3)
@@ -636,3 +656,3 @@
startBlock: 1
- blocks: [1,3,4,5,6,8,9]
+ blocks: [1,3,4,5,6,8,9,10,11]
@@ -660,4 +680,10 @@
78 CALL_METHOD java.lang.IllegalArgumentException.<init> (static-instance)
- 78 THROW(IllegalArgumentException)
+ ? STORE_LOCAL(value e)
+ ? JUMP 10
+ 10:
+ 81 LOAD_LOCAL(value e)
+ ? STORE_LOCAL(variable exc1)
+ ? JUMP 11
+
8:
@@ -686,3 +712,4 @@
81 LOAD_LOCAL(value e)
- 81 THROW(Exception)
+ ? STORE_LOCAL(variable exc1)
+ ? JUMP 11
@@ -703,2 +730,15 @@
+ 11:
+ 83 LOAD_MODULE object Predef
+ 83 CONSTANT("finally")
+ 83 CALL_METHOD scala.Predef.println (dynamic)
+ 84 LOAD_LOCAL(variable result)
+ 84 CONSTANT(1)
+ 84 CALL_PRIMITIVE(Arithmetic(SUB,INT))
+ 84 CONSTANT(2)
+ 84 CALL_PRIMITIVE(Arithmetic(DIV,INT))
+ 84 STORE_LOCAL(variable result)
+ 84 LOAD_LOCAL(variable exc1)
+ 84 THROW(Throwable)
+
}
@@ -708,3 +748,3 @@
with finalizer: null
- catch (<none>) in Vector(4, 5, 6, 8) starting at: 3
+ catch (<none>) in Vector(4, 5, 6, 8, 10) starting at: 3
consisting of blocks: List(3)
@@ -732,5 +772,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
- locals: value args, variable result, value ex6, variable exc2, value x4, value x5, value message, value x, value ex6, value x4, value x5, value message, value x
+ locals: value args, variable result, value ex6, variable exc2, value x4, value x5, value x, value ex6, value x4, value x5, value x
startBlock: 1
- blocks: [1,3,4,5,6,9,13,14,15,18,20,21,23,24]
+ blocks: [1,3,4,5,6,9,13,14,15,18,20,21,23,24,25,26,27]
@@ -758,4 +798,11 @@
172 CALL_METHOD MyException.<init> (static-instance)
- 172 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 25
+ 25:
+ 170 LOAD_LOCAL(value ex6)
+ 170 STORE_LOCAL(value x4)
+ 170 SCOPE_ENTER value x4
+ 170 JUMP 14
+
23:
@@ -798,8 +845,5 @@
175 SCOPE_ENTER value x5
- 175 LOAD_LOCAL(value x5)
- 175 CALL_METHOD MyException.message (dynamic)
- 175 STORE_LOCAL(value message)
- 175 SCOPE_ENTER value message
176 LOAD_MODULE object Predef
- 176 LOAD_LOCAL(value message)
+ ? LOAD_LOCAL(value x5)
+ 176 CALL_METHOD MyException.message (dynamic)
176 CALL_METHOD scala.Predef.println (dynamic)
@@ -807,5 +851,7 @@
177 DUP(REF(class MyException))
- 177 LOAD_LOCAL(value message)
+ ? LOAD_LOCAL(value x5)
+ 177 CALL_METHOD MyException.message (dynamic)
177 CALL_METHOD MyException.<init> (static-instance)
- 177 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 26
@@ -813,3 +859,4 @@
170 LOAD_LOCAL(value ex6)
- 170 THROW(Throwable)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 26
@@ -823,2 +870,8 @@
+ 26:
+ 169 LOAD_LOCAL(value ex6)
+ 169 STORE_LOCAL(value x4)
+ 169 SCOPE_ENTER value x4
+ 169 JUMP 5
+
5:
@@ -833,8 +886,5 @@
180 SCOPE_ENTER value x5
- 180 LOAD_LOCAL(value x5)
- 180 CALL_METHOD MyException.message (dynamic)
- 180 STORE_LOCAL(value message)
- 180 SCOPE_ENTER value message
181 LOAD_MODULE object Predef
- 181 LOAD_LOCAL(value message)
+ ? LOAD_LOCAL(value x5)
+ 181 CALL_METHOD MyException.message (dynamic)
181 CALL_METHOD scala.Predef.println (dynamic)
@@ -842,5 +892,7 @@
182 DUP(REF(class MyException))
- 182 LOAD_LOCAL(value message)
+ ? LOAD_LOCAL(value x5)
+ 182 CALL_METHOD MyException.message (dynamic)
182 CALL_METHOD MyException.<init> (static-instance)
- 182 THROW(MyException)
+ ? STORE_LOCAL(variable exc2)
+ ? JUMP 27
@@ -848,3 +900,4 @@
169 LOAD_LOCAL(value ex6)
- 169 THROW(Throwable)
+ ? STORE_LOCAL(variable exc2)
+ ? JUMP 27
@@ -865,2 +918,15 @@
+ 27:
+ 184 LOAD_MODULE object Predef
+ 184 CONSTANT("finally")
+ 184 CALL_METHOD scala.Predef.println (dynamic)
+ 185 LOAD_LOCAL(variable result)
+ 185 CONSTANT(1)
+ 185 CALL_PRIMITIVE(Arithmetic(SUB,INT))
+ 185 CONSTANT(2)
+ 185 CALL_PRIMITIVE(Arithmetic(DIV,INT))
+ 185 STORE_LOCAL(variable result)
+ 185 LOAD_LOCAL(variable exc2)
+ 185 THROW(Throwable)
+
}
@@ -870,6 +936,6 @@
with finalizer: null
- catch (Throwable) in Vector(13, 14, 15, 18, 20, 21, 23) starting at: 4
+ catch (Throwable) in Vector(13, 14, 15, 18, 20, 21, 23, 25) starting at: 4
consisting of blocks: List(9, 8, 6, 5, 4)
with finalizer: null
- catch (<none>) in Vector(4, 5, 6, 9, 13, 14, 15, 18, 20, 21, 23) starting at: 3
+ catch (<none>) in Vector(4, 5, 6, 9, 13, 14, 15, 18, 20, 21, 23, 25, 26) starting at: 3
consisting of blocks: List(3)
@@ -897,5 +963,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
- locals: value args, variable result, value e, value ex6, value x4, value x5, value message, value x
+ locals: value args, variable result, value e, value ex6, value x4, value x5, value x
startBlock: 1
- blocks: [1,2,3,6,7,8,11,13,14,16]
+ blocks: [1,2,3,6,7,8,11,13,14,16,17]
@@ -923,4 +989,11 @@
124 CALL_METHOD MyException.<init> (static-instance)
- 124 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
+ 17:
+ 122 LOAD_LOCAL(value ex6)
+ 122 STORE_LOCAL(value x4)
+ 122 SCOPE_ENTER value x4
+ 122 JUMP 7
+
16:
@@ -948,8 +1021,5 @@
127 SCOPE_ENTER value x5
- 127 LOAD_LOCAL(value x5)
- 127 CALL_METHOD MyException.message (dynamic)
- 127 STORE_LOCAL(value message)
- 127 SCOPE_ENTER value message
127 LOAD_MODULE object Predef
- 127 LOAD_LOCAL(value message)
+ ? LOAD_LOCAL(value x5)
+ 127 CALL_METHOD MyException.message (dynamic)
127 CALL_METHOD scala.Predef.println (dynamic)
@@ -982,3 +1052,3 @@
with finalizer: null
- catch (IllegalArgumentException) in Vector(6, 7, 8, 11, 13, 14, 16) starting at: 3
+ catch (IllegalArgumentException) in Vector(6, 7, 8, 11, 13, 14, 16, 17) starting at: 3
consisting of blocks: List(3)
@@ -1006,5 +1076,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
- locals: value args, variable result, value ex6, value x4, value x5, value message, value x, value e
+ locals: value args, variable result, value ex6, value x4, value x5, value x, value e
startBlock: 1
- blocks: [1,2,3,4,5,8,12,13,14,16]
+ blocks: [1,2,3,5,8,12,13,14,16,17]
@@ -1032,4 +1102,13 @@
148 CALL_METHOD MyException.<init> (static-instance)
- 148 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
+ 17:
+ 145 LOAD_LOCAL(value ex6)
+ 145 STORE_LOCAL(value x4)
+ 145 SCOPE_ENTER value x4
+ 154 LOAD_LOCAL(value x4)
+ 154 IS_INSTANCE REF(class MyException)
+ 154 CZJUMP (BOOL)NE ? 5 : 8
+
16:
@@ -1053,5 +1132,2 @@
145 SCOPE_ENTER value x4
- 145 JUMP 4
-
- 4:
154 LOAD_LOCAL(value x4)
@@ -1065,8 +1141,5 @@
154 SCOPE_ENTER value x5
- 154 LOAD_LOCAL(value x5)
- 154 CALL_METHOD MyException.message (dynamic)
- 154 STORE_LOCAL(value message)
- 154 SCOPE_ENTER value message
154 LOAD_MODULE object Predef
- 154 LOAD_LOCAL(value message)
+ ? LOAD_LOCAL(value x5)
+ 154 CALL_METHOD MyException.message (dynamic)
154 CALL_METHOD scala.Predef.println (dynamic)
@@ -1287,3 +1360,3 @@
startBlock: 1
- blocks: [1,2,3,4,5,7]
+ blocks: [1,2,3,4,5,7,8]
@@ -1311,4 +1384,11 @@
38 CALL_METHOD java.lang.IllegalArgumentException.<init> (static-instance)
- 38 THROW(IllegalArgumentException)
+ ? STORE_LOCAL(value e)
+ ? JUMP 8
+ 8:
+ 42 LOAD_MODULE object Predef
+ 42 CONSTANT("IllegalArgumentException")
+ 42 CALL_METHOD scala.Predef.println (dynamic)
+ 42 JUMP 2
+
7:
@@ -1358,5 +1438,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
- locals: value args, variable result, value ex6, value x4, value x5, value message, value x
+ locals: value args, variable result, value ex6, value x4, value x5, value x
startBlock: 1
- blocks: [1,2,3,4,5,8,10,11,13,14,16]
+ blocks: [1,2,3,5,8,10,11,13,14,16,17]
@@ -1384,3 +1464,4 @@
203 CALL_METHOD MyException.<init> (static-instance)
- 203 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
@@ -1404,4 +1485,13 @@
209 CALL_METHOD MyException.<init> (static-instance)
- 209 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
+ 17:
+ 200 LOAD_LOCAL(value ex6)
+ 200 STORE_LOCAL(value x4)
+ 200 SCOPE_ENTER value x4
+ 212 LOAD_LOCAL(value x4)
+ 212 IS_INSTANCE REF(class MyException)
+ 212 CZJUMP (BOOL)NE ? 5 : 8
+
16:
@@ -1417,5 +1507,2 @@
200 SCOPE_ENTER value x4
- 200 JUMP 4
-
- 4:
212 LOAD_LOCAL(value x4)
@@ -1429,8 +1516,5 @@
212 SCOPE_ENTER value x5
- 212 LOAD_LOCAL(value x5)
- 212 CALL_METHOD MyException.message (dynamic)
- 212 STORE_LOCAL(value message)
- 212 SCOPE_ENTER value message
213 LOAD_MODULE object Predef
- 213 LOAD_LOCAL(value message)
+ ? LOAD_LOCAL(value x5)
+ 213 CALL_METHOD MyException.message (dynamic)
213 CALL_METHOD scala.Predef.println (dynamic)
@@ -1478,3 +1562,3 @@
startBlock: 1
- blocks: [1,2,3,4,5,7]
+ blocks: [1,2,3,4,5,7,8]
@@ -1502,4 +1586,11 @@
58 CALL_METHOD java.lang.IllegalArgumentException.<init> (static-instance)
- 58 THROW(IllegalArgumentException)
+ ? STORE_LOCAL(value e)
+ ? JUMP 8
+ 8:
+ 62 LOAD_MODULE object Predef
+ 62 CONSTANT("RuntimeException")
+ 62 CALL_METHOD scala.Predef.println (dynamic)
+ 62 JUMP 2
+
7:
@@ -1551,3 +1642,3 @@
startBlock: 1
- blocks: [1,3,4]
+ blocks: [1,3,4,5]
@@ -1571,4 +1662,9 @@
229 CALL_METHOD MyException.<init> (static-instance)
- 229 THROW(MyException)
+ ? JUMP 5
+ 5:
+ ? LOAD_LOCAL(variable monitor1)
+ 228 MONITOR_EXIT
+ 228 THROW(Throwable)
+
3:
@@ -1577,3 +1673,3 @@
228 MONITOR_EXIT
- ? THROW(Throwable)
+ 228 THROW(Throwable)
@@ -1605,5 +1701,5 @@
def main(args: Array[String] (ARRAY[REF(class String)])): Unit {
- locals: value args, variable result, variable monitor2, variable monitorResult1
+ locals: value exception$1, value args, variable result, variable monitor2, variable monitorResult1
startBlock: 1
- blocks: [1,3,4]
+ blocks: [1,3,4,5]
@@ -1630,4 +1726,12 @@
245 CALL_METHOD MyException.<init> (static-instance)
- 245 THROW(MyException)
+ ? STORE_LOCAL(value exception$1)
+ ? DROP ConcatClass
+ ? LOAD_LOCAL(value exception$1)
+ ? JUMP 5
+ 5:
+ ? LOAD_LOCAL(variable monitor2)
+ 244 MONITOR_EXIT
+ 244 THROW(Throwable)
+
3:
@@ -1636,3 +1740,3 @@
244 MONITOR_EXIT
- ? THROW(Throwable)
+ 244 THROW(Throwable)