0: Enter function "run" -> 1
1:   Enter block -> 2  |  <- 0
2:     Function call: R|<local>/block|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|() -> 3  |  <- 1
3:   Exit block -> 4  |  <- 2
4: Exit function "run" ->   |  <- 3

0: Enter property -> 1
1:   Const: Int(1) -> 2  |  <- 0
2: Exit property ->   |  <- 1

0:   Enter function "getter" -> 1
1:     Enter block -> 2  |  <- 0
2:       Const: Int(1) -> 3  |  <- 1
3:       Jump: ^ Int(1) -> 4[DEAD], 6[DEAD]  |  <- 2
4:       Stub[DEAD] -> 5  |  <- 3
5:     Exit block[DEAD] -> 6  |  <- 4
6:   Exit function "getter"[DEAD] ->   |  <- 3, 5

0:   Enter function "setter" -> 1
1:     Enter block -> 2  |  <- 0
2:       Const: Int(1) -> 3  |  <- 1
3:       Assignmenet: F|/x2| -> 4  |  <- 2
4:     Exit block -> 5  |  <- 3
5:   Exit function "setter" ->   |  <- 4

0: Enter property -> 1
1:   Const: Int(1) -> 2  |  <- 0
2: Exit property ->   |  <- 1

 0:       Enter init block -> 1
 1:         Enter block -> 2  |  <- 0
 2:           Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() -> 3  |  <- 1
 3:           Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() -> 4[DEAD], 7[DEAD]  |  <- 2
 4:           Stub[DEAD] -> 5  |  <- 3
 5:           Const: Int(1)[DEAD] -> 6  |  <- 4
 6:         Exit block[DEAD] -> 7  |  <- 5
 7:       Exit init block[DEAD] ->   |  <- 3, 6
 8:   Enter function "anonymousFunction" -> 9
 9:     Enter block -> 10  |  <- 8
10:       Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() -> 11  |  <- 9
11:       Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() -> 12[DEAD], 14[DEAD]  |  <- 10
12:       Stub[DEAD] -> 13  |  <- 11
13:     Exit block[DEAD] -> 14  |  <- 12
14:   Exit function "anonymousFunction"[DEAD] ->   |  <- 11, 13

 0:       Enter function "foo" -> 1
 1:         Enter block -> 2  |  <- 0
 2:           Const: Int(1) -> 3  |  <- 1
 3:           Const: Int(1) -> 4  |  <- 2
 4:           Function call: Int(1).R|kotlin/Int.plus|(Int(1)) -> 5  |  <- 3
 5:           Variable declaration: lval c: R|kotlin/Int| -> 6  |  <- 4
 6:           Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() -> 7  |  <- 5
 7:           Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() -> 8[DEAD], 10[DEAD]  |  <- 6
 8:           Stub[DEAD] -> 9  |  <- 7
 9:         Exit block[DEAD] -> 10  |  <- 8
10:       Exit function "foo"[DEAD] ->   |  <- 7, 9

 0:       Enter init block -> 1
 1:         Enter block -> 2  |  <- 0
 2:           Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() -> 3  |  <- 1
 3:           Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() -> 4[DEAD], 6[DEAD]  |  <- 2
 4:           Stub[DEAD] -> 5  |  <- 3
 5:         Exit block[DEAD] -> 6  |  <- 4
 6:       Exit init block[DEAD] ->   |  <- 3, 5
 7:   Enter function "getter" -> 8
 8:     Enter block -> 9  |  <- 7
 9:     Exit block -> 10  |  <- 8
10:   Exit function "getter" ->   |  <- 9

0: Enter property -> 1
1:   Function call: R|/run|(<L> = run@fun <anonymous>(): R|kotlin/Unit| {
    local final fun foo(): R|kotlin/Unit| {
        lval c: R|kotlin/Int| = Int(1).R|kotlin/Int.plus|(Int(1))
        throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
    }

    local final class LocalClass : R|kotlin/Any| {
        public constructor(): R|LocalClass| {
            super<R|kotlin/Any|>()
        }

        init {
            throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
            Int(1)
        }

    }

    throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
}
) -> 2  |  <- 0
2: Exit property ->   |  <- 1

 0: Enter property -> 1
 1:   Try expression enter -> 2  |  <- 0
 2:     Try main block enter -> 3, 7, 12, 18  |  <- 1
 3:       Enter block -> 4  |  <- 2
 4:         Const: Int(1) -> 5  |  <- 3
 5:       Exit block -> 6  |  <- 4
 6:     Try main block exit -> 17  |  <- 5
 7:       Enter finally -> 8  |  <- 2
 8:     Enter block -> 9  |  <- 7
 9:       Const: Int(0) -> 10  |  <- 8
10:     Exit block -> 11  |  <- 9
11:     Exit finally -> 17  |  <- 10
12:     Catch enter -> 13, 18  |  <- 2
13:       Enter block -> 14  |  <- 12
14:         Const: Int(2) -> 15  |  <- 13
15:       Exit block -> 16  |  <- 14
16:     Catch exit -> 17  |  <- 15
17:   Try expression exit -> 18  |  <- 6, 11, 16
18: Exit property ->   |  <- 2, 12, 17

