diff --git a/libraries/stdlib/wasm/src/org.w3c/org.khronos.webgl.kt b/libraries/stdlib/wasm/src/org.w3c/org.khronos.webgl.kt index f4b3e14ab10..c41fc9d5b7e 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.khronos.webgl.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.khronos.webgl.kt @@ -12,7 +12,7 @@ import kotlin.js.* import org.w3c.dom.* import org.w3c.dom.events.* -public external interface WebGLContextAttributes { +public external interface WebGLContextAttributes : JsAny { var alpha: Boolean? /* = true */ get() = definedExternally set(value) = definedExternally @@ -39,63 +39,50 @@ public external interface WebGLContextAttributes { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun WebGLContextAttributes(alpha: Boolean? = true, depth: Boolean? = true, stencil: Boolean? = false, antialias: Boolean? = true, premultipliedAlpha: Boolean? = true, preserveDrawingBuffer: Boolean? = false, preferLowPowerToHighPerformance: Boolean? = false, failIfMajorPerformanceCaveat: Boolean? = false): WebGLContextAttributes { - val o = newJsObject() - o["alpha"] = alpha - o["depth"] = depth - o["stencil"] = stencil - o["antialias"] = antialias - o["premultipliedAlpha"] = premultipliedAlpha - o["preserveDrawingBuffer"] = preserveDrawingBuffer - o["preferLowPowerToHighPerformance"] = preferLowPowerToHighPerformance - o["failIfMajorPerformanceCaveat"] = failIfMajorPerformanceCaveat - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as WebGLContextAttributes -} +@Suppress("UNUSED_PARAMETER") +public fun WebGLContextAttributes(alpha: Boolean? = true, depth: Boolean? = true, stencil: Boolean? = false, antialias: Boolean? = true, premultipliedAlpha: Boolean? = true, preserveDrawingBuffer: Boolean? = false, preferLowPowerToHighPerformance: Boolean? = false, failIfMajorPerformanceCaveat: Boolean? = false): WebGLContextAttributes { js("return { alpha, depth, stencil, antialias, premultipliedAlpha, preserveDrawingBuffer, preferLowPowerToHighPerformance, failIfMajorPerformanceCaveat };") } -public external abstract class WebGLObject +public external abstract class WebGLObject : JsAny /** * Exposes the JavaScript [WebGLBuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLBuffer) to Kotlin */ -public external abstract class WebGLBuffer : WebGLObject +public external abstract class WebGLBuffer : WebGLObject, JsAny /** * Exposes the JavaScript [WebGLFramebuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLFramebuffer) to Kotlin */ -public external abstract class WebGLFramebuffer : WebGLObject +public external abstract class WebGLFramebuffer : WebGLObject, JsAny /** * Exposes the JavaScript [WebGLProgram](https://developer.mozilla.org/en/docs/Web/API/WebGLProgram) to Kotlin */ -public external abstract class WebGLProgram : WebGLObject +public external abstract class WebGLProgram : WebGLObject, JsAny /** * Exposes the JavaScript [WebGLRenderbuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLRenderbuffer) to Kotlin */ -public external abstract class WebGLRenderbuffer : WebGLObject +public external abstract class WebGLRenderbuffer : WebGLObject, JsAny /** * Exposes the JavaScript [WebGLShader](https://developer.mozilla.org/en/docs/Web/API/WebGLShader) to Kotlin */ -public external abstract class WebGLShader : WebGLObject +public external abstract class WebGLShader : WebGLObject, JsAny /** * Exposes the JavaScript [WebGLTexture](https://developer.mozilla.org/en/docs/Web/API/WebGLTexture) to Kotlin */ -public external abstract class WebGLTexture : WebGLObject +public external abstract class WebGLTexture : WebGLObject, JsAny /** * Exposes the JavaScript [WebGLUniformLocation](https://developer.mozilla.org/en/docs/Web/API/WebGLUniformLocation) to Kotlin */ -public external abstract class WebGLUniformLocation +public external abstract class WebGLUniformLocation : JsAny /** * Exposes the JavaScript [WebGLActiveInfo](https://developer.mozilla.org/en/docs/Web/API/WebGLActiveInfo) to Kotlin */ -public external abstract class WebGLActiveInfo { +public external abstract class WebGLActiveInfo : JsAny { open val size: Int open val type: Int open val name: String @@ -104,21 +91,21 @@ public external abstract class WebGLActiveInfo { /** * Exposes the JavaScript [WebGLShaderPrecisionFormat](https://developer.mozilla.org/en/docs/Web/API/WebGLShaderPrecisionFormat) to Kotlin */ -public external abstract class WebGLShaderPrecisionFormat { +public external abstract class WebGLShaderPrecisionFormat : JsAny { open val rangeMin: Int open val rangeMax: Int open val precision: Int } @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface WebGLRenderingContextBase { +public external interface WebGLRenderingContextBase : JsAny { val canvas: HTMLCanvasElement val drawingBufferWidth: Int val drawingBufferHeight: Int fun getContextAttributes(): WebGLContextAttributes? fun isContextLost(): Boolean - fun getSupportedExtensions(): Array? - fun getExtension(name: String): Dynamic? + fun getSupportedExtensions(): JsArray? + fun getExtension(name: String): JsAny? fun activeTexture(texture: Int) fun attachShader(program: WebGLProgram?, shader: WebGLShader?) fun bindAttribLocation(program: WebGLProgram?, index: Int, name: String) @@ -176,23 +163,23 @@ public external interface WebGLRenderingContextBase { fun generateMipmap(target: Int) fun getActiveAttrib(program: WebGLProgram?, index: Int): WebGLActiveInfo? fun getActiveUniform(program: WebGLProgram?, index: Int): WebGLActiveInfo? - fun getAttachedShaders(program: WebGLProgram?): Array? + fun getAttachedShaders(program: WebGLProgram?): JsArray? fun getAttribLocation(program: WebGLProgram?, name: String): Int - fun getBufferParameter(target: Int, pname: Int): Any? - fun getParameter(pname: Int): Any? + fun getBufferParameter(target: Int, pname: Int): JsAny? + fun getParameter(pname: Int): JsAny? fun getError(): Int - fun getFramebufferAttachmentParameter(target: Int, attachment: Int, pname: Int): Any? - fun getProgramParameter(program: WebGLProgram?, pname: Int): Any? + fun getFramebufferAttachmentParameter(target: Int, attachment: Int, pname: Int): JsAny? + fun getProgramParameter(program: WebGLProgram?, pname: Int): JsAny? fun getProgramInfoLog(program: WebGLProgram?): String? - fun getRenderbufferParameter(target: Int, pname: Int): Any? - fun getShaderParameter(shader: WebGLShader?, pname: Int): Any? + fun getRenderbufferParameter(target: Int, pname: Int): JsAny? + fun getShaderParameter(shader: WebGLShader?, pname: Int): JsAny? fun getShaderPrecisionFormat(shadertype: Int, precisiontype: Int): WebGLShaderPrecisionFormat? fun getShaderInfoLog(shader: WebGLShader?): String? fun getShaderSource(shader: WebGLShader?): String? - fun getTexParameter(target: Int, pname: Int): Any? - fun getUniform(program: WebGLProgram?, location: WebGLUniformLocation?): Any? + fun getTexParameter(target: Int, pname: Int): JsAny? + fun getUniform(program: WebGLProgram?, location: WebGLUniformLocation?): JsAny? fun getUniformLocation(program: WebGLProgram?, name: String): WebGLUniformLocation? - fun getVertexAttrib(index: Int, pname: Int): Any? + fun getVertexAttrib(index: Int, pname: Int): JsAny? fun getVertexAttribOffset(index: Int, pname: Int): Int fun hint(target: Int, mode: Int) fun isBuffer(buffer: WebGLBuffer?): Boolean @@ -225,44 +212,44 @@ public external interface WebGLRenderingContextBase { fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, format: Int, type: Int, source: TexImageSource?) fun uniform1f(location: WebGLUniformLocation?, x: Float) fun uniform1fv(location: WebGLUniformLocation?, v: Float32Array) - fun uniform1fv(location: WebGLUniformLocation?, v: Array) + fun uniform1fv(location: WebGLUniformLocation?, v: JsArray) fun uniform1i(location: WebGLUniformLocation?, x: Int) fun uniform1iv(location: WebGLUniformLocation?, v: Int32Array) - fun uniform1iv(location: WebGLUniformLocation?, v: Array) + fun uniform1iv(location: WebGLUniformLocation?, v: JsArray) fun uniform2f(location: WebGLUniformLocation?, x: Float, y: Float) fun uniform2fv(location: WebGLUniformLocation?, v: Float32Array) - fun uniform2fv(location: WebGLUniformLocation?, v: Array) + fun uniform2fv(location: WebGLUniformLocation?, v: JsArray) fun uniform2i(location: WebGLUniformLocation?, x: Int, y: Int) fun uniform2iv(location: WebGLUniformLocation?, v: Int32Array) - fun uniform2iv(location: WebGLUniformLocation?, v: Array) + fun uniform2iv(location: WebGLUniformLocation?, v: JsArray) fun uniform3f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float) fun uniform3fv(location: WebGLUniformLocation?, v: Float32Array) - fun uniform3fv(location: WebGLUniformLocation?, v: Array) + fun uniform3fv(location: WebGLUniformLocation?, v: JsArray) fun uniform3i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int) fun uniform3iv(location: WebGLUniformLocation?, v: Int32Array) - fun uniform3iv(location: WebGLUniformLocation?, v: Array) + fun uniform3iv(location: WebGLUniformLocation?, v: JsArray) fun uniform4f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float, w: Float) fun uniform4fv(location: WebGLUniformLocation?, v: Float32Array) - fun uniform4fv(location: WebGLUniformLocation?, v: Array) + fun uniform4fv(location: WebGLUniformLocation?, v: JsArray) fun uniform4i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int, w: Int) fun uniform4iv(location: WebGLUniformLocation?, v: Int32Array) - fun uniform4iv(location: WebGLUniformLocation?, v: Array) + fun uniform4iv(location: WebGLUniformLocation?, v: JsArray) fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) - fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array) + fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: JsArray) fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) - fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array) + fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: JsArray) fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array) - fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array) + fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: JsArray) fun useProgram(program: WebGLProgram?) fun validateProgram(program: WebGLProgram?) fun vertexAttrib1f(index: Int, x: Float) - fun vertexAttrib1fv(index: Int, values: Dynamic?) + fun vertexAttrib1fv(index: Int, values: JsAny?) fun vertexAttrib2f(index: Int, x: Float, y: Float) - fun vertexAttrib2fv(index: Int, values: Dynamic?) + fun vertexAttrib2fv(index: Int, values: JsAny?) fun vertexAttrib3f(index: Int, x: Float, y: Float, z: Float) - fun vertexAttrib3fv(index: Int, values: Dynamic?) + fun vertexAttrib3fv(index: Int, values: JsAny?) fun vertexAttrib4f(index: Int, x: Float, y: Float, z: Float, w: Float) - fun vertexAttrib4fv(index: Int, values: Dynamic?) + fun vertexAttrib4fv(index: Int, values: JsAny?) fun vertexAttribPointer(index: Int, size: Int, type: Int, normalized: Boolean, stride: Int, offset: Int) fun viewport(x: Int, y: Int, width: Int, height: Int) @@ -570,7 +557,7 @@ public external interface WebGLRenderingContextBase { /** * Exposes the JavaScript [WebGLRenderingContext](https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext) to Kotlin */ -public external abstract class WebGLRenderingContext : WebGLRenderingContextBase, RenderingContext { +public external abstract class WebGLRenderingContext : WebGLRenderingContextBase, RenderingContext, JsAny { companion object { val DEPTH_BUFFER_BIT: Int val STENCIL_BUFFER_BIT: Int @@ -875,7 +862,7 @@ public external abstract class WebGLRenderingContext : WebGLRenderingContextBase /** * Exposes the JavaScript [WebGLContextEvent](https://developer.mozilla.org/en/docs/Web/API/WebGLContextEvent) to Kotlin */ -public external open class WebGLContextEvent(type: String, eventInit: WebGLContextEventInit = definedExternally) : Event { +public external open class WebGLContextEvent(type: String, eventInit: WebGLContextEventInit = definedExternally) : Event, JsAny { open val statusMessage: String companion object { @@ -886,40 +873,31 @@ public external open class WebGLContextEvent(type: String, eventInit: WebGLConte } } -public external interface WebGLContextEventInit : EventInit { +public external interface WebGLContextEventInit : EventInit, JsAny { var statusMessage: String? /* = "" */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun WebGLContextEventInit(statusMessage: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WebGLContextEventInit { - val o = newJsObject() - o["statusMessage"] = statusMessage - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as WebGLContextEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun WebGLContextEventInit(statusMessage: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WebGLContextEventInit { js("return { statusMessage, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [ArrayBuffer](https://developer.mozilla.org/en/docs/Web/API/ArrayBuffer) to Kotlin */ -public external open class ArrayBuffer(length: Int) : BufferDataSource { +public external open class ArrayBuffer(length: Int) : BufferDataSource, JsAny { open val byteLength: Int fun slice(begin: Int, end: Int = definedExternally): ArrayBuffer companion object { - fun isView(value: Any?): Boolean + fun isView(value: JsAny?): Boolean } } /** * Exposes the JavaScript [ArrayBufferView](https://developer.mozilla.org/en/docs/Web/API/ArrayBufferView) to Kotlin */ -public external interface ArrayBufferView : BufferDataSource { +public external interface ArrayBufferView : BufferDataSource, JsAny { val buffer: ArrayBuffer val byteOffset: Int val byteLength: Int @@ -928,17 +906,17 @@ public external interface ArrayBufferView : BufferDataSource { /** * Exposes the JavaScript [Int8Array](https://developer.mozilla.org/en/docs/Web/API/Int8Array) to Kotlin */ -public external open class Int8Array : ArrayBufferView { +public external open class Int8Array : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Int8Array) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Int8Array, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Int8Array companion object { @@ -946,28 +924,26 @@ public external open class Int8Array : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Int8Array.get(index: Int): Byte = asDynamic().getByte(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Int8Array.set(index: Int, value: Byte) { asDynamic()[index] = value } /** * Exposes the JavaScript [Uint8Array](https://developer.mozilla.org/en/docs/Web/API/Uint8Array) to Kotlin */ -public external open class Uint8Array : ArrayBufferView { +public external open class Uint8Array : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Uint8Array) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Uint8Array, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Uint8Array companion object { @@ -975,28 +951,26 @@ public external open class Uint8Array : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Uint8Array.get(index: Int): Byte = asDynamic().getByte(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Uint8Array.set(index: Int, value: Byte) { asDynamic()[index] = value } /** * Exposes the JavaScript [Uint8ClampedArray](https://developer.mozilla.org/en/docs/Web/API/Uint8ClampedArray) to Kotlin */ -public external open class Uint8ClampedArray : ArrayBufferView { +public external open class Uint8ClampedArray : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Uint8ClampedArray) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Uint8ClampedArray, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Uint8ClampedArray companion object { @@ -1004,28 +978,26 @@ public external open class Uint8ClampedArray : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Uint8ClampedArray.get(index: Int): Byte = asDynamic().getByte(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Uint8ClampedArray.set(index: Int, value: Byte) { asDynamic()[index] = value } /** * Exposes the JavaScript [Int16Array](https://developer.mozilla.org/en/docs/Web/API/Int16Array) to Kotlin */ -public external open class Int16Array : ArrayBufferView { +public external open class Int16Array : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Int16Array) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Int16Array, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Int16Array companion object { @@ -1033,28 +1005,26 @@ public external open class Int16Array : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Int16Array.get(index: Int): Short = asDynamic().getShort(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Int16Array.set(index: Int, value: Short) { asDynamic()[index] = value } /** * Exposes the JavaScript [Uint16Array](https://developer.mozilla.org/en/docs/Web/API/Uint16Array) to Kotlin */ -public external open class Uint16Array : ArrayBufferView { +public external open class Uint16Array : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Uint16Array) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Uint16Array, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Uint16Array companion object { @@ -1062,28 +1032,26 @@ public external open class Uint16Array : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Uint16Array.get(index: Int): Short = asDynamic().getShort(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Uint16Array.set(index: Int, value: Short) { asDynamic()[index] = value } /** * Exposes the JavaScript [Int32Array](https://developer.mozilla.org/en/docs/Web/API/Int32Array) to Kotlin */ -public external open class Int32Array : ArrayBufferView { +public external open class Int32Array : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Int32Array) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Int32Array, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Int32Array companion object { @@ -1091,28 +1059,26 @@ public external open class Int32Array : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Int32Array.get(index: Int): Int = asDynamic().getInt(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Int32Array.set(index: Int, value: Int) { asDynamic()[index] = value } /** * Exposes the JavaScript [Uint32Array](https://developer.mozilla.org/en/docs/Web/API/Uint32Array) to Kotlin */ -public external open class Uint32Array : ArrayBufferView { +public external open class Uint32Array : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Uint32Array) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Uint32Array, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Uint32Array companion object { @@ -1120,28 +1086,26 @@ public external open class Uint32Array : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Uint32Array.get(index: Int): Int = asDynamic().getInt(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Uint32Array.set(index: Int, value: Int) { asDynamic()[index] = value } /** * Exposes the JavaScript [Float32Array](https://developer.mozilla.org/en/docs/Web/API/Float32Array) to Kotlin */ -public external open class Float32Array : ArrayBufferView { +public external open class Float32Array : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Float32Array) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Float32Array, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Float32Array companion object { @@ -1149,28 +1113,26 @@ public external open class Float32Array : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Float32Array.get(index: Int): Float = asDynamic().getFloat(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Float32Array.set(index: Int, value: Float) { asDynamic()[index] = value } /** * Exposes the JavaScript [Float64Array](https://developer.mozilla.org/en/docs/Web/API/Float64Array) to Kotlin */ -public external open class Float64Array : ArrayBufferView { +public external open class Float64Array : ArrayBufferView, JsAny { constructor(length: Int) constructor(array: Float64Array) - constructor(array: Array) + constructor(array: JsArray) constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally) open val length: Int override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int fun set(array: Float64Array, offset: Int = definedExternally) - fun set(array: Array, offset: Int = definedExternally) + fun set(array: JsArray, offset: Int = definedExternally) fun subarray(start: Int, end: Int): Float64Array companion object { @@ -1178,18 +1140,16 @@ public external open class Float64Array : ArrayBufferView { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Float64Array.get(index: Int): Double = asDynamic().getDouble(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Float64Array.set(index: Int, value: Double) { asDynamic()[index] = value } /** * Exposes the JavaScript [DataView](https://developer.mozilla.org/en/docs/Web/API/DataView) to Kotlin */ -public external open class DataView(buffer: ArrayBuffer, byteOffset: Int = definedExternally, byteLength: Int = definedExternally) : ArrayBufferView { +public external open class DataView(buffer: ArrayBuffer, byteOffset: Int = definedExternally, byteLength: Int = definedExternally) : ArrayBufferView, JsAny { override val buffer: ArrayBuffer override val byteOffset: Int override val byteLength: Int diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.css.masking.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.css.masking.kt index 3c61723b033..dbdc5e0a80e 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.css.masking.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.css.masking.kt @@ -15,7 +15,7 @@ import org.w3c.dom.svg.* /** * Exposes the JavaScript [SVGClipPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGClipPathElement) to Kotlin */ -public external abstract class SVGClipPathElement : SVGElement, SVGUnitTypes { +public external abstract class SVGClipPathElement : SVGElement, SVGUnitTypes, JsAny { open val clipPathUnits: SVGAnimatedEnumeration open val transform: SVGAnimatedTransformList @@ -47,7 +47,7 @@ public external abstract class SVGClipPathElement : SVGElement, SVGUnitTypes { /** * Exposes the JavaScript [SVGMaskElement](https://developer.mozilla.org/en/docs/Web/API/SVGMaskElement) to Kotlin */ -public external abstract class SVGMaskElement : SVGElement, SVGUnitTypes { +public external abstract class SVGMaskElement : SVGElement, SVGUnitTypes, JsAny { open val maskUnits: SVGAnimatedEnumeration open val maskContentUnits: SVGAnimatedEnumeration open val x: SVGAnimatedLength diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.clipboard.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.clipboard.kt index 5aea29f7407..24a891ae526 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.clipboard.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.clipboard.kt @@ -13,28 +13,19 @@ import org.khronos.webgl.* import org.w3c.dom.* import org.w3c.dom.events.* -public external interface ClipboardEventInit : EventInit { +public external interface ClipboardEventInit : EventInit, JsAny { var clipboardData: DataTransfer? /* = null */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ClipboardEventInit(clipboardData: DataTransfer? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ClipboardEventInit { - val o = newJsObject() - o["clipboardData"] = clipboardData - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ClipboardEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun ClipboardEventInit(clipboardData: DataTransfer? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ClipboardEventInit { js("return { clipboardData, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [ClipboardEvent](https://developer.mozilla.org/en/docs/Web/API/ClipboardEvent) to Kotlin */ -public external open class ClipboardEvent(type: String, eventInitDict: ClipboardEventInit = definedExternally) : Event { +public external open class ClipboardEvent(type: String, eventInitDict: ClipboardEventInit = definedExternally) : Event, JsAny { open val clipboardData: DataTransfer? companion object { @@ -48,24 +39,18 @@ public external open class ClipboardEvent(type: String, eventInitDict: Clipboard /** * Exposes the JavaScript [Clipboard](https://developer.mozilla.org/en/docs/Web/API/Clipboard) to Kotlin */ -public external abstract class Clipboard : EventTarget { +public external abstract class Clipboard : EventTarget, JsAny { fun read(): Promise - fun readText(): Promise - fun write(data: DataTransfer): Promise - fun writeText(data: String): Promise + fun readText(): Promise + fun write(data: DataTransfer): Promise + fun writeText(data: String): Promise } -public external interface ClipboardPermissionDescriptor { +public external interface ClipboardPermissionDescriptor : JsAny { var allowWithoutGesture: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ClipboardPermissionDescriptor(allowWithoutGesture: Boolean? = false): ClipboardPermissionDescriptor { - val o = newJsObject() - o["allowWithoutGesture"] = allowWithoutGesture - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ClipboardPermissionDescriptor -} \ No newline at end of file +@Suppress("UNUSED_PARAMETER") +public fun ClipboardPermissionDescriptor(allowWithoutGesture: Boolean? = false): ClipboardPermissionDescriptor { js("return { allowWithoutGesture };") } \ No newline at end of file diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.css.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.css.kt index 4a16c41b483..9836430d896 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.css.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.css.kt @@ -12,21 +12,20 @@ import kotlin.js.* import org.khronos.webgl.* import org.w3c.dom.* -public external abstract class MediaList : ItemArrayLike { +public external abstract class MediaList : ItemArrayLike, JsAny { open var mediaText: String fun appendMedium(medium: String) fun deleteMedium(medium: String) - override fun item(index: Int): String? + override fun item(index: Int): JsString? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun MediaList.get(index: Int): String? = asDynamic().getString(index) /** * Exposes the JavaScript [StyleSheet](https://developer.mozilla.org/en/docs/Web/API/StyleSheet) to Kotlin */ -public external abstract class StyleSheet { +public external abstract class StyleSheet : JsAny { open val type: String open val href: String? open val ownerNode: UnionElementOrProcessingInstruction? @@ -39,7 +38,7 @@ public external abstract class StyleSheet { /** * Exposes the JavaScript [CSSStyleSheet](https://developer.mozilla.org/en/docs/Web/API/CSSStyleSheet) to Kotlin */ -public external abstract class CSSStyleSheet : StyleSheet { +public external abstract class CSSStyleSheet : StyleSheet, JsAny { open val ownerRule: CSSRule? open val cssRules: CSSRuleList fun insertRule(rule: String, index: Int): Int @@ -49,18 +48,17 @@ public external abstract class CSSStyleSheet : StyleSheet { /** * Exposes the JavaScript [StyleSheetList](https://developer.mozilla.org/en/docs/Web/API/StyleSheetList) to Kotlin */ -public external abstract class StyleSheetList : ItemArrayLike { +public external abstract class StyleSheetList : ItemArrayLike, JsAny { override fun item(index: Int): StyleSheet? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun StyleSheetList.get(index: Int): StyleSheet? = asDynamic().getAny(index) /** * Exposes the JavaScript [LinkStyle](https://developer.mozilla.org/en/docs/Web/API/LinkStyle) to Kotlin */ -public external interface LinkStyle { +public external interface LinkStyle : JsAny { val sheet: StyleSheet? get() = definedExternally } @@ -68,18 +66,17 @@ public external interface LinkStyle { /** * Exposes the JavaScript [CSSRuleList](https://developer.mozilla.org/en/docs/Web/API/CSSRuleList) to Kotlin */ -public external abstract class CSSRuleList : ItemArrayLike { +public external abstract class CSSRuleList : ItemArrayLike, JsAny { override fun item(index: Int): CSSRule? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun CSSRuleList.get(index: Int): CSSRule? = asDynamic().getAny(index) /** * Exposes the JavaScript [CSSRule](https://developer.mozilla.org/en/docs/Web/API/CSSRule) to Kotlin */ -public external abstract class CSSRule { +public external abstract class CSSRule : JsAny { open val type: Short open var cssText: String open val parentRule: CSSRule? @@ -100,7 +97,7 @@ public external abstract class CSSRule { /** * Exposes the JavaScript [CSSStyleRule](https://developer.mozilla.org/en/docs/Web/API/CSSStyleRule) to Kotlin */ -public external abstract class CSSStyleRule : CSSRule { +public external abstract class CSSStyleRule : CSSRule, JsAny { open var selectorText: String open val style: CSSStyleDeclaration @@ -116,7 +113,7 @@ public external abstract class CSSStyleRule : CSSRule { } } -public external abstract class CSSImportRule : CSSRule { +public external abstract class CSSImportRule : CSSRule, JsAny { open val href: String open val media: MediaList open val styleSheet: CSSStyleSheet @@ -136,7 +133,7 @@ public external abstract class CSSImportRule : CSSRule { /** * Exposes the JavaScript [CSSGroupingRule](https://developer.mozilla.org/en/docs/Web/API/CSSGroupingRule) to Kotlin */ -public external abstract class CSSGroupingRule : CSSRule { +public external abstract class CSSGroupingRule : CSSRule, JsAny { open val cssRules: CSSRuleList fun insertRule(rule: String, index: Int): Int fun deleteRule(index: Int) @@ -156,7 +153,7 @@ public external abstract class CSSGroupingRule : CSSRule { /** * Exposes the JavaScript [CSSMediaRule](https://developer.mozilla.org/en/docs/Web/API/CSSMediaRule) to Kotlin */ -public external abstract class CSSMediaRule : CSSGroupingRule { +public external abstract class CSSMediaRule : CSSGroupingRule, JsAny { open val media: MediaList companion object { @@ -174,7 +171,7 @@ public external abstract class CSSMediaRule : CSSGroupingRule { /** * Exposes the JavaScript [CSSPageRule](https://developer.mozilla.org/en/docs/Web/API/CSSPageRule) to Kotlin */ -public external abstract class CSSPageRule : CSSGroupingRule { +public external abstract class CSSPageRule : CSSGroupingRule, JsAny { open var selectorText: String open val style: CSSStyleDeclaration @@ -190,7 +187,7 @@ public external abstract class CSSPageRule : CSSGroupingRule { } } -public external abstract class CSSMarginRule : CSSRule { +public external abstract class CSSMarginRule : CSSRule, JsAny { open val name: String open val style: CSSStyleDeclaration @@ -209,7 +206,7 @@ public external abstract class CSSMarginRule : CSSRule { /** * Exposes the JavaScript [CSSNamespaceRule](https://developer.mozilla.org/en/docs/Web/API/CSSNamespaceRule) to Kotlin */ -public external abstract class CSSNamespaceRule : CSSRule { +public external abstract class CSSNamespaceRule : CSSRule, JsAny { open val namespaceURI: String open val prefix: String @@ -228,7 +225,7 @@ public external abstract class CSSNamespaceRule : CSSRule { /** * Exposes the JavaScript [CSSStyleDeclaration](https://developer.mozilla.org/en/docs/Web/API/CSSStyleDeclaration) to Kotlin */ -public external abstract class CSSStyleDeclaration : ItemArrayLike { +public external abstract class CSSStyleDeclaration : ItemArrayLike, JsAny { open var cssText: String open val parentRule: CSSRule? open var cssFloat: String @@ -464,21 +461,20 @@ public external abstract class CSSStyleDeclaration : ItemArrayLike { fun setPropertyValue(property: String, value: String) fun setPropertyPriority(property: String, priority: String) fun removeProperty(property: String): String - override fun item(index: Int): String + override fun item(index: Int): JsString } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun CSSStyleDeclaration.get(index: Int): String? = asDynamic().getString(index) -public external interface ElementCSSInlineStyle { +public external interface ElementCSSInlineStyle : JsAny { val style: CSSStyleDeclaration } /** * Exposes the JavaScript [CSS](https://developer.mozilla.org/en/docs/Web/API/CSS) to Kotlin */ -public external abstract class CSS { +public external abstract class CSS : JsAny { companion object { fun escape(ident: String): String } diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.encryptedmedia.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.encryptedmedia.kt index 882e97f0b5d..4d599872e0e 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.encryptedmedia.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.encryptedmedia.kt @@ -16,17 +16,17 @@ import org.w3c.dom.events.* /** * Exposes the JavaScript [MediaKeySystemConfiguration](https://developer.mozilla.org/en/docs/Web/API/MediaKeySystemConfiguration) to Kotlin */ -public external interface MediaKeySystemConfiguration { +public external interface MediaKeySystemConfiguration : JsAny { var label: String? /* = "" */ get() = definedExternally set(value) = definedExternally - var initDataTypes: Array? /* = arrayOf() */ + var initDataTypes: JsArray? /* = arrayOf() */ get() = definedExternally set(value) = definedExternally - var audioCapabilities: Array? /* = arrayOf() */ + var audioCapabilities: JsArray? /* = arrayOf() */ get() = definedExternally set(value) = definedExternally - var videoCapabilities: Array? /* = arrayOf() */ + var videoCapabilities: JsArray? /* = arrayOf() */ get() = definedExternally set(value) = definedExternally var distinctiveIdentifier: MediaKeysRequirement? /* = MediaKeysRequirement.OPTIONAL */ @@ -35,27 +35,15 @@ public external interface MediaKeySystemConfiguration { var persistentState: MediaKeysRequirement? /* = MediaKeysRequirement.OPTIONAL */ get() = definedExternally set(value) = definedExternally - var sessionTypes: Array? + var sessionTypes: JsArray? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaKeySystemConfiguration(label: String? = "", initDataTypes: Array? = arrayOf(), audioCapabilities: Array? = arrayOf(), videoCapabilities: Array? = arrayOf(), distinctiveIdentifier: MediaKeysRequirement? = MediaKeysRequirement.OPTIONAL, persistentState: MediaKeysRequirement? = MediaKeysRequirement.OPTIONAL, sessionTypes: Array? = undefined): MediaKeySystemConfiguration { - val o = newJsObject() - o["label"] = label - o["initDataTypes"] = initDataTypes - o["audioCapabilities"] = audioCapabilities - o["videoCapabilities"] = videoCapabilities - o["distinctiveIdentifier"] = distinctiveIdentifier - o["persistentState"] = persistentState - o["sessionTypes"] = sessionTypes - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaKeySystemConfiguration -} +@Suppress("UNUSED_PARAMETER") +public fun MediaKeySystemConfiguration(label: String? = "", initDataTypes: JsArray? = JsArray(), audioCapabilities: JsArray? = JsArray(), videoCapabilities: JsArray? = JsArray(), distinctiveIdentifier: MediaKeysRequirement? = MediaKeysRequirement.OPTIONAL, persistentState: MediaKeysRequirement? = MediaKeysRequirement.OPTIONAL, sessionTypes: JsArray? = undefined): MediaKeySystemConfiguration { js("return { label, initDataTypes, audioCapabilities, videoCapabilities, distinctiveIdentifier, persistentState, sessionTypes };") } -public external interface MediaKeySystemMediaCapability { +public external interface MediaKeySystemMediaCapability : JsAny { var contentType: String? /* = "" */ get() = definedExternally set(value) = definedExternally @@ -64,20 +52,13 @@ public external interface MediaKeySystemMediaCapability { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaKeySystemMediaCapability(contentType: String? = "", robustness: String? = ""): MediaKeySystemMediaCapability { - val o = newJsObject() - o["contentType"] = contentType - o["robustness"] = robustness - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaKeySystemMediaCapability -} +@Suppress("UNUSED_PARAMETER") +public fun MediaKeySystemMediaCapability(contentType: String? = "", robustness: String? = ""): MediaKeySystemMediaCapability { js("return { contentType, robustness };") } /** * Exposes the JavaScript [MediaKeySystemAccess](https://developer.mozilla.org/en/docs/Web/API/MediaKeySystemAccess) to Kotlin */ -public external abstract class MediaKeySystemAccess { +public external abstract class MediaKeySystemAccess : JsAny { open val keySystem: String fun getConfiguration(): MediaKeySystemConfiguration fun createMediaKeys(): Promise @@ -86,41 +67,41 @@ public external abstract class MediaKeySystemAccess { /** * Exposes the JavaScript [MediaKeys](https://developer.mozilla.org/en/docs/Web/API/MediaKeys) to Kotlin */ -public external abstract class MediaKeys { +public external abstract class MediaKeys : JsAny { fun createSession(sessionType: MediaKeySessionType = definedExternally): MediaKeySession - fun setServerCertificate(serverCertificate: Dynamic?): Promise + fun setServerCertificate(serverCertificate: JsAny?): Promise } /** * Exposes the JavaScript [MediaKeySession](https://developer.mozilla.org/en/docs/Web/API/MediaKeySession) to Kotlin */ -public external abstract class MediaKeySession : EventTarget { +public external abstract class MediaKeySession : EventTarget, JsAny { open val sessionId: String open val expiration: Double - open val closed: Promise + open val closed: Promise open val keyStatuses: MediaKeyStatusMap open var onkeystatuseschange: ((Event) -> Dynamic?)? open var onmessage: ((MessageEvent) -> Dynamic?)? - fun generateRequest(initDataType: String, initData: Dynamic?): Promise - fun load(sessionId: String): Promise - fun update(response: Dynamic?): Promise - fun close(): Promise - fun remove(): Promise + fun generateRequest(initDataType: String, initData: JsAny?): Promise + fun load(sessionId: String): Promise + fun update(response: JsAny?): Promise + fun close(): Promise + fun remove(): Promise } /** * Exposes the JavaScript [MediaKeyStatusMap](https://developer.mozilla.org/en/docs/Web/API/MediaKeyStatusMap) to Kotlin */ -public external abstract class MediaKeyStatusMap { +public external abstract class MediaKeyStatusMap : JsAny { open val size: Int - fun has(keyId: Dynamic?): Boolean - fun get(keyId: Dynamic?): Any? + fun has(keyId: JsAny?): Boolean + fun get(keyId: JsAny?): JsAny? } /** * Exposes the JavaScript [MediaKeyMessageEvent](https://developer.mozilla.org/en/docs/Web/API/MediaKeyMessageEvent) to Kotlin */ -public external open class MediaKeyMessageEvent(type: String, eventInitDict: MediaKeyMessageEventInit) : Event { +public external open class MediaKeyMessageEvent(type: String, eventInitDict: MediaKeyMessageEventInit) : Event, JsAny { open val messageType: MediaKeyMessageType open val message: ArrayBuffer @@ -132,25 +113,15 @@ public external open class MediaKeyMessageEvent(type: String, eventInitDict: Med } } -public external interface MediaKeyMessageEventInit : EventInit { +public external interface MediaKeyMessageEventInit : EventInit, JsAny { var messageType: MediaKeyMessageType? var message: ArrayBuffer? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaKeyMessageEventInit(messageType: MediaKeyMessageType?, message: ArrayBuffer?, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaKeyMessageEventInit { - val o = newJsObject() - o["messageType"] = messageType - o["message"] = message - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaKeyMessageEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun MediaKeyMessageEventInit(messageType: MediaKeyMessageType?, message: ArrayBuffer?, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaKeyMessageEventInit { js("return { messageType, message, bubbles, cancelable, composed };") } -public external open class MediaEncryptedEvent(type: String, eventInitDict: MediaEncryptedEventInit = definedExternally) : Event { +public external open class MediaEncryptedEvent(type: String, eventInitDict: MediaEncryptedEventInit = definedExternally) : Event, JsAny { open val initDataType: String open val initData: ArrayBuffer? @@ -162,7 +133,7 @@ public external open class MediaEncryptedEvent(type: String, eventInitDict: Medi } } -public external interface MediaEncryptedEventInit : EventInit { +public external interface MediaEncryptedEventInit : EventInit, JsAny { var initDataType: String? /* = "" */ get() = definedExternally set(value) = definedExternally @@ -171,23 +142,13 @@ public external interface MediaEncryptedEventInit : EventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaEncryptedEventInit(initDataType: String? = "", initData: ArrayBuffer? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaEncryptedEventInit { - val o = newJsObject() - o["initDataType"] = initDataType - o["initData"] = initData - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaEncryptedEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun MediaEncryptedEventInit(initDataType: String? = "", initData: ArrayBuffer? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaEncryptedEventInit { js("return { initDataType, initData, bubbles, cancelable, composed };") } /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface MediaKeysRequirement { +public external interface MediaKeysRequirement : JsAny { companion object } @@ -200,7 +161,7 @@ public inline val MediaKeysRequirement.Companion.NOT_ALLOWED: MediaKeysRequireme /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface MediaKeySessionType { +public external interface MediaKeySessionType : JsAny { companion object } @@ -211,7 +172,7 @@ public inline val MediaKeySessionType.Companion.PERSISTENT_LICENSE: MediaKeySess /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface MediaKeyStatus { +public external interface MediaKeyStatus : JsAny { companion object } @@ -232,7 +193,7 @@ public inline val MediaKeyStatus.Companion.INTERNAL_ERROR: MediaKeyStatus get() /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface MediaKeyMessageType { +public external interface MediaKeyMessageType : JsAny { companion object } diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.events.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.events.kt index 8e687d241e5..be76523340a 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.events.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.events.kt @@ -15,7 +15,7 @@ import org.w3c.dom.* /** * Exposes the JavaScript [UIEvent](https://developer.mozilla.org/en/docs/Web/API/UIEvent) to Kotlin */ -public external open class UIEvent(type: String, eventInitDict: UIEventInit = definedExternally) : Event { +public external open class UIEvent(type: String, eventInitDict: UIEventInit = definedExternally) : Event, JsAny { open val view: Window? open val detail: Int @@ -27,7 +27,7 @@ public external open class UIEvent(type: String, eventInitDict: UIEventInit = de } } -public external interface UIEventInit : EventInit { +public external interface UIEventInit : EventInit, JsAny { var view: Window? /* = null */ get() = definedExternally set(value) = definedExternally @@ -36,23 +36,13 @@ public external interface UIEventInit : EventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun UIEventInit(view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): UIEventInit { - val o = newJsObject() - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as UIEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun UIEventInit(view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): UIEventInit { js("return { view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [FocusEvent](https://developer.mozilla.org/en/docs/Web/API/FocusEvent) to Kotlin */ -public external open class FocusEvent(type: String, eventInitDict: FocusEventInit = definedExternally) : UIEvent { +public external open class FocusEvent(type: String, eventInitDict: FocusEventInit = definedExternally) : UIEvent, JsAny { open val relatedTarget: EventTarget? companion object { @@ -63,30 +53,19 @@ public external open class FocusEvent(type: String, eventInitDict: FocusEventIni } } -public external interface FocusEventInit : UIEventInit { +public external interface FocusEventInit : UIEventInit, JsAny { var relatedTarget: EventTarget? /* = null */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun FocusEventInit(relatedTarget: EventTarget? = null, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): FocusEventInit { - val o = newJsObject() - o["relatedTarget"] = relatedTarget - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as FocusEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun FocusEventInit(relatedTarget: EventTarget? = null, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): FocusEventInit { js("return { relatedTarget, view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [MouseEvent](https://developer.mozilla.org/en/docs/Web/API/MouseEvent) to Kotlin */ -public external open class MouseEvent(type: String, eventInitDict: MouseEventInit = definedExternally) : UIEvent, UnionElementOrMouseEvent { +public external open class MouseEvent(type: String, eventInitDict: MouseEventInit = definedExternally) : UIEvent, UnionElementOrMouseEvent, JsAny { open val screenX: Int open val screenY: Int open val clientX: Int @@ -115,7 +94,7 @@ public external open class MouseEvent(type: String, eventInitDict: MouseEventIni } } -public external interface MouseEventInit : EventModifierInit { +public external interface MouseEventInit : EventModifierInit, JsAny { var screenX: Int? /* = 0 */ get() = definedExternally set(value) = definedExternally @@ -142,42 +121,10 @@ public external interface MouseEventInit : EventModifierInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MouseEventInit(screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MouseEventInit { - val o = newJsObject() - o["screenX"] = screenX - o["screenY"] = screenY - o["clientX"] = clientX - o["clientY"] = clientY - o["button"] = button - o["buttons"] = buttons - o["relatedTarget"] = relatedTarget - o["region"] = region - o["ctrlKey"] = ctrlKey - o["shiftKey"] = shiftKey - o["altKey"] = altKey - o["metaKey"] = metaKey - o["modifierAltGraph"] = modifierAltGraph - o["modifierCapsLock"] = modifierCapsLock - o["modifierFn"] = modifierFn - o["modifierFnLock"] = modifierFnLock - o["modifierHyper"] = modifierHyper - o["modifierNumLock"] = modifierNumLock - o["modifierScrollLock"] = modifierScrollLock - o["modifierSuper"] = modifierSuper - o["modifierSymbol"] = modifierSymbol - o["modifierSymbolLock"] = modifierSymbolLock - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MouseEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun MouseEventInit(screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MouseEventInit { js("return { screenX, screenY, clientX, clientY, button, buttons, relatedTarget, region, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed };") } -public external interface EventModifierInit : UIEventInit { +public external interface EventModifierInit : UIEventInit, JsAny { var ctrlKey: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally @@ -222,37 +169,13 @@ public external interface EventModifierInit : UIEventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun EventModifierInit(ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventModifierInit { - val o = newJsObject() - o["ctrlKey"] = ctrlKey - o["shiftKey"] = shiftKey - o["altKey"] = altKey - o["metaKey"] = metaKey - o["modifierAltGraph"] = modifierAltGraph - o["modifierCapsLock"] = modifierCapsLock - o["modifierFn"] = modifierFn - o["modifierFnLock"] = modifierFnLock - o["modifierHyper"] = modifierHyper - o["modifierNumLock"] = modifierNumLock - o["modifierScrollLock"] = modifierScrollLock - o["modifierSuper"] = modifierSuper - o["modifierSymbol"] = modifierSymbol - o["modifierSymbolLock"] = modifierSymbolLock - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as EventModifierInit -} +@Suppress("UNUSED_PARAMETER") +public fun EventModifierInit(ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventModifierInit { js("return { ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [WheelEvent](https://developer.mozilla.org/en/docs/Web/API/WheelEvent) to Kotlin */ -public external open class WheelEvent(type: String, eventInitDict: WheelEventInit = definedExternally) : MouseEvent { +public external open class WheelEvent(type: String, eventInitDict: WheelEventInit = definedExternally) : MouseEvent, JsAny { open val deltaX: Double open val deltaY: Double open val deltaZ: Double @@ -269,7 +192,7 @@ public external open class WheelEvent(type: String, eventInitDict: WheelEventIni } } -public external interface WheelEventInit : MouseEventInit { +public external interface WheelEventInit : MouseEventInit, JsAny { var deltaX: Double? /* = 0.0 */ get() = definedExternally set(value) = definedExternally @@ -284,49 +207,13 @@ public external interface WheelEventInit : MouseEventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun WheelEventInit(deltaX: Double? = 0.0, deltaY: Double? = 0.0, deltaZ: Double? = 0.0, deltaMode: Int? = 0, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WheelEventInit { - val o = newJsObject() - o["deltaX"] = deltaX - o["deltaY"] = deltaY - o["deltaZ"] = deltaZ - o["deltaMode"] = deltaMode - o["screenX"] = screenX - o["screenY"] = screenY - o["clientX"] = clientX - o["clientY"] = clientY - o["button"] = button - o["buttons"] = buttons - o["relatedTarget"] = relatedTarget - o["region"] = region - o["ctrlKey"] = ctrlKey - o["shiftKey"] = shiftKey - o["altKey"] = altKey - o["metaKey"] = metaKey - o["modifierAltGraph"] = modifierAltGraph - o["modifierCapsLock"] = modifierCapsLock - o["modifierFn"] = modifierFn - o["modifierFnLock"] = modifierFnLock - o["modifierHyper"] = modifierHyper - o["modifierNumLock"] = modifierNumLock - o["modifierScrollLock"] = modifierScrollLock - o["modifierSuper"] = modifierSuper - o["modifierSymbol"] = modifierSymbol - o["modifierSymbolLock"] = modifierSymbolLock - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as WheelEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun WheelEventInit(deltaX: Double? = 0.0, deltaY: Double? = 0.0, deltaZ: Double? = 0.0, deltaMode: Int? = 0, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WheelEventInit { js("return { deltaX, deltaY, deltaZ, deltaMode, screenX, screenY, clientX, clientY, button, buttons, relatedTarget, region, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [InputEvent](https://developer.mozilla.org/en/docs/Web/API/InputEvent) to Kotlin */ -public external open class InputEvent(type: String, eventInitDict: InputEventInit = definedExternally) : UIEvent { +public external open class InputEvent(type: String, eventInitDict: InputEventInit = definedExternally) : UIEvent, JsAny { open val data: String open val isComposing: Boolean @@ -338,7 +225,7 @@ public external open class InputEvent(type: String, eventInitDict: InputEventIni } } -public external interface InputEventInit : UIEventInit { +public external interface InputEventInit : UIEventInit, JsAny { var data: String? /* = "" */ get() = definedExternally set(value) = definedExternally @@ -347,25 +234,13 @@ public external interface InputEventInit : UIEventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun InputEventInit(data: String? = "", isComposing: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): InputEventInit { - val o = newJsObject() - o["data"] = data - o["isComposing"] = isComposing - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as InputEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun InputEventInit(data: String? = "", isComposing: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): InputEventInit { js("return { data, isComposing, view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [KeyboardEvent](https://developer.mozilla.org/en/docs/Web/API/KeyboardEvent) to Kotlin */ -public external open class KeyboardEvent(type: String, eventInitDict: KeyboardEventInit = definedExternally) : UIEvent { +public external open class KeyboardEvent(type: String, eventInitDict: KeyboardEventInit = definedExternally) : UIEvent, JsAny { open val key: String open val code: String open val location: Int @@ -392,7 +267,7 @@ public external open class KeyboardEvent(type: String, eventInitDict: KeyboardEv } } -public external interface KeyboardEventInit : EventModifierInit { +public external interface KeyboardEventInit : EventModifierInit, JsAny { var key: String? /* = "" */ get() = definedExternally set(value) = definedExternally @@ -410,42 +285,13 @@ public external interface KeyboardEventInit : EventModifierInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun KeyboardEventInit(key: String? = "", code: String? = "", location: Int? = 0, repeat: Boolean? = false, isComposing: Boolean? = false, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): KeyboardEventInit { - val o = newJsObject() - o["key"] = key - o["code"] = code - o["location"] = location - o["repeat"] = repeat - o["isComposing"] = isComposing - o["ctrlKey"] = ctrlKey - o["shiftKey"] = shiftKey - o["altKey"] = altKey - o["metaKey"] = metaKey - o["modifierAltGraph"] = modifierAltGraph - o["modifierCapsLock"] = modifierCapsLock - o["modifierFn"] = modifierFn - o["modifierFnLock"] = modifierFnLock - o["modifierHyper"] = modifierHyper - o["modifierNumLock"] = modifierNumLock - o["modifierScrollLock"] = modifierScrollLock - o["modifierSuper"] = modifierSuper - o["modifierSymbol"] = modifierSymbol - o["modifierSymbolLock"] = modifierSymbolLock - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as KeyboardEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun KeyboardEventInit(key: String? = "", code: String? = "", location: Int? = 0, repeat: Boolean? = false, isComposing: Boolean? = false, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): KeyboardEventInit { js("return { key, code, location, repeat, isComposing, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [CompositionEvent](https://developer.mozilla.org/en/docs/Web/API/CompositionEvent) to Kotlin */ -public external open class CompositionEvent(type: String, eventInitDict: CompositionEventInit = definedExternally) : UIEvent { +public external open class CompositionEvent(type: String, eventInitDict: CompositionEventInit = definedExternally) : UIEvent, JsAny { open val data: String companion object { @@ -456,30 +302,19 @@ public external open class CompositionEvent(type: String, eventInitDict: Composi } } -public external interface CompositionEventInit : UIEventInit { +public external interface CompositionEventInit : UIEventInit, JsAny { var data: String? /* = "" */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun CompositionEventInit(data: String? = "", view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CompositionEventInit { - val o = newJsObject() - o["data"] = data - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as CompositionEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun CompositionEventInit(data: String? = "", view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CompositionEventInit { js("return { data, view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [Event](https://developer.mozilla.org/en/docs/Web/API/Event) to Kotlin */ -public external open class Event(type: String, eventInitDict: EventInit = definedExternally) { +public external open class Event(type: String, eventInitDict: EventInit = definedExternally) : JsAny { open val type: String open val target: EventTarget? open val currentTarget: EventTarget? @@ -489,8 +324,8 @@ public external open class Event(type: String, eventInitDict: EventInit = define open val defaultPrevented: Boolean open val composed: Boolean open val isTrusted: Boolean - open val timeStamp: Number - fun composedPath(): Array + open val timeStamp: JsNumber + fun composedPath(): JsArray fun stopPropagation() fun stopImmediatePropagation() fun preventDefault() @@ -507,17 +342,17 @@ public external open class Event(type: String, eventInitDict: EventInit = define /** * Exposes the JavaScript [EventTarget](https://developer.mozilla.org/en/docs/Web/API/EventTarget) to Kotlin */ -public external abstract class EventTarget { - fun addEventListener(type: String, callback: EventListener?, options: Dynamic? = definedExternally) - fun addEventListener(type: String, callback: ((Event) -> Unit)?, options: Dynamic? = definedExternally) - fun removeEventListener(type: String, callback: EventListener?, options: Dynamic? = definedExternally) - fun removeEventListener(type: String, callback: ((Event) -> Unit)?, options: Dynamic? = definedExternally) +public external abstract class EventTarget : JsAny { + fun addEventListener(type: String, callback: EventListener?, options: JsAny? = definedExternally) + fun addEventListener(type: String, callback: ((Event) -> Unit)?, options: JsAny? = definedExternally) + fun removeEventListener(type: String, callback: EventListener?, options: JsAny? = definedExternally) + fun removeEventListener(type: String, callback: ((Event) -> Unit)?, options: JsAny? = definedExternally) fun dispatchEvent(event: Event): Boolean } /** * Exposes the JavaScript [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener) to Kotlin */ -public external interface EventListener { +public external interface EventListener : JsAny { fun handleEvent(event: Event) } \ No newline at end of file diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.kt index e1daf307d34..5da7b4c508d 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.kt @@ -24,50 +24,47 @@ import org.w3c.performance.* import org.w3c.workers.* import org.w3c.xhr.* -public external abstract class HTMLAllCollection { +public external abstract class HTMLAllCollection : JsAny { open val length: Int fun item(nameOrIndex: String = definedExternally): UnionElementOrHTMLCollection? fun namedItem(name: String): UnionElementOrHTMLCollection? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun HTMLAllCollection.get(index: Int): Element? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun HTMLAllCollection.get(name: String): UnionElementOrHTMLCollection? = asDynamic().getAny(name) /** * Exposes the JavaScript [HTMLFormControlsCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLFormControlsCollection) to Kotlin */ -public external abstract class HTMLFormControlsCollection : HTMLCollection +public external abstract class HTMLFormControlsCollection : HTMLCollection, JsAny /** * Exposes the JavaScript [RadioNodeList](https://developer.mozilla.org/en/docs/Web/API/RadioNodeList) to Kotlin */ -public external abstract class RadioNodeList : NodeList, UnionElementOrRadioNodeList { +public external abstract class RadioNodeList : NodeList, UnionElementOrRadioNodeList, JsAny { open var value: String } /** * Exposes the JavaScript [HTMLOptionsCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLOptionsCollection) to Kotlin */ -public external abstract class HTMLOptionsCollection : HTMLCollection { +public external abstract class HTMLOptionsCollection : HTMLCollection, JsAny { override var length: Int open var selectedIndex: Int - fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: Dynamic? = definedExternally) + fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: JsAny? = definedExternally) fun remove(index: Int) } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun HTMLOptionsCollection.set(index: Int, option: HTMLOptionElement?) { asDynamic()[index] = option } /** * Exposes the JavaScript [HTMLElement](https://developer.mozilla.org/en/docs/Web/API/HTMLElement) to Kotlin */ -public external abstract class HTMLElement : Element, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, ElementCSSInlineStyle { +public external abstract class HTMLElement : Element, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, ElementCSSInlineStyle, JsAny { open var title: String open var lang: String open var translate: Boolean @@ -117,7 +114,7 @@ public external abstract class HTMLElement : Element, GlobalEventHandlers, Docum /** * Exposes the JavaScript [HTMLUnknownElement](https://developer.mozilla.org/en/docs/Web/API/HTMLUnknownElement) to Kotlin */ -public external abstract class HTMLUnknownElement : HTMLElement { +public external abstract class HTMLUnknownElement : HTMLElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -143,20 +140,18 @@ public external abstract class HTMLUnknownElement : HTMLElement { /** * Exposes the JavaScript [DOMStringMap](https://developer.mozilla.org/en/docs/Web/API/DOMStringMap) to Kotlin */ -public external abstract class DOMStringMap +public external abstract class DOMStringMap : JsAny -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun DOMStringMap.get(name: String): String? = asDynamic().getString(name) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun DOMStringMap.set(name: String, value: String) { asDynamic()[name] = value } /** * Exposes the JavaScript [HTMLHtmlElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHtmlElement) to Kotlin */ -public external abstract class HTMLHtmlElement : HTMLElement { +public external abstract class HTMLHtmlElement : HTMLElement, JsAny { open var version: String companion object { @@ -184,7 +179,7 @@ public external abstract class HTMLHtmlElement : HTMLElement { /** * Exposes the JavaScript [HTMLHeadElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHeadElement) to Kotlin */ -public external abstract class HTMLHeadElement : HTMLElement { +public external abstract class HTMLHeadElement : HTMLElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -210,7 +205,7 @@ public external abstract class HTMLHeadElement : HTMLElement { /** * Exposes the JavaScript [HTMLTitleElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTitleElement) to Kotlin */ -public external abstract class HTMLTitleElement : HTMLElement { +public external abstract class HTMLTitleElement : HTMLElement, JsAny { open var text: String companion object { @@ -238,7 +233,7 @@ public external abstract class HTMLTitleElement : HTMLElement { /** * Exposes the JavaScript [HTMLBaseElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBaseElement) to Kotlin */ -public external abstract class HTMLBaseElement : HTMLElement { +public external abstract class HTMLBaseElement : HTMLElement, JsAny { open var href: String open var target: String @@ -267,7 +262,7 @@ public external abstract class HTMLBaseElement : HTMLElement { /** * Exposes the JavaScript [HTMLLinkElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLinkElement) to Kotlin */ -public external abstract class HTMLLinkElement : HTMLElement, LinkStyle { +public external abstract class HTMLLinkElement : HTMLElement, LinkStyle, JsAny { open var href: String open var crossOrigin: String? open var rel: String @@ -310,7 +305,7 @@ public external abstract class HTMLLinkElement : HTMLElement, LinkStyle { /** * Exposes the JavaScript [HTMLMetaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMetaElement) to Kotlin */ -public external abstract class HTMLMetaElement : HTMLElement { +public external abstract class HTMLMetaElement : HTMLElement, JsAny { open var name: String open var httpEquiv: String open var content: String @@ -341,7 +336,7 @@ public external abstract class HTMLMetaElement : HTMLElement { /** * Exposes the JavaScript [HTMLStyleElement](https://developer.mozilla.org/en/docs/Web/API/HTMLStyleElement) to Kotlin */ -public external abstract class HTMLStyleElement : HTMLElement, LinkStyle { +public external abstract class HTMLStyleElement : HTMLElement, LinkStyle, JsAny { open var media: String open var nonce: String open var type: String @@ -371,7 +366,7 @@ public external abstract class HTMLStyleElement : HTMLElement, LinkStyle { /** * Exposes the JavaScript [HTMLBodyElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBodyElement) to Kotlin */ -public external abstract class HTMLBodyElement : HTMLElement, WindowEventHandlers { +public external abstract class HTMLBodyElement : HTMLElement, WindowEventHandlers, JsAny { open var text: String open var link: String open var vLink: String @@ -404,7 +399,7 @@ public external abstract class HTMLBodyElement : HTMLElement, WindowEventHandler /** * Exposes the JavaScript [HTMLHeadingElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHeadingElement) to Kotlin */ -public external abstract class HTMLHeadingElement : HTMLElement { +public external abstract class HTMLHeadingElement : HTMLElement, JsAny { open var align: String companion object { @@ -432,7 +427,7 @@ public external abstract class HTMLHeadingElement : HTMLElement { /** * Exposes the JavaScript [HTMLParagraphElement](https://developer.mozilla.org/en/docs/Web/API/HTMLParagraphElement) to Kotlin */ -public external abstract class HTMLParagraphElement : HTMLElement { +public external abstract class HTMLParagraphElement : HTMLElement, JsAny { open var align: String companion object { @@ -460,7 +455,7 @@ public external abstract class HTMLParagraphElement : HTMLElement { /** * Exposes the JavaScript [HTMLHRElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHRElement) to Kotlin */ -public external abstract class HTMLHRElement : HTMLElement { +public external abstract class HTMLHRElement : HTMLElement, JsAny { open var align: String open var color: String open var noShade: Boolean @@ -492,7 +487,7 @@ public external abstract class HTMLHRElement : HTMLElement { /** * Exposes the JavaScript [HTMLPreElement](https://developer.mozilla.org/en/docs/Web/API/HTMLPreElement) to Kotlin */ -public external abstract class HTMLPreElement : HTMLElement { +public external abstract class HTMLPreElement : HTMLElement, JsAny { open var width: Int companion object { @@ -520,7 +515,7 @@ public external abstract class HTMLPreElement : HTMLElement { /** * Exposes the JavaScript [HTMLQuoteElement](https://developer.mozilla.org/en/docs/Web/API/HTMLQuoteElement) to Kotlin */ -public external abstract class HTMLQuoteElement : HTMLElement { +public external abstract class HTMLQuoteElement : HTMLElement, JsAny { open var cite: String companion object { @@ -548,7 +543,7 @@ public external abstract class HTMLQuoteElement : HTMLElement { /** * Exposes the JavaScript [HTMLOListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOListElement) to Kotlin */ -public external abstract class HTMLOListElement : HTMLElement { +public external abstract class HTMLOListElement : HTMLElement, JsAny { open var reversed: Boolean open var start: Int open var type: String @@ -579,7 +574,7 @@ public external abstract class HTMLOListElement : HTMLElement { /** * Exposes the JavaScript [HTMLUListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLUListElement) to Kotlin */ -public external abstract class HTMLUListElement : HTMLElement { +public external abstract class HTMLUListElement : HTMLElement, JsAny { open var compact: Boolean open var type: String @@ -608,7 +603,7 @@ public external abstract class HTMLUListElement : HTMLElement { /** * Exposes the JavaScript [HTMLLIElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLIElement) to Kotlin */ -public external abstract class HTMLLIElement : HTMLElement { +public external abstract class HTMLLIElement : HTMLElement, JsAny { open var value: Int open var type: String @@ -637,7 +632,7 @@ public external abstract class HTMLLIElement : HTMLElement { /** * Exposes the JavaScript [HTMLDListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDListElement) to Kotlin */ -public external abstract class HTMLDListElement : HTMLElement { +public external abstract class HTMLDListElement : HTMLElement, JsAny { open var compact: Boolean companion object { @@ -665,7 +660,7 @@ public external abstract class HTMLDListElement : HTMLElement { /** * Exposes the JavaScript [HTMLDivElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDivElement) to Kotlin */ -public external abstract class HTMLDivElement : HTMLElement { +public external abstract class HTMLDivElement : HTMLElement, JsAny { open var align: String companion object { @@ -693,7 +688,7 @@ public external abstract class HTMLDivElement : HTMLElement { /** * Exposes the JavaScript [HTMLAnchorElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAnchorElement) to Kotlin */ -public external abstract class HTMLAnchorElement : HTMLElement, HTMLHyperlinkElementUtils { +public external abstract class HTMLAnchorElement : HTMLElement, HTMLHyperlinkElementUtils, JsAny { open var target: String open var download: String open var ping: String @@ -734,7 +729,7 @@ public external abstract class HTMLAnchorElement : HTMLElement, HTMLHyperlinkEle /** * Exposes the JavaScript [HTMLDataElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDataElement) to Kotlin */ -public external abstract class HTMLDataElement : HTMLElement { +public external abstract class HTMLDataElement : HTMLElement, JsAny { open var value: String companion object { @@ -762,7 +757,7 @@ public external abstract class HTMLDataElement : HTMLElement { /** * Exposes the JavaScript [HTMLTimeElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTimeElement) to Kotlin */ -public external abstract class HTMLTimeElement : HTMLElement { +public external abstract class HTMLTimeElement : HTMLElement, JsAny { open var dateTime: String companion object { @@ -790,7 +785,7 @@ public external abstract class HTMLTimeElement : HTMLElement { /** * Exposes the JavaScript [HTMLSpanElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSpanElement) to Kotlin */ -public external abstract class HTMLSpanElement : HTMLElement { +public external abstract class HTMLSpanElement : HTMLElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -816,7 +811,7 @@ public external abstract class HTMLSpanElement : HTMLElement { /** * Exposes the JavaScript [HTMLBRElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBRElement) to Kotlin */ -public external abstract class HTMLBRElement : HTMLElement { +public external abstract class HTMLBRElement : HTMLElement, JsAny { open var clear: String companion object { @@ -844,7 +839,7 @@ public external abstract class HTMLBRElement : HTMLElement { /** * Exposes the JavaScript [HTMLHyperlinkElementUtils](https://developer.mozilla.org/en/docs/Web/API/HTMLHyperlinkElementUtils) to Kotlin */ -public external interface HTMLHyperlinkElementUtils { +public external interface HTMLHyperlinkElementUtils : JsAny { var href: String val origin: String var protocol: String @@ -861,7 +856,7 @@ public external interface HTMLHyperlinkElementUtils { /** * Exposes the JavaScript [HTMLModElement](https://developer.mozilla.org/en/docs/Web/API/HTMLModElement) to Kotlin */ -public external abstract class HTMLModElement : HTMLElement { +public external abstract class HTMLModElement : HTMLElement, JsAny { open var cite: String open var dateTime: String @@ -890,7 +885,7 @@ public external abstract class HTMLModElement : HTMLElement { /** * Exposes the JavaScript [HTMLPictureElement](https://developer.mozilla.org/en/docs/Web/API/HTMLPictureElement) to Kotlin */ -public external abstract class HTMLPictureElement : HTMLElement { +public external abstract class HTMLPictureElement : HTMLElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -916,7 +911,7 @@ public external abstract class HTMLPictureElement : HTMLElement { /** * Exposes the JavaScript [HTMLSourceElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSourceElement) to Kotlin */ -public external abstract class HTMLSourceElement : HTMLElement { +public external abstract class HTMLSourceElement : HTMLElement, JsAny { open var src: String open var type: String open var srcset: String @@ -948,7 +943,7 @@ public external abstract class HTMLSourceElement : HTMLElement { /** * Exposes the JavaScript [HTMLImageElement](https://developer.mozilla.org/en/docs/Web/API/HTMLImageElement) to Kotlin */ -public external abstract class HTMLImageElement : HTMLElement, HTMLOrSVGImageElement, TexImageSource { +public external abstract class HTMLImageElement : HTMLElement, HTMLOrSVGImageElement, TexImageSource, JsAny { open var alt: String open var src: String open var srcset: String @@ -998,7 +993,7 @@ public external abstract class HTMLImageElement : HTMLElement, HTMLOrSVGImageEle /** * Exposes the JavaScript [HTMLIFrameElement](https://developer.mozilla.org/en/docs/Web/API/HTMLIFrameElement) to Kotlin */ -public external abstract class HTMLIFrameElement : HTMLElement { +public external abstract class HTMLIFrameElement : HTMLElement, JsAny { open var src: String open var srcdoc: String open var name: String @@ -1043,7 +1038,7 @@ public external abstract class HTMLIFrameElement : HTMLElement { /** * Exposes the JavaScript [HTMLEmbedElement](https://developer.mozilla.org/en/docs/Web/API/HTMLEmbedElement) to Kotlin */ -public external abstract class HTMLEmbedElement : HTMLElement { +public external abstract class HTMLEmbedElement : HTMLElement, JsAny { open var src: String open var type: String open var width: String @@ -1077,7 +1072,7 @@ public external abstract class HTMLEmbedElement : HTMLElement { /** * Exposes the JavaScript [HTMLObjectElement](https://developer.mozilla.org/en/docs/Web/API/HTMLObjectElement) to Kotlin */ -public external abstract class HTMLObjectElement : HTMLElement { +public external abstract class HTMLObjectElement : HTMLElement, JsAny { open var data: String open var type: String open var typeMustMatch: Boolean @@ -1131,7 +1126,7 @@ public external abstract class HTMLObjectElement : HTMLElement { /** * Exposes the JavaScript [HTMLParamElement](https://developer.mozilla.org/en/docs/Web/API/HTMLParamElement) to Kotlin */ -public external abstract class HTMLParamElement : HTMLElement { +public external abstract class HTMLParamElement : HTMLElement, JsAny { open var name: String open var value: String open var type: String @@ -1162,7 +1157,7 @@ public external abstract class HTMLParamElement : HTMLElement { /** * Exposes the JavaScript [HTMLVideoElement](https://developer.mozilla.org/en/docs/Web/API/HTMLVideoElement) to Kotlin */ -public external abstract class HTMLVideoElement : HTMLMediaElement, CanvasImageSource, TexImageSource { +public external abstract class HTMLVideoElement : HTMLMediaElement, CanvasImageSource, TexImageSource, JsAny { open var width: Int open var height: Int open val videoWidth: Int @@ -1204,7 +1199,7 @@ public external abstract class HTMLVideoElement : HTMLMediaElement, CanvasImageS /** * Exposes the JavaScript [HTMLAudioElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAudioElement) to Kotlin */ -public external abstract class HTMLAudioElement : HTMLMediaElement { +public external abstract class HTMLAudioElement : HTMLMediaElement, JsAny { companion object { val NETWORK_EMPTY: Short val NETWORK_IDLE: Short @@ -1239,7 +1234,7 @@ public external abstract class HTMLAudioElement : HTMLMediaElement { /** * Exposes the JavaScript [HTMLTrackElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTrackElement) to Kotlin */ -public external abstract class HTMLTrackElement : HTMLElement { +public external abstract class HTMLTrackElement : HTMLElement, JsAny { open var kind: String open var src: String open var srclang: String @@ -1277,7 +1272,7 @@ public external abstract class HTMLTrackElement : HTMLElement { /** * Exposes the JavaScript [HTMLMediaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMediaElement) to Kotlin */ -public external abstract class HTMLMediaElement : HTMLElement { +public external abstract class HTMLMediaElement : HTMLElement, JsAny { open val error: MediaError? open var src: String open var srcObject: MediaProvider? @@ -1311,11 +1306,11 @@ public external abstract class HTMLMediaElement : HTMLElement { fun load() fun canPlayType(type: String): CanPlayTypeResult fun fastSeek(time: Double) - fun getStartDate(): Dynamic? - fun play(): Promise + fun getStartDate(): JsAny + fun play(): Promise fun pause() fun addTextTrack(kind: TextTrackKind, label: String = definedExternally, language: String = definedExternally): TextTrack - fun setMediaKeys(mediaKeys: MediaKeys?): Promise + fun setMediaKeys(mediaKeys: MediaKeys?): Promise companion object { val NETWORK_EMPTY: Short @@ -1351,7 +1346,7 @@ public external abstract class HTMLMediaElement : HTMLElement { /** * Exposes the JavaScript [MediaError](https://developer.mozilla.org/en/docs/Web/API/MediaError) to Kotlin */ -public external abstract class MediaError { +public external abstract class MediaError : JsAny { open val code: Short companion object { @@ -1365,7 +1360,7 @@ public external abstract class MediaError { /** * Exposes the JavaScript [AudioTrackList](https://developer.mozilla.org/en/docs/Web/API/AudioTrackList) to Kotlin */ -public external abstract class AudioTrackList : EventTarget { +public external abstract class AudioTrackList : EventTarget, JsAny { open val length: Int open var onchange: ((Event) -> Dynamic?)? open var onaddtrack: ((TrackEvent) -> Dynamic?)? @@ -1373,14 +1368,13 @@ public external abstract class AudioTrackList : EventTarget { fun getTrackById(id: String): AudioTrack? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun AudioTrackList.get(index: Int): AudioTrack? = asDynamic().getAny(index) /** * Exposes the JavaScript [AudioTrack](https://developer.mozilla.org/en/docs/Web/API/AudioTrack) to Kotlin */ -public external abstract class AudioTrack : UnionAudioTrackOrTextTrackOrVideoTrack { +public external abstract class AudioTrack : UnionAudioTrackOrTextTrackOrVideoTrack, JsAny { open val id: String open val kind: String open val label: String @@ -1392,7 +1386,7 @@ public external abstract class AudioTrack : UnionAudioTrackOrTextTrackOrVideoTra /** * Exposes the JavaScript [VideoTrackList](https://developer.mozilla.org/en/docs/Web/API/VideoTrackList) to Kotlin */ -public external abstract class VideoTrackList : EventTarget { +public external abstract class VideoTrackList : EventTarget, JsAny { open val length: Int open val selectedIndex: Int open var onchange: ((Event) -> Dynamic?)? @@ -1401,14 +1395,13 @@ public external abstract class VideoTrackList : EventTarget { fun getTrackById(id: String): VideoTrack? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun VideoTrackList.get(index: Int): VideoTrack? = asDynamic().getAny(index) /** * Exposes the JavaScript [VideoTrack](https://developer.mozilla.org/en/docs/Web/API/VideoTrack) to Kotlin */ -public external abstract class VideoTrack : UnionAudioTrackOrTextTrackOrVideoTrack { +public external abstract class VideoTrack : UnionAudioTrackOrTextTrackOrVideoTrack, JsAny { open val id: String open val kind: String open val label: String @@ -1417,7 +1410,7 @@ public external abstract class VideoTrack : UnionAudioTrackOrTextTrackOrVideoTra open val sourceBuffer: SourceBuffer? } -public external abstract class TextTrackList : EventTarget { +public external abstract class TextTrackList : EventTarget, JsAny { open val length: Int open var onchange: ((Event) -> Dynamic?)? open var onaddtrack: ((TrackEvent) -> Dynamic?)? @@ -1425,14 +1418,13 @@ public external abstract class TextTrackList : EventTarget { fun getTrackById(id: String): TextTrack? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun TextTrackList.get(index: Int): TextTrack? = asDynamic().getAny(index) /** * Exposes the JavaScript [TextTrack](https://developer.mozilla.org/en/docs/Web/API/TextTrack) to Kotlin */ -public external abstract class TextTrack : EventTarget, UnionAudioTrackOrTextTrackOrVideoTrack { +public external abstract class TextTrack : EventTarget, UnionAudioTrackOrTextTrackOrVideoTrack, JsAny { open val kind: TextTrackKind open val label: String open val language: String @@ -1447,19 +1439,18 @@ public external abstract class TextTrack : EventTarget, UnionAudioTrackOrTextTra fun removeCue(cue: TextTrackCue) } -public external abstract class TextTrackCueList { +public external abstract class TextTrackCueList : JsAny { open val length: Int fun getCueById(id: String): TextTrackCue? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun TextTrackCueList.get(index: Int): TextTrackCue? = asDynamic().getAny(index) /** * Exposes the JavaScript [TextTrackCue](https://developer.mozilla.org/en/docs/Web/API/TextTrackCue) to Kotlin */ -public external abstract class TextTrackCue : EventTarget { +public external abstract class TextTrackCue : EventTarget, JsAny { open val track: TextTrack? open var id: String open var startTime: Double @@ -1472,7 +1463,7 @@ public external abstract class TextTrackCue : EventTarget { /** * Exposes the JavaScript [TimeRanges](https://developer.mozilla.org/en/docs/Web/API/TimeRanges) to Kotlin */ -public external abstract class TimeRanges { +public external abstract class TimeRanges : JsAny { open val length: Int fun start(index: Int): Double fun end(index: Int): Double @@ -1481,7 +1472,7 @@ public external abstract class TimeRanges { /** * Exposes the JavaScript [TrackEvent](https://developer.mozilla.org/en/docs/Web/API/TrackEvent) to Kotlin */ -public external open class TrackEvent(type: String, eventInitDict: TrackEventInit = definedExternally) : Event { +public external open class TrackEvent(type: String, eventInitDict: TrackEventInit = definedExternally) : Event, JsAny { open val track: UnionAudioTrackOrTextTrackOrVideoTrack? companion object { @@ -1492,28 +1483,19 @@ public external open class TrackEvent(type: String, eventInitDict: TrackEventIni } } -public external interface TrackEventInit : EventInit { +public external interface TrackEventInit : EventInit, JsAny { var track: UnionAudioTrackOrTextTrackOrVideoTrack? /* = null */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun TrackEventInit(track: UnionAudioTrackOrTextTrackOrVideoTrack? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): TrackEventInit { - val o = newJsObject() - o["track"] = track - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as TrackEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun TrackEventInit(track: UnionAudioTrackOrTextTrackOrVideoTrack? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): TrackEventInit { js("return { track, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [HTMLMapElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMapElement) to Kotlin */ -public external abstract class HTMLMapElement : HTMLElement { +public external abstract class HTMLMapElement : HTMLElement, JsAny { open var name: String open val areas: HTMLCollection @@ -1542,7 +1524,7 @@ public external abstract class HTMLMapElement : HTMLElement { /** * Exposes the JavaScript [HTMLAreaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAreaElement) to Kotlin */ -public external abstract class HTMLAreaElement : HTMLElement, HTMLHyperlinkElementUtils { +public external abstract class HTMLAreaElement : HTMLElement, HTMLHyperlinkElementUtils, JsAny { open var alt: String open var coords: String open var shape: String @@ -1579,7 +1561,7 @@ public external abstract class HTMLAreaElement : HTMLElement, HTMLHyperlinkEleme /** * Exposes the JavaScript [HTMLTableElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableElement) to Kotlin */ -public external abstract class HTMLTableElement : HTMLElement { +public external abstract class HTMLTableElement : HTMLElement, JsAny { open var caption: HTMLTableCaptionElement? open var tHead: HTMLTableSectionElement? open var tFoot: HTMLTableSectionElement? @@ -1629,7 +1611,7 @@ public external abstract class HTMLTableElement : HTMLElement { /** * Exposes the JavaScript [HTMLTableCaptionElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableCaptionElement) to Kotlin */ -public external abstract class HTMLTableCaptionElement : HTMLElement { +public external abstract class HTMLTableCaptionElement : HTMLElement, JsAny { open var align: String companion object { @@ -1657,7 +1639,7 @@ public external abstract class HTMLTableCaptionElement : HTMLElement { /** * Exposes the JavaScript [HTMLTableColElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableColElement) to Kotlin */ -public external abstract class HTMLTableColElement : HTMLElement { +public external abstract class HTMLTableColElement : HTMLElement, JsAny { open var span: Int open var align: String open var ch: String @@ -1690,7 +1672,7 @@ public external abstract class HTMLTableColElement : HTMLElement { /** * Exposes the JavaScript [HTMLTableSectionElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableSectionElement) to Kotlin */ -public external abstract class HTMLTableSectionElement : HTMLElement { +public external abstract class HTMLTableSectionElement : HTMLElement, JsAny { open val rows: HTMLCollection open var align: String open var ch: String @@ -1724,7 +1706,7 @@ public external abstract class HTMLTableSectionElement : HTMLElement { /** * Exposes the JavaScript [HTMLTableRowElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableRowElement) to Kotlin */ -public external abstract class HTMLTableRowElement : HTMLElement { +public external abstract class HTMLTableRowElement : HTMLElement, JsAny { open val rowIndex: Int open val sectionRowIndex: Int open val cells: HTMLCollection @@ -1761,7 +1743,7 @@ public external abstract class HTMLTableRowElement : HTMLElement { /** * Exposes the JavaScript [HTMLTableCellElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableCellElement) to Kotlin */ -public external abstract class HTMLTableCellElement : HTMLElement { +public external abstract class HTMLTableCellElement : HTMLElement, JsAny { open var colSpan: Int open var rowSpan: Int open var headers: String @@ -1803,7 +1785,7 @@ public external abstract class HTMLTableCellElement : HTMLElement { /** * Exposes the JavaScript [HTMLFormElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFormElement) to Kotlin */ -public external abstract class HTMLFormElement : HTMLElement { +public external abstract class HTMLFormElement : HTMLElement, JsAny { open var acceptCharset: String open var action: String open var autocomplete: String @@ -1842,18 +1824,16 @@ public external abstract class HTMLFormElement : HTMLElement { } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun HTMLFormElement.get(index: Int): Element? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun HTMLFormElement.get(name: String): UnionElementOrRadioNodeList? = asDynamic().getAny(name) /** * Exposes the JavaScript [HTMLLabelElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLabelElement) to Kotlin */ -public external abstract class HTMLLabelElement : HTMLElement { +public external abstract class HTMLLabelElement : HTMLElement, JsAny { open val form: HTMLFormElement? open var htmlFor: String open val control: HTMLElement? @@ -1883,7 +1863,7 @@ public external abstract class HTMLLabelElement : HTMLElement { /** * Exposes the JavaScript [HTMLInputElement](https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement) to Kotlin */ -public external abstract class HTMLInputElement : HTMLElement { +public external abstract class HTMLInputElement : HTMLElement, JsAny { open var accept: String open var alt: String open var autocomplete: String @@ -1919,7 +1899,7 @@ public external abstract class HTMLInputElement : HTMLElement { open var type: String open var defaultValue: String open var value: String - open var valueAsDate: Dynamic? + open var valueAsDate: JsAny? open var valueAsNumber: Double open var width: Int open val willValidate: Boolean @@ -1966,7 +1946,7 @@ public external abstract class HTMLInputElement : HTMLElement { /** * Exposes the JavaScript [HTMLButtonElement](https://developer.mozilla.org/en/docs/Web/API/HTMLButtonElement) to Kotlin */ -public external abstract class HTMLButtonElement : HTMLElement { +public external abstract class HTMLButtonElement : HTMLElement, JsAny { open var autofocus: Boolean open var disabled: Boolean open val form: HTMLFormElement? @@ -2012,7 +1992,7 @@ public external abstract class HTMLButtonElement : HTMLElement { /** * Exposes the JavaScript [HTMLSelectElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSelectElement) to Kotlin */ -public external abstract class HTMLSelectElement : HTMLElement, ItemArrayLike { +public external abstract class HTMLSelectElement : HTMLElement, ItemArrayLike, JsAny { open var autocomplete: String open var autofocus: Boolean open var disabled: Boolean @@ -2032,7 +2012,7 @@ public external abstract class HTMLSelectElement : HTMLElement, ItemArrayLike + fun assignedNodes(options: AssignedNodesOptions = definedExternally): JsArray companion object { val ELEMENT_NODE: Short @@ -2692,30 +2661,24 @@ public external abstract class HTMLSlotElement : HTMLElement { } } -public external interface AssignedNodesOptions { +public external interface AssignedNodesOptions : JsAny { var flatten: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun AssignedNodesOptions(flatten: Boolean? = false): AssignedNodesOptions { - val o = newJsObject() - o["flatten"] = flatten - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as AssignedNodesOptions -} +@Suppress("UNUSED_PARAMETER") +public fun AssignedNodesOptions(flatten: Boolean? = false): AssignedNodesOptions { js("return { flatten };") } /** * Exposes the JavaScript [HTMLCanvasElement](https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement) to Kotlin */ -public external abstract class HTMLCanvasElement : HTMLElement, CanvasImageSource, TexImageSource { +public external abstract class HTMLCanvasElement : HTMLElement, CanvasImageSource, TexImageSource, JsAny { open var width: Int open var height: Int - fun getContext(contextId: String, vararg arguments: Any?): RenderingContext? - fun toDataURL(type: String = definedExternally, quality: Any? = definedExternally): String - fun toBlob(_callback: (Blob?) -> Unit, type: String = definedExternally, quality: Any? = definedExternally) + fun getContext(contextId: String, vararg arguments: JsAny?): RenderingContext? + fun toDataURL(type: String = definedExternally, quality: JsAny? = definedExternally): String + fun toBlob(_callback: (Blob?) -> Unit, type: String = definedExternally, quality: JsAny? = definedExternally) companion object { val ELEMENT_NODE: Short @@ -2739,84 +2702,74 @@ public external abstract class HTMLCanvasElement : HTMLElement, CanvasImageSourc } } -public external interface CanvasRenderingContext2DSettings { +public external interface CanvasRenderingContext2DSettings : JsAny { var alpha: Boolean? /* = true */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun CanvasRenderingContext2DSettings(alpha: Boolean? = true): CanvasRenderingContext2DSettings { - val o = newJsObject() - o["alpha"] = alpha - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as CanvasRenderingContext2DSettings -} +@Suppress("UNUSED_PARAMETER") +public fun CanvasRenderingContext2DSettings(alpha: Boolean? = true): CanvasRenderingContext2DSettings { js("return { alpha };") } /** * Exposes the JavaScript [CanvasRenderingContext2D](https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D) to Kotlin */ -public external abstract class CanvasRenderingContext2D : CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasHitRegion, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath, RenderingContext { +public external abstract class CanvasRenderingContext2D : CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasHitRegion, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath, RenderingContext, JsAny { open val canvas: HTMLCanvasElement } -public external interface CanvasState { +public external interface CanvasState : JsAny { fun save() fun restore() } -public external interface CanvasTransform { +public external interface CanvasTransform : JsAny { fun scale(x: Double, y: Double) fun rotate(angle: Double) fun translate(x: Double, y: Double) fun transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) fun getTransform(): DOMMatrix fun setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) - fun setTransform(transform: Dynamic? = definedExternally) + fun setTransform(transform: JsAny? = definedExternally) fun resetTransform() } -public external interface CanvasCompositing { +public external interface CanvasCompositing : JsAny { var globalAlpha: Double var globalCompositeOperation: String } -public external interface CanvasImageSmoothing { +public external interface CanvasImageSmoothing : JsAny { var imageSmoothingEnabled: Boolean var imageSmoothingQuality: ImageSmoothingQuality } -public external interface CanvasFillStrokeStyles { - var strokeStyle: Dynamic? - get() = definedExternally - set(value) = definedExternally - var fillStyle: Dynamic? - get() = definedExternally - set(value) = definedExternally +public external interface CanvasFillStrokeStyles : JsAny { + var strokeStyle: JsAny? + var fillStyle: JsAny? fun createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double): CanvasGradient fun createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double): CanvasGradient fun createPattern(image: CanvasImageSource, repetition: String): CanvasPattern? } -public external interface CanvasShadowStyles { +public external interface CanvasShadowStyles : JsAny { var shadowOffsetX: Double var shadowOffsetY: Double var shadowBlur: Double var shadowColor: String } -public external interface CanvasFilters { +public external interface CanvasFilters : JsAny { var filter: String } -public external interface CanvasRect { +public external interface CanvasRect : JsAny { fun clearRect(x: Double, y: Double, w: Double, h: Double) fun fillRect(x: Double, y: Double, w: Double, h: Double) fun strokeRect(x: Double, y: Double, w: Double, h: Double) } -public external interface CanvasDrawPath { +public external interface CanvasDrawPath : JsAny { fun beginPath() fun fill(fillRule: CanvasFillRule = definedExternally) fun fill(path: Path2D, fillRule: CanvasFillRule = definedExternally) @@ -2831,32 +2784,32 @@ public external interface CanvasDrawPath { fun isPointInStroke(path: Path2D, x: Double, y: Double): Boolean } -public external interface CanvasUserInterface { +public external interface CanvasUserInterface : JsAny { fun drawFocusIfNeeded(element: Element) fun drawFocusIfNeeded(path: Path2D, element: Element) fun scrollPathIntoView() fun scrollPathIntoView(path: Path2D) } -public external interface CanvasText { +public external interface CanvasText : JsAny { fun fillText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally) fun strokeText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally) fun measureText(text: String): TextMetrics } -public external interface CanvasDrawImage { +public external interface CanvasDrawImage : JsAny { fun drawImage(image: CanvasImageSource, dx: Double, dy: Double) fun drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) fun drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double) } -public external interface CanvasHitRegion { +public external interface CanvasHitRegion : JsAny { fun addHitRegion(options: HitRegionOptions = definedExternally) fun removeHitRegion(id: String) fun clearHitRegions() } -public external interface CanvasImageData { +public external interface CanvasImageData : JsAny { fun createImageData(sw: Double, sh: Double): ImageData fun createImageData(imagedata: ImageData): ImageData fun getImageData(sx: Double, sy: Double, sw: Double, sh: Double): ImageData @@ -2864,24 +2817,24 @@ public external interface CanvasImageData { fun putImageData(imagedata: ImageData, dx: Double, dy: Double, dirtyX: Double, dirtyY: Double, dirtyWidth: Double, dirtyHeight: Double) } -public external interface CanvasPathDrawingStyles { +public external interface CanvasPathDrawingStyles : JsAny { var lineWidth: Double var lineCap: CanvasLineCap var lineJoin: CanvasLineJoin var miterLimit: Double var lineDashOffset: Double - fun setLineDash(segments: Array) - fun getLineDash(): Array + fun setLineDash(segments: JsArray) + fun getLineDash(): JsArray } -public external interface CanvasTextDrawingStyles { +public external interface CanvasTextDrawingStyles : JsAny { var font: String var textAlign: CanvasTextAlign var textBaseline: CanvasTextBaseline var direction: CanvasDirection } -public external interface CanvasPath { +public external interface CanvasPath : JsAny { fun closePath() fun moveTo(x: Double, y: Double) fun lineTo(x: Double, y: Double) @@ -2897,21 +2850,21 @@ public external interface CanvasPath { /** * Exposes the JavaScript [CanvasGradient](https://developer.mozilla.org/en/docs/Web/API/CanvasGradient) to Kotlin */ -public external abstract class CanvasGradient { +public external abstract class CanvasGradient : JsAny { fun addColorStop(offset: Double, color: String) } /** * Exposes the JavaScript [CanvasPattern](https://developer.mozilla.org/en/docs/Web/API/CanvasPattern) to Kotlin */ -public external abstract class CanvasPattern { - fun setTransform(transform: Dynamic? = definedExternally) +public external abstract class CanvasPattern : JsAny { + fun setTransform(transform: JsAny? = definedExternally) } /** * Exposes the JavaScript [TextMetrics](https://developer.mozilla.org/en/docs/Web/API/TextMetrics) to Kotlin */ -public external abstract class TextMetrics { +public external abstract class TextMetrics : JsAny { open val width: Double open val actualBoundingBoxLeft: Double open val actualBoundingBoxRight: Double @@ -2926,7 +2879,7 @@ public external abstract class TextMetrics { open val ideographicBaseline: Double } -public external interface HitRegionOptions { +public external interface HitRegionOptions : JsAny { var path: Path2D? /* = null */ get() = definedExternally set(value) = definedExternally @@ -2953,26 +2906,13 @@ public external interface HitRegionOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun HitRegionOptions(path: Path2D? = null, fillRule: CanvasFillRule? = CanvasFillRule.NONZERO, id: String? = "", parentID: String? = null, cursor: String? = "inherit", control: Element? = null, label: String? = null, role: String? = null): HitRegionOptions { - val o = newJsObject() - o["path"] = path - o["fillRule"] = fillRule - o["id"] = id - o["parentID"] = parentID - o["cursor"] = cursor - o["control"] = control - o["label"] = label - o["role"] = role - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as HitRegionOptions -} +@Suppress("UNUSED_PARAMETER") +public fun HitRegionOptions(path: Path2D? = null, fillRule: CanvasFillRule? = CanvasFillRule.NONZERO, id: String? = "", parentID: String? = null, cursor: String? = "inherit", control: Element? = null, label: String? = null, role: String? = null): HitRegionOptions { js("return { path, fillRule, id, parentID, cursor, control, label, role };") } /** * Exposes the JavaScript [ImageData](https://developer.mozilla.org/en/docs/Web/API/ImageData) to Kotlin */ -public external open class ImageData : ImageBitmapSource, TexImageSource { +public external open class ImageData : ImageBitmapSource, TexImageSource, JsAny { constructor(sw: Int, sh: Int) constructor(data: Uint8ClampedArray, sw: Int, sh: Int = definedExternally) open val width: Int @@ -2983,11 +2923,11 @@ public external open class ImageData : ImageBitmapSource, TexImageSource { /** * Exposes the JavaScript [Path2D](https://developer.mozilla.org/en/docs/Web/API/Path2D) to Kotlin */ -public external open class Path2D() : CanvasPath { +public external open class Path2D() : CanvasPath, JsAny { constructor(path: Path2D) - constructor(paths: Array, fillRule: CanvasFillRule = definedExternally) + constructor(paths: JsArray, fillRule: CanvasFillRule = definedExternally) constructor(d: String) - fun addPath(path: Path2D, transform: Dynamic? = definedExternally) + fun addPath(path: Path2D, transform: JsAny? = definedExternally) override fun closePath() override fun moveTo(x: Double, y: Double) override fun lineTo(x: Double, y: Double) @@ -3003,51 +2943,39 @@ public external open class Path2D() : CanvasPath { /** * Exposes the JavaScript [ImageBitmapRenderingContext](https://developer.mozilla.org/en/docs/Web/API/ImageBitmapRenderingContext) to Kotlin */ -public external abstract class ImageBitmapRenderingContext { +public external abstract class ImageBitmapRenderingContext : JsAny { open val canvas: HTMLCanvasElement fun transferFromImageBitmap(bitmap: ImageBitmap?) } -public external interface ImageBitmapRenderingContextSettings { +public external interface ImageBitmapRenderingContextSettings : JsAny { var alpha: Boolean? /* = true */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ImageBitmapRenderingContextSettings(alpha: Boolean? = true): ImageBitmapRenderingContextSettings { - val o = newJsObject() - o["alpha"] = alpha - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ImageBitmapRenderingContextSettings -} +@Suppress("UNUSED_PARAMETER") +public fun ImageBitmapRenderingContextSettings(alpha: Boolean? = true): ImageBitmapRenderingContextSettings { js("return { alpha };") } /** * Exposes the JavaScript [CustomElementRegistry](https://developer.mozilla.org/en/docs/Web/API/CustomElementRegistry) to Kotlin */ -public external abstract class CustomElementRegistry { +public external abstract class CustomElementRegistry : JsAny { fun define(name: String, constructor: () -> Dynamic?, options: ElementDefinitionOptions = definedExternally) - fun get(name: String): Any? - fun whenDefined(name: String): Promise + fun get(name: String): JsAny? + fun whenDefined(name: String): Promise } -public external interface ElementDefinitionOptions { +public external interface ElementDefinitionOptions : JsAny { var extends: String? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ElementDefinitionOptions(extends: String? = undefined): ElementDefinitionOptions { - val o = newJsObject() - o["extends"] = extends - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ElementDefinitionOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ElementDefinitionOptions(extends: String? = undefined): ElementDefinitionOptions { js("return { extends };") } -public external interface ElementContentEditable { +public external interface ElementContentEditable : JsAny { var contentEditable: String val isContentEditable: Boolean } @@ -3055,11 +2983,11 @@ public external interface ElementContentEditable { /** * Exposes the JavaScript [DataTransfer](https://developer.mozilla.org/en/docs/Web/API/DataTransfer) to Kotlin */ -public external abstract class DataTransfer { +public external abstract class DataTransfer : JsAny { open var dropEffect: String open var effectAllowed: String open val items: DataTransferItemList - open val types: Array + open val types: JsArray open val files: FileList fun setDragImage(image: Element, x: Int, y: Int) fun getData(format: String): String @@ -3070,7 +2998,7 @@ public external abstract class DataTransfer { /** * Exposes the JavaScript [DataTransferItemList](https://developer.mozilla.org/en/docs/Web/API/DataTransferItemList) to Kotlin */ -public external abstract class DataTransferItemList { +public external abstract class DataTransferItemList : JsAny { open val length: Int fun add(data: String, type: String): DataTransferItem? fun add(data: File): DataTransferItem? @@ -3078,14 +3006,13 @@ public external abstract class DataTransferItemList { fun clear() } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun DataTransferItemList.get(index: Int): DataTransferItem? = asDynamic().getAny(index) /** * Exposes the JavaScript [DataTransferItem](https://developer.mozilla.org/en/docs/Web/API/DataTransferItem) to Kotlin */ -public external abstract class DataTransferItem { +public external abstract class DataTransferItem : JsAny { open val kind: String open val type: String fun getAsString(_callback: ((String) -> Unit)?) @@ -3095,7 +3022,7 @@ public external abstract class DataTransferItem { /** * Exposes the JavaScript [DragEvent](https://developer.mozilla.org/en/docs/Web/API/DragEvent) to Kotlin */ -public external open class DragEvent(type: String, eventInitDict: DragEventInit = definedExternally) : MouseEvent { +public external open class DragEvent(type: String, eventInitDict: DragEventInit = definedExternally) : MouseEvent, JsAny { open val dataTransfer: DataTransfer? companion object { @@ -3106,52 +3033,19 @@ public external open class DragEvent(type: String, eventInitDict: DragEventInit } } -public external interface DragEventInit : MouseEventInit { +public external interface DragEventInit : MouseEventInit, JsAny { var dataTransfer: DataTransfer? /* = null */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun DragEventInit(dataTransfer: DataTransfer? = null, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): DragEventInit { - val o = newJsObject() - o["dataTransfer"] = dataTransfer - o["screenX"] = screenX - o["screenY"] = screenY - o["clientX"] = clientX - o["clientY"] = clientY - o["button"] = button - o["buttons"] = buttons - o["relatedTarget"] = relatedTarget - o["region"] = region - o["ctrlKey"] = ctrlKey - o["shiftKey"] = shiftKey - o["altKey"] = altKey - o["metaKey"] = metaKey - o["modifierAltGraph"] = modifierAltGraph - o["modifierCapsLock"] = modifierCapsLock - o["modifierFn"] = modifierFn - o["modifierFnLock"] = modifierFnLock - o["modifierHyper"] = modifierHyper - o["modifierNumLock"] = modifierNumLock - o["modifierScrollLock"] = modifierScrollLock - o["modifierSuper"] = modifierSuper - o["modifierSymbol"] = modifierSymbol - o["modifierSymbolLock"] = modifierSymbolLock - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as DragEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun DragEventInit(dataTransfer: DataTransfer? = null, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): DragEventInit { js("return { dataTransfer, screenX, screenY, clientX, clientY, button, buttons, relatedTarget, region, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [Window](https://developer.mozilla.org/en/docs/Web/API/Window) to Kotlin */ -public external abstract class Window : EventTarget, GlobalEventHandlers, WindowEventHandlers, WindowOrWorkerGlobalScope, WindowSessionStorage, WindowLocalStorage, GlobalPerformance, UnionMessagePortOrWindowProxy { +public external abstract class Window : EventTarget, GlobalEventHandlers, WindowEventHandlers, WindowOrWorkerGlobalScope, WindowSessionStorage, WindowLocalStorage, GlobalPerformance, UnionMessagePortOrWindowProxy, JsAny { open val window: Window open val self: Window open val document: Document @@ -3170,7 +3064,7 @@ public external abstract class Window : EventTarget, GlobalEventHandlers, Window open val frames: Window open val length: Int open val top: Window - open var opener: Any? + open var opener: JsAny? open val parent: Window open val frameElement: Element? open val navigator: Navigator @@ -3200,7 +3094,7 @@ public external abstract class Window : EventTarget, GlobalEventHandlers, Window fun print() fun requestAnimationFrame(callback: (Double) -> Unit): Int fun cancelAnimationFrame(handle: Int) - fun postMessage(message: Any?, targetOrigin: String, transfer: Array = definedExternally) + fun postMessage(message: JsAny?, targetOrigin: String, transfer: JsArray = definedExternally) fun captureEvents() fun releaseEvents() fun matchMedia(query: String): MediaQueryList @@ -3217,32 +3111,31 @@ public external abstract class Window : EventTarget, GlobalEventHandlers, Window fun getComputedStyle(elt: Element, pseudoElt: String? = definedExternally): CSSStyleDeclaration } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly -public inline operator fun Window.get(name: String): Dynamic? = asDynamic().getAny(name) +public inline operator fun Window.get(name: String): JsAny? = asDynamic().getAny(name) -public external abstract class BarProp { +public external abstract class BarProp : JsAny { open val visible: Boolean } /** * Exposes the JavaScript [History](https://developer.mozilla.org/en/docs/Web/API/History) to Kotlin */ -public external abstract class History { +public external abstract class History : JsAny { open val length: Int open var scrollRestoration: ScrollRestoration - open val state: Any? + open val state: JsAny? fun go(delta: Int = definedExternally) fun back() fun forward() - fun pushState(data: Any?, title: String, url: String? = definedExternally) - fun replaceState(data: Any?, title: String, url: String? = definedExternally) + fun pushState(data: JsAny?, title: String, url: String? = definedExternally) + fun replaceState(data: JsAny?, title: String, url: String? = definedExternally) } /** * Exposes the JavaScript [Location](https://developer.mozilla.org/en/docs/Web/API/Location) to Kotlin */ -public external abstract class Location { +public external abstract class Location : JsAny { open var href: String open val origin: String open var protocol: String @@ -3252,7 +3145,7 @@ public external abstract class Location { open var pathname: String open var search: String open var hash: String - open val ancestorOrigins: Array + open val ancestorOrigins: JsArray fun assign(url: String) fun replace(url: String) fun reload() @@ -3261,8 +3154,8 @@ public external abstract class Location { /** * Exposes the JavaScript [PopStateEvent](https://developer.mozilla.org/en/docs/Web/API/PopStateEvent) to Kotlin */ -public external open class PopStateEvent(type: String, eventInitDict: PopStateEventInit = definedExternally) : Event { - open val state: Any? +public external open class PopStateEvent(type: String, eventInitDict: PopStateEventInit = definedExternally) : Event, JsAny { + open val state: JsAny? companion object { val NONE: Short @@ -3272,28 +3165,19 @@ public external open class PopStateEvent(type: String, eventInitDict: PopStateEv } } -public external interface PopStateEventInit : EventInit { - var state: Any? /* = null */ +public external interface PopStateEventInit : EventInit, JsAny { + var state: JsAny? /* = null */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun PopStateEventInit(state: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PopStateEventInit { - val o = newJsObject() - o["state"] = state - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as PopStateEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun PopStateEventInit(state: JsAny? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PopStateEventInit { js("return { state, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [HashChangeEvent](https://developer.mozilla.org/en/docs/Web/API/HashChangeEvent) to Kotlin */ -public external open class HashChangeEvent(type: String, eventInitDict: HashChangeEventInit = definedExternally) : Event { +public external open class HashChangeEvent(type: String, eventInitDict: HashChangeEventInit = definedExternally) : Event, JsAny { open val oldURL: String open val newURL: String @@ -3305,7 +3189,7 @@ public external open class HashChangeEvent(type: String, eventInitDict: HashChan } } -public external interface HashChangeEventInit : EventInit { +public external interface HashChangeEventInit : EventInit, JsAny { var oldURL: String? /* = "" */ get() = definedExternally set(value) = definedExternally @@ -3314,23 +3198,13 @@ public external interface HashChangeEventInit : EventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun HashChangeEventInit(oldURL: String? = "", newURL: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): HashChangeEventInit { - val o = newJsObject() - o["oldURL"] = oldURL - o["newURL"] = newURL - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as HashChangeEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun HashChangeEventInit(oldURL: String? = "", newURL: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): HashChangeEventInit { js("return { oldURL, newURL, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [PageTransitionEvent](https://developer.mozilla.org/en/docs/Web/API/PageTransitionEvent) to Kotlin */ -public external open class PageTransitionEvent(type: String, eventInitDict: PageTransitionEventInit = definedExternally) : Event { +public external open class PageTransitionEvent(type: String, eventInitDict: PageTransitionEventInit = definedExternally) : Event, JsAny { open val persisted: Boolean companion object { @@ -3341,28 +3215,19 @@ public external open class PageTransitionEvent(type: String, eventInitDict: Page } } -public external interface PageTransitionEventInit : EventInit { +public external interface PageTransitionEventInit : EventInit, JsAny { var persisted: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun PageTransitionEventInit(persisted: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PageTransitionEventInit { - val o = newJsObject() - o["persisted"] = persisted - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as PageTransitionEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun PageTransitionEventInit(persisted: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PageTransitionEventInit { js("return { persisted, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [BeforeUnloadEvent](https://developer.mozilla.org/en/docs/Web/API/BeforeUnloadEvent) to Kotlin */ -public external open class BeforeUnloadEvent : Event { +public external open class BeforeUnloadEvent : Event, JsAny { var returnValue: String companion object { @@ -3373,7 +3238,7 @@ public external open class BeforeUnloadEvent : Event { } } -public external abstract class ApplicationCache : EventTarget { +public external abstract class ApplicationCache : EventTarget, JsAny { open val status: Short open var onchecking: ((Event) -> Dynamic?)? open var onerror: ((Event) -> Dynamic?)? @@ -3400,19 +3265,19 @@ public external abstract class ApplicationCache : EventTarget { /** * Exposes the JavaScript [NavigatorOnLine](https://developer.mozilla.org/en/docs/Web/API/NavigatorOnLine) to Kotlin */ -public external interface NavigatorOnLine { +public external interface NavigatorOnLine : JsAny { val onLine: Boolean } /** * Exposes the JavaScript [ErrorEvent](https://developer.mozilla.org/en/docs/Web/API/ErrorEvent) to Kotlin */ -public external open class ErrorEvent(type: String, eventInitDict: ErrorEventInit = definedExternally) : Event { +public external open class ErrorEvent(type: String, eventInitDict: ErrorEventInit = definedExternally) : Event, JsAny { open val message: String open val filename: String open val lineno: Int open val colno: Int - open val error: Any? + open val error: JsAny? companion object { val NONE: Short @@ -3422,7 +3287,7 @@ public external open class ErrorEvent(type: String, eventInitDict: ErrorEventIni } } -public external interface ErrorEventInit : EventInit { +public external interface ErrorEventInit : EventInit, JsAny { var message: String? /* = "" */ get() = definedExternally set(value) = definedExternally @@ -3435,33 +3300,20 @@ public external interface ErrorEventInit : EventInit { var colno: Int? /* = 0 */ get() = definedExternally set(value) = definedExternally - var error: Any? /* = null */ + var error: JsAny? /* = null */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ErrorEventInit(message: String? = "", filename: String? = "", lineno: Int? = 0, colno: Int? = 0, error: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ErrorEventInit { - val o = newJsObject() - o["message"] = message - o["filename"] = filename - o["lineno"] = lineno - o["colno"] = colno - o["error"] = error - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ErrorEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun ErrorEventInit(message: String? = "", filename: String? = "", lineno: Int? = 0, colno: Int? = 0, error: JsAny? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ErrorEventInit { js("return { message, filename, lineno, colno, error, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [PromiseRejectionEvent](https://developer.mozilla.org/en/docs/Web/API/PromiseRejectionEvent) to Kotlin */ -public external open class PromiseRejectionEvent(type: String, eventInitDict: PromiseRejectionEventInit) : Event { - open val promise: Promise - open val reason: Any? +public external open class PromiseRejectionEvent(type: String, eventInitDict: PromiseRejectionEventInit) : Event, JsAny { + open val promise: Promise + open val reason: JsAny? companion object { val NONE: Short @@ -3471,30 +3323,20 @@ public external open class PromiseRejectionEvent(type: String, eventInitDict: Pr } } -public external interface PromiseRejectionEventInit : EventInit { - var promise: Promise? - var reason: Any? +public external interface PromiseRejectionEventInit : EventInit, JsAny { + var promise: Promise? + var reason: JsAny? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun PromiseRejectionEventInit(promise: Promise?, reason: Any? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PromiseRejectionEventInit { - val o = newJsObject() - o["promise"] = promise - o["reason"] = reason - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as PromiseRejectionEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun PromiseRejectionEventInit(promise: Promise?, reason: JsAny? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PromiseRejectionEventInit { js("return { promise, reason, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [GlobalEventHandlers](https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers) to Kotlin */ -public external interface GlobalEventHandlers { +public external interface GlobalEventHandlers : JsAny { var onabort: ((Event) -> Dynamic?)? get() = definedExternally set(value) = definedExternally @@ -3561,7 +3403,7 @@ public external interface GlobalEventHandlers { var onended: ((Event) -> Dynamic?)? get() = definedExternally set(value) = definedExternally - var onerror: ((Dynamic?, String, Int, Int, Any?) -> Dynamic?)? + var onerror: ((JsAny?, String, Int, Int, JsAny?) -> Dynamic?)? get() = definedExternally set(value) = definedExternally var onfocus: ((FocusEvent) -> Dynamic?)? @@ -3713,7 +3555,7 @@ public external interface GlobalEventHandlers { /** * Exposes the JavaScript [WindowEventHandlers](https://developer.mozilla.org/en/docs/Web/API/WindowEventHandlers) to Kotlin */ -public external interface WindowEventHandlers { +public external interface WindowEventHandlers : JsAny { var onafterprint: ((Event) -> Dynamic?)? get() = definedExternally set(value) = definedExternally @@ -3761,7 +3603,7 @@ public external interface WindowEventHandlers { set(value) = definedExternally } -public external interface DocumentAndElementEventHandlers { +public external interface DocumentAndElementEventHandlers : JsAny { var oncopy: ((ClipboardEvent) -> Dynamic?)? get() = definedExternally set(value) = definedExternally @@ -3776,37 +3618,37 @@ public external interface DocumentAndElementEventHandlers { /** * Exposes the JavaScript [WindowOrWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WindowOrWorkerGlobalScope) to Kotlin */ -public external interface WindowOrWorkerGlobalScope { +public external interface WindowOrWorkerGlobalScope : JsAny { val origin: String val caches: CacheStorage fun btoa(data: String): String fun atob(data: String): String - fun setTimeout(handler: Dynamic?, timeout: Int = definedExternally, vararg arguments: Any?): Int + fun setTimeout(handler: JsAny?, timeout: Int = definedExternally, vararg arguments: JsAny?): Int fun clearTimeout(handle: Int = definedExternally) - fun setInterval(handler: Dynamic?, timeout: Int = definedExternally, vararg arguments: Any?): Int + fun setInterval(handler: JsAny?, timeout: Int = definedExternally, vararg arguments: JsAny?): Int fun clearInterval(handle: Int = definedExternally) fun createImageBitmap(image: ImageBitmapSource, options: ImageBitmapOptions = definedExternally): Promise fun createImageBitmap(image: ImageBitmapSource, sx: Int, sy: Int, sw: Int, sh: Int, options: ImageBitmapOptions = definedExternally): Promise - fun fetch(input: Dynamic?, init: RequestInit = definedExternally): Promise + fun fetch(input: JsAny?, init: RequestInit = definedExternally): Promise } /** * Exposes the JavaScript [Navigator](https://developer.mozilla.org/en/docs/Web/API/Navigator) to Kotlin */ -public external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware { +public external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware, JsAny { open val clipboard: Clipboard open val mediaDevices: MediaDevices open val maxTouchPoints: Int open val serviceWorker: ServiceWorkerContainer - fun requestMediaKeySystemAccess(keySystem: String, supportedConfigurations: Array): Promise - fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (Dynamic?) -> Unit) - fun vibrate(pattern: Dynamic?): Boolean + fun requestMediaKeySystemAccess(keySystem: String, supportedConfigurations: JsArray): Promise + fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (JsAny) -> Unit) + fun vibrate(pattern: JsAny?): Boolean } /** * Exposes the JavaScript [NavigatorID](https://developer.mozilla.org/en/docs/Web/API/NavigatorID) to Kotlin */ -public external interface NavigatorID { +public external interface NavigatorID : JsAny { val appCodeName: String val appName: String val appVersion: String @@ -3823,12 +3665,12 @@ public external interface NavigatorID { /** * Exposes the JavaScript [NavigatorLanguage](https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage) to Kotlin */ -public external interface NavigatorLanguage { +public external interface NavigatorLanguage : JsAny { val language: String - val languages: Array + val languages: JsArray } -public external interface NavigatorContentUtils { +public external interface NavigatorContentUtils : JsAny { fun registerProtocolHandler(scheme: String, url: String, title: String) fun registerContentHandler(mimeType: String, url: String, title: String) fun isProtocolHandlerRegistered(scheme: String, url: String): String @@ -3837,14 +3679,14 @@ public external interface NavigatorContentUtils { fun unregisterContentHandler(mimeType: String, url: String) } -public external interface NavigatorCookies { +public external interface NavigatorCookies : JsAny { val cookieEnabled: Boolean } /** * Exposes the JavaScript [NavigatorPlugins](https://developer.mozilla.org/en/docs/Web/API/NavigatorPlugins) to Kotlin */ -public external interface NavigatorPlugins { +public external interface NavigatorPlugins : JsAny { val plugins: PluginArray val mimeTypes: MimeTypeArray fun javaEnabled(): Boolean @@ -3853,40 +3695,36 @@ public external interface NavigatorPlugins { /** * Exposes the JavaScript [PluginArray](https://developer.mozilla.org/en/docs/Web/API/PluginArray) to Kotlin */ -public external abstract class PluginArray : ItemArrayLike { +public external abstract class PluginArray : ItemArrayLike, JsAny { fun refresh(reload: Boolean = definedExternally) override fun item(index: Int): Plugin? fun namedItem(name: String): Plugin? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun PluginArray.get(index: Int): Plugin? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun PluginArray.get(name: String): Plugin? = asDynamic().getAny(name) /** * Exposes the JavaScript [MimeTypeArray](https://developer.mozilla.org/en/docs/Web/API/MimeTypeArray) to Kotlin */ -public external abstract class MimeTypeArray : ItemArrayLike { +public external abstract class MimeTypeArray : ItemArrayLike, JsAny { override fun item(index: Int): MimeType? fun namedItem(name: String): MimeType? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun MimeTypeArray.get(index: Int): MimeType? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun MimeTypeArray.get(name: String): MimeType? = asDynamic().getAny(name) /** * Exposes the JavaScript [Plugin](https://developer.mozilla.org/en/docs/Web/API/Plugin) to Kotlin */ -public external abstract class Plugin : ItemArrayLike { +public external abstract class Plugin : ItemArrayLike, JsAny { open val name: String open val description: String open val filename: String @@ -3894,18 +3732,16 @@ public external abstract class Plugin : ItemArrayLike { fun namedItem(name: String): MimeType? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Plugin.get(index: Int): MimeType? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Plugin.get(name: String): MimeType? = asDynamic().getAny(name) /** * Exposes the JavaScript [MimeType](https://developer.mozilla.org/en/docs/Web/API/MimeType) to Kotlin */ -public external abstract class MimeType { +public external abstract class MimeType : JsAny { open val type: String open val description: String open val suffixes: String @@ -3915,13 +3751,13 @@ public external abstract class MimeType { /** * Exposes the JavaScript [ImageBitmap](https://developer.mozilla.org/en/docs/Web/API/ImageBitmap) to Kotlin */ -public external abstract class ImageBitmap : CanvasImageSource, TexImageSource { +public external abstract class ImageBitmap : CanvasImageSource, TexImageSource, JsAny { open val width: Int open val height: Int fun close() } -public external interface ImageBitmapOptions { +public external interface ImageBitmapOptions : JsAny { var imageOrientation: ImageOrientation? /* = ImageOrientation.NONE */ get() = definedExternally set(value) = definedExternally @@ -3942,30 +3778,19 @@ public external interface ImageBitmapOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ImageBitmapOptions(imageOrientation: ImageOrientation? = ImageOrientation.NONE, premultiplyAlpha: PremultiplyAlpha? = PremultiplyAlpha.DEFAULT, colorSpaceConversion: ColorSpaceConversion? = ColorSpaceConversion.DEFAULT, resizeWidth: Int? = undefined, resizeHeight: Int? = undefined, resizeQuality: ResizeQuality? = ResizeQuality.LOW): ImageBitmapOptions { - val o = newJsObject() - o["imageOrientation"] = imageOrientation - o["premultiplyAlpha"] = premultiplyAlpha - o["colorSpaceConversion"] = colorSpaceConversion - o["resizeWidth"] = resizeWidth - o["resizeHeight"] = resizeHeight - o["resizeQuality"] = resizeQuality - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ImageBitmapOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ImageBitmapOptions(imageOrientation: ImageOrientation? = ImageOrientation.NONE, premultiplyAlpha: PremultiplyAlpha? = PremultiplyAlpha.DEFAULT, colorSpaceConversion: ColorSpaceConversion? = ColorSpaceConversion.DEFAULT, resizeWidth: Int? = undefined, resizeHeight: Int? = undefined, resizeQuality: ResizeQuality? = ResizeQuality.LOW): ImageBitmapOptions { js("return { imageOrientation, premultiplyAlpha, colorSpaceConversion, resizeWidth, resizeHeight, resizeQuality };") } /** * Exposes the JavaScript [MessageEvent](https://developer.mozilla.org/en/docs/Web/API/MessageEvent) to Kotlin */ -public external open class MessageEvent(type: String, eventInitDict: MessageEventInit = definedExternally) : Event { - open val data: Any? +public external open class MessageEvent(type: String, eventInitDict: MessageEventInit = definedExternally) : Event, JsAny { + open val data: JsAny? open val origin: String open val lastEventId: String open val source: UnionMessagePortOrWindowProxy? - open val ports: Array - fun initMessageEvent(type: String, bubbles: Boolean, cancelable: Boolean, data: Any?, origin: String, lastEventId: String, source: UnionMessagePortOrWindowProxy?, ports: Array) + open val ports: JsArray + fun initMessageEvent(type: String, bubbles: Boolean, cancelable: Boolean, data: JsAny?, origin: String, lastEventId: String, source: UnionMessagePortOrWindowProxy?, ports: JsArray) companion object { val NONE: Short @@ -3975,8 +3800,8 @@ public external open class MessageEvent(type: String, eventInitDict: MessageEven } } -public external interface MessageEventInit : EventInit { - var data: Any? /* = null */ +public external interface MessageEventInit : EventInit, JsAny { + var data: JsAny? /* = null */ get() = definedExternally set(value) = definedExternally var origin: String? /* = "" */ @@ -3988,31 +3813,18 @@ public external interface MessageEventInit : EventInit { var source: UnionMessagePortOrWindowProxy? /* = null */ get() = definedExternally set(value) = definedExternally - var ports: Array? /* = arrayOf() */ + var ports: JsArray? /* = arrayOf() */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MessageEventInit(data: Any? = null, origin: String? = "", lastEventId: String? = "", source: UnionMessagePortOrWindowProxy? = null, ports: Array? = arrayOf(), bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MessageEventInit { - val o = newJsObject() - o["data"] = data - o["origin"] = origin - o["lastEventId"] = lastEventId - o["source"] = source - o["ports"] = ports - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MessageEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun MessageEventInit(data: JsAny? = null, origin: String? = "", lastEventId: String? = "", source: UnionMessagePortOrWindowProxy? = null, ports: JsArray? = JsArray(), bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MessageEventInit { js("return { data, origin, lastEventId, source, ports, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [EventSource](https://developer.mozilla.org/en/docs/Web/API/EventSource) to Kotlin */ -public external open class EventSource(url: String, eventSourceInitDict: EventSourceInit = definedExternally) : EventTarget { +public external open class EventSource(url: String, eventSourceInitDict: EventSourceInit = definedExternally) : EventTarget, JsAny { open val url: String open val withCredentials: Boolean open val readyState: Short @@ -4028,28 +3840,22 @@ public external open class EventSource(url: String, eventSourceInitDict: EventSo } } -public external interface EventSourceInit { +public external interface EventSourceInit : JsAny { var withCredentials: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun EventSourceInit(withCredentials: Boolean? = false): EventSourceInit { - val o = newJsObject() - o["withCredentials"] = withCredentials - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as EventSourceInit -} +@Suppress("UNUSED_PARAMETER") +public fun EventSourceInit(withCredentials: Boolean? = false): EventSourceInit { js("return { withCredentials };") } /** * Exposes the JavaScript [WebSocket](https://developer.mozilla.org/en/docs/Web/API/WebSocket) to Kotlin */ -public external open class WebSocket(url: String, protocols: Dynamic? = definedExternally) : EventTarget { +public external open class WebSocket(url: String, protocols: JsAny? = definedExternally) : EventTarget, JsAny { open val url: String open val readyState: Short - open val bufferedAmount: Number + open val bufferedAmount: JsNumber var onopen: ((Event) -> Dynamic?)? var onerror: ((Event) -> Dynamic?)? var onclose: ((Event) -> Dynamic?)? @@ -4074,7 +3880,7 @@ public external open class WebSocket(url: String, protocols: Dynamic? = definedE /** * Exposes the JavaScript [CloseEvent](https://developer.mozilla.org/en/docs/Web/API/CloseEvent) to Kotlin */ -public external open class CloseEvent(type: String, eventInitDict: CloseEventInit = definedExternally) : Event { +public external open class CloseEvent(type: String, eventInitDict: CloseEventInit = definedExternally) : Event, JsAny { open val wasClean: Boolean open val code: Short open val reason: String @@ -4087,7 +3893,7 @@ public external open class CloseEvent(type: String, eventInitDict: CloseEventIni } } -public external interface CloseEventInit : EventInit { +public external interface CloseEventInit : EventInit, JsAny { var wasClean: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally @@ -4099,24 +3905,13 @@ public external interface CloseEventInit : EventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun CloseEventInit(wasClean: Boolean? = false, code: Short? = 0, reason: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CloseEventInit { - val o = newJsObject() - o["wasClean"] = wasClean - o["code"] = code - o["reason"] = reason - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as CloseEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun CloseEventInit(wasClean: Boolean? = false, code: Short? = 0, reason: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CloseEventInit { js("return { wasClean, code, reason, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [MessageChannel](https://developer.mozilla.org/en/docs/Web/API/MessageChannel) to Kotlin */ -public external open class MessageChannel { +public external open class MessageChannel : JsAny { open val port1: MessagePort open val port2: MessagePort } @@ -4124,9 +3919,9 @@ public external open class MessageChannel { /** * Exposes the JavaScript [MessagePort](https://developer.mozilla.org/en/docs/Web/API/MessagePort) to Kotlin */ -public external abstract class MessagePort : EventTarget, UnionMessagePortOrWindowProxy, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker { +public external abstract class MessagePort : EventTarget, UnionMessagePortOrWindowProxy, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker, JsAny { open var onmessage: ((MessageEvent) -> Dynamic?)? - fun postMessage(message: Any?, transfer: Array = definedExternally) + fun postMessage(message: JsAny?, transfer: JsArray = definedExternally) fun start() fun close() } @@ -4134,21 +3929,21 @@ public external abstract class MessagePort : EventTarget, UnionMessagePortOrWind /** * Exposes the JavaScript [BroadcastChannel](https://developer.mozilla.org/en/docs/Web/API/BroadcastChannel) to Kotlin */ -public external open class BroadcastChannel(name: String) : EventTarget { +public external open class BroadcastChannel(name: String) : EventTarget, JsAny { open val name: String var onmessage: ((MessageEvent) -> Dynamic?)? - fun postMessage(message: Any?) + fun postMessage(message: JsAny?) fun close() } /** * Exposes the JavaScript [WorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WorkerGlobalScope) to Kotlin */ -public external abstract class WorkerGlobalScope : EventTarget, WindowOrWorkerGlobalScope, GlobalPerformance { +public external abstract class WorkerGlobalScope : EventTarget, WindowOrWorkerGlobalScope, GlobalPerformance, JsAny { open val self: WorkerGlobalScope open val location: WorkerLocation open val navigator: WorkerNavigator - open var onerror: ((Dynamic?, String, Int, Int, Any?) -> Dynamic?)? + open var onerror: ((JsAny?, String, Int, Int, JsAny?) -> Dynamic?)? open var onlanguagechange: ((Event) -> Dynamic?)? open var onoffline: ((Event) -> Dynamic?)? open var ononline: ((Event) -> Dynamic?)? @@ -4160,16 +3955,16 @@ public external abstract class WorkerGlobalScope : EventTarget, WindowOrWorkerGl /** * Exposes the JavaScript [DedicatedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/DedicatedWorkerGlobalScope) to Kotlin */ -public external abstract class DedicatedWorkerGlobalScope : WorkerGlobalScope { +public external abstract class DedicatedWorkerGlobalScope : WorkerGlobalScope, JsAny { open var onmessage: ((MessageEvent) -> Dynamic?)? - fun postMessage(message: Any?, transfer: Array = definedExternally) + fun postMessage(message: JsAny?, transfer: JsArray = definedExternally) fun close() } /** * Exposes the JavaScript [SharedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/SharedWorkerGlobalScope) to Kotlin */ -public external abstract class SharedWorkerGlobalScope : WorkerGlobalScope { +public external abstract class SharedWorkerGlobalScope : WorkerGlobalScope, JsAny { open val name: String open val applicationCache: ApplicationCache open var onconnect: ((Event) -> Dynamic?)? @@ -4179,7 +3974,7 @@ public external abstract class SharedWorkerGlobalScope : WorkerGlobalScope { /** * Exposes the JavaScript [AbstractWorker](https://developer.mozilla.org/en/docs/Web/API/AbstractWorker) to Kotlin */ -public external interface AbstractWorker { +public external interface AbstractWorker : JsAny { var onerror: ((Event) -> Dynamic?)? get() = definedExternally set(value) = definedExternally @@ -4188,14 +3983,14 @@ public external interface AbstractWorker { /** * Exposes the JavaScript [Worker](https://developer.mozilla.org/en/docs/Web/API/Worker) to Kotlin */ -public external open class Worker(scriptURL: String, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker { +public external open class Worker(scriptURL: String, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker, JsAny { var onmessage: ((MessageEvent) -> Dynamic?)? override var onerror: ((Event) -> Dynamic?)? fun terminate() - fun postMessage(message: Any?, transfer: Array = definedExternally) + fun postMessage(message: JsAny?, transfer: JsArray = definedExternally) } -public external interface WorkerOptions { +public external interface WorkerOptions : JsAny { var type: WorkerType? /* = WorkerType.CLASSIC */ get() = definedExternally set(value) = definedExternally @@ -4204,20 +3999,13 @@ public external interface WorkerOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun WorkerOptions(type: WorkerType? = WorkerType.CLASSIC, credentials: RequestCredentials? = RequestCredentials.OMIT): WorkerOptions { - val o = newJsObject() - o["type"] = type - o["credentials"] = credentials - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as WorkerOptions -} +@Suppress("UNUSED_PARAMETER") +public fun WorkerOptions(type: WorkerType? = WorkerType.CLASSIC, credentials: RequestCredentials? = RequestCredentials.OMIT): WorkerOptions { js("return { type, credentials };") } /** * Exposes the JavaScript [SharedWorker](https://developer.mozilla.org/en/docs/Web/API/SharedWorker) to Kotlin */ -public external open class SharedWorker(scriptURL: String, name: String = definedExternally, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker { +public external open class SharedWorker(scriptURL: String, name: String = definedExternally, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker, JsAny { open val port: MessagePort override var onerror: ((Event) -> Dynamic?)? } @@ -4225,21 +4013,21 @@ public external open class SharedWorker(scriptURL: String, name: String = define /** * Exposes the JavaScript [NavigatorConcurrentHardware](https://developer.mozilla.org/en/docs/Web/API/NavigatorConcurrentHardware) to Kotlin */ -public external interface NavigatorConcurrentHardware { - val hardwareConcurrency: Number +public external interface NavigatorConcurrentHardware : JsAny { + val hardwareConcurrency: JsNumber } /** * Exposes the JavaScript [WorkerNavigator](https://developer.mozilla.org/en/docs/Web/API/WorkerNavigator) to Kotlin */ -public external abstract class WorkerNavigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorConcurrentHardware { +public external abstract class WorkerNavigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorConcurrentHardware, JsAny { open val serviceWorker: ServiceWorkerContainer } /** * Exposes the JavaScript [WorkerLocation](https://developer.mozilla.org/en/docs/Web/API/WorkerLocation) to Kotlin */ -public external abstract class WorkerLocation { +public external abstract class WorkerLocation : JsAny { open val href: String open val origin: String open val protocol: String @@ -4254,7 +4042,7 @@ public external abstract class WorkerLocation { /** * Exposes the JavaScript [Storage](https://developer.mozilla.org/en/docs/Web/API/Storage) to Kotlin */ -public external abstract class Storage { +public external abstract class Storage : JsAny { open val length: Int fun key(index: Int): String? fun removeItem(key: String) @@ -4263,32 +4051,30 @@ public external abstract class Storage { fun setItem(key: String, value: String) } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Storage.get(key: String): String? = asDynamic().getString(key) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun Storage.set(key: String, value: String) { asDynamic()[key] = value } /** * Exposes the JavaScript [WindowSessionStorage](https://developer.mozilla.org/en/docs/Web/API/WindowSessionStorage) to Kotlin */ -public external interface WindowSessionStorage { +public external interface WindowSessionStorage : JsAny { val sessionStorage: Storage } /** * Exposes the JavaScript [WindowLocalStorage](https://developer.mozilla.org/en/docs/Web/API/WindowLocalStorage) to Kotlin */ -public external interface WindowLocalStorage { +public external interface WindowLocalStorage : JsAny { val localStorage: Storage } /** * Exposes the JavaScript [StorageEvent](https://developer.mozilla.org/en/docs/Web/API/StorageEvent) to Kotlin */ -public external open class StorageEvent(type: String, eventInitDict: StorageEventInit = definedExternally) : Event { +public external open class StorageEvent(type: String, eventInitDict: StorageEventInit = definedExternally) : Event, JsAny { open val key: String? open val oldValue: String? open val newValue: String? @@ -4303,7 +4089,7 @@ public external open class StorageEvent(type: String, eventInitDict: StorageEven } } -public external interface StorageEventInit : EventInit { +public external interface StorageEventInit : EventInit, JsAny { var key: String? /* = null */ get() = definedExternally set(value) = definedExternally @@ -4321,23 +4107,10 @@ public external interface StorageEventInit : EventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun StorageEventInit(key: String? = null, oldValue: String? = null, newValue: String? = null, url: String? = "", storageArea: Storage? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): StorageEventInit { - val o = newJsObject() - o["key"] = key - o["oldValue"] = oldValue - o["newValue"] = newValue - o["url"] = url - o["storageArea"] = storageArea - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as StorageEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun StorageEventInit(key: String? = null, oldValue: String? = null, newValue: String? = null, url: String? = "", storageArea: Storage? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): StorageEventInit { js("return { key, oldValue, newValue, url, storageArea, bubbles, cancelable, composed };") } -public external abstract class HTMLAppletElement : HTMLElement { +public external abstract class HTMLAppletElement : HTMLElement, JsAny { open var align: String open var alt: String open var archive: String @@ -4375,7 +4148,7 @@ public external abstract class HTMLAppletElement : HTMLElement { /** * Exposes the JavaScript [HTMLMarqueeElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMarqueeElement) to Kotlin */ -public external abstract class HTMLMarqueeElement : HTMLElement { +public external abstract class HTMLMarqueeElement : HTMLElement, JsAny { open var behavior: String open var bgColor: String open var direction: String @@ -4418,7 +4191,7 @@ public external abstract class HTMLMarqueeElement : HTMLElement { /** * Exposes the JavaScript [HTMLFrameSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFrameSetElement) to Kotlin */ -public external abstract class HTMLFrameSetElement : HTMLElement, WindowEventHandlers { +public external abstract class HTMLFrameSetElement : HTMLElement, WindowEventHandlers, JsAny { open var cols: String open var rows: String @@ -4444,7 +4217,7 @@ public external abstract class HTMLFrameSetElement : HTMLElement, WindowEventHan } } -public external abstract class HTMLFrameElement : HTMLElement { +public external abstract class HTMLFrameElement : HTMLElement, JsAny { open var name: String open var scrolling: String open var src: String @@ -4478,7 +4251,7 @@ public external abstract class HTMLFrameElement : HTMLElement { } } -public external abstract class HTMLDirectoryElement : HTMLElement { +public external abstract class HTMLDirectoryElement : HTMLElement, JsAny { open var compact: Boolean companion object { @@ -4506,7 +4279,7 @@ public external abstract class HTMLDirectoryElement : HTMLElement { /** * Exposes the JavaScript [HTMLFontElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFontElement) to Kotlin */ -public external abstract class HTMLFontElement : HTMLElement { +public external abstract class HTMLFontElement : HTMLElement, JsAny { open var color: String open var face: String open var size: String @@ -4533,12 +4306,12 @@ public external abstract class HTMLFontElement : HTMLElement { } } -public external interface External { +public external interface External : JsAny { fun AddSearchProvider() fun IsSearchProviderInstalled() } -public external interface EventInit { +public external interface EventInit : JsAny { var bubbles: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally @@ -4550,23 +4323,15 @@ public external interface EventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun EventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventInit { - val o = newJsObject() - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as EventInit -} +@Suppress("UNUSED_PARAMETER") +public fun EventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventInit { js("return { bubbles, cancelable, composed };") } /** * Exposes the JavaScript [CustomEvent](https://developer.mozilla.org/en/docs/Web/API/CustomEvent) to Kotlin */ -public external open class CustomEvent(type: String, eventInitDict: CustomEventInit = definedExternally) : Event { - open val detail: Any? - fun initCustomEvent(type: String, bubbles: Boolean, cancelable: Boolean, detail: Any?) +public external open class CustomEvent(type: String, eventInitDict: CustomEventInit = definedExternally) : Event, JsAny { + open val detail: JsAny? + fun initCustomEvent(type: String, bubbles: Boolean, cancelable: Boolean, detail: JsAny?) companion object { val NONE: Short @@ -4576,40 +4341,25 @@ public external open class CustomEvent(type: String, eventInitDict: CustomEventI } } -public external interface CustomEventInit : EventInit { - var detail: Any? /* = null */ +public external interface CustomEventInit : EventInit, JsAny { + var detail: JsAny? /* = null */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun CustomEventInit(detail: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CustomEventInit { - val o = newJsObject() - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as CustomEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun CustomEventInit(detail: JsAny? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CustomEventInit { js("return { detail, bubbles, cancelable, composed };") } -public external interface EventListenerOptions { +public external interface EventListenerOptions : JsAny { var capture: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun EventListenerOptions(capture: Boolean? = false): EventListenerOptions { - val o = newJsObject() - o["capture"] = capture - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as EventListenerOptions -} +@Suppress("UNUSED_PARAMETER") +public fun EventListenerOptions(capture: Boolean? = false): EventListenerOptions { js("return { capture };") } -public external interface AddEventListenerOptions : EventListenerOptions { +public external interface AddEventListenerOptions : EventListenerOptions, JsAny { var passive: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally @@ -4618,25 +4368,17 @@ public external interface AddEventListenerOptions : EventListenerOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun AddEventListenerOptions(passive: Boolean? = false, once: Boolean? = false, capture: Boolean? = false): AddEventListenerOptions { - val o = newJsObject() - o["passive"] = passive - o["once"] = once - o["capture"] = capture - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as AddEventListenerOptions -} +@Suppress("UNUSED_PARAMETER") +public fun AddEventListenerOptions(passive: Boolean? = false, once: Boolean? = false, capture: Boolean? = false): AddEventListenerOptions { js("return { passive, once, capture };") } -public external interface NonElementParentNode { +public external interface NonElementParentNode : JsAny { fun getElementById(elementId: String): Element? } /** * Exposes the JavaScript [DocumentOrShadowRoot](https://developer.mozilla.org/en/docs/Web/API/DocumentOrShadowRoot) to Kotlin */ -public external interface DocumentOrShadowRoot { +public external interface DocumentOrShadowRoot : JsAny { val fullscreenElement: Element? get() = definedExternally } @@ -4644,15 +4386,15 @@ public external interface DocumentOrShadowRoot { /** * Exposes the JavaScript [ParentNode](https://developer.mozilla.org/en/docs/Web/API/ParentNode) to Kotlin */ -public external interface ParentNode { +public external interface ParentNode : JsAny { val children: HTMLCollection val firstElementChild: Element? get() = definedExternally val lastElementChild: Element? get() = definedExternally val childElementCount: Int - fun prepend(vararg nodes: Dynamic?) - fun append(vararg nodes: Dynamic?) + fun prepend(vararg nodes: JsAny?) + fun append(vararg nodes: JsAny?) fun querySelector(selectors: String): Element? fun querySelectorAll(selectors: String): NodeList } @@ -4660,7 +4402,7 @@ public external interface ParentNode { /** * Exposes the JavaScript [NonDocumentTypeChildNode](https://developer.mozilla.org/en/docs/Web/API/NonDocumentTypeChildNode) to Kotlin */ -public external interface NonDocumentTypeChildNode { +public external interface NonDocumentTypeChildNode : JsAny { val previousElementSibling: Element? get() = definedExternally val nextElementSibling: Element? @@ -4670,17 +4412,17 @@ public external interface NonDocumentTypeChildNode { /** * Exposes the JavaScript [ChildNode](https://developer.mozilla.org/en/docs/Web/API/ChildNode) to Kotlin */ -public external interface ChildNode { - fun before(vararg nodes: Dynamic?) - fun after(vararg nodes: Dynamic?) - fun replaceWith(vararg nodes: Dynamic?) +public external interface ChildNode : JsAny { + fun before(vararg nodes: JsAny?) + fun after(vararg nodes: JsAny?) + fun replaceWith(vararg nodes: JsAny?) fun remove() } /** * Exposes the JavaScript [Slotable](https://developer.mozilla.org/en/docs/Web/API/Slotable) to Kotlin */ -public external interface Slotable { +public external interface Slotable : JsAny { val assignedSlot: HTMLSlotElement? get() = definedExternally } @@ -4688,43 +4430,40 @@ public external interface Slotable { /** * Exposes the JavaScript [NodeList](https://developer.mozilla.org/en/docs/Web/API/NodeList) to Kotlin */ -public external abstract class NodeList : ItemArrayLike { +public external abstract class NodeList : ItemArrayLike, JsAny { override fun item(index: Int): Node? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun NodeList.get(index: Int): Node? = asDynamic().getAny(index) /** * Exposes the JavaScript [HTMLCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLCollection) to Kotlin */ -public external abstract class HTMLCollection : ItemArrayLike, UnionElementOrHTMLCollection { +public external abstract class HTMLCollection : ItemArrayLike, UnionElementOrHTMLCollection, JsAny { override fun item(index: Int): Element? fun namedItem(name: String): Element? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun HTMLCollection.get(index: Int): Element? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun HTMLCollection.get(name: String): Element? = asDynamic().getAny(name) /** * Exposes the JavaScript [MutationObserver](https://developer.mozilla.org/en/docs/Web/API/MutationObserver) to Kotlin */ -public external open class MutationObserver(callback: (Array, MutationObserver) -> Unit) { +public external open class MutationObserver(callback: (JsArray, MutationObserver) -> Unit) : JsAny { fun observe(target: Node, options: MutationObserverInit = definedExternally) fun disconnect() - fun takeRecords(): Array + fun takeRecords(): JsArray } /** * Exposes the JavaScript [MutationObserverInit](https://developer.mozilla.org/en/docs/Web/API/MutationObserverInit) to Kotlin */ -public external interface MutationObserverInit { +public external interface MutationObserverInit : JsAny { var childList: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally @@ -4743,30 +4482,18 @@ public external interface MutationObserverInit { var characterDataOldValue: Boolean? get() = definedExternally set(value) = definedExternally - var attributeFilter: Array? + var attributeFilter: JsArray? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MutationObserverInit(childList: Boolean? = false, attributes: Boolean? = undefined, characterData: Boolean? = undefined, subtree: Boolean? = false, attributeOldValue: Boolean? = undefined, characterDataOldValue: Boolean? = undefined, attributeFilter: Array? = undefined): MutationObserverInit { - val o = newJsObject() - o["childList"] = childList - o["attributes"] = attributes - o["characterData"] = characterData - o["subtree"] = subtree - o["attributeOldValue"] = attributeOldValue - o["characterDataOldValue"] = characterDataOldValue - o["attributeFilter"] = attributeFilter - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MutationObserverInit -} +@Suppress("UNUSED_PARAMETER") +public fun MutationObserverInit(childList: Boolean? = false, attributes: Boolean? = undefined, characterData: Boolean? = undefined, subtree: Boolean? = false, attributeOldValue: Boolean? = undefined, characterDataOldValue: Boolean? = undefined, attributeFilter: JsArray? = undefined): MutationObserverInit { js("return { childList, attributes, characterData, subtree, attributeOldValue, characterDataOldValue, attributeFilter };") } /** * Exposes the JavaScript [MutationRecord](https://developer.mozilla.org/en/docs/Web/API/MutationRecord) to Kotlin */ -public external abstract class MutationRecord { +public external abstract class MutationRecord : JsAny { open val type: String open val target: Node open val addedNodes: NodeList @@ -4781,7 +4508,7 @@ public external abstract class MutationRecord { /** * Exposes the JavaScript [Node](https://developer.mozilla.org/en/docs/Web/API/Node) to Kotlin */ -public external abstract class Node : EventTarget { +public external abstract class Node : EventTarget, JsAny { open val nodeType: Short open val nodeName: String open val baseURI: String @@ -4834,25 +4561,19 @@ public external abstract class Node : EventTarget { } } -public external interface GetRootNodeOptions { +public external interface GetRootNodeOptions : JsAny { var composed: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun GetRootNodeOptions(composed: Boolean? = false): GetRootNodeOptions { - val o = newJsObject() - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as GetRootNodeOptions -} +@Suppress("UNUSED_PARAMETER") +public fun GetRootNodeOptions(composed: Boolean? = false): GetRootNodeOptions { js("return { composed };") } /** * Exposes the JavaScript [Document](https://developer.mozilla.org/en/docs/Web/API/Document) to Kotlin */ -public external open class Document : Node, GlobalEventHandlers, DocumentAndElementEventHandlers, NonElementParentNode, DocumentOrShadowRoot, ParentNode, GeometryUtils { +public external open class Document : Node, GlobalEventHandlers, DocumentAndElementEventHandlers, NonElementParentNode, DocumentOrShadowRoot, ParentNode, GeometryUtils, JsAny { open val implementation: DOMImplementation open val URL: String open val documentURI: String @@ -4922,7 +4643,7 @@ public external open class Document : Node, GlobalEventHandlers, DocumentAndElem override var ondurationchange: ((Event) -> Dynamic?)? override var onemptied: ((Event) -> Dynamic?)? override var onended: ((Event) -> Dynamic?)? - override var onerror: ((Dynamic?, String, Int, Int, Any?) -> Dynamic?)? + override var onerror: ((JsAny?, String, Int, Int, JsAny?) -> Dynamic?)? override var onfocus: ((FocusEvent) -> Dynamic?)? override var oninput: ((InputEvent) -> Dynamic?)? override var oninvalid: ((Event) -> Dynamic?)? @@ -5016,20 +4737,20 @@ public external open class Document : Node, GlobalEventHandlers, DocumentAndElem fun captureEvents() fun releaseEvents() fun elementFromPoint(x: Double, y: Double): Element? - fun elementsFromPoint(x: Double, y: Double): Array + fun elementsFromPoint(x: Double, y: Double): JsArray fun caretPositionFromPoint(x: Double, y: Double): CaretPosition? fun createTouch(view: Window, target: EventTarget, identifier: Int, pageX: Int, pageY: Int, screenX: Int, screenY: Int): Touch fun createTouchList(vararg touches: Touch): TouchList - fun exitFullscreen(): Promise + fun exitFullscreen(): Promise override fun getElementById(elementId: String): Element? - override fun prepend(vararg nodes: Dynamic?) - override fun append(vararg nodes: Dynamic?) + override fun prepend(vararg nodes: JsAny?) + override fun append(vararg nodes: JsAny?) override fun querySelector(selectors: String): Element? override fun querySelectorAll(selectors: String): NodeList - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: Dynamic?, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint companion object { val ELEMENT_NODE: Short @@ -5053,14 +4774,13 @@ public external open class Document : Node, GlobalEventHandlers, DocumentAndElem } } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly -public inline operator fun Document.get(name: String): Dynamic? = asDynamic().getAny(name) +public inline operator fun Document.get(name: String): JsAny? = asDynamic().getAny(name) /** * Exposes the JavaScript [XMLDocument](https://developer.mozilla.org/en/docs/Web/API/XMLDocument) to Kotlin */ -public external open class XMLDocument : Document { +public external open class XMLDocument : Document, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -5083,25 +4803,19 @@ public external open class XMLDocument : Document { } } -public external interface ElementCreationOptions { +public external interface ElementCreationOptions : JsAny { var `is`: String? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ElementCreationOptions(param_is: String? = undefined): ElementCreationOptions { - val o = newJsObject() - o["is"] = param_is - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ElementCreationOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ElementCreationOptions(param_is: String? = undefined): ElementCreationOptions { js("return { is };") } /** * Exposes the JavaScript [DOMImplementation](https://developer.mozilla.org/en/docs/Web/API/DOMImplementation) to Kotlin */ -public external abstract class DOMImplementation { +public external abstract class DOMImplementation : JsAny { fun createDocumentType(qualifiedName: String, publicId: String, systemId: String): DocumentType fun createDocument(namespace: String?, qualifiedName: String, doctype: DocumentType? = definedExternally): XMLDocument fun createHTMLDocument(title: String = definedExternally): Document @@ -5111,7 +4825,7 @@ public external abstract class DOMImplementation { /** * Exposes the JavaScript [DocumentType](https://developer.mozilla.org/en/docs/Web/API/DocumentType) to Kotlin */ -public external abstract class DocumentType : Node, ChildNode { +public external abstract class DocumentType : Node, ChildNode, JsAny { open val name: String open val publicId: String open val systemId: String @@ -5141,14 +4855,14 @@ public external abstract class DocumentType : Node, ChildNode { /** * Exposes the JavaScript [DocumentFragment](https://developer.mozilla.org/en/docs/Web/API/DocumentFragment) to Kotlin */ -public external open class DocumentFragment : Node, NonElementParentNode, ParentNode { +public external open class DocumentFragment : Node, NonElementParentNode, ParentNode, JsAny { override val children: HTMLCollection override val firstElementChild: Element? override val lastElementChild: Element? override val childElementCount: Int override fun getElementById(elementId: String): Element? - override fun prepend(vararg nodes: Dynamic?) - override fun append(vararg nodes: Dynamic?) + override fun prepend(vararg nodes: JsAny?) + override fun append(vararg nodes: JsAny?) override fun querySelector(selectors: String): Element? override fun querySelectorAll(selectors: String): NodeList @@ -5177,7 +4891,7 @@ public external open class DocumentFragment : Node, NonElementParentNode, Parent /** * Exposes the JavaScript [ShadowRoot](https://developer.mozilla.org/en/docs/Web/API/ShadowRoot) to Kotlin */ -public external open class ShadowRoot : DocumentFragment, DocumentOrShadowRoot { +public external open class ShadowRoot : DocumentFragment, DocumentOrShadowRoot, JsAny { open val mode: ShadowRootMode open val host: Element override val fullscreenElement: Element? @@ -5207,7 +4921,7 @@ public external open class ShadowRoot : DocumentFragment, DocumentOrShadowRoot { /** * Exposes the JavaScript [Element](https://developer.mozilla.org/en/docs/Web/API/Element) to Kotlin */ -public external abstract class Element : Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slotable, GeometryUtils, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent, UnionElementOrProcessingInstruction { +public external abstract class Element : Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slotable, GeometryUtils, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent, UnionElementOrProcessingInstruction, JsAny { open val namespaceURI: String? open val prefix: String? open val localName: String @@ -5229,7 +4943,7 @@ public external abstract class Element : Node, ParentNode, NonDocumentTypeChildN open var innerHTML: String open var outerHTML: String fun hasAttributes(): Boolean - fun getAttributeNames(): Array + fun getAttributeNames(): JsArray fun getAttribute(qualifiedName: String): String? fun getAttributeNS(namespace: String?, localName: String): String? fun setAttribute(qualifiedName: String, value: String) @@ -5252,10 +4966,10 @@ public external abstract class Element : Node, ParentNode, NonDocumentTypeChildN fun getElementsByClassName(classNames: String): HTMLCollection fun insertAdjacentElement(where: String, element: Element): Element? fun insertAdjacentText(where: String, data: String) - fun getClientRects(): Array + fun getClientRects(): JsArray fun getBoundingClientRect(): DOMRect fun scrollIntoView() - fun scrollIntoView(arg: Dynamic?) + fun scrollIntoView(arg: JsAny?) fun scroll(options: ScrollToOptions = definedExternally) fun scroll(x: Double, y: Double) fun scrollTo(options: ScrollToOptions = definedExternally) @@ -5266,7 +4980,7 @@ public external abstract class Element : Node, ParentNode, NonDocumentTypeChildN fun setPointerCapture(pointerId: Int) fun releasePointerCapture(pointerId: Int) fun hasPointerCapture(pointerId: Int): Boolean - fun requestFullscreen(): Promise + fun requestFullscreen(): Promise companion object { val ELEMENT_NODE: Short @@ -5290,23 +5004,17 @@ public external abstract class Element : Node, ParentNode, NonDocumentTypeChildN } } -public external interface ShadowRootInit { +public external interface ShadowRootInit : JsAny { var mode: ShadowRootMode? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ShadowRootInit(mode: ShadowRootMode?): ShadowRootInit { - val o = newJsObject() - o["mode"] = mode - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ShadowRootInit -} +@Suppress("UNUSED_PARAMETER") +public fun ShadowRootInit(mode: ShadowRootMode?): ShadowRootInit { js("return { mode };") } /** * Exposes the JavaScript [NamedNodeMap](https://developer.mozilla.org/en/docs/Web/API/NamedNodeMap) to Kotlin */ -public external abstract class NamedNodeMap : ItemArrayLike { +public external abstract class NamedNodeMap : ItemArrayLike, JsAny { fun getNamedItemNS(namespace: String?, localName: String): Attr? fun setNamedItem(attr: Attr): Attr? fun setNamedItemNS(attr: Attr): Attr? @@ -5316,18 +5024,16 @@ public external abstract class NamedNodeMap : ItemArrayLike { fun getNamedItem(qualifiedName: String): Attr? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun NamedNodeMap.get(index: Int): Attr? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun NamedNodeMap.get(qualifiedName: String): Attr? = asDynamic().getAny(qualifiedName) /** * Exposes the JavaScript [Attr](https://developer.mozilla.org/en/docs/Web/API/Attr) to Kotlin */ -public external abstract class Attr : Node { +public external abstract class Attr : Node, JsAny { open val namespaceURI: String? open val prefix: String? open val localName: String @@ -5361,7 +5067,7 @@ public external abstract class Attr : Node { /** * Exposes the JavaScript [CharacterData](https://developer.mozilla.org/en/docs/Web/API/CharacterData) to Kotlin */ -public external abstract class CharacterData : Node, NonDocumentTypeChildNode, ChildNode { +public external abstract class CharacterData : Node, NonDocumentTypeChildNode, ChildNode, JsAny { open var data: String open val length: Int fun substringData(offset: Int, count: Int): String @@ -5395,19 +5101,19 @@ public external abstract class CharacterData : Node, NonDocumentTypeChildNode, C /** * Exposes the JavaScript [Text](https://developer.mozilla.org/en/docs/Web/API/Text) to Kotlin */ -public external open class Text(data: String = definedExternally) : CharacterData, Slotable, GeometryUtils { +public external open class Text(data: String = definedExternally) : CharacterData, Slotable, GeometryUtils, JsAny { open val wholeText: String override val assignedSlot: HTMLSlotElement? override val previousElementSibling: Element? override val nextElementSibling: Element? fun splitText(offset: Int): Text - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: Dynamic?, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint - override fun before(vararg nodes: Dynamic?) - override fun after(vararg nodes: Dynamic?) - override fun replaceWith(vararg nodes: Dynamic?) + override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + override fun before(vararg nodes: JsAny?) + override fun after(vararg nodes: JsAny?) + override fun replaceWith(vararg nodes: JsAny?) override fun remove() companion object { @@ -5435,7 +5141,7 @@ public external open class Text(data: String = definedExternally) : CharacterDat /** * Exposes the JavaScript [CDATASection](https://developer.mozilla.org/en/docs/Web/API/CDATASection) to Kotlin */ -public external open class CDATASection : Text { +public external open class CDATASection : Text, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -5461,7 +5167,7 @@ public external open class CDATASection : Text { /** * Exposes the JavaScript [ProcessingInstruction](https://developer.mozilla.org/en/docs/Web/API/ProcessingInstruction) to Kotlin */ -public external abstract class ProcessingInstruction : CharacterData, LinkStyle, UnionElementOrProcessingInstruction { +public external abstract class ProcessingInstruction : CharacterData, LinkStyle, UnionElementOrProcessingInstruction, JsAny { open val target: String companion object { @@ -5489,12 +5195,12 @@ public external abstract class ProcessingInstruction : CharacterData, LinkStyle, /** * Exposes the JavaScript [Comment](https://developer.mozilla.org/en/docs/Web/API/Comment) to Kotlin */ -public external open class Comment(data: String = definedExternally) : CharacterData { +public external open class Comment(data: String = definedExternally) : CharacterData, JsAny { override val previousElementSibling: Element? override val nextElementSibling: Element? - override fun before(vararg nodes: Dynamic?) - override fun after(vararg nodes: Dynamic?) - override fun replaceWith(vararg nodes: Dynamic?) + override fun before(vararg nodes: JsAny?) + override fun after(vararg nodes: JsAny?) + override fun replaceWith(vararg nodes: JsAny?) override fun remove() companion object { @@ -5522,7 +5228,7 @@ public external open class Comment(data: String = definedExternally) : Character /** * Exposes the JavaScript [Range](https://developer.mozilla.org/en/docs/Web/API/Range) to Kotlin */ -public external open class Range { +public external open class Range : JsAny { open val startContainer: Node open val startOffset: Int open val endContainer: Node @@ -5549,7 +5255,7 @@ public external open class Range { fun isPointInRange(node: Node, offset: Int): Boolean fun comparePoint(node: Node, offset: Int): Short fun intersectsNode(node: Node): Boolean - fun getClientRects(): Array + fun getClientRects(): JsArray fun getBoundingClientRect(): DOMRect fun createContextualFragment(fragment: String): DocumentFragment @@ -5564,7 +5270,7 @@ public external open class Range { /** * Exposes the JavaScript [NodeIterator](https://developer.mozilla.org/en/docs/Web/API/NodeIterator) to Kotlin */ -public external abstract class NodeIterator { +public external abstract class NodeIterator : JsAny { open val root: Node open val referenceNode: Node open val pointerBeforeReferenceNode: Boolean @@ -5578,7 +5284,7 @@ public external abstract class NodeIterator { /** * Exposes the JavaScript [TreeWalker](https://developer.mozilla.org/en/docs/Web/API/TreeWalker) to Kotlin */ -public external abstract class TreeWalker { +public external abstract class TreeWalker : JsAny { open val root: Node open val whatToShow: Int open val filter: NodeFilter? @@ -5596,7 +5302,7 @@ public external abstract class TreeWalker { * Exposes the JavaScript [NodeFilter](https://developer.mozilla.org/en/docs/Web/API/NodeFilter) to Kotlin */ @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface NodeFilter { +public external interface NodeFilter : JsAny { fun acceptNode(node: Node): Short companion object { @@ -5622,7 +5328,7 @@ public external interface NodeFilter { /** * Exposes the JavaScript [DOMTokenList](https://developer.mozilla.org/en/docs/Web/API/DOMTokenList) to Kotlin */ -public external abstract class DOMTokenList : ItemArrayLike { +public external abstract class DOMTokenList : ItemArrayLike, JsAny { open var value: String fun contains(token: String): Boolean fun add(vararg tokens: String) @@ -5630,17 +5336,16 @@ public external abstract class DOMTokenList : ItemArrayLike { fun toggle(token: String, force: Boolean = definedExternally): Boolean fun replace(token: String, newToken: String) fun supports(token: String): Boolean - override fun item(index: Int): String? + override fun item(index: Int): JsString? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun DOMTokenList.get(index: Int): String? = asDynamic().getString(index) /** * Exposes the JavaScript [DOMPointReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMPointReadOnly) to Kotlin */ -public external open class DOMPointReadOnly(x: Double, y: Double, z: Double, w: Double) { +public external open class DOMPointReadOnly(x: Double, y: Double, z: Double, w: Double) : JsAny { open val x: Double open val y: Double open val z: Double @@ -5651,7 +5356,7 @@ public external open class DOMPointReadOnly(x: Double, y: Double, z: Double, w: /** * Exposes the JavaScript [DOMPoint](https://developer.mozilla.org/en/docs/Web/API/DOMPoint) to Kotlin */ -public external open class DOMPoint : DOMPointReadOnly { +public external open class DOMPoint : DOMPointReadOnly, JsAny { constructor(point: DOMPointInit) constructor(x: Double = definedExternally, y: Double = definedExternally, z: Double = definedExternally, w: Double = definedExternally) override var x: Double @@ -5663,7 +5368,7 @@ public external open class DOMPoint : DOMPointReadOnly { /** * Exposes the JavaScript [DOMPointInit](https://developer.mozilla.org/en/docs/Web/API/DOMPointInit) to Kotlin */ -public external interface DOMPointInit { +public external interface DOMPointInit : JsAny { var x: Double? /* = 0.0 */ get() = definedExternally set(value) = definedExternally @@ -5678,22 +5383,13 @@ public external interface DOMPointInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun DOMPointInit(x: Double? = 0.0, y: Double? = 0.0, z: Double? = 0.0, w: Double? = 1.0): DOMPointInit { - val o = newJsObject() - o["x"] = x - o["y"] = y - o["z"] = z - o["w"] = w - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as DOMPointInit -} +@Suppress("UNUSED_PARAMETER") +public fun DOMPointInit(x: Double? = 0.0, y: Double? = 0.0, z: Double? = 0.0, w: Double? = 1.0): DOMPointInit { js("return { x, y, z, w };") } /** * Exposes the JavaScript [DOMRect](https://developer.mozilla.org/en/docs/Web/API/DOMRect) to Kotlin */ -public external open class DOMRect(x: Double = definedExternally, y: Double = definedExternally, width: Double = definedExternally, height: Double = definedExternally) : DOMRectReadOnly { +public external open class DOMRect(x: Double = definedExternally, y: Double = definedExternally, width: Double = definedExternally, height: Double = definedExternally) : DOMRectReadOnly, JsAny { override var x: Double override var y: Double override var width: Double @@ -5703,7 +5399,7 @@ public external open class DOMRect(x: Double = definedExternally, y: Double = de /** * Exposes the JavaScript [DOMRectReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMRectReadOnly) to Kotlin */ -public external open class DOMRectReadOnly(x: Double, y: Double, width: Double, height: Double) { +public external open class DOMRectReadOnly(x: Double, y: Double, width: Double, height: Double) : JsAny { open val x: Double open val y: Double open val width: Double @@ -5714,7 +5410,7 @@ public external open class DOMRectReadOnly(x: Double, y: Double, width: Double, open val left: Double } -public external interface DOMRectInit { +public external interface DOMRectInit : JsAny { var x: Double? /* = 0.0 */ get() = definedExternally set(value) = definedExternally @@ -5729,30 +5425,20 @@ public external interface DOMRectInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun DOMRectInit(x: Double? = 0.0, y: Double? = 0.0, width: Double? = 0.0, height: Double? = 0.0): DOMRectInit { - val o = newJsObject() - o["x"] = x - o["y"] = y - o["width"] = width - o["height"] = height - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as DOMRectInit -} +@Suppress("UNUSED_PARAMETER") +public fun DOMRectInit(x: Double? = 0.0, y: Double? = 0.0, width: Double? = 0.0, height: Double? = 0.0): DOMRectInit { js("return { x, y, width, height };") } -public external interface DOMRectList : ItemArrayLike { +public external interface DOMRectList : ItemArrayLike, JsAny { override fun item(index: Int): DOMRect? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun DOMRectList.get(index: Int): DOMRect? = asDynamic().getAny(index) /** * Exposes the JavaScript [DOMQuad](https://developer.mozilla.org/en/docs/Web/API/DOMQuad) to Kotlin */ -public external open class DOMQuad { +public external open class DOMQuad : JsAny { constructor(p1: DOMPointInit = definedExternally, p2: DOMPointInit = definedExternally, p3: DOMPointInit = definedExternally, p4: DOMPointInit = definedExternally) constructor(rect: DOMRectInit) open val p1: DOMPoint @@ -5765,7 +5451,7 @@ public external open class DOMQuad { /** * Exposes the JavaScript [DOMMatrixReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMMatrixReadOnly) to Kotlin */ -public external open class DOMMatrixReadOnly(numberSequence: Array) { +public external open class DOMMatrixReadOnly(numberSequence: JsArray) : JsAny { open val a: Double open val b: Double open val c: Double @@ -5811,12 +5497,12 @@ public external open class DOMMatrixReadOnly(numberSequence: Array) { /** * Exposes the JavaScript [DOMMatrix](https://developer.mozilla.org/en/docs/Web/API/DOMMatrix) to Kotlin */ -public external open class DOMMatrix() : DOMMatrixReadOnly { +public external open class DOMMatrix() : DOMMatrixReadOnly, JsAny { constructor(transformList: String) constructor(other: DOMMatrixReadOnly) constructor(array32: Float32Array) constructor(array64: Float64Array) - constructor(numberSequence: Array) + constructor(numberSequence: JsArray) override var a: Double override var b: Double override var c: Double @@ -5854,25 +5540,19 @@ public external open class DOMMatrix() : DOMMatrixReadOnly { fun setMatrixValue(transformList: String): DOMMatrix } -public external interface ScrollOptions { +public external interface ScrollOptions : JsAny { var behavior: ScrollBehavior? /* = ScrollBehavior.AUTO */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ScrollOptions(behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollOptions { - val o = newJsObject() - o["behavior"] = behavior - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ScrollOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ScrollOptions(behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollOptions { js("return { behavior };") } /** * Exposes the JavaScript [ScrollToOptions](https://developer.mozilla.org/en/docs/Web/API/ScrollToOptions) to Kotlin */ -public external interface ScrollToOptions : ScrollOptions { +public external interface ScrollToOptions : ScrollOptions, JsAny { var left: Double? get() = definedExternally set(value) = definedExternally @@ -5881,21 +5561,13 @@ public external interface ScrollToOptions : ScrollOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ScrollToOptions(left: Double? = undefined, top: Double? = undefined, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollToOptions { - val o = newJsObject() - o["left"] = left - o["top"] = top - o["behavior"] = behavior - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ScrollToOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ScrollToOptions(left: Double? = undefined, top: Double? = undefined, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollToOptions { js("return { left, top, behavior };") } /** * Exposes the JavaScript [MediaQueryList](https://developer.mozilla.org/en/docs/Web/API/MediaQueryList) to Kotlin */ -public external abstract class MediaQueryList : EventTarget { +public external abstract class MediaQueryList : EventTarget, JsAny { open val media: String open val matches: Boolean open var onchange: ((Event) -> Dynamic?)? @@ -5908,7 +5580,7 @@ public external abstract class MediaQueryList : EventTarget { /** * Exposes the JavaScript [MediaQueryListEvent](https://developer.mozilla.org/en/docs/Web/API/MediaQueryListEvent) to Kotlin */ -public external open class MediaQueryListEvent(type: String, eventInitDict: MediaQueryListEventInit = definedExternally) : Event { +public external open class MediaQueryListEvent(type: String, eventInitDict: MediaQueryListEventInit = definedExternally) : Event, JsAny { open val media: String open val matches: Boolean @@ -5920,7 +5592,7 @@ public external open class MediaQueryListEvent(type: String, eventInitDict: Medi } } -public external interface MediaQueryListEventInit : EventInit { +public external interface MediaQueryListEventInit : EventInit, JsAny { var media: String? /* = "" */ get() = definedExternally set(value) = definedExternally @@ -5929,23 +5601,13 @@ public external interface MediaQueryListEventInit : EventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaQueryListEventInit(media: String? = "", matches: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaQueryListEventInit { - val o = newJsObject() - o["media"] = media - o["matches"] = matches - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaQueryListEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun MediaQueryListEventInit(media: String? = "", matches: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaQueryListEventInit { js("return { media, matches, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [Screen](https://developer.mozilla.org/en/docs/Web/API/Screen) to Kotlin */ -public external abstract class Screen { +public external abstract class Screen : JsAny { open val availWidth: Int open val availHeight: Int open val width: Int @@ -5957,13 +5619,13 @@ public external abstract class Screen { /** * Exposes the JavaScript [CaretPosition](https://developer.mozilla.org/en/docs/Web/API/CaretPosition) to Kotlin */ -public external abstract class CaretPosition { +public external abstract class CaretPosition : JsAny { open val offsetNode: Node open val offset: Int fun getClientRect(): DOMRect? } -public external interface ScrollIntoViewOptions : ScrollOptions { +public external interface ScrollIntoViewOptions : ScrollOptions, JsAny { var block: ScrollLogicalPosition? /* = ScrollLogicalPosition.CENTER */ get() = definedExternally set(value) = definedExternally @@ -5972,37 +5634,22 @@ public external interface ScrollIntoViewOptions : ScrollOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ScrollIntoViewOptions(block: ScrollLogicalPosition? = ScrollLogicalPosition.CENTER, inline: ScrollLogicalPosition? = ScrollLogicalPosition.CENTER, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollIntoViewOptions { - val o = newJsObject() - o["block"] = block - o["inline"] = inline - o["behavior"] = behavior - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ScrollIntoViewOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ScrollIntoViewOptions(block: ScrollLogicalPosition? = ScrollLogicalPosition.CENTER, inline: ScrollLogicalPosition? = ScrollLogicalPosition.CENTER, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollIntoViewOptions { js("return { block, inline, behavior };") } -public external interface BoxQuadOptions { +public external interface BoxQuadOptions : JsAny { var box: CSSBoxType? /* = CSSBoxType.BORDER */ get() = definedExternally set(value) = definedExternally - var relativeTo: Dynamic? + var relativeTo: JsAny? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun BoxQuadOptions(box: CSSBoxType? = CSSBoxType.BORDER, relativeTo: Dynamic? = undefined): BoxQuadOptions { - val o = newJsObject() - o["box"] = box - o["relativeTo"] = relativeTo - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as BoxQuadOptions -} +@Suppress("UNUSED_PARAMETER") +public fun BoxQuadOptions(box: CSSBoxType? = CSSBoxType.BORDER, relativeTo: JsAny? = undefined): BoxQuadOptions { js("return { box, relativeTo };") } -public external interface ConvertCoordinateOptions { +public external interface ConvertCoordinateOptions : JsAny { var fromBox: CSSBoxType? /* = CSSBoxType.BORDER */ get() = definedExternally set(value) = definedExternally @@ -6011,30 +5658,23 @@ public external interface ConvertCoordinateOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ConvertCoordinateOptions(fromBox: CSSBoxType? = CSSBoxType.BORDER, toBox: CSSBoxType? = CSSBoxType.BORDER): ConvertCoordinateOptions { - val o = newJsObject() - o["fromBox"] = fromBox - o["toBox"] = toBox - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ConvertCoordinateOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ConvertCoordinateOptions(fromBox: CSSBoxType? = CSSBoxType.BORDER, toBox: CSSBoxType? = CSSBoxType.BORDER): ConvertCoordinateOptions { js("return { fromBox, toBox };") } /** * Exposes the JavaScript [GeometryUtils](https://developer.mozilla.org/en/docs/Web/API/GeometryUtils) to Kotlin */ -public external interface GeometryUtils { - fun getBoxQuads(options: BoxQuadOptions = definedExternally): Array - fun convertQuadFromNode(quad: Dynamic?, from: Dynamic?, options: ConvertCoordinateOptions = definedExternally): DOMQuad - fun convertRectFromNode(rect: DOMRectReadOnly, from: Dynamic?, options: ConvertCoordinateOptions = definedExternally): DOMQuad - fun convertPointFromNode(point: DOMPointInit, from: Dynamic?, options: ConvertCoordinateOptions = definedExternally): DOMPoint +public external interface GeometryUtils : JsAny { + fun getBoxQuads(options: BoxQuadOptions = definedExternally): JsArray + fun convertQuadFromNode(quad: JsAny?, from: JsAny?, options: ConvertCoordinateOptions = definedExternally): DOMQuad + fun convertRectFromNode(rect: DOMRectReadOnly, from: JsAny?, options: ConvertCoordinateOptions = definedExternally): DOMQuad + fun convertPointFromNode(point: DOMPointInit, from: JsAny?, options: ConvertCoordinateOptions = definedExternally): DOMPoint } /** * Exposes the JavaScript [Touch](https://developer.mozilla.org/en/docs/Web/API/Touch) to Kotlin */ -public external abstract class Touch { +public external abstract class Touch : JsAny { open val identifier: Int open val target: EventTarget open val screenX: Int @@ -6046,15 +5686,14 @@ public external abstract class Touch { open val region: String? } -public external abstract class TouchList : ItemArrayLike { +public external abstract class TouchList : ItemArrayLike, JsAny { override fun item(index: Int): Touch? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun TouchList.get(index: Int): Touch? = asDynamic().getAny(index) -public external open class TouchEvent : UIEvent { +public external open class TouchEvent : UIEvent, JsAny { open val touches: TouchList open val targetTouches: TouchList open val changedTouches: TouchList @@ -6074,7 +5713,7 @@ public external open class TouchEvent : UIEvent { /** * Exposes the JavaScript [Image](https://developer.mozilla.org/en/docs/Web/API/Image) to Kotlin */ -public external open class Image(width: Int = definedExternally, height: Int = definedExternally) : HTMLImageElement { +public external open class Image(width: Int = definedExternally, height: Int = definedExternally) : HTMLImageElement, JsAny { override var onabort: ((Event) -> Dynamic?)? override var onblur: ((FocusEvent) -> Dynamic?)? override var oncancel: ((Event) -> Dynamic?)? @@ -6097,7 +5736,7 @@ public external open class Image(width: Int = definedExternally, height: Int = d override var ondurationchange: ((Event) -> Dynamic?)? override var onemptied: ((Event) -> Dynamic?)? override var onended: ((Event) -> Dynamic?)? - override var onerror: ((Dynamic?, String, Int, Int, Any?) -> Dynamic?)? + override var onerror: ((JsAny?, String, Int, Int, JsAny?) -> Dynamic?)? override var onfocus: ((FocusEvent) -> Dynamic?)? override var oninput: ((InputEvent) -> Dynamic?)? override var oninvalid: ((Event) -> Dynamic?)? @@ -6159,18 +5798,18 @@ public external open class Image(width: Int = definedExternally, height: Int = d override val previousElementSibling: Element? override val nextElementSibling: Element? override val assignedSlot: HTMLSlotElement? - override fun prepend(vararg nodes: Dynamic?) - override fun append(vararg nodes: Dynamic?) + override fun prepend(vararg nodes: JsAny?) + override fun append(vararg nodes: JsAny?) override fun querySelector(selectors: String): Element? override fun querySelectorAll(selectors: String): NodeList - override fun before(vararg nodes: Dynamic?) - override fun after(vararg nodes: Dynamic?) - override fun replaceWith(vararg nodes: Dynamic?) + override fun before(vararg nodes: JsAny?) + override fun after(vararg nodes: JsAny?) + override fun replaceWith(vararg nodes: JsAny?) override fun remove() - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: Dynamic?, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint companion object { val ELEMENT_NODE: Short @@ -6194,7 +5833,7 @@ public external open class Image(width: Int = definedExternally, height: Int = d } } -public external open class Audio(src: String = definedExternally) : HTMLAudioElement { +public external open class Audio(src: String = definedExternally) : HTMLAudioElement, JsAny { override var onabort: ((Event) -> Dynamic?)? override var onblur: ((FocusEvent) -> Dynamic?)? override var oncancel: ((Event) -> Dynamic?)? @@ -6217,7 +5856,7 @@ public external open class Audio(src: String = definedExternally) : HTMLAudioEle override var ondurationchange: ((Event) -> Dynamic?)? override var onemptied: ((Event) -> Dynamic?)? override var onended: ((Event) -> Dynamic?)? - override var onerror: ((Dynamic?, String, Int, Int, Any?) -> Dynamic?)? + override var onerror: ((JsAny?, String, Int, Int, JsAny?) -> Dynamic?)? override var onfocus: ((FocusEvent) -> Dynamic?)? override var oninput: ((InputEvent) -> Dynamic?)? override var oninvalid: ((Event) -> Dynamic?)? @@ -6279,18 +5918,18 @@ public external open class Audio(src: String = definedExternally) : HTMLAudioEle override val previousElementSibling: Element? override val nextElementSibling: Element? override val assignedSlot: HTMLSlotElement? - override fun prepend(vararg nodes: Dynamic?) - override fun append(vararg nodes: Dynamic?) + override fun prepend(vararg nodes: JsAny?) + override fun append(vararg nodes: JsAny?) override fun querySelector(selectors: String): Element? override fun querySelectorAll(selectors: String): NodeList - override fun before(vararg nodes: Dynamic?) - override fun after(vararg nodes: Dynamic?) - override fun replaceWith(vararg nodes: Dynamic?) + override fun before(vararg nodes: JsAny?) + override fun after(vararg nodes: JsAny?) + override fun replaceWith(vararg nodes: JsAny?) override fun remove() - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: Dynamic?, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint companion object { val NETWORK_EMPTY: Short @@ -6326,7 +5965,7 @@ public external open class Audio(src: String = definedExternally) : HTMLAudioEle /** * Exposes the JavaScript [Option](https://developer.mozilla.org/en/docs/Web/API/Option) to Kotlin */ -public external open class Option(text: String = definedExternally, value: String = definedExternally, defaultSelected: Boolean = definedExternally, selected: Boolean = definedExternally) : HTMLOptionElement { +public external open class Option(text: String = definedExternally, value: String = definedExternally, defaultSelected: Boolean = definedExternally, selected: Boolean = definedExternally) : HTMLOptionElement, JsAny { override var onabort: ((Event) -> Dynamic?)? override var onblur: ((FocusEvent) -> Dynamic?)? override var oncancel: ((Event) -> Dynamic?)? @@ -6349,7 +5988,7 @@ public external open class Option(text: String = definedExternally, value: Strin override var ondurationchange: ((Event) -> Dynamic?)? override var onemptied: ((Event) -> Dynamic?)? override var onended: ((Event) -> Dynamic?)? - override var onerror: ((Dynamic?, String, Int, Int, Any?) -> Dynamic?)? + override var onerror: ((JsAny?, String, Int, Int, JsAny?) -> Dynamic?)? override var onfocus: ((FocusEvent) -> Dynamic?)? override var oninput: ((InputEvent) -> Dynamic?)? override var oninvalid: ((Event) -> Dynamic?)? @@ -6411,18 +6050,18 @@ public external open class Option(text: String = definedExternally, value: Strin override val previousElementSibling: Element? override val nextElementSibling: Element? override val assignedSlot: HTMLSlotElement? - override fun prepend(vararg nodes: Dynamic?) - override fun append(vararg nodes: Dynamic?) + override fun prepend(vararg nodes: JsAny?) + override fun append(vararg nodes: JsAny?) override fun querySelector(selectors: String): Element? override fun querySelectorAll(selectors: String): NodeList - override fun before(vararg nodes: Dynamic?) - override fun after(vararg nodes: Dynamic?) - override fun replaceWith(vararg nodes: Dynamic?) + override fun before(vararg nodes: JsAny?) + override fun after(vararg nodes: JsAny?) + override fun replaceWith(vararg nodes: JsAny?) override fun remove() - override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array - override fun convertQuadFromNode(quad: Dynamic?, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertRectFromNode(rect: DOMRectReadOnly, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad - override fun convertPointFromNode(point: DOMPointInit, from: Dynamic?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint + override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): JsArray + override fun convertQuadFromNode(quad: JsAny?, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertRectFromNode(rect: DOMRectReadOnly, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad + override fun convertPointFromNode(point: DOMPointInit, from: JsAny?, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint companion object { val ELEMENT_NODE: Short @@ -6473,7 +6112,7 @@ public external interface HTMLOrSVGScriptElement /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface DocumentReadyState { +public external interface DocumentReadyState : JsAny { companion object } @@ -6486,7 +6125,7 @@ public inline val DocumentReadyState.Companion.COMPLETE: DocumentReadyState get( /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface CanPlayTypeResult { +public external interface CanPlayTypeResult : JsAny { companion object } @@ -6499,7 +6138,7 @@ public inline val CanPlayTypeResult.Companion.PROBABLY: CanPlayTypeResult get() /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface TextTrackMode { +public external interface TextTrackMode : JsAny { companion object } @@ -6512,7 +6151,7 @@ public inline val TextTrackMode.Companion.SHOWING: TextTrackMode get() = "showin /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface TextTrackKind { +public external interface TextTrackKind : JsAny { companion object } @@ -6529,7 +6168,7 @@ public inline val TextTrackKind.Companion.METADATA: TextTrackKind get() = "metad /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface SelectionMode { +public external interface SelectionMode : JsAny { companion object } @@ -6544,7 +6183,7 @@ public inline val SelectionMode.Companion.PRESERVE: SelectionMode get() = "prese /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface CanvasFillRule { +public external interface CanvasFillRule : JsAny { companion object } @@ -6555,7 +6194,7 @@ public inline val CanvasFillRule.Companion.EVENODD: CanvasFillRule get() = "even /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ImageSmoothingQuality { +public external interface ImageSmoothingQuality : JsAny { companion object } @@ -6568,7 +6207,7 @@ public inline val ImageSmoothingQuality.Companion.HIGH: ImageSmoothingQuality ge /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface CanvasLineCap { +public external interface CanvasLineCap : JsAny { companion object } @@ -6581,7 +6220,7 @@ public inline val CanvasLineCap.Companion.SQUARE: CanvasLineCap get() = "square" /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface CanvasLineJoin { +public external interface CanvasLineJoin : JsAny { companion object } @@ -6594,7 +6233,7 @@ public inline val CanvasLineJoin.Companion.MITER: CanvasLineJoin get() = "miter" /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface CanvasTextAlign { +public external interface CanvasTextAlign : JsAny { companion object } @@ -6611,7 +6250,7 @@ public inline val CanvasTextAlign.Companion.CENTER: CanvasTextAlign get() = "cen /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface CanvasTextBaseline { +public external interface CanvasTextBaseline : JsAny { companion object } @@ -6630,7 +6269,7 @@ public inline val CanvasTextBaseline.Companion.BOTTOM: CanvasTextBaseline get() /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface CanvasDirection { +public external interface CanvasDirection : JsAny { companion object } @@ -6643,7 +6282,7 @@ public inline val CanvasDirection.Companion.INHERIT: CanvasDirection get() = "in /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ScrollRestoration { +public external interface ScrollRestoration : JsAny { companion object } @@ -6654,7 +6293,7 @@ public inline val ScrollRestoration.Companion.MANUAL: ScrollRestoration get() = /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ImageOrientation { +public external interface ImageOrientation : JsAny { companion object } @@ -6665,7 +6304,7 @@ public inline val ImageOrientation.Companion.FLIPY: ImageOrientation get() = "fl /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface PremultiplyAlpha { +public external interface PremultiplyAlpha : JsAny { companion object } @@ -6678,7 +6317,7 @@ public inline val PremultiplyAlpha.Companion.DEFAULT: PremultiplyAlpha get() = " /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ColorSpaceConversion { +public external interface ColorSpaceConversion : JsAny { companion object } @@ -6689,7 +6328,7 @@ public inline val ColorSpaceConversion.Companion.DEFAULT: ColorSpaceConversion g /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ResizeQuality { +public external interface ResizeQuality : JsAny { companion object } @@ -6704,7 +6343,7 @@ public inline val ResizeQuality.Companion.HIGH: ResizeQuality get() = "high".asD /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface BinaryType { +public external interface BinaryType : JsAny { companion object } @@ -6715,7 +6354,7 @@ public inline val BinaryType.Companion.ARRAYBUFFER: BinaryType get() = "arraybuf /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface WorkerType { +public external interface WorkerType : JsAny { companion object } @@ -6726,7 +6365,7 @@ public inline val WorkerType.Companion.MODULE: WorkerType get() = "module".asDyn /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ShadowRootMode { +public external interface ShadowRootMode : JsAny { companion object } @@ -6737,7 +6376,7 @@ public inline val ShadowRootMode.Companion.CLOSED: ShadowRootMode get() = "close /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ScrollBehavior { +public external interface ScrollBehavior : JsAny { companion object } @@ -6750,7 +6389,7 @@ public inline val ScrollBehavior.Companion.SMOOTH: ScrollBehavior get() = "smoot /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ScrollLogicalPosition { +public external interface ScrollLogicalPosition : JsAny { companion object } @@ -6765,7 +6404,7 @@ public inline val ScrollLogicalPosition.Companion.NEAREST: ScrollLogicalPosition /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface CSSBoxType { +public external interface CSSBoxType : JsAny { companion object } diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.mediacapture.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.mediacapture.kt index 10b77100785..4f754a3ced0 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.mediacapture.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.mediacapture.kt @@ -16,16 +16,16 @@ import org.w3c.dom.events.* /** * Exposes the JavaScript [MediaStream](https://developer.mozilla.org/en/docs/Web/API/MediaStream) to Kotlin */ -public external open class MediaStream() : EventTarget, MediaProvider { +public external open class MediaStream() : EventTarget, MediaProvider, JsAny { constructor(stream: MediaStream) - constructor(tracks: Array) + constructor(tracks: JsArray) open val id: String open val active: Boolean var onaddtrack: ((MediaStreamTrackEvent) -> Dynamic?)? var onremovetrack: ((MediaStreamTrackEvent) -> Dynamic?)? - fun getAudioTracks(): Array - fun getVideoTracks(): Array - fun getTracks(): Array + fun getAudioTracks(): JsArray + fun getVideoTracks(): JsArray + fun getTracks(): JsArray fun getTrackById(trackId: String): MediaStreamTrack? fun addTrack(track: MediaStreamTrack) fun removeTrack(track: MediaStreamTrack) @@ -35,7 +35,7 @@ public external open class MediaStream() : EventTarget, MediaProvider { /** * Exposes the JavaScript [MediaStreamTrack](https://developer.mozilla.org/en/docs/Web/API/MediaStreamTrack) to Kotlin */ -public external abstract class MediaStreamTrack : EventTarget { +public external abstract class MediaStreamTrack : EventTarget, JsAny { open val kind: String open val id: String open val label: String @@ -51,13 +51,13 @@ public external abstract class MediaStreamTrack : EventTarget { fun getCapabilities(): MediaTrackCapabilities fun getConstraints(): MediaTrackConstraints fun getSettings(): MediaTrackSettings - fun applyConstraints(constraints: MediaTrackConstraints = definedExternally): Promise + fun applyConstraints(constraints: MediaTrackConstraints = definedExternally): Promise } /** * Exposes the JavaScript [MediaTrackSupportedConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaTrackSupportedConstraints) to Kotlin */ -public external interface MediaTrackSupportedConstraints { +public external interface MediaTrackSupportedConstraints : JsAny { var width: Boolean? /* = true */ get() = definedExternally set(value) = definedExternally @@ -108,31 +108,10 @@ public external interface MediaTrackSupportedConstraints { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaTrackSupportedConstraints(width: Boolean? = true, height: Boolean? = true, aspectRatio: Boolean? = true, frameRate: Boolean? = true, facingMode: Boolean? = true, resizeMode: Boolean? = true, volume: Boolean? = true, sampleRate: Boolean? = true, sampleSize: Boolean? = true, echoCancellation: Boolean? = true, autoGainControl: Boolean? = true, noiseSuppression: Boolean? = true, latency: Boolean? = true, channelCount: Boolean? = true, deviceId: Boolean? = true, groupId: Boolean? = true): MediaTrackSupportedConstraints { - val o = newJsObject() - o["width"] = width - o["height"] = height - o["aspectRatio"] = aspectRatio - o["frameRate"] = frameRate - o["facingMode"] = facingMode - o["resizeMode"] = resizeMode - o["volume"] = volume - o["sampleRate"] = sampleRate - o["sampleSize"] = sampleSize - o["echoCancellation"] = echoCancellation - o["autoGainControl"] = autoGainControl - o["noiseSuppression"] = noiseSuppression - o["latency"] = latency - o["channelCount"] = channelCount - o["deviceId"] = deviceId - o["groupId"] = groupId - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaTrackSupportedConstraints -} +@Suppress("UNUSED_PARAMETER") +public fun MediaTrackSupportedConstraints(width: Boolean? = true, height: Boolean? = true, aspectRatio: Boolean? = true, frameRate: Boolean? = true, facingMode: Boolean? = true, resizeMode: Boolean? = true, volume: Boolean? = true, sampleRate: Boolean? = true, sampleSize: Boolean? = true, echoCancellation: Boolean? = true, autoGainControl: Boolean? = true, noiseSuppression: Boolean? = true, latency: Boolean? = true, channelCount: Boolean? = true, deviceId: Boolean? = true, groupId: Boolean? = true): MediaTrackSupportedConstraints { js("return { width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId };") } -public external interface MediaTrackCapabilities { +public external interface MediaTrackCapabilities : JsAny { var width: ULongRange? get() = definedExternally set(value) = definedExternally @@ -145,10 +124,10 @@ public external interface MediaTrackCapabilities { var frameRate: DoubleRange? get() = definedExternally set(value) = definedExternally - var facingMode: Array? + var facingMode: JsArray? get() = definedExternally set(value) = definedExternally - var resizeMode: Array? + var resizeMode: JsArray? get() = definedExternally set(value) = definedExternally var volume: DoubleRange? @@ -160,13 +139,13 @@ public external interface MediaTrackCapabilities { var sampleSize: ULongRange? get() = definedExternally set(value) = definedExternally - var echoCancellation: Array? + var echoCancellation: JsArray? get() = definedExternally set(value) = definedExternally - var autoGainControl: Array? + var autoGainControl: JsArray? get() = definedExternally set(value) = definedExternally - var noiseSuppression: Array? + var noiseSuppression: JsArray? get() = definedExternally set(value) = definedExternally var latency: DoubleRange? @@ -183,143 +162,79 @@ public external interface MediaTrackCapabilities { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaTrackCapabilities(width: ULongRange? = undefined, height: ULongRange? = undefined, aspectRatio: DoubleRange? = undefined, frameRate: DoubleRange? = undefined, facingMode: Array? = undefined, resizeMode: Array? = undefined, volume: DoubleRange? = undefined, sampleRate: ULongRange? = undefined, sampleSize: ULongRange? = undefined, echoCancellation: Array? = undefined, autoGainControl: Array? = undefined, noiseSuppression: Array? = undefined, latency: DoubleRange? = undefined, channelCount: ULongRange? = undefined, deviceId: String? = undefined, groupId: String? = undefined): MediaTrackCapabilities { - val o = newJsObject() - o["width"] = width - o["height"] = height - o["aspectRatio"] = aspectRatio - o["frameRate"] = frameRate - o["facingMode"] = facingMode - o["resizeMode"] = resizeMode - o["volume"] = volume - o["sampleRate"] = sampleRate - o["sampleSize"] = sampleSize - o["echoCancellation"] = echoCancellation - o["autoGainControl"] = autoGainControl - o["noiseSuppression"] = noiseSuppression - o["latency"] = latency - o["channelCount"] = channelCount - o["deviceId"] = deviceId - o["groupId"] = groupId - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaTrackCapabilities -} +@Suppress("UNUSED_PARAMETER") +public fun MediaTrackCapabilities(width: ULongRange? = undefined, height: ULongRange? = undefined, aspectRatio: DoubleRange? = undefined, frameRate: DoubleRange? = undefined, facingMode: JsArray? = undefined, resizeMode: JsArray? = undefined, volume: DoubleRange? = undefined, sampleRate: ULongRange? = undefined, sampleSize: ULongRange? = undefined, echoCancellation: JsArray? = undefined, autoGainControl: JsArray? = undefined, noiseSuppression: JsArray? = undefined, latency: DoubleRange? = undefined, channelCount: ULongRange? = undefined, deviceId: String? = undefined, groupId: String? = undefined): MediaTrackCapabilities { js("return { width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId };") } /** * Exposes the JavaScript [MediaTrackConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaTrackConstraints) to Kotlin */ -public external interface MediaTrackConstraints : MediaTrackConstraintSet { - var advanced: Array? +public external interface MediaTrackConstraints : MediaTrackConstraintSet, JsAny { + var advanced: JsArray? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaTrackConstraints(advanced: Array? = undefined, width: Dynamic? = undefined, height: Dynamic? = undefined, aspectRatio: Dynamic? = undefined, frameRate: Dynamic? = undefined, facingMode: Dynamic? = undefined, resizeMode: Dynamic? = undefined, volume: Dynamic? = undefined, sampleRate: Dynamic? = undefined, sampleSize: Dynamic? = undefined, echoCancellation: Dynamic? = undefined, autoGainControl: Dynamic? = undefined, noiseSuppression: Dynamic? = undefined, latency: Dynamic? = undefined, channelCount: Dynamic? = undefined, deviceId: Dynamic? = undefined, groupId: Dynamic? = undefined): MediaTrackConstraints { - val o = newJsObject() - o["advanced"] = advanced - o["width"] = width - o["height"] = height - o["aspectRatio"] = aspectRatio - o["frameRate"] = frameRate - o["facingMode"] = facingMode - o["resizeMode"] = resizeMode - o["volume"] = volume - o["sampleRate"] = sampleRate - o["sampleSize"] = sampleSize - o["echoCancellation"] = echoCancellation - o["autoGainControl"] = autoGainControl - o["noiseSuppression"] = noiseSuppression - o["latency"] = latency - o["channelCount"] = channelCount - o["deviceId"] = deviceId - o["groupId"] = groupId - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaTrackConstraints -} +@Suppress("UNUSED_PARAMETER") +public fun MediaTrackConstraints(advanced: JsArray? = undefined, width: JsAny? = undefined, height: JsAny? = undefined, aspectRatio: JsAny? = undefined, frameRate: JsAny? = undefined, facingMode: JsAny? = undefined, resizeMode: JsAny? = undefined, volume: JsAny? = undefined, sampleRate: JsAny? = undefined, sampleSize: JsAny? = undefined, echoCancellation: JsAny? = undefined, autoGainControl: JsAny? = undefined, noiseSuppression: JsAny? = undefined, latency: JsAny? = undefined, channelCount: JsAny? = undefined, deviceId: JsAny? = undefined, groupId: JsAny? = undefined): MediaTrackConstraints { js("return { advanced, width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId };") } -public external interface MediaTrackConstraintSet { - var width: Dynamic? +public external interface MediaTrackConstraintSet : JsAny { + var width: JsAny? get() = definedExternally set(value) = definedExternally - var height: Dynamic? + var height: JsAny? get() = definedExternally set(value) = definedExternally - var aspectRatio: Dynamic? + var aspectRatio: JsAny? get() = definedExternally set(value) = definedExternally - var frameRate: Dynamic? + var frameRate: JsAny? get() = definedExternally set(value) = definedExternally - var facingMode: Dynamic? + var facingMode: JsAny? get() = definedExternally set(value) = definedExternally - var resizeMode: Dynamic? + var resizeMode: JsAny? get() = definedExternally set(value) = definedExternally - var volume: Dynamic? + var volume: JsAny? get() = definedExternally set(value) = definedExternally - var sampleRate: Dynamic? + var sampleRate: JsAny? get() = definedExternally set(value) = definedExternally - var sampleSize: Dynamic? + var sampleSize: JsAny? get() = definedExternally set(value) = definedExternally - var echoCancellation: Dynamic? + var echoCancellation: JsAny? get() = definedExternally set(value) = definedExternally - var autoGainControl: Dynamic? + var autoGainControl: JsAny? get() = definedExternally set(value) = definedExternally - var noiseSuppression: Dynamic? + var noiseSuppression: JsAny? get() = definedExternally set(value) = definedExternally - var latency: Dynamic? + var latency: JsAny? get() = definedExternally set(value) = definedExternally - var channelCount: Dynamic? + var channelCount: JsAny? get() = definedExternally set(value) = definedExternally - var deviceId: Dynamic? + var deviceId: JsAny? get() = definedExternally set(value) = definedExternally - var groupId: Dynamic? + var groupId: JsAny? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaTrackConstraintSet(width: Dynamic? = undefined, height: Dynamic? = undefined, aspectRatio: Dynamic? = undefined, frameRate: Dynamic? = undefined, facingMode: Dynamic? = undefined, resizeMode: Dynamic? = undefined, volume: Dynamic? = undefined, sampleRate: Dynamic? = undefined, sampleSize: Dynamic? = undefined, echoCancellation: Dynamic? = undefined, autoGainControl: Dynamic? = undefined, noiseSuppression: Dynamic? = undefined, latency: Dynamic? = undefined, channelCount: Dynamic? = undefined, deviceId: Dynamic? = undefined, groupId: Dynamic? = undefined): MediaTrackConstraintSet { - val o = newJsObject() - o["width"] = width - o["height"] = height - o["aspectRatio"] = aspectRatio - o["frameRate"] = frameRate - o["facingMode"] = facingMode - o["resizeMode"] = resizeMode - o["volume"] = volume - o["sampleRate"] = sampleRate - o["sampleSize"] = sampleSize - o["echoCancellation"] = echoCancellation - o["autoGainControl"] = autoGainControl - o["noiseSuppression"] = noiseSuppression - o["latency"] = latency - o["channelCount"] = channelCount - o["deviceId"] = deviceId - o["groupId"] = groupId - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaTrackConstraintSet -} +@Suppress("UNUSED_PARAMETER") +public fun MediaTrackConstraintSet(width: JsAny? = undefined, height: JsAny? = undefined, aspectRatio: JsAny? = undefined, frameRate: JsAny? = undefined, facingMode: JsAny? = undefined, resizeMode: JsAny? = undefined, volume: JsAny? = undefined, sampleRate: JsAny? = undefined, sampleSize: JsAny? = undefined, echoCancellation: JsAny? = undefined, autoGainControl: JsAny? = undefined, noiseSuppression: JsAny? = undefined, latency: JsAny? = undefined, channelCount: JsAny? = undefined, deviceId: JsAny? = undefined, groupId: JsAny? = undefined): MediaTrackConstraintSet { js("return { width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId };") } /** * Exposes the JavaScript [MediaTrackSettings](https://developer.mozilla.org/en/docs/Web/API/MediaTrackSettings) to Kotlin */ -public external interface MediaTrackSettings { +public external interface MediaTrackSettings : JsAny { var width: Int? get() = definedExternally set(value) = definedExternally @@ -370,34 +285,13 @@ public external interface MediaTrackSettings { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaTrackSettings(width: Int? = undefined, height: Int? = undefined, aspectRatio: Double? = undefined, frameRate: Double? = undefined, facingMode: String? = undefined, resizeMode: String? = undefined, volume: Double? = undefined, sampleRate: Int? = undefined, sampleSize: Int? = undefined, echoCancellation: Boolean? = undefined, autoGainControl: Boolean? = undefined, noiseSuppression: Boolean? = undefined, latency: Double? = undefined, channelCount: Int? = undefined, deviceId: String? = undefined, groupId: String? = undefined): MediaTrackSettings { - val o = newJsObject() - o["width"] = width - o["height"] = height - o["aspectRatio"] = aspectRatio - o["frameRate"] = frameRate - o["facingMode"] = facingMode - o["resizeMode"] = resizeMode - o["volume"] = volume - o["sampleRate"] = sampleRate - o["sampleSize"] = sampleSize - o["echoCancellation"] = echoCancellation - o["autoGainControl"] = autoGainControl - o["noiseSuppression"] = noiseSuppression - o["latency"] = latency - o["channelCount"] = channelCount - o["deviceId"] = deviceId - o["groupId"] = groupId - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaTrackSettings -} +@Suppress("UNUSED_PARAMETER") +public fun MediaTrackSettings(width: Int? = undefined, height: Int? = undefined, aspectRatio: Double? = undefined, frameRate: Double? = undefined, facingMode: String? = undefined, resizeMode: String? = undefined, volume: Double? = undefined, sampleRate: Int? = undefined, sampleSize: Int? = undefined, echoCancellation: Boolean? = undefined, autoGainControl: Boolean? = undefined, noiseSuppression: Boolean? = undefined, latency: Double? = undefined, channelCount: Int? = undefined, deviceId: String? = undefined, groupId: String? = undefined): MediaTrackSettings { js("return { width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId };") } /** * Exposes the JavaScript [MediaStreamTrackEvent](https://developer.mozilla.org/en/docs/Web/API/MediaStreamTrackEvent) to Kotlin */ -public external open class MediaStreamTrackEvent(type: String, eventInitDict: MediaStreamTrackEventInit) : Event { +public external open class MediaStreamTrackEvent(type: String, eventInitDict: MediaStreamTrackEventInit) : Event, JsAny { open val track: MediaStreamTrack companion object { @@ -408,24 +302,15 @@ public external open class MediaStreamTrackEvent(type: String, eventInitDict: Me } } -public external interface MediaStreamTrackEventInit : EventInit { +public external interface MediaStreamTrackEventInit : EventInit, JsAny { var track: MediaStreamTrack? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaStreamTrackEventInit(track: MediaStreamTrack?, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaStreamTrackEventInit { - val o = newJsObject() - o["track"] = track - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaStreamTrackEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun MediaStreamTrackEventInit(track: MediaStreamTrack?, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaStreamTrackEventInit { js("return { track, bubbles, cancelable, composed };") } -public external open class OverconstrainedErrorEvent(type: String, eventInitDict: OverconstrainedErrorEventInit) : Event { - open val error: Dynamic? +public external open class OverconstrainedErrorEvent(type: String, eventInitDict: OverconstrainedErrorEventInit) : Event, JsAny { + open val error: JsAny? companion object { val NONE: Short @@ -435,30 +320,21 @@ public external open class OverconstrainedErrorEvent(type: String, eventInitDict } } -public external interface OverconstrainedErrorEventInit : EventInit { - var error: Dynamic? /* = null */ +public external interface OverconstrainedErrorEventInit : EventInit, JsAny { + var error: JsAny? /* = null */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun OverconstrainedErrorEventInit(error: Dynamic? = null.unsafeCast(), bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): OverconstrainedErrorEventInit { - val o = newJsObject() - o["error"] = error - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as OverconstrainedErrorEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun OverconstrainedErrorEventInit(error: JsAny? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): OverconstrainedErrorEventInit { js("return { error, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [MediaDevices](https://developer.mozilla.org/en/docs/Web/API/MediaDevices) to Kotlin */ -public external abstract class MediaDevices : EventTarget { +public external abstract class MediaDevices : EventTarget, JsAny { open var ondevicechange: ((Event) -> Dynamic?)? - fun enumerateDevices(): Promise> + fun enumerateDevices(): Promise> fun getSupportedConstraints(): MediaTrackSupportedConstraints fun getUserMedia(constraints: MediaStreamConstraints = definedExternally): Promise } @@ -466,54 +342,47 @@ public external abstract class MediaDevices : EventTarget { /** * Exposes the JavaScript [MediaDeviceInfo](https://developer.mozilla.org/en/docs/Web/API/MediaDeviceInfo) to Kotlin */ -public external abstract class MediaDeviceInfo { +public external abstract class MediaDeviceInfo : JsAny { open val deviceId: String open val kind: MediaDeviceKind open val label: String open val groupId: String - fun toJSON(): Dynamic? + fun toJSON(): JsAny } -public external abstract class InputDeviceInfo : MediaDeviceInfo { +public external abstract class InputDeviceInfo : MediaDeviceInfo, JsAny { fun getCapabilities(): MediaTrackCapabilities } /** * Exposes the JavaScript [MediaStreamConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaStreamConstraints) to Kotlin */ -public external interface MediaStreamConstraints { - var video: Dynamic? /* = false */ +public external interface MediaStreamConstraints : JsAny { + var video: JsAny? /* = false */ get() = definedExternally set(value) = definedExternally - var audio: Dynamic? /* = false */ + var audio: JsAny? /* = false */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun MediaStreamConstraints(video: Dynamic? = false.unsafeCast(), audio: Dynamic? = false.unsafeCast()): MediaStreamConstraints { - val o = newJsObject() - o["video"] = video - o["audio"] = audio - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as MediaStreamConstraints -} +@Suppress("UNUSED_PARAMETER") +public fun MediaStreamConstraints(video: JsAny? = false.toJsBoolean(), audio: JsAny? = false.toJsBoolean()): MediaStreamConstraints { js("return { video, audio };") } -public external interface ConstrainablePattern { +public external interface ConstrainablePattern : JsAny { var onoverconstrained: ((Event) -> Dynamic?)? get() = definedExternally set(value) = definedExternally fun getCapabilities(): Capabilities fun getConstraints(): Constraints fun getSettings(): Settings - fun applyConstraints(constraints: Constraints = definedExternally): Promise + fun applyConstraints(constraints: Constraints = definedExternally): Promise } /** * Exposes the JavaScript [DoubleRange](https://developer.mozilla.org/en/docs/Web/API/DoubleRange) to Kotlin */ -public external interface DoubleRange { +public external interface DoubleRange : JsAny { var max: Double? get() = definedExternally set(value) = definedExternally @@ -522,17 +391,10 @@ public external interface DoubleRange { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun DoubleRange(max: Double? = undefined, min: Double? = undefined): DoubleRange { - val o = newJsObject() - o["max"] = max - o["min"] = min - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as DoubleRange -} +@Suppress("UNUSED_PARAMETER") +public fun DoubleRange(max: Double? = undefined, min: Double? = undefined): DoubleRange { js("return { max, min };") } -public external interface ConstrainDoubleRange : DoubleRange { +public external interface ConstrainDoubleRange : DoubleRange, JsAny { var exact: Double? get() = definedExternally set(value) = definedExternally @@ -541,19 +403,10 @@ public external interface ConstrainDoubleRange : DoubleRange { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ConstrainDoubleRange(exact: Double? = undefined, ideal: Double? = undefined, max: Double? = undefined, min: Double? = undefined): ConstrainDoubleRange { - val o = newJsObject() - o["exact"] = exact - o["ideal"] = ideal - o["max"] = max - o["min"] = min - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ConstrainDoubleRange -} +@Suppress("UNUSED_PARAMETER") +public fun ConstrainDoubleRange(exact: Double? = undefined, ideal: Double? = undefined, max: Double? = undefined, min: Double? = undefined): ConstrainDoubleRange { js("return { exact, ideal, max, min };") } -public external interface ULongRange { +public external interface ULongRange : JsAny { var max: Int? get() = definedExternally set(value) = definedExternally @@ -562,17 +415,10 @@ public external interface ULongRange { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ULongRange(max: Int? = undefined, min: Int? = undefined): ULongRange { - val o = newJsObject() - o["max"] = max - o["min"] = min - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ULongRange -} +@Suppress("UNUSED_PARAMETER") +public fun ULongRange(max: Int? = undefined, min: Int? = undefined): ULongRange { js("return { max, min };") } -public external interface ConstrainULongRange : ULongRange { +public external interface ConstrainULongRange : ULongRange, JsAny { var exact: Int? get() = definedExternally set(value) = definedExternally @@ -581,22 +427,13 @@ public external interface ConstrainULongRange : ULongRange { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ConstrainULongRange(exact: Int? = undefined, ideal: Int? = undefined, max: Int? = undefined, min: Int? = undefined): ConstrainULongRange { - val o = newJsObject() - o["exact"] = exact - o["ideal"] = ideal - o["max"] = max - o["min"] = min - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ConstrainULongRange -} +@Suppress("UNUSED_PARAMETER") +public fun ConstrainULongRange(exact: Int? = undefined, ideal: Int? = undefined, max: Int? = undefined, min: Int? = undefined): ConstrainULongRange { js("return { exact, ideal, max, min };") } /** * Exposes the JavaScript [ConstrainBooleanParameters](https://developer.mozilla.org/en/docs/Web/API/ConstrainBooleanParameters) to Kotlin */ -public external interface ConstrainBooleanParameters { +public external interface ConstrainBooleanParameters : JsAny { var exact: Boolean? get() = definedExternally set(value) = definedExternally @@ -605,87 +442,52 @@ public external interface ConstrainBooleanParameters { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ConstrainBooleanParameters(exact: Boolean? = undefined, ideal: Boolean? = undefined): ConstrainBooleanParameters { - val o = newJsObject() - o["exact"] = exact - o["ideal"] = ideal - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ConstrainBooleanParameters -} +@Suppress("UNUSED_PARAMETER") +public fun ConstrainBooleanParameters(exact: Boolean? = undefined, ideal: Boolean? = undefined): ConstrainBooleanParameters { js("return { exact, ideal };") } /** * Exposes the JavaScript [ConstrainDOMStringParameters](https://developer.mozilla.org/en/docs/Web/API/ConstrainDOMStringParameters) to Kotlin */ -public external interface ConstrainDOMStringParameters { - var exact: Dynamic? +public external interface ConstrainDOMStringParameters : JsAny { + var exact: JsAny? get() = definedExternally set(value) = definedExternally - var ideal: Dynamic? + var ideal: JsAny? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ConstrainDOMStringParameters(exact: Dynamic? = undefined, ideal: Dynamic? = undefined): ConstrainDOMStringParameters { - val o = newJsObject() - o["exact"] = exact - o["ideal"] = ideal - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ConstrainDOMStringParameters -} +@Suppress("UNUSED_PARAMETER") +public fun ConstrainDOMStringParameters(exact: JsAny? = undefined, ideal: JsAny? = undefined): ConstrainDOMStringParameters { js("return { exact, ideal };") } -public external interface Capabilities +public external interface Capabilities : JsAny -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun Capabilities(): Capabilities { - val o = newJsObject() - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as Capabilities -} +@Suppress("UNUSED_PARAMETER") +public fun Capabilities(): Capabilities { js("return { };") } -public external interface Settings +public external interface Settings : JsAny -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun Settings(): Settings { - val o = newJsObject() - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as Settings -} +@Suppress("UNUSED_PARAMETER") +public fun Settings(): Settings { js("return { };") } -public external interface ConstraintSet +public external interface ConstraintSet : JsAny -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ConstraintSet(): ConstraintSet { - val o = newJsObject() - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ConstraintSet -} +@Suppress("UNUSED_PARAMETER") +public fun ConstraintSet(): ConstraintSet { js("return { };") } -public external interface Constraints : ConstraintSet { - var advanced: Array? +public external interface Constraints : ConstraintSet, JsAny { + var advanced: JsArray? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun Constraints(advanced: Array? = undefined): Constraints { - val o = newJsObject() - o["advanced"] = advanced - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as Constraints -} +@Suppress("UNUSED_PARAMETER") +public fun Constraints(advanced: JsArray? = undefined): Constraints { js("return { advanced };") } /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface MediaStreamTrackState { +public external interface MediaStreamTrackState : JsAny { companion object } @@ -696,7 +498,7 @@ public inline val MediaStreamTrackState.Companion.ENDED: MediaStreamTrackState g /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface VideoFacingModeEnum { +public external interface VideoFacingModeEnum : JsAny { companion object } @@ -711,7 +513,7 @@ public inline val VideoFacingModeEnum.Companion.RIGHT: VideoFacingModeEnum get() /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface VideoResizeModeEnum { +public external interface VideoResizeModeEnum : JsAny { companion object } @@ -722,7 +524,7 @@ public inline val VideoResizeModeEnum.Companion.CROP_AND_SCALE: VideoResizeModeE /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface MediaDeviceKind { +public external interface MediaDeviceKind : JsAny { companion object } diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.mediasource.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.mediasource.kt index 4ef9a8182ac..5a75956aadb 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.mediasource.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.mediasource.kt @@ -16,7 +16,7 @@ import org.w3c.dom.events.* /** * Exposes the JavaScript [MediaSource](https://developer.mozilla.org/en/docs/Web/API/MediaSource) to Kotlin */ -public external open class MediaSource : EventTarget, MediaProvider { +public external open class MediaSource : EventTarget, MediaProvider, JsAny { open val sourceBuffers: SourceBufferList open val activeSourceBuffers: SourceBufferList open val readyState: ReadyState @@ -38,7 +38,7 @@ public external open class MediaSource : EventTarget, MediaProvider { /** * Exposes the JavaScript [SourceBuffer](https://developer.mozilla.org/en/docs/Web/API/SourceBuffer) to Kotlin */ -public external abstract class SourceBuffer : EventTarget { +public external abstract class SourceBuffer : EventTarget, JsAny { open var mode: AppendMode open val updating: Boolean open val buffered: TimeRanges @@ -53,7 +53,7 @@ public external abstract class SourceBuffer : EventTarget { open var onupdateend: ((Event) -> Dynamic?)? open var onerror: ((Event) -> Dynamic?)? open var onabort: ((Event) -> Dynamic?)? - fun appendBuffer(data: Dynamic?) + fun appendBuffer(data: JsAny?) fun abort() fun remove(start: Double, end: Double) } @@ -61,20 +61,19 @@ public external abstract class SourceBuffer : EventTarget { /** * Exposes the JavaScript [SourceBufferList](https://developer.mozilla.org/en/docs/Web/API/SourceBufferList) to Kotlin */ -public external abstract class SourceBufferList : EventTarget { +public external abstract class SourceBufferList : EventTarget, JsAny { open val length: Int open var onaddsourcebuffer: ((Event) -> Dynamic?)? open var onremovesourcebuffer: ((Event) -> Dynamic?)? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SourceBufferList.get(index: Int): SourceBuffer? = asDynamic().getAny(index) /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ReadyState { +public external interface ReadyState : JsAny { companion object } @@ -87,7 +86,7 @@ public inline val ReadyState.Companion.ENDED: ReadyState get() = "ended".asDynam /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface EndOfStreamError { +public external interface EndOfStreamError : JsAny { companion object } @@ -98,7 +97,7 @@ public inline val EndOfStreamError.Companion.DECODE: EndOfStreamError get() = "d /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface AppendMode { +public external interface AppendMode : JsAny { companion object } diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.parsing.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.parsing.kt index b7d1fca34fd..789ae01a414 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.parsing.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.parsing.kt @@ -15,13 +15,13 @@ import org.w3c.dom.* /** * Exposes the JavaScript [DOMParser](https://developer.mozilla.org/en/docs/Web/API/DOMParser) to Kotlin */ -public external open class DOMParser { - fun parseFromString(str: String, type: Dynamic?): Document +public external open class DOMParser : JsAny { + fun parseFromString(str: String, type: JsAny?): Document } /** * Exposes the JavaScript [XMLSerializer](https://developer.mozilla.org/en/docs/Web/API/XMLSerializer) to Kotlin */ -public external open class XMLSerializer { +public external open class XMLSerializer : JsAny { fun serializeToString(root: Node): String } \ No newline at end of file diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.pointerevents.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.pointerevents.kt index 4931ef64c43..8149b5f493b 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.pointerevents.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.pointerevents.kt @@ -13,7 +13,7 @@ import org.khronos.webgl.* import org.w3c.dom.* import org.w3c.dom.events.* -public external interface PointerEventInit : MouseEventInit { +public external interface PointerEventInit : MouseEventInit, JsAny { var pointerId: Int? /* = 0 */ get() = definedExternally set(value) = definedExternally @@ -46,55 +46,13 @@ public external interface PointerEventInit : MouseEventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun PointerEventInit(pointerId: Int? = 0, width: Double? = 1.0, height: Double? = 1.0, pressure: Float? = 0f, tangentialPressure: Float? = 0f, tiltX: Int? = 0, tiltY: Int? = 0, twist: Int? = 0, pointerType: String? = "", isPrimary: Boolean? = false, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PointerEventInit { - val o = newJsObject() - o["pointerId"] = pointerId - o["width"] = width - o["height"] = height - o["pressure"] = pressure - o["tangentialPressure"] = tangentialPressure - o["tiltX"] = tiltX - o["tiltY"] = tiltY - o["twist"] = twist - o["pointerType"] = pointerType - o["isPrimary"] = isPrimary - o["screenX"] = screenX - o["screenY"] = screenY - o["clientX"] = clientX - o["clientY"] = clientY - o["button"] = button - o["buttons"] = buttons - o["relatedTarget"] = relatedTarget - o["region"] = region - o["ctrlKey"] = ctrlKey - o["shiftKey"] = shiftKey - o["altKey"] = altKey - o["metaKey"] = metaKey - o["modifierAltGraph"] = modifierAltGraph - o["modifierCapsLock"] = modifierCapsLock - o["modifierFn"] = modifierFn - o["modifierFnLock"] = modifierFnLock - o["modifierHyper"] = modifierHyper - o["modifierNumLock"] = modifierNumLock - o["modifierScrollLock"] = modifierScrollLock - o["modifierSuper"] = modifierSuper - o["modifierSymbol"] = modifierSymbol - o["modifierSymbolLock"] = modifierSymbolLock - o["view"] = view - o["detail"] = detail - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as PointerEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun PointerEventInit(pointerId: Int? = 0, width: Double? = 1.0, height: Double? = 1.0, pressure: Float? = 0f, tangentialPressure: Float? = 0f, tiltX: Int? = 0, tiltY: Int? = 0, twist: Int? = 0, pointerType: String? = "", isPrimary: Boolean? = false, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, region: String? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PointerEventInit { js("return { pointerId, width, height, pressure, tangentialPressure, tiltX, tiltY, twist, pointerType, isPrimary, screenX, screenY, clientX, clientY, button, buttons, relatedTarget, region, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [PointerEvent](https://developer.mozilla.org/en/docs/Web/API/PointerEvent) to Kotlin */ -public external open class PointerEvent(type: String, eventInitDict: PointerEventInit = definedExternally) : MouseEvent { +public external open class PointerEvent(type: String, eventInitDict: PointerEventInit = definedExternally) : MouseEvent, JsAny { open val pointerId: Int open val width: Double open val height: Double diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.svg.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.svg.kt index 47ad789f906..e162939dcba 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.svg.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.svg.kt @@ -16,7 +16,7 @@ import org.w3c.dom.css.* /** * Exposes the JavaScript [SVGElement](https://developer.mozilla.org/en/docs/Web/API/SVGElement) to Kotlin */ -public external abstract class SVGElement : Element, ElementCSSInlineStyle, GlobalEventHandlers, SVGElementInstance { +public external abstract class SVGElement : Element, ElementCSSInlineStyle, GlobalEventHandlers, SVGElementInstance, JsAny { open val dataset: DOMStringMap open val ownerSVGElement: SVGSVGElement? open val viewportElement: SVGElement? @@ -46,7 +46,7 @@ public external abstract class SVGElement : Element, ElementCSSInlineStyle, Glob } } -public external interface SVGBoundingBoxOptions { +public external interface SVGBoundingBoxOptions : JsAny { var fill: Boolean? /* = true */ get() = definedExternally set(value) = definedExternally @@ -61,22 +61,13 @@ public external interface SVGBoundingBoxOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun SVGBoundingBoxOptions(fill: Boolean? = true, stroke: Boolean? = false, markers: Boolean? = false, clipped: Boolean? = false): SVGBoundingBoxOptions { - val o = newJsObject() - o["fill"] = fill - o["stroke"] = stroke - o["markers"] = markers - o["clipped"] = clipped - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as SVGBoundingBoxOptions -} +@Suppress("UNUSED_PARAMETER") +public fun SVGBoundingBoxOptions(fill: Boolean? = true, stroke: Boolean? = false, markers: Boolean? = false, clipped: Boolean? = false): SVGBoundingBoxOptions { js("return { fill, stroke, markers, clipped };") } /** * Exposes the JavaScript [SVGGraphicsElement](https://developer.mozilla.org/en/docs/Web/API/SVGGraphicsElement) to Kotlin */ -public external abstract class SVGGraphicsElement : SVGElement, SVGTests { +public external abstract class SVGGraphicsElement : SVGElement, SVGTests, JsAny { open val transform: SVGAnimatedTransformList fun getBBox(options: SVGBoundingBoxOptions = definedExternally): DOMRect fun getCTM(): DOMMatrix? @@ -107,7 +98,7 @@ public external abstract class SVGGraphicsElement : SVGElement, SVGTests { /** * Exposes the JavaScript [SVGGeometryElement](https://developer.mozilla.org/en/docs/Web/API/SVGGeometryElement) to Kotlin */ -public external abstract class SVGGeometryElement : SVGGraphicsElement { +public external abstract class SVGGeometryElement : SVGGraphicsElement, JsAny { open val pathLength: SVGAnimatedNumber fun isPointInFill(point: DOMPoint): Boolean fun isPointInStroke(point: DOMPoint): Boolean @@ -139,14 +130,14 @@ public external abstract class SVGGeometryElement : SVGGraphicsElement { /** * Exposes the JavaScript [SVGNumber](https://developer.mozilla.org/en/docs/Web/API/SVGNumber) to Kotlin */ -public external abstract class SVGNumber { +public external abstract class SVGNumber : JsAny { open var value: Float } /** * Exposes the JavaScript [SVGLength](https://developer.mozilla.org/en/docs/Web/API/SVGLength) to Kotlin */ -public external abstract class SVGLength { +public external abstract class SVGLength : JsAny { open val unitType: Short open var value: Float open var valueInSpecifiedUnits: Float @@ -172,7 +163,7 @@ public external abstract class SVGLength { /** * Exposes the JavaScript [SVGAngle](https://developer.mozilla.org/en/docs/Web/API/SVGAngle) to Kotlin */ -public external abstract class SVGAngle { +public external abstract class SVGAngle : JsAny { open val unitType: Short open var value: Float open var valueInSpecifiedUnits: Float @@ -189,30 +180,28 @@ public external abstract class SVGAngle { } } -public external abstract class SVGNameList { +public external abstract class SVGNameList : JsAny { open val length: Int open val numberOfItems: Int fun clear() - fun initialize(newItem: Dynamic?): Dynamic? - fun insertItemBefore(newItem: Dynamic?, index: Int): Dynamic? - fun replaceItem(newItem: Dynamic?, index: Int): Dynamic? - fun removeItem(index: Int): Dynamic? - fun appendItem(newItem: Dynamic?): Dynamic? - fun getItem(index: Int): Dynamic? + fun initialize(newItem: JsAny?): JsAny? + fun insertItemBefore(newItem: JsAny?, index: Int): JsAny? + fun replaceItem(newItem: JsAny?, index: Int): JsAny? + fun removeItem(index: Int): JsAny? + fun appendItem(newItem: JsAny?): JsAny? + fun getItem(index: Int): JsAny? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly -public inline operator fun SVGNameList.get(index: Int): Dynamic? = asDynamic().getAny(index) +public inline operator fun SVGNameList.get(index: Int): JsAny? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly -public inline operator fun SVGNameList.set(index: Int, newItem: Dynamic?) { asDynamic()[index] = newItem } +public inline operator fun SVGNameList.set(index: Int, newItem: JsAny?) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGNumberList](https://developer.mozilla.org/en/docs/Web/API/SVGNumberList) to Kotlin */ -public external abstract class SVGNumberList { +public external abstract class SVGNumberList : JsAny { open val length: Int open val numberOfItems: Int fun clear() @@ -224,18 +213,16 @@ public external abstract class SVGNumberList { fun getItem(index: Int): SVGNumber } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGNumberList.get(index: Int): SVGNumber? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGNumberList.set(index: Int, newItem: SVGNumber) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGLengthList](https://developer.mozilla.org/en/docs/Web/API/SVGLengthList) to Kotlin */ -public external abstract class SVGLengthList { +public external abstract class SVGLengthList : JsAny { open val length: Int open val numberOfItems: Int fun clear() @@ -247,18 +234,16 @@ public external abstract class SVGLengthList { fun getItem(index: Int): SVGLength } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGLengthList.get(index: Int): SVGLength? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGLengthList.set(index: Int, newItem: SVGLength) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGAnimatedBoolean](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedBoolean) to Kotlin */ -public external abstract class SVGAnimatedBoolean { +public external abstract class SVGAnimatedBoolean : JsAny { open var baseVal: Boolean open val animVal: Boolean } @@ -266,7 +251,7 @@ public external abstract class SVGAnimatedBoolean { /** * Exposes the JavaScript [SVGAnimatedEnumeration](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedEnumeration) to Kotlin */ -public external abstract class SVGAnimatedEnumeration { +public external abstract class SVGAnimatedEnumeration : JsAny { open var baseVal: Short open val animVal: Short } @@ -274,7 +259,7 @@ public external abstract class SVGAnimatedEnumeration { /** * Exposes the JavaScript [SVGAnimatedInteger](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedInteger) to Kotlin */ -public external abstract class SVGAnimatedInteger { +public external abstract class SVGAnimatedInteger : JsAny { open var baseVal: Int open val animVal: Int } @@ -282,7 +267,7 @@ public external abstract class SVGAnimatedInteger { /** * Exposes the JavaScript [SVGAnimatedNumber](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedNumber) to Kotlin */ -public external abstract class SVGAnimatedNumber { +public external abstract class SVGAnimatedNumber : JsAny { open var baseVal: Float open val animVal: Float } @@ -290,7 +275,7 @@ public external abstract class SVGAnimatedNumber { /** * Exposes the JavaScript [SVGAnimatedLength](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedLength) to Kotlin */ -public external abstract class SVGAnimatedLength { +public external abstract class SVGAnimatedLength : JsAny { open val baseVal: SVGLength open val animVal: SVGLength } @@ -298,7 +283,7 @@ public external abstract class SVGAnimatedLength { /** * Exposes the JavaScript [SVGAnimatedAngle](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedAngle) to Kotlin */ -public external abstract class SVGAnimatedAngle { +public external abstract class SVGAnimatedAngle : JsAny { open val baseVal: SVGAngle open val animVal: SVGAngle } @@ -306,7 +291,7 @@ public external abstract class SVGAnimatedAngle { /** * Exposes the JavaScript [SVGAnimatedString](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedString) to Kotlin */ -public external abstract class SVGAnimatedString { +public external abstract class SVGAnimatedString : JsAny { open var baseVal: String open val animVal: String } @@ -314,7 +299,7 @@ public external abstract class SVGAnimatedString { /** * Exposes the JavaScript [SVGAnimatedRect](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedRect) to Kotlin */ -public external abstract class SVGAnimatedRect { +public external abstract class SVGAnimatedRect : JsAny { open val baseVal: DOMRect open val animVal: DOMRectReadOnly } @@ -322,7 +307,7 @@ public external abstract class SVGAnimatedRect { /** * Exposes the JavaScript [SVGAnimatedNumberList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedNumberList) to Kotlin */ -public external abstract class SVGAnimatedNumberList { +public external abstract class SVGAnimatedNumberList : JsAny { open val baseVal: SVGNumberList open val animVal: SVGNumberList } @@ -330,7 +315,7 @@ public external abstract class SVGAnimatedNumberList { /** * Exposes the JavaScript [SVGAnimatedLengthList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedLengthList) to Kotlin */ -public external abstract class SVGAnimatedLengthList { +public external abstract class SVGAnimatedLengthList : JsAny { open val baseVal: SVGLengthList open val animVal: SVGLengthList } @@ -338,7 +323,7 @@ public external abstract class SVGAnimatedLengthList { /** * Exposes the JavaScript [SVGStringList](https://developer.mozilla.org/en/docs/Web/API/SVGStringList) to Kotlin */ -public external abstract class SVGStringList { +public external abstract class SVGStringList : JsAny { open val length: Int open val numberOfItems: Int fun clear() @@ -350,11 +335,9 @@ public external abstract class SVGStringList { fun getItem(index: Int): String } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGStringList.get(index: Int): String? = asDynamic().getString(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGStringList.set(index: Int, newItem: String) { asDynamic()[index] = newItem } @@ -362,7 +345,7 @@ public inline operator fun SVGStringList.set(index: Int, newItem: String) { asDy * Exposes the JavaScript [SVGUnitTypes](https://developer.mozilla.org/en/docs/Web/API/SVGUnitTypes) to Kotlin */ @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface SVGUnitTypes { +public external interface SVGUnitTypes : JsAny { companion object { val SVG_UNIT_TYPE_UNKNOWN: Short val SVG_UNIT_TYPE_USERSPACEONUSE: Short @@ -373,12 +356,12 @@ public external interface SVGUnitTypes { /** * Exposes the JavaScript [SVGTests](https://developer.mozilla.org/en/docs/Web/API/SVGTests) to Kotlin */ -public external interface SVGTests { +public external interface SVGTests : JsAny { val requiredExtensions: SVGStringList val systemLanguage: SVGStringList } -public external interface SVGFitToViewBox { +public external interface SVGFitToViewBox : JsAny { val viewBox: SVGAnimatedRect val preserveAspectRatio: SVGAnimatedPreserveAspectRatio } @@ -387,7 +370,7 @@ public external interface SVGFitToViewBox { * Exposes the JavaScript [SVGZoomAndPan](https://developer.mozilla.org/en/docs/Web/API/SVGZoomAndPan) to Kotlin */ @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface SVGZoomAndPan { +public external interface SVGZoomAndPan : JsAny { var zoomAndPan: Short companion object { @@ -400,14 +383,14 @@ public external interface SVGZoomAndPan { /** * Exposes the JavaScript [SVGURIReference](https://developer.mozilla.org/en/docs/Web/API/SVGURIReference) to Kotlin */ -public external interface SVGURIReference { +public external interface SVGURIReference : JsAny { val href: SVGAnimatedString } /** * Exposes the JavaScript [SVGSVGElement](https://developer.mozilla.org/en/docs/Web/API/SVGSVGElement) to Kotlin */ -public external abstract class SVGSVGElement : SVGGraphicsElement, SVGFitToViewBox, SVGZoomAndPan, WindowEventHandlers { +public external abstract class SVGSVGElement : SVGGraphicsElement, SVGFitToViewBox, SVGZoomAndPan, WindowEventHandlers, JsAny { open val x: SVGAnimatedLength open val y: SVGAnimatedLength open val width: SVGAnimatedLength @@ -461,7 +444,7 @@ public external abstract class SVGSVGElement : SVGGraphicsElement, SVGFitToViewB /** * Exposes the JavaScript [SVGGElement](https://developer.mozilla.org/en/docs/Web/API/SVGGElement) to Kotlin */ -public external abstract class SVGGElement : SVGGraphicsElement { +public external abstract class SVGGElement : SVGGraphicsElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -484,7 +467,7 @@ public external abstract class SVGGElement : SVGGraphicsElement { } } -public external abstract class SVGUnknownElement : SVGGraphicsElement { +public external abstract class SVGUnknownElement : SVGGraphicsElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -510,7 +493,7 @@ public external abstract class SVGUnknownElement : SVGGraphicsElement { /** * Exposes the JavaScript [SVGDefsElement](https://developer.mozilla.org/en/docs/Web/API/SVGDefsElement) to Kotlin */ -public external abstract class SVGDefsElement : SVGGraphicsElement { +public external abstract class SVGDefsElement : SVGGraphicsElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -536,7 +519,7 @@ public external abstract class SVGDefsElement : SVGGraphicsElement { /** * Exposes the JavaScript [SVGDescElement](https://developer.mozilla.org/en/docs/Web/API/SVGDescElement) to Kotlin */ -public external abstract class SVGDescElement : SVGElement { +public external abstract class SVGDescElement : SVGElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -562,7 +545,7 @@ public external abstract class SVGDescElement : SVGElement { /** * Exposes the JavaScript [SVGMetadataElement](https://developer.mozilla.org/en/docs/Web/API/SVGMetadataElement) to Kotlin */ -public external abstract class SVGMetadataElement : SVGElement { +public external abstract class SVGMetadataElement : SVGElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -588,7 +571,7 @@ public external abstract class SVGMetadataElement : SVGElement { /** * Exposes the JavaScript [SVGTitleElement](https://developer.mozilla.org/en/docs/Web/API/SVGTitleElement) to Kotlin */ -public external abstract class SVGTitleElement : SVGElement { +public external abstract class SVGTitleElement : SVGElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -614,7 +597,7 @@ public external abstract class SVGTitleElement : SVGElement { /** * Exposes the JavaScript [SVGSymbolElement](https://developer.mozilla.org/en/docs/Web/API/SVGSymbolElement) to Kotlin */ -public external abstract class SVGSymbolElement : SVGGraphicsElement, SVGFitToViewBox { +public external abstract class SVGSymbolElement : SVGGraphicsElement, SVGFitToViewBox, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -640,7 +623,7 @@ public external abstract class SVGSymbolElement : SVGGraphicsElement, SVGFitToVi /** * Exposes the JavaScript [SVGUseElement](https://developer.mozilla.org/en/docs/Web/API/SVGUseElement) to Kotlin */ -public external abstract class SVGUseElement : SVGGraphicsElement, SVGURIReference { +public external abstract class SVGUseElement : SVGGraphicsElement, SVGURIReference, JsAny { open val x: SVGAnimatedLength open val y: SVGAnimatedLength open val width: SVGAnimatedLength @@ -670,7 +653,7 @@ public external abstract class SVGUseElement : SVGGraphicsElement, SVGURIReferen } } -public external open class SVGUseElementShadowRoot : ShadowRoot { +public external open class SVGUseElementShadowRoot : ShadowRoot, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -693,21 +676,21 @@ public external open class SVGUseElementShadowRoot : ShadowRoot { } } -public external interface SVGElementInstance { +public external interface SVGElementInstance : JsAny { val correspondingElement: SVGElement? get() = definedExternally val correspondingUseElement: SVGUseElement? get() = definedExternally } -public external open class ShadowAnimation(source: Dynamic?, newTarget: Dynamic?) { - open val sourceAnimation: Dynamic? +public external open class ShadowAnimation(source: JsAny?, newTarget: JsAny?) : JsAny { + open val sourceAnimation: JsAny? } /** * Exposes the JavaScript [SVGSwitchElement](https://developer.mozilla.org/en/docs/Web/API/SVGSwitchElement) to Kotlin */ -public external abstract class SVGSwitchElement : SVGGraphicsElement { +public external abstract class SVGSwitchElement : SVGGraphicsElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -730,14 +713,14 @@ public external abstract class SVGSwitchElement : SVGGraphicsElement { } } -public external interface GetSVGDocument { +public external interface GetSVGDocument : JsAny { fun getSVGDocument(): Document } /** * Exposes the JavaScript [SVGStyleElement](https://developer.mozilla.org/en/docs/Web/API/SVGStyleElement) to Kotlin */ -public external abstract class SVGStyleElement : SVGElement, LinkStyle { +public external abstract class SVGStyleElement : SVGElement, LinkStyle, JsAny { open var type: String open var media: String open var title: String @@ -767,7 +750,7 @@ public external abstract class SVGStyleElement : SVGElement, LinkStyle { /** * Exposes the JavaScript [SVGTransform](https://developer.mozilla.org/en/docs/Web/API/SVGTransform) to Kotlin */ -public external abstract class SVGTransform { +public external abstract class SVGTransform : JsAny { open val type: Short open val matrix: DOMMatrix open val angle: Float @@ -792,7 +775,7 @@ public external abstract class SVGTransform { /** * Exposes the JavaScript [SVGTransformList](https://developer.mozilla.org/en/docs/Web/API/SVGTransformList) to Kotlin */ -public external abstract class SVGTransformList { +public external abstract class SVGTransformList : JsAny { open val length: Int open val numberOfItems: Int fun clear() @@ -806,18 +789,16 @@ public external abstract class SVGTransformList { fun getItem(index: Int): SVGTransform } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGTransformList.get(index: Int): SVGTransform? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGTransformList.set(index: Int, newItem: SVGTransform) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGAnimatedTransformList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedTransformList) to Kotlin */ -public external abstract class SVGAnimatedTransformList { +public external abstract class SVGAnimatedTransformList : JsAny { open val baseVal: SVGTransformList open val animVal: SVGTransformList } @@ -825,7 +806,7 @@ public external abstract class SVGAnimatedTransformList { /** * Exposes the JavaScript [SVGPreserveAspectRatio](https://developer.mozilla.org/en/docs/Web/API/SVGPreserveAspectRatio) to Kotlin */ -public external abstract class SVGPreserveAspectRatio { +public external abstract class SVGPreserveAspectRatio : JsAny { open var align: Short open var meetOrSlice: Short @@ -850,7 +831,7 @@ public external abstract class SVGPreserveAspectRatio { /** * Exposes the JavaScript [SVGAnimatedPreserveAspectRatio](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedPreserveAspectRatio) to Kotlin */ -public external abstract class SVGAnimatedPreserveAspectRatio { +public external abstract class SVGAnimatedPreserveAspectRatio : JsAny { open val baseVal: SVGPreserveAspectRatio open val animVal: SVGPreserveAspectRatio } @@ -858,7 +839,7 @@ public external abstract class SVGAnimatedPreserveAspectRatio { /** * Exposes the JavaScript [SVGPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGPathElement) to Kotlin */ -public external abstract class SVGPathElement : SVGGeometryElement { +public external abstract class SVGPathElement : SVGGeometryElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -884,7 +865,7 @@ public external abstract class SVGPathElement : SVGGeometryElement { /** * Exposes the JavaScript [SVGRectElement](https://developer.mozilla.org/en/docs/Web/API/SVGRectElement) to Kotlin */ -public external abstract class SVGRectElement : SVGGeometryElement { +public external abstract class SVGRectElement : SVGGeometryElement, JsAny { open val x: SVGAnimatedLength open val y: SVGAnimatedLength open val width: SVGAnimatedLength @@ -917,7 +898,7 @@ public external abstract class SVGRectElement : SVGGeometryElement { /** * Exposes the JavaScript [SVGCircleElement](https://developer.mozilla.org/en/docs/Web/API/SVGCircleElement) to Kotlin */ -public external abstract class SVGCircleElement : SVGGeometryElement { +public external abstract class SVGCircleElement : SVGGeometryElement, JsAny { open val cx: SVGAnimatedLength open val cy: SVGAnimatedLength open val r: SVGAnimatedLength @@ -947,7 +928,7 @@ public external abstract class SVGCircleElement : SVGGeometryElement { /** * Exposes the JavaScript [SVGEllipseElement](https://developer.mozilla.org/en/docs/Web/API/SVGEllipseElement) to Kotlin */ -public external abstract class SVGEllipseElement : SVGGeometryElement { +public external abstract class SVGEllipseElement : SVGGeometryElement, JsAny { open val cx: SVGAnimatedLength open val cy: SVGAnimatedLength open val rx: SVGAnimatedLength @@ -978,7 +959,7 @@ public external abstract class SVGEllipseElement : SVGGeometryElement { /** * Exposes the JavaScript [SVGLineElement](https://developer.mozilla.org/en/docs/Web/API/SVGLineElement) to Kotlin */ -public external abstract class SVGLineElement : SVGGeometryElement { +public external abstract class SVGLineElement : SVGGeometryElement, JsAny { open val x1: SVGAnimatedLength open val y1: SVGAnimatedLength open val x2: SVGAnimatedLength @@ -1009,7 +990,7 @@ public external abstract class SVGLineElement : SVGGeometryElement { /** * Exposes the JavaScript [SVGMeshElement](https://developer.mozilla.org/en/docs/Web/API/SVGMeshElement) to Kotlin */ -public external abstract class SVGMeshElement : SVGGeometryElement, SVGURIReference { +public external abstract class SVGMeshElement : SVGGeometryElement, SVGURIReference, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -1035,12 +1016,12 @@ public external abstract class SVGMeshElement : SVGGeometryElement, SVGURIRefere /** * Exposes the JavaScript [SVGAnimatedPoints](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedPoints) to Kotlin */ -public external interface SVGAnimatedPoints { +public external interface SVGAnimatedPoints : JsAny { val points: SVGPointList val animatedPoints: SVGPointList } -public external abstract class SVGPointList { +public external abstract class SVGPointList : JsAny { open val length: Int open val numberOfItems: Int fun clear() @@ -1052,18 +1033,16 @@ public external abstract class SVGPointList { fun getItem(index: Int): DOMPoint } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGPointList.get(index: Int): DOMPoint? = asDynamic().getAny(index) -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun SVGPointList.set(index: Int, newItem: DOMPoint) { asDynamic()[index] = newItem } /** * Exposes the JavaScript [SVGPolylineElement](https://developer.mozilla.org/en/docs/Web/API/SVGPolylineElement) to Kotlin */ -public external abstract class SVGPolylineElement : SVGGeometryElement, SVGAnimatedPoints { +public external abstract class SVGPolylineElement : SVGGeometryElement, SVGAnimatedPoints, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -1089,7 +1068,7 @@ public external abstract class SVGPolylineElement : SVGGeometryElement, SVGAnima /** * Exposes the JavaScript [SVGPolygonElement](https://developer.mozilla.org/en/docs/Web/API/SVGPolygonElement) to Kotlin */ -public external abstract class SVGPolygonElement : SVGGeometryElement, SVGAnimatedPoints { +public external abstract class SVGPolygonElement : SVGGeometryElement, SVGAnimatedPoints, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -1115,7 +1094,7 @@ public external abstract class SVGPolygonElement : SVGGeometryElement, SVGAnimat /** * Exposes the JavaScript [SVGTextContentElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextContentElement) to Kotlin */ -public external abstract class SVGTextContentElement : SVGGraphicsElement { +public external abstract class SVGTextContentElement : SVGGraphicsElement, JsAny { open val textLength: SVGAnimatedLength open val lengthAdjust: SVGAnimatedEnumeration fun getNumberOfChars(): Int @@ -1156,7 +1135,7 @@ public external abstract class SVGTextContentElement : SVGGraphicsElement { /** * Exposes the JavaScript [SVGTextPositioningElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextPositioningElement) to Kotlin */ -public external abstract class SVGTextPositioningElement : SVGTextContentElement { +public external abstract class SVGTextPositioningElement : SVGTextContentElement, JsAny { open val x: SVGAnimatedLengthList open val y: SVGAnimatedLengthList open val dx: SVGAnimatedLengthList @@ -1191,7 +1170,7 @@ public external abstract class SVGTextPositioningElement : SVGTextContentElement /** * Exposes the JavaScript [SVGTextElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextElement) to Kotlin */ -public external abstract class SVGTextElement : SVGTextPositioningElement { +public external abstract class SVGTextElement : SVGTextPositioningElement, JsAny { companion object { val LENGTHADJUST_UNKNOWN: Short val LENGTHADJUST_SPACING: Short @@ -1220,7 +1199,7 @@ public external abstract class SVGTextElement : SVGTextPositioningElement { /** * Exposes the JavaScript [SVGTSpanElement](https://developer.mozilla.org/en/docs/Web/API/SVGTSpanElement) to Kotlin */ -public external abstract class SVGTSpanElement : SVGTextPositioningElement { +public external abstract class SVGTSpanElement : SVGTextPositioningElement, JsAny { companion object { val LENGTHADJUST_UNKNOWN: Short val LENGTHADJUST_SPACING: Short @@ -1249,7 +1228,7 @@ public external abstract class SVGTSpanElement : SVGTextPositioningElement { /** * Exposes the JavaScript [SVGTextPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextPathElement) to Kotlin */ -public external abstract class SVGTextPathElement : SVGTextContentElement, SVGURIReference { +public external abstract class SVGTextPathElement : SVGTextContentElement, SVGURIReference, JsAny { open val startOffset: SVGAnimatedLength open val method: SVGAnimatedEnumeration open val spacing: SVGAnimatedEnumeration @@ -1288,7 +1267,7 @@ public external abstract class SVGTextPathElement : SVGTextContentElement, SVGUR /** * Exposes the JavaScript [SVGImageElement](https://developer.mozilla.org/en/docs/Web/API/SVGImageElement) to Kotlin */ -public external abstract class SVGImageElement : SVGGraphicsElement, SVGURIReference, HTMLOrSVGImageElement { +public external abstract class SVGImageElement : SVGGraphicsElement, SVGURIReference, HTMLOrSVGImageElement, JsAny { open val x: SVGAnimatedLength open val y: SVGAnimatedLength open val width: SVGAnimatedLength @@ -1321,7 +1300,7 @@ public external abstract class SVGImageElement : SVGGraphicsElement, SVGURIRefer /** * Exposes the JavaScript [SVGForeignObjectElement](https://developer.mozilla.org/en/docs/Web/API/SVGForeignObjectElement) to Kotlin */ -public external abstract class SVGForeignObjectElement : SVGGraphicsElement { +public external abstract class SVGForeignObjectElement : SVGGraphicsElement, JsAny { open val x: SVGAnimatedLength open val y: SVGAnimatedLength open val width: SVGAnimatedLength @@ -1349,7 +1328,7 @@ public external abstract class SVGForeignObjectElement : SVGGraphicsElement { } } -public external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox { +public external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox, JsAny { open val refX: SVGAnimatedLength open val refY: SVGAnimatedLength open val markerUnits: SVGAnimatedEnumeration @@ -1392,7 +1371,7 @@ public external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox { /** * Exposes the JavaScript [SVGSolidcolorElement](https://developer.mozilla.org/en/docs/Web/API/SVGSolidcolorElement) to Kotlin */ -public external abstract class SVGSolidcolorElement : SVGElement { +public external abstract class SVGSolidcolorElement : SVGElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -1418,7 +1397,7 @@ public external abstract class SVGSolidcolorElement : SVGElement { /** * Exposes the JavaScript [SVGGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGGradientElement) to Kotlin */ -public external abstract class SVGGradientElement : SVGElement, SVGURIReference, SVGUnitTypes { +public external abstract class SVGGradientElement : SVGElement, SVGURIReference, SVGUnitTypes, JsAny { open val gradientUnits: SVGAnimatedEnumeration open val gradientTransform: SVGAnimatedTransformList open val spreadMethod: SVGAnimatedEnumeration @@ -1455,7 +1434,7 @@ public external abstract class SVGGradientElement : SVGElement, SVGURIReference, /** * Exposes the JavaScript [SVGLinearGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGLinearGradientElement) to Kotlin */ -public external abstract class SVGLinearGradientElement : SVGGradientElement { +public external abstract class SVGLinearGradientElement : SVGGradientElement, JsAny { open val x1: SVGAnimatedLength open val y1: SVGAnimatedLength open val x2: SVGAnimatedLength @@ -1493,7 +1472,7 @@ public external abstract class SVGLinearGradientElement : SVGGradientElement { /** * Exposes the JavaScript [SVGRadialGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGRadialGradientElement) to Kotlin */ -public external abstract class SVGRadialGradientElement : SVGGradientElement { +public external abstract class SVGRadialGradientElement : SVGGradientElement, JsAny { open val cx: SVGAnimatedLength open val cy: SVGAnimatedLength open val r: SVGAnimatedLength @@ -1530,7 +1509,7 @@ public external abstract class SVGRadialGradientElement : SVGGradientElement { } } -public external abstract class SVGMeshGradientElement : SVGGradientElement { +public external abstract class SVGMeshGradientElement : SVGGradientElement, JsAny { companion object { val SVG_SPREADMETHOD_UNKNOWN: Short val SVG_SPREADMETHOD_PAD: Short @@ -1560,7 +1539,7 @@ public external abstract class SVGMeshGradientElement : SVGGradientElement { } } -public external abstract class SVGMeshrowElement : SVGElement { +public external abstract class SVGMeshrowElement : SVGElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -1583,7 +1562,7 @@ public external abstract class SVGMeshrowElement : SVGElement { } } -public external abstract class SVGMeshpatchElement : SVGElement { +public external abstract class SVGMeshpatchElement : SVGElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -1609,7 +1588,7 @@ public external abstract class SVGMeshpatchElement : SVGElement { /** * Exposes the JavaScript [SVGStopElement](https://developer.mozilla.org/en/docs/Web/API/SVGStopElement) to Kotlin */ -public external abstract class SVGStopElement : SVGElement { +public external abstract class SVGStopElement : SVGElement, JsAny { open val offset: SVGAnimatedNumber companion object { @@ -1637,7 +1616,7 @@ public external abstract class SVGStopElement : SVGElement { /** * Exposes the JavaScript [SVGPatternElement](https://developer.mozilla.org/en/docs/Web/API/SVGPatternElement) to Kotlin */ -public external abstract class SVGPatternElement : SVGElement, SVGFitToViewBox, SVGURIReference, SVGUnitTypes { +public external abstract class SVGPatternElement : SVGElement, SVGFitToViewBox, SVGURIReference, SVGUnitTypes, JsAny { open val patternUnits: SVGAnimatedEnumeration open val patternContentUnits: SVGAnimatedEnumeration open val patternTransform: SVGAnimatedTransformList @@ -1671,7 +1650,7 @@ public external abstract class SVGPatternElement : SVGElement, SVGFitToViewBox, } } -public external abstract class SVGHatchElement : SVGElement { +public external abstract class SVGHatchElement : SVGElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -1694,7 +1673,7 @@ public external abstract class SVGHatchElement : SVGElement { } } -public external abstract class SVGHatchpathElement : SVGElement { +public external abstract class SVGHatchpathElement : SVGElement, JsAny { companion object { val ELEMENT_NODE: Short val ATTRIBUTE_NODE: Short @@ -1720,7 +1699,7 @@ public external abstract class SVGHatchpathElement : SVGElement { /** * Exposes the JavaScript [SVGCursorElement](https://developer.mozilla.org/en/docs/Web/API/SVGCursorElement) to Kotlin */ -public external abstract class SVGCursorElement : SVGElement, SVGURIReference { +public external abstract class SVGCursorElement : SVGElement, SVGURIReference, JsAny { open val x: SVGAnimatedLength open val y: SVGAnimatedLength @@ -1749,7 +1728,7 @@ public external abstract class SVGCursorElement : SVGElement, SVGURIReference { /** * Exposes the JavaScript [SVGScriptElement](https://developer.mozilla.org/en/docs/Web/API/SVGScriptElement) to Kotlin */ -public external abstract class SVGScriptElement : SVGElement, SVGURIReference, HTMLOrSVGScriptElement { +public external abstract class SVGScriptElement : SVGElement, SVGURIReference, HTMLOrSVGScriptElement, JsAny { open var type: String open var crossOrigin: String? @@ -1778,7 +1757,7 @@ public external abstract class SVGScriptElement : SVGElement, SVGURIReference, H /** * Exposes the JavaScript [SVGAElement](https://developer.mozilla.org/en/docs/Web/API/SVGAElement) to Kotlin */ -public external abstract class SVGAElement : SVGGraphicsElement, SVGURIReference { +public external abstract class SVGAElement : SVGGraphicsElement, SVGURIReference, JsAny { open val target: SVGAnimatedString open val download: SVGAnimatedString open val rel: SVGAnimatedString @@ -1811,7 +1790,7 @@ public external abstract class SVGAElement : SVGGraphicsElement, SVGURIReference /** * Exposes the JavaScript [SVGViewElement](https://developer.mozilla.org/en/docs/Web/API/SVGViewElement) to Kotlin */ -public external abstract class SVGViewElement : SVGElement, SVGFitToViewBox, SVGZoomAndPan { +public external abstract class SVGViewElement : SVGElement, SVGFitToViewBox, SVGZoomAndPan, JsAny { companion object { val SVG_ZOOMANDPAN_UNKNOWN: Short val SVG_ZOOMANDPAN_DISABLE: Short diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.url.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.url.kt index 27262c03397..e5ee9c14dd3 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.url.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.dom.url.kt @@ -16,7 +16,7 @@ import org.w3c.files.* /** * Exposes the JavaScript [URL](https://developer.mozilla.org/en/docs/Web/API/URL) to Kotlin */ -public external open class URL(url: String, base: String = definedExternally) { +public external open class URL(url: String, base: String = definedExternally) : JsAny { var href: String open val origin: String var protocol: String @@ -43,11 +43,11 @@ public external open class URL(url: String, base: String = definedExternally) { /** * Exposes the JavaScript [URLSearchParams](https://developer.mozilla.org/en/docs/Web/API/URLSearchParams) to Kotlin */ -public external open class URLSearchParams(init: Dynamic? = definedExternally) { +public external open class URLSearchParams(init: JsAny? = definedExternally) : JsAny { fun append(name: String, value: String) fun delete(name: String) fun get(name: String): String? - fun getAll(name: String): Array + fun getAll(name: String): JsArray fun has(name: String): Boolean fun set(name: String, value: String) } \ No newline at end of file diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.fetch.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.fetch.kt index 05dcf0e052c..ef4acaa0356 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.fetch.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.fetch.kt @@ -16,7 +16,7 @@ import org.w3c.xhr.* /** * Exposes the JavaScript [Headers](https://developer.mozilla.org/en/docs/Web/API/Headers) to Kotlin */ -public external open class Headers(init: Dynamic? = definedExternally) { +public external open class Headers(init: JsAny? = definedExternally) : JsAny { fun append(name: String, value: String) fun delete(name: String) fun get(name: String): String? @@ -27,26 +27,26 @@ public external open class Headers(init: Dynamic? = definedExternally) { /** * Exposes the JavaScript [Body](https://developer.mozilla.org/en/docs/Web/API/Body) to Kotlin */ -public external interface Body { +public external interface Body : JsAny { val bodyUsed: Boolean fun arrayBuffer(): Promise fun blob(): Promise fun formData(): Promise - fun json(): Promise - fun text(): Promise + fun json(): Promise + fun text(): Promise } /** * Exposes the JavaScript [Request](https://developer.mozilla.org/en/docs/Web/API/Request) to Kotlin */ -public external open class Request(input: Dynamic?, init: RequestInit = definedExternally) : Body { +public external open class Request(input: JsAny?, init: RequestInit = definedExternally) : Body, JsAny { open val method: String open val url: String open val headers: Headers open val type: RequestType open val destination: RequestDestination open val referrer: String - open val referrerPolicy: Dynamic? + open val referrerPolicy: JsAny? open val mode: RequestMode open val credentials: RequestCredentials open val cache: RequestCache @@ -58,24 +58,24 @@ public external open class Request(input: Dynamic?, init: RequestInit = definedE override fun arrayBuffer(): Promise override fun blob(): Promise override fun formData(): Promise - override fun json(): Promise - override fun text(): Promise + override fun json(): Promise + override fun text(): Promise } -public external interface RequestInit { +public external interface RequestInit : JsAny { var method: String? get() = definedExternally set(value) = definedExternally - var headers: Dynamic? + var headers: JsAny? get() = definedExternally set(value) = definedExternally - var body: Dynamic? + var body: JsAny? get() = definedExternally set(value) = definedExternally var referrer: String? get() = definedExternally set(value) = definedExternally - var referrerPolicy: Dynamic? + var referrerPolicy: JsAny? get() = definedExternally set(value) = definedExternally var mode: RequestMode? @@ -96,35 +96,18 @@ public external interface RequestInit { var keepalive: Boolean? get() = definedExternally set(value) = definedExternally - var window: Any? + var window: JsAny? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun RequestInit(method: String? = undefined, headers: Dynamic? = undefined, body: Dynamic? = undefined, referrer: String? = undefined, referrerPolicy: Dynamic? = undefined, mode: RequestMode? = undefined, credentials: RequestCredentials? = undefined, cache: RequestCache? = undefined, redirect: RequestRedirect? = undefined, integrity: String? = undefined, keepalive: Boolean? = undefined, window: Any? = undefined): RequestInit { - val o = newJsObject() - o["method"] = method - o["headers"] = headers - o["body"] = body - o["referrer"] = referrer - o["referrerPolicy"] = referrerPolicy - o["mode"] = mode - o["credentials"] = credentials - o["cache"] = cache - o["redirect"] = redirect - o["integrity"] = integrity - o["keepalive"] = keepalive - o["window"] = window - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as RequestInit -} +@Suppress("UNUSED_PARAMETER") +public fun RequestInit(method: String? = undefined, headers: JsAny? = undefined, body: JsAny? = undefined, referrer: String? = undefined, referrerPolicy: JsAny? = undefined, mode: RequestMode? = undefined, credentials: RequestCredentials? = undefined, cache: RequestCache? = undefined, redirect: RequestRedirect? = undefined, integrity: String? = undefined, keepalive: Boolean? = undefined, window: JsAny? = undefined): RequestInit { js("return { method, headers, body, referrer, referrerPolicy, mode, credentials, cache, redirect, integrity, keepalive, window };") } /** * Exposes the JavaScript [Response](https://developer.mozilla.org/en/docs/Web/API/Response) to Kotlin */ -public external open class Response(body: Dynamic? = definedExternally, init: ResponseInit = definedExternally) : Body { +public external open class Response(body: JsAny? = definedExternally, init: ResponseInit = definedExternally) : Body, JsAny { open val type: ResponseType open val url: String open val redirected: Boolean @@ -132,15 +115,15 @@ public external open class Response(body: Dynamic? = definedExternally, init: Re open val ok: Boolean open val statusText: String open val headers: Headers - open val body: Dynamic? + open val body: JsAny? open val trailer: Promise override val bodyUsed: Boolean fun clone(): Response override fun arrayBuffer(): Promise override fun blob(): Promise override fun formData(): Promise - override fun json(): Promise - override fun text(): Promise + override fun json(): Promise + override fun text(): Promise companion object { fun error(): Response @@ -148,33 +131,25 @@ public external open class Response(body: Dynamic? = definedExternally, init: Re } } -public external interface ResponseInit { +public external interface ResponseInit : JsAny { var status: Short? /* = 200 */ get() = definedExternally set(value) = definedExternally var statusText: String? /* = "OK" */ get() = definedExternally set(value) = definedExternally - var headers: Dynamic? + var headers: JsAny? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ResponseInit(status: Short? = 200, statusText: String? = "OK", headers: Dynamic? = undefined): ResponseInit { - val o = newJsObject() - o["status"] = status - o["statusText"] = statusText - o["headers"] = headers - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ResponseInit -} +@Suppress("UNUSED_PARAMETER") +public fun ResponseInit(status: Short? = 200, statusText: String? = "OK", headers: JsAny? = undefined): ResponseInit { js("return { status, statusText, headers };") } /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface RequestType { +public external interface RequestType : JsAny { companion object } @@ -197,7 +172,7 @@ public inline val RequestType.Companion.VIDEO: RequestType get() = "video".asDyn /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface RequestDestination { +public external interface RequestDestination : JsAny { companion object } @@ -234,7 +209,7 @@ public inline val RequestDestination.Companion.XSLT: RequestDestination get() = /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface RequestMode { +public external interface RequestMode : JsAny { companion object } @@ -249,7 +224,7 @@ public inline val RequestMode.Companion.CORS: RequestMode get() = "cors".asDynam /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface RequestCredentials { +public external interface RequestCredentials : JsAny { companion object } @@ -262,7 +237,7 @@ public inline val RequestCredentials.Companion.INCLUDE: RequestCredentials get() /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface RequestCache { +public external interface RequestCache : JsAny { companion object } @@ -281,7 +256,7 @@ public inline val RequestCache.Companion.ONLY_IF_CACHED: RequestCache get() = "o /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface RequestRedirect { +public external interface RequestRedirect : JsAny { companion object } @@ -294,7 +269,7 @@ public inline val RequestRedirect.Companion.MANUAL: RequestRedirect get() = "man /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ResponseType { +public external interface ResponseType : JsAny { companion object } diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.files.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.files.kt index f14e25cdb7a..66e507e87f2 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.files.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.files.kt @@ -17,71 +17,57 @@ import org.w3c.xhr.* /** * Exposes the JavaScript [Blob](https://developer.mozilla.org/en/docs/Web/API/Blob) to Kotlin */ -public external open class Blob(blobParts: Array = definedExternally, options: BlobPropertyBag = definedExternally) : MediaProvider, ImageBitmapSource { - open val size: Number +public external open class Blob(blobParts: JsArray = definedExternally, options: BlobPropertyBag = definedExternally) : MediaProvider, ImageBitmapSource, JsAny { + open val size: JsNumber open val type: String open val isClosed: Boolean fun slice(start: Int = definedExternally, end: Int = definedExternally, contentType: String = definedExternally): Blob fun close() } -public external interface BlobPropertyBag { +public external interface BlobPropertyBag : JsAny { var type: String? /* = "" */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun BlobPropertyBag(type: String? = ""): BlobPropertyBag { - val o = newJsObject() - o["type"] = type - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as BlobPropertyBag -} +@Suppress("UNUSED_PARAMETER") +public fun BlobPropertyBag(type: String? = ""): BlobPropertyBag { js("return { type };") } /** * Exposes the JavaScript [File](https://developer.mozilla.org/en/docs/Web/API/File) to Kotlin */ -public external open class File(fileBits: Array, fileName: String, options: FilePropertyBag = definedExternally) : Blob { +public external open class File(fileBits: JsArray, fileName: String, options: FilePropertyBag = definedExternally) : Blob, JsAny { open val name: String open val lastModified: Int } -public external interface FilePropertyBag : BlobPropertyBag { +public external interface FilePropertyBag : BlobPropertyBag, JsAny { var lastModified: Int? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun FilePropertyBag(lastModified: Int? = undefined, type: String? = ""): FilePropertyBag { - val o = newJsObject() - o["lastModified"] = lastModified - o["type"] = type - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as FilePropertyBag -} +@Suppress("UNUSED_PARAMETER") +public fun FilePropertyBag(lastModified: Int? = undefined, type: String? = ""): FilePropertyBag { js("return { lastModified, type };") } /** * Exposes the JavaScript [FileList](https://developer.mozilla.org/en/docs/Web/API/FileList) to Kotlin */ -public external abstract class FileList : ItemArrayLike { +public external abstract class FileList : ItemArrayLike, JsAny { override fun item(index: Int): File? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") @kotlin.internal.InlineOnly public inline operator fun FileList.get(index: Int): File? = asDynamic().getAny(index) /** * Exposes the JavaScript [FileReader](https://developer.mozilla.org/en/docs/Web/API/FileReader) to Kotlin */ -public external open class FileReader : EventTarget { +public external open class FileReader : EventTarget, JsAny { open val readyState: Short - open val result: Dynamic? - open val error: Dynamic? + open val result: JsAny? + open val error: JsAny? var onloadstart: ((ProgressEvent) -> Dynamic?)? var onprogress: ((ProgressEvent) -> Dynamic?)? var onload: ((Event) -> Dynamic?)? @@ -104,7 +90,7 @@ public external open class FileReader : EventTarget { /** * Exposes the JavaScript [FileReaderSync](https://developer.mozilla.org/en/docs/Web/API/FileReaderSync) to Kotlin */ -public external open class FileReaderSync { +public external open class FileReaderSync : JsAny { fun readAsArrayBuffer(blob: Blob): ArrayBuffer fun readAsBinaryString(blob: Blob): String fun readAsText(blob: Blob, label: String = definedExternally): String diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.notifications.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.notifications.kt index dc235ba0e1a..b0124daa8c6 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.notifications.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.notifications.kt @@ -16,7 +16,7 @@ import org.w3c.workers.* /** * Exposes the JavaScript [Notification](https://developer.mozilla.org/en/docs/Web/API/Notification) to Kotlin */ -public external open class Notification(title: String, options: NotificationOptions = definedExternally) : EventTarget { +public external open class Notification(title: String, options: NotificationOptions = definedExternally) : EventTarget, JsAny { var onclick: ((MouseEvent) -> Dynamic?)? var onerror: ((Event) -> Dynamic?)? open val title: String @@ -28,15 +28,15 @@ public external open class Notification(title: String, options: NotificationOpti open val icon: String open val badge: String open val sound: String - open val vibrate: Array - open val timestamp: Number + open val vibrate: JsArray + open val timestamp: JsNumber open val renotify: Boolean open val silent: Boolean open val noscreen: Boolean open val requireInteraction: Boolean open val sticky: Boolean - open val data: Any? - open val actions: Array + open val data: JsAny? + open val actions: JsArray fun close() companion object { @@ -46,7 +46,7 @@ public external open class Notification(title: String, options: NotificationOpti } } -public external interface NotificationOptions { +public external interface NotificationOptions : JsAny { var dir: NotificationDirection? /* = NotificationDirection.AUTO */ get() = definedExternally set(value) = definedExternally @@ -71,10 +71,10 @@ public external interface NotificationOptions { var sound: String? get() = definedExternally set(value) = definedExternally - var vibrate: Dynamic? + var vibrate: JsAny? get() = definedExternally set(value) = definedExternally - var timestamp: Number? + var timestamp: JsNumber? get() = definedExternally set(value) = definedExternally var renotify: Boolean? /* = false */ @@ -92,40 +92,18 @@ public external interface NotificationOptions { var sticky: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally - var data: Any? /* = null */ + var data: JsAny? /* = null */ get() = definedExternally set(value) = definedExternally - var actions: Array? /* = arrayOf() */ + var actions: JsArray? /* = arrayOf() */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun NotificationOptions(dir: NotificationDirection? = NotificationDirection.AUTO, lang: String? = "", body: String? = "", tag: String? = "", image: String? = undefined, icon: String? = undefined, badge: String? = undefined, sound: String? = undefined, vibrate: Dynamic? = undefined, timestamp: Number? = undefined, renotify: Boolean? = false, silent: Boolean? = false, noscreen: Boolean? = false, requireInteraction: Boolean? = false, sticky: Boolean? = false, data: Any? = null, actions: Array? = arrayOf()): NotificationOptions { - val o = newJsObject() - o["dir"] = dir - o["lang"] = lang - o["body"] = body - o["tag"] = tag - o["image"] = image - o["icon"] = icon - o["badge"] = badge - o["sound"] = sound - o["vibrate"] = vibrate - o["timestamp"] = timestamp - o["renotify"] = renotify - o["silent"] = silent - o["noscreen"] = noscreen - o["requireInteraction"] = requireInteraction - o["sticky"] = sticky - o["data"] = data - o["actions"] = actions - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as NotificationOptions -} +@Suppress("UNUSED_PARAMETER") +public fun NotificationOptions(dir: NotificationDirection? = NotificationDirection.AUTO, lang: String? = "", body: String? = "", tag: String? = "", image: String? = undefined, icon: String? = undefined, badge: String? = undefined, sound: String? = undefined, vibrate: JsAny? = undefined, timestamp: JsNumber? = undefined, renotify: Boolean? = false, silent: Boolean? = false, noscreen: Boolean? = false, requireInteraction: Boolean? = false, sticky: Boolean? = false, data: JsAny? = null, actions: JsArray? = JsArray()): NotificationOptions { js("return { dir, lang, body, tag, image, icon, badge, sound, vibrate, timestamp, renotify, silent, noscreen, requireInteraction, sticky, data, actions };") } -public external interface NotificationAction { +public external interface NotificationAction : JsAny { var action: String? var title: String? var icon: String? @@ -133,36 +111,22 @@ public external interface NotificationAction { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun NotificationAction(action: String?, title: String?, icon: String? = undefined): NotificationAction { - val o = newJsObject() - o["action"] = action - o["title"] = title - o["icon"] = icon - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as NotificationAction -} +@Suppress("UNUSED_PARAMETER") +public fun NotificationAction(action: String?, title: String?, icon: String? = undefined): NotificationAction { js("return { action, title, icon };") } -public external interface GetNotificationOptions { +public external interface GetNotificationOptions : JsAny { var tag: String? /* = "" */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun GetNotificationOptions(tag: String? = ""): GetNotificationOptions { - val o = newJsObject() - o["tag"] = tag - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as GetNotificationOptions -} +@Suppress("UNUSED_PARAMETER") +public fun GetNotificationOptions(tag: String? = ""): GetNotificationOptions { js("return { tag };") } /** * Exposes the JavaScript [NotificationEvent](https://developer.mozilla.org/en/docs/Web/API/NotificationEvent) to Kotlin */ -public external open class NotificationEvent(type: String, eventInitDict: NotificationEventInit) : ExtendableEvent { +public external open class NotificationEvent(type: String, eventInitDict: NotificationEventInit) : ExtendableEvent, JsAny { open val notification: Notification open val action: String @@ -174,30 +138,20 @@ public external open class NotificationEvent(type: String, eventInitDict: Notifi } } -public external interface NotificationEventInit : ExtendableEventInit { +public external interface NotificationEventInit : ExtendableEventInit, JsAny { var notification: Notification? var action: String? /* = "" */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun NotificationEventInit(notification: Notification?, action: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): NotificationEventInit { - val o = newJsObject() - o["notification"] = notification - o["action"] = action - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as NotificationEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun NotificationEventInit(notification: Notification?, action: String? = "", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): NotificationEventInit { js("return { notification, action, bubbles, cancelable, composed };") } /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface NotificationPermission { +public external interface NotificationPermission : JsAny { companion object } @@ -210,7 +164,7 @@ public inline val NotificationPermission.Companion.GRANTED: NotificationPermissi /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface NotificationDirection { +public external interface NotificationDirection : JsAny { companion object } diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.performance.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.performance.kt index 40f4422c2d5..64820c76d29 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.performance.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.performance.kt @@ -15,47 +15,47 @@ import org.w3c.dom.events.* /** * Exposes the JavaScript [Performance](https://developer.mozilla.org/en/docs/Web/API/Performance) to Kotlin */ -public external abstract class Performance : EventTarget { +public external abstract class Performance : EventTarget, JsAny { open val timing: PerformanceTiming open val navigation: PerformanceNavigation fun now(): Double } -public external interface GlobalPerformance { +public external interface GlobalPerformance : JsAny { val performance: Performance } /** * Exposes the JavaScript [PerformanceTiming](https://developer.mozilla.org/en/docs/Web/API/PerformanceTiming) to Kotlin */ -public external abstract class PerformanceTiming { - open val navigationStart: Number - open val unloadEventStart: Number - open val unloadEventEnd: Number - open val redirectStart: Number - open val redirectEnd: Number - open val fetchStart: Number - open val domainLookupStart: Number - open val domainLookupEnd: Number - open val connectStart: Number - open val connectEnd: Number - open val secureConnectionStart: Number - open val requestStart: Number - open val responseStart: Number - open val responseEnd: Number - open val domLoading: Number - open val domInteractive: Number - open val domContentLoadedEventStart: Number - open val domContentLoadedEventEnd: Number - open val domComplete: Number - open val loadEventStart: Number - open val loadEventEnd: Number +public external abstract class PerformanceTiming : JsAny { + open val navigationStart: JsNumber + open val unloadEventStart: JsNumber + open val unloadEventEnd: JsNumber + open val redirectStart: JsNumber + open val redirectEnd: JsNumber + open val fetchStart: JsNumber + open val domainLookupStart: JsNumber + open val domainLookupEnd: JsNumber + open val connectStart: JsNumber + open val connectEnd: JsNumber + open val secureConnectionStart: JsNumber + open val requestStart: JsNumber + open val responseStart: JsNumber + open val responseEnd: JsNumber + open val domLoading: JsNumber + open val domInteractive: JsNumber + open val domContentLoadedEventStart: JsNumber + open val domContentLoadedEventEnd: JsNumber + open val domComplete: JsNumber + open val loadEventStart: JsNumber + open val loadEventEnd: JsNumber } /** * Exposes the JavaScript [PerformanceNavigation](https://developer.mozilla.org/en/docs/Web/API/PerformanceNavigation) to Kotlin */ -public external abstract class PerformanceNavigation { +public external abstract class PerformanceNavigation : JsAny { open val type: Short open val redirectCount: Short diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.workers.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.workers.kt index 853bcc26ceb..214d6796d2f 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.workers.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.workers.kt @@ -18,45 +18,45 @@ import org.w3c.notifications.* /** * Exposes the JavaScript [ServiceWorker](https://developer.mozilla.org/en/docs/Web/API/ServiceWorker) to Kotlin */ -public external abstract class ServiceWorker : EventTarget, AbstractWorker, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker { +public external abstract class ServiceWorker : EventTarget, AbstractWorker, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker, JsAny { open val scriptURL: String open val state: ServiceWorkerState open var onstatechange: ((Event) -> Dynamic?)? - fun postMessage(message: Any?, transfer: Array = definedExternally) + fun postMessage(message: JsAny?, transfer: JsArray = definedExternally) } /** * Exposes the JavaScript [ServiceWorkerRegistration](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerRegistration) to Kotlin */ -public external abstract class ServiceWorkerRegistration : EventTarget { +public external abstract class ServiceWorkerRegistration : EventTarget, JsAny { open val installing: ServiceWorker? open val waiting: ServiceWorker? open val active: ServiceWorker? open val scope: String open var onupdatefound: ((Event) -> Dynamic?)? - open val APISpace: Dynamic? - fun update(): Promise - fun unregister(): Promise - fun showNotification(title: String, options: NotificationOptions = definedExternally): Promise - fun getNotifications(filter: GetNotificationOptions = definedExternally): Promise> - fun methodName(): Promise + open val APISpace: JsAny? + fun update(): Promise + fun unregister(): Promise + fun showNotification(title: String, options: NotificationOptions = definedExternally): Promise + fun getNotifications(filter: GetNotificationOptions = definedExternally): Promise> + fun methodName(): Promise } /** * Exposes the JavaScript [ServiceWorkerContainer](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerContainer) to Kotlin */ -public external abstract class ServiceWorkerContainer : EventTarget { +public external abstract class ServiceWorkerContainer : EventTarget, JsAny { open val controller: ServiceWorker? open val ready: Promise open var oncontrollerchange: ((Event) -> Dynamic?)? open var onmessage: ((MessageEvent) -> Dynamic?)? fun register(scriptURL: String, options: RegistrationOptions = definedExternally): Promise - fun getRegistration(clientURL: String = definedExternally): Promise - fun getRegistrations(): Promise> + fun getRegistration(clientURL: String = definedExternally): Promise + fun getRegistrations(): Promise> fun startMessages() } -public external interface RegistrationOptions { +public external interface RegistrationOptions : JsAny { var scope: String? get() = definedExternally set(value) = definedExternally @@ -65,25 +65,18 @@ public external interface RegistrationOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun RegistrationOptions(scope: String? = undefined, type: WorkerType? = WorkerType.CLASSIC): RegistrationOptions { - val o = newJsObject() - o["scope"] = scope - o["type"] = type - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as RegistrationOptions -} +@Suppress("UNUSED_PARAMETER") +public fun RegistrationOptions(scope: String? = undefined, type: WorkerType? = WorkerType.CLASSIC): RegistrationOptions { js("return { scope, type };") } /** * Exposes the JavaScript [ServiceWorkerMessageEvent](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerMessageEvent) to Kotlin */ -public external open class ServiceWorkerMessageEvent(type: String, eventInitDict: ServiceWorkerMessageEventInit = definedExternally) : Event { - open val data: Any? +public external open class ServiceWorkerMessageEvent(type: String, eventInitDict: ServiceWorkerMessageEventInit = definedExternally) : Event, JsAny { + open val data: JsAny? open val origin: String open val lastEventId: String open val source: UnionMessagePortOrServiceWorker? - open val ports: Array? + open val ports: JsArray? companion object { val NONE: Short @@ -93,8 +86,8 @@ public external open class ServiceWorkerMessageEvent(type: String, eventInitDict } } -public external interface ServiceWorkerMessageEventInit : EventInit { - var data: Any? +public external interface ServiceWorkerMessageEventInit : EventInit, JsAny { + var data: JsAny? get() = definedExternally set(value) = definedExternally var origin: String? @@ -106,31 +99,18 @@ public external interface ServiceWorkerMessageEventInit : EventInit { var source: UnionMessagePortOrServiceWorker? get() = definedExternally set(value) = definedExternally - var ports: Array? + var ports: JsArray? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ServiceWorkerMessageEventInit(data: Any? = undefined, origin: String? = undefined, lastEventId: String? = undefined, source: UnionMessagePortOrServiceWorker? = undefined, ports: Array? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ServiceWorkerMessageEventInit { - val o = newJsObject() - o["data"] = data - o["origin"] = origin - o["lastEventId"] = lastEventId - o["source"] = source - o["ports"] = ports - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ServiceWorkerMessageEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun ServiceWorkerMessageEventInit(data: JsAny? = undefined, origin: String? = undefined, lastEventId: String? = undefined, source: UnionMessagePortOrServiceWorker? = undefined, ports: JsArray? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ServiceWorkerMessageEventInit { js("return { data, origin, lastEventId, source, ports, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [ServiceWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerGlobalScope) to Kotlin */ -public external abstract class ServiceWorkerGlobalScope : WorkerGlobalScope { +public external abstract class ServiceWorkerGlobalScope : WorkerGlobalScope, JsAny { open val clients: Clients open val registration: ServiceWorkerRegistration open var oninstall: ((Event) -> Dynamic?)? @@ -141,24 +121,24 @@ public external abstract class ServiceWorkerGlobalScope : WorkerGlobalScope { open var onnotificationclick: ((NotificationEvent) -> Dynamic?)? open var onnotificationclose: ((NotificationEvent) -> Dynamic?)? open var onfunctionalevent: ((Event) -> Dynamic?)? - fun skipWaiting(): Promise + fun skipWaiting(): Promise } /** * Exposes the JavaScript [Client](https://developer.mozilla.org/en/docs/Web/API/Client) to Kotlin */ -public external abstract class Client : UnionClientOrMessagePortOrServiceWorker { +public external abstract class Client : UnionClientOrMessagePortOrServiceWorker, JsAny { open val url: String open val frameType: FrameType open val id: String - fun postMessage(message: Any?, transfer: Array = definedExternally) + fun postMessage(message: JsAny?, transfer: JsArray = definedExternally) } /** * Exposes the JavaScript [WindowClient](https://developer.mozilla.org/en/docs/Web/API/WindowClient) to Kotlin */ -public external abstract class WindowClient : Client { - open val visibilityState: Dynamic? +public external abstract class WindowClient : Client, JsAny { + open val visibilityState: JsAny? open val focused: Boolean fun focus(): Promise fun navigate(url: String): Promise @@ -167,14 +147,14 @@ public external abstract class WindowClient : Client { /** * Exposes the JavaScript [Clients](https://developer.mozilla.org/en/docs/Web/API/Clients) to Kotlin */ -public external abstract class Clients { - fun get(id: String): Promise - fun matchAll(options: ClientQueryOptions = definedExternally): Promise> +public external abstract class Clients : JsAny { + fun get(id: String): Promise + fun matchAll(options: ClientQueryOptions = definedExternally): Promise> fun openWindow(url: String): Promise - fun claim(): Promise + fun claim(): Promise } -public external interface ClientQueryOptions { +public external interface ClientQueryOptions : JsAny { var includeUncontrolled: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally @@ -183,21 +163,14 @@ public external interface ClientQueryOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ClientQueryOptions(includeUncontrolled: Boolean? = false, type: ClientType? = ClientType.WINDOW): ClientQueryOptions { - val o = newJsObject() - o["includeUncontrolled"] = includeUncontrolled - o["type"] = type - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ClientQueryOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ClientQueryOptions(includeUncontrolled: Boolean? = false, type: ClientType? = ClientType.WINDOW): ClientQueryOptions { js("return { includeUncontrolled, type };") } /** * Exposes the JavaScript [ExtendableEvent](https://developer.mozilla.org/en/docs/Web/API/ExtendableEvent) to Kotlin */ -public external open class ExtendableEvent(type: String, eventInitDict: ExtendableEventInit = definedExternally) : Event { - fun waitUntil(f: Promise) +public external open class ExtendableEvent(type: String, eventInitDict: ExtendableEventInit = definedExternally) : Event, JsAny { + fun waitUntil(f: Promise) companion object { val NONE: Short @@ -207,23 +180,15 @@ public external open class ExtendableEvent(type: String, eventInitDict: Extendab } } -public external interface ExtendableEventInit : EventInit +public external interface ExtendableEventInit : EventInit, JsAny -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ExtendableEventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableEventInit { - val o = newJsObject() - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ExtendableEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun ExtendableEventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableEventInit { js("return { bubbles, cancelable, composed };") } /** * Exposes the JavaScript [InstallEvent](https://developer.mozilla.org/en/docs/Web/API/InstallEvent) to Kotlin */ -public external open class InstallEvent(type: String, eventInitDict: ExtendableEventInit = definedExternally) : ExtendableEvent { +public external open class InstallEvent(type: String, eventInitDict: ExtendableEventInit = definedExternally) : ExtendableEvent, JsAny { fun registerForeignFetch(options: ForeignFetchOptions) companion object { @@ -234,25 +199,18 @@ public external open class InstallEvent(type: String, eventInitDict: ExtendableE } } -public external interface ForeignFetchOptions { - var scopes: Array? - var origins: Array? +public external interface ForeignFetchOptions : JsAny { + var scopes: JsArray? + var origins: JsArray? } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ForeignFetchOptions(scopes: Array?, origins: Array?): ForeignFetchOptions { - val o = newJsObject() - o["scopes"] = scopes - o["origins"] = origins - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ForeignFetchOptions -} +@Suppress("UNUSED_PARAMETER") +public fun ForeignFetchOptions(scopes: JsArray?, origins: JsArray?): ForeignFetchOptions { js("return { scopes, origins };") } /** * Exposes the JavaScript [FetchEvent](https://developer.mozilla.org/en/docs/Web/API/FetchEvent) to Kotlin */ -public external open class FetchEvent(type: String, eventInitDict: FetchEventInit) : ExtendableEvent { +public external open class FetchEvent(type: String, eventInitDict: FetchEventInit) : ExtendableEvent, JsAny { open val request: Request open val clientId: String? open val isReload: Boolean @@ -266,7 +224,7 @@ public external open class FetchEvent(type: String, eventInitDict: FetchEventIni } } -public external interface FetchEventInit : ExtendableEventInit { +public external interface FetchEventInit : ExtendableEventInit, JsAny { var request: Request? var clientId: String? /* = null */ get() = definedExternally @@ -276,21 +234,10 @@ public external interface FetchEventInit : ExtendableEventInit { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun FetchEventInit(request: Request?, clientId: String? = null, isReload: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): FetchEventInit { - val o = newJsObject() - o["request"] = request - o["clientId"] = clientId - o["isReload"] = isReload - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as FetchEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun FetchEventInit(request: Request?, clientId: String? = null, isReload: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): FetchEventInit { js("return { request, clientId, isReload, bubbles, cancelable, composed };") } -public external open class ForeignFetchEvent(type: String, eventInitDict: ForeignFetchEventInit) : ExtendableEvent { +public external open class ForeignFetchEvent(type: String, eventInitDict: ForeignFetchEventInit) : ExtendableEvent, JsAny { open val request: Request open val origin: String fun respondWith(r: Promise) @@ -303,56 +250,38 @@ public external open class ForeignFetchEvent(type: String, eventInitDict: Foreig } } -public external interface ForeignFetchEventInit : ExtendableEventInit { +public external interface ForeignFetchEventInit : ExtendableEventInit, JsAny { var request: Request? var origin: String? /* = "null" */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ForeignFetchEventInit(request: Request?, origin: String? = "null", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ForeignFetchEventInit { - val o = newJsObject() - o["request"] = request - o["origin"] = origin - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ForeignFetchEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun ForeignFetchEventInit(request: Request?, origin: String? = "null", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ForeignFetchEventInit { js("return { request, origin, bubbles, cancelable, composed };") } -public external interface ForeignFetchResponse { +public external interface ForeignFetchResponse : JsAny { var response: Response? var origin: String? get() = definedExternally set(value) = definedExternally - var headers: Array? + var headers: JsArray? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ForeignFetchResponse(response: Response?, origin: String? = undefined, headers: Array? = undefined): ForeignFetchResponse { - val o = newJsObject() - o["response"] = response - o["origin"] = origin - o["headers"] = headers - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ForeignFetchResponse -} +@Suppress("UNUSED_PARAMETER") +public fun ForeignFetchResponse(response: Response?, origin: String? = undefined, headers: JsArray? = undefined): ForeignFetchResponse { js("return { response, origin, headers };") } /** * Exposes the JavaScript [ExtendableMessageEvent](https://developer.mozilla.org/en/docs/Web/API/ExtendableMessageEvent) to Kotlin */ -public external open class ExtendableMessageEvent(type: String, eventInitDict: ExtendableMessageEventInit = definedExternally) : ExtendableEvent { - open val data: Any? +public external open class ExtendableMessageEvent(type: String, eventInitDict: ExtendableMessageEventInit = definedExternally) : ExtendableEvent, JsAny { + open val data: JsAny? open val origin: String open val lastEventId: String open val source: UnionClientOrMessagePortOrServiceWorker? - open val ports: Array? + open val ports: JsArray? companion object { val NONE: Short @@ -362,8 +291,8 @@ public external open class ExtendableMessageEvent(type: String, eventInitDict: E } } -public external interface ExtendableMessageEventInit : ExtendableEventInit { - var data: Any? +public external interface ExtendableMessageEventInit : ExtendableEventInit, JsAny { + var data: JsAny? get() = definedExternally set(value) = definedExternally var origin: String? @@ -375,41 +304,28 @@ public external interface ExtendableMessageEventInit : ExtendableEventInit { var source: UnionClientOrMessagePortOrServiceWorker? get() = definedExternally set(value) = definedExternally - var ports: Array? + var ports: JsArray? get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ExtendableMessageEventInit(data: Any? = undefined, origin: String? = undefined, lastEventId: String? = undefined, source: UnionClientOrMessagePortOrServiceWorker? = undefined, ports: Array? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableMessageEventInit { - val o = newJsObject() - o["data"] = data - o["origin"] = origin - o["lastEventId"] = lastEventId - o["source"] = source - o["ports"] = ports - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ExtendableMessageEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun ExtendableMessageEventInit(data: JsAny? = undefined, origin: String? = undefined, lastEventId: String? = undefined, source: UnionClientOrMessagePortOrServiceWorker? = undefined, ports: JsArray? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableMessageEventInit { js("return { data, origin, lastEventId, source, ports, bubbles, cancelable, composed };") } /** * Exposes the JavaScript [Cache](https://developer.mozilla.org/en/docs/Web/API/Cache) to Kotlin */ -public external abstract class Cache { - fun match(request: Dynamic?, options: CacheQueryOptions = definedExternally): Promise - fun matchAll(request: Dynamic? = definedExternally, options: CacheQueryOptions = definedExternally): Promise> - fun add(request: Dynamic?): Promise - fun addAll(requests: Array): Promise - fun put(request: Dynamic?, response: Response): Promise - fun delete(request: Dynamic?, options: CacheQueryOptions = definedExternally): Promise - fun keys(request: Dynamic? = definedExternally, options: CacheQueryOptions = definedExternally): Promise> +public external abstract class Cache : JsAny { + fun match(request: JsAny?, options: CacheQueryOptions = definedExternally): Promise + fun matchAll(request: JsAny? = definedExternally, options: CacheQueryOptions = definedExternally): Promise> + fun add(request: JsAny?): Promise + fun addAll(requests: JsArray): Promise + fun put(request: JsAny?, response: Response): Promise + fun delete(request: JsAny?, options: CacheQueryOptions = definedExternally): Promise + fun keys(request: JsAny? = definedExternally, options: CacheQueryOptions = definedExternally): Promise> } -public external interface CacheQueryOptions { +public external interface CacheQueryOptions : JsAny { var ignoreSearch: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally @@ -424,19 +340,10 @@ public external interface CacheQueryOptions { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun CacheQueryOptions(ignoreSearch: Boolean? = false, ignoreMethod: Boolean? = false, ignoreVary: Boolean? = false, cacheName: String? = undefined): CacheQueryOptions { - val o = newJsObject() - o["ignoreSearch"] = ignoreSearch - o["ignoreMethod"] = ignoreMethod - o["ignoreVary"] = ignoreVary - o["cacheName"] = cacheName - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as CacheQueryOptions -} +@Suppress("UNUSED_PARAMETER") +public fun CacheQueryOptions(ignoreSearch: Boolean? = false, ignoreMethod: Boolean? = false, ignoreVary: Boolean? = false, cacheName: String? = undefined): CacheQueryOptions { js("return { ignoreSearch, ignoreMethod, ignoreVary, cacheName };") } -public external interface CacheBatchOperation { +public external interface CacheBatchOperation : JsAny { var type: String? get() = definedExternally set(value) = definedExternally @@ -451,30 +358,21 @@ public external interface CacheBatchOperation { set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun CacheBatchOperation(type: String? = undefined, request: Request? = undefined, response: Response? = undefined, options: CacheQueryOptions? = undefined): CacheBatchOperation { - val o = newJsObject() - o["type"] = type - o["request"] = request - o["response"] = response - o["options"] = options - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as CacheBatchOperation -} +@Suppress("UNUSED_PARAMETER") +public fun CacheBatchOperation(type: String? = undefined, request: Request? = undefined, response: Response? = undefined, options: CacheQueryOptions? = undefined): CacheBatchOperation { js("return { type, request, response, options };") } /** * Exposes the JavaScript [CacheStorage](https://developer.mozilla.org/en/docs/Web/API/CacheStorage) to Kotlin */ -public external abstract class CacheStorage { - fun match(request: Dynamic?, options: CacheQueryOptions = definedExternally): Promise - fun has(cacheName: String): Promise +public external abstract class CacheStorage : JsAny { + fun match(request: JsAny?, options: CacheQueryOptions = definedExternally): Promise + fun has(cacheName: String): Promise fun open(cacheName: String): Promise - fun delete(cacheName: String): Promise - fun keys(): Promise> + fun delete(cacheName: String): Promise + fun keys(): Promise> } -public external open class FunctionalEvent : ExtendableEvent { +public external open class FunctionalEvent : ExtendableEvent, JsAny { companion object { val NONE: Short val CAPTURING_PHASE: Short @@ -490,7 +388,7 @@ public external interface UnionClientOrMessagePortOrServiceWorker /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ServiceWorkerState { +public external interface ServiceWorkerState : JsAny { companion object } @@ -507,7 +405,7 @@ public inline val ServiceWorkerState.Companion.REDUNDANT: ServiceWorkerState get /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface FrameType { +public external interface FrameType : JsAny { companion object } @@ -522,7 +420,7 @@ public inline val FrameType.Companion.NONE: FrameType get() = "none".asDynamic() /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface ClientType { +public external interface ClientType : JsAny { companion object } diff --git a/libraries/stdlib/wasm/src/org.w3c/org.w3c.xhr.kt b/libraries/stdlib/wasm/src/org.w3c/org.w3c.xhr.kt index 0ce2e4d605a..b2108b6cf5e 100644 --- a/libraries/stdlib/wasm/src/org.w3c/org.w3c.xhr.kt +++ b/libraries/stdlib/wasm/src/org.w3c/org.w3c.xhr.kt @@ -17,7 +17,7 @@ import org.w3c.files.* /** * Exposes the JavaScript [XMLHttpRequestEventTarget](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequestEventTarget) to Kotlin */ -public external abstract class XMLHttpRequestEventTarget : EventTarget { +public external abstract class XMLHttpRequestEventTarget : EventTarget, JsAny { open var onloadstart: ((ProgressEvent) -> Dynamic?)? open var onprogress: ((ProgressEvent) -> Dynamic?)? open var onabort: ((Event) -> Dynamic?)? @@ -27,12 +27,12 @@ public external abstract class XMLHttpRequestEventTarget : EventTarget { open var onloadend: ((Event) -> Dynamic?)? } -public external abstract class XMLHttpRequestUpload : XMLHttpRequestEventTarget +public external abstract class XMLHttpRequestUpload : XMLHttpRequestEventTarget, JsAny /** * Exposes the JavaScript [XMLHttpRequest](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest) to Kotlin */ -public external open class XMLHttpRequest : XMLHttpRequestEventTarget { +public external open class XMLHttpRequest : XMLHttpRequestEventTarget, JsAny { var onreadystatechange: ((Event) -> Dynamic?)? open val readyState: Short var timeout: Int @@ -42,13 +42,13 @@ public external open class XMLHttpRequest : XMLHttpRequestEventTarget { open val status: Short open val statusText: String var responseType: XMLHttpRequestResponseType - open val response: Any? + open val response: JsAny? open val responseText: String open val responseXML: Document? fun open(method: String, url: String) fun open(method: String, url: String, async: Boolean, username: String? = definedExternally, password: String? = definedExternally) fun setRequestHeader(name: String, value: String) - fun send(body: Dynamic? = definedExternally) + fun send(body: JsAny? = definedExternally) fun abort() fun getResponseHeader(name: String): String? fun getAllResponseHeaders(): String @@ -66,12 +66,12 @@ public external open class XMLHttpRequest : XMLHttpRequestEventTarget { /** * Exposes the JavaScript [FormData](https://developer.mozilla.org/en/docs/Web/API/FormData) to Kotlin */ -public external open class FormData(form: HTMLFormElement = definedExternally) { +public external open class FormData(form: HTMLFormElement = definedExternally) : JsAny { fun append(name: String, value: String) fun append(name: String, value: Blob, filename: String = definedExternally) fun delete(name: String) - fun get(name: String): Dynamic? - fun getAll(name: String): Array + fun get(name: String): JsAny? + fun getAll(name: String): JsArray fun has(name: String): Boolean fun set(name: String, value: String) fun set(name: String, value: Blob, filename: String = definedExternally) @@ -80,10 +80,10 @@ public external open class FormData(form: HTMLFormElement = definedExternally) { /** * Exposes the JavaScript [ProgressEvent](https://developer.mozilla.org/en/docs/Web/API/ProgressEvent) to Kotlin */ -public external open class ProgressEvent(type: String, eventInitDict: ProgressEventInit = definedExternally) : Event { +public external open class ProgressEvent(type: String, eventInitDict: ProgressEventInit = definedExternally) : Event, JsAny { open val lengthComputable: Boolean - open val loaded: Number - open val total: Number + open val loaded: JsNumber + open val total: JsNumber companion object { val NONE: Short @@ -93,36 +93,25 @@ public external open class ProgressEvent(type: String, eventInitDict: ProgressEv } } -public external interface ProgressEventInit : EventInit { +public external interface ProgressEventInit : EventInit, JsAny { var lengthComputable: Boolean? /* = false */ get() = definedExternally set(value) = definedExternally - var loaded: Number? /* = 0 */ + var loaded: JsNumber? /* = 0 */ get() = definedExternally set(value) = definedExternally - var total: Number? /* = 0 */ + var total: JsNumber? /* = 0 */ get() = definedExternally set(value) = definedExternally } -@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") -@kotlin.internal.InlineOnly -public inline fun ProgressEventInit(lengthComputable: Boolean? = false, loaded: Number? = 0, total: Number? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ProgressEventInit { - val o = newJsObject() - o["lengthComputable"] = lengthComputable - o["loaded"] = loaded - o["total"] = total - o["bubbles"] = bubbles - o["cancelable"] = cancelable - o["composed"] = composed - @Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE") - return o as ProgressEventInit -} +@Suppress("UNUSED_PARAMETER") +public fun ProgressEventInit(lengthComputable: Boolean? = false, loaded: JsNumber? = 0.toJsNumber(), total: JsNumber? = 0.toJsNumber(), bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ProgressEventInit { js("return { lengthComputable, loaded, total, bubbles, cancelable, composed };") } /* please, don't implement this interface! */ @JsName("null") @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") -public external interface XMLHttpRequestResponseType { +public external interface XMLHttpRequestResponseType : JsAny { companion object } diff --git a/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/launchWasm.kt b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/launchWasm.kt index dd9869cfab2..f625bf1489b 100644 --- a/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/launchWasm.kt +++ b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/launchWasm.kt @@ -5,16 +5,9 @@ package org.jetbrains.kotlin.tools.dukat -import org.jetbrains.dukat.astModel.SourceSetModel -import org.jetbrains.dukat.astModel.modifiers.VisibilityModifierModel -import org.jetbrains.dukat.commonLowerings.AddExplicitGettersAndSetters -import org.jetbrains.dukat.idlLowerings.* -import org.jetbrains.dukat.idlParser.parseIDL -import org.jetbrains.dukat.idlReferenceResolver.DirectoryReferencesResolver -import org.jetbrains.dukat.model.commonLowerings.* import org.jetbrains.dukat.translatorString.compileUnits import org.jetbrains.dukat.translatorString.translateSourceSet -import org.jetbrains.kotlin.tools.dukat.wasm.convertToWasmModel +import org.jetbrains.kotlin.tools.dukat.wasm.translateIdlToSourceSet import java.io.File fun main() { @@ -26,51 +19,7 @@ fun main() { File(outputDirectory).walk().forEach { if (it.isFile && it.name.endsWith(".kt")) { - it.writeText(getHeader() + postProcessIdlBindings(it.readText())) + it.writeText(getHeader() + it.readText()) } } -} - -fun translateIdlToSourceSet(fileName: String): SourceSetModel { - val translationContext = TranslationContext() - return parseIDL(fileName, DirectoryReferencesResolver()) - .resolvePartials() - .addConstructors() - .resolveTypedefs() - .specifyEventHandlerTypes() - .specifyDefaultValues() - .resolveImplementsStatements() - .resolveMixins() - .addItemArrayLike() - .resolveTypes() - .markAbstractOrOpen() - .addMissingMembers() - .addOverloadsForCallbacks() - .convertToWasmModel() - .lower( - ModelContextAwareLowering(translationContext), - LowerOverrides(translationContext), - EscapeIdentificators(), - AddExplicitGettersAndSetters(), - ) - .lower(ReplaceDynamics()) // Wasm-specific - .addKDocs() - .relocateDeclarations() - .resolveTopLevelVisibility(alwaysPublic()) - .addImportsForUsedPackages() - .omitStdLib() -} - -private fun alwaysPublic(): VisibilityModifierResolver = object : VisibilityModifierResolver { - override fun resolve(): VisibilityModifierModel = VisibilityModifierModel.PUBLIC -} - -// TODO: Backport to dukat -fun postProcessIdlBindings(source: String): String { - return source - .replace( - Regex("( {4}return o as \\w+)"), - " @Suppress(\"UNCHECKED_CAST_TO_EXTERNAL_INTERFACE\")\n\$1" - ) - .replace("js(\"({})\")", "newJsObject()") } \ No newline at end of file diff --git a/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/wasm/convertToModel.kt b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/wasm/convertToModel.kt index 965e1dd2add..6b7bada5851 100644 --- a/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/wasm/convertToModel.kt +++ b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/wasm/convertToModel.kt @@ -54,6 +54,18 @@ import org.jetbrains.dukat.stdlib.isTsStdlibPrefixed import org.jetbrains.dukat.translator.ROOT_PACKAGENAME import java.io.File +private val jsAnyHeritageModel: HeritageModel = HeritageModel( + TypeValueModel( + IdentifierEntity("JsAny"), + emptyList(), + null, + null, + false + ), + listOf(), + null +) + private fun IDLDeclaration.resolveName(): String? { return when (this) { is IDLDictionaryDeclaration -> name @@ -94,32 +106,43 @@ private class IdlFileConverter( val toStdMap = mapOf( "ByteString" to "String", "CSSOMString" to "String", - "DOMError" to "dynamic", + "DOMError" to "JsAny", "DOMString" to "String", - "FrozenArray" to "Array", + "FrozenArray" to "JsArray", "Promise" to "Promise", "USVString" to "String", - "\$Array" to "Array", - "\$dynamic" to "dynamic", - "any" to "Any", + "\$Array" to "JsArray", + "\$dynamic" to "JsAny", + "any" to "JsAny", "boolean" to "Boolean", "byte" to "Byte", "double" to "Double", "float" to "Float", "long" to "Int", "longlong" to "Int", - "object" to "dynamic", + "object" to "JsAny", "octet" to "Byte", - "record" to "dynamic", - "sequence" to "Array", + "record" to "JsAny", + "sequence" to "JsArray", "short" to "Short", "unrestricteddouble" to "Double", "unrestrictedfloat" to "Float", "unsignedlong" to "Int", - "unsignedlonglong" to "Number", + "unsignedlonglong" to "JsNumber", "unsignedshort" to "Short", "void" to "Unit" ) + + val kotlinToExternalType = mapOf( + "String" to "JsString", + "Byte" to "JsNumber", + "Short" to "JsNumber", + "Int" to "JsNumber", + "Float" to "JsNumber", + "Double" to "JsNumber", + "Boolean" to "JsBoolean", + "Unit" to "Nothing?" + ) } private val staticConverterNames = setOf( @@ -166,12 +189,14 @@ private class IdlFileConverter( return stdFqName() ?: fileDeclaration.packageName?.appendLeft(IdentifierEntity(this)) } - private fun IDLSingleTypeDeclaration.convertToModel(): TypeValueModel { - val resolvedName = toStdMap[name] ?: name + private fun IDLSingleTypeDeclaration.convertToModel(isTypeParameter: Boolean = false): TypeValueModel { + var resolvedName = toStdMap[name] ?: name + if (isTypeParameter) + resolvedName = kotlinToExternalType[resolvedName] ?: resolvedName val typeModel = TypeValueModel( value = IdentifierEntity(resolvedName), - params = listOfNotNull(typeParameter?.convertToModel()) + params = listOfNotNull(typeParameter?.convertToModel(isTypeParameter = true)) .map { TypeParameterModel(it, listOf()) } .map { if (name == "FrozenArray") { @@ -185,9 +210,9 @@ private class IdlFileConverter( ) return typeModel.copy( - nullable = when (typeModel.value) { - IdentifierEntity("dynamic") -> false - IdentifierEntity("Any") -> true + nullable = when (name) { + "\$dynamic" -> true + "any" -> true else -> nullable } ) @@ -209,9 +234,9 @@ private class IdlFileConverter( ) } - private fun IDLTypeDeclaration.convertToModel(): TypeModel { + private fun IDLTypeDeclaration.convertToModel(isTypeParameter: Boolean = false): TypeModel { return when (this) { - is IDLSingleTypeDeclaration -> convertToModel() + is IDLSingleTypeDeclaration -> convertToModel(isTypeParameter) is IDLFunctionTypeDeclaration -> convertToModel() //there shouldn't be any UnionTypeDeclarations at this stage else -> raiseConcern("unprocessed type declaration: ${this}") { @@ -269,13 +294,6 @@ private class IdlFileConverter( ), typeParameters = listOf(), annotations = mutableListOf( - AnnotationModel( - name = IdentifierEntity("Suppress"), - params = listOf( - IdentifierEntity("INVISIBLE_REFERENCE"), - IdentifierEntity("INVISIBLE_MEMBER") - ) - ), INLINE_ONLY_ANNOTATION ), export = false, @@ -312,13 +330,6 @@ private class IdlFileConverter( type = valueType.toNullableIfNotPrimitive().convertToModel(), typeParameters = listOf(), annotations = mutableListOf( - AnnotationModel( - name = IdentifierEntity("Suppress"), - params = listOf( - IdentifierEntity("INVISIBLE_REFERENCE"), - IdentifierEntity("INVISIBLE_MEMBER") - ) - ), INLINE_ONLY_ANNOTATION ), export = false, @@ -409,7 +420,7 @@ private class IdlFileConverter( members = dynamicMemberModels, companionObject = companionObjectModel, typeParameters = listOf(), - parentEntities = parentModels, + parentEntities = parentModels + jsAnyHeritageModel, comment = null, annotations = annotationModels, external = true, @@ -421,7 +432,7 @@ private class IdlFileConverter( members = dynamicMemberModels, companionObject = companionObjectModel, typeParameters = listOf(), - parentEntities = parentModels, + parentEntities = parentModels + jsAnyHeritageModel, primaryConstructor = if (primaryConstructor != null) { primaryConstructor!!.convertToModel() as ConstructorModel } else { @@ -449,10 +460,23 @@ private class IdlFileConverter( name = name, type = type, initializer = if (defaultValue != null && !required) { + val typeString = (type as? TypeValueModel)?.value.toString() + val newDefaultValue = when { + typeString.startsWith("Js") && defaultValue == "arrayOf()" -> + "JsArray()" + + typeString.startsWith("Js") && (defaultValue == "true" || defaultValue == "false") -> + "$defaultValue.toJsBoolean()" + + typeString.startsWith("Js") && defaultValue == "0" -> + "$defaultValue.toJsNumber()" + + else -> defaultValue + } val defaultValueModel = IdentifierExpressionModel( - IdentifierEntity(defaultValue!!) + IdentifierEntity(newDefaultValue!!) ) - if (defaultValue != "undefined" && type is TypeValueModel && type.value.isDynamic) { + if (newDefaultValue != "undefined" && type is TypeValueModel && type.value.isDynamic) { ExpressionStatementModel( PropertyAccessExpressionModel( defaultValueModel, @@ -490,57 +514,18 @@ private class IdlFileConverter( ) } - fun IDLDictionaryDeclaration.generateFunctionBody(): List { - val functionBody: MutableList = mutableListOf( - VariableModel( - name = IdentifierEntity("o"), - immutable = true, - inline = false, - external = false, - get = null, - set = null, - extend = null, - comment = null, - explicitlyDeclaredType = false, - typeParameters = listOf(), - annotations = mutableListOf(), - visibilityModifier = VisibilityModifierModel.DEFAULT, - type = TypeValueModel( - value = IdentifierEntity("dynamic"), - params = listOf(), - fqName = null, - metaDescription = null, - ), - initializer = CallExpressionModel( - IdentifierExpressionModel( - IdentifierEntity("js") - ), - listOf( - StringLiteralExpressionModel( - "({})" - ) - ) - ) + fun callJsFunction(code: String): CallExpressionModel = + CallExpressionModel( + expression = IdentifierExpressionModel(IdentifierEntity("js")), + arguments = listOf(StringLiteralExpressionModel(code)) + ) + + fun IDLDictionaryDeclaration.generateFunctionBody(): List = + listOf( + ExpressionStatementModel( + callJsFunction("return { ${members.joinToString { it.name }} };") ) ) - functionBody.addAll(members.map { it.convertToAssignmentStatementModel() }) - functionBody.add( - ReturnStatementModel( - AsExpressionModel( - expression = IdentifierExpressionModel( - IdentifierEntity("o") - ), - type = TypeValueModel( - value = IdentifierEntity(name), - params = listOf(), - metaDescription = null, - fqName = toFqName() - ) - ) - ) - ) - return functionBody - } private fun IDLDictionaryDeclaration.convertToModel(): List { val declaration = InterfaceModel( @@ -554,7 +539,7 @@ private class IdlFileConverter( listOf(), null ) - }, + } + jsAnyHeritageModel, comment = null, annotations = mutableListOf(), external = true, @@ -572,22 +557,18 @@ private class IdlFileConverter( typeParameters = listOf(), annotations = mutableListOf( AnnotationModel( - name = IdentifierEntity("Suppress"), - params = listOf( - IdentifierEntity("INVISIBLE_REFERENCE"), - IdentifierEntity("INVISIBLE_MEMBER") - ) - ), - INLINE_ONLY_ANNOTATION + IdentifierEntity("Suppress"), + listOf(IdentifierEntity("UNUSED_PARAMETER")) + ) ), export = false, - inline = true, + inline = false, operator = false, extend = null, body = BlockStatementModel(generateFunctionBody()), visibilityModifier = VisibilityModifierModel.DEFAULT, comment = null, - external = true + external = false ) return listOf(declaration, generatedFunction) } @@ -611,7 +592,7 @@ private class IdlFileConverter( listOf(), null ) - }, + } + jsAnyHeritageModel, comment = SimpleCommentEntity( "please, don't implement this interface!" ), diff --git a/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/wasm/translator.kt b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/wasm/translator.kt new file mode 100644 index 00000000000..53f07293aac --- /dev/null +++ b/libraries/tools/dukat/src/main/kotlin/org/jetbrains/kotlin/tools/dukat/wasm/translator.kt @@ -0,0 +1,104 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.tools.dukat.wasm + +import org.jetbrains.dukat.astCommon.IdentifierEntity +import org.jetbrains.dukat.astCommon.NameEntity +import org.jetbrains.dukat.astModel.* +import org.jetbrains.dukat.astModel.modifiers.VisibilityModifierModel +import org.jetbrains.dukat.commonLowerings.AddExplicitGettersAndSetters +import org.jetbrains.dukat.idlLowerings.* +import org.jetbrains.dukat.idlParser.parseIDL +import org.jetbrains.dukat.idlReferenceResolver.DirectoryReferencesResolver +import org.jetbrains.dukat.model.commonLowerings.* +import org.jetbrains.dukat.ownerContext.NodeOwner + +fun translateIdlToSourceSet(fileName: String): SourceSetModel { + val translationContext = TranslationContext() + return parseIDL(fileName, DirectoryReferencesResolver()) + .resolvePartials() + .addConstructors() + .resolveTypedefs() + .specifyEventHandlerTypes() + .specifyDefaultValues() + .resolveImplementsStatements() + .resolveMixins() + .addItemArrayLike() + .resolveTypes() + .markAbstractOrOpen() + .addMissingMembers() + .addOverloadsForCallbacks() + .convertToWasmModel() + .lower( + ModelContextAwareLowering(translationContext), + LowerOverrides(translationContext), + EscapeIdentificators(), + AddExplicitGettersAndSetters(), + ) + .lower(ReplaceDynamics()) // Wasm-specific + .addKDocs() + .relocateDeclarations() + .resolveTopLevelVisibility(alwaysPublic()) + .addImportsForUsedPackages() + .omitStdLib() + .lower(WasmPostProcessingHacks()) +} + +class WasmPostProcessingHacks : TopLevelModelLowering { + private fun fineItemMethodThatOverridersItemArrayLikeOrNull(klass: ClassLikeModel): MethodModel? { + if (klass.parentEntities.none { it.value.value == IdentifierEntity("ItemArrayLike") }) + return null + + return klass.members.filterIsInstance().find { member -> + member.name == IdentifierEntity("item") && + (member.parameters.firstOrNull()?.type as? TypeValueModel)?.value == IdentifierEntity("Int") + } + } + + override fun lowerClassLikeModel(ownerContext: NodeOwner, parentModule: ModuleModel): ClassLikeModel { + val klass: ClassLikeModel = super.lowerClassLikeModel(ownerContext, parentModule) + val itemMethodThatOverridesAny: MethodModel = fineItemMethodThatOverridersItemArrayLikeOrNull(klass) + ?: return klass + + fun translateMember(member: MemberModel): MemberModel { + if (member !== itemMethodThatOverridesAny) return member + + val newTypeIdentifier = when ((member.type as? TypeValueModel)?.value) { + IdentifierEntity("String") -> IdentifierEntity("JsString") + else -> null + } + + val newType = if (newTypeIdentifier != null) { + TypeValueModel( + IdentifierEntity("JsString"), + fqName = null, + metaDescription = null, + nullable = member.type.nullable, + params = emptyList() + ) + } else { + member.type + } + + return member.copy( + type = newType, + override = listOf(IdentifierEntity("item")) + ) + } + + return when(klass) { + is ClassModel -> klass.copy(members = klass.members.map(::translateMember)) + is InterfaceModel -> klass.copy(members = klass.members.map(::translateMember)) + is ObjectModel -> klass.copy(members = klass.members.map(::translateMember)) + else -> error("Unknown ClassLikeModel: ${klass::class}") + } + } +} + + +private fun alwaysPublic(): VisibilityModifierResolver = object : VisibilityModifierResolver { + override fun resolve(): VisibilityModifierModel = VisibilityModifierModel.PUBLIC +}