diff --git a/js/js.libraries/src/core/javalang.kt b/js/js.libraries/src/core/javalang.kt index 2770a1c32ec..b7e03bf2ef2 100644 --- a/js/js.libraries/src/core/javalang.kt +++ b/js/js.libraries/src/core/javalang.kt @@ -1,5 +1,8 @@ package java.lang +library +open public class Error(message: String? = null): Throwable(message) {} + library open public class Exception(message: String? = null): Throwable(message) {} diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StandardClasses.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StandardClasses.java index 4e707e9761f..d2bc2778806 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StandardClasses.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/StandardClasses.java @@ -121,6 +121,8 @@ public final class StandardClasses { standardClasses.declare().forFQ("kotlin.Enum").kotlinClass("Enum"); standardClasses.declare().forFQ("kotlin.Comparable").kotlinClass("Comparable"); + + standardClasses.declare().forFQ("koltin.Throwable").kotlinClass("Throwable"); } diff --git a/js/js.translator/testData/kotlin_lib.js b/js/js.translator/testData/kotlin_lib.js index 30c968e6a84..ed6df120ce5 100644 --- a/js/js.translator/testData/kotlin_lib.js +++ b/js/js.translator/testData/kotlin_lib.js @@ -178,7 +178,8 @@ return new Kotlin.Progression(from, to, -1); }; - Kotlin.Exception = Error; + Kotlin.Throwable = Error; + function createClassNowWithMessage(base) { return Kotlin.createClassNow(base, @@ -189,6 +190,8 @@ ); } + Kotlin.Error = createClassNowWithMessage(Kotlin.Throwable); + Kotlin.Exception = createClassNowWithMessage(Kotlin.Throwable); Kotlin.RuntimeException = createClassNowWithMessage(Kotlin.Exception); Kotlin.NullPointerException = createClassNowWithMessage(Kotlin.RuntimeException); Kotlin.NoSuchElementException = createClassNowWithMessage(Kotlin.RuntimeException); @@ -386,7 +389,7 @@ }, clear: function () { // TODO: implement with mutable iterator - throw new Kotlin.UnsupportedOperationException("Not implemented yet, see KT-7809"); + throw new Kotlin.NotImplementedError("Not implemented yet, see KT-7809"); }, containsAll_4fm7v2$: function (c) { var it = c.iterator(); @@ -464,7 +467,7 @@ }, addAll_9cca64$: function (index, collection) { // TODO: implement - throw new Kotlin.UnsupportedOperationException("Not implemented yet, see KT-7809"); + throw new Kotlin.NotImplementedError("Not implemented yet, see KT-7809"); }, remove_za3rmp$: function (o) { var index = this.indexOf_za3rmp$(o); @@ -476,7 +479,7 @@ }, clear: function () { // TODO: implement with remove range - throw new Kotlin.UnsupportedOperationException("Not implemented yet, see KT-7809"); + throw new Kotlin.NotImplementedError("Not implemented yet, see KT-7809"); }, contains_za3rmp$: function (o) { return this.indexOf_za3rmp$(o) !== -1;