JS: replace noImpl with definedExternally in hand-written stdlib

This commit is contained in:
Alexey Andreev
2017-01-23 16:39:31 +03:00
parent c05870b461
commit 5243b451f7
15 changed files with 63 additions and 65 deletions
+4 -4
View File
@@ -2,11 +2,11 @@ package kotlin.browser
import org.w3c.dom.*
public external val window: Window = noImpl
public external val window: Window
public external val document: Document = noImpl
public external val document: Document
public external val localStorage: Storage = noImpl
public external val localStorage: Storage
public external val sessionStorage: Storage = noImpl
public external val sessionStorage: Storage
+1 -1
View File
@@ -58,7 +58,7 @@ internal fun <T> copyToArrayImpl(collection: Collection<*>, array: Array<T>): Ar
}
@library("arrayToString")
internal fun arrayToString(array: Array<*>): String = noImpl
internal fun arrayToString(array: Array<*>): String = definedExternally
/**
* Returns an immutable list containing only the specified object [element].
+5 -7
View File
@@ -1,22 +1,20 @@
package kotlin.js
public external val noImpl: Nothing
get() = definedExternally
public external val definedExternally: Nothing
get() = definedExternally
public external fun eval(expr: String): dynamic = noImpl
public external fun eval(expr: String): dynamic
public external val undefined: Nothing? = noImpl
public external val undefined: Nothing?
@Deprecated("Use toInt(radix) instead.", ReplaceWith("s.toInt(radix)"), level = DeprecationLevel.ERROR)
public external fun parseInt(s: String, radix: Int = noImpl): Int
public external fun parseInt(s: String, radix: Int = definedExternally): Int
@Deprecated("Use toDouble() instead.", ReplaceWith("s.toDouble()"), level = DeprecationLevel.ERROR)
public external fun parseFloat(s: String, radix: Int = noImpl): Double
public external fun parseFloat(s: String, radix: Int = definedExternally): Double
public external fun js(code: String): dynamic = noImpl
public external fun js(code: String): dynamic
/**
* Function corresponding to JavaScript's `typeof` operator
+1 -1
View File
@@ -1,5 +1,5 @@
package kotlin.js
public external class Date() {
public fun getTime(): Int = noImpl
public fun getTime(): Int
}
+1 -1
View File
@@ -9,4 +9,4 @@ external public interface Console {
public fun warn(vararg o: Any?): Unit
}
public external val console: Console = noImpl
public external val console: Console
+1 -1
View File
@@ -22,7 +22,7 @@ package java.util
@Deprecated("Use kotlin.js.Date instead", ReplaceWith("kotlin.js.Date"))
public external class Date() {
public fun getTime(): Int = noImpl
public fun getTime(): Int
}
@Deprecated("Use kotlin.collections.RandomAccess instead", ReplaceWith("kotlin.collections.RandomAccess"))
+2 -2
View File
@@ -1,8 +1,8 @@
package kotlin.js
public external class Json() {
operator fun get(propertyName: String): Any? = noImpl
operator fun set(propertyName: String, value: Any?): Unit = noImpl
operator fun get(propertyName: String): Any?
operator fun set(propertyName: String, value: Any?): Unit
}
public fun json(vararg pairs: Pair<String, Any?>): Json {
+9 -9
View File
@@ -22,31 +22,31 @@ package kotlin
public inline fun <T> emptyArray(): Array<T> = js("[]")
@library
public fun <T> arrayOf(vararg elements: T): Array<T> = noImpl
public fun <T> arrayOf(vararg elements: T): Array<T> = definedExternally
@library
public fun doubleArrayOf(vararg elements: Double): DoubleArray = noImpl
public fun doubleArrayOf(vararg elements: Double): DoubleArray = definedExternally
@library
public fun floatArrayOf(vararg elements: Float): FloatArray = noImpl
public fun floatArrayOf(vararg elements: Float): FloatArray = definedExternally
@library
public fun longArrayOf(vararg elements: Long): LongArray = noImpl
public fun longArrayOf(vararg elements: Long): LongArray = definedExternally
@library
public fun intArrayOf(vararg elements: Int): IntArray = noImpl
public fun intArrayOf(vararg elements: Int): IntArray = definedExternally
@library
public fun charArrayOf(vararg elements: Char): CharArray = noImpl
public fun charArrayOf(vararg elements: Char): CharArray = definedExternally
@library
public fun shortArrayOf(vararg elements: Short): ShortArray = noImpl
public fun shortArrayOf(vararg elements: Short): ShortArray = definedExternally
@library
public fun byteArrayOf(vararg elements: Byte): ByteArray = noImpl
public fun byteArrayOf(vararg elements: Byte): ByteArray = definedExternally
@library
public fun booleanArrayOf(vararg elements: Boolean): BooleanArray = noImpl
public fun booleanArrayOf(vararg elements: Boolean): BooleanArray = definedExternally
/**
* Creates a new instance of the [Lazy] that uses the specified initialization function [initializer].
+23 -23
View File
@@ -2,29 +2,29 @@ package kotlin.js
//TODO: declare using number
public external object Math {
public val PI: Double = noImpl
public fun random(): Double = noImpl
public fun abs(value: Double): Double = noImpl
public fun acos(value: Double): Double = noImpl
public fun asin(value: Double): Double = noImpl
public fun atan(value: Double): Double = noImpl
public fun atan2(x: Double, y: Double): Double = noImpl
public fun cos(value: Double): Double = noImpl
public fun sin(value: Double): Double = noImpl
public fun exp(value: Double): Double = noImpl
public fun max(vararg values: Int): Int = noImpl
public fun max(vararg values: Float): Float = noImpl
public fun max(vararg values: Double): Double = noImpl
public fun min(vararg values: Int): Int = noImpl
public fun min(vararg values: Float): Float = noImpl
public fun min(vararg values: Double): Double = noImpl
public fun sqrt(value: Double): Double = noImpl
public fun tan(value: Double): Double = noImpl
public fun log(value: Double): Double = noImpl
public fun pow(base: Double, exp: Double): Double = noImpl
public fun round(value: Number): Int = noImpl
public fun floor(value: Number): Int = noImpl
public fun ceil(value: Number): Int = noImpl
public val PI: Double
public fun random(): Double
public fun abs(value: Double): Double
public fun acos(value: Double): Double
public fun asin(value: Double): Double
public fun atan(value: Double): Double
public fun atan2(x: Double, y: Double): Double
public fun cos(value: Double): Double
public fun sin(value: Double): Double
public fun exp(value: Double): Double
public fun max(vararg values: Int): Int
public fun max(vararg values: Float): Float
public fun max(vararg values: Double): Double
public fun min(vararg values: Int): Int
public fun min(vararg values: Float): Float
public fun min(vararg values: Double): Double
public fun sqrt(value: Double): Double
public fun tan(value: Double): Double
public fun log(value: Double): Double
public fun pow(base: Double, exp: Double): Double
public fun round(value: Number): Int
public fun floor(value: Number): Int
public fun ceil(value: Number): Int
}
public fun Math.min(a: Long, b: Long): Long = if (a <= b) a else b
+7 -7
View File
@@ -17,22 +17,22 @@
package kotlin.text.js
public external class RegExp(pattern: String, flags: String? = noImpl) {
public external class RegExp(pattern: String, flags: String? = definedExternally) {
public fun test(str: String): Boolean = noImpl
public fun test(str: String): Boolean
public fun exec(str: String): RegExpMatch? = noImpl
public fun exec(str: String): RegExpMatch?
public override fun toString(): String = noImpl
public override fun toString(): String
/**
* The lastIndex is a read/write integer property of regular expressions that specifies the index at which to start the next match.
*/
public var lastIndex: Int
public val global: Boolean get() = noImpl
public val ignoreCase: Boolean get() = noImpl
public val multiline: Boolean get() = noImpl
public val global: Boolean
public val ignoreCase: Boolean
public val multiline: Boolean
}
public fun RegExp.reset() {
+1 -1
View File
@@ -22,7 +22,7 @@ public inline fun String.concat(str: String): String = asDynamic().concat(str)
public inline fun String.match(regex: String): Array<String> = asDynamic().match(regex)
//native public fun String.trim() : String = noImpl
//native public fun String.trim(): String
//TODO: String.replace to implement effective trimLeading and trimTrailing
public inline val CharSequence.size: Int get() = asDynamic().length
@@ -3,8 +3,8 @@ package jquery
import org.w3c.dom.Element
public external class JQuery() {
public fun addClass(className: String): JQuery = noImpl;
public fun addClass(f: Element.(Int, String) -> String): JQuery = noImpl;
public fun addClass(className: String): JQuery
public fun addClass(f: Element.(Int, String) -> String): JQuery
public fun attr(attrName: String): String
public fun attr(attrName: String, value: String): JQuery
@@ -37,9 +37,9 @@ public external class 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
public fun next(): JQuery
public fun parent(): JQuery
public fun `val`(): String?
}
open public external class MouseEvent() {
+1 -1
View File
@@ -4,5 +4,5 @@ package QUnit
* The [QUnit](http://qunitjs.com/) API
*/
public external fun ok(actual: Boolean, message: String?): Unit = noImpl
public external fun ok(actual: Boolean, message: String?): Unit
+1 -1
View File
@@ -25,7 +25,7 @@ external interface JsClass<T : Any> {
}
@Deprecated("Use class literal and extension property `js` instead.", replaceWith = ReplaceWith("T::class.js"))
external fun <T : Any> jsClass(): JsClass<T> = noImpl
external fun <T : Any> jsClass(): JsClass<T>
@Deprecated("Use class literal and extension property `js` instead.", replaceWith = ReplaceWith("this::class.js"))
val <T : Any> T.jsClass: JsClass<T>
@@ -4,5 +4,5 @@ package QUnit
* The [QUnit](http://qunitjs.com/) API
*/
external fun ok(actual: Boolean, message: String?): Unit = noImpl
external fun ok(actual: Boolean, message: String?): Unit