Files
kotlin-fork/js/js.translator/testData/box/expression/try/exceptionToString.kt
T
Svyatoslav Kuzmich a2625c7bc8 [JS IR BE] Don't render null messages in Throwable
Set message property to 'undefined' to make Error.prototype.toString
skip it
2019-07-04 18:33:23 +03:00

52 lines
1.6 KiB
Kotlin
Vendored

// IGNORE_BACKEND: JS
// EXPECTED_REACHABLE_NODES: 1298
package foo
class MyException(m: String? = null): Exception(m)
class MyException2(m: String? = null): Throwable(m)
class MyException3: Throwable {
constructor(m: String? = null) : super(m) {}
}
class MyException4(c: Throwable? = null): Throwable(c)
class MyException5: Throwable {
constructor(c: Throwable? = null) : super(c) {}
}
fun check(e: Throwable, expectedString: String) {
try {
throw e
}
catch (e: Throwable) {
assertEquals(expectedString, e.toString())
}
}
fun box(): String {
check(Throwable(), "Throwable")
check(Throwable("ccc"), "Throwable: ccc")
check(Throwable(Throwable("ddd")), "Throwable: Throwable: ddd")
check(Exception(), "Exception")
check(Exception("bbb"), "Exception: bbb")
check(Exception(Exception("ccc")), "Exception: Exception: ccc")
check(AssertionError(), "AssertionError")
check(AssertionError(null), "AssertionError")
check(AssertionError("bbb"), "AssertionError: bbb")
check(AssertionError(Exception("ccc")), "AssertionError: Exception: ccc")
check(MyException(), "MyException")
check(MyException("aaa"), "MyException: aaa")
check(MyException2(), "MyException2")
check(MyException2("aaa"), "MyException2: aaa")
check(MyException3(), "MyException3")
check(MyException3("aaa"), "MyException3: aaa")
check(MyException4(), "MyException4")
check(MyException4(AssertionError()), "MyException4: AssertionError")
check(MyException5(), "MyException5")
check(MyException5(MyException5()), "MyException5: MyException5")
return "OK"
}