[JS IR BE] Don't render null messages in Throwable
Set message property to 'undefined' to make Error.prototype.toString skip it
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// IGNORE_BACKEND: JS
|
||||
// EXPECTED_REACHABLE_NODES: 1298
|
||||
package foo
|
||||
|
||||
@@ -8,8 +9,10 @@ class MyException3: Throwable {
|
||||
constructor(m: String? = null) : super(m) {}
|
||||
}
|
||||
|
||||
// TODO: add direct inheritors of Throwable:
|
||||
// - with cause only, in the primary constructor
|
||||
class MyException4(c: Throwable? = null): Throwable(c)
|
||||
class MyException5: Throwable {
|
||||
constructor(c: Throwable? = null) : super(c) {}
|
||||
}
|
||||
|
||||
fun check(e: Throwable, expectedString: String) {
|
||||
try {
|
||||
@@ -21,22 +24,28 @@ fun check(e: Throwable, expectedString: String) {
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
check(Throwable(), "Throwable: null")
|
||||
check(Throwable(), "Throwable")
|
||||
check(Throwable("ccc"), "Throwable: ccc")
|
||||
check(Throwable(Throwable("ddd")), "Throwable: Throwable: ddd")
|
||||
check(Exception(), "Exception: null")
|
||||
check(Exception(), "Exception")
|
||||
check(Exception("bbb"), "Exception: bbb")
|
||||
check(Exception(Exception("ccc")), "Exception: Exception: ccc")
|
||||
check(AssertionError(), "AssertionError: null")
|
||||
check(AssertionError(null), "AssertionError: null")
|
||||
check(AssertionError(), "AssertionError")
|
||||
check(AssertionError(null), "AssertionError")
|
||||
check(AssertionError("bbb"), "AssertionError: bbb")
|
||||
check(AssertionError(Exception("ccc")), "AssertionError: Exception: ccc")
|
||||
check(MyException(), "MyException: null")
|
||||
check(MyException(), "MyException")
|
||||
check(MyException("aaa"), "MyException: aaa")
|
||||
check(MyException2(), "MyException2: null")
|
||||
check(MyException2(), "MyException2")
|
||||
check(MyException2("aaa"), "MyException2: aaa")
|
||||
check(MyException3(), "MyException3: null")
|
||||
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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user