| // IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, WASM |
| // FILE: lib.kt |
| val x: String = computeX() |
| |
| fun computeX(): String = throw IllegalStateException("1") |
| |
| // FILE: lib2.kt |
| val y: String = computeY() |
| |
| fun computeY(): String = throw Error("2") |
| |
| |
| // FILE: main.kt |
| fun box() : String { |
| try { |
| x |
| return "FAIL 1" |
| } catch(t: Error) { |
| val cause = t.cause |
| if (cause !is IllegalStateException) return "FAIL 2" |
| if (cause.message != "1") return "FAIL 3" |
| } |
| try { |
| y |
| return "FAIL 4" |
| } catch(t: Error) { |
| if (t.cause != null) return "FAIL 5" |
| if (t.message != "2") return "FAIL 6" |
| } |
| return "OK" |
| } |