--- 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)
@@ -390,5 +386,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]
@@ -416,4 +412,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:
@@ -429,5 +434,2 @@
101 SCOPE_ENTER value x4
- 101 JUMP 4
-
- 4:
106 LOAD_LOCAL(value x4)
@@ -441,8 +443,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)
@@ -518,3 +517,3 @@
startBlock: 1
- blocks: [1,2,3,4,6,7,9,10]
+ blocks: [1,3,4,6,7,9,10,11,12,13]
@@ -547,4 +546,9 @@
306 CALL_METHOD MyException.<init> (static-instance)
- 306 THROW(MyException)
+ ? JUMP 11
+ 11:
+ ? LOAD_LOCAL(variable monitor4)
+ 305 MONITOR_EXIT
+ ? JUMP 12
+
9:
@@ -553,3 +557,3 @@
305 MONITOR_EXIT
- ? THROW(Throwable)
+ ? JUMP 12
@@ -559,4 +563,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:
@@ -573,5 +584,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)
@@ -583,6 +603,6 @@
with finalizer: null
- catch (Throwable) in ArrayBuffer(7, 9, 10) starting at: 6
+ catch (Throwable) in ArrayBuffer(7, 9, 10, 11) starting at: 6
consisting of blocks: List(6)
with finalizer: null
- catch (Throwable) in ArrayBuffer(4, 6, 7, 9, 10) starting at: 3
+ catch (Throwable) in ArrayBuffer(4, 6, 7, 9, 10, 11, 12) starting at: 3
consisting of blocks: List(3)
@@ -618,3 +638,3 @@
startBlock: 1
- blocks: [1,3,4,5,6,8,9]
+ blocks: [1,3,4,5,6,8,9,10,11]
@@ -642,4 +662,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:
@@ -668,3 +694,4 @@
81 LOAD_LOCAL(value e)
- 81 THROW(Exception)
+ ? STORE_LOCAL(variable exc1)
+ ? JUMP 11
@@ -685,2 +712,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)
+
}
@@ -690,3 +730,3 @@
with finalizer: null
- catch (<none>) in ArrayBuffer(4, 5, 6, 8) starting at: 3
+ catch (<none>) in ArrayBuffer(4, 5, 6, 8, 10) starting at: 3
consisting of blocks: List(3)
@@ -714,5 +754,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]
@@ -740,4 +780,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:
@@ -780,8 +827,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)
@@ -789,5 +833,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
@@ -795,3 +841,4 @@
170 LOAD_LOCAL(value ex6)
- 170 THROW(Throwable)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 26
@@ -805,2 +852,8 @@
+ 26:
+ 169 LOAD_LOCAL(value ex6)
+ 169 STORE_LOCAL(value x4)
+ 169 SCOPE_ENTER value x4
+ 169 JUMP 5
+
5:
@@ -815,8 +868,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)
@@ -824,5 +874,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
@@ -830,3 +882,4 @@
169 LOAD_LOCAL(value ex6)
- 169 THROW(Throwable)
+ ? STORE_LOCAL(variable exc2)
+ ? JUMP 27
@@ -847,2 +900,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)
+
}
@@ -852,6 +918,6 @@
with finalizer: null
- catch (Throwable) in ArrayBuffer(13, 14, 15, 18, 20, 21, 23) starting at: 4
+ catch (Throwable) in ArrayBuffer(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 ArrayBuffer(4, 5, 6, 9, 13, 14, 15, 18, 20, 21, 23) starting at: 3
+ catch (<none>) in ArrayBuffer(4, 5, 6, 9, 13, 14, 15, 18, 20, 21, 23, 25, 26) starting at: 3
consisting of blocks: List(3)
@@ -879,5 +945,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]
@@ -905,4 +971,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:
@@ -930,8 +1003,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)
@@ -964,3 +1034,3 @@
with finalizer: null
- catch (IllegalArgumentException) in ArrayBuffer(6, 7, 8, 11, 13, 14, 16) starting at: 3
+ catch (IllegalArgumentException) in ArrayBuffer(6, 7, 8, 11, 13, 14, 16, 17) starting at: 3
consisting of blocks: List(3)
@@ -988,5 +1058,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]
@@ -1014,4 +1084,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:
@@ -1035,5 +1114,2 @@
145 SCOPE_ENTER value x4
- 145 JUMP 4
-
- 4:
154 LOAD_LOCAL(value x4)
@@ -1047,8 +1123,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)
@@ -1269,3 +1342,3 @@
startBlock: 1
- blocks: [1,2,3,4,5,7]
+ blocks: [1,2,3,4,5,7,8]
@@ -1293,4 +1366,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:
@@ -1340,5 +1420,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]
@@ -1366,3 +1446,4 @@
203 CALL_METHOD MyException.<init> (static-instance)
- 203 THROW(MyException)
+ ? STORE_LOCAL(value ex6)
+ ? JUMP 17
@@ -1386,4 +1467,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:
@@ -1399,5 +1489,2 @@
200 SCOPE_ENTER value x4
- 200 JUMP 4
-
- 4:
212 LOAD_LOCAL(value x4)
@@ -1411,8 +1498,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)
@@ -1460,3 +1544,3 @@
startBlock: 1
- blocks: [1,2,3,4,5,7]
+ blocks: [1,2,3,4,5,7,8]
@@ -1484,4 +1568,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:
@@ -1533,3 +1624,3 @@
startBlock: 1
- blocks: [1,3,4]
+ blocks: [1,3,4,5]
@@ -1553,4 +1644,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:
@@ -1559,3 +1655,3 @@
228 MONITOR_EXIT
- ? THROW(Throwable)
+ 228 THROW(Throwable)
@@ -1587,5 +1683,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]
@@ -1612,4 +1708,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:
@@ -1618,3 +1722,3 @@
244 MONITOR_EXIT
- ? THROW(Throwable)
+ 244 THROW(Throwable)