From 857ce6e569210b04d6e9b667238bdd876cfc2696 Mon Sep 17 00:00:00 2001 From: David Barri Date: Mon, 6 Sep 2021 10:46:11 +1000 Subject: [PATCH 1/3] Add quickPrePR sbt cmd --- prePR.sbt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/prePR.sbt b/prePR.sbt index efe23df09..100a174e9 100644 --- a/prePR.sbt +++ b/prePR.sbt @@ -1,7 +1,10 @@ import Build._ +import Dependencies.Ver._ addCommandAlias("prePR", "+prePR_nonCross") +addCommandAlias("quickPrePR", s"++$scala212; prePR_nonCross; ++$scala213; prePR_nonCross") + val prePR_nonCross = taskKey[Unit]("Performs all necessary work required before submitting a PR, for a single version of Scala.") // Unfortunately we can't just call `root/Test/compile` because it doesn't take aggregation into account :( From 600952f9c213df22f4b325d08089760d407caa73 Mon Sep 17 00:00:00 2001 From: David Barri Date: Mon, 6 Sep 2021 10:46:54 +1000 Subject: [PATCH 2/3] Api reports: replace ' = js.undefined' as '?' --- api-reports/2_12.txt | 58 +++++++++---------- api-reports/2_13.txt | 58 +++++++++---------- .../dom/scalafix/GenerateApiReport.scala | 2 +- 3 files changed, 59 insertions(+), 59 deletions(-) diff --git a/api-reports/2_12.txt b/api-reports/2_12.txt index 860690d3e..198167507 100644 --- a/api-reports/2_12.txt +++ b/api-reports/2_12.txt @@ -321,7 +321,7 @@ Blob[JC] def `type`: String Blob[JO] BlobPropertyBag[JT] def endings: String BlobPropertyBag[JT] def `type`: String -BlobPropertyBag[SO] def apply(`type`: js.UndefOr[String] = js.undefined): BlobPropertyBag +BlobPropertyBag[SO] def apply(`type`: js.UndefOr[String]?): BlobPropertyBag Body[JT] def arrayBuffer(): js.Promise[ArrayBuffer] Body[JT] def blob(): js.Promise[Blob] Body[JT] def bodyUsed: Boolean @@ -1030,14 +1030,14 @@ Console[JT] def debug(message: Any, optionalParams: Any*): Unit Console[JT] def dir(value: Any, optionalParams: Any*): Unit Console[JT] def dirxml(value: Any): Unit Console[JT] def error(message: Any, optionalParams: Any*): Unit -Console[JT] def group(label: js.UndefOr[String] = js.undefined): Unit -Console[JT] def groupCollapsed(label: js.UndefOr[String] = js.undefined): Unit +Console[JT] def group(label: js.UndefOr[String]?): Unit +Console[JT] def groupCollapsed(label: js.UndefOr[String]?): Unit Console[JT] def groupEnd(): Unit Console[JT] def info(message: Any, optionalParams: Any*): Unit Console[JT] def log(message: Any, optionalParams: Any*): Unit Console[JT] def profile(reportName: String?): Unit Console[JT] def profileEnd(): Unit -Console[JT] def table(data: js.Object | js.Array[_], columns: js.UndefOr[Int] = js.undefined): Unit +Console[JT] def table(data: js.Object | js.Array[_], columns: js.UndefOr[Int]?): Unit Console[JT] def time(label: String): Unit Console[JT] def timeEnd(label: String): Unit Console[JT] def trace(): Unit @@ -13599,15 +13599,15 @@ IDBObjectStore[JC] def createIndex(name: String, keyPath: String, optionalParame IDBObjectStore[JC] def delete(key: js.Any): IDBRequest IDBObjectStore[JC] def deleteIndex(indexName: String): Unit IDBObjectStore[JC] def get(key: js.Any): IDBRequest -IDBObjectStore[JC] def getAll(query: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, count: js.UndefOr[Int] = js.undefined): IDBRequest -IDBObjectStore[JC] def getAllKeys(query: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, count: js.UndefOr[Int] = js.undefined): IDBRequest +IDBObjectStore[JC] def getAll(query: js.UndefOr[IDBKeyRange | js.Any]?, count: js.UndefOr[Int]?): IDBRequest +IDBObjectStore[JC] def getAllKeys(query: js.UndefOr[IDBKeyRange | js.Any]?, count: js.UndefOr[Int]?): IDBRequest IDBObjectStore[JC] def getKey(key: js.Any): IDBRequest IDBObjectStore[JC] def index(name: String): IDBIndex IDBObjectStore[JC] def indexNames: DOMStringList IDBObjectStore[JC] def keyPath: String IDBObjectStore[JC] def name: String -IDBObjectStore[JC] def openCursor(range: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, direction: js.UndefOr[IDBCursorDirection] = js.undefined): IDBRequest -IDBObjectStore[JC] def openKeyCursor(range: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, direction: js.UndefOr[IDBCursorDirection] = js.undefined): IDBRequest +IDBObjectStore[JC] def openCursor(range: js.UndefOr[IDBKeyRange | js.Any]?, direction: js.UndefOr[IDBCursorDirection]?): IDBRequest +IDBObjectStore[JC] def openKeyCursor(range: js.UndefOr[IDBKeyRange | js.Any]?, direction: js.UndefOr[IDBCursorDirection]?): IDBRequest IDBObjectStore[JC] def put(value: js.Any, key: js.Any?): IDBRequest IDBObjectStore[JC] def transaction: IDBTransaction IDBOpenDBRequest[JC] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit @@ -14326,7 +14326,7 @@ MutationObserverInit[JT] var characterData: js.UndefOr[Boolean] MutationObserverInit[JT] var characterDataOldValue: js.UndefOr[Boolean] MutationObserverInit[JT] var childList: js.UndefOr[Boolean] MutationObserverInit[JT] var subtree: js.UndefOr[Boolean] -MutationObserverInit[SO] def apply(childList: Boolean = false, attributes: Boolean = false, characterData: Boolean = false, subtree: Boolean = false, attributeOldValue: Boolean = false, characterDataOldValue: Boolean = false, attributeFilter: js.UndefOr[js.Array[String]] = js.undefined): MutationObserverInit +MutationObserverInit[SO] def apply(childList: Boolean = false, attributes: Boolean = false, characterData: Boolean = false, subtree: Boolean = false, attributeOldValue: Boolean = false, characterDataOldValue: Boolean = false, attributeFilter: js.UndefOr[js.Array[String]]?): MutationObserverInit MutationRecord[JT] def addedNodes: NodeList[Node] MutationRecord[JT] def attributeName: String MutationRecord[JT] def attributeNamespace: String @@ -14492,7 +14492,7 @@ NotificationOptions[JT] val sound: String NotificationOptions[JT] val sticky: Boolean NotificationOptions[JT] val tag: String NotificationOptions[JT] val vibrate: js.Array[Double] -NotificationOptions[SO] def apply(body: js.UndefOr[String] = js.undefined, dir: js.UndefOr[String] = js.undefined, icon: js.UndefOr[String] = js.undefined, lang: js.UndefOr[String] = js.undefined, noscreen: js.UndefOr[Boolean] = js.undefined, renotify: js.UndefOr[Boolean] = js.undefined, silent: js.UndefOr[Boolean] = js.undefined, sound: js.UndefOr[String] = js.undefined, sticky: js.UndefOr[Boolean] = js.undefined, tag: js.UndefOr[String] = js.undefined, onclick: js.UndefOr[js.Function0[Any]] = js.undefined, onerror: js.UndefOr[js.Function0[Any]] = js.undefined, vibrate: js.UndefOr[js.Array[Double]] = js.undefined): NotificationOptions +NotificationOptions[SO] def apply(body: js.UndefOr[String]?, dir: js.UndefOr[String]?, icon: js.UndefOr[String]?, lang: js.UndefOr[String]?, noscreen: js.UndefOr[Boolean]?, renotify: js.UndefOr[Boolean]?, silent: js.UndefOr[Boolean]?, sound: js.UndefOr[String]?, sticky: js.UndefOr[Boolean]?, tag: js.UndefOr[String]?, onclick: js.UndefOr[js.Function0[Any]]?, onerror: js.UndefOr[js.Function0[Any]]?, vibrate: js.UndefOr[js.Array[Double]]?): NotificationOptions OfflineAudioCompletionEvent[JT] def bubbles: Boolean OfflineAudioCompletionEvent[JT] def cancelBubble: Boolean OfflineAudioCompletionEvent[JT] def cancelable: Boolean @@ -14862,11 +14862,11 @@ Range[JO] val END_TO_END: Int Range[JO] val END_TO_START: Int Range[JO] val START_TO_END: Int Range[JO] val START_TO_START: Int -ReadableStream[JT] def cancel(reason: js.UndefOr[Any] = js.undefined): js.Promise[Unit] +ReadableStream[JT] def cancel(reason: js.UndefOr[Any]?): js.Promise[Unit] ReadableStream[JT] def getReader(): ReadableStreamReader[T] ReadableStream[JT] def locked: Boolean -ReadableStream[JT] def pipeThrough[U](pair: Any, options: Any = js.undefined): ReadableStream[U] -ReadableStream[JT] def pipeTo(dest: WriteableStream[T], options: Any = js.undefined): Unit +ReadableStream[JT] def pipeThrough[U](pair: Any, options: Any?): ReadableStream[U] +ReadableStream[JT] def pipeTo(dest: WriteableStream[T], options: Any?): Unit ReadableStream[JT] def tee(): js.Array[_ <: ReadableStream[T]] ReadableStreamController[JC] def close(): Unit ReadableStreamController[JC] def desiredSize: Int @@ -24023,7 +24023,7 @@ WriteableState[SO] val closing: WriteableState WriteableState[SO] val errored: WriteableState WriteableState[SO] val waiting: WriteableState WriteableState[SO] val writable: WriteableState -WriteableStream[JT] def abort(reason: js.UndefOr[Any] = js.undefined): js.Promise[Unit] +WriteableStream[JT] def abort(reason: js.UndefOr[Any]?): js.Promise[Unit] WriteableStream[JT] def close(): js.Promise[WriteableStream[T]] WriteableStream[JT] val closed: js.Promise[WriteableStream[T]] WriteableStream[JT] val ready: js.Promise[WriteableStream[T]] @@ -24438,7 +24438,7 @@ experimental/intl/CollatorOptions[JT] val localeMatcher: js.UndefOr[String] experimental/intl/CollatorOptions[JT] val numeric: js.UndefOr[Boolean] experimental/intl/CollatorOptions[JT] val sensitivity: js.UndefOr[String] experimental/intl/CollatorOptions[JT] val usage: js.UndefOr[String] -experimental/intl/CollatorOptions[SO] def apply(localeMatcher: js.UndefOr[String] = js.undefined, usage: js.UndefOr[String] = js.undefined, sensitivity: js.UndefOr[String] = js.undefined, ignorePunctuation: js.UndefOr[Boolean] = js.undefined, numeric: js.UndefOr[Boolean] = js.undefined, caseFirst: js.UndefOr[String] = js.undefined): CollatorOptions +experimental/intl/CollatorOptions[SO] def apply(localeMatcher: js.UndefOr[String]?, usage: js.UndefOr[String]?, sensitivity: js.UndefOr[String]?, ignorePunctuation: js.UndefOr[Boolean]?, numeric: js.UndefOr[Boolean]?, caseFirst: js.UndefOr[String]?): CollatorOptions experimental/intl/DateTimeFormat[JC] def format(date: js.Date): String experimental/intl/DateTimeFormat[JC] def resolvedOptions(): DateTimeFormatOptions experimental/intl/DateTimeFormat[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String] @@ -24455,7 +24455,7 @@ experimental/intl/DateTimeFormatOptions[JT] val timeZone: js.UndefOr[String] experimental/intl/DateTimeFormatOptions[JT] val timeZoneName: js.UndefOr[String] experimental/intl/DateTimeFormatOptions[JT] val weekday: js.UndefOr[String] experimental/intl/DateTimeFormatOptions[JT] val year: js.UndefOr[String] -experimental/intl/DateTimeFormatOptions[SO] def apply(localeMatcher: js.UndefOr[String] = js.undefined, timeZone: js.UndefOr[String] = js.undefined, hour12: js.UndefOr[Boolean] = js.undefined, formatMatcher: js.UndefOr[String] = js.undefined, weekday: js.UndefOr[String] = js.undefined, era: js.UndefOr[String] = js.undefined, year: js.UndefOr[String] = js.undefined, month: js.UndefOr[String] = js.undefined, day: js.UndefOr[String] = js.undefined, hour: js.UndefOr[String] = js.undefined, minute: js.UndefOr[String] = js.undefined, second: js.UndefOr[String] = js.undefined, timeZoneName: js.UndefOr[String] = js.undefined): DateTimeFormatOptions +experimental/intl/DateTimeFormatOptions[SO] def apply(localeMatcher: js.UndefOr[String]?, timeZone: js.UndefOr[String]?, hour12: js.UndefOr[Boolean]?, formatMatcher: js.UndefOr[String]?, weekday: js.UndefOr[String]?, era: js.UndefOr[String]?, year: js.UndefOr[String]?, month: js.UndefOr[String]?, day: js.UndefOr[String]?, hour: js.UndefOr[String]?, minute: js.UndefOr[String]?, second: js.UndefOr[String]?, timeZoneName: js.UndefOr[String]?): DateTimeFormatOptions experimental/intl/NumberFormat[JC] def format(number: Double): String experimental/intl/NumberFormat[JC] def resolvedOptions(): NumberFormatOptions experimental/intl/NumberFormat[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String] @@ -24469,7 +24469,7 @@ experimental/intl/NumberFormatOptions[JT] val minimumIntegerDigits: js.UndefOr[D experimental/intl/NumberFormatOptions[JT] val minimumSignificantDigits: js.UndefOr[Double] experimental/intl/NumberFormatOptions[JT] val style: js.UndefOr[String] experimental/intl/NumberFormatOptions[JT] val useGrouping: js.UndefOr[Boolean] -experimental/intl/NumberFormatOptions[SO] def apply(localeMatcher: js.UndefOr[String] = js.undefined, style: js.UndefOr[String] = js.undefined, currency: js.UndefOr[String] = js.undefined, currencyDisplay: js.UndefOr[String] = js.undefined, useGrouping: js.UndefOr[Boolean] = js.undefined, minimumIntegerDigits: js.UndefOr[Double] = js.undefined, minimumFractionDigits: js.UndefOr[Double] = js.undefined, maximumFractionDigits: js.UndefOr[Double] = js.undefined, minimumSignificantDigits: js.UndefOr[Double] = js.undefined, maximumSignificantDigits: js.UndefOr[Double] = js.undefined): NumberFormatOptions +experimental/intl/NumberFormatOptions[SO] def apply(localeMatcher: js.UndefOr[String]?, style: js.UndefOr[String]?, currency: js.UndefOr[String]?, currencyDisplay: js.UndefOr[String]?, useGrouping: js.UndefOr[Boolean]?, minimumIntegerDigits: js.UndefOr[Double]?, minimumFractionDigits: js.UndefOr[Double]?, maximumFractionDigits: js.UndefOr[Double]?, minimumSignificantDigits: js.UndefOr[Double]?, maximumSignificantDigits: js.UndefOr[Double]?): NumberFormatOptions experimental/mediastream/AudioTrack[JT] var enabled: Boolean experimental/mediastream/AudioTrack[JT] val id: String experimental/mediastream/AudioTrack[JT] val kind: String @@ -24493,7 +24493,7 @@ experimental/mediastream/MediaDeviceInfo[JT] val deviceId: String experimental/mediastream/MediaDeviceInfo[JT] val groupId: String experimental/mediastream/MediaDeviceInfo[JT] val kind: MediaDeviceKind experimental/mediastream/MediaDeviceInfo[JT] val label: String -experimental/mediastream/MediaDeviceInfo[SO] def apply(deviceId: js.UndefOr[String] = js.undefined, groupId: js.UndefOr[String] = js.undefined, kind: js.UndefOr[String] = js.undefined, label: js.UndefOr[String] = js.undefined): MediaDeviceInfo +experimental/mediastream/MediaDeviceInfo[SO] def apply(deviceId: js.UndefOr[String]?, groupId: js.UndefOr[String]?, kind: js.UndefOr[String]?, label: js.UndefOr[String]?): MediaDeviceInfo experimental/mediastream/MediaDeviceKind[JT] experimental/mediastream/MediaDeviceKind[SO] val audioinput: MediaDeviceKind experimental/mediastream/MediaDeviceKind[SO] val audiooutput: MediaDeviceKind @@ -24544,7 +24544,7 @@ experimental/mediastream/MediaStream[JC] def removeTrack(track: MediaStreamTrack experimental/mediastream/MediaStreamConstraints[JT] var audio: Boolean | MediaTrackConstraints experimental/mediastream/MediaStreamConstraints[JT] var peerIdentity: String experimental/mediastream/MediaStreamConstraints[JT] var video: Boolean | MediaTrackConstraints -experimental/mediastream/MediaStreamConstraints[SO] def apply(video: js.UndefOr[Boolean | MediaTrackConstraints] = js.undefined, audio: js.UndefOr[Boolean | MediaTrackConstraints] = js.undefined, peerIdentity: js.UndefOr[String] = js.undefined): MediaStreamConstraints +experimental/mediastream/MediaStreamConstraints[SO] def apply(video: js.UndefOr[Boolean | MediaTrackConstraints]?, audio: js.UndefOr[Boolean | MediaTrackConstraints]?, peerIdentity: js.UndefOr[String]?): MediaStreamConstraints experimental/mediastream/MediaStreamTrack[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/mediastream/MediaStreamTrack[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/mediastream/MediaStreamTrack[JT] def applyConstraints(constraints: MediaTrackConstraints): js.Promise[Unit] @@ -24569,7 +24569,7 @@ experimental/mediastream/MediaStreamTrack[JT] val remote: Boolean experimental/mediastream/MediaStreamTrack[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/mediastream/MediaStreamTrack[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/mediastream/MediaStreamTrack[JT] def stop(): Unit -experimental/mediastream/MediaStreamTrack[SO] def apply(enabled: js.UndefOr[Boolean] = js.undefined, id: js.UndefOr[String] = js.undefined, kind: js.UndefOr[String] = js.undefined, label: js.UndefOr[String] = js.undefined, muted: js.UndefOr[Boolean] = js.undefined, readonly: js.UndefOr[Boolean] = js.undefined, readyState: js.UndefOr[String] = js.undefined, remote: js.UndefOr[Boolean] = js.undefined, onstarted: js.UndefOr[js.Function0[Any]] = js.undefined, onmute: js.UndefOr[js.Function0[Any]] = js.undefined, onunmute: js.UndefOr[js.Function0[Any]] = js.undefined, onoverconstrained: js.UndefOr[js.Function0[Any]] = js.undefined, oneended: js.UndefOr[js.Function0[Any]] = js.undefined): MediaStreamTrack +experimental/mediastream/MediaStreamTrack[SO] def apply(enabled: js.UndefOr[Boolean]?, id: js.UndefOr[String]?, kind: js.UndefOr[String]?, label: js.UndefOr[String]?, muted: js.UndefOr[Boolean]?, readonly: js.UndefOr[Boolean]?, readyState: js.UndefOr[String]?, remote: js.UndefOr[Boolean]?, onstarted: js.UndefOr[js.Function0[Any]]?, onmute: js.UndefOr[js.Function0[Any]]?, onunmute: js.UndefOr[js.Function0[Any]]?, onoverconstrained: js.UndefOr[js.Function0[Any]]?, oneended: js.UndefOr[js.Function0[Any]]?): MediaStreamTrack experimental/mediastream/MediaStreamTrackEvent[JC] def bubbles: Boolean experimental/mediastream/MediaStreamTrackEvent[JC] def cancelBubble: Boolean experimental/mediastream/MediaStreamTrackEvent[JC] def cancelable: Boolean @@ -24603,7 +24603,7 @@ experimental/mediastream/MediaTrackConstraintSet[JT] var sampleRate: Double experimental/mediastream/MediaTrackConstraintSet[JT] var sampleSize: Double experimental/mediastream/MediaTrackConstraintSet[JT] var volume: Double experimental/mediastream/MediaTrackConstraintSet[JT] var width: Double -experimental/mediastream/MediaTrackConstraintSet[SO] def apply(width: js.UndefOr[Double] = js.undefined, height: js.UndefOr[Double] = js.undefined, aspectRatio: js.UndefOr[Double] = js.undefined, frameRate: js.UndefOr[Double] = js.undefined, facingMode: js.UndefOr[String] = js.undefined, volume: js.UndefOr[Double] = js.undefined, sampleRate: js.UndefOr[Double] = js.undefined, sampleSize: js.UndefOr[Double] = js.undefined, echoCancellation: js.UndefOr[Boolean] = js.undefined, deviceId: js.UndefOr[String] = js.undefined, groupId: js.UndefOr[String] = js.undefined): MediaTrackConstraintSet +experimental/mediastream/MediaTrackConstraintSet[SO] def apply(width: js.UndefOr[Double]?, height: js.UndefOr[Double]?, aspectRatio: js.UndefOr[Double]?, frameRate: js.UndefOr[Double]?, facingMode: js.UndefOr[String]?, volume: js.UndefOr[Double]?, sampleRate: js.UndefOr[Double]?, sampleSize: js.UndefOr[Double]?, echoCancellation: js.UndefOr[Boolean]?, deviceId: js.UndefOr[String]?, groupId: js.UndefOr[String]?): MediaTrackConstraintSet experimental/mediastream/MediaTrackConstraints[JT] var advanced: js.Array[MediaTrackConstraintSet] experimental/mediastream/MediaTrackConstraints[JT] var aspectRatio: Double experimental/mediastream/MediaTrackConstraints[JT] var deviceId: String @@ -24616,7 +24616,7 @@ experimental/mediastream/MediaTrackConstraints[JT] var sampleRate: Double experimental/mediastream/MediaTrackConstraints[JT] var sampleSize: Double experimental/mediastream/MediaTrackConstraints[JT] var volume: Double experimental/mediastream/MediaTrackConstraints[JT] var width: Double -experimental/mediastream/MediaTrackConstraints[SO] def apply(advanced: js.UndefOr[js.Array[MediaTrackConstraintSet]] = js.undefined): MediaTrackConstraints +experimental/mediastream/MediaTrackConstraints[SO] def apply(advanced: js.UndefOr[js.Array[MediaTrackConstraintSet]]?): MediaTrackConstraints experimental/mediastream/MediaTrackSettings[JT] var aspectRatio: js.UndefOr[Double] experimental/mediastream/MediaTrackSettings[JT] var channelCount: js.UndefOr[Double] experimental/mediastream/MediaTrackSettings[JT] var deviceId: js.UndefOr[String] @@ -25299,7 +25299,7 @@ experimental/webrtc/RTCConfiguration[JT] var bundlePolicy: RTCBundlePolicy experimental/webrtc/RTCConfiguration[JT] var iceServers: js.Array[RTCIceServer] experimental/webrtc/RTCConfiguration[JT] var iceTransportPolicy: RTCIceTransportPolicy experimental/webrtc/RTCConfiguration[JT] var peerIdentity: String -experimental/webrtc/RTCConfiguration[SO] def apply(iceServers: js.UndefOr[js.Array[RTCIceServer]] = js.undefined, iceTransportPolicy: js.UndefOr[RTCIceTransportPolicy] = js.undefined, bundlePolicy: js.UndefOr[RTCBundlePolicy] = js.undefined, peerIdentity: js.UndefOr[String] = js.undefined): RTCConfiguration +experimental/webrtc/RTCConfiguration[SO] def apply(iceServers: js.UndefOr[js.Array[RTCIceServer]]?, iceTransportPolicy: js.UndefOr[RTCIceTransportPolicy]?, bundlePolicy: js.UndefOr[RTCBundlePolicy]?, peerIdentity: js.UndefOr[String]?): RTCConfiguration experimental/webrtc/RTCDTMFSender[JT] val canInsertDTMF: Boolean experimental/webrtc/RTCDTMFSender[JT] val duration: Double experimental/webrtc/RTCDTMFSender[JT] def insertDTMF(tones: String?, duration: Double?, interToneGap: Double?): Unit @@ -25353,7 +25353,7 @@ experimental/webrtc/RTCDataChannelInit[JT] var maxRetransmits: Double experimental/webrtc/RTCDataChannelInit[JT] var negotiated: Boolean experimental/webrtc/RTCDataChannelInit[JT] var ordered: Boolean experimental/webrtc/RTCDataChannelInit[JT] var protocol: String -experimental/webrtc/RTCDataChannelInit[SO] def apply(ordered: js.UndefOr[Boolean] = js.undefined, maxPacketLifeTime: js.UndefOr[Double] = js.undefined, maxRetransmits: js.UndefOr[Double] = js.undefined, protocol: js.UndefOr[String] = js.undefined, negotiated: js.UndefOr[Boolean] = js.undefined, id: js.UndefOr[Double] = js.undefined): RTCDataChannelInit +experimental/webrtc/RTCDataChannelInit[SO] def apply(ordered: js.UndefOr[Boolean]?, maxPacketLifeTime: js.UndefOr[Double]?, maxRetransmits: js.UndefOr[Double]?, protocol: js.UndefOr[String]?, negotiated: js.UndefOr[Boolean]?, id: js.UndefOr[Double]?): RTCDataChannelInit experimental/webrtc/RTCDataChannelState[JT] experimental/webrtc/RTCDataChannelState[SO] val closed: RTCDataChannelState experimental/webrtc/RTCDataChannelState[SO] val closing: RTCDataChannelState @@ -25365,7 +25365,7 @@ experimental/webrtc/RTCIceCandidate[JC] var sdpMid: String experimental/webrtc/RTCIceCandidateInit[JT] var candidate: String experimental/webrtc/RTCIceCandidateInit[JT] var sdpMLineIndex: Double experimental/webrtc/RTCIceCandidateInit[JT] var sdpMid: String -experimental/webrtc/RTCIceCandidateInit[SO] def apply(candidate: js.UndefOr[String] = js.undefined, sdpMid: js.UndefOr[String] = js.undefined, sdpMLineIndex: js.UndefOr[Double] = js.undefined): RTCIceCandidateInit +experimental/webrtc/RTCIceCandidateInit[SO] def apply(candidate: js.UndefOr[String]?, sdpMid: js.UndefOr[String]?, sdpMLineIndex: js.UndefOr[Double]?): RTCIceCandidateInit experimental/webrtc/RTCIceConnectionState[JT] experimental/webrtc/RTCIceConnectionState[SO] val checking: RTCIceConnectionState experimental/webrtc/RTCIceConnectionState[SO] val closed: RTCIceConnectionState @@ -25381,19 +25381,19 @@ experimental/webrtc/RTCIceGatheringState[SO] val `new`: RTCIceGatheringState experimental/webrtc/RTCIceServer[JT] var credential: String experimental/webrtc/RTCIceServer[JT] var urls: String | js.Array[String] experimental/webrtc/RTCIceServer[JT] var username: String -experimental/webrtc/RTCIceServer[SO] def apply(urls: js.UndefOr[String | js.Array[String]] = js.undefined, username: js.UndefOr[String] = js.undefined, credential: js.UndefOr[String] = js.undefined): RTCIceServer +experimental/webrtc/RTCIceServer[SO] def apply(urls: js.UndefOr[String | js.Array[String]]?, username: js.UndefOr[String]?, credential: js.UndefOr[String]?): RTCIceServer experimental/webrtc/RTCIceTransportPolicy[JT] experimental/webrtc/RTCIceTransportPolicy[SO] val all: RTCIceTransportPolicy experimental/webrtc/RTCIceTransportPolicy[SO] val none: RTCIceTransportPolicy experimental/webrtc/RTCIceTransportPolicy[SO] val relay: RTCIceTransportPolicy experimental/webrtc/RTCIdentityAssertion[JT] val idp: String experimental/webrtc/RTCIdentityAssertion[JT] val name: String -experimental/webrtc/RTCIdentityAssertion[SO] def apply(idp: js.UndefOr[String] = js.undefined, name: js.UndefOr[String] = js.undefined): RTCIdentityAssertion +experimental/webrtc/RTCIdentityAssertion[SO] def apply(idp: js.UndefOr[String]?, name: js.UndefOr[String]?): RTCIdentityAssertion experimental/webrtc/RTCOfferOptions[JT] var iceRestart: Boolean experimental/webrtc/RTCOfferOptions[JT] var offerToReceiveAudio: Double experimental/webrtc/RTCOfferOptions[JT] var offerToReceiveVideo: Double experimental/webrtc/RTCOfferOptions[JT] var voiceActivityDetection: Boolean -experimental/webrtc/RTCOfferOptions[SO] def apply(iceRestart: js.UndefOr[Boolean] = js.undefined, offerToReceiveAudio: js.UndefOr[Double] = js.undefined, offerToReceiveVideo: js.UndefOr[Double] = js.undefined, voiceActivityDetection: js.UndefOr[Boolean] = js.undefined): RTCOfferOptions +experimental/webrtc/RTCOfferOptions[SO] def apply(iceRestart: js.UndefOr[Boolean]?, offerToReceiveAudio: js.UndefOr[Double]?, offerToReceiveVideo: js.UndefOr[Double]?, voiceActivityDetection: js.UndefOr[Boolean]?): RTCOfferOptions experimental/webrtc/RTCPeerConnection[JC] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/webrtc/RTCPeerConnection[JC] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/webrtc/RTCPeerConnection[JC] def addIceCandidate(candidate: RTCIceCandidate): js.Promise[Unit] @@ -25462,7 +25462,7 @@ experimental/webrtc/RTCSessionDescription[JC] var sdp: String experimental/webrtc/RTCSessionDescription[JC] var `type`: RTCSdpType experimental/webrtc/RTCSessionDescriptionInit[JT] var sdp: String experimental/webrtc/RTCSessionDescriptionInit[JT] var `type`: RTCSdpType -experimental/webrtc/RTCSessionDescriptionInit[SO] def apply(`type`: js.UndefOr[RTCSdpType] = js.undefined, sdp: js.UndefOr[String] = js.undefined): RTCSessionDescriptionInit +experimental/webrtc/RTCSessionDescriptionInit[SO] def apply(`type`: js.UndefOr[RTCSdpType]?, sdp: js.UndefOr[String]?): RTCSessionDescriptionInit experimental/webrtc/RTCSignalingState[JT] experimental/webrtc/RTCSignalingState[SO] val closed: RTCSignalingState experimental/webrtc/RTCSignalingState[SO] val `have-local-offer` = "have-local-offer".asInstanceOf[RTCSignalingState] diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index 860690d3e..198167507 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -321,7 +321,7 @@ Blob[JC] def `type`: String Blob[JO] BlobPropertyBag[JT] def endings: String BlobPropertyBag[JT] def `type`: String -BlobPropertyBag[SO] def apply(`type`: js.UndefOr[String] = js.undefined): BlobPropertyBag +BlobPropertyBag[SO] def apply(`type`: js.UndefOr[String]?): BlobPropertyBag Body[JT] def arrayBuffer(): js.Promise[ArrayBuffer] Body[JT] def blob(): js.Promise[Blob] Body[JT] def bodyUsed: Boolean @@ -1030,14 +1030,14 @@ Console[JT] def debug(message: Any, optionalParams: Any*): Unit Console[JT] def dir(value: Any, optionalParams: Any*): Unit Console[JT] def dirxml(value: Any): Unit Console[JT] def error(message: Any, optionalParams: Any*): Unit -Console[JT] def group(label: js.UndefOr[String] = js.undefined): Unit -Console[JT] def groupCollapsed(label: js.UndefOr[String] = js.undefined): Unit +Console[JT] def group(label: js.UndefOr[String]?): Unit +Console[JT] def groupCollapsed(label: js.UndefOr[String]?): Unit Console[JT] def groupEnd(): Unit Console[JT] def info(message: Any, optionalParams: Any*): Unit Console[JT] def log(message: Any, optionalParams: Any*): Unit Console[JT] def profile(reportName: String?): Unit Console[JT] def profileEnd(): Unit -Console[JT] def table(data: js.Object | js.Array[_], columns: js.UndefOr[Int] = js.undefined): Unit +Console[JT] def table(data: js.Object | js.Array[_], columns: js.UndefOr[Int]?): Unit Console[JT] def time(label: String): Unit Console[JT] def timeEnd(label: String): Unit Console[JT] def trace(): Unit @@ -13599,15 +13599,15 @@ IDBObjectStore[JC] def createIndex(name: String, keyPath: String, optionalParame IDBObjectStore[JC] def delete(key: js.Any): IDBRequest IDBObjectStore[JC] def deleteIndex(indexName: String): Unit IDBObjectStore[JC] def get(key: js.Any): IDBRequest -IDBObjectStore[JC] def getAll(query: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, count: js.UndefOr[Int] = js.undefined): IDBRequest -IDBObjectStore[JC] def getAllKeys(query: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, count: js.UndefOr[Int] = js.undefined): IDBRequest +IDBObjectStore[JC] def getAll(query: js.UndefOr[IDBKeyRange | js.Any]?, count: js.UndefOr[Int]?): IDBRequest +IDBObjectStore[JC] def getAllKeys(query: js.UndefOr[IDBKeyRange | js.Any]?, count: js.UndefOr[Int]?): IDBRequest IDBObjectStore[JC] def getKey(key: js.Any): IDBRequest IDBObjectStore[JC] def index(name: String): IDBIndex IDBObjectStore[JC] def indexNames: DOMStringList IDBObjectStore[JC] def keyPath: String IDBObjectStore[JC] def name: String -IDBObjectStore[JC] def openCursor(range: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, direction: js.UndefOr[IDBCursorDirection] = js.undefined): IDBRequest -IDBObjectStore[JC] def openKeyCursor(range: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, direction: js.UndefOr[IDBCursorDirection] = js.undefined): IDBRequest +IDBObjectStore[JC] def openCursor(range: js.UndefOr[IDBKeyRange | js.Any]?, direction: js.UndefOr[IDBCursorDirection]?): IDBRequest +IDBObjectStore[JC] def openKeyCursor(range: js.UndefOr[IDBKeyRange | js.Any]?, direction: js.UndefOr[IDBCursorDirection]?): IDBRequest IDBObjectStore[JC] def put(value: js.Any, key: js.Any?): IDBRequest IDBObjectStore[JC] def transaction: IDBTransaction IDBOpenDBRequest[JC] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit @@ -14326,7 +14326,7 @@ MutationObserverInit[JT] var characterData: js.UndefOr[Boolean] MutationObserverInit[JT] var characterDataOldValue: js.UndefOr[Boolean] MutationObserverInit[JT] var childList: js.UndefOr[Boolean] MutationObserverInit[JT] var subtree: js.UndefOr[Boolean] -MutationObserverInit[SO] def apply(childList: Boolean = false, attributes: Boolean = false, characterData: Boolean = false, subtree: Boolean = false, attributeOldValue: Boolean = false, characterDataOldValue: Boolean = false, attributeFilter: js.UndefOr[js.Array[String]] = js.undefined): MutationObserverInit +MutationObserverInit[SO] def apply(childList: Boolean = false, attributes: Boolean = false, characterData: Boolean = false, subtree: Boolean = false, attributeOldValue: Boolean = false, characterDataOldValue: Boolean = false, attributeFilter: js.UndefOr[js.Array[String]]?): MutationObserverInit MutationRecord[JT] def addedNodes: NodeList[Node] MutationRecord[JT] def attributeName: String MutationRecord[JT] def attributeNamespace: String @@ -14492,7 +14492,7 @@ NotificationOptions[JT] val sound: String NotificationOptions[JT] val sticky: Boolean NotificationOptions[JT] val tag: String NotificationOptions[JT] val vibrate: js.Array[Double] -NotificationOptions[SO] def apply(body: js.UndefOr[String] = js.undefined, dir: js.UndefOr[String] = js.undefined, icon: js.UndefOr[String] = js.undefined, lang: js.UndefOr[String] = js.undefined, noscreen: js.UndefOr[Boolean] = js.undefined, renotify: js.UndefOr[Boolean] = js.undefined, silent: js.UndefOr[Boolean] = js.undefined, sound: js.UndefOr[String] = js.undefined, sticky: js.UndefOr[Boolean] = js.undefined, tag: js.UndefOr[String] = js.undefined, onclick: js.UndefOr[js.Function0[Any]] = js.undefined, onerror: js.UndefOr[js.Function0[Any]] = js.undefined, vibrate: js.UndefOr[js.Array[Double]] = js.undefined): NotificationOptions +NotificationOptions[SO] def apply(body: js.UndefOr[String]?, dir: js.UndefOr[String]?, icon: js.UndefOr[String]?, lang: js.UndefOr[String]?, noscreen: js.UndefOr[Boolean]?, renotify: js.UndefOr[Boolean]?, silent: js.UndefOr[Boolean]?, sound: js.UndefOr[String]?, sticky: js.UndefOr[Boolean]?, tag: js.UndefOr[String]?, onclick: js.UndefOr[js.Function0[Any]]?, onerror: js.UndefOr[js.Function0[Any]]?, vibrate: js.UndefOr[js.Array[Double]]?): NotificationOptions OfflineAudioCompletionEvent[JT] def bubbles: Boolean OfflineAudioCompletionEvent[JT] def cancelBubble: Boolean OfflineAudioCompletionEvent[JT] def cancelable: Boolean @@ -14862,11 +14862,11 @@ Range[JO] val END_TO_END: Int Range[JO] val END_TO_START: Int Range[JO] val START_TO_END: Int Range[JO] val START_TO_START: Int -ReadableStream[JT] def cancel(reason: js.UndefOr[Any] = js.undefined): js.Promise[Unit] +ReadableStream[JT] def cancel(reason: js.UndefOr[Any]?): js.Promise[Unit] ReadableStream[JT] def getReader(): ReadableStreamReader[T] ReadableStream[JT] def locked: Boolean -ReadableStream[JT] def pipeThrough[U](pair: Any, options: Any = js.undefined): ReadableStream[U] -ReadableStream[JT] def pipeTo(dest: WriteableStream[T], options: Any = js.undefined): Unit +ReadableStream[JT] def pipeThrough[U](pair: Any, options: Any?): ReadableStream[U] +ReadableStream[JT] def pipeTo(dest: WriteableStream[T], options: Any?): Unit ReadableStream[JT] def tee(): js.Array[_ <: ReadableStream[T]] ReadableStreamController[JC] def close(): Unit ReadableStreamController[JC] def desiredSize: Int @@ -24023,7 +24023,7 @@ WriteableState[SO] val closing: WriteableState WriteableState[SO] val errored: WriteableState WriteableState[SO] val waiting: WriteableState WriteableState[SO] val writable: WriteableState -WriteableStream[JT] def abort(reason: js.UndefOr[Any] = js.undefined): js.Promise[Unit] +WriteableStream[JT] def abort(reason: js.UndefOr[Any]?): js.Promise[Unit] WriteableStream[JT] def close(): js.Promise[WriteableStream[T]] WriteableStream[JT] val closed: js.Promise[WriteableStream[T]] WriteableStream[JT] val ready: js.Promise[WriteableStream[T]] @@ -24438,7 +24438,7 @@ experimental/intl/CollatorOptions[JT] val localeMatcher: js.UndefOr[String] experimental/intl/CollatorOptions[JT] val numeric: js.UndefOr[Boolean] experimental/intl/CollatorOptions[JT] val sensitivity: js.UndefOr[String] experimental/intl/CollatorOptions[JT] val usage: js.UndefOr[String] -experimental/intl/CollatorOptions[SO] def apply(localeMatcher: js.UndefOr[String] = js.undefined, usage: js.UndefOr[String] = js.undefined, sensitivity: js.UndefOr[String] = js.undefined, ignorePunctuation: js.UndefOr[Boolean] = js.undefined, numeric: js.UndefOr[Boolean] = js.undefined, caseFirst: js.UndefOr[String] = js.undefined): CollatorOptions +experimental/intl/CollatorOptions[SO] def apply(localeMatcher: js.UndefOr[String]?, usage: js.UndefOr[String]?, sensitivity: js.UndefOr[String]?, ignorePunctuation: js.UndefOr[Boolean]?, numeric: js.UndefOr[Boolean]?, caseFirst: js.UndefOr[String]?): CollatorOptions experimental/intl/DateTimeFormat[JC] def format(date: js.Date): String experimental/intl/DateTimeFormat[JC] def resolvedOptions(): DateTimeFormatOptions experimental/intl/DateTimeFormat[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String] @@ -24455,7 +24455,7 @@ experimental/intl/DateTimeFormatOptions[JT] val timeZone: js.UndefOr[String] experimental/intl/DateTimeFormatOptions[JT] val timeZoneName: js.UndefOr[String] experimental/intl/DateTimeFormatOptions[JT] val weekday: js.UndefOr[String] experimental/intl/DateTimeFormatOptions[JT] val year: js.UndefOr[String] -experimental/intl/DateTimeFormatOptions[SO] def apply(localeMatcher: js.UndefOr[String] = js.undefined, timeZone: js.UndefOr[String] = js.undefined, hour12: js.UndefOr[Boolean] = js.undefined, formatMatcher: js.UndefOr[String] = js.undefined, weekday: js.UndefOr[String] = js.undefined, era: js.UndefOr[String] = js.undefined, year: js.UndefOr[String] = js.undefined, month: js.UndefOr[String] = js.undefined, day: js.UndefOr[String] = js.undefined, hour: js.UndefOr[String] = js.undefined, minute: js.UndefOr[String] = js.undefined, second: js.UndefOr[String] = js.undefined, timeZoneName: js.UndefOr[String] = js.undefined): DateTimeFormatOptions +experimental/intl/DateTimeFormatOptions[SO] def apply(localeMatcher: js.UndefOr[String]?, timeZone: js.UndefOr[String]?, hour12: js.UndefOr[Boolean]?, formatMatcher: js.UndefOr[String]?, weekday: js.UndefOr[String]?, era: js.UndefOr[String]?, year: js.UndefOr[String]?, month: js.UndefOr[String]?, day: js.UndefOr[String]?, hour: js.UndefOr[String]?, minute: js.UndefOr[String]?, second: js.UndefOr[String]?, timeZoneName: js.UndefOr[String]?): DateTimeFormatOptions experimental/intl/NumberFormat[JC] def format(number: Double): String experimental/intl/NumberFormat[JC] def resolvedOptions(): NumberFormatOptions experimental/intl/NumberFormat[JC] def supportedLocalesOf(locales: String | js.Array[String], options: js.Any): js.Array[String] @@ -24469,7 +24469,7 @@ experimental/intl/NumberFormatOptions[JT] val minimumIntegerDigits: js.UndefOr[D experimental/intl/NumberFormatOptions[JT] val minimumSignificantDigits: js.UndefOr[Double] experimental/intl/NumberFormatOptions[JT] val style: js.UndefOr[String] experimental/intl/NumberFormatOptions[JT] val useGrouping: js.UndefOr[Boolean] -experimental/intl/NumberFormatOptions[SO] def apply(localeMatcher: js.UndefOr[String] = js.undefined, style: js.UndefOr[String] = js.undefined, currency: js.UndefOr[String] = js.undefined, currencyDisplay: js.UndefOr[String] = js.undefined, useGrouping: js.UndefOr[Boolean] = js.undefined, minimumIntegerDigits: js.UndefOr[Double] = js.undefined, minimumFractionDigits: js.UndefOr[Double] = js.undefined, maximumFractionDigits: js.UndefOr[Double] = js.undefined, minimumSignificantDigits: js.UndefOr[Double] = js.undefined, maximumSignificantDigits: js.UndefOr[Double] = js.undefined): NumberFormatOptions +experimental/intl/NumberFormatOptions[SO] def apply(localeMatcher: js.UndefOr[String]?, style: js.UndefOr[String]?, currency: js.UndefOr[String]?, currencyDisplay: js.UndefOr[String]?, useGrouping: js.UndefOr[Boolean]?, minimumIntegerDigits: js.UndefOr[Double]?, minimumFractionDigits: js.UndefOr[Double]?, maximumFractionDigits: js.UndefOr[Double]?, minimumSignificantDigits: js.UndefOr[Double]?, maximumSignificantDigits: js.UndefOr[Double]?): NumberFormatOptions experimental/mediastream/AudioTrack[JT] var enabled: Boolean experimental/mediastream/AudioTrack[JT] val id: String experimental/mediastream/AudioTrack[JT] val kind: String @@ -24493,7 +24493,7 @@ experimental/mediastream/MediaDeviceInfo[JT] val deviceId: String experimental/mediastream/MediaDeviceInfo[JT] val groupId: String experimental/mediastream/MediaDeviceInfo[JT] val kind: MediaDeviceKind experimental/mediastream/MediaDeviceInfo[JT] val label: String -experimental/mediastream/MediaDeviceInfo[SO] def apply(deviceId: js.UndefOr[String] = js.undefined, groupId: js.UndefOr[String] = js.undefined, kind: js.UndefOr[String] = js.undefined, label: js.UndefOr[String] = js.undefined): MediaDeviceInfo +experimental/mediastream/MediaDeviceInfo[SO] def apply(deviceId: js.UndefOr[String]?, groupId: js.UndefOr[String]?, kind: js.UndefOr[String]?, label: js.UndefOr[String]?): MediaDeviceInfo experimental/mediastream/MediaDeviceKind[JT] experimental/mediastream/MediaDeviceKind[SO] val audioinput: MediaDeviceKind experimental/mediastream/MediaDeviceKind[SO] val audiooutput: MediaDeviceKind @@ -24544,7 +24544,7 @@ experimental/mediastream/MediaStream[JC] def removeTrack(track: MediaStreamTrack experimental/mediastream/MediaStreamConstraints[JT] var audio: Boolean | MediaTrackConstraints experimental/mediastream/MediaStreamConstraints[JT] var peerIdentity: String experimental/mediastream/MediaStreamConstraints[JT] var video: Boolean | MediaTrackConstraints -experimental/mediastream/MediaStreamConstraints[SO] def apply(video: js.UndefOr[Boolean | MediaTrackConstraints] = js.undefined, audio: js.UndefOr[Boolean | MediaTrackConstraints] = js.undefined, peerIdentity: js.UndefOr[String] = js.undefined): MediaStreamConstraints +experimental/mediastream/MediaStreamConstraints[SO] def apply(video: js.UndefOr[Boolean | MediaTrackConstraints]?, audio: js.UndefOr[Boolean | MediaTrackConstraints]?, peerIdentity: js.UndefOr[String]?): MediaStreamConstraints experimental/mediastream/MediaStreamTrack[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/mediastream/MediaStreamTrack[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/mediastream/MediaStreamTrack[JT] def applyConstraints(constraints: MediaTrackConstraints): js.Promise[Unit] @@ -24569,7 +24569,7 @@ experimental/mediastream/MediaStreamTrack[JT] val remote: Boolean experimental/mediastream/MediaStreamTrack[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/mediastream/MediaStreamTrack[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/mediastream/MediaStreamTrack[JT] def stop(): Unit -experimental/mediastream/MediaStreamTrack[SO] def apply(enabled: js.UndefOr[Boolean] = js.undefined, id: js.UndefOr[String] = js.undefined, kind: js.UndefOr[String] = js.undefined, label: js.UndefOr[String] = js.undefined, muted: js.UndefOr[Boolean] = js.undefined, readonly: js.UndefOr[Boolean] = js.undefined, readyState: js.UndefOr[String] = js.undefined, remote: js.UndefOr[Boolean] = js.undefined, onstarted: js.UndefOr[js.Function0[Any]] = js.undefined, onmute: js.UndefOr[js.Function0[Any]] = js.undefined, onunmute: js.UndefOr[js.Function0[Any]] = js.undefined, onoverconstrained: js.UndefOr[js.Function0[Any]] = js.undefined, oneended: js.UndefOr[js.Function0[Any]] = js.undefined): MediaStreamTrack +experimental/mediastream/MediaStreamTrack[SO] def apply(enabled: js.UndefOr[Boolean]?, id: js.UndefOr[String]?, kind: js.UndefOr[String]?, label: js.UndefOr[String]?, muted: js.UndefOr[Boolean]?, readonly: js.UndefOr[Boolean]?, readyState: js.UndefOr[String]?, remote: js.UndefOr[Boolean]?, onstarted: js.UndefOr[js.Function0[Any]]?, onmute: js.UndefOr[js.Function0[Any]]?, onunmute: js.UndefOr[js.Function0[Any]]?, onoverconstrained: js.UndefOr[js.Function0[Any]]?, oneended: js.UndefOr[js.Function0[Any]]?): MediaStreamTrack experimental/mediastream/MediaStreamTrackEvent[JC] def bubbles: Boolean experimental/mediastream/MediaStreamTrackEvent[JC] def cancelBubble: Boolean experimental/mediastream/MediaStreamTrackEvent[JC] def cancelable: Boolean @@ -24603,7 +24603,7 @@ experimental/mediastream/MediaTrackConstraintSet[JT] var sampleRate: Double experimental/mediastream/MediaTrackConstraintSet[JT] var sampleSize: Double experimental/mediastream/MediaTrackConstraintSet[JT] var volume: Double experimental/mediastream/MediaTrackConstraintSet[JT] var width: Double -experimental/mediastream/MediaTrackConstraintSet[SO] def apply(width: js.UndefOr[Double] = js.undefined, height: js.UndefOr[Double] = js.undefined, aspectRatio: js.UndefOr[Double] = js.undefined, frameRate: js.UndefOr[Double] = js.undefined, facingMode: js.UndefOr[String] = js.undefined, volume: js.UndefOr[Double] = js.undefined, sampleRate: js.UndefOr[Double] = js.undefined, sampleSize: js.UndefOr[Double] = js.undefined, echoCancellation: js.UndefOr[Boolean] = js.undefined, deviceId: js.UndefOr[String] = js.undefined, groupId: js.UndefOr[String] = js.undefined): MediaTrackConstraintSet +experimental/mediastream/MediaTrackConstraintSet[SO] def apply(width: js.UndefOr[Double]?, height: js.UndefOr[Double]?, aspectRatio: js.UndefOr[Double]?, frameRate: js.UndefOr[Double]?, facingMode: js.UndefOr[String]?, volume: js.UndefOr[Double]?, sampleRate: js.UndefOr[Double]?, sampleSize: js.UndefOr[Double]?, echoCancellation: js.UndefOr[Boolean]?, deviceId: js.UndefOr[String]?, groupId: js.UndefOr[String]?): MediaTrackConstraintSet experimental/mediastream/MediaTrackConstraints[JT] var advanced: js.Array[MediaTrackConstraintSet] experimental/mediastream/MediaTrackConstraints[JT] var aspectRatio: Double experimental/mediastream/MediaTrackConstraints[JT] var deviceId: String @@ -24616,7 +24616,7 @@ experimental/mediastream/MediaTrackConstraints[JT] var sampleRate: Double experimental/mediastream/MediaTrackConstraints[JT] var sampleSize: Double experimental/mediastream/MediaTrackConstraints[JT] var volume: Double experimental/mediastream/MediaTrackConstraints[JT] var width: Double -experimental/mediastream/MediaTrackConstraints[SO] def apply(advanced: js.UndefOr[js.Array[MediaTrackConstraintSet]] = js.undefined): MediaTrackConstraints +experimental/mediastream/MediaTrackConstraints[SO] def apply(advanced: js.UndefOr[js.Array[MediaTrackConstraintSet]]?): MediaTrackConstraints experimental/mediastream/MediaTrackSettings[JT] var aspectRatio: js.UndefOr[Double] experimental/mediastream/MediaTrackSettings[JT] var channelCount: js.UndefOr[Double] experimental/mediastream/MediaTrackSettings[JT] var deviceId: js.UndefOr[String] @@ -25299,7 +25299,7 @@ experimental/webrtc/RTCConfiguration[JT] var bundlePolicy: RTCBundlePolicy experimental/webrtc/RTCConfiguration[JT] var iceServers: js.Array[RTCIceServer] experimental/webrtc/RTCConfiguration[JT] var iceTransportPolicy: RTCIceTransportPolicy experimental/webrtc/RTCConfiguration[JT] var peerIdentity: String -experimental/webrtc/RTCConfiguration[SO] def apply(iceServers: js.UndefOr[js.Array[RTCIceServer]] = js.undefined, iceTransportPolicy: js.UndefOr[RTCIceTransportPolicy] = js.undefined, bundlePolicy: js.UndefOr[RTCBundlePolicy] = js.undefined, peerIdentity: js.UndefOr[String] = js.undefined): RTCConfiguration +experimental/webrtc/RTCConfiguration[SO] def apply(iceServers: js.UndefOr[js.Array[RTCIceServer]]?, iceTransportPolicy: js.UndefOr[RTCIceTransportPolicy]?, bundlePolicy: js.UndefOr[RTCBundlePolicy]?, peerIdentity: js.UndefOr[String]?): RTCConfiguration experimental/webrtc/RTCDTMFSender[JT] val canInsertDTMF: Boolean experimental/webrtc/RTCDTMFSender[JT] val duration: Double experimental/webrtc/RTCDTMFSender[JT] def insertDTMF(tones: String?, duration: Double?, interToneGap: Double?): Unit @@ -25353,7 +25353,7 @@ experimental/webrtc/RTCDataChannelInit[JT] var maxRetransmits: Double experimental/webrtc/RTCDataChannelInit[JT] var negotiated: Boolean experimental/webrtc/RTCDataChannelInit[JT] var ordered: Boolean experimental/webrtc/RTCDataChannelInit[JT] var protocol: String -experimental/webrtc/RTCDataChannelInit[SO] def apply(ordered: js.UndefOr[Boolean] = js.undefined, maxPacketLifeTime: js.UndefOr[Double] = js.undefined, maxRetransmits: js.UndefOr[Double] = js.undefined, protocol: js.UndefOr[String] = js.undefined, negotiated: js.UndefOr[Boolean] = js.undefined, id: js.UndefOr[Double] = js.undefined): RTCDataChannelInit +experimental/webrtc/RTCDataChannelInit[SO] def apply(ordered: js.UndefOr[Boolean]?, maxPacketLifeTime: js.UndefOr[Double]?, maxRetransmits: js.UndefOr[Double]?, protocol: js.UndefOr[String]?, negotiated: js.UndefOr[Boolean]?, id: js.UndefOr[Double]?): RTCDataChannelInit experimental/webrtc/RTCDataChannelState[JT] experimental/webrtc/RTCDataChannelState[SO] val closed: RTCDataChannelState experimental/webrtc/RTCDataChannelState[SO] val closing: RTCDataChannelState @@ -25365,7 +25365,7 @@ experimental/webrtc/RTCIceCandidate[JC] var sdpMid: String experimental/webrtc/RTCIceCandidateInit[JT] var candidate: String experimental/webrtc/RTCIceCandidateInit[JT] var sdpMLineIndex: Double experimental/webrtc/RTCIceCandidateInit[JT] var sdpMid: String -experimental/webrtc/RTCIceCandidateInit[SO] def apply(candidate: js.UndefOr[String] = js.undefined, sdpMid: js.UndefOr[String] = js.undefined, sdpMLineIndex: js.UndefOr[Double] = js.undefined): RTCIceCandidateInit +experimental/webrtc/RTCIceCandidateInit[SO] def apply(candidate: js.UndefOr[String]?, sdpMid: js.UndefOr[String]?, sdpMLineIndex: js.UndefOr[Double]?): RTCIceCandidateInit experimental/webrtc/RTCIceConnectionState[JT] experimental/webrtc/RTCIceConnectionState[SO] val checking: RTCIceConnectionState experimental/webrtc/RTCIceConnectionState[SO] val closed: RTCIceConnectionState @@ -25381,19 +25381,19 @@ experimental/webrtc/RTCIceGatheringState[SO] val `new`: RTCIceGatheringState experimental/webrtc/RTCIceServer[JT] var credential: String experimental/webrtc/RTCIceServer[JT] var urls: String | js.Array[String] experimental/webrtc/RTCIceServer[JT] var username: String -experimental/webrtc/RTCIceServer[SO] def apply(urls: js.UndefOr[String | js.Array[String]] = js.undefined, username: js.UndefOr[String] = js.undefined, credential: js.UndefOr[String] = js.undefined): RTCIceServer +experimental/webrtc/RTCIceServer[SO] def apply(urls: js.UndefOr[String | js.Array[String]]?, username: js.UndefOr[String]?, credential: js.UndefOr[String]?): RTCIceServer experimental/webrtc/RTCIceTransportPolicy[JT] experimental/webrtc/RTCIceTransportPolicy[SO] val all: RTCIceTransportPolicy experimental/webrtc/RTCIceTransportPolicy[SO] val none: RTCIceTransportPolicy experimental/webrtc/RTCIceTransportPolicy[SO] val relay: RTCIceTransportPolicy experimental/webrtc/RTCIdentityAssertion[JT] val idp: String experimental/webrtc/RTCIdentityAssertion[JT] val name: String -experimental/webrtc/RTCIdentityAssertion[SO] def apply(idp: js.UndefOr[String] = js.undefined, name: js.UndefOr[String] = js.undefined): RTCIdentityAssertion +experimental/webrtc/RTCIdentityAssertion[SO] def apply(idp: js.UndefOr[String]?, name: js.UndefOr[String]?): RTCIdentityAssertion experimental/webrtc/RTCOfferOptions[JT] var iceRestart: Boolean experimental/webrtc/RTCOfferOptions[JT] var offerToReceiveAudio: Double experimental/webrtc/RTCOfferOptions[JT] var offerToReceiveVideo: Double experimental/webrtc/RTCOfferOptions[JT] var voiceActivityDetection: Boolean -experimental/webrtc/RTCOfferOptions[SO] def apply(iceRestart: js.UndefOr[Boolean] = js.undefined, offerToReceiveAudio: js.UndefOr[Double] = js.undefined, offerToReceiveVideo: js.UndefOr[Double] = js.undefined, voiceActivityDetection: js.UndefOr[Boolean] = js.undefined): RTCOfferOptions +experimental/webrtc/RTCOfferOptions[SO] def apply(iceRestart: js.UndefOr[Boolean]?, offerToReceiveAudio: js.UndefOr[Double]?, offerToReceiveVideo: js.UndefOr[Double]?, voiceActivityDetection: js.UndefOr[Boolean]?): RTCOfferOptions experimental/webrtc/RTCPeerConnection[JC] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/webrtc/RTCPeerConnection[JC] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/webrtc/RTCPeerConnection[JC] def addIceCandidate(candidate: RTCIceCandidate): js.Promise[Unit] @@ -25462,7 +25462,7 @@ experimental/webrtc/RTCSessionDescription[JC] var sdp: String experimental/webrtc/RTCSessionDescription[JC] var `type`: RTCSdpType experimental/webrtc/RTCSessionDescriptionInit[JT] var sdp: String experimental/webrtc/RTCSessionDescriptionInit[JT] var `type`: RTCSdpType -experimental/webrtc/RTCSessionDescriptionInit[SO] def apply(`type`: js.UndefOr[RTCSdpType] = js.undefined, sdp: js.UndefOr[String] = js.undefined): RTCSessionDescriptionInit +experimental/webrtc/RTCSessionDescriptionInit[SO] def apply(`type`: js.UndefOr[RTCSdpType]?, sdp: js.UndefOr[String]?): RTCSessionDescriptionInit experimental/webrtc/RTCSignalingState[JT] experimental/webrtc/RTCSignalingState[SO] val closed: RTCSignalingState experimental/webrtc/RTCSignalingState[SO] val `have-local-offer` = "have-local-offer".asInstanceOf[RTCSignalingState] diff --git a/scalafix/src/main/scala/org/scalajs/dom/scalafix/GenerateApiReport.scala b/scalafix/src/main/scala/org/scalajs/dom/scalafix/GenerateApiReport.scala index b15f9341f..138921a3b 100644 --- a/scalafix/src/main/scala/org/scalajs/dom/scalafix/GenerateApiReport.scala +++ b/scalafix/src/main/scala/org/scalajs/dom/scalafix/GenerateApiReport.scala @@ -95,7 +95,7 @@ class GenerateApiReport extends SemanticRule("GenerateApiReport") { .replaceAll(" {2,}", " ") .trim .stripSuffix(" = js.native") - .replaceAll(" = js.native(?=[^\n])", "?") + .replaceAll(" = js\\.(native|undefined)(?=[^\n])", "?") // "?" means that type aliases come before everything else val name = Util.termName(t2).fold("?")(_.value) From f8a4b746a36b034722118f398e7a9f63d197a640 Mon Sep 17 00:00:00 2001 From: David Barri Date: Mon, 6 Sep 2021 13:55:47 +1000 Subject: [PATCH 3/3] New rule: default args for facades should be `js.native` --- .scalafix.conf | 1 + api-reports/2_13.txt | 72 +++++++++---------- .../META-INF/services/scalafix.v1.Rule | 1 + .../dom/scalafix/DefaultFacadeArgs.scala | 31 ++++++++ .../scala/org/scalajs/dom/scalafix/Util.scala | 13 ++++ src/main/scala/org/scalajs/dom/Audio.scala | 24 +++---- src/main/scala/org/scalajs/dom/Fetch.scala | 4 +- src/main/scala/org/scalajs/dom/IDBTypes.scala | 18 ++--- .../org/scalajs/dom/OffscreenCanvas.scala | 2 +- src/main/scala/org/scalajs/dom/Stream.scala | 8 +-- .../dom/WindowOrWorkerGlobalScope.scala | 2 +- src/main/scala/org/scalajs/dom/beacon.scala | 4 +- .../serviceworkers/ServiceWorkers.scala | 9 ++- src/main/scala/org/scalajs/dom/lib.scala | 18 ++--- 14 files changed, 126 insertions(+), 81 deletions(-) create mode 100644 scalafix/src/main/scala/org/scalajs/dom/scalafix/DefaultFacadeArgs.scala diff --git a/.scalafix.conf b/.scalafix.conf index bcfc968fe..c243ef089 100644 --- a/.scalafix.conf +++ b/.scalafix.conf @@ -1,4 +1,5 @@ rules = [ + DefaultFacadeArgs, ExplicitResultTypes, OrganizeImports, RemoveUnused, diff --git a/api-reports/2_13.txt b/api-reports/2_13.txt index 198167507..265f0ae0b 100644 --- a/api-reports/2_13.txt +++ b/api-reports/2_13.txt @@ -157,8 +157,8 @@ AudioBufferSourceNode[JT] var onended: js.Function1[Event, _] AudioBufferSourceNode[JT] val playbackRate: AudioParam AudioBufferSourceNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit AudioBufferSourceNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit -AudioBufferSourceNode[JT] def start(when: Double = 0.0d, offset: Double = 0.0d, duration: Double?): Unit -AudioBufferSourceNode[JT] def stop(when: Double = 0.0d): Unit +AudioBufferSourceNode[JT] def start(when: Double?, offset: Double?, duration: Double?): Unit +AudioBufferSourceNode[JT] def stop(when: Double?): Unit AudioContext[JC] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit AudioContext[JC] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit AudioContext[JC] def close(): js.Promise[Unit] @@ -166,8 +166,8 @@ AudioContext[JC] def createAnalyser(): AnalyserNode AudioContext[JC] def createBiquadFilter(): BiquadFilterNode AudioContext[JC] def createBuffer(numOfChannels: Int, length: Int, sampleRate: Int): AudioBuffer AudioContext[JC] def createBufferSource(): AudioBufferSourceNode -AudioContext[JC] def createChannelMerger(numberOfInputs: Int = 6): ChannelMergerNode -AudioContext[JC] def createChannelSplitter(numberOfOutputs: Int = 6): ChannelSplitterNode +AudioContext[JC] def createChannelMerger(numberOfInputs: Int?): ChannelMergerNode +AudioContext[JC] def createChannelSplitter(numberOfOutputs: Int?): ChannelSplitterNode AudioContext[JC] def createConvolver(): ConvolverNode AudioContext[JC] def createDelay(maxDelayTime: Int): DelayNode AudioContext[JC] def createDynamicsCompressor(): DynamicsCompressorNode @@ -221,8 +221,8 @@ AudioListener[JT] val numberOfInputs: Int AudioListener[JT] val numberOfOutputs: Int AudioListener[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit AudioListener[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit -AudioListener[JT] def setOrientation(x: Double = 0.0d, y: Double = 0.0d, z: Double = -1.0d, xUp: Double = 0.0d, yUp: Double = 1.0d, zUp: Double = 0.0d): Unit -AudioListener[JT] def setPosition(x: Double = 0.0d, y: Double = 0.0d, z: Double = 0.0d): Unit +AudioListener[JT] def setOrientation(x: Double?, y: Double?, z: Double?, xUp: Double?, yUp: Double?, zUp: Double?): Unit +AudioListener[JT] def setPosition(x: Double?, y: Double?, z: Double?): Unit AudioListener[JT] var speedOfSound: Double AudioNode[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit AudioNode[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit @@ -275,8 +275,8 @@ AudioTrackList[JT] var onaddtrack: js.Function1[TrackEvent, _] AudioTrackList[JT] var onchange: js.Function1[js.Any, _] AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit AudioTrackList[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit -BeaconNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit = null): Boolean -BeaconWorkerNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit = null): Boolean +BeaconNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean +BeaconWorkerNavigator[JT] def sendBeacon(url: String, data: dom.BodyInit?): Boolean BeforeUnloadEvent[JC] def bubbles: Boolean BeforeUnloadEvent[JC] def cancelBubble: Boolean BeforeUnloadEvent[JC] def cancelable: Boolean @@ -785,7 +785,7 @@ CanvasRenderingContext2D[JC] def createLinearGradient(x0: Double, y0: Double, x1 CanvasRenderingContext2D[JC] def createPattern(image: HTMLElement, repetition: String): CanvasPattern CanvasRenderingContext2D[JC] def createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double): CanvasGradient CanvasRenderingContext2D[JC] def drawImage(image: HTMLElement, offsetX: Double, offsetY: Double, width: Double?, height: Double?, canvasOffsetX: Double?, canvasOffsetY: Double?, canvasImageWidth: Double?, canvasImageHeight: Double?): Unit -CanvasRenderingContext2D[JC] def ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = false): Unit +CanvasRenderingContext2D[JC] def ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean?): Unit CanvasRenderingContext2D[JC] def fill(): Unit CanvasRenderingContext2D[JC] def fillRect(x: Double, y: Double, w: Double, h: Double): Unit CanvasRenderingContext2D[JC] var fillStyle: js.Any @@ -1024,8 +1024,8 @@ CompositionEventInit[JT] var scoped: js.UndefOr[Boolean] CompositionEventInit[JT] val view: js.UndefOr[Window] Console[JT] def assert(test: Boolean, message: String, optionalParams: Any*): Unit Console[JT] def clear(): Unit -Console[JT] def count(label: String = "default"): Unit -Console[JT] def countReset(label: String = "default"): Unit +Console[JT] def count(label: String?): Unit +Console[JT] def countReset(label: String?): Unit Console[JT] def debug(message: Any, optionalParams: Any*): Unit Console[JT] def dir(value: Any, optionalParams: Any*): Unit Console[JT] def dirxml(value: Any): Unit @@ -1185,7 +1185,7 @@ DedicatedWorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInp DedicatedWorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInput, sx: Double, sy: Double, sw: Double, sh: Double, options: CreateImageBitmapOptions): js.Promise[ImageBitmap] DedicatedWorkerGlobalScope[JT] def crossOriginIsolated: Boolean DedicatedWorkerGlobalScope[JT] def dispatchEvent(evt: Event): Boolean -DedicatedWorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +DedicatedWorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit?): js.Promise[Response] DedicatedWorkerGlobalScope[JT] def importScripts(urls: js.Array[String]): Unit DedicatedWorkerGlobalScope[JT] def indexedDB: js.UndefOr[IDBFactory] DedicatedWorkerGlobalScope[JT] def isSecureContext: Boolean @@ -1618,7 +1618,7 @@ EventTarget[JC] def dispatchEvent(evt: Event): Boolean EventTarget[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit EventTarget[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit External[JT] -Fetch[JO] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +Fetch[JO] def fetch(info: RequestInfo, init: RequestInit?): js.Promise[Response] File[JC] def arrayBuffer(): js.Promise[ArrayBuffer] File[JC] def close(): Unit (@deprecated in 1.2.0) File[JC] def name: String @@ -1643,7 +1643,7 @@ FileReader[JC] var onloadstart: js.Function1[ProgressEvent, _] FileReader[JC] var onprogress: js.Function1[ProgressEvent, _] FileReader[JC] def readAsArrayBuffer(blob: Blob): Unit FileReader[JC] def readAsDataURL(blob: Blob): Unit -FileReader[JC] def readAsText(blob: Blob, encoding: String = "UTF-8"): Unit +FileReader[JC] def readAsText(blob: Blob, encoding: String?): Unit FileReader[JC] def readyState: Short FileReader[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit FileReader[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit @@ -13533,7 +13533,7 @@ HttpMethod[SO] val POST: HttpMethod HttpMethod[SO] val PUT: HttpMethod HttpMethod[SO] val QUERY: HttpMethod IDBCursor[JC] def advance(count: Int): Unit -IDBCursor[JC] def continue(key: js.Any = ???): Unit +IDBCursor[JC] def continue(key: js.Any?): Unit IDBCursor[JC] def delete(): IDBRequest IDBCursor[JC] def direction: IDBCursorDirection IDBCursor[JC] def key: js.Any @@ -13546,7 +13546,7 @@ IDBCursorDirection[SO] val NEXT_UNIQUE: IDBCursorDirection IDBCursorDirection[SO] val PREV: IDBCursorDirection IDBCursorDirection[SO] val PREV_UNIQUE: IDBCursorDirection IDBCursorWithValue[JC] def advance(count: Int): Unit -IDBCursorWithValue[JC] def continue(key: js.Any = ???): Unit +IDBCursorWithValue[JC] def continue(key: js.Any?): Unit IDBCursorWithValue[JC] def delete(): IDBRequest IDBCursorWithValue[JC] def direction: IDBCursorDirection IDBCursorWithValue[JC] def key: js.Any @@ -14514,8 +14514,8 @@ OfflineAudioContext[JC] def createAnalyser(): AnalyserNode OfflineAudioContext[JC] def createBiquadFilter(): BiquadFilterNode OfflineAudioContext[JC] def createBuffer(numOfChannels: Int, length: Int, sampleRate: Int): AudioBuffer OfflineAudioContext[JC] def createBufferSource(): AudioBufferSourceNode -OfflineAudioContext[JC] def createChannelMerger(numberOfInputs: Int = 6): ChannelMergerNode -OfflineAudioContext[JC] def createChannelSplitter(numberOfOutputs: Int = 6): ChannelSplitterNode +OfflineAudioContext[JC] def createChannelMerger(numberOfInputs: Int?): ChannelMergerNode +OfflineAudioContext[JC] def createChannelSplitter(numberOfOutputs: Int?): ChannelSplitterNode OfflineAudioContext[JC] def createConvolver(): ConvolverNode OfflineAudioContext[JC] def createDelay(maxDelayTime: Int): DelayNode OfflineAudioContext[JC] def createDynamicsCompressor(): DynamicsCompressorNode @@ -14540,7 +14540,7 @@ OfflineAudioContext[JC] val sampleRate: Double OfflineAudioContext[JC] def startRendering(): js.Promise[AudioBuffer] OfflineAudioContext[JC] def state: String OfflineAudioContext[JC] def suspend(): js.Promise[Unit] -OffscreenCanvas[JC] def convertToBlob(options: ConvertToBlobOptions = ???): js.Promise[Blob] +OffscreenCanvas[JC] def convertToBlob(options: ConvertToBlobOptions?): js.Promise[Blob] OffscreenCanvas[JC] def getContext(contextType: String): js.Dynamic OffscreenCanvas[JC] def getContext(contextType: String, contextAttributes: TwoDContextAttributes): js.Dynamic OffscreenCanvas[JC] def getContext(contextType: String, contextAttributes: WebGLContextAttributes): js.Dynamic @@ -14563,8 +14563,8 @@ OscillatorNode[JT] var onended: js.Function1[Event, _] OscillatorNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit OscillatorNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit OscillatorNode[JT] def setPeriodicWave(wave: PeriodicWave): Unit -OscillatorNode[JT] def start(when: Double = 0.0d): Unit -OscillatorNode[JT] def stop(when: Double = 0.0d): Unit +OscillatorNode[JT] def start(when: Double?): Unit +OscillatorNode[JT] def stop(when: Double?): Unit OscillatorNode[JT] var `type`: String PageTransitionEvent[JT] def bubbles: Boolean PageTransitionEvent[JT] def cancelBubble: Boolean @@ -14605,9 +14605,9 @@ PannerNode[JT] var refDistance: Double PannerNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit PannerNode[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit PannerNode[JT] var rolloffFactor: Double -PannerNode[JT] def setOrientation(x: Double = 1.0d, y: Double = 0.0d, z: Double = 0.0d): Unit -PannerNode[JT] def setPosition(x: Double = 0.0d, y: Double = 0.0d, z: Double = 0.0d): Unit -PannerNode[JT] def setVelocity(x: Double = 0.0d, y: Double = 0.0d, z: Double = 0.0d): Unit +PannerNode[JT] def setOrientation(x: Double?, y: Double?, z: Double?): Unit +PannerNode[JT] def setPosition(x: Double?, y: Double?, z: Double?): Unit +PannerNode[JT] def setVelocity(x: Double?, y: Double?, z: Double?): Unit ParentNode[JT] def childElementCount: Int ParentNode[JT] def children: HTMLCollection ParentNode[JT] def firstElementChild: Element @@ -14967,7 +14967,7 @@ Response[JC] def text(): js.Promise[String] Response[JC] def `type`: ResponseType Response[JC] def url: String Response[JO] def error(): Response -Response[JO] def redirect(url: String, status: Int = 302): Response +Response[JO] def redirect(url: String, status: Int?): Response ResponseInit[JT] var headers: HeadersInit ResponseInit[JT] var status: Int ResponseInit[JT] var statusText: ByteString @@ -22837,9 +22837,9 @@ Selection[JC] def anchorOffset: Int Selection[JC] def collapse(parentNode: Node, offset: Int): Unit Selection[JC] def collapseToEnd(): Unit Selection[JC] def collapseToStart(): Unit -Selection[JC] def containsNode(node: Node, partialContainment: Boolean = false): Boolean +Selection[JC] def containsNode(node: Node, partialContainment: Boolean?): Boolean Selection[JC] def deleteFromDocument(): Unit -Selection[JC] def extend(node: Node, offset: Int = 0): Unit +Selection[JC] def extend(node: Node, offset: Int?): Unit Selection[JC] def focusNode: Node Selection[JC] def focusOffset: Int Selection[JC] def getRangeAt(index: Int): Range @@ -23804,7 +23804,7 @@ Window[JC] def crossOriginIsolated: Boolean Window[JC] def devicePixelRatio: Double Window[JC] def dispatchEvent(evt: Event): Boolean Window[JC] def document: HTMLDocument -Window[JC] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +Window[JC] def fetch(info: RequestInfo, init: RequestInit?): js.Promise[Response] Window[JC] def focus(): Unit Window[JC] def frameElement: Element Window[JC] def frames: Window @@ -23947,7 +23947,7 @@ WindowOrWorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInpu WindowOrWorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInput, sx: Double, sy: Double, sw: Double, sh: Double): js.Promise[ImageBitmap] WindowOrWorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInput, sx: Double, sy: Double, sw: Double, sh: Double, options: CreateImageBitmapOptions): js.Promise[ImageBitmap] WindowOrWorkerGlobalScope[JT] def crossOriginIsolated: Boolean -WindowOrWorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +WindowOrWorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit?): js.Promise[Response] WindowOrWorkerGlobalScope[JT] def indexedDB: js.UndefOr[IDBFactory] WindowOrWorkerGlobalScope[JT] def isSecureContext: Boolean WindowOrWorkerGlobalScope[JT] def origin: String @@ -23983,7 +23983,7 @@ WorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInput, sx: D WorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInput, sx: Double, sy: Double, sw: Double, sh: Double, options: CreateImageBitmapOptions): js.Promise[ImageBitmap] WorkerGlobalScope[JT] def crossOriginIsolated: Boolean WorkerGlobalScope[JT] def dispatchEvent(evt: Event): Boolean -WorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +WorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit?): js.Promise[Response] WorkerGlobalScope[JT] def importScripts(urls: js.Array[String]): Unit WorkerGlobalScope[JT] def indexedDB: js.UndefOr[IDBFactory] WorkerGlobalScope[JT] def isSecureContext: Boolean @@ -25013,12 +25013,12 @@ experimental/serviceworkers/ServiceWorkerContainer[JT] def addEventListener[T <: experimental/serviceworkers/ServiceWorkerContainer[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/serviceworkers/ServiceWorkerContainer[JT] def controller: ServiceWorker experimental/serviceworkers/ServiceWorkerContainer[JT] def dispatchEvent(evt: Event): Boolean -experimental/serviceworkers/ServiceWorkerContainer[JT] def getRegistration(scope: String = ""): js.Promise[js.UndefOr[ServiceWorkerRegistration]] +experimental/serviceworkers/ServiceWorkerContainer[JT] def getRegistration(scope: String?): js.Promise[js.UndefOr[ServiceWorkerRegistration]] experimental/serviceworkers/ServiceWorkerContainer[JT] def getRegistrations(): js.Promise[js.Array[ServiceWorkerRegistration]] experimental/serviceworkers/ServiceWorkerContainer[JT] var oncontrollerchange: js.Function1[Event, _] experimental/serviceworkers/ServiceWorkerContainer[JT] var onmessage: js.Function1[MessageEvent, _] experimental/serviceworkers/ServiceWorkerContainer[JT] def ready: js.Promise[ServiceWorkerRegistration] -experimental/serviceworkers/ServiceWorkerContainer[JT] def register(scriptURL: String, options: js.Object = new js.Object()): js.Promise[ServiceWorkerRegistration] +experimental/serviceworkers/ServiceWorkerContainer[JT] def register(scriptURL: String, options: js.Object?): js.Promise[ServiceWorkerRegistration] experimental/serviceworkers/ServiceWorkerContainer[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/serviceworkers/ServiceWorkerContainer[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/serviceworkers/ServiceWorkerGlobalScope[JO] def self: ServiceWorkerGlobalScope @@ -25037,7 +25037,7 @@ experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def createImageBitmap(i experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInput, sx: Double, sy: Double, sw: Double, sh: Double, options: CreateImageBitmapOptions): js.Promise[ImageBitmap] experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def crossOriginIsolated: Boolean experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def dispatchEvent(evt: Event): Boolean -experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit?): js.Promise[Response] experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def importScripts(urls: js.Array[String]): Unit experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def indexedDB: js.UndefOr[IDBFactory] experimental/serviceworkers/ServiceWorkerGlobalScope[JT] def isSecureContext: Boolean @@ -25073,13 +25073,13 @@ experimental/serviceworkers/ServiceWorkerRegistration[JT] var active: ServiceWor experimental/serviceworkers/ServiceWorkerRegistration[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/serviceworkers/ServiceWorkerRegistration[JT] def addEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/serviceworkers/ServiceWorkerRegistration[JT] def dispatchEvent(evt: Event): Boolean -experimental/serviceworkers/ServiceWorkerRegistration[JT] def getNotifications(options: GetNotificationOptions = ???): js.Promise[Sequence[Notification]] +experimental/serviceworkers/ServiceWorkerRegistration[JT] def getNotifications(options: GetNotificationOptions?): js.Promise[Sequence[Notification]] experimental/serviceworkers/ServiceWorkerRegistration[JT] var installing: ServiceWorker experimental/serviceworkers/ServiceWorkerRegistration[JT] var onupdatefound: js.Function1[Event, _] experimental/serviceworkers/ServiceWorkerRegistration[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], options: EventListenerOptions): Unit experimental/serviceworkers/ServiceWorkerRegistration[JT] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit experimental/serviceworkers/ServiceWorkerRegistration[JT] var scope: String -experimental/serviceworkers/ServiceWorkerRegistration[JT] def showNotification(title: String, options: NotificationOptions = ???): js.Promise[Unit] +experimental/serviceworkers/ServiceWorkerRegistration[JT] def showNotification(title: String, options: NotificationOptions?): js.Promise[Unit] experimental/serviceworkers/ServiceWorkerRegistration[JT] def unregister(): js.Promise[Boolean] experimental/serviceworkers/ServiceWorkerRegistration[JT] def update(): js.Promise[Unit] experimental/serviceworkers/ServiceWorkerRegistration[JT] var waiting: ServiceWorker @@ -25124,7 +25124,7 @@ experimental/sharedworkers/SharedWorkerGlobalScope[JT] def createImageBitmap(ima experimental/sharedworkers/SharedWorkerGlobalScope[JT] def createImageBitmap(image: CreateImageBitmapInput, sx: Double, sy: Double, sw: Double, sh: Double, options: CreateImageBitmapOptions): js.Promise[ImageBitmap] experimental/sharedworkers/SharedWorkerGlobalScope[JT] def crossOriginIsolated: Boolean experimental/sharedworkers/SharedWorkerGlobalScope[JT] def dispatchEvent(evt: Event): Boolean -experimental/sharedworkers/SharedWorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] +experimental/sharedworkers/SharedWorkerGlobalScope[JT] def fetch(info: RequestInfo, init: RequestInit?): js.Promise[Response] experimental/sharedworkers/SharedWorkerGlobalScope[JT] def importScripts(urls: js.Array[String]): Unit experimental/sharedworkers/SharedWorkerGlobalScope[JT] def indexedDB: js.UndefOr[IDBFactory] experimental/sharedworkers/SharedWorkerGlobalScope[JT] def isSecureContext: Boolean diff --git a/scalafix/src/main/resources/META-INF/services/scalafix.v1.Rule b/scalafix/src/main/resources/META-INF/services/scalafix.v1.Rule index b27083488..ea882c986 100644 --- a/scalafix/src/main/resources/META-INF/services/scalafix.v1.Rule +++ b/scalafix/src/main/resources/META-INF/services/scalafix.v1.Rule @@ -1 +1,2 @@ +org.scalajs.dom.scalafix.DefaultFacadeArgs org.scalajs.dom.scalafix.GenerateApiReport diff --git a/scalafix/src/main/scala/org/scalajs/dom/scalafix/DefaultFacadeArgs.scala b/scalafix/src/main/scala/org/scalajs/dom/scalafix/DefaultFacadeArgs.scala new file mode 100644 index 000000000..7f0c1c57b --- /dev/null +++ b/scalafix/src/main/scala/org/scalajs/dom/scalafix/DefaultFacadeArgs.scala @@ -0,0 +1,31 @@ +package org.scalajs.dom.scalafix + +import scala.meta._ +import scalafix.v1._ + +class DefaultFacadeArgs extends SemanticRule("DefaultFacadeArgs") { + + override def fix(implicit doc: SemanticDocument): Patch = + doc.tree.collect { + + case Defn.Def(mods, _, _, paramss, _, body) if Util.isJsNative(body) => + + // https://github.com/scala-js/scala-js/issues/4553 + // `js.native` as default arg doesn't compile for top-level method facades. + if (Util.isJSGlobal(mods)) { + // Ignore for now + Patch.empty + + } else { + // Replace default argument with js.native + lazy val jsNative = body.toString + paramss.iterator.flatten.foldLeft(Patch.empty) { (patch, param) => + param.default match { + case Some(d) if d.toString != jsNative => patch + Patch.replaceTree(d, jsNative) + case _ => patch + } + } + } + }.asPatch + +} diff --git a/scalafix/src/main/scala/org/scalajs/dom/scalafix/Util.scala b/scalafix/src/main/scala/org/scalajs/dom/scalafix/Util.scala index e089b8740..31874c1e8 100644 --- a/scalafix/src/main/scala/org/scalajs/dom/scalafix/Util.scala +++ b/scalafix/src/main/scala/org/scalajs/dom/scalafix/Util.scala @@ -24,6 +24,19 @@ object Util { // =================================================================================================================== + def isJSGlobal(mods: List[Mod]): Boolean = + mods.exists { + case Mod.Annot(Init(Type.Name("JSGlobal"), _, _)) => true + case _ => false + } + + def isJsNative(t: Term): Boolean = { + val s = t.toString + s == "js.native" || s == "native" + } + + // =================================================================================================================== + def parents(sym: Symbol)(implicit doc: SemanticDocument): List[SemanticType] = dealias(sym).info match { case Some(i) => parents(i.signature) diff --git a/src/main/scala/org/scalajs/dom/Audio.scala b/src/main/scala/org/scalajs/dom/Audio.scala index 2c7a4d60e..d691021ac 100644 --- a/src/main/scala/org/scalajs/dom/Audio.scala +++ b/src/main/scala/org/scalajs/dom/Audio.scala @@ -81,7 +81,7 @@ class AudioContext extends EventTarget { * The number of channels in the input audio streams, which the output stream will contain; the default is 6 is * this parameter is not specified. */ - def createChannelMerger(numberOfInputs: Int = 6): ChannelMergerNode = js.native + def createChannelMerger(numberOfInputs: Int = js.native): ChannelMergerNode = js.native /** Creates a ChannelSplitterNode, which is used to access the individual channels of an audio stream and process them * separately. @@ -90,7 +90,7 @@ class AudioContext extends EventTarget { * The number of channels in the input audio stream that you want to output separately; the default is 6 is this * parameter is not specified. */ - def createChannelSplitter(numberOfOutputs: Int = 6): ChannelSplitterNode = js.native + def createChannelSplitter(numberOfOutputs: Int = js.native): ChannelSplitterNode = js.native /** Creates a ConvolverNode, which can be used to apply convolution effects to your audio graph, for example a * reverberation effect. @@ -414,7 +414,7 @@ trait AudioBufferSourceNode extends AudioNode { * The duration parameter, which defaults to the length of the asset minus the value of offset, defines the length * of the portion of the asset to be played. */ - def start(when: Double = 0.0, offset: Double = 0.0, duration: Double = js.native): Unit = js.native + def start(when: Double = js.native, offset: Double = js.native, duration: Double = js.native): Unit = js.native /** Schedules the end of the playback of an audio asset. * @@ -422,7 +422,7 @@ trait AudioBufferSourceNode extends AudioNode { * The when parameter defines when the playback will stop. If it represents a time in the past, the playback will * end immediately. If this method is called twice or more, an exception is raised. */ - def stop(when: Double = 0.0): Unit = js.native + def stop(when: Double = js.native): Unit = js.native /** Is an EventHandler containing the callback associated with the ended event. */ var onended: js.Function1[Event, _] = js.native @@ -481,7 +481,7 @@ trait AudioListener extends AudioNode { * @param z * The z position of the listener in 3D space. */ - def setPosition(x: Double = 0.0, y: Double = 0.0, z: Double = 0.0): Unit = js.native + def setPosition(x: Double = js.native, y: Double = js.native, z: Double = js.native): Unit = js.native /** Defines the orientation of the listener. * @@ -508,8 +508,8 @@ trait AudioListener extends AudioNode { * @param zUp * The z value of the up vector of the listener. */ - def setOrientation(x: Double = 0.0, y: Double = 0.0, z: Double = -1.0, xUp: Double = 0.0, yUp: Double = 1.0, - zUp: Double = 0.0): Unit = js.native + def setOrientation(x: Double = js.native, y: Double = js.native, z: Double = js.native, xUp: Double = js.native, + yUp: Double = js.native, zUp: Double = js.native): Unit = js.native } /** The AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as @@ -891,10 +891,10 @@ trait OscillatorNode extends AudioNode { var `type`: String = js.native // Not sure if this is correct ... /** This method specifies the exact time to start playing the tone. */ - def start(when: Double = 0.0): Unit = js.native + def start(when: Double = js.native): Unit = js.native /** This method specifies the exact time to stop playing the tone. */ - def stop(when: Double = 0.0): Unit = js.native + def stop(when: Double = js.native): Unit = js.native /** Used to point to a PeriodicWave defining a periodic waveform that can be used to shape the oscillator's output, * when type = "custom" is used. @@ -977,7 +977,7 @@ trait PannerNode extends AudioNode { * @param z * The z position of the panner in 3D space. */ - def setPosition(x: Double = 0.0, y: Double = 0.0, z: Double = 0.0): Unit = js.native + def setPosition(x: Double = js.native, y: Double = js.native, z: Double = js.native): Unit = js.native /** Defines the direction the audio source is playing in. This can have a big effect if the sound is very directional * — controlled by the three cone-related attributes PannerNode.coneInnerAngle, PannerNode.coneOuterAngle, and @@ -996,7 +996,7 @@ trait PannerNode extends AudioNode { * @param z * The z value of the panner's direction vector in 3D space. */ - def setOrientation(x: Double = 1.0, y: Double = 0.0, z: Double = 0.0): Unit = js.native + def setOrientation(x: Double = js.native, y: Double = js.native, z: Double = js.native): Unit = js.native /** Defines the velocity vector of the audio source — how fast it is moving and in what direction. * @@ -1015,7 +1015,7 @@ trait PannerNode extends AudioNode { * @param z * The z value of the panner's velocity vector. */ - def setVelocity(x: Double = 0.0, y: Double = 0.0, z: Double = 0.0): Unit = js.native + def setVelocity(x: Double = js.native, y: Double = js.native, z: Double = js.native): Unit = js.native } /** The StereoPannerNode interface of the Web Audio API represents a simple stereo panner node that can be used to pan diff --git a/src/main/scala/org/scalajs/dom/Fetch.scala b/src/main/scala/org/scalajs/dom/Fetch.scala index 6cfdbfe4e..817e46a72 100644 --- a/src/main/scala/org/scalajs/dom/Fetch.scala +++ b/src/main/scala/org/scalajs/dom/Fetch.scala @@ -14,7 +14,7 @@ object Fetch extends js.Object { * @param init * @return */ - def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] = js.native + def fetch(info: RequestInfo, init: RequestInit = js.native): js.Promise[Response] = js.native } /** The Request interface of the Fetch API represents a resource request. @@ -151,7 +151,7 @@ object Response extends js.Object { * @return * a new Response */ - def redirect(url: String, status: Int = 302): Response = js.native + def redirect(url: String, status: Int = js.native): Response = js.native } /** See [[https://fetch.spec.whatwg.org/#response-class ¶6.4 Response class]] definition in whatwg Fetch spec. */ diff --git a/src/main/scala/org/scalajs/dom/IDBTypes.scala b/src/main/scala/org/scalajs/dom/IDBTypes.scala index 475ed7170..40c8a5b58 100644 --- a/src/main/scala/org/scalajs/dom/IDBTypes.scala +++ b/src/main/scala/org/scalajs/dom/IDBTypes.scala @@ -76,12 +76,12 @@ class IDBObjectStore extends js.Object { def put(value: js.Any, key: js.Any = js.native): IDBRequest = js.native /** The method sets the position of the cursor to the appropriate record, based on the specified direction. */ - def openCursor(range: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, - direction: js.UndefOr[IDBCursorDirection] = js.undefined): IDBRequest = js.native + def openCursor(range: js.UndefOr[IDBKeyRange | js.Any] = js.native, + direction: js.UndefOr[IDBCursorDirection] = js.native): IDBRequest = js.native /** The method sets the position of the cursor to the appropriate key, based on the specified direction. */ - def openKeyCursor(range: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, - direction: js.UndefOr[IDBCursorDirection] = js.undefined): IDBRequest = js.native + def openKeyCursor(range: js.UndefOr[IDBKeyRange | js.Any] = js.native, + direction: js.UndefOr[IDBCursorDirection] = js.native): IDBRequest = js.native /** Note that this method must be called only from a VersionChange transaction mode callback. Note that this method * synchronously modifies the IDBObjectStore.indexNames property. @@ -99,14 +99,14 @@ class IDBObjectStore extends js.Object { /** If a value is successfully found, then a structured clone of it is created and set as the result of the request * object. */ - def getAll(query: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, - count: js.UndefOr[Int] = js.undefined): IDBRequest = js.native + def getAll(query: js.UndefOr[IDBKeyRange | js.Any] = js.native, + count: js.UndefOr[Int] = js.native): IDBRequest = js.native /** If a value is successfully found, then a structured clone of it is created and set as the result of the request * object. */ - def getAllKeys(query: js.UndefOr[IDBKeyRange | js.Any] = js.undefined, - count: js.UndefOr[Int] = js.undefined): IDBRequest = js.native + def getAllKeys(query: js.UndefOr[IDBKeyRange | js.Any] = js.native, + count: js.UndefOr[Int] = js.native): IDBRequest = js.native /** If a value is successfully found, then a structured clone of it is created and set as the result of the request * object. @@ -237,7 +237,7 @@ class IDBCursor extends js.Object { * * W3C */ - def continue(key: js.Any = ???): Unit = js.native + def continue(key: js.Any = js.native): Unit = js.native /** Returns an IDBRequest object, and, in a separate thread, deletes the record at the cursor's position, without * changing the cursor's position. diff --git a/src/main/scala/org/scalajs/dom/OffscreenCanvas.scala b/src/main/scala/org/scalajs/dom/OffscreenCanvas.scala index 35c0e18e7..0000dcaa3 100644 --- a/src/main/scala/org/scalajs/dom/OffscreenCanvas.scala +++ b/src/main/scala/org/scalajs/dom/OffscreenCanvas.scala @@ -16,7 +16,7 @@ class OffscreenCanvas(var width: Double, var height: Double) extends js.Object { def getContext(contextType: String, contextAttributes: TwoDContextAttributes): js.Dynamic = js.native /** Creates a Blob object representing the image contained in the canvas. */ - def convertToBlob(options: ConvertToBlobOptions = ???): js.Promise[Blob] = js.native + def convertToBlob(options: ConvertToBlobOptions = js.native): js.Promise[Blob] = js.native /** Creates an ImageBitmap object from the most recently rendered image of the OffscreenCanvas. */ def transferToImageBitmap(): ImageBitmap = js.native diff --git a/src/main/scala/org/scalajs/dom/Stream.scala b/src/main/scala/org/scalajs/dom/Stream.scala index 284d2b290..a79e060a9 100644 --- a/src/main/scala/org/scalajs/dom/Stream.scala +++ b/src/main/scala/org/scalajs/dom/Stream.scala @@ -66,7 +66,7 @@ trait WriteableStream[-T] extends js.Object { * * @param reason */ - def abort(reason: js.UndefOr[Any] = js.undefined): js.Promise[Unit] = js.native + def abort(reason: js.UndefOr[Any] = js.native): js.Promise[Unit] = js.native /** The close method signals that the producer is done writing chunks to the stream and wishes to move the stream to a * "closed" state. This queues an action to close the stream, such that once any currently queued-up writes complete, @@ -118,7 +118,7 @@ trait ReadableStream[+T] extends js.Object { * @return * a Promise */ - def cancel(reason: js.UndefOr[Any] = js.undefined): js.Promise[Unit] = js.native + def cancel(reason: js.UndefOr[Any] = js.native): js.Promise[Unit] = js.native /** See [[https://streams.spec.whatwg.org/#rs-get-reader ¶3.2.4.3. getReader()]] of whatwg streams spec. Also see the * example usage there. @@ -153,7 +153,7 @@ trait ReadableStream[+T] extends js.Object { * //todo: determine the type of options */ def pipeThrough[U](pair: Any, // TODO js.Tuple2[WriteableStream[T], ReadableStream[U]] - options: Any = js.undefined): ReadableStream[U] = js.native + options: Any = js.native): ReadableStream[U] = js.native /** See * [[https://streams.spec.whatwg.org/#rs-pipe-to ¶3.2.4.5. pipeTo(dest, { preventClose, preventAbort, preventCancel } = {})]] @@ -169,7 +169,7 @@ trait ReadableStream[+T] extends js.Object { * * //todo: determine the type of options */ - def pipeTo(dest: WriteableStream[T], options: Any = js.undefined): Unit = js.native + def pipeTo(dest: WriteableStream[T], options: Any = js.native): Unit = js.native /** See [[https://streams.spec.whatwg.org/#rs-tee ¶3.2.4.6. tee()]] of whatwg streams spec. * diff --git a/src/main/scala/org/scalajs/dom/WindowOrWorkerGlobalScope.scala b/src/main/scala/org/scalajs/dom/WindowOrWorkerGlobalScope.scala index 5531822a3..d633b0034 100644 --- a/src/main/scala/org/scalajs/dom/WindowOrWorkerGlobalScope.scala +++ b/src/main/scala/org/scalajs/dom/WindowOrWorkerGlobalScope.scala @@ -32,7 +32,7 @@ trait WindowOrWorkerGlobalScope extends WindowBase64 with WindowTimers { def origin: String = js.native //should be USVString /** Starts the process of fetching a resource from the network. */ - def fetch(info: RequestInfo, init: RequestInit = null): js.Promise[Response] = js.native + def fetch(info: RequestInfo, init: RequestInit = js.native): js.Promise[Response] = js.native /** Enqueues a microtask—a short function to be executed after execution of the JavaScript code completes and control * isn't being returned to a JavaScript caller, but before handling callbacks and other tasks. diff --git a/src/main/scala/org/scalajs/dom/beacon.scala b/src/main/scala/org/scalajs/dom/beacon.scala index cf1af0502..2d171b002 100644 --- a/src/main/scala/org/scalajs/dom/beacon.scala +++ b/src/main/scala/org/scalajs/dom/beacon.scala @@ -24,7 +24,7 @@ trait BeaconNavigator extends js.Object { * @param data * The data parameter is the ArrayBufferView, Blob, DOMString, or FormData data that is to be transmitted. */ - def sendBeacon(url: String, data: dom.BodyInit = null): Boolean = js.native + def sendBeacon(url: String, data: dom.BodyInit = js.native): Boolean = js.native } /** The Beacon interface is used to schedule an asynchronous and non-blocking request to a web server. Beacon requests @@ -48,5 +48,5 @@ trait BeaconWorkerNavigator extends js.Object { * @param data * The data parameter is the ArrayBufferView, Blob, DOMString, or FormData data that is to be transmitted. */ - def sendBeacon(url: String, data: dom.BodyInit = null): Boolean = js.native + def sendBeacon(url: String, data: dom.BodyInit = js.native): Boolean = js.native } diff --git a/src/main/scala/org/scalajs/dom/experimental/serviceworkers/ServiceWorkers.scala b/src/main/scala/org/scalajs/dom/experimental/serviceworkers/ServiceWorkers.scala index 13d3137f2..c75b26aa0 100644 --- a/src/main/scala/org/scalajs/dom/experimental/serviceworkers/ServiceWorkers.scala +++ b/src/main/scala/org/scalajs/dom/experimental/serviceworkers/ServiceWorkers.scala @@ -184,12 +184,12 @@ trait ServiceWorkerRegistration extends EventTarget { * have many active but differently-scoped service worker registrations. Notifications created by one service worker * on the same origin will not be available to other active services workers on that same origin. */ - def getNotifications(options: GetNotificationOptions = ???): js.Promise[Sequence[Notification]] = js.native + def getNotifications(options: GetNotificationOptions = js.native): js.Promise[Sequence[Notification]] = js.native /** The showNotification() method of the ServiceWorkerRegistration interface creates a notification on an active * service worker. */ - def showNotification(title: String, options: NotificationOptions = ???): js.Promise[Unit] = js.native + def showNotification(title: String, options: NotificationOptions = js.native): js.Promise[Unit] = js.native } /** An object containing options to filter the notifications returned. */ @@ -212,8 +212,7 @@ trait ServiceWorkerContainer extends EventTarget { * method can't return a ServiceWorkerRegistration, it returns a Promise. You can call this method unconditionally * from the controlled page, i.e., you don't need to first check whether there's an active registration. */ - def register(scriptURL: String, - options: js.Object = new js.Object()): js.Promise[ServiceWorkerRegistration] = js.native + def register(scriptURL: String, options: js.Object = js.native): js.Promise[ServiceWorkerRegistration] = js.native /** The ServiceWorkerContainer.controller read-only property of the ServiceWorkerContainer interface returns the * ServiceWorker whose state is activated (the same object returned by ServiceWorkerRegistration.active). This @@ -224,7 +223,7 @@ trait ServiceWorkerContainer extends EventTarget { /** Gets a ServiceWorkerRegistration object whose scope URL matches the document URL. If the method can't return a * ServiceWorkerRegistration, it returns a Promise. */ - def getRegistration(scope: String = ""): js.Promise[js.UndefOr[ServiceWorkerRegistration]] = js.native + def getRegistration(scope: String = js.native): js.Promise[js.UndefOr[ServiceWorkerRegistration]] = js.native /** The getRegistrations() method of the ServiceWorkerContainer interface returns all ServiceWorkerRegistrations * associated with a ServiceWorkerContainer in an array. If the method can't return ServiceWorkerRegistrations, it diff --git a/src/main/scala/org/scalajs/dom/lib.scala b/src/main/scala/org/scalajs/dom/lib.scala index cf806d9a8..7a6e9d7cc 100644 --- a/src/main/scala/org/scalajs/dom/lib.scala +++ b/src/main/scala/org/scalajs/dom/lib.scala @@ -1213,12 +1213,12 @@ class Selection extends js.Object { def removeRange(range: Range): Unit = js.native /** Indicates if the node is part of the selection */ - def containsNode(node: Node, partialContainment: Boolean = false): Boolean = js.native + def containsNode(node: Node, partialContainment: Boolean = js.native): Boolean = js.native /** Moves the focus of the selection to a specified point. The anchor of the selection does not move. The selection * will be from the anchor to the new focus regardless of direction. */ - def extend(node: Node, offset: Int = 0): Unit = js.native + def extend(node: Node, offset: Int = js.native): Unit = js.native } /** The NodeIterator interface represents an iterator over the members of a list of the nodes in a subtree of the DOM. @@ -2425,7 +2425,7 @@ class CanvasRenderingContext2D extends js.Object { * clockwise). */ def ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, - endAngle: Double, anticlockwise: Boolean = false): Unit = js.native + endAngle: Double, anticlockwise: Boolean = js.native): Unit = js.native } /** XMLHttpRequest is a JavaScript object that was designed by Microsoft and adopted by Mozilla, Apple, and Google. It's @@ -4675,7 +4675,7 @@ trait Console extends js.Object { * indices. If data is an object, then its values will be the property names. Note that (in Firefox) console.table is * limited to displaying 1000 rows (first row is the labeled index). */ - def table(data: js.Object | js.Array[_], columns: js.UndefOr[Int] = js.undefined): Unit = js.native + def table(data: js.Object | js.Array[_], columns: js.UndefOr[Int] = js.native): Unit = js.native /** Outputs a stack trace to the Web Console. */ def trace(): Unit = js.native @@ -4694,15 +4694,15 @@ trait Console extends js.Object { /** Logs the number of times that this particular call to count() has been called. This function takes an optional * argument label. */ - def count(label: String = "default"): Unit = js.native + def count(label: String = js.native): Unit = js.native /** Resets the counter. This function takes an optional argument label. */ - def countReset(label: String = "default"): Unit = js.native + def countReset(label: String = js.native): Unit = js.native /** Creates a new inline group in the Web Console log. This indents following console messages by an additional level, * until console.groupEnd() is called. */ - def group(label: js.UndefOr[String] = js.undefined): Unit = js.native + def group(label: js.UndefOr[String] = js.native): Unit = js.native /** Creates a new inline group in the Web Console. Unlike console.group(), however, the new group is created * collapsed. The user will need to use the disclosure button next to it to expand it, revealing the entries created @@ -4710,7 +4710,7 @@ trait Console extends js.Object { * * Call console.groupEnd() to back out to the parent group. */ - def groupCollapsed(label: js.UndefOr[String] = js.undefined): Unit = js.native + def groupCollapsed(label: js.UndefOr[String] = js.native): Unit = js.native /** Exits the current inline group in the Web Console. */ def groupEnd(): Unit = js.native @@ -4864,7 +4864,7 @@ class FileReader() extends EventTarget { * complete, the readyState is changed to DONE, the loadend is triggered, and the result attribute contains the * contents of the file as a text string. */ - def readAsText(blob: Blob, encoding: String = "UTF-8"): Unit = js.native + def readAsText(blob: Blob, encoding: String = js.native): Unit = js.native } @js.native