KT-2752: add draft implementation of JsName annotation. Fix some tests using the annotation

This commit is contained in:
Alexey Andreev
2016-05-30 12:35:41 +03:00
parent 8738458c34
commit 5e3aa33b13
8 changed files with 75 additions and 55 deletions
+5 -1
View File
@@ -46,4 +46,8 @@ public annotation class enumerable()
@native
@Target(CLASS)
@Deprecated("Do not use this annotation: it is for internal use only")
public annotation class marker
public annotation class marker
@Retention(AnnotationRetention.BINARY)
@Target(CLASS, FUNCTION, PROPERTY, CONSTRUCTOR)
annotation class JsName(val name: String)
+4
View File
@@ -45,6 +45,7 @@ val Element?.elements: List<Element>
get() = this?.elements() ?: emptyList()
@Deprecated("Use non-nullable receiver version elements()", ReplaceWith("this?.elements(localName) ?: emptyList()"))
@JsName("deprecated_elements")
fun Element?.elements(localName: String): List<Element> = this?.elements(localName) ?: emptyList()
/** Returns all the descendant elements given the local element name */
@@ -53,11 +54,13 @@ fun Element.elements(localName: String = "*"): List<Element> {
}
/** Returns all the descendant elements given the local element name */
@JsName("deprecated_document_elements")
fun Document?.elements(localName: String = "*"): List<Element> {
return this?.getElementsByTagName(localName)?.asElementList() ?: emptyList()
}
@Deprecated("Use non-nullable elements function instead", ReplaceWith("this?.elements(namespaceUri, localName) ?: emptyList()"))
@JsName("deprecated_elements_2")
fun Element?.elements(namespaceUri: String, localName: String): List<Element> = this?.elements(namespaceUri, localName) ?: emptyList()
/** Returns all the descendant elements given the namespace URI and local element name */
@@ -71,6 +74,7 @@ fun Document?.elements(namespaceUri: String, localName: String): List<Element> {
}
@Deprecated("Use non-null function instead with elvis", ReplaceWith("this?.asList() ?: emptyList()"))
@JsName("deprecated_asList")
fun NodeList?.asList(): List<Node> = this?.asList() ?: emptyList()
fun NodeList.asList(): List<Node> = NodeListAsList(this)
@@ -17,48 +17,48 @@
package kotlin.js.internal
private object DoubleCompanionObject {
val MIN_VALUE: Double = js("Number.MIN_VALUE")
val MAX_VALUE: Double = js("Number.MAX_VALUE")
val POSITIVE_INFINITY: Double = js("Number.POSITIVE_INFINITY")
val NEGATIVE_INFINITY: Double = js("Number.NEGATIVE_INFINITY")
val NaN: Double = js("Number.NaN")
@JsName("MIN_VALUE") val MIN_VALUE: Double = js("Number.MIN_VALUE")
@JsName("MAX_VALUE") val MAX_VALUE: Double = js("Number.MAX_VALUE")
@JsName("POSITIVE_INFINITY") val POSITIVE_INFINITY: Double = js("Number.POSITIVE_INFINITY")
@JsName("NEGATIVE_INFINITY") val NEGATIVE_INFINITY: Double = js("Number.NEGATIVE_INFINITY")
@JsName("NaN") val NaN: Double = js("Number.NaN")
}
private object FloatCompanionObject {
val MIN_VALUE: Float = js("Number.MIN_VALUE")
val MAX_VALUE: Float = js("Number.MAX_VALUE")
val POSITIVE_INFINITY: Float = js("Number.POSITIVE_INFINITY")
val NEGATIVE_INFINITY: Float = js("Number.NEGATIVE_INFINITY")
val NaN: Float = js("Number.NaN")
@JsName("MIN_VALUE") val MIN_VALUE: Float = js("Number.MIN_VALUE")
@JsName("MAX_VALUE") val MAX_VALUE: Float = js("Number.MAX_VALUE")
@JsName("POSITIVE_INFINITY") val POSITIVE_INFINITY: Float = js("Number.POSITIVE_INFINITY")
@JsName("NEGATIVE_INFINITY") val NEGATIVE_INFINITY: Float = js("Number.NEGATIVE_INFINITY")
@JsName("NaN") val NaN: Float = js("Number.NaN")
}
private object IntCompanionObject {
val MIN_VALUE: Int = -2147483647 - 1
val MAX_VALUE: Int = 2147483647
@JsName("MIN_VALUE") val MIN_VALUE: Int = -2147483647 - 1
@JsName("MAX_VALUE") val MAX_VALUE: Int = 2147483647
}
private object LongCompanionObject {
val MIN_VALUE: Long = js("Kotlin.Long.MIN_VALUE")
val MAX_VALUE: Long = js("Kotlin.Long.MAX_VALUE")
@JsName("MIN_VALUE") val MIN_VALUE: Long = js("Kotlin.Long.MIN_VALUE")
@JsName("MAX_VALUE") val MAX_VALUE: Long = js("Kotlin.Long.MAX_VALUE")
}
private object ShortCompanionObject {
val MIN_VALUE: Short = -32768
val MAX_VALUE: Short = 32767
@JsName("MIN_VALUE") val MIN_VALUE: Short = -32768
@JsName("MAX_VALUE") val MAX_VALUE: Short = 32767
}
private object ByteCompanionObject {
val MIN_VALUE: Byte = -128
val MAX_VALUE: Byte = 127
@JsName("MIN_VALUE") val MIN_VALUE: Byte = -128
@JsName("MAX_VALUE") val MAX_VALUE: Byte = 127
}
private object CharCompanionObject {
public const val MIN_HIGH_SURROGATE: Char = '\uD800'
public const val MAX_HIGH_SURROGATE: Char = '\uDBFF'
public const val MIN_LOW_SURROGATE: Char = '\uDC00'
public const val MAX_LOW_SURROGATE: Char = '\uDFFF'
public const val MIN_SURROGATE: Char = MIN_HIGH_SURROGATE
public const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE
@JsName("MIN_HIGH_SURROGATE") public const val MIN_HIGH_SURROGATE: Char = '\uD800'
@JsName("MAX_HIGH_SURROGATE") public const val MAX_HIGH_SURROGATE: Char = '\uDBFF'
@JsName("MIN_LOW_SURROGATE") public const val MIN_LOW_SURROGATE: Char = '\uDC00'
@JsName("MAX_LOW_SURROGATE") public const val MAX_LOW_SURROGATE: Char = '\uDFFF'
@JsName("MIN_SURROGATE") public const val MIN_SURROGATE: Char = MIN_HIGH_SURROGATE
@JsName("MAX_SURROGATE") public const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE
}
private object StringCompanionObject {}