[Wasm] Use Unit in IDL event handler return type
Return value can be used in rare cases to stop event propagation. Event methods can be called instead. ^KT-57058 Fixed
This commit is contained in:
committed by
Space Team
parent
5f00bfecff
commit
c1100042b2
@@ -80,8 +80,8 @@ public external abstract class MediaKeySession : EventTarget, JsAny {
|
||||
open val expiration: Double
|
||||
open val closed: Promise<Nothing?>
|
||||
open val keyStatuses: MediaKeyStatusMap
|
||||
open var onkeystatuseschange: ((Event) -> JsAny?)?
|
||||
open var onmessage: ((MessageEvent) -> JsAny?)?
|
||||
open var onkeystatuseschange: ((Event) -> Unit)?
|
||||
open var onmessage: ((MessageEvent) -> Unit)?
|
||||
fun generateRequest(initDataType: String, initData: JsAny?): Promise<Nothing?>
|
||||
fun load(sessionId: String): Promise<JsBoolean>
|
||||
fun update(response: JsAny?): Promise<Nothing?>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -21,8 +21,8 @@ public external open class MediaStream() : EventTarget, MediaProvider, JsAny {
|
||||
constructor(tracks: JsArray<MediaStreamTrack>)
|
||||
open val id: String
|
||||
open val active: Boolean
|
||||
var onaddtrack: ((MediaStreamTrackEvent) -> JsAny?)?
|
||||
var onremovetrack: ((MediaStreamTrackEvent) -> JsAny?)?
|
||||
var onaddtrack: ((MediaStreamTrackEvent) -> Unit)?
|
||||
var onremovetrack: ((MediaStreamTrackEvent) -> Unit)?
|
||||
fun getAudioTracks(): JsArray<MediaStreamTrack>
|
||||
fun getVideoTracks(): JsArray<MediaStreamTrack>
|
||||
fun getTracks(): JsArray<MediaStreamTrack>
|
||||
@@ -41,11 +41,11 @@ public external abstract class MediaStreamTrack : EventTarget, JsAny {
|
||||
open val label: String
|
||||
open var enabled: Boolean
|
||||
open val muted: Boolean
|
||||
open var onmute: ((Event) -> JsAny?)?
|
||||
open var onunmute: ((Event) -> JsAny?)?
|
||||
open var onmute: ((Event) -> Unit)?
|
||||
open var onunmute: ((Event) -> Unit)?
|
||||
open val readyState: MediaStreamTrackState
|
||||
open var onended: ((Event) -> JsAny?)?
|
||||
open var onoverconstrained: ((Event) -> JsAny?)?
|
||||
open var onended: ((Event) -> Unit)?
|
||||
open var onoverconstrained: ((Event) -> Unit)?
|
||||
fun clone(): MediaStreamTrack
|
||||
fun stop()
|
||||
fun getCapabilities(): MediaTrackCapabilities
|
||||
@@ -333,7 +333,7 @@ public fun OverconstrainedErrorEventInit(error: JsAny? = null, bubbles: Boolean?
|
||||
* Exposes the JavaScript [MediaDevices](https://developer.mozilla.org/en/docs/Web/API/MediaDevices) to Kotlin
|
||||
*/
|
||||
public external abstract class MediaDevices : EventTarget, JsAny {
|
||||
open var ondevicechange: ((Event) -> JsAny?)?
|
||||
open var ondevicechange: ((Event) -> Unit)?
|
||||
fun enumerateDevices(): Promise<JsArray<MediaDeviceInfo>>
|
||||
fun getSupportedConstraints(): MediaTrackSupportedConstraints
|
||||
fun getUserMedia(constraints: MediaStreamConstraints = definedExternally): Promise<MediaStream>
|
||||
@@ -370,7 +370,7 @@ public external interface MediaStreamConstraints : JsAny {
|
||||
public fun MediaStreamConstraints(video: JsAny? = false.toJsBoolean(), audio: JsAny? = false.toJsBoolean()): MediaStreamConstraints { js("return { video, audio };") }
|
||||
|
||||
public external interface ConstrainablePattern : JsAny {
|
||||
var onoverconstrained: ((Event) -> JsAny?)?
|
||||
var onoverconstrained: ((Event) -> Unit)?
|
||||
get() = definedExternally
|
||||
set(value) = definedExternally
|
||||
fun getCapabilities(): Capabilities
|
||||
|
||||
@@ -21,9 +21,9 @@ public external open class MediaSource : EventTarget, MediaProvider, JsAny {
|
||||
open val activeSourceBuffers: SourceBufferList
|
||||
open val readyState: ReadyState
|
||||
var duration: Double
|
||||
var onsourceopen: ((Event) -> JsAny?)?
|
||||
var onsourceended: ((Event) -> JsAny?)?
|
||||
var onsourceclose: ((Event) -> JsAny?)?
|
||||
var onsourceopen: ((Event) -> Unit)?
|
||||
var onsourceended: ((Event) -> Unit)?
|
||||
var onsourceclose: ((Event) -> Unit)?
|
||||
fun addSourceBuffer(type: String): SourceBuffer
|
||||
fun removeSourceBuffer(sourceBuffer: SourceBuffer)
|
||||
fun endOfStream(error: EndOfStreamError = definedExternally)
|
||||
@@ -48,11 +48,11 @@ public external abstract class SourceBuffer : EventTarget, JsAny {
|
||||
open val textTracks: TextTrackList
|
||||
open var appendWindowStart: Double
|
||||
open var appendWindowEnd: Double
|
||||
open var onupdatestart: ((Event) -> JsAny?)?
|
||||
open var onupdate: ((Event) -> JsAny?)?
|
||||
open var onupdateend: ((Event) -> JsAny?)?
|
||||
open var onerror: ((Event) -> JsAny?)?
|
||||
open var onabort: ((Event) -> JsAny?)?
|
||||
open var onupdatestart: ((Event) -> Unit)?
|
||||
open var onupdate: ((Event) -> Unit)?
|
||||
open var onupdateend: ((Event) -> Unit)?
|
||||
open var onerror: ((Event) -> Unit)?
|
||||
open var onabort: ((Event) -> Unit)?
|
||||
fun appendBuffer(data: JsAny?)
|
||||
fun abort()
|
||||
fun remove(start: Double, end: Double)
|
||||
@@ -63,8 +63,8 @@ public external abstract class SourceBuffer : EventTarget, JsAny {
|
||||
*/
|
||||
public external abstract class SourceBufferList : EventTarget, JsAny {
|
||||
open val length: Int
|
||||
open var onaddsourcebuffer: ((Event) -> JsAny?)?
|
||||
open var onremovesourcebuffer: ((Event) -> JsAny?)?
|
||||
open var onaddsourcebuffer: ((Event) -> Unit)?
|
||||
open var onremovesourcebuffer: ((Event) -> Unit)?
|
||||
}
|
||||
|
||||
@Suppress("UNUSED_PARAMETER")
|
||||
|
||||
@@ -70,12 +70,12 @@ public external open class FileReader : EventTarget, JsAny {
|
||||
open val readyState: Short
|
||||
open val result: JsAny?
|
||||
open val error: JsAny?
|
||||
var onloadstart: ((ProgressEvent) -> JsAny?)?
|
||||
var onprogress: ((ProgressEvent) -> JsAny?)?
|
||||
var onload: ((Event) -> JsAny?)?
|
||||
var onabort: ((Event) -> JsAny?)?
|
||||
var onerror: ((Event) -> JsAny?)?
|
||||
var onloadend: ((Event) -> JsAny?)?
|
||||
var onloadstart: ((ProgressEvent) -> Unit)?
|
||||
var onprogress: ((ProgressEvent) -> Unit)?
|
||||
var onload: ((Event) -> Unit)?
|
||||
var onabort: ((Event) -> Unit)?
|
||||
var onerror: ((Event) -> Unit)?
|
||||
var onloadend: ((Event) -> Unit)?
|
||||
fun readAsArrayBuffer(blob: Blob)
|
||||
fun readAsBinaryString(blob: Blob)
|
||||
fun readAsText(blob: Blob, label: String = definedExternally)
|
||||
|
||||
@@ -17,8 +17,8 @@ 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, JsAny {
|
||||
var onclick: ((MouseEvent) -> JsAny?)?
|
||||
var onerror: ((Event) -> JsAny?)?
|
||||
var onclick: ((MouseEvent) -> Unit)?
|
||||
var onerror: ((Event) -> Unit)?
|
||||
open val title: String
|
||||
open val dir: NotificationDirection
|
||||
open val lang: String
|
||||
|
||||
@@ -21,7 +21,7 @@ import org.w3c.notifications.*
|
||||
public external abstract class ServiceWorker : EventTarget, AbstractWorker, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker, JsAny {
|
||||
open val scriptURL: String
|
||||
open val state: ServiceWorkerState
|
||||
open var onstatechange: ((Event) -> JsAny?)?
|
||||
open var onstatechange: ((Event) -> Unit)?
|
||||
fun postMessage(message: JsAny?, transfer: JsArray<JsAny> = definedExternally)
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public external abstract class ServiceWorkerRegistration : EventTarget, JsAny {
|
||||
open val waiting: ServiceWorker?
|
||||
open val active: ServiceWorker?
|
||||
open val scope: String
|
||||
open var onupdatefound: ((Event) -> JsAny?)?
|
||||
open var onupdatefound: ((Event) -> Unit)?
|
||||
open val APISpace: JsAny?
|
||||
fun update(): Promise<Nothing?>
|
||||
fun unregister(): Promise<JsBoolean>
|
||||
@@ -48,8 +48,8 @@ public external abstract class ServiceWorkerRegistration : EventTarget, JsAny {
|
||||
public external abstract class ServiceWorkerContainer : EventTarget, JsAny {
|
||||
open val controller: ServiceWorker?
|
||||
open val ready: Promise<ServiceWorkerRegistration>
|
||||
open var oncontrollerchange: ((Event) -> JsAny?)?
|
||||
open var onmessage: ((MessageEvent) -> JsAny?)?
|
||||
open var oncontrollerchange: ((Event) -> Unit)?
|
||||
open var onmessage: ((MessageEvent) -> Unit)?
|
||||
fun register(scriptURL: String, options: RegistrationOptions = definedExternally): Promise<ServiceWorkerRegistration>
|
||||
fun getRegistration(clientURL: String = definedExternally): Promise<JsAny?>
|
||||
fun getRegistrations(): Promise<JsArray<ServiceWorkerRegistration>>
|
||||
@@ -113,14 +113,14 @@ public fun ServiceWorkerMessageEventInit(data: JsAny? = undefined, origin: Strin
|
||||
public external abstract class ServiceWorkerGlobalScope : WorkerGlobalScope, JsAny {
|
||||
open val clients: Clients
|
||||
open val registration: ServiceWorkerRegistration
|
||||
open var oninstall: ((Event) -> JsAny?)?
|
||||
open var onactivate: ((Event) -> JsAny?)?
|
||||
open var onfetch: ((FetchEvent) -> JsAny?)?
|
||||
open var onforeignfetch: ((Event) -> JsAny?)?
|
||||
open var onmessage: ((MessageEvent) -> JsAny?)?
|
||||
open var onnotificationclick: ((NotificationEvent) -> JsAny?)?
|
||||
open var onnotificationclose: ((NotificationEvent) -> JsAny?)?
|
||||
open var onfunctionalevent: ((Event) -> JsAny?)?
|
||||
open var oninstall: ((Event) -> Unit)?
|
||||
open var onactivate: ((Event) -> Unit)?
|
||||
open var onfetch: ((FetchEvent) -> Unit)?
|
||||
open var onforeignfetch: ((Event) -> Unit)?
|
||||
open var onmessage: ((MessageEvent) -> Unit)?
|
||||
open var onnotificationclick: ((NotificationEvent) -> Unit)?
|
||||
open var onnotificationclose: ((NotificationEvent) -> Unit)?
|
||||
open var onfunctionalevent: ((Event) -> Unit)?
|
||||
fun skipWaiting(): Promise<Nothing?>
|
||||
}
|
||||
|
||||
|
||||
@@ -18,13 +18,13 @@ 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, JsAny {
|
||||
open var onloadstart: ((ProgressEvent) -> JsAny?)?
|
||||
open var onprogress: ((ProgressEvent) -> JsAny?)?
|
||||
open var onabort: ((Event) -> JsAny?)?
|
||||
open var onerror: ((Event) -> JsAny?)?
|
||||
open var onload: ((Event) -> JsAny?)?
|
||||
open var ontimeout: ((Event) -> JsAny?)?
|
||||
open var onloadend: ((Event) -> JsAny?)?
|
||||
open var onloadstart: ((ProgressEvent) -> Unit)?
|
||||
open var onprogress: ((ProgressEvent) -> Unit)?
|
||||
open var onabort: ((Event) -> Unit)?
|
||||
open var onerror: ((Event) -> Unit)?
|
||||
open var onload: ((Event) -> Unit)?
|
||||
open var ontimeout: ((Event) -> Unit)?
|
||||
open var onloadend: ((Event) -> Unit)?
|
||||
}
|
||||
|
||||
public external abstract class XMLHttpRequestUpload : XMLHttpRequestEventTarget, JsAny
|
||||
@@ -33,7 +33,7 @@ public external abstract class XMLHttpRequestUpload : XMLHttpRequestEventTarget,
|
||||
* Exposes the JavaScript [XMLHttpRequest](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest) to Kotlin
|
||||
*/
|
||||
public external open class XMLHttpRequest : XMLHttpRequestEventTarget, JsAny {
|
||||
var onreadystatechange: ((Event) -> JsAny?)?
|
||||
var onreadystatechange: ((Event) -> Unit)?
|
||||
open val readyState: Short
|
||||
var timeout: Int
|
||||
var withCredentials: Boolean
|
||||
|
||||
+1
-1
@@ -8,7 +8,6 @@ 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
|
||||
@@ -19,6 +18,7 @@ import org.jetbrains.dukat.ownerContext.NodeOwner
|
||||
fun translateIdlToSourceSet(fileName: String): SourceSetModel {
|
||||
val translationContext = TranslationContext()
|
||||
return parseIDL(fileName, DirectoryReferencesResolver())
|
||||
.voidifyEventHandlerReturnType()
|
||||
.resolvePartials()
|
||||
.addConstructors()
|
||||
.resolveTypedefs()
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package org.jetbrains.kotlin.tools.dukat.wasm
|
||||
|
||||
import org.jetbrains.dukat.idlDeclarations.*
|
||||
import org.jetbrains.dukat.idlLowerings.IDLLowering
|
||||
|
||||
private class VoidifyEventHandlerReturnType : IDLLowering {
|
||||
override fun lowerTypedefDeclaration(declaration: IDLTypedefDeclaration, owner: IDLFileDeclaration): IDLTypedefDeclaration {
|
||||
if (declaration.name == "EventHandlerNonNull") {
|
||||
val type = declaration.typeReference as IDLFunctionTypeDeclaration
|
||||
return declaration.copy(typeReference = type.copy(returnType = voidType))
|
||||
}
|
||||
return super.lowerTypedefDeclaration(declaration, owner)
|
||||
}
|
||||
}
|
||||
|
||||
private val voidType = IDLSingleTypeDeclaration("void", null, false)
|
||||
|
||||
fun IDLSourceSetDeclaration.voidifyEventHandlerReturnType(): IDLSourceSetDeclaration {
|
||||
return VoidifyEventHandlerReturnType().lowerSourceSetDeclaration(this)
|
||||
}
|
||||
Reference in New Issue
Block a user