From e8a1b7d6ffd987daf0f78dfeda2fdd5c98e37038 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Mon, 19 Dec 2016 19:39:19 +0300 Subject: [PATCH] JS: update stdlib to respect new restrictions for `external` declarations --- js/js.libraries/src/core/core.kt | 4 +- js/js.libraries/src/core/debug.kt | 10 ++-- js/js.libraries/src/core/math.kt | 2 +- js/js.libraries/src/core/regexp.kt | 2 +- js/js.libraries/src/jquery/common.kt | 69 ++++++++++++++-------------- 5 files changed, 43 insertions(+), 44 deletions(-) diff --git a/js/js.libraries/src/core/core.kt b/js/js.libraries/src/core/core.kt index 1530c863590..183e52c109d 100644 --- a/js/js.libraries/src/core/core.kt +++ b/js/js.libraries/src/core/core.kt @@ -1,7 +1,7 @@ package kotlin.js public external val noImpl: Nothing - get() = throw Exception() + get() = noImpl public external fun eval(expr: String): dynamic = noImpl @@ -18,7 +18,7 @@ public fun println(s: Any?) {} public fun print(s: Any?) {} //TODO: consistent parseInt -public external fun parseInt(s: String, radix: Int = 10): Int = noImpl +public external fun parseInt(s: String, radix: Int = noImpl): Int = noImpl @library public fun safeParseInt(s: String): Int? = noImpl diff --git a/js/js.libraries/src/core/debug.kt b/js/js.libraries/src/core/debug.kt index f1f7a0059b8..5d2806ec52f 100644 --- a/js/js.libraries/src/core/debug.kt +++ b/js/js.libraries/src/core/debug.kt @@ -2,11 +2,11 @@ package kotlin.js // https://developer.mozilla.org/en/DOM/console external public interface Console { - public fun dir(o: Any): Unit = noImpl - public fun error(vararg o: Any?): Unit = noImpl - public fun info(vararg o: Any?): Unit = noImpl - public fun log(vararg o: Any?): Unit = noImpl - public fun warn(vararg o: Any?): Unit = noImpl + public fun dir(o: Any): Unit + public fun error(vararg o: Any?): Unit + public fun info(vararg o: Any?): Unit + public fun log(vararg o: Any?): Unit + public fun warn(vararg o: Any?): Unit } public external val console: Console = noImpl diff --git a/js/js.libraries/src/core/math.kt b/js/js.libraries/src/core/math.kt index f5833fd9563..d943657fc8b 100644 --- a/js/js.libraries/src/core/math.kt +++ b/js/js.libraries/src/core/math.kt @@ -25,4 +25,4 @@ public external class MathClass() { public fun ceil(value: Number): Int = noImpl } -public external val Math: MathClass = MathClass() +public external val Math: MathClass diff --git a/js/js.libraries/src/core/regexp.kt b/js/js.libraries/src/core/regexp.kt index 89285c26271..63fa88f1b57 100644 --- a/js/js.libraries/src/core/regexp.kt +++ b/js/js.libraries/src/core/regexp.kt @@ -17,7 +17,7 @@ package kotlin.text.js -public external class RegExp(pattern: String, flags: String? = null) { +public external class RegExp(pattern: String, flags: String? = noImpl) { public fun test(str: String): Boolean = noImpl diff --git a/js/js.libraries/src/jquery/common.kt b/js/js.libraries/src/jquery/common.kt index 7b07da74a9b..e1532ecbf98 100644 --- a/js/js.libraries/src/jquery/common.kt +++ b/js/js.libraries/src/jquery/common.kt @@ -6,63 +6,62 @@ public external class JQuery() { public fun addClass(className: String): JQuery = noImpl; public fun addClass(f: Element.(Int, String) -> String): JQuery = noImpl; - public fun attr(attrName: String): String = ""; - public fun attr(attrName: String, value: String): JQuery = this; + public fun attr(attrName: String): String + public fun attr(attrName: String, value: String): JQuery - public fun html(): String = ""; - public fun html(s: String): JQuery = this; - public fun html(f: Element.(Int, String) -> String): JQuery = this; + public fun html(): String + public fun html(s: String): JQuery + public fun html(f: Element.(Int, String) -> String): JQuery - public fun hasClass(className: String): Boolean = true - public fun removeClass(className: String): JQuery = this - public fun height(): Number = 0 - public fun width(): Number = 0 + public fun hasClass(className: String): Boolean + public fun removeClass(className: String): JQuery + public fun height(): Number + public fun width(): Number - public fun click(): JQuery = this; + public fun click(): JQuery - public fun mousedown(handler: Element.(MouseEvent) -> Unit): JQuery = this; - public fun mouseup(handler: Element.(MouseEvent) -> Unit): JQuery = this; - public fun mousemove(handler: Element.(MouseEvent) -> Unit): JQuery = this; + public fun mousedown(handler: Element.(MouseEvent) -> Unit): JQuery + public fun mouseup(handler: Element.(MouseEvent) -> Unit): JQuery + public fun mousemove(handler: Element.(MouseEvent) -> Unit): JQuery - public fun dblclick(handler: Element.(MouseClickEvent) -> Unit): JQuery = this; - public fun click(handler: Element.(MouseClickEvent) -> Unit): JQuery = this; + public fun dblclick(handler: Element.(MouseClickEvent) -> Unit): JQuery + public fun click(handler: Element.(MouseClickEvent) -> Unit): JQuery - public fun load(handler: Element.() -> Unit): JQuery = this; - public fun change(handler: Element.() -> Unit): JQuery = this; + public fun load(handler: Element.() -> Unit): JQuery + public fun change(handler: Element.() -> Unit): JQuery - public fun append(str: String): JQuery = this; - public fun ready(handler: () -> Unit): JQuery = this; - public fun text(text: String): JQuery = this; - public fun slideUp(): JQuery = this; - public fun hover(handlerInOut: Element.() -> Unit): JQuery = this; - public fun hover(handlerIn: Element.() -> Unit, handlerOut: Element.() -> Unit): JQuery = this; + public fun append(str: String): JQuery + public fun ready(handler: () -> Unit): JQuery + public fun text(text: String): JQuery + public fun slideUp(): JQuery + public fun hover(handlerInOut: Element.() -> Unit): JQuery + public fun hover(handlerIn: Element.() -> Unit, handlerOut: Element.() -> Unit): JQuery public fun next(): JQuery = noImpl public fun parent(): JQuery = noImpl public fun `val`(): String? = noImpl } open public external class MouseEvent() { - public val pageX: Double = 0.0; - public val pageY: Double = 0.0; - public fun preventDefault() { - } - public fun isDefaultPrevented(): Boolean = true; + public val pageX: Double + public val pageY: Double + public fun preventDefault() + public fun isDefaultPrevented(): Boolean } public external class MouseClickEvent() : MouseEvent() { - public val which: Int = 0; + public val which: Int } @JsName("$") -public external fun jq(selector: String): JQuery = JQuery(); +public external fun jq(selector: String): JQuery @JsName("$") -public external fun jq(selector: String, context: Element): JQuery = JQuery(); +public external fun jq(selector: String, context: Element): JQuery @JsName("$") -public external fun jq(callback: () -> Unit): JQuery = JQuery(); +public external fun jq(callback: () -> Unit): JQuery @JsName("$") -public external fun jq(obj: JQuery): JQuery = JQuery(); +public external fun jq(obj: JQuery): JQuery @JsName("$") -public external fun jq(el: Element): JQuery = JQuery(); +public external fun jq(el: Element): JQuery @JsName("$") -public external fun jq(): JQuery = JQuery(); +public external fun jq(): JQuery