From 3ef132184121c36468d1c8a6c2925aac92c8f3af Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Mon, 26 Dec 2016 01:22:00 +0300 Subject: [PATCH] KJS: implement throw* functions in Kotlin --- js/js.libraries/src/core/exceptionUtils.kt | 32 ++++++++++++++++++++++ js/js.libraries/src/js/kotlin_lib.js | 12 -------- 2 files changed, 32 insertions(+), 12 deletions(-) create mode 100644 js/js.libraries/src/core/exceptionUtils.kt diff --git a/js/js.libraries/src/core/exceptionUtils.kt b/js/js.libraries/src/core/exceptionUtils.kt new file mode 100644 index 00000000000..11120f8bff1 --- /dev/null +++ b/js/js.libraries/src/core/exceptionUtils.kt @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// a package is omitted to get declarations directly under the module + +@JsName("throwNPE") +private fun throwNPE(message: String) { + throw NullPointerException(message) +} + +@JsName("throwCCE") +private fun throwCCE() { + throw ClassCastException("Illegal cast") +} + +@JsName("throwISE") +private fun throwISE(message: String) { + throw IllegalStateException(message) +} diff --git a/js/js.libraries/src/js/kotlin_lib.js b/js/js.libraries/src/js/kotlin_lib.js index 3f8d4090160..1a6c8515a18 100644 --- a/js/js.libraries/src/js/kotlin_lib.js +++ b/js/js.libraries/src/js/kotlin_lib.js @@ -168,18 +168,6 @@ Kotlin.numberToChar = function (a) { return Kotlin.toChar(Kotlin.numberToInt(a)); }; -Kotlin.throwNPE = function (message) { - throw new Kotlin.kotlin.NullPointerException(message); -}; - -Kotlin.throwCCE = function () { - throw new Kotlin.kotlin.ClassCastException("Illegal cast"); -}; - -Kotlin.throwISE = function (message) { - throw new Kotlin.kotlin.IllegalStateException(message); -}; - /** @const */ var POW_2_32 = 4294967296; // TODO: consider switching to Symbol type once we are on ES6.